画像のセグメント化 Python* デモ¶
このトピックでは、3D 畳み込みネットワークを使用して 3D 画像をセグメント化する 3D セグメント化デモを実行する方法を説明します。
どのように動作するか¶
起動時に、デモはコマンドライン・パラメーターを受け取り、モデルとイメージを OpenVINO™ ランタイムプラグインに読み込みます。
注: デフォルトでは、Open Model Zoo のデモは BGR チャンネル順序での入力を期待します。RGB 順序で動作するようにモデルをトレーニングした場合は、サンプルまたはデモ・アプリケーションでデフォルトのチャンネル順序を手動で再配置するか、
--reverse_input_channels
引数を指定したモデル・オプティマイザー・ツールを使用してモデルを再変換する必要があります。引数の詳細については、[前処理計算の埋め込み](@ref openvino_docs_MO_DG_Additional_Optimization_Use_Cases) の入力チャンネルを反転するセクションを参照してください。
実行の準備¶
デモの入力画像またはビデオファイルについては、Open Model Zoo デモの概要のデモに使用できるメディアファイルのセクションを参照してください。デモでサポートされるモデルリストは、<omz_dir>/demos/3d_segmentation_demo/python/models.lst
ファイルにあります。このファイルは、モデル・ダウンローダーおよびコンバーターのパラメーターとして使用され、モデルをダウンロードし、必要に応じて OpenVINO IR 形式 (*.xml + *.bin) に変換できます。
モデル・ダウンローダーの使用例:
omz_downloader --list models.lst
モデル・コンバーターの使用例:
omz_converter --list models.lst
サポートされるモデル¶
brain-tumor-segmentation-0002
注: 各種デバイス向けのモデル推論サポートの詳細については、インテルの事前トレーニング・モデルのデバイスサポートとパブリックの事前トレーニング・モデルのデバイスサポートの表を参照してください。
実行¶
-h
または --help
オプションを指定してアプリケーションを実行すると、使用方法が表示されます。
usage: 3d_segmentation_demo.py [-h] -i PATH_TO_INPUT_DATA -m PATH_TO_MODEL -o
PATH_TO_OUTPUT [-d TARGET_DEVICE] [-nii]
[-nthreads NUMBER_THREADS]
[-s [SHAPE [SHAPE ...]]] [-ms N1,N2,N3,N4]
[--full_intensities_range]
Options:
-h, --help Show this help message and exit.
-i PATH_TO_INPUT_DATA, --path_to_input_data PATH_TO_INPUT_DATA
Required. Path to an input folder with NIfTI
data/NIFTI file/TIFF file
-m PATH_TO_MODEL, --path_to_model PATH_TO_MODEL
Required. Path to an .xml file with a trained model
-o PATH_TO_OUTPUT, --path_to_output PATH_TO_OUTPUT
Required. Path to a folder where output files will be
saved
-d TARGET_DEVICE, --target_device TARGET_DEVICE
Optional. Specify a target device to infer on: CPU, GPU.
Use "-d HETERO:<comma separated devices list>" format
to specify HETERO plugin.
-nii, --output_nifti Show output inference results as raw values
-nthreads NUMBER_THREADS, --number_threads NUMBER_THREADS
Optional. Number of threads to use for inference on
CPU (including HETERO cases).
-s [SHAPE [SHAPE ...]], --shape [SHAPE [SHAPE ...]]
Optional. Specify shape for a network
-ms N1,N2,N3,N4, --mri_sequence N1,N2,N3,N4
Optional. Transfer MRI-sequence from dataset order to the network order.
--full_intensities_range
Optional. Take intensities of the input image in a full range.
オプションの空のリストを指定してアプリケーションを実行すると、使用法メッセージとエラーメッセージが表示されます。
例えば、CPU 上の複数の出力を持つトレーニング済みネットワークを使用して 3D TIFF 画像で推論を実行するには、次のコマンドを実行します。
python3 3d_segmentation_demo.py -i <path_to_image>/inputImage.tiff -m <path_to_model>/brain-tumor-segmentation-0002.xml -d CPU -o <path_to_output> -ms 1,2,3,0 --full_intensities_range
また、CPU 上の複数の出力を持つトレーニング済みネットワークを使用して 3D NIfTI 画像の推論を実行し、出力 TIFF および NIFTI 画像を保存するには、次のコマンドを実行します。
python3 3d_segmentation_demo.py -i <path_to_nifti_images> -m <path_to_model>/brain-tumor-segmentation-0002 -d CPU -o <path_to_output> -nii -ms 1,2,3,0 --full_intensities_range
そして、単一の 3D NIfTI イメージで推論を実行し、出力 TIFF イメージを保存するには、次のコマンドを実行します。
python3 3d_segmentation_demo.py -i <path_to_nifti_image>/PackedImage.nii -m <path_to_model>/brain-tumor-segmentation-0002 -d CPU -o <path_to_output> -ms 1,2,3,0 --full_intensities_range
-ms
オプションは、データセットに依存する入力モダリティーを調整します。例えば、Medical Decathlon 脳腫瘍セグメント化データのモダリティーは、ネットで必要とされる順序とは異なります。Medical Decathlon 脳腫瘍データを使用して正しい順番にするには、brain-tumor-segmentation-0002
の適切なオプションは 1,2,3,0
となります。
python3 3d_segmentation_demo.py -i <path_to_nifti_images> -m <path_to_model>/brain-tumor-segmentation-0002 -d CPU -o <path_to_output> -nii -ms 1,2,3,0 --full_intensities_range
--full_intensities_range
オプションは入力データの前処理に関連します。これはモデルによって異なる場合があります。例えば、brain-tumor-segmentation-0002
では、全範囲の Z スコアの正規化が必要なだけです。したがって、brain-tumor-segmentation-0002
モデルを使用するには、--full_intensities_range
フラグを指定する必要があります。
デモの出力¶
デモでは、複数ページの TIFF 画像と NIFTI アーカイブが出力されます。
デモレポート
レイテンシー: 入力データの処理に必要な合計処理時間 (データの読み取りから結果の表示まで)。