openmmlab目标检测(代码片段)

Arrow Arrow     2023-04-06     676

关键词:

OpenMMLab 目标检测

1. 目标检测简介

  • 一个目标框至少6个参数(矩形框<4>、类别<1>、置信度<1>)
  • 两阶段目标检测的开山之作: Faster R-CNN (也是目标检测任务中的一个开山之作)
  • 单阶段目标检测算法的代表作:YOLO<推荐使用V5>、SSD
  • 网络结构
网络部件功能详细描述
主干网络产生多级特征图空间分辨率会越来越小,通道数通常会越来越大,信息会越来越集中,通常就集中到channel上,channel就会越来越多
颈部融合不同级的特征越靠近输入的级,其细节更好,但语义信息比较弱,输出多尺度(多种分辨率)的特征图。不同分辨率的特征图通常用于检测不同大小的物体
检测头通常是由一个或多个卷积构成的模块,只要在这个特征图上扫一下, 在对应位置如果有物体就可以给一个输出

1.1 滑窗

  • 工作原理

  • 不足之外 (效率太代、计算量太大)

  • 改进思路 1:区域提议

    • 依赖外部算法,Selective Search不是神经网络的一部分,不可训练,不符合学习的理念。
  • 改进思路 2:分析滑窗中的重复计算

  • 消除滑窗中的重复计算

  • 在特征图上进行密集预测

  • 目标检测技术的演进

2. 基础知识

  • Anchor(锚框):以特征图上的位置在原图上对应的位置为中心设定不同大小、不同长宽比,同时又重合的基准框。

2.1 边界框(Bounding Box)


2.2 交并比 Intersection Over Union

2.3 置信度 Confidence Score

2.4 非极大值抑制 Non-Maximum Suppression

2.5 边界框回归 Bounding Box Regression

2.6 边界框编码 Bbox Coding

3. 两阶段目标检测算法

3.1 多尺度检测技术

4. 单阶段目标检测算法

4.1 YOLO: You Only Look Once (2015)

4.2 SSD: Single Shot MultiBox Detetor (2016)

5. 无锚框目标检测算法

6. Detection Transformers

7. 目标检测模型的评估方法

8. MMDetection实战

8.1 常用命令

  • 使用mim搜索预训练模型
mim search mmdet --model "mask r-cnn"
  • 使用mim下载模型
mim download mmdet --config mask_rcnn_r50_fpn_2x_coo --dest .
  • 分割预测并显示结果
from mmdet.apis import init_detector, inference_detector, show_result_pyplot
config_file = "mask_rcnn_r50_fpn_2x_coco.py"
checkpoint_file = "mask_rcnn_r50_fpn_2x_coco_bbox_mAP-0.354_20200505_003907-3e542a40.pth"
model = init_detector(config_file, checkpoint_file)
result = inference_detector(model, "demo.jpg")
show_result_pyplot(model, "demo.jpg", result)
  • 读取完整的配置文件 (先继承后修改)
## 读基础的配置文件, 在fruit.py中加入下面一行
_base_ = ['yolov3_mibilenetv2_mstrain-416_300e_coco.py']

## 上面一行代码相当于下面的内容
from mmcv import Config
config = Config.fromfile('fruit.py')
print(config.pretty_text)
  • 模型训练
mim train mmdet fruit.py
  • 训练自己的数据集及类别
  • 修改训练epoch(轮数)、学习率(若在预训练的基础上,则改小)和日志
  • 测试在所有测试数据集上的效果
mim test mmdet fruit.py --checkpoint /home/work_dirs/fruit/latest.pth -- show-dir work_dirs/fruit/

8.1 MMDetection环境搭建

8.2 OpenMMLab 项目中的重要概念——配置文件

  • 深度学习模型的训练涉及几个方面:
    • 模型结构:模型有几层、每层多少通道数等等
    • 数据集:即用什么数据训练模型,数据集划分、数据文件路径、数据增强策略等等
    • 训练策略:梯度下降算法、学习率参数、batch_size、训练总轮次、学习率变化策略等等
    • 运行时 GPU、分布式环境配置等等
    • 一些辅助功能 :如打印日志、定时保存checkpoint等等
  • 在 OpenMMLab 项目中,所有这些项目都涵盖在一个配置文件中,一个配置文件定义了一个完整的训练
    过程
    • model:字段定义模型
    • data:字段定义数据
    • optimizer、lr_config: 等字段定义训练策略
    • load_from:字段定义与训练模型的参数文件

8.3 MMDetection代码库结构

8.4 配置文件的运作方式

8.5 两阶段检测器的构成

8.6 单阶段检测器的构成

8.7 RetinaNet 模型配置

8.7.1 主干网络

8.7.2 颈部

8.7.3 bbox head 1

8.7.4 bbox head 2

8.8 训练自己的检测模型

  • 训练:寻找最小梯度,使得损失函数最小的这样一组参数的过程

openmmlab实战营打卡-第五课(代码片段)

(五)MMDetection代码教学AI实战营第五课!最热门的目标检测工具箱MMDetection来啦!本节课为如何使用MMDetection训练自己的模型!链接5MMDetection代码教学_哔哩哔哩_bilibili目录一、目标检测工具包MMDetection1.支持的... 查看详情

openmmlab实战营打卡-第5课(代码片段)

OpenMMLab实战营打卡-第5课注:本博客仅用于个人上课随手笔记计算机视觉之目标检测代码教学一、上课笔记1.mmdetection主要任务:可以进行目标检测,实例分割和全景分割。检测器detector主要结构:backbone:主干特征... 查看详情

计算机视觉框架openmmlab开源学习:目标检测基础

