金子邦彦研究室人工知能Windows で動く人工知能関係 Pythonアプリケーション,オープンソースソフトウエア)教師なし学習による物体検出とインスタンスセグメンテーション(CutLER,VideoCutLER,Detectron2, PyTorch, Python を使用)(Windows 上)

教師なし学習による物体検出とインスタンスセグメンテーション(CutLER,VideoCutLER,Detectron2, PyTorch, Python を使用)(Windows 上)

CutLER のインストールと動作確認を行う.

MaskCut は,画像から,複数のセグメンテーション・マスク (segmentation mask)を得る.ViT を使用

CutLER は,MaskCut の結果に対して物体検出を実行.教師なし学習と自己学習 (self-training) を使用.

目次

  1. 前準備
  2. Detectron2 のインストール(Windows 上)
  3. CutLER のインストールと動作確認(Windows 上)

文献

Wang, Xudong and Girdhar, Rohit and Yu, Stella X and Misra, Ishan, Cut and Learn for Unsupervised Object Detection and Instance Segmentation, arXiv preprint arXiv:2301.11320, 2023.

関連する外部ページ

前準備

Git のインストール(Windows 上)

Gitは,バージョン管理システム.ソースコードの管理や複数人での共同に役立つ.

サイト内の関連ページ

Windows での Git のインストール: 別ページ »で説明している.

関連する外部ページ

Git の公式ページ: https://git-scm.com/

CMake のインストール(Windows 上)

CMake はビルドツールである.

サイト内の関連ページ

Windows での cmake のインストール: 別ページ »で説明している.

関連する外部ページ

CMake の公式ダウンロードページ: https://cmake.org/download/

Python のインストール(Windows 上)

サイト内の関連ページ

関連する外部ページ

Python の公式ページ: https://www.python.org/

Build Tools for Visual Studio 2022,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN 8.6 のインストール(Windows 上)

サイト内の関連ページ

NVIDIA グラフィックスボードを搭載しているパソコンの場合には, NVIDIA ドライバNVIDIA CUDA ツールキットNVIDIA cuDNN のインストールを行う.

関連する外部ページ

PyTorch のインストール(Windows 上)

  1. Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

  2. PyTorch のページを確認

    PyTorch のページ: https://pytorch.org/index.html

  3. 次のようなコマンドを実行(実行するコマンドは,PyTorch のページの表示されるコマンドを使う).

    次のコマンドを実行することにより, PyTorch 2.3 (NVIDIA CUDA 11.8 用)がインストールされる. 但し,Anaconda3を使いたい場合には別手順になる.

    事前に NVIDIA CUDA のバージョンを確認しておくこと(ここでは,NVIDIA CUDA ツールキット 11.8 が前もってインストール済みであるとする).

    PyTorch で,GPU が動作している場合には,「torch.cuda.is_available()」により,True が表示される.

    python -m pip install -U --ignore-installed pip
    python -m pip uninstall -y torch torchvision torchaudio torchtext xformers
    python -m pip install -U torch torchvision torchaudio numpy --index-url https://download.pytorch.org/whl/cu118
    
    python -c "import torch; print(torch.__version__, torch.cuda.is_available())" 
    

    [image]

    Anaconda3を使いたい場合には, Anaconda プロンプト (Anaconda Prompt)管理者として実行し, 次のコマンドを実行する. (PyTorch と NVIDIA CUDA との連携がうまくいかない可能性があるため,Anaconda3を使わないことも検討して欲しい).

    conda install -y pytorch torchvision torchaudio pytorch-cuda=11.8 cudnn -c pytorch -c nvidia
    py -c "import torch; print(torch.__version__, torch.cuda.is_available())" 
    

    サイト内の関連ページ

    関連する外部ページ

Python の opencv-python のインストール

  1. Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

  2. opencv-python のインストール

    ※ 「pip install ...」は,Python パッケージをインストールするための操作

    python -m pip install -U opencv-python opencv-contrib-python
    

Detectron2 のインストール(Windows 上)

pycocotools のインストール(Windows 上)

pycocotools のインストールを行う.

  1. Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

  2. pycocotools, COCO 2018 Panoptic Segmentation Task API のインストール

    COCOデータセットをPythonで扱うためには,pycocotools を使う. pycocotools を使うことで,COCOデータセットのアノテーションを扱いやすくなる.

    次のコマンドを実行

    python -m pip install -U --ignore-installed pip
    python -m pip install -U cython wheel
    python -m pip install "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI"
    python -m pip install git+https://github.com/cocodataset/panopticapi.git
    

[image]

