トップページ人工知能,実世界DB画像のセグメンテーション (image segmentation)画像のセグメンテーション(PixelLib, TensorFlow, Python を使用)(Google Colab 上もしくはパソコン上)

画像のセグメンテーション(PixelLib, TensorFlow, Python を使用)

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

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

参考Webページ:

1. Google Colab へのリンク

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

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

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

https://colab.research.google.com/drive/1MphCVpZDBInlY40PIslzMG7XONB5umGp?usp=sharing

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, Ade20k モデル)

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

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

Windows での実行手順を示す

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

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

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

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

  3. セマンティックセグメンテーションの実行

    次の Python プログラムを実行

    import pixellib
    from pixellib.semantic import semantic_segmentation
    
    segment_image = semantic_segmentation()
    segment_image.load_ade20k_model("c:/data/deeplabv3_xception65_ade20k.h5")
    segment_image.segmentAsAde20k("c:/data/Sample1.jpg", output_image_name= "c:/data/Sample1_sseg.jpg")
    segment_image.segmentAsAde20k("c:/data/Sample1.jpg", output_image_name= "c:/data/Sample1_sseg_overlay.jpg", overlay = True)
    

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

    [image]

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

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

https://pixellib.readthedocs.io/en/latest/Image_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")
    segment_image.segmentImage("c:/data/Sample2.jpg", output_image_name= "c:/data/Sample2_iseg.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.jpg")
    plt.imshow(b)
    plt.show()
    

    [image]

ビデオカメラで動くインスタンス・セグメンテーションのプログラム

次の URL で公開されているプログラムを,実行結果例を付けて紹介する.

  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. 次のプログラムを実行
    import pixellib
    from pixellib.instance import instance_segmentation
    import cv2
    
    capture = cv2.VideoCapture(1)
    
    segment_video = instance_segmentation()
    segment_video.load_model("c:/data/mask_rcnn_coco.h5")
    segment_video.process_camera(capture, frames_per_second= 15, output_video_name="output_video.mp4", show_frames= True,
    frame_name= "frame")
    

    [image]