0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

了解Apollo 2.5和3.0里广泛使用的单目摄像头物体检测模块

YB7m_Apollo_Dev 来源:未知 作者:李倩 2018-10-10 14:58 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

摄像头是无人车系统中最重要的传感器之一,具有明显的优点和缺点:廉价、高帧率、信息丰富、观测距离远,但是易受环境影响、缺乏深度信息。因此,如何建立高准确率、高召回率的物体识别系统,是无人车感知模块的核心问题。

上周,来自百度美研Apollo感知团队的资深软件架构师——陈光,在Apollo开发者社群内为我们带来关于《基于单目摄像头的物体检测》的内容分享。帮助开发者更加了解Apollo 2.5和3.0里广泛使用的单目摄像头物体检测模块。

错过社群直播的开发者可以从以下资料回顾干货内容:

基于单目摄像头的物体检测

本次分享将会从以下四个方面展开:

一、物体检测模型中的算法选择

二、单目摄像头下的物体检测神经网络

三、训练预测参数的设计

四、模型训练与距离测算

物体检测模型中的算法选择

物体检测(Object Detection)是无人车感知的核心问题,要求我们对不同的传感器(如图中覆盖不同观测范围FOV的无人车传感器)设计不同的算法,去准确检测出障碍物。例如在Apollo中,为3D点云而设计的的CNN-SEG深度学习算法,为2D图像而设计的YOLO-3D深度学习算法等。

物体检测要求实时准确的完成单帧的障碍物检测,并借助传感器内外参标定转换矩阵,将检测结果映射到统一的车身坐标系或世界坐标系中。准确率、召回率、算法时耗是物体检测的重要指标。本次分享只覆盖Apollo中基于单目摄像头的物体检测模块。

相关文献如下:

1. Object Detection with Discriminatively Trained Part Based Models. IEEE Trans. PAMI, 32(9):1627–1645, 2010.

2. Faster RCNN, ICCV 2015

3. SSD: Single Shot MultiBox Detector, ECCV 2016

4. yolo9000: Better, Faster, Stronger, CVPR 2017

5. Focal Loss for Dense Object Detection, ICCV 2017

在众多物体检测模型中,我们如何选择最合适的算法?尤其是以2-stage为代表的Faster-RCNN, RFCN 和以 single stage为代表的SSD、YOLO之中应该如何选择?CVPR 2017一篇来自谷歌的论文《Speed/Accuracy Trade-offs for Modern Convolutional Object Detectors》做了比较细致的比较和评测。它将物体检测神经网络拆解为主框架Meta-architecture和特征描述模块Feature Extractor。并选择了不同的组合方式,去验证模型的实效性和准确率。

如图所示,在 MS COCO数据集上,YOLO V2取得了实时速度下良好的检测准确率。Faster RCNN+重载的 Inception ResNet V2虽然取得了最好准确率,但是时耗过长。完全不能满足无人车对实时性的要求。基于这种理论分析和在百度自有数据集上的评测,我们最终选择了YOLO作为主框架,以改进的DarkNet作为特征描述模块(Feature Extractor)。

2单目摄像头下的物体检测神经网络

Apollo 2.5和3.0中,我们基于YOLO V2设计了单目摄像头下的物体检测神经网络, 我们简称它 Multi task YOLO-3D, 因为它最终输出单目摄像头3D障碍物检测和2D图像分割所需的全部信息。

它和原始的YOLO V2有以下几种不同:

1. 实现多任务输出:

(1)物体检测,包括2D框(以像素为单位),3D真实物体尺寸(以米为单位),障碍物类别和障碍物相对偏转角(Alpha Angle,和KITTI数据集定义一致)。下文会详细讲解各个输出的意义。

(2)物体分割:车道线信息,并提供给定位模块,这里不做叙述。

2. 特征描述模块引入了类似FPN的Encoder和Decoder设计:在原始Darknet基础上中,加入了更深的卷积层(Feature Map Size更小)同时添加反卷积层,捕捉更丰富图像上下文信息(Context Information)。高分辨率多通道特征图,捕捉图像细节(例如Edge,Corner),深层低分辨率多通道特征图,编码更多图像上下文信息。和FPN类似的飞线连接,更好的融合了图像的细节和整体信息。

