みなさん、男がAI開発に挑戦するからには避けては通れない開発とは何でしょう。
それは当然「◯◯◯◯と似たAV女優探し」ですね。
ということで今回はそんな避けては通れない開発、写真に似たAV女優を教えてくれるAI作りです。
エロAI先生
顔写真を送るとそれに似たセクシー女優を教えてくれるラインBotです。
誰でも無料で利用できるので試してみてください!
※送られた情報は収集されません。

サンプル集め
さて、「◯◯◯◯と似たAV女優探し」をしようとしたらまず「大量の女優の顔写真データ」が必要です。
今回はDMM(今はFANZAというらしい)のwebページからとってきます。

見てみると全部で9726人分のデータがあるようです。これらを一つ一つ手で保存しようとすると何日もかかってしまいます。今回はwebスクレイピングという手法でこれらを自動で収集します。下記事を参考に画像を集めました。
FaceAPI
女優さんの画像は集まりました。次に写真を比べて「似ている・似ていない」の判定をしなければなりません。
かなり抽象的な命題ですがコンピューターには決まった数字を与えて計算をさせなければいけません。
ということで次はこれらの画像を「顔の特徴点の座標のリスト」に変換して保存します。 ではどのようにして「顔の特徴点の座標」を得るのか。
CNNなど画像認識に特化したニューラルネットワークを利用してもいいのですが、今回は「顔認証API」を利用します。利用するのはmicrosoftの「FaceAPI」
FaceAPIを使うと下画像の点で表した場所の情報を[x,y]座標で得られます。

試しにこの画像をFaceAPIに渡すと

下のような感じでレスポンスが返ってきます。原点は画像の左上でx軸は右、y軸は下方向が正の方向のようです。

座標変換
FaceAPIを使うことで顔の特徴点の座標を取得できました。
しかし取得した画像は全部が正面を向いているわけではありません。

こんな感じで正面向いてないし顔傾いてるし、、という画像が大半です。
これを無理やり正面に向かせた場合の座標に変換します。
今こんな状態です。左目の瞳孔の座標をみんな大好き「点P」とし座標変換していきます。
まず回転させる場合に都合のいいように、下唇の最下点を原点に合わせるように平行移動させます。
その後原点を中心に丁度右と左の瞳孔を結んだ線が平行になるまで回転させます。そのために必要な回転角θ(正確にはsinθ、cosθ)を求めます。
画像で示すように左右の瞳孔を結んだ線に向けて原点から引いた法線とy軸のなす角、もしくは左右の瞳孔を結んだ直線をy軸まで伸ばした線分を斜辺とする直角三角形の角を求めます。求めたθ分だけ各点を原点を中心に回転させます。
そして左右の顔の幅を等しくするように引き伸ばし、目と目の間の距離が1となるように拡大、縮小します。
これで正面を向いている場合の座標に変換できました。
これらを今回「顔の特徴を表す数字」として2つの顔が似ているかどうか判定させます。
この数字をリストにすると

こんな感じ。これらを判定する画像から得たもの数字と比較します。正確にはそれぞれの値の差の2乗をとってそれらの和が小さければ小さいほど「似ている」と判定します。
実際に試す
実際に完成したものを試してみましょう。とりあえずこの写真で試してみます。


AIが「似てる」と思った順に10人表示されます。この一番上に表示された人
この人みたいですね。どうでしょう、似ていると思います?私は結構特徴捉えられているように見えます!
「エロAI先生」と命名
今回開発したこの似たAV女優を教えてくれるAIを
エロAI先生
と命名しました!
今後のエロAI先生の進化にご期待ください!!
それでは!
前の記事
次の記事