Detectron2 のインストール(Windows 上)

次の記事に記載の手順による.

https://dgmaxime.medium.com/how-to-easily-install-detectron2-on-windows-10-39186139101c

  1. Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

  2. Detectron2 のダウンロード
    python -m pip uninstall -y detectron2
    cd %HOMEPATH%
    rmdir /s /q detectron2
    git clone --recursive https://github.com/facebookresearch/detectron2
    cd detectron2
    

    [image]
  3. ソースコードの書き換え
    notepad detectron2\layers\csrc\nms_rotated\nms_rotated_cuda.cu
    

    [image]

    次のように書き換える

    [image]
  4. インストール
    cd %HOMEPATH%\detectron2
    python -m pip install -e .
    

    [image]
    (以下省略)
  5. 引き続き,COCO 2018 Panoptic Segmentation Task API, The Cityscapes Dataset 用スクリプトのインストール
    pip install git+https://github.com/cocodataset/panopticapi.git
    pip install git+https://github.com/mcordts/cityscapesScripts.git
    

    [image]

CutLER のインストール(Windows 上)

PyDenseCRF のインストール

文献】 Efficient Inference in Fully Connected CRFs with Gaussian Edge Potentials Philipp Krähenbühl and Vladlen Koltun NIPS 2011

関連する外部ページ

  1. Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

  2. インストール

    次のコマンドを実行.

    「Error compiling Cython file: from eigen cimport * pydensecrf\densecrf.pxd:1:0: 'eigen.pxd' not found」の エラーメッセージの回避のため「copy pydensecrf\eigen.pxd .」を実行している.

    python -m pip install -U eigen cython
    cd %HOMEPATH%
    rmdir /s /q pydensecrf
    git clone https://github.com/lucasb-eyer/pydensecrf.git
    cd pydensecrf
    copy pydensecrf\eigen.pxd .
    python setup.py build
    python setup.py develop
    python setup.py install
    

    PyDenseCRF のインストールで, 上のコマンドでエラーメッセージが出る場合には,次を実行

    1. https://www.lfd.uci.edu/~gohlke/pythonlibs/#pydensecrf にアクセス
    2. Python のバージョンにあう「win_amd64.whl」のファイルをダウンロード.Python 3.10 を使っている場合には,pydensecrf‑1.0rc2‑cp310‑cp310‑win_amd64.whl をダウンロード
    3. 次のコマンドでインストール.「pydensecrf-1.0rc2-cp310-cp310-win_amd64.whl」のところは,実際にダウンロードしたファイル名に置き換える.
      python -m pip install pydensecrf-1.0rc2-cp310-cp310-win_amd64.whl
      
  3. 動作確認

    次の Python プログラムを実行.エラーメッセージは出ないことを確認.

    import numpy as np
    import pydensecrf.densecrf as dcrf
    d = dcrf.DenseCRF2D(640, 480, 5)
    print(d)
    

CutLER のインストール(Windows 上)

  1. Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

  2. CutLER のインストール

    次のコマンドを実行.

    cd %HOMEPATH%
    rmdir /s /q CutLER
    git clone --recursive https://github.com/facebookresearch/CutLER.git
    cd CutLER
    python -m pip install -U faiss_cpu
    python -m pip install -U opencv-python scikit-image scikit-learn shapely timm pyyaml colored fvcore gdown
    

MaskCut による画像セグメンテーション

公式ページの https://github.com/facebookresearch/CutLER の手順により行う.

次のコマンドの実行により,demo.jpg ができる.

cd %HOMEPATH%
cd CutLER
cd maskcut
python demo.py --img-path imgs/demo2.jpg --N 3 --tau 0.15 --vit-arch base --patch-size 8 --cpu --out-dir .
demo.jpg

[image]

実行結果

[image]

元画像

[image]

CutLER を用いた教師無し学習のゼロショットの物体検出とインスタンスセグメンテーション

公式ページの https://github.com/facebookresearch/CutLER の手順により行う.

前準備として学習済みモデルのダウンロード,ソースコードの修正を行う

  1. 次のコマンドの実行により,学習済みモデルのダウンロードを行う.
    cd %HOMEPATH%
    cd CutLER
    cd cutler
    curl -L -O http://dl.fbaipublicfiles.com/cutler/checkpoints/cutler_cascade_final.pth
    
  2. 次に,data\transforms\transform.py の中の「LINEAR」を「BILINEAR」に書き換える
    cd %HOMEPATH%
    cd CutLER
    cd cutler
    notepad data\transforms\transform.py
    

    [image]

ゼロショットの物体検出とインスタンスセグメンテーション