Poserで芸能人顔を作る4 プリズンブレイク編 | Poser覚書

Poserで芸能人顔を作る4 プリズンブレイク編

こころのところ続けている、遺伝的アルゴリズムで芸能人顔を作るシリーズ。

Poserで芸能人顔を作る | Poser覚書

外国人なら、もっと似るんじゃないかとプリズンブレイクのウェントワース・ミラーで試してみた。

プリズン・ブレイク シーズン4 (SEASONSコンパクト・ボックス) [DVD]

坊主頭だし、ほどよく無精髭が生えていて、Michael 4をベースにしたらちょうど良いのではないか。

最終結果がこちら。

おお…まさに、脱獄しそうな悪そうな人に仕上がっている。似せようとしている感じも伝わってくる。

だけど、類似度55%くらいで待っていられなくなって処理を止めたのだ。

ウェントワース・ミラーまでの進化の過程

第一世代のランダム顔。悪人顔が揃ってる。

第30世代。顔の方向性が定まりつつある。顔の輪郭がまだまだ不自然。

第60世代くらい。このあたり、進化度合いはすっごく遅い。

今回の工夫など

顔の類似度判定は、こんな流れで行っている。

顔の位置を特定

顔の特徴ベクトル抽出

対象画像の特徴ベクトルと比べる

このうち、顔の位置特定に、けっこう時間がかかっていた。50人分ループするので、バカにならない待ち時間になっていた。

だが、今回の例では顔の位置は毎回同じなので、50人分の最初の一人分だけ顔の位置判定をして、残りは流用するようにした。

これによって、顔の類似の判定の時間が半分くらいになったのだ。素晴らしい。

また、調整対象のパラメ-タを、左右対称のものに限定した。

そのせいか、類似度の進化がなかなか進まなくなってしまったのだ。難しい。

今後の課題など

遺伝的アルゴリズムは、ランダムでたまたま良い値が出たら、うまいことやりくりして最適値に近づけていこうという手法。

この、完全ランダムというのが効率悪いのかなとも思う。

50世代くらいぶんまわしたところで、このモーフパラメータをいじると類似度が大きく変わる…という重要パラメータが特定できるはず。

ちょっと調べたら、重回帰分析という方法で特定できそう。

重回帰分析とは | データ分析基礎知識

  • 50世代ループ…重要モーフを特定
  • 50世代以降…重要モーフ10個くらいにしぼって遺伝的アルゴリズムを行う

とかにしたほうが良いのではないか。

いやいや、そういう部分を人間のロジックで作りこむんじゃなくて機械学習を組み合わせれば…

探してみたら、遺伝的アルゴリズム+機械学習でNEATというPythonライブラリが見つかった。

遺伝的アルゴリズムxニューラルネットワーク(NeuroEvolution)でOpen AI Gymの二足歩行ロボを歩かせた話 – Qiita

なんか話がだんだん込み入ってきて、うわぁー!わから--ん!ってなってきたので、メモにとどめておいて、先に進もうと思う。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする