以下内容为吴恩达 Deep Learning系列课程记录,推荐大家去学习.
1、问题描述
应用需要解决的问题是在一段实际公路行驶视频中实时进行车辆检测并显示其位置及预测概率,这里使用的公路行驶录像如下(这段视频资料来自drive.ai):
https://github.com/Alnlll/ML/blob/master/several_apps/002-CarDetection/videos/road_video.mp4
实现车辆检测需要给出“车辆种类”、“车辆在图片中位置”信息,其中还应包含属于该种类的“概率”大小,据此设计输出为
- p c 表 示 在 边 界 框 内 是 否 存 在 感 兴 趣 物 体 p_c表示在边界框内是否存在感兴趣物体 pc表示在边界框内是否存在感兴趣物体
- b x , b y 为 物 体 中 心 的 位 置 坐 标 ( 左 上 角 为 原 点 ) b_x, b_y为物体中心的位置坐标(左上角为原点) bx,by为物体中心的位置坐标(左上角为原点)
- b h , b w 为 物 体 高 度 和 长 度 ( 按 其 与 边 界 框 比 例 记 ) b_h, b_w为物体高度和长度(按其与边界框比例记) bh,bw为物体高度和长度(按其与边界框比例记)
- c 为 物 体 种 类 编 号 c为物体种类编号 c为物体种类编号
2、YOLO V2
本项目使用YOLO作为基础算法解决前述问题。YOLO(You Only Look Once)是一种通过一次前向就可以对多种物体检测得出一次结果的算法,相较于其之前的算法速度大大提升而得以完成实时检测任务。(参考DeepLearning.ai课程和YOLO)
下面我们来看YOLO到是什么,通过什么方法解决了什么问题而得到较好的结果的。
a、滑动窗口
有一张较大图片需要进行物体检测,我们不直接使用大图片进行检测,而是使用不同大小的窗口截图图片然后送入网络进行检测,如果物体的中心点被认为在某窗口中,说明这个窗口内存在我们要检测的目标物体, 输出 P c = P_c = P