东方耀AI技术分享

标题: 01、自动驾驶SSD目标检测之项目简介 [打印本页]

作者: 东方耀    时间: 2019-11-28 09:38
标题: 01、自动驾驶SSD目标检测之项目简介
01、自动驾驶SSD目标检测之项目简介




通过汽车前方摄像头捕捉的画面, 定位其中的物体(汽车、卡车、行人、自行车、交通灯)
是保证自动驾驶汽车安全行驶不可缺少的技术.  
目标检测包含图像的分类识别和回归定位, 需要同时解决回归(Regression)和分类(Classification)的问题.
目标检测是一个非常有挑战的深度学习课题, 通过完成这个项目, 您将会对深度学习有更加深刻的理解.


训练数据:driving_datasets.zip   899M 下载:链接:https://pan.baidu.com/s/1OkuVLFG7DLxqhwYEvH_Bhg
提取码:mwlh


22244=22241张jpg图片(都是480*300像素)+3个CSV文件(训练 验证 训练与验证)


论文中SSD的源码是基于Caffe的 同时原作者面对的是比赛 数据集是VOC COCO 通用物体的检测 类别数20 或 80 是非常多的 导致模型必须相当复杂 而我们这个项目中正样本类别数为5 我们不需要那么复杂的模型 否则训练出来很容易过拟合
所以我们需要精简 重新设计SSD网络结构 同时我们基于更高级封装的Keras框架

自动驾驶之基于SSD的目标检测(5类+背景)
通过汽车前方摄像头捕捉的画面(300*480像素), 定位其中的物体(汽车、卡车、行人、自行车、交通灯)
包括物体的分类识别(one-hot编码)和位置的定位回归(4个坐标值)
所用到的技术:
1、基于tf和Keras的自定义网络结构(共7个卷积层,后4个卷积层做预测)
2、自定义网络层AnchorBoxes,产生所有预测层的矩形anchor box,坐标形式是中心点形式(cx,cy,w,h)
3、自定义SSD损失函数(分类用-log(概率),回归用smooth_L1_loss):
定位损失:只考虑每张图片中正样本的损失之和
分类损失:分为正样本的分类损失 + 部分数量的负样本的分类损失之和
4、数据的封装用DataGenerator
5、数据增强:(像素变换)随机亮度调整 随机对比度调整 饱和度与色调调整  (几何变换)随机水平翻转 仿射变换之平移与随机缩放
6、模型训练过程的回调:TensorBoard、ModelCheckpoint、CSVLogger、EarlyStopping、ReduceLROnPlateau
7、模型的评估指标:val_loss与mAP(mean_average_precision)

技术难点:
1、SSD标签输入的编码:根据iou值匹配寻找所有正样本(1对1匹配+多匹配)多匹配的阈值是设定的正样本的iou阈值,用人工标注框的类别和box定位坐标赋值给正样本;最后一步中将边界框坐标由绝对坐标变成 相对于anchor box的坐标,这一步导致我们模型预测的就是相对于anchor box的坐标(只有正样本转换才有意义,负样本和中立样本转换后boxes都是0)
2、SSD预测结果的解码:边界框boxes坐标由相对值变为绝对值,坐标形式centroids2corners,反归一化变成实际像素值,一种类别一种类别的处理,同一个类别中,先经过置信度阈值的过滤,后取概率最大的box进行NMS,循环往复,如果box数量还比较多,则需要经过top-k过滤,最后输出
3、求mAP的过程:模型预测结果解码之后,按类别id放好(image_id, conf,坐标),gt box人工标注框也按类别放好,
判断每个类别预测的所有box是否正确?首先看类别,其次看iou,
之后计算精准率和召回率(按类别),最后计算该类别的average精准率时考虑num_recall_points


SSD详解及其网络结构:http://www.ai111.vip/thread-906-1-1.html


东方老师AI官网:http://www.ai111.vip
有任何问题可联系东方老师微信:dfy_88888
【微信二维码图片】



作者: xsoft    时间: 2020-2-3 15:36
谢谢老师提供的资料。
作者: okayai    时间: 2021-3-1 13:50
learning ai

作者: shanshan    时间: 2021-10-26 19:26
学习




欢迎光临 东方耀AI技术分享 (http://www.ai111.vip/) Powered by Discuz! X3.4