基础知识
目标检测时多任务模型,包括分类和检测。定位物体,还要识别出什么东西。
MMDetection支持目标检测、实例分割、全景分割。覆盖广泛。
主要特点:模块化设计、支持多种检测任务、速度快、性能高。
整个训练推理流程:
- 数据集准备和可视化
- 自定义配置文件
- 训练前可视化验证
- 模型训练
- 模型测试和推理
- 可视化分析
检测环境并安装MMDetection及其依赖
# 检查版本是否和python版本一致
nvcc -V
gcc --version
安装mmengine和mmcv依赖
pip install -U "openmim==0.3.7"
mim install "mmengine==0.7.1"
mim install "mmcv==2.0.0"
rm -rf mmdetection
git clone -b tutorials https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -e .
环境信息收集打印
from mmegine.utils import get_git_hash
from mmegine.utils.dl_utils import collect_env as collect_base_env
import mmdet
def collect_env():
"""Collect the information of the running environments."""
env_info = collect_base_env()
env_info['MMDetection'] = f'{mmdet.__version__}+{get_git_hash()[:7]}'
return env_info
if __name__ == '__main__':
for name, val in collect_env().items():
print(f'{name}: {val}')
数据集准备和可视化
数据集下载
rm -rf cat_dataset*
wget https://download.openmmlab.com/mmyolo/data/cat_dataset.zip
unzip cat_dataset.zip -d cat_dataset && rm cat_dataset.zip
数据可视化
import os
import matplotlib.pyplot as plt
from PIL import Image
%matplotlib inline
%config InlineBackend.figure_format = 'retina'
original_images = []
images = []
texts = []
plt.figure(figsize=(16, 5))
image_paths= [filename for filename in os.listdir('cat_dataset/images')][:8]
for i,filename in enumerate(image_paths):
name = os.path.splitext(filename)[0]
image = Image.open('cat_dataset/images/'+filename).convert("RGB")
plt.subplot(2, 4, i+1)
plt.imshow(image)
plt.title(f"{filename}")
plt.xticks([])
plt.yticks([])
plt.tight_layout()
这部分内容对我来说还是有一定的难度,很多地方还没有跑通,以及之后的json文件修改等等,还在不断解决问题和探索当中。。。