Deep Image Matting 実装してみた

背景削除の最前線!脅威の精度!!

2021年05月01日

ハッカソンに向けて

昨日, KDDIが主催する「5Gエクスペリエンス」アイディアソン・ハッカソンのアイディアソンに参加してきた. 5Gが今後浸透していく中で, その高速・大容量・低遅延を活かして何かAndroidアプリを作ろうという趣旨のものだった! 初のアイディアソン・ハッカソンでした! ぼくらのチームはアイディアソンを通過し, ハッカソンに進めることになった. 内容は「リアルタイム画像合成」だった!

背景削除

画像処理の血が騒ぎ, さっそく背景削除を試みる!OpenCVを使った物理ベース(輝度値, エッジ検出など)の方法もあったが, やはりここは深層学習を使おうということで, 調べてみると見つかった!その名も「Deep Image Matting」

2017年のCVPRで発表されていたこの「Deep Image Matting」. ネットワーク構造はVGG16のエンコーダデコーダモデルでよく見る形. ここでのポイントは, Trimapと呼ばれるマスクをRGBに加えた4チャネル目として加えるということ. Deep Image Mattingのネットワーク構造

実装してみる

Gitのプログラムが公開されていたので, さっそく使ってみた! 実装手順としては, Pytorchのデフォルトパッケージ, TorchVisionを用いてセグメンテーションを行い, その後, OpenCVにより縮退・膨張させ, Trimapを作成させる. その後, もと写真とTrimapをDeep Image Mattingに入れる! 実装手順 かなり高精度に背景削除ができている!正直かなり驚きです!!
実際に, 動画像にしてみると, かなりそれっぽくなった!! (左)入力画像 (中)出力画像 (右)合成画像 参考資料
cf) 5Gエクスペリエンス アイディアソン・ハッカソン
cf) Deep Image Matting (CVPR_2017)