...展,并学习目标检测模型,了解计算机视觉框架OpenMMLab的MMDetection工具基本原理及使用,为后续目标检测实战做铺垫。计算机视觉框架OpenMMLab开源学习(四):目标检测基础一、目标检测概念与应用 二、... 查看详情

目标检测工具箱mmdetection安装及使用示例(代码片段)

   之前在https://blog.csdn.net/fengbingchun/article/details/86693037中介绍过MMDetection,它是OpenMMLab项目的一部分,是基于PyTorch的目标检测开源工具箱,最新发布的版本为v2.25.1,License为Apache-2.0。   最新版的MMDetectio 查看详情

openmmlab实战营打卡-第四课目标检测算法基础

(四)计算机视觉之目标检测算法基础目录前言一、目标检测是什么?1.目标检测VS图像分类2.检测最朴素方法——滑窗SlidingWindow(1)滑窗的效率问题(2)改进3.目标检测的基本范式4.目标检测技术的演... 查看详情

openmmlab实战营打卡-第5课

本节内容:   本节课为代码实践课MMDetection项目概览MMDetection运行环境搭建(基于Openbayes计算平台)使用MMDetection进行模型推理使用MMDetection训练模型,检测图像中水果MMDetection是用于做目标检测的工具包,首... 查看详情

openmmlab实战营打卡-第4课

OpenMMLab目标检测目标检测滑窗滑窗的效率问题在特征图上进行密集预测目标检测技术的演进参考资料目标检测滑窗设定一个固定大小的窗口遍历图像所有位置,所到之处用分类模型(假设已经训练好)识别窗口中的内... 查看详情

使用mmdetection进行目标检测实例和全景分割(代码片段)

...Detection是一个基于PyTorch的目标检测开源工具箱,它是OpenMMLab项目的一部分。包含以下主要特性:支持三个任务目标检测(ObjectDetection)是指分类并定位图片中物体的任务实例分割(InstanceSegmentation)是指分... 查看详情

openmmlab实战营打卡-第5课

OpenMMLabMMDetectionMMDetectionMMDetection可以做什么MMDetection环境搭建两阶段检测器的构成单阶段检测器的构成RetinaNet模型配置–主干网络RetinaNet模型配置–颈部RetinaNet模型配置–bboxhead1RetinaNet模型配置–bboxhead2在MMDetection中配置COCO数据... 查看详情

基于mmrotate训练自定义数据集做旋转目标检测2022-3-30(代码片段)

...Rotate是一款基于PyTorch的旋转框检测的开源工具箱,是OpenMMLab项目的成员之一。里面包含了rcnn、fasterrcnn、r3det等各种旋转目标的检测模型,适合于遥感图像领域的目标检测。1.MMrotate下载MMrotate包下载:下载链接目录结... 查看详情

如何快速入门深度学习目标检测?(代码片段)

学习目标了解目标检测的任务知道目标检测的常用数据集知道目标检测算法的评价指标掌握非极大值NMS算法的应用了解常用的目标检测算法分类1.目标检测目标检测(ObjectDetection)的任务是找出图像中所有感兴趣的目标&#x... 查看详情

目标检测雷达目标cfar检测算法(代码片段)

目录一、概述1、基本概念2、基础知识二、CFAR检测算法1、基本原理2、几种典型的CFAR检测算法(1)CA(CellAveraging)-CFAR检测算法(2)GO-CFAR、SO-CFAR检测算法(3)OS-CFAR检测算法(4)补充说明三、不同CFAR检测算法... 查看详情

深度学习目标检测概述(代码片段)

目录1目标检测2常用的开源数据集2.1PASCALVOC数据集2.2MSCOCO数据集3常用的评价指标3.1IOU3.2mAP(*MeanAveragePrecision*)4NMS(非极大值抑制)5目标检测方法分类6总结1目标检测目标检测(ObjectDetection)的任务是找出... 查看详情

目标检测相关论文和代码资源汇总(代码片段)

目标检测相关论文和代码资源汇总文章目录目标检测相关论文和代码资源汇总2014~2019模型汇总(红色为推荐必读篇):Performancetable性能表2014论文及代码2015论文及代码2016论文及代码2017论文及代码2018论文及代码20... 查看详情

基于区域的目标检测(代码片段)

目标检测,即在一幅图里框出某个目标位置.有2个任务.定位出目标的边界框识别出边界框内的物体的类别Sliding-windowdetectors一种暴力的目标检测方法就是使用滑动窗口,从左到右,从上到下扫描图片,然后用分类器识别窗口中的目标.... 查看详情

商品检测数据集训练目标检测数据集与标记(代码片段)

目标检测数据集与标记学习目标1.常用目标检测数据集2.pascalvoc数据集介绍3.XML4.数据集标记工具介绍4.1介绍4.2安装5.商品数据集标记5.1需求介绍5.2标记6.总结学习目标目标了解常用目标检测数据集了解数据集构成了解数据集标记的... 查看详情

目标检测网络ssd详解(代码片段)

SSD目标检测网络  使用SSD检测网络一段时间了,研究过代码,也踩过坑,算是有能力来总结下SSD目标检测网络了。1.SSD300_Vgg16  最基础的SSD网络是以Vgg16作为backbone,输入图片尺寸为300x300,这里以其为示例,详细剖析下SSD检测... 查看详情

转:目标检测算法总结(代码片段)

目标检测是很多计算机视觉任务的基础,不论我们需要实现图像与文字的交互还是需要识别精细类别,它都提供了可靠的信息。本文对目标检测进行了整体回顾,第一部分从RCNN开始介绍基于候选区域的目标检测器,包括FastR-CNN... 查看详情