コンピューターは「人間の目線」をどのように認識するのか?
コンピューターがデジタルな画像やムービーをいかに理解するのかという問題を解き明かす研究分野が「コンピュータビジョン」です。エンジニアのFabrizio Di Guardo氏が、自身が開発した目線の移動で線を描ける「EyeDraw」のアルゴリズムを通じて、コンピュータービジョンのアルゴリズムがどのように使われるかを解説しています。
EyeDraw — How to draw with your eyes using Computer Vision | by Fabrizio Di Guardo | Jan, 2021 | Towards Data Science
https://towardsdatascience.com/eyedraw-how-to-draw-with-your-eyes-using-computer-vision-226317501e6a
EyeDrawはオープンソースのコンピュータービジョンライブラリ「OpenCV」を用いて、Pythonで開発されている目線で線を描くためのソフトウェアです。EyeDrawは目線の認識に際し、「Haar Cascadesによる顔検知」「瞳をブロブ(塊)として検知」「ホモグラフィによる瞳とカーソルのマッピング」という3つのアルゴリズムを用いているとGuardo氏は説明しています。
第一ステップは顔と目の認識です。認識の手法としては、OpenCVが提供する事前学習モデルを用いたHaar Cascadesの特徴量識別子による画像解析を採用しているとのこと。特徴量識別子は「こういう特徴を顔と目は持っている」とコンピューターに理解させる役割を果たしており、識別子を顔の画像に重ねることで、コンピューターに顔と目の特徴を捉えさせています。
顔と目を認識できたら、次は瞳を「ブロブ(塊)」として検出するとGuardo氏は説明。ブロブはコンピューターにとって「ある特定の性質を共有するピクセル群」であり、瞳の検出に適しているとのこと。画像を数値に変換した後、OpenCVのfindContoursメソッドを用いて検出した輪郭の中心とその半径を推定することで、瞳を検出しています。
次の段階として、検出した瞳と画面のカーソルを対応させる必要があります。Guardo氏はこの対応を実現するために「「ホモグラフィ(射影変換)」」と呼ばれる図形処理技術を用いているとのこと。ホモグラフィは異なる平面上の2つの点を対応させるための技術。ここでのホモグラフィは、数学的には2次元の座標空間上の点を表す3次元ベクトルを、他の点を表す3次元ベクトルに変換する3×3の行列です。
ホモグラフィによる瞳とカーソルの対応を行うためには、「正しい対応」をコンピューターに知らせるための「キャリブレーション」が必要です。キャリブレーション機能はEyeDrawにも備わっており、OpenCVのメソッドを使えば簡単に実現できるとのこと。
ここまでの処理で、コンピューターは「ユーザーがスクリーンのどこを見ているか」を認識できるようになりました。しかし、これだけではコンピューターは、カーソルの移動が「線を描いている」のか「カーソルを他の場所に移動させている」のか判断できないので、Guardo氏は「ポインターモード」と「カーソルモード」機能を実装し、手動で切り替えることで問題を解決しています。
近年はディープラーニングがコンピュータービジョンの強力な対抗馬となっています。しかし、Guardo氏はディープラーニングの複雑さを指摘し、理論的に明快なコンピュータービジョンが医療やセキュリティなどの分野で使われ続けていると語っています。
Guardo氏が開発した「EyeDraw」はGitHubに公開されており、無料で誰でも利用することができます。
GitHub - fabridigua/EyeDraw: Small computer vision software that allows you to draw with your own eyes
https://github.com/fabridigua/EyeDraw
・関連記事
ディープラーニングの手法「CNN」の画像識別処理がアニメーションで理解できる「CNN Explainer」 - GIGAZINE
最先端のAI画像認識モデルでも正しく認識できない画像まとめ - GIGAZINE
画像認識モデルの「盲点」を克服するための奇妙な画像ばかり集めたデータセット「ObjectNet」をMITとIBMの研究チームが公開 - GIGAZINE
Googleの開発者が作った3時間でディープラーニング(深層学習)をスライドとムービーで学べる集中レッスン - GIGAZINE
Microsoftが「人間以上の精度で画像に説明文を追加するAI」をWordやOutlookなどの改善に使用 - GIGAZINE
・関連コンテンツ