はじめ
インドで本場のカレーを堪能したいのですが、コロナ渦で中々それが叶わず。なので現地に行けないのなら、せめてインディアンスの顔がインド風になればそのカレー欲が満たされるのでは(?)と思いその仮説を検証することにしました。
なかみ
CycleGANでインド人の顔と日本人の顔のドメイン変換器を作ります。
以下を参考に実装しました。
CycleGANをpytorchで実装してみた
学習に必要なインド人の顔の画像と日本人の顔の画像は以下を参考に取得しました。
[API を叩かずに Google から画像収集をする]
(https://qiita.com/naz_/items/efc296ae1bf0e62f6704)
class Google(object):
def __init__(self):
self.GOOGLE_SEARCH_URL = "https://www.google.co.jp/search"
self.session = requests.session()
self.session.headers.update(
{
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:10.0) \
Gecko/20100101 Firefox/10.0"
}
)
のself.GOOGLE_SEARCH_URL
は"http://www.google.co.jp/search"
に変えました。SSLの認証がうまく通らなかったようです。
蛇足ですが”日本人 男”などのワードで検索しても外人女性などの写真が多く紛れていて除去作業が大変でした。”海外女性と結婚する日本人男性の特徴5選!”のような記事の画像を入手していたっぽいです。
"indian men"とか"indian male"だとインド人男性と思われる顔を多く入手できるのですが。
顔の切り出しについてはopenCVのカスケード分類でやりました。
[PyTorchを使って日向坂46の顔分類をしよう!]
(https://qiita.com/coper/items/b1fd51062642d624e26f)
こんな感じの画像(128*128)がそれぞれ400枚ほど集まりました。
こちらを学習させていきます。
200epochsほど学習させた生成器の出力はこちら
目的とは逸脱しますが、
インド人の色合いとテカリ、髭と目元のホリの深さ辺りのドメインは変換できていそうです。少しインド欲が満たされたような気がします。
さいご
データ量もepoch数も少なかったようで生成器から出力される画像が粗めでした。もう少し取り組もうかと思いましたが、お昼にもうやんカレーを食べることで当初の目的が達成されそうなので、雑多ではありますがひとまずここで終わらせていただきます。
ここまで読んでくださった皆様ありがとうございました。