3. 降低每层卷积核数目,加快运算速度。例如我们发现卷积核数目减半,实验中准确率基本不变。

如前文所述,物体检测最终输出包括2D框(以像素为单位),3D真实物体尺寸(以米为单位),障碍物类别和障碍物相对偏转角(Alpha Angle,和KITTI数据集定义一致)等信息。

和YOLO V2算法一样, 我们在标注样本集中通过聚类,产生一定数目的“锚”模板,去描述不同类别、不同朝向、不同大小的障碍物。例如对小轿车和大货车,我们会定义不同的锚模板,去描述它们的实际物理尺寸。

为什么我们要去训练、预测这些参数呢?我们以相机成像的原理来解释:针孔相机(Pinhole Camera)通过投影变换,可以将三维Camera坐标转换为二维的图像坐标。这个变换矩阵解释相机的内在属性,称为相机内参(Camera Intrinsic) K。(本图及下文中部分图像引自三方论文等)

对任意一个相机坐标系下的障碍物的3D框,我们可以用它的中心点 T = {X, Y, Z},长宽高 D = {L, W, H},以及各个坐标轴方向上的旋转角 R = {ϕ, φ , θ}来描述。这种9维的参数描述和3D框8点的描述是等价的,而且不需要冗余的8*3个坐标参数来表示。

因此,对一个相机坐标系下3D障碍物,我们通过相机内参,可以投射到2D图像上,得到2D框[c_x, c_y, h, w]。从图中可以看到,一个障碍物在相机下总共有9维3D描述和4维2D描述,他们之间通过相机内参矩阵联系起来。

然而,只通过2D框[c_x, c_y, h, w],是没有办法还原成完整的3D障碍物信息。

3训练预测参数的设计

而通过神经网络直接预测3D障碍物的9维参数,也会比较困难,尤其是预测障碍物3D中心点坐标。所以我们要根据几何学来设计我们到底要训练预测哪些参数。

首先利用地面平行假设,我们可以降低所需要预测的3D参数。

例如:(1)我们假设3D障碍物只沿着垂直地面的坐标轴有旋转,而另外两个方向并未出现旋转,也就是只有yaw偏移角,剩下的Pitch Roll均为0。(2)障碍物中心高度和相机高度相当,所以可以简化认为障碍物的Z=0。

从右图可以看到,我们现在只有6维3D信息需要预测,但还是没有办法避免预测中心点坐标X和Y分量。

第二,我们可以利用成熟的2D障碍物检测算法,准确预测出图像上2D障碍物框(以像素为单位)。

第三,对3D障碍物里的6维描述,我们可以选择训练神经网络来预测方差较小的参数,例如障碍物的真实物理大小,因为一般同一类别的障碍物的物理大小不会出现量级上的偏差(车辆的高度一般在2-5米之间,很少会出现大幅变化)。而yaw 转角也比较容易预测,跟障碍物在图像中的位置关系不大,适合通用物体检测框架来训练和预测。实验中也多次证明此项。

所以现在我们唯一没有训练和预测的参数就是障碍物中心点相对相机坐标系的偏移量X分量和Y分量。需要注意的是障碍物离相机的物理距离Distance=sqrt(X^2+Y^2)。所以得到X和Y,我们自然就可以得到障碍物离相机的真实距离,这是单目测距的最终要求之一。

综上,我们可以合理的推断出, 实现单目摄像头的3D障碍物检测需要两部分:

1. 训练网络,并预测出大部分参数:

(1)图像上2D障碍物框预测,因为有对应的大量成熟算法文献;

(2)障碍物物理尺寸,因为同类别内方差较小;

(3)不被障碍物在图像上位置所影响,并且通过图像特征(Appearance Feature)可以很好解释的障碍物yaw偏转角。

2. 通过图像几何学,来计算出障碍物中心点相对相机坐标系的偏移量X分量和Y分量。

4模型训练与距离测算

