ソア

女性不信になって、ビットコインはじめて←イマココ

似たAV女優探し機「エロAI先生」公開

こんにちは。

 

さてみなさん、AI開発を始めた人が必ず試みることといえばなんでしょう。

まあ、言うまでもありませんね。

 

もちろん、「◯◯◯◯と似たAV女優探し」ですね。

 

ということで誰しもがやっていることでしょうが僕もやってみました。

 

*追記

この記事で紹介しているものはすごい使いづらいので、ラインbotにしました。

友だち追加して人の顔写真を送ってあげるだけで使えます

masagutti.hatenablog.com

masagutti.hatenablog.com

Add friend

 

 

サンプル集め

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

AV女優 [あ] - アダルトビデオ動画 - FANZA動画(旧DMM.R18)

どうも全部で9726人分のデータがあるようなんですが、当然一つ一つ手で保存していくなんてやってられないので自動で収集します。

 

下記事を参考にwebスクレイピングで画像を集めました。

qiita.com

 

f:id:masagutti:20181112134131p:plain

こんな感じで

 

 

FaceAPI

さて女優の画像は集まりましたが、このままでは機械は似た顔を判別出来ません。

結局コンピュータは数字で計算しないと答えを出せません。

ということで次はこれらの画像を「顔の特徴を表す数字のリスト」に変換して保存します。

 

ではどのようにして「顔の特徴を表す数字」を得るのか。

CNNなど画像認識に特化したニューラルネットワークを利用してもいいのですが、もっと手っ取り早い方法があります。

公開されている「顔認証API」を利用する方法です。

今回はmicrosoft の 「FaceAPI」を利用します。

 

FaceAPIがどのようなものかは下記から

Cognitive Services: Face APIの顔認証を試してみた|Cognitive Services, Face API | | ナレコムAzureレシピ

Cognitive Services: Face APIの限界に挑戦してみた|Cognitive Services, Face API | | ナレコムAzureレシピ

 

 これで下画像のような情報を[x,y]座標で得られます

f:id:masagutti:20181112144202p:plain

 

試しにこの画像を渡すと

f:id:masagutti:20181112144744j:plain

 

こんな感じで返ってきます。原点は左上でx軸は右、y軸は下方向が正の方向のようです。

f:id:masagutti:20181112144915p:plain

 

情報を変換

ただ取得した画像は全部が全部正面を向いているわけじゃありません。

 

f:id:masagutti:20181112145826p:plain

こんな感じで正面向いてないし顔傾いてるしってやつです。これを無理やり正面向かせた場合の座標に変換します。

 

f:id:masagutti:20181112150924p:plain

今こんな状態です。左目の瞳孔の座標をみんなだいすき点Pとし、これを座標変換していきます。

まず回転させるのに都合のいいように下唇の最下点を原点に合わせるように平行移動させます。

f:id:masagutti:20181112152337p:plain

 

次に原点を中心に回転させます。

ちょうど右と左の瞳孔を結んだ線が平行になるまで回転させます。

そのために必要な回転角θ(正確にはsinθ、cosθ)を求めます。

 

f:id:masagutti:20181112153809p:plain

画像で示すように、左右の瞳孔を結んだ線に向けて原点から引いた法線とy軸のなす角、もしくは左右の瞳孔を結んだ直線をy軸まで伸ばした線分を斜辺とする直角三角形の角(今回は鋭角)を求めればいいわけです。求めたθ分だけ各点を原点を中心に回転させます。めんどくさくなってきたので式は割愛

そして左右の顔の幅を等しくするように引き伸ばし、縮小して(飽きてきたので説明も割愛)正面顔でないものも正面を向かせた状態で座標変換します。

 

f:id:masagutti:20181112170759p:plainf:id:masagutti:20181112170930p:plain

 

f:id:masagutti:20181112171050p:plain

そしてその変換後の座標から画像の線分の長さを求め、太い赤線で表したものの長さを「1」とし、ほかはその線分との長さの比で表します。

これらを今回「顔の特徴を表す数字」として顔が似ているかどうか判定させます。

f:id:masagutti:20181112172231p:plain

さっきの紗倉まなちゃんの画像でやるとこんな感じ。まあ見ても何も分からんですね

この数字をリストにすると

 

f:id:masagutti:20181112175055p:plain

こんな感じ。これらを判定する画像から得たもの数字と比較して(それぞれの値の差の2乗をとって)それら差の和が小さければ小さいほど「似ている」と判定します。

 

実際に試す

完成品の詳細は別記事に載せますので、

実際に完成したものを試して見ましょう。

とりあえず

f:id:masagutti:20181112172532j:plain

この写真で試してみます。

 

f:id:masagutti:20181112172837p:plain

AIが「似てる」と思った順に10人表示されます。

「filter1」とかその他も別記事で説明します。

 

この一番上に表示された人

www.dmm.co.jp

この人みたいですね。どうでしょう、似てると思います?

 

これ、公開します

この似たAV女優探し機、公開します。もちろん無料で

Windowsならダウンロードするだけで使える(はず)。

 ダウンロード先や詳しい使い方は別記事で紹介します。

 

 

完成品の詳細記事

masagutti.hatenablog.com

【R-18】