乙Py先生のプログラミング教室
初学者のためのプログラミング学習サイト

opencv

今回はアッチの方の女優さんの
最強平均顔を作っていきたいと
思いまーーーす。


解説動画はこちら



こちらもコードはGoogleColabで
試せる様になっています。

まずはライブラリのインストールです。
!pip install facemorpher

次にdlibを動かすために必要な
datファイルをダウンロードします。
!wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2 -O shape_predictor_68_face_landmarks.dat.bz2

ダウンロードが終わると
colabでファイル確認ができると思います。

ダウンロードを終えたら
ファイルの解凍です。
!tar jxf shape_predictor_68_face_landmarks.dat.bz2

これでbz2からdatになりました。

続いて環境変数のセットアップです。
!export DLIB_DATA_DIR=/content

最後に画像様のフォルダを作成しましょう。
!mkdir img

これで準備が整いました。

画像はimg配下にフォルダをいくつか作り
その中にpngやjpg形式で入れています。

平均顔のコードの実行方法ですが
まずはライブラリのインポートです。
import facemorpher

メソッドの実行方法としては
次の様になっています。

画像はリスト型でパスを指定します。
facemorpher.averager([画像パス],background='背景',plot=True) 

試しに2つのファイルを指定して
平均顔を作成してみると
# 画像を2つ指定して平均顔作成
facemorpher.averager(['img/1/zinnai1.png', 'img/1/watabe2.png'], 
                     background='transparent',plot=True)
uwaki2
こんな感じで実行されます。

フォルダ内の画像を全て使って
平均顔を作る場合はglobライブラリを使って
画像パスを指定します。

import glob
img_path = glob.glob('img/1/*png')

# フォルダ内の画像で平均顔作成
facemorpher.averager(img_path,background='transparent',plot=True)
uwaki3
さてここからは
本題に入っていきましょう。

今回使用したのはアッチの方の
女優さんのお顔の画像です。

集めるのはFANZAさんの
画像を使用しています。

ご自身で真似したい方は
うまく集めてみてください。


まずは新人おすすめからです。

新人女優

2月1日更新
対象者は以下の女優さんたちです。

堀内未果子 白峰ミウ 長谷川柚月 麻生マーガレット奈々美
香乃萌音 沙和れもん 吉野里奈 青山真子
川北メイサ 栗山さや 陳美恵 楠蘭

すいません一人も知らないです。
お顔はこうなりました。
result_new
新人さんと言う事で初々しさが
感じられるお顔立ちでしょうか!!!



続いて
月間ランキング
2021/2月20日更新

対象はTOP10の方々です。

深田えいみ 美谷朱里 枢木あおい 星奈あい 篠田ゆう
三上悠亜 伊藤舞雪 波多野結衣 蓮実クレア 奏音かのん

平均顔はこうなりました。

result_ranking
深田えいみさんだけ
メガネをかけているので
メガネのラインが顔入っちゃってますねwww

やや笑顔な感じになり
ここが新人との経験の差になる感じがしますねー



続いて
FANZAのおすすめ女優

対象者の名前は割愛しますが
新人 + ランカー他の総勢26名で
構成されているようです。

平均顔はこうなりました。
result_fanza
これがいわゆる
FANZA顔と言うやつですね!!!!!
素晴らしい

あとはotupyの好きな女優さんの
平均顔なんかもやってますで
よろしければ動画の方をどうぞ

今回はここまでです
それでは。






最近トムブラウンの合体ネタに
ハマってしまったので
今日は合体ネタです。


解説動画はこちら



プログラミングで
合体ネタを試してみようと思います。

単純に平均顔を作るだけです。

画像をたくさん用意するのが
面倒くさいので
1vs1で合体(平均)します。

平均顔のコードを
頑張って作って頂くと
同じように出来ます!!!

興味がある方はコメントください。

では
合体!!!
スクリーンショット 2020-11-21 16.39.55

スクリーンショット 2020-11-21 16.39.08

スクリーンショット 2020-11-21 16.39.18

スクリーンショット 2020-11-21 16.39.28

スクリーンショット 2020-11-21 16.39.38

半々に合成してますが
なかなか特徴が濃いですよねー

目鼻立ちなどは
より濃い人が浮き出る感じになるようです。

詳しくは動画の方を
みてみて下さい。

それでは。

今回は久しぶりに
画像加工で遊んでみました。

解説動画はこちら



ソースコードはこちら
import numpy as np 
import cv2
import math
from ipywidgets import interact, IntSlider , Select
import matplotlib.pyplot as plt
%matplotlib inline

