MMDetection は, OpenMMLab の構成物で,物体検出, インスタンス・セグメンテーション (instance segmentation), パノプティック・セグメンテーション (panoptic segmentation) の機能を提供する.
【関連情報】
Chen, Kai and Wang, Jiaqi and Pang, Jiangmiao and Cao, Yuhang and Xiong, Yu and Li, Xiaoxiao and Sun, Shuyang and Feng, Wansen and Liu, Ziwei and Xu, Jiarui and Zhang, Zheng and Cheng, Dazhi and Zhu, Chenchen and Cheng, Tianheng and Zhao, Qijie and Li, Buyu and Lu, Xin and Zhu, Rui and Wu, Yue and Dai, Jifeng and Wang, Jingdong and Shi, Jianping and Ouyang, Wanli and Loy, Chen Change and Lin, Dahua, MMDetection: Open MMLab Detection Toolbox and Benchmark, arXiv:1906.07155, 2019.
Windows での Git のインストール: 別ページ »で説明
【関連する外部ページ】
Git の公式ページ: https://git-scm.com/
Windows での Python 3.10,関連パッケージ,Python 開発環境のインストール: 別ページ »で説明
【サイト内の関連ページ】
Python のまとめ: 別ページ »にまとめ
【関連する外部ページ】
Python の公式ページ: https://www.python.org/
Windows での Build Tools for Visual Studio 2022,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN v8.6 のインストールと動作確認: 別ページ »で説明
【関連する外部ページ】
コマンドプロンプトを管理者として実行: 別ページ »で説明
PyTorch のページ: https://pytorch.org/index.html
次のコマンドは, PyTorch 2.0 (NVIDIA CUDA 11.8 用) をインストールする. 事前に NVIDIA CUDA のバージョンを確認しておくこと(ここでは,NVIDIA CUDA ツールキット 11.8 が前もってインストール済みであるとする).
python -m pip install -U pip python -m pip install -U torch torchvision torchaudio numpy numba --index-url https://download.pytorch.org/whl/cu118 python -c "import torch; print(torch.__version__, torch.cuda.is_available())"
インストールの方法は複数ある. ここでは, NVIDIA CUDA ツールキットを使うことも考え, インストールしやすい方法として,ソースコードからビルドしてインストールする方法を案内している.
MMCV のインストールを行う.
インストールの方法は複数ある. ここでは, NVIDIA CUDA ツールキットを使うことも考え, インストールしやすい方法として,ソースコードからビルドしてインストールする方法を案内している.
コマンドプロンプトを管理者として実行: 別ページ »で説明
python -c "import torch; TORCH_VERSION = '.'.join(torch.__version__.split('.')[:2]); print(TORCH_VERSION)"
このとき,実際には 11.8 をインストールしているのに,「cu117」のように古いバージョンが表示されることがある.このような場合は,気にせずに続行する.
python -c "import torch; CUDA_VERSION = torch.__version__.split('+')[-1]; print(CUDA_VERSION)"
MMTracking が MMCV 1.6.2 に依存している (2022/12). 将来の MMTracking の利用を想定して MMCV 1.6.2 をインストール
https://mmcv.readthedocs.io/en/latest/get_started/installation.html に記載の手順による
python -m pip install -U pip python -m pip install -U opencv-python python -m pip install mmcv-full==1.6.2
python -c "from mmcv.ops import get_compiling_cuda_version, get_compiler_version; print(get_compiling_cuda_version()); print(get_compiler_version())"
MIM, MMDetection のインストールを行う.
コマンドプロンプトを管理者として実行: 別ページ »で説明
https://mmdetection3d.readthedocs.io/en/latest/getting_started.html#installation による.
python -m pip install -U git+https://github.com/open-mmlab/mim.git python -m pip install -U git+https://github.com/open-mmlab/mmdetection.git python -c "import mmdet; print(mmdet.__version__)"
cd %HOMEPATH% rmdir /s /q mmdetection git clone https://github.com/open-mmlab/mmdetection.git cd mmdetection python setup.py develop
パノプティック・セグメンテーションと LVIS データセットのため
python -m pip install instaboostfast python -m pip install git+https://github.com/cocodataset/panopticapi.git python -m pip install git+https://github.com/lvis-dataset/lvis-api.git
コマンドプロンプトを管理者として実行: 別ページ »で説明
COCO データセットを用いての事前学習済みモデルを使用している.
MMDetection の model zoo のページ: https://github.com/open-mmlab/mmdetection/blob/master/docs/en/model_zoo.md
ここではCOCO, Faster-RCNN, R-50-FPN を選ぶことにする. COCO データセットで学習済みのモデルである.
次のコマンドを実行する.
cd %HOMEPATH%\mmdetection mkdir checkpoints cd checkpoints curl -O https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
次の Python プログラムを実行する.mmcv を用いた表示を行うので,Jupyter QtConsole や Jupyter ノートブック (Jupyter Notebook) の利用が便利である.
Python プログラムは,公式ページhttps://mmdetection.readthedocs.io/en/latest/get_started.html のものを書き換えて使用.
下図では,Python プログラムの実行のため,jupyter qtconsole を使用している.
import os import torch from mmdet.apis import init_detector, inference_detector import mmcv os.chdir((os.getenv('HOMEPATH') + '\\' + 'mmdetection')) config_file = 'configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py' checkpoint_file = 'checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth' device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') model = init_detector(config_file, checkpoint_file, device=device) img = 'demo/demo.jpg' # or img = mmcv.imread(img), which will only load it once result = inference_detector(model, img) model.show_result(img, result, show=True) model.show_result(img, result, out_file='result.jpg')
エラーメッセージが出ないことを確認.
次の Python プログラムを実行する.mmcv を用いた表示を行うので,Jupyter QtConsole や Jupyter ノートブック (Jupyter Notebook) の利用が便利である.
import os import torch from mmdet.apis import init_detector, inference_detector import mmcv os.chdir((os.getenv('HOMEPATH') + '\\' + 'mmdetection')) config_file = 'configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py' checkpoint_file = 'checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth' device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') model = init_detector(config_file, checkpoint_file, device=device) video = mmcv.VideoReader('demo/demo.mp4') for frame in video: result = inference_detector(model, frame) model.show_result(frame, result, show=True, wait_time=1)