#はじめに
少し前に流行ったHow-old.netのバックで使われているというなんとなく高度そうな機械学習APIを試してみました。
概要と、感想を書いてみます。
#APIの概要
こんな感じのAPIらしいです
- Microsoft Project OxfordというイギリスのMSの人たちが作ったAPI集の1つ。Face系以外にも色々ある。
- AzureのMarket Placeで購入して利用する。値段も1分間に20回以下、月5000回以下ならFreeです。それを超えてもあまり高くないですね。あまり儲ける目的じゃなさそうです。
- 顔認識と一口にいってもこんな種類がある。
- 顔取り調べ(Face Detection)
- 顔比較(Face Verification)
- 顔認証(Face Identification)
- 似てる顔表示(Similar Face Searching)
- 顔比較と顔認証の違いは、顔比較が2つの顔を比較するのに対して、顔認証は多くの人の顔情報の中から探してくる機能。顔認証の方が高度
- 精度は2次元の写真で判断できる程度。Windows Helloのように3次元で判断していないので、残念ながら精度がは高くないように感じた
- 結果は、パーセンテージで返される。同じ人である確率80%みたいな。
- REST APIで提供されており、C#などでのサンプルプログラムもそろっているので実装難易度は非常に低い
- 写真をAzureに預けて認証できる人のグループを作り、認証時にはターゲットの人の写真をアップロードして「この人はグループにいる?」と確認する方式。つまり、写真はAzureに保持される(そのままではなく必要な情報だけ取り出してデータ化されていると思われるが)。
感想
3次元ではなく、2次元の写真での顔認識なので、厳格な顔認証が必要な業務では使えないと思われる。間違っていもそれほど問題ではなさそうな業務、しかも顔写真とってもOKな業務って限られてくるのではないかと考えられる。
例えばレストランで客が入ってきた時に写真をとって、前回来店時の顧客関連情報を出すとかに使えるかと最初考えたが、勝手に撮るとNGだし、客に承認を求めるのも嫌がられるだろう。となると自社内のような閉じたグループでの利用になるが、お互いの身元がわかっているような閉じたグループだと、調べる方法が他のツールでありそうなので需要がなさそうに思う。
ということで、3次元で厳格な顔認証が可能にならないとほとんどの業務では使えないように感じる。
個人的に面白い機能だなと思ったは、顔取り調べ(Face Detection)機能。これは、例えば口の右端と左端の長さなどを測定してくれる。
測定してくれるといっても、写真の中でのピクセル座標を出してくれるという意味ではあるが、その情報から縮尺を作って顔の横幅を15センチと仮定すれば、顔の各パーツの長さが割り出せる。
最近の人の顔をモデリングするMayaやDazStudioやPorserなどのツールだと、きっとこの情報から再現できるんじゃないかなーと思う。ただ現状は顔パーツの位置情報が少なすぎるし、2次元でしかとれないので、再現性が悪すぎるが、将来的にはそういうツールができるんだろうなと可能性を感じた。
現状の3Dスキャナって、スキャンしても顔を1個のオブジェクトとして扱ってしまうから、Unityなどで動かせるようなモデルにならないけど、こうやってスキャナで長さを細かく測定して、顔モデルに反映すれば、それなりに再現性の高い動く3Dモデルが作れそうだなと感じた。
これは今ある基礎技術でできそうなので、2年以内くらいにこういうツールがでてきて、顔を数秒間撮影するだけで、超リアルなアバターが作れるようになるんだろうな。
それをアバターとして、VR空間でバーチャルおしゃべりができるようになるんだろうか。
ホロレンズのようなARを使ってリアル世界で、テーブルの対面の椅子に座らせておしゃべりするようにもできそう。
最後は妄想でした。。。。