第8話 スマホで「顔」がわかるのはナゼ?

第8話 スマホで「顔」がわかるのはナゼ?

アンドウくん
アンドウくん
…

くるみ
アンドウくん!元気(げんき)出(だ)して!!

はかせ
アンドウくんはアンドロイドだからしかたないんじゃが、気の毒(き どく)なことをしたのう。。。

わたる
顔(かお)がわかるのもAIのおかげなの?

はかせ
否(いな)、AIに頼(たよ)らなくても可能(かのう)じゃ。
デジカメでもできる機種(きしゅ)があるぐらいじゃからの。

わたる
な~んだ、意外(いがい)とカンタンなんだね。

はかせ
今(いま)となってはそう言(い)えるが、開発中(かいはつちゅう)はさぞかしタイヘンだったろうな。
なにせ膨大(ぼうだい)なサンプルが必要(ひつよう)じゃからのぅ。

ナビ
この場合(ばあい)のサンプルは、プログラムや実験(じっけん)に使(つか)うデータのことニャ。
「標本(ひょうほん)」と呼(よ)ばれることもあるニャよ。

わたる
へぇ~そうなんだ。
でも顔(かお)ってだいたい同(おな)じなのに、たくさんデータがないとダメなの?

はかせ
その「だいたい」がやっかいなんじゃ。
コンピュータに「だいたい」と言(い)っても通(つう)じないからな。

ナビ
顔認識(かおにんしき)では、最初(さいしょ)に目(め)、鼻(はな)、口(くち)などのパーツを確認(かくにん)するニャ。
次(つぎ)にそれらの位置(いち)から「顔(かお)」かどうかを判断(はんだん)しているニャ。

はかせ
ひとによって目(め)や鼻(はな)の大(おお)きさは違(ちが)うし、位置(いち)もビミョウに異(こと)なるからな。
だから「だいたい」これくらいの大(おお)きさ、形(かたち)、このあたりにあるはず、という範囲(はんい)を指定(してい)しなければならん。
それには多(おお)くのデータがあったほうが精度(せいど)が高(たか)まるんじゃよ。

くるみ
スマホのロックの「顔認証(かおにんしょう)」も同(おな)じなの?

はかせ
そうじゃ。
まず顔(かお)かどうかを確認(かくにん)し、それから持ち主(も ぬし)の画像(がぞう)と比較(ひかく)するんじゃよ。

わたる
カメラって便利(べんり)だね!
ほかにもわかることってないの?

はかせ
歩(ある)きかたで誰(だれ)なのかわかる「歩容(ほよう)」という技術(ぎじゅつ)もあるぞ。
遠(とお)くのひとでもわかるから、防犯(ぼうはん)装置(そうち)としても期待(きたい)されているんじゃ。

ナビ
「ビッグデータ」と言(い)われているように、世の中(よ なか)にはたくさんのデータがあるニャ。
それらをサンプルにして分析(ぶんせき)すると、いろんなことがわかるニャよ。

はかせ
よーし、それではアンドロイドの顔認識(かおにんしき)アプリを作(つく)るぞっ!
ビッグデータを活用(かつよう)するのじゃ~!!

わたる
アンドロイドの顔(かお)って…
アンドウくんしかいないから、ビッグデータ、関係(かんけい)ないよね。。。

質問:スマホで「顔」がわかるのはナゼ?

 

答え:目や口などを見つけ、それらの位置や大きさから「顔」かどうかを判断しているからです。

子供でも顔の絵が描けるのは、ひとの顔とは「こういうもの」という知識があるからです。誰かに教わったわけでもないのに、怒っているときは眉が吊り上げる、笑いは口角を上げて表現するのも、経験から得た知識といえるでしょう。

しかしコンピュータには同じような知識がないため、「顔」とはどういうものなのかをプログラムしないといけません。そのプログラムで重要なのが、顔の特徴を記録した「データベース」です。

スマホやデジカメの顔認識では、まずデータベースをもとにカメラに写っている目や鼻などのパーツを特定します。つぎにそれらの位置から顔かどうかを判断します。目や鼻をデタラメな位置に配置した「福笑い」などを顔として認識しないのもこのためです。

デジカメやアプリによっては、笑ったときにシャッターが切られる便利な機能もあります。これも予め用意されたデータベースがあってこそ実現できる技術で、データベースには眉や口角などがどのように動いたときが「笑っている」のかが記録されています。コンピュータは本当に笑顔を理解しているわけではなく、カメラに写った画像をデータベースと照合し、条件が一致したらシャッターを切っているに過ぎません。

常識も感情も持たないコンピュータでも「顔」「笑顔」を認識できるのは、比較するための膨大なデータ、位置や大きさから顔かどうかを判断するプログラムがあるからです。