在本节中,我将通过一个车辆检测示例,介绍怎么运用深度学习创立方针检测器。相同进程可用于创立任何方针检测器。
在创立车辆检测器之前,我需求一组标示的练习数据,这是一组用感兴趣方针的方位和标签标示的图画。更具体地说,是需求有人对每幅图画或视频帧进行挑选,并对一切感兴趣方针的方位进行标示。这个进程称为“真值标示”。
真值标示通常是创立方针检测器进程中最耗时的部分。下图左边显现的是原始练习图画,右侧显现的是通过真值标示的相同图画。
能够想见,标示一组数量足够大的练习图画数据集是一项极费人力的处理进程。为了削减数据标示时刻,我运用了Ground Truth Labeler 主动驾驶体系工具箱,它可使地面实况标示进程完结部分主动化。
完结标示进程部分主动化的一种办法是运用盯梢算法。我运用的KanadeLucas Tomasi算法(KLT)是在实践运用中运用的榜首种计算机视觉算法。KLT 算法将方针表明为一组特征点,然后逐帧盯梢它们的移动方位。咱们能够在榜首帧中手动标示一个或多个方针,然后运用盯梢算法标示视频的其余部分。
我见过的最常用的办法是,用户导入自己现有的检测器,再进行新数据标示,这能够协助他们创立出更准确的检测器。下图演示了运用 Ground Truth Labeler 标示一系列图画或视频的作业流程。
标示数据终究以 table 格局存储,table 中列出了练习集视频中车辆在每个时刻点的方位。真值标示完结后,我能够开端练习车辆检测器。
本例中,我估量真值标示进程最高可加快 119 倍。咱们以每秒30帧的速度捕捉练习视频数据,每4秒对方针进行一次标示。这意味着咱们将节约中心119帧的标示时刻。当然这是最好的状况,由于咱们有时还得花时刻更正主动标示的输出成果。
咱们的车辆检测器运用的是FasterR-CNN网络。首要,界说一个网络架构,如下面的MATLAB代码片段所示。Faster R-CNN算法首要剖析图画的区域,因而输入层比输入图画的预期尺度要小。本例中,我挑选了一个32x32像素的窗口。输入尺度需求依据执行时刻和期望检测器解析的空间细节进行衡量。
本例中,我只会运用几个层。若要进步准确性,或许假如想要将更多的类并入检测器中,能够重复这些运用层,创立一个更深的网络。
在本例中,我在全衔接层之间添加了一个 ReLU 非线性层,用以进步检测器的功能,由于咱们这个检测器的练习集并没有我想要的那么大。
完结练习之后,能够在测验图画上试一试,看看检测器是否正常作业。我运用下面的代码在单一图画上测验检测器。
若坚信自己的检测器正常作业,我激烈建议您运用计算目标(例如,均匀精度)在更大的一组验证图画集上进行测验。均匀精度供给的单一分数可衡量检测器进行正确分类的才能(准确率)以及检测到一切相关目标的才能(召回率)。