模型训练上,我们需要注意一些潜在的细节:

1) 确保标注质量,尤其是3D障碍物框。可以借助激光雷达等来辅助标注障碍物尺寸,偏转角等等;

2) 定义合适的损失函数,可以参考Zoox的paper《3D Bounding Box Estimation Using Deep Learning and Geometry》;

3) 做好数据增强,避免过拟合, 图中简单描绘了一些Data Augmentation的方式。对于无人车,我们可以尝试更多的方法。

当我们训练好相应的神经网络,输出我们需要的各个参数之后,我们需要考虑的是如何计算出障碍物离摄像头的距离。根据之前介绍,通过内参和几何学关系,我们可以链接起图像中3D障碍物大小(单位为像素)和真实3D坐标系下障碍物大小(单位为米)。

我们采用单视图度量衡( Oxford教授 A. Zisserman的论文《Single View Metrology》)来解释这个几何关系:任一物体,已知它的长宽高、朝向和距离,则它在图像上的具体形状大小等可唯一确定;反之亦然。

如图中房屋的支撑柱,大小高度完全相同,但是处于图像的不同位置,所占用的像素、长宽都有差别。

基于单视图度量衡,我们可以建立一个哈希查询表,去根据物体图像尺寸,物理尺寸,朝向角来查询物体的距离。

对于每种障碍物,我们根据它的平均(或单位)尺寸,去建立查询表,覆盖360度yaw 角的变化,来映射不同的距离。(例如2D框的25像素高,yaw角为30度,则它的距离为100米等等)。图中示例了一个小轿车在不同距离下、不同偏转角yaw angle情况下,在图像上的显示。

对于这样一个简单的算法,速度上可以达到0.07毫秒/每帧图像。而在准确率上,我们分别在KITTI数据集和Apollo内部数据集上做了评测。在KITTI上取得了很好的效果,0-30米内障碍物误差大概在1米左右。随着距离增大,误差会增大,但是最终误差不超过8%。

在Apollo数据集上,这个简单算法也取得了不错的效果。最大误差不超过6%。

综上,我们可以整理出Apollo里单目摄像头下的障碍物检测流程图:输入单幅图像,预测大部分参数;基于单视图度量衡,我们可以预测出剩余的参数距离和中心点坐标。

Apollo里单目摄像头下的障碍物检测稳定快速,对繁忙路段和高速场景都可以适配。检测速度在30HZ以上。

Apollo里单目摄像头下的障碍物算法已经成功入库到Apollo 2.5 和 Apollo 3.0,并在CIDI等项目中使用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 摄像头
    +关注

    关注

    61

    文章

    5058

    浏览量

    102449
  • Apollo
    +关注

    关注

    5

    文章

    350

    浏览量

    19638

原文标题:社群分享内容 | 基于单目摄像头的物体检测

