トップページ人工知能,実世界DB画像のセグメンテーション (image segmentation)インスタンス・セグメンテーションで特定クラスのセグメンテーション(Mask R-CNN, PixelLib, TensorFlow, Python を使用)

インスタンス・セグメンテーションで特定クラスのセグメンテーション(Mask R-CNN, PixelLib, TensorFlow, Python を使用)

事前学習済みの Mask R-CNN で,特定クラスのオブジェクトのセグメンテーションを行う.

[image]

[image]

[image]

この資料の URL: https://www.kkaneko.jp/db/seq/pixellibtarget.html

【サイト内の関連ページ】

参考Webページ:

1. Google Colab へのリンク

このページの内容は,Google Colaboratory でも実行できる.

そのために,次の URL で,Google Colaboratory のノートブックを準備している.

次のリンクをクリックすると,Google Colaboratoryノートブックが開く. そして,Google アカウントでログインすると,Google Colaboratory のノートブック内のコードを実行することができる.Google Colaboratory のノートブックは書き換えて使うこともできる.このとき,書き換え後のものを,各自の Google ドライブ内に保存することもできる.

準備中

2. (1) 前準備(Google Colaboratory のノートブックを新規作成して使う場合)

自分で,Google Colaboratory のノートブックを新規作成する場合(上のリンクを使わない)のため,手順を説明する.

パソコンを使う場合は,下に「前準備(パソコンを使う場合)」で説明している.

  1. Google Colaboratory のWebページを開く

    https://colab.research.google.com

    Google Colab はオンラインの Python 開発環境. 使用するには Google アカウントが必要

  2. ファイル」で、「ノートブックを新規作成」を選ぶ

    [image]
  3. Google アカウントでのログインが求められたときはログインする

    [image]

    [image]

(2) (自分のパソコンで Python を動かす場合)Python の準備

Python のインストール,pip と setuptools の更新,Python 開発環境

Python の URL: http://www.python.org/

【Python, pip の使い方】

Python, pip は,次のコマンドで起動できる.

Python 開発環境のインストール】

TensorFlow,tensorflow_datasets,numpy,matplotlib, seaborn, scikit-learn のインストール

画像のインスタンスセグメンテーション(PixelLib, Mask RCNN モデル)

次のページの手順に従う.

https://pixellib.readthedocs.io/en/latest/video_instance.html

Windows での実行手順を示す

  1. coco を用いて学習済みの Mask RCNN モデルをダウンロード
    mkdir c:\data
    cd c:\data
    curl -LO https://github.com/ayoolaolafenwa/PixelLib/releases/download/1.2/mask_rcnn_coco.h5
    

    [image]
  2. 画像ファイルの準備

    画像ファイルは,c:\dataに置く.

    ここでは, https://pixellib.readthedocs.io/en/latest/Image_instance.html で公開されている Sample2.jpg を使用

  3. インスタンスセグメンテーションの実行

    次の Python プログラムを実行

    import pixellib
    from pixellib.instance import instance_segmentation
    
    segment_image = instance_segmentation()
    segment_image.load_model("c:/data/mask_rcnn_coco.h5")
    target_classes = segment_image.select_target_classes(person=True)
    segment_image.segmentImage("c:/data/Sample2.jpg", segment_target_classes=target_classes, extract_segmented_objects=True, save_extracted_objects=True, output_image_name= "c:/data/Sample2_iseg_target1.jpg")
    

    [image]
  4. 画像ファイルの表示
    import matplotlib.pyplot as plt
    a = plt.imread("c:/data/Sample2.jpg")
    plt.imshow(a)
    plt.show()
    b = plt.imread("c:/data/Sample2_iseg_target1.jpg")
    plt.imshow(b)
    plt.show()
    

    [image]
  5. インスタンスセグメンテーションの実行

    次の Python プログラムを実行

    import pixellib
    from pixellib.instance import instance_segmentation
    
    segment_image = instance_segmentation()
    segment_image.load_model("c:/data/mask_rcnn_coco.h5")
    target_classes = segment_image.select_target_classes(car=True)
    segment_image.segmentImage("c:/data/Sample2.jpg", segment_target_classes=target_classes, extract_segmented_objects=True, save_extracted_objects=True, output_image_name= "c:/data/Sample2_iseg_target2.jpg")
    

    [image]
  6. 画像ファイルの表示
    import matplotlib.pyplot as plt
    a = plt.imread("c:/data/Sample2.jpg")
    plt.imshow(a)
    plt.show()
    b = plt.imread("c:/data/Sample2_iseg_target2.jpg")
    plt.imshow(b)
    plt.show()
    

    [image]