画像修復 Python デモ

このデモでは、GMCNN を使用した画像修復を紹介します。タスクは、画像の穴を埋めるため適切なピクセル情報を推定します。 example

どのように動作するか

このデモは 2 つのモードで動作します。

  • 対話モード: 修復する領域は、マウスペイントを使用してインタラクティブにマークできます。

  • 自動モード (-ac または -ar オプションを使用): 画像は、ランダムに適用されるマスク (-ar オプション) または特定のカラーベースのマスク (-ac オプション) を使用して自動的に処理されます。

実行の準備

デモの入力画像またはビデオファイルについては、Open Model Zoo デモの概要デモに使用できるメディアファイルのセクションを参照してください。 デモでサポートされるモデルリストは、<omz_dir>/demos/image_inpainting_demo/python/models.lst ファイルにあります。 このファイルは、モデル・ダウンローダーおよびコンバーターのパラメーターとして使用され、モデルをダウンロードし、必要に応じて OpenVINO IR 形式 (*.xml + *.bin) に変換できます。

モデル・ダウンローダーの使用例:

omz_downloader --list models.lst

モデル・コンバーターの使用例:

omz_converter --list models.lst

サポートされるモデル

  • gmcnn-places2-tf

注: 各種デバイス向けのモデル推論サポートの詳細については、インテルの事前トレーニング・モデルのデバイスサポートパブリックの事前トレーニング・モデルのデバイスサポートの表を参照してください。

実行

-h オプションを指定してアプリケーションを実行すると、使用方法が表示されます。

usage: image_inpainting_demo.py [-h] -m MODEL [-i INPUT] [-d DEVICE]
                                [-p PARTS] [-mbw MAX_BRUSH_WIDTH]
                                [-ml MAX_LENGTH] [-mv MAX_VERTEX] [--no_show]
                                [-o OUTPUT] [-ac C C C] [-ar]

Options:
  -h, --help            Show this help message and exit.
  -m MODEL, --model MODEL
                        Required. Path to an .xml file with a trained model.
  -i INPUT, --input INPUT
                        Required. Path to image.
  -d DEVICE, --device DEVICE
                        Optional. Specify the target device to infer on; CPU or
                        GPU is acceptable. The demo will
                        look for a suitable plugin for device specified.
                        Default value is CPU
  -p PARTS, --parts PARTS
                        Optional. Number of parts to draw mask. Ignored in GUI
                        mode
  -mbw MAX_BRUSH_WIDTH, --max_brush_width MAX_BRUSH_WIDTH
                        Optional. Max width of brush to draw mask. Ignored in
                        GUI mode
  -ml MAX_LENGTH, --max_length MAX_LENGTH
                        Optional. Max strokes length to draw mask. Ignored in
                        GUI mode
  -mv MAX_VERTEX, --max_vertex MAX_VERTEX
                        Optional. Max number of vertex to draw mask. Ignored
                        in GUI mode
  --no_show             Optional. Don't show output. Cannot be used in GUI
                        mode
  -o OUTPUT, --output OUTPUT
                        Optional. Save output to the file with provided
                        filename. Ignored in GUI mode
  -ac C C C, --auto_mask_color C C C
                        Optional. Use automatic (non-interactive) mode with
                        color mask.Provide color to be treated as mask (3 RGB
                        components in range of 0...255). Cannot be used
                        together with -ar.
  -ar, --auto_mask_random
                        Optional. Use automatic (non-interactive) mode with
                        random mask for inpainting (with parameters set by -p,
                        -mbw, -mk and -mv). Cannot be used together with -ac.

空のオプションリストを指定してアプリケーションを実行すると、上記の使用法メッセージとエラーメッセージが表示されます。

自動モード

CPU 上で推論して自動モードで修復デモを実行するコマンドの例:

python3 ./image_inpainting_demo.py -d CPU -i <path_to_image>/car_1.bmp -m <path_to_model>/gmcnn-places2-tf.xml -ar

対話モード

対話モードでは、ユーザーはマウスを使用して (マウスの左ボタンを押したまま) マスクを描画できます。ブラシのサイズは、画面上部のスライダーで調整できます。マスクのペイントが完了したら、[スペース] キーまたは [Enter] キーを押すと修復処理を開始できます。

また、次のホットキーも利用できます。

  • [バックスペース] または [C] で現在のマスクをクリアします

  • [スペース] または [Enter] で修復を開始します

  • [R] ですべての変更をリセットします

  • [Tab] 元画像の表示/非表示を切り替えます

  • [Esc] または [Q] で終了します

元の画像を表示しているときに [バックスペース]、[C] または [R] キーを押すと、デモは元の画像を非表示にして編集モードに戻ります。

デモの出力

自動モードでは、OpenCV を使用して、結果の画像とマスクが適用された画像を表示します。処理した画像をファイルに書き込むこともできます。 自動モードではレポートが表示されます

  • レイテンシー: 入力データの処理に必要な合計処理時間 (データの読み取りから結果の表示まで)。

対話モードでは、マスクを適用して処理の結果を即座に確認するインタラクティブな操作を提供します (上記のホットキーを参照)。