【ITニュース解説】あなたの顔、AIにはどう見えてる? 怒り100%から始まったTeachable Machineで作る表情認識モデル
2025年09月21日に「Qiita」が公開したITニュース「あなたの顔、AIにはどう見えてる? 怒り100%から始まったTeachable Machineで作る表情認識モデル」について初心者にもわかりやすく解説しています。
ITニュース概要
AIが人の表情をどう認識するかをテーマに、無料ツール「Teachable Machine」で表情認識モデルを作成する記事。笑顔チェッカーの体験から、怒り顔などをAIに学習させ、モデルを構築する過程を解説する。SE初心者がAI開発の楽しさと基礎を手軽に学べる。
ITニュース解説
街中で見かける「笑顔チェッカー」に疑問を持った筆者の体験から、AIによる表情認識の仕組みを深掘りした記事がある。笑顔チェッカーは、カメラで撮影した顔から笑顔の度合いを判定するシステムだが、筆者が満面の笑みで臨んだにもかかわらず「もう少し」という判定を受け、一体どんな笑顔が合格ラインなのか、あるいはAIの判断が正しいのかといった疑問が湧いたことが本記事の出発点となる。
AIが人間の表情を認識するというのは、人間が「この顔は怒っている」「この顔は笑っている」と直感的に判断するのとは根本的に異なる。AIは「感情そのもの」を理解しているわけではない。AIは、入力された画像データの中に特定のパターンや特徴を見つけ出し、それが過去に学習したどのカテゴリに属するかを分類しているに過ぎない。たとえば、口角の上がり方、目尻の形状、眉の動きといった顔のパーツの配置や変化を「特徴」として捉え、それらを組み合わせることで「笑顔」「怒り」「無表情」といった判断を下す。この判断を可能にするのが、膨大な量のデータを使ってAIを「学習」させるプロセスだ。
記事で使われている「Teachable Machine」は、このようなAIモデルの学習を、プログラミングの知識がなくても簡単に行えるGoogle製のツールである。通常、AIモデルを構築するにはPythonなどのプログラミング言語を使って複雑なコードを書く必要があるが、Teachable MachineはWebブラウザ上で直感的な操作だけで、画像や音声、姿勢などを認識するモデルを作成できる。システムエンジニアを目指す初心者にとって、AIがどのように学習し、判断するのかを実際に体験できる非常に優れたツールと言えるだろう。
Teachable Machineを使った表情認識モデルの作成プロセスは、主に以下のステップで進められる。
最初のステップは「クラス分け」だ。これは、AIに認識させたいカテゴリを定義することにあたる。記事の筆者は、「怒り」「笑顔」「無表情」「その他」の四つのクラス(カテゴリ)を設定した。AIはこれらのクラスに基づいて画像を分類学習する。たとえば、「怒り」のクラスには怒った顔の画像を、「笑顔」のクラスには笑顔の画像を、それぞれ学習データとして与えることになる。
次に重要なのが「データ収集」だ。各クラスに対して、AIに学習させるための画像を準備する。これはAIモデルの性能を左右する非常に重要な工程だ。筆者は自身の顔をWebカメラで撮影し、「怒り100%」を表現した顔、「満面の笑顔」、「無表情」、そして「その他」(両手で顔を隠すなど、いずれの表情にも当てはまらない状態)の画像をそれぞれ数百枚ずつ集めた。この時、同じ人物の顔、同じ照明環境、似たような背景で多様な表情のデータを収集することが、AIが特定のパターンに偏らず、汎用的に認識できるようになるためのポイントとなる。例えば、様々な角度からの顔、異なる明るさでの顔など、バリエーションを持たせることで、より堅牢なモデルが構築できる。
データを集めたら、いよいよ「学習(Train)」だ。Teachable Machineの「モデルをトレーニングする」ボタンをクリックすると、AIは収集された画像データからそれぞれの表情の特徴を自動的に抽出し、学習を始める。このプロセスでは、AIは「怒り」の画像にはこういう特徴がある、「笑顔」の画像にはこういう特徴がある、というパターンを自力で見つけ出し、それぞれのクラスを識別するためのルールを内部的に構築する。この学習が完了すると、AIモデルは新しい画像が与えられた際に、それがどのクラスに最も近いかを予測できるようになる。
学習が完了したら、「テスト(Preview)」によって作成したモデルの性能を確認する。Webカメラを使って自分の顔を映し出すと、モデルが今見ている顔がどのクラスにどれくらいの確率で属するかをリアルタイムで表示してくれる。記事の筆者は、最初「無表情」がうまく認識されず、「その他」と判断されることがあったという。これは、学習データが不十分だったり、無表情とその他の区別が曖昧だったりした可能性を示唆している。
このような問題が発生した場合、追加でデータ収集を行い、再度学習させることでモデルの精度を向上させることができる。筆者は実際に、無表情の画像をさらに追加したり、学習データを調整したりすることで、より正確に表情を認識できるモデルに改善していった。この「データ収集→学習→テスト→改善」というサイクルは、AIモデル開発において非常に基本的であり、かつ重要なプロセスだ。
この一連の作業を通して、AIの判断が、あくまでも「与えられたデータ」に強く依存しているという事実が浮き彫りになる。AIは人間のように感情を理解しているわけではなく、特定の視覚的特徴に基づいてパターンマッチングを行っているだけだ。記事冒頭の「笑顔チェッカー」が筆者の満面の笑顔を「もう少し」と判断したのは、そのチェッカーのAIが「合格ラインの笑顔」として学習したデータセットが、筆者の笑顔とは異なる特徴を持っていたからかもしれない。これは、AIモデルの性能が、学習データの量と質によって決定されることを意味する。様々な条件下で収集された多様なデータを使って学習させればさせるほど、AIはより多くのパターンを認識し、より正確な判断を下せるようになる。逆に、データが偏っていたり、不正確だったりすると、AIも期待通りの判断をしない。これは、AIが「賢い」というよりも、「与えられた情報に基づいてパターンを見つけるのが得意」であるという、その本質を明確に示している。
システムエンジニアを目指す上で、このようなAIとデータの関係性を深く理解することは非常に重要だ。AI技術が社会の様々な分野で活用される中で、その裏側でどのような仕組みが動いているのか、どのような制約があるのかを知ることは、AIを活用したシステムを設計・開発する上で不可欠な知識となる。Teachable Machineのような直感的なツールを使えば、プログラミングスキルがなくてもAIの基本的な挙動や学習プロセスを体験でき、AIというブラックボックスの中身を少しずつ解き明かしていくための良い第一歩となる。AIモデルの精度を高めるためには、いかに適切で質の高いデータを集め、それをAIに学習させるかが鍵となる。AIの進化はデータの進化と言っても過言ではなく、そのデータをどのように収集し、整理し、活用するかが、これからのシステムエンジニアにとって極めて重要なスキルとなることは間違いない。現代のITシステムにおいてAIは欠かせない要素となりつつあり、その根幹をなすデータと学習の原理を実体験を通して学ぶことには大きな価値がある。