目标检测 - 常见目标检测算法大汇总
点击下方卡片,关注“新机器视觉”公众号
重磅干货,第一时间送达
第1章 目标检测概述
目标检测是对图像分类任务的进一步加深,他不仅要识别出图片中各种类别的目标,还要把他们的位置找出来用矩形框框住。
在实际操作中,通常先找出目标的位置(通过坐标轴方框标注出来),然后在对标注的目标进行分类。
目标检测是深度学习在计算机视觉领域一个非常重要的应用,从本节开始,我们将陆续开始目标检测的学习。
根据算法的流程可以将目标检测算法分为两种流派:
(1)以Faster R-CNN为代表的Two-Stage算法:
它检测目标主要分为两个部分
通过专门模块去生成候选框
寻找前景以及调整边界框
(2)以SSD、YOLO为代表的One-Stage算法
它是直接基于anchor直接进行分类以及调整边界框。
这两种方式各有各的特别,Two-Stage很明显检测的精度要高一点,但是检测速度慢;
One-Stage放弃了高精度,但是换来了速度,速度比Two-Stage算法快很多。
接下来简单介绍几种常用的目标检测算法
第2章 常见的Two-Stage算法
2.1 R-CNN
在过去的十多年时间里,传统的机器视觉领域,通常采用特征描述子来应对目标识别任务,这些特征描述子最常见的就是 SIFT 和 HOG.而 OpenCV 有现成的 API 可供大家实现相关的操作。
R-CNN(Region with CNN Feature)2014年提出,在此之前都是传统的目标检测算法,人为定义特征进行检测,进入了瓶颈期,进步缓慢,但是R-CNN出来之后将目标检测领域的准确率至少提高了30%。
2012 年 Krizhevsky 等人在 ImageNet 举办的 ILSVRC 目标识别挑战大赛中一战成名,豪夺当年的第一名,Top5 错误率 15%,而他们团队提出来的网络结构以第一作者 Alex Krizhevsky 名字命名,它就是 AlexNet
因为 AlexNet 的出现,世人的目标识别的目光重回神经网络领域,以此为契机,不断涌出各种各样的网络比如 VGG、GoogleNet、ResNet 等等。
受 AlexNet 启发,R-CNN论文作者尝试将 AlexNet 在 ImageNet 目标识别的能力泛化到 PASCAL VOC 目标检测上面来。
R-CNN 借鉴了滑动窗口思想,采用对区域进行识别的方案
第3章 常见的One-Stage算法
3.1 SSD
SSD是一种经典的One-Stage算法,它解决当时Faster R-CNN对小目标检测效果差和检测速度慢的问题。
SSD可以预测不用尺度的目标,它的网络有6个输出特征层。
使用Faster R-CNN在单GPU上大概每秒6、7张图片;
而使用SSD算法,同样在单GPU上它每秒能检测50 、60 张图片;
但相比之前使用了FPN的Faster R-CNN而言呢,SSD算法的检测精度要差很多。
3.2 YOLO
YOLO系列算法是目前使用最多的目标检测算法,它最大的特点就是检测速度快,而且现在检测精度也就是mAP也变高了,所以称为时下最热门的目标检测算法。
YOLO是在CVPR2016提出的一种目标检测算法,它一共有5个版本,YOLO v1到v3是同一个作者Joseph设计的,包括论文到算法结构,YOLO v4到v5是其他作者设计的,目前检测效果最好和使用最多的就是YOLO v5。
其核心思想是将目标检测转化为回归问题求解,并基于一个单独的end-to-end网络:完成从原始图像的输入到物体位置和类别的输出。
YOLO在进行预测时,会对图像进行全面地推理。
它一种统一的目标检测模型。我们的模型构建简单,可以直接在整张图像上进行训练。
第4章 汇总比较
4.1 汇总比较
版权声明:本文为CSDN博主「文火冰糖的硅基工坊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/HiWangWenBing/article/details/122115271
本文仅做学术分享,如有侵权,请联系删文。