今回はGoogleのCMみたいに
写真に映り込んだオブジェクトを
消しちゃうプログラムのご紹介です。
解説動画はこちら
GoogleのCMのやつは
Google Pixel6の「消しゴムマジック」
という機能のことかと思います。
画像に映り込んだオブジェクトを
背景に同化させるように消す機能が
搭載されているようです。
この手の技術は
なので、マスクした部分を消すことが
できるということになります。
早速この機能を試すことができる
デモサイトを見つけたのでご紹介です。
DeepFillV2

こちらの使い方を解説すると、まず
ライブラリなどをダウンロードします。

次に
Change to the code directory
の部分のコードを実行しておきます。

その次は画像のアップロードです。

実行してすぐにファイル選択ボタンが出ます
1つ目はベースの画像をアップして

その後3つのボタンが表示されます。

これでuploadをクリックしてしばらくすると
マスク画像のファイル選択が出るので
これをクリックしてマスク画像を
アップロードしましょう。
それでは早速試してみましょう。
画像を取り込んでみます。
1つめは元の画像

もう1つはそれに対応するマスク画像が必要です。

両方の画像のサイズは同じものを使い
マスクする部分を白で塗っておきましょう。
画像の生成は

1回目はすごく時間かかりますが
2回目以降は10秒程度で終わります。
画像の生成が終わったら
画像を見比べてみましょう。


色彩が違うのはopencvの色彩をmatplotlibで
そのまま表示させちゃってるからなので
気にする必要はないですが
マスク部分のオブジェクトは綺麗に消えていますね!!
出来上がった画像自体は
outputフォルダの中に
inpainted_img.pngというファイルがあるので
これをダウンロードしましょう。
こちらは色彩は元のままです。
最後にクロちゃんでもやってみましょう。


うまく消し去ることができるでしょうか?
結果は?!?!?!?!

うううううーーーんんん
魂が残ってしまっていますねー
このプログラムは
オブジェクトが大きいと
うまくいかないようです。
比較的小さめのオブジェクトであれば
うまく消すことができるので
皆さんも色々なものを消して
遊んでみてください。
今回はこれまでです
それでは。
写真に映り込んだオブジェクトを
消しちゃうプログラムのご紹介です。
解説動画はこちら
GoogleのCMのやつは
Google Pixel6の「消しゴムマジック」
という機能のことかと思います。
画像に映り込んだオブジェクトを
背景に同化させるように消す機能が
搭載されているようです。
この手の技術は
Image Inpainting(画像修復)
というもので、不定形に塗りつぶされた
画像を修復させるというタスクになります。
マスクした部分を
その周りから元に戻すような感じですね。
というもので、不定形に塗りつぶされた
画像を修復させるというタスクになります。
マスクした部分を
その周りから元に戻すような感じですね。
なので、マスクした部分を消すことが
できるということになります。
早速この機能を試すことができる
デモサイトを見つけたのでご紹介です。
DeepFillV2

こちらの使い方を解説すると、まず
SETUP
Run this cell for setup
の部分のコードを実行してライブラリなどをダウンロードします。

次に
Change to the code directory
の部分のコードを実行しておきます。

その次は画像のアップロードです。
INPUTS AND MASKS
Run to upload the input image and generate/upload masks
の部分のコードを実行するとアップロードできます。
実行してすぐにファイル選択ボタンが出ます
1つ目はベースの画像をアップして

その後3つのボタンが表示されます。

これでuploadをクリックしてしばらくすると
マスク画像のファイル選択が出るので
これをクリックしてマスク画像を
アップロードしましょう。
それでは早速試してみましょう。
画像を取り込んでみます。
1つめは元の画像

もう1つはそれに対応するマスク画像が必要です。

両方の画像のサイズは同じものを使い
マスクする部分を白で塗っておきましょう。
画像の生成は
INPAINT!!
Run to trigger inpainting.
の部分のコードを実行します。
1回目はすごく時間かかりますが
2回目以降は10秒程度で終わります。
画像の生成が終わったら
OUTPUT COMPARISION
Run to check the output.
の部分のコードを実行して画像を見比べてみましょう。


色彩が違うのはopencvの色彩をmatplotlibで
そのまま表示させちゃってるからなので
気にする必要はないですが
マスク部分のオブジェクトは綺麗に消えていますね!!
出来上がった画像自体は
outputフォルダの中に
inpainted_img.pngというファイルがあるので
これをダウンロードしましょう。
こちらは色彩は元のままです。
最後にクロちゃんでもやってみましょう。


うまく消し去ることができるでしょうか?
結果は?!?!?!?!

うううううーーーんんん
魂が残ってしまっていますねー
このプログラムは
オブジェクトが大きいと
うまくいかないようです。
比較的小さめのオブジェクトであれば
うまく消すことができるので
皆さんも色々なものを消して
遊んでみてください。
今回はこれまでです
それでは。

コメントする