📜

人工知能学会2025をきっかけに自分と似た歴史上の人の顔を探すアプリ「reki-gao」を作ってみました

に公開

はじめに

松尾研究所のからあげです。先日開催された人工知能学会2025年度全国大会(JSAI2025)にて、「日本古典文化と生成AI」というセッションに参加してきました(弊社の参加レポートのテックブログ記事も参照ください!)。そこで、国立情報学研究所の北本朝展さんらが紹介されていたROIS-CODHの「顔貌コレクション(顔コレ)」プロジェクトに興味を持ちました。

現代の顔認識技術と歴史的な肖像画データベースを組み合わせることで、「時空を超えた顔探し体験」を実現できるのではないか、そんな発想から「reki-gao」というアプリを作ってみたので紹介したいと思います。なお、私が作った「reki-gao」は誰でも使えるようにGitHubで公開しています!

https://github.com/karaage0703/reki-gao

顔貌コレクション(顔コレ)との出会い

JSAI2025での発見

2025年5月30日に開催された人工知能学会のチュートリアルセッション「日本古典文化と生成AI」で、国立情報学研究所の北本朝展さんとSakana AIのカラーヌワット・タリンさんによる講演を聞きました。

この講演では、日本古典文化のテキストと画像データに対する生成AI開発の取り組みが紹介され、特に「過去の文化的資料へのアクセス向上と歴史文化と現代人との距離を縮める」という目標が素晴らしいなと思いました。

顔貌コレクション(顔コレ)の魅力

講演の中で紹介されていたのが、ROIS-CODHの「顔貌コレクション(顔コレ)」でした。顔コレは、美術史研究、特に様式分析を目的として芸術作品から顔の表情を収集・分析するプロジェクトです。その特徴は以下の通りです:

  • 収集規模: 108作品から9,675枚の顔画像を収録
  • 時代範囲: 室町時代末期から近世初期までの日本の絵巻・芸術作品
  • 技術基盤: IIIF(International Image Interoperability Framework)プラットフォームを活用
  • AI活用: 機械学習による自動画像タグ付け機能

このプロジェクトがユニークなのは、単なるデータベースではなく、以下のような研究可能性を提供している点です:

  • 異なる作品間での顔の描写の比較
  • 作家や工房間の様式的差異の特定
  • AI生成タグを通じた予期しない画像間の繋がりの発見

reki-gaoの開発コンセプト

なぜ作ったのか

顔コレのデータセットの活用方法として「自分の顔と似ている、昔の人の顔を探したら面白いかも」と思いついたので作ってみました。最近、コテンラジオという歴史を楽しく学べるPodcast番組から歴史に興味を持ち始めたので、楽しみながら歴史を学べるようなものが作れたらよいなという思いもあります。

アプリケーションの概要

reki-gaoは、現代人の顔写真をもとに、顔コレに含まれる歴史上の人物の顔と似ている人物を見つけて表示するWebアプリケーションです。

主な機能:

  • 📷 リアルタイムカメラ撮影: ブラウザから直接写真撮影
  • 🔍 顔検出・特徴量抽出: OpenCV LBPベースのハイブリッド手法
  • 🎯 類似顔検索: コサイン類似度による高速ベクトル検索
  • 📊 結果表示: 類似度と共に歴史的人物情報を表示
  • 🌐 WebGUI: 直感的で使いやすいWebインターフェース

開発には生成AIを活用しています。大体思いついてからプロトタイプは半日くらいで完成しました。

https://zenn.dev/mkj/articles/cf8536923d9cd7

技術的な実装

システム構成

技術スタック

項目 技術
言語 Python 3.9+
Webフレームワーク FastAPI
顔認識 OpenCV LBP + HOG + 統計的特徴量
ベクトル検索 scikit-learn NearestNeighbors
類似度計算 コサイン類似度
フロントエンド HTML/CSS/JavaScript
データセット ROIS-CODH KaoKore

顔比較機能について

ポイントとなる顔比較機能について簡単に紹介します。顔検出はハールライク特徴量を使った一般的な手法で顔を切り出しています。その後、切り出した顔と顔コレデータベースの画像との比較のため、OpenCVのLBP(Local Binary Patterns)をベースとして、HOG特徴量などを組み合わせたハイブリッドな特徴量を用いています。類似度の高さは、コサイン類似度を計算して相関が高い顔を見つけ出しています。

比較する顔が膨大なため、深層学習等は使わず、一般的なPCで動く程度の計算負荷となる手法を選択しました。

「reki-gao」の使用例

GitHubのREADMEに従って、顔コレのデータセットをダウンロードして起動します。ブラウザでhttp://localhost:8000/にアクセスします。

以下のような画面が表示されます。

画像をアップロードするか、PCにカメラがあればそのカメラで撮影することも可能です。今回は私の顔でやってみました。

死体!?

室町時代の!?女性の!?死体??

やってみるたびに若干結果の変動はありますが、多くの場合死体が出たので、私に似ている歴史上の人物は室町時代の女性の死体だったようです。

まとめ

人工知能学会2025で興味を持った顔コレを使って、「reki-gao」という自分と似た歴史上の人の顔を探すアプリを作ってみました。

歴史上のイラストとの比較なので、真剣に似ている人と探すというよりは、楽しみながら使ってもらって、歴史に興味を持てるとよいのではないのかな?と思いました。

実際に使ってみて、死体という衝撃的な結果は出たものの「室町時代ってどんな時代だっけ?」とか「富士の人穴草子って何?」とか割と気になってきて調べたりしちゃいました。このようなAIを様々な分野とつなげる活動、今後もしてみたいですね。

「reki-gao」はGitHubで公開していますので、よかった楽しんでみてください。

https://github.com/karaage0703/reki-gao

関連リンク


このプロジェクトは、ROIS-CODH「KaoKore」データセット(CC BY 4.0)を利用しています。

松尾研究所テックブログ

Discussion