文章出处:【微信号:Apollo_Developers,微信公众号:Apollo开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    微型摄像头 应用案例

    一套完整产品。摄像头和显示设备之间图像传输可选择有线或者无线的方式。     这套微型可视设备可广泛可用于黑暗而细小的空间,例如
    发表于 04-23 13:50

    如何利用摄像头将处于摄像头正下方的物体进行拍照

    有一个难题,摄像头处于视频模式,当物体进入到摄像头的视野内后,再进行图片的保存;物体缓慢的进入过程中,不保存。在以上方法中,不能采用红外等传感器,如何利用图像处理的方法进行?求各位大神
    发表于 06-13 11:19

    摄像头和FPGA的ADAS产品原型系统

    `1月5日-8日拉斯维加斯消费电子展(CES)上,地平线机器人(以下简称“地平线”)将与英特尔联合展示一款基于摄像头和FPGA的ADAS产品原型系统。车辆检测结果该原型由英特尔和地
    发表于 01-06 18:09

    最新摄像头技术给车辆以强大的视觉功能

    ,这都得益于图像处理技术。 因为这些系统越来越复杂,有些使用双摄像头实现 3D 立体视觉或物体检测,或只是单纯为了获得前端和后端视野(通过前后窗口)。图 4:(a) Lattice 双输入参考设计框图
    发表于 04-12 14:44

    Firefly RK3399Pro开源主板 + 摄像头,人体特征点检测方案

    高达1.8GHz,四核图形处理器Mali-T860 MP4,集成神经网络处理器NPU,算力高达3.0Tops,兼容多种AI框架。高检测精度配置高清单摄像头,可以清晰地
    发表于 04-01 15:55

    本田ADAS采用博世摄像头,大幅增强行人检测能力

    本田通过转用博世摄像头,大大地提升了汽车白天检测行人的能力,此功能正是高级驾驶员辅助系统的主要功能之一。
    的头像 发表于 07-09 18:34 9899次阅读

    摄像对比立体摄像头的优点

    摄像头的探测距离也有了长足的进步。 尽管目前的ZYDAS-1的水平的度角已有56度,但ZYDAS-2则更进一步,达到了135度。 像素也从720提高到了1920,从ZYDAS-1的每度12.8个
    的头像 发表于 08-09 10:51 6486次阅读

    人脸识别中双目、、3D结构光摄像头的区别

    选择更具性价比的人脸识别模组。 介绍一下摄像头摄像头定义通过
    发表于 06-18 14:38 3.1w次阅读

    专访模组厂商:人脸识别中摄像头和双摄像头该如何选型

    高交会,笔者对专注做影像采集行业、具备较强专业能力的摄像头模组厂商金视康康总经理何世锟介绍进行了一场关于人脸识别摄像头如何选型的深度沟通。 关键点一:选单还是双目?具体还需看活体检测
    的头像 发表于 11-26 17:10 2622次阅读

    人脸识别中双目、、3D结构光摄像头之间的区别

    详细解析,帮助大家选择更具性价比的人脸识别模组。 首先介绍一下摄像头摄像头定义通过
    发表于 02-26 14:32 1.2w次阅读

    ESP32 CAM:遥控物体检测摄像头

    电子发烧友网站提供《ESP32 CAM:遥控物体检测摄像头.zip》资料免费下载
    发表于 12-15 09:56 2次下载
    ESP32 CAM:遥控<b class='flag-5'>物体检测</b><b class='flag-5'>摄像头</b>

    激光雷达、摄像头、双目摄像头原理和优缺点

    激光雷达、摄像头、双目摄像头原理和优缺点 激光雷达是目前定位选择的主流传感器,带自主导航的室内扫地机的商用产品,一般都会配备激光雷达。在自动驾驶领域,高精地图的采集及定位应用, 使
    的头像 发表于 03-26 15:58 1.8w次阅读
    激光雷达、<b class='flag-5'>单</b><b class='flag-5'>目</b><b class='flag-5'>摄像头</b>、双目<b class='flag-5'>摄像头</b>原理和优缺点

    如何使用usb接口wifi模块的网络摄像头_模块应用

    智能家居、无线通讯网络连接每个家庭的居家安防安全或办公生活,如何使用USB接口WiFi模块的网络摄像头的知识分享,需要先了解无线wifi模块产品应用、使用方法;wifi
    的头像 发表于 10-29 22:03 3861次阅读
    如何使用usb接口wifi<b class='flag-5'>模块</b>的网络<b class='flag-5'>摄像头</b>_<b class='flag-5'>模块</b>应用

    使用python和opencv实现摄像机测距

    我的论文方向目前是使用摄像头实现机器人对人的跟随,首先摄像头与kinect等深度
    的头像 发表于 07-03 10:01 4093次阅读
    使用python和opencv实现<b class='flag-5'>单</b><b class='flag-5'>目</b><b class='flag-5'>摄像</b>机测距

    多光谱火焰检测摄像头

    随着工业化进程的加快,火灾安全问题日益受到重视。传统的火焰检测技术主要依赖于温度传感器和烟雾探测器,但这些方法在某些情况下存在响应慢、误报率高等缺陷。为了解决这些问题,多光谱火焰检测摄像头
    的头像 发表于 12-11 10:50 1097次阅读
    多光谱火焰<b class='flag-5'>检测</b><b class='flag-5'>摄像头</b>