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

一、深度学习是什么?

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

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

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

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

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

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

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

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

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

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

  2. 高层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是什么呢?

  1. 卷积神经网络

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

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

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

典型的CNN 由3 个部分构成:

  1. 卷积层

  2. 池化层

  3. 全连接层

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

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

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

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

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

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

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

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

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

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

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

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

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

yolov5算法进行目标检测

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

Original: https://blog.csdn.net/weixin_38800901/article/details/123979597
Author: 一个爱茶的工科男
Title: 初识基于深度学习的目标检测(无人驾驶感知)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/681560/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球