👏
mmdetection環境構築(Windows編)
はじめに
この記事はWindows 10でmmdetectionを動作させるための環境構築についてのメモである。
環境構築の手順を記載した後、instance segmentationのサンプルの実行方法を記載する。
本記事をまとめたGitHubリポジトリはこちら。
対象環境
- OS: Windows 10 Pro
- CPU: Core i9-9900K
- RAM: 64GB
- GPU: RTX2080Ti
- CUDA 11.3
構築手順
1. PyTorchをインストール
自分のPCの環境にあったPyTorchをインストールする。
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
2. その他必要なライブラリをインストール
pip install -U openmim opencv-python Pillow matplotlib
3. mmcvをインストール
# 任意のディレクトリで実行する
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
pip install -r requirements.txt
mim install -e .
4. mmdetectionをインストール
# 任意のディレクトリで実行する
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -e .
Instance Segmentationを試す
コード自体は本家リポジトリのサンプルコードを流用する。
まずモデルをcheckpointディレクトリにダウンロードする。
mim download mmdet --config mask-rcnn_r50-caffe_fpn_ms-poly-3x_coco --dest ./checkpoints
コードを実装する。
import argparse
import mmcv
import mmdet
from mmdet.apis import init_detector, inference_detector
from mmdet.utils import register_all_modules
from mmdet.registry import VISUALIZERS
def parse_args():
parser = argparse.ArgumentParser(description='MMDetection instance segmentation demo')
parser.add_argument('image', help='image file')
parser.add_argument('--out', type=str, default=None, help='Output image file')
parser.add_argument("--config", type=str, required=True, help="config file")
parser.add_argument("--checkpoint", type=str, required=True, help="checkpoint file")
args = parser.parse_args()
return args
def main() -> None:
args = parse_args()
register_all_modules()
model = init_detector(args.config, args.checkpoint,
device='cuda:0') # or device='cuda:0'
# Use the detector to do inference
image = mmcv.imread(
args.image, channel_order='rgb')
result = inference_detector(model, image)
visualizer = VISUALIZERS.build(model.cfg.visualizer)
# the dataset_meta is loaded from the checkpoint and
# then pass to the model in init_detector
visualizer.dataset_meta = model.dataset_meta
# show the results
visualizer.add_datasample(
'result',
image,
data_sample=result,
draw_gt=None,
wait_time=0,
)
visualizer.show()
if args.out is not None:
frame = visualizer.get_image()
frame = mmcv.imconvert(frame, 'rgb', 'bgr')
mmcv.imwrite(frame, args.out)
if __name__ == "__main__":
main()
以下コマンドで実行する。
python test_mmdet.py {画像ファイルのパス} --config {設定ファイルのパス} --checkpoint {チェックポイントファイルのパス}
# 今回ダウンロードしたチェックポイントの場合は、--config mmdetection/configs/mask_rcnn/mask-rcnn_r50-caffe_fpn_ms-poly-3x_coco.py となる
おわりに
今回は環境構築とinstance segmentationを動かしただけだが、今後は他の公開されているモデルを試したり、トレーニングも行いたい。
Discussion