☞
当一切看起来无可挽回之时,我跑去看石匠重复捶击他面前的岩石一百次,而那块石头连一个裂缝都没有露出来。接下来的第一百零一次捶击之时,此石一分为二。不是因为这一次捶击,而是因为你的始终如一。
☜
毋庸置疑~
目标检测火了,一塌糊涂~
当前计算机视觉和机器学习领域的香饽饽~
从传统的DPM等检测方法到当今的RCNN、YOLO等深度学习的智能检测~
一切都来的快,去的也快~
本文带你进入目标检测的世界,领略它的过去和现在,感受属于它的威力和魅力~
It's time to begin!
那到底什么是目标检测?它跟目标分类与目标分割有什么区别?都有什么用?
接下来一一解释,理解图像处理的三个层次
一是分类(Classification),即是将图像结构化为某一类别的信息,用事先确定好的类别(string)或实例ID来描述图片。这一任务是最简单、最基础的图像理解任务,也是深度学习模型最先取得突破和实现大规模应用的任务。其中,ImageNet是最权威的评测集,每年的ILSVRC催生了大量的优秀深度网络结构,为其他任务提供了基础。在应用领域,人脸、场景的识别等都可以归为分类任务。
二是检测(Detection)。分类任务关心整体,给出的是整张图片的内容描述,而检测则关注特定的物体目标,要求同时获得这一目标的类别信息和位置信息。相比分类,检测给出的是对图片前景和背景的理解,我们需要从背景中分离出感兴趣的目标,并确定这一目标的描述(类别和位置),因而,检测模型的输出是一个列表,列表的每一项使用一个数据组给出检出目标的类别和位置(常用矩形检测框的坐标表示)。
三是分割(Segmentation)。分割包括语义分割(semantic segmentation)和实例分割(instance segmentation),前者是对前背景分离的拓展,要求分离开具有不同语义的图像部分,而后者是检测任务的拓展,要求描述出目标的轮廓(相比检测框更为精细)。分割是对图像的像素级描述,它赋予每个像素类别(实例)意义,适用于理解要求较高的场景,如无人驾驶中对道路和非道路的分割。
回到最后一个问题,都有什么用?目标分类、检测、识别、定位、分割在环境感知领域尤为重要,比如说近两年大火的智能驾驶、自动驾驶,都离不开这些算法,而且需要很高的准确率和效率。
本文重点叙述目标检测的方方面面,先来了解一下都有哪些算法~
传统算法的主要有:
Haar特征+Adaboost算法
Hog特征+Svm算法
DPM算法
深度学习的目标检测典型代表有:
RCNN系列,RCNN,spp-net,fast-rcnn,faster-rcnn
YOLO系列,YOLOv1/v2/YOLO9000/v3
SSD系列
针对传统算法,基本上都是基于手工特征所构建的:(1).创建滑动窗口&