Inpainting With Partial Conv : 画像の欠損部分を予測して埋める機械学習モデル
ailia SDKで使用できる機械学習モデルである「Inpainting With Partial Conv」のご紹介です。エッジ向け推論フレームワークであるailia SDKとailia MODELSに公開されている機械学習モデルを使用することで、簡単にAIの機能をアプリケーションに実装することができます。
Inpainting With Partial Convの概要
Inpaining With Partial Convは2018年12月にNVIDIAが公開したImage Inpaintingのための機械学習モデルです。画像の中で欠損している部分を予測して修復することができます。入力画像とマスク画像を与えると、マスク画像の部分をAIが予測します。

出典:https://arxiv.org/pdf/1804.07723.pdf
InpaintingWithPartialConvのアーキテクチャ
Inpainting With Partial ConvのモデルアーキテクチャはPConvUNetです。
PConvUNetでは、UNetのConvの代わりに、マスク値に応じて画素を畳み込み対象に含めるかを決めるPartial Convが使用されています。

出典:https://arxiv.org/pdf/1804.07723.pdf
通常のConvolutionは、入力のXにWeightのWが乗算されます。この場合、欠損している部分の画素も畳み込みに使用してしまい、画質が低下します。PartialConvでは、入力のXのうち、マスクのMが1の画素だけを畳み込みに使用するため、画質が改善します。

出典:https://arxiv.org/pdf/1804.07723.pdf
マスクの更新では、1画素でも有効だった場合は畳み込み有効になります。
Inpainting With Partial Convの使用方法
下記のコマンドで任意の画像に対して適用可能です。マスク画像はmasksフォルダのものを使用します。
python3 pytorch-inpainting-with-partial-conv --input IMAGE_PATH --savepath SAVE_IMAGE_PATH
実行すると下記のような出力が得られます。左から、入力、マスク、AI出力、正解です。

アニメ画像に対しても出力が得られます。

出典:H2MD CHAN
アイリア株式会社はAIを実用化する会社として、クロスプラットフォームでGPUを使用した高速な推論を行うことができるailia SDKを開発しています。アイリア株式会社ではコンサルティングからモデル作成、SDKの提供、AIを利用したアプリ・システム開発、サポートまで、 AIに関するトータルソリューションを提供していますのでお気軽にお問い合わせください。
ailia Tech BLOG