初识基于深度学习的目标检测(无人驾驶感知)

一、深度学习是什么?

     百度百科的解释是这样子:深度学习的概念源于人工神经网络的研究,含多个隐藏层的多层感知器就是一种深度学习结构。

    说起人工神经网络,首先要特别感谢1981年诺贝尔医学奖的获得者大卫.休伯尔先生以及托斯坦.威泽尔先生。他们发现了视觉系统的信息处理方式,也就是大脑的可视皮层是分级的。

 

具体是怎么样呢?我们继续往下看。

我们的大脑皮层包括V1V2V4,PMC,PFC等区域,他们每一部分的功能是不一样的。

我们平时眼睛看到事物的过程大概是这样子:

1.视网膜(Retina)获取图像的像素点

2.低级的V1区提取边缘特征

3.V2区获取基本形状或目标的局部

4.高层V4得到整个目标(如判定为一张人脸)

5.更高层的PFC(前额叶皮层)进行分类判断等。

       基于上面所说的大脑的分层结构,科学家设计出了神经网络系统,而深度学习就是一个让多层神经网络可以训练、能够运行起来,而演化出来的一系列新的结构和新的方法。

二、深度学习能做什么?

        物体检测的任务是找出图像或视频中的感兴趣物体,同时检测出它们的位置和大小,是机器视觉领域的核心问题之一。

        物体检测过程中有很多不确定因素,如图像中物体数量不确定,物体有不同的外观、形状、姿态,加之物体成像时会有光照、遮挡等因素的干扰,导致检测算法有一定的难度。

三、深度学习的实现过程

1. 深度学习的检测算法

基于上述所说的任务,程序猿们就开始设计各种深度学习网络以及算法来解决这个问题。现在比较主流的两类算法有一阶段(one-stage)和两阶段(two-stage)算法:

one-stage 算法,包括 SSD YOLO 系列算法等等,仅使用一个 CNN 网络直接预测。 One-stage 算法速度快,但是准确性要低一些。
two-stage R-CNN 系列算法,包括 R-CNN Fast  R-CNN, Faster  R-CNN 等等,需要先使用启发式方法如选择性搜索算法( Selective   Search Algorithm )或者 CNN 网络如 RPN 来产生 Region Proposal ,然后再在候选框上做目标分类与位置回归。 Two-stage 方案准确度高速度慢。

 

     看到这里,我们可以注意到,无论是一阶段和两阶段算法,他们的核心都是CNN结构。那CNN是什么呢?

2. 卷积神经网络

       CNN全称为卷积神经网络,在目标检测的过程中,我们可以把它看成一个黑盒子。输入一张图片,然后输出这张图片中的物体是各个类别的概率。

     卷积神经网络主要包括卷积层、池化层、全连接层三部分,它是深度学习中最核心的部分。 

       典型的 CNN 3个部分构成:

       1. 卷积层
       2. 池化层
       3. 全连接层

      卷积层负责提取图像中的局部特征;它主要是通过多个卷积核与原图的RGB   三个通道进行矩阵的点乘运算,得到一系列的特征值。这些特征值简单一点理解就是代表一定的形状。

    比如我们现在要识别老鼠的屁股,我们可以设计这样一个卷积核,与原图进行卷积运算,当扫描到老鼠的屁股的时候,我们会得到一个比较大的数值。而当扫描到老鼠的耳朵的时候,它的结果是比较小的。根据这个结果,我们就能判断图片中包含了老鼠屁股这样一个特征。当然,这里的卷积核讲的比较抽象,在实际中,会用到很多卷积核。卷积核的取值在没有以往学习的经验下,可以由函数随机生成,再逐步训练调整。

 

      池化层也称为下采样过程,它的主要作用是降低数据维度,避免过拟合。一般池化有最大池化以及平均池化。图中这个主要是用到了最大池化,第一个小方块中获取最大数字6,第二个取了8,同理,得到了一个新的特征矩阵。这里的过拟合是指在训练集上表现好,但在测试集上表现不好,泛化性能差。举个例子,比如说有个美女对我笑,然后我就判断这个美女喜欢我。这样子是不好的。

       全连接层就是将前面的特征进行组合起来,得到最终想要的结果。它包括输入层、隐层和输出层三部分。

      一般神经网络由多个卷积层、池化层和全连接层组成。像下图图中这个Alexnet包含了五个卷积层、三个最大池化以及三个全连接层。因为卷积神经网络计算量很大,虽然很早以前就发现,但是由于GPU算力跟不上,所以一直没被用起来。直到2012年,算力比较好了,卷积神经网络重新复出,并且惊艳全场。

   现在卷积神经网络已经重新发展了十年的时间,有很多工程师在开发这个东西,现在的深度学习网络以及变得越来越复杂(如下图yolov5算法)。但是它的基础仍然是卷积神经网络。

 

        伴随着深度学习准确率越来越高、速度越快。现在无人驾驶已经可以实现特定场景的无人驾驶,以及现在很火的robotax,也就是无人出租车。虽然现在还有一定困难,但是相信在不久的将来能够落地。接下来给大家分享一个我用yolov5测试的一段目标检测的视频。

yolov5算法进行目标检测

 

声明:本博客为初学无人驾驶学生创作,旨在帮助新入门无人驾驶算法的同学。如有错误,请大佬们批评指导。博客中图片引用多位大佬的图,无商业用途,如有侵权,请联系作者删除,谢谢!

 

 

 

 

 

 

 

 

 

 

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值