2001 年,保罗·维奥拉(Paul Viola)和迈克尔·琼斯(Michael Jones)发明了一种有效的人脸检测算法。他们的演示显示了在网络摄像头上实时检测到的人脸,这是当时计算机视觉及其潜力最令人惊叹的演示。很快,它在 OpenCV 中实现,人脸检测成为 Viola 和 Jones 算法的代名词。
每隔几年就会出现一个在物体检测算法,2005年由Navneet Dalal和Bill Triggs发表的一篇论文提出的。他们的特征描述符,定向梯度直方图(HOG),在行人检测方面明显优于之前算法。
每隔十年左右就会出现一个新算法,它强大到你放弃了之前的一切,接受它。深度学习是这十年的想法。
深度学习算法已经存在了很长时间,但随着它在 2012 年的 ImageNet 大规模视觉识别挑战赛 (ILSVRC) 上取得巨大成功,它们成为计算机视觉的主流。
在那次比赛中,Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 基于深度学习的算法以惊人的 85% 的准确率震撼了计算机视觉世界——比获得第二名的算法高出 11%!
在 ILSVRC 2012 中,这是唯一一个基于深度学习的条目。2013 年,所有获奖作品均基于深度学习,2015 年,基于卷积神经网络 (CNN) 的多种算法超过了 95% 的人类识别率。
随着图像识别的巨大成功,基于深度学习的目标检测是不可避免的。像 Faster R-CNN 这样的技术在多个对象类上产生了令人瞠目结舌的结果。
目标检测是一种深奥的计算机视觉技术,可以识别和标记图像、视频甚至实时镜头中的对象。执行对象检测的模型使用过多的带注释的视觉对象进行训练,以便使用新数据执行此过程。它变得像馈送输入视觉对象并接收完全标记的输出视觉对象一样简单。
目标检测的概念,目标检测问题,即定位+分类,以及它存在的问题,最后由浅入深逐步讲解目标检测常用的模型及方法,如Faster R-CNN、SSD等。
整个过程中会涉及很多细节的概念和知识点。
下面针对SSD算法给出了PyTorch版的代码,大家也会从这里看到一些细节的实现方法。
我们先明确如下2个定义。
1)定位+分类:对于仅有一个目标的图片,检测出该目标所处的位置以及该目标的类别。如图1所示。
对象定位:与对象检测的区别非常微妙但很明显。对象定位旨在识别图像中一个或多个对象的位置,而对象检测则识别所有对象及其边界,而不太关注位置。
2)目标检测:对于有多个目标的图片,检测出所有目标所处的位置及其类别。如图2所示。
目标检测尽管取得了进步,但目标检测仍面临着挑战,研究人员和工程师正在努力调整模型并提高准确性。
这些挑战确保了该领域在不断创新中保持活力。作为物体检测的一般缺点,人们可以很容易地指出缺乏精度。
在自动执行自动驾驶、医疗自主机器或分析仪等安全关键任务时,工程师总是更喜欢使用实例分割而不是对象检测,因为实例掩码比放置在实例周围的边界框更精确。此外,模型还面临更具体和更低层次的挑战。
本文暂时没有评论,来添加一个吧(●'◡'●)