x1 = IntSlider(value=1, min=1, max=20, step=1, description='x:',)
y1 = IntSlider(value=1, min=1, max=20, step=1, description='y:',)
files = ['kurochan.jpg','nadaru.png','inachan.jpg','ayase.jpg','gakky.jpg']
selected = Select(description='画像', options=files, rows=5,)

def show_plot(col1, col2 , col3):
    img = cv2.imread('img/' + col3)
    (h, w, c) = img.shape
    flex_x = np.zeros((h,w),np.float32)
    flex_y = np.zeros((h,w),np.float32)
    for y in range(h):
        for x in range(w):
            flex_x[y,x] = x + math.sin(x/30) * col1
            flex_y[y,x] = y + math.cos(y/30) * col2
    dst = cv2.remap(img,flex_x,flex_y,cv2.INTER_LINEAR)
    dst = cv2.cvtColor(dst , cv2.COLOR_BGR2RGB)
    plt.figure(figsize=(10,10))
    plt.tick_params(labelbottom=False,labelleft=False,labelright=False,labeltop=False)
    plt.imshow(dst)
    plt.show()

interact(show_plot, col1=x1, col2=y1 , col3 = selected)

実行していただくと
スクリーンショット 2020-11-14 16.04.16

こんな感じでメニューが出るようになっています。
このプログラムの直下にあるimgフォルダの中の
画像を参照するようにしているので
画像を用いる際はfiles変数の右の
ファイル名などを変更して下さい。

実行後は画像名をクリックすると
画像が切り替わります。

x,yは横、縦方向の画像の歪み度を変更します。
大きい数値の方が歪むようになります。

どんな感じになるかと言うと
download
download-1
download-2

かなり別人になるかなーと思いますが
若干元の人の特徴が残っているのが
面白いかなーと思います。

是非遊んでみて下さい。

今回はこれまでです
それでは。

次期総理を決める戦いの真っ最中ということで
スガさんをムキムキにしてみました。

解説動画はこちら



官房長官たるもの
強くなければならないですからね!!

opencvを用いれば画像の加工とかできますので
やりたい方は頑張ってみてくださいね。

ディープフェイクレベル1の問題です。
つまり、誰でも出来てしまうような
レベルの問題だということですね。


プログラムを作ってやってみた結果
良い出来の一部をお送りしたいと思います。

往年の映画スターに合成
スクリーンショット 2020-09-06 15.03.51

一国の総理大臣として
力で問題を解決してくれそうな顔つきですねーー

スクリーンショット 2020-09-06 15.04.01

こちらも往年の映画スターに合成
東南アジアの問題を現地に乗り込んで
解決してくれそうな趣があります。

せっかくだから
毛を生やしてみましょう。

スクリーンショット 2020-09-06 15.04.40


全然生えませんでしたーーーー
誠にすいまメーーんwww

今回は最近ハマっているフワちゃんの顔を
色々な人の顔のパーツと交換してみました。

解説動画はこちら



フワちゃん
最近めっちゃくちゃ好きで
よく見かけます。

テレビでよく見かけるのは
好感度が高いからなんだと思います。

ではなぜ好感度が高いのか?

顔のパーツにヒントが有るのではないかと
睨んでいます!!

と言う訳で
顔のパーツを交換するプログラムを作って
検証してみました。

交換できるパーツは
・目
・鼻
・口
この3つです。

色んな人と顔のパーツを交換してみると
仮説としては


口元の力が強い

んじゃないかと言う仮説です。

まずは自分の大好きな人同士で
スクリーンショット 2020-08-16 16.40.23

クロちゃんにフワちゃんだと
綺麗なクロちゃんですねーーー

好感度が千倍くらいになっていそうwww。

スクリーンショット 2020-08-16 16.40.42

ナダルにフワちゃんは
キンコメ今野さんっぽさが出ますね。

スクリーンショット 2020-08-16 16.40.56

石原さとみさんに
フワちゃんを混ぜると
なーんか、西野七瀬さん感が有るんですけど
類似度は30%くらいでしょうか?

色々変えて試したところ
口元を変えた時の印象の変化が大きいと感じました。

逆にフワちゃんに他の人の顔を合成してみると

スクリーンショット 2020-08-16 16.41.11

一気にフワちゃん感が消失しますね。
口元を変えた時の印象が一番大きいと感じました。

と言うことで
彼女の印象を強めているパーツは



なんだろうと思います。

マスクとかしていたら
魅力は半減してしまいますね!!!

クロちゃんにフワちゃんを合成した時の
口元の変化も大きいので

彼女の魅力、印象の大きいパーツは
口で決まりです!!

今回はこれまでです
それでは。

このページのトップヘ