はじめに
こちらは前回の記事の続きになります。
前回、犬の画像を自動生成するやり方を紹介しました。
ただ、DALL・Eでは画像を生成するだけではなく、下記のように画像に対して要素を追加する事が可能みたいです。
下記例だと、ただの部屋の写真にアヒルボート?みたいな何かが追加されています。
(これ、アヒル・・・?)
(DALL-E 2を発表したOpenAIブログ記事より抜粋)
https://openai.com/product/dall-e-2
詳細な使用方法はこちらに記載されています。
なので、この技術を使用して自動生成した犬の画像に眼鏡を掛けさせてあげたいと思います!
長くなりそうなので、今回は実現方式についてのみ説明します。
実際のコードなどの説明はまた次回行う予定です。
実現方式
DALL・Eはあくまで画像を編集するのではなく、画像を生成するツールです。
DALL・Eで先ほどのアヒルのように、既存の画像に対して要素を追加する場合、「この部分に追加してね!」っていう事を明示しなくてはなりません。
そのため、編集してほしい箇所に対して透過処理を行う必要があります。
(因みに、この柴犬の画像もDALL・Eで自動生成した画像です。)
ただ、この透過加工をいちいち手動でやるのも大変なので、こちらも自動で透過させたいです。
それには、ワンちゃんの目の位置を検出させる必要があります。
そこで、OpenCVというライブラリを使用しました。
詳しい説明は割愛しますが、物体検出など画像の様々な処理が可能になるライブラリです。
詳細は下記リンクをご参照下さい。
今回は、その中の目を検出する「haarcascade_eye」という物を使用しました。
参考
あとは、OpenCVで特定した目の位置の座標を元に、画像に透過処理を行います。
DALL・Eにリクエストを送信
先ほど、透過処理を行った画像を 「put glasses on dog」 というリクエストと共に、DALL・Eへ送信します・・・
透過した部分に、眼鏡を付けてくれました!
かわいい。
今回はかけ足で、実現方式だけ説明してしまいましたが、
詳しい実装の解説はまた次回行おうと思います。