【技术分享】基于深度学习的目标检测算法发展(一)

举报
绿藻头 发表于 2020/08/31 23:57:27 2020/08/31
【摘要】 随着硬件算力的提升和互联网带来的海量数据,深度学习迎来了第三次浪潮。 在这次浪潮中,有关目标检测算法是如何发展的呢? 本文将以科普的方式为你介绍~

随着算力的提升和互联网发展带来的海量数据,在21世纪初,深度学习迎来了它的第三次浪潮,这次浪潮较之前两次更为波涛汹涌、范围广泛。


引爆这次深度学习的浪潮的事件是:在ImageNet LSVRC-2012的比赛中,Alex Krizhevsky使用AlexNet取得了top-5错误率为15.3%的成绩,大幅领先第二名夺冠。

所以,近代的深度学习浪潮是从图像分类这个基础的计算机视觉任务开始的。


基于深度学习的图像分类,思路很直观:就是用一个提前训练好的深度卷积神经网络用作特征提取器,提取输入图像的特征向量,最后使用一个softmax之类的分类器作分类,如下图所示。

它的效果之所以好的原因在于:深度卷积神经网络能够提取出更具有代表性的图像特征,从而得到更优秀的分类结果,这都得益于在训练阶段它所使用的数据集的规模够大。


看到深度学习在图像分类领取取得了巨大成功,学者们开始思考:是否能将深度学习技术应用于目标检测这个更有难度一些的视觉任务呢?(相较于图像分类来说,目标检测除了需要对图像中出现的目标分类之外,还需要框处目标的位置。)


人们在研究一个新的问题时,通常会基于已有的经验,基于深度学习的目标检测算法的发展亦是如此。


在早期,学者们将目标检测当做分类任务来看待,因为图像分类算法是已知,所以只需将图像中的目标裁出来,再输入进图像分类网络对其分类,就可变相的完成目标检测这一任务。这个想法是很直观的,思路也很容易理解。因此当前待解决的问题就变成了:如何从图像中准确的裁剪出目标?


早期并没有肯定的答案,人们采用的流行做法有两个:

1、基于滑动窗口的做法

2、基于Region Proposal的做法


第一个算法简单来说就是暴力遍历:使用不同比例、大小的矩形框在图像上作遍历,每到一个位置便裁剪出该位置的局部图像,送入图像分类网络进行分类,如下图所示:

这个做法虽然思路简单、容易理解,但是效率却极其低下,因为不同的局部区域存在大量重叠,导致了大量的冗余计算,速度较慢;另外由于滑动窗口的大小是人为设置的,并不能保证对所有的图像都裁出最合身的框,导致检测效果较差;


第二个思路:基于Region Proposal的做法,这个较前一个有些改良,它使用一些传统机器学习的方法,在图像中找出可能存在目标的位置,再将这些位置送入分类网络做分类,如下图所示:

这种做法可以降低冗余,但效率依然不够,因为冗余计算依然存在;另外,这种做法依然是分阶段进行的,非端到端的,训练起来较为麻烦。


后续目标检测算法将如何发展呢?我们下文再聊~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。