道路场景语义分割算法

道路场景语义分割算法

输入输出接口

Input:

(1)左右两个摄像头采集的实时图像视频分辨率(整型int)

(2)左右两个摄像头采集的实时图像视频格式 (RGB,YUV,MP4等)

(3)摄像头标定参数(中心位置(x,y)和5个畸变

系数(2径向,2切向,1棱向),浮点型float)

(4)摄像头初始化参数(摄像头初始位置和三个坐标方向

的旋转角度,车辆宽度高度车速等等,浮点型float)

Output:

(1)各个区域边界(浮点型float)

(2)各个label图像类型(整型int)

(3)实例分割区域个数(整型int)

(4)以上三种图像的融合图  (RGB,YUV,MP4等)

(5)摄像头与各个分割区域的距离(浮点型float)

1.  功能定义

(1)计算各个区域边界

(2)各个label图像类型

(3)计算实例分割区域个数

(4)以上三种图像的融合图  (RGB,YUV,MP4等)

(5)计算摄像头与各个分割区域的距离

 

2.  技术路线方案

自动驾驶系统中的一项重要核心技术——图像语义分割(Semantic image segmentation)。图像语义分割作为计算机视觉(Computer vision)中图像理解(Image understanding)的重要一环,不仅在工业界的需求日益凸显,同时语义分割也是当下学术界的研究热点之一。

深入到无人驾驶领域,对于场景的环境感知是一个棘手且十分重要的课题。语义分割作为无人车驾驶的核心算法技术,车载摄像头,或者激光雷达探查到图像后输入到神经网络中,后台计算机可以自动将图像分割归类,以避让行人和车辆等障碍。与分类目的不同,语义分割相关模型要具有像素级的密集预测能力。

纵观语义分割的发展历史,主要经历了“前DL时代的语义分割”和“DL时代的语义分割”。从最简单的像素级别“阈值法”、基于像素聚类的分割方法到“图,在深度学习 “一统江湖”之前,图像语义分割方面的工作可谓“百花齐放”,其主要代表为“Normalized cut” 和“Grab cut” 这两个基于图划分的经典分割方法。随着深度学习技术的高速发展,语义分割这个领域也逐渐陷入了深度学习的漩涡。

道路场景语义分割系统所期望的目标如图1所示。针对道路场景的图片,能够对图像中的物体进行基于像素级别的分割,从而实现为无人驾驶或智能辅助驾驶提供基础数据的支持。

 

                                                                                    

 

 

图1. 语义分割实例

 

 

 

 

 

 

 图2. 行驶区域车道上的特定目标语义分割

 

在图片语义分割的应用基础之上,对视频帧进行离散化的处理,从而达到处理视频的效果。按照VOC的评价标准,使用公式:IOU=TP/(TP+FP+FN)来评估模型,其中IOU又分为基于类别和基于对象,本系统主要按照基于类别的IOU进行评估,最终实现IOU category 逼近80%(CityScapes数据集),鉴于公司数据夜晚场景的复杂性,其最终IOU难以评估,估计会低于预期。

在实现标准数据集80% IOU category的基础上,进行夜晚场景的迁移学习从而进行微调,并最终应用于处理视频帧,现初步预定帧率为25FPS,但使用环境的不同可能会影响最终的帧率。

参考传统语义分割算法,综合目前各种深度学习网络模型在语义分割任务中的应用效果,本项目拟采用初步复现,稳步提升的总体路线,从经典的FCN到SegNet …… 一直到最新的DeepLab V3+,逐一验证和改进并产品化。

在大多数论文中,分割网络的这两个部分被称作编码器和解码器。简而言之,第一部分将信息「编码」为压缩向量来代表输入。第二部分(解码器)的作用是将这个信号重建为期望的输出。有很多基于编码器—解码器结构的神经网络实现。FCNs、SegNet,以及 UNet 是最流行的几个。

与大多数编码器—解码器架构设计不同的是,Deeplab提供了一种与众不同的语义分割方法。Deeplab 提出了一种用于控制信号抽取和学习多尺度语境特征的架构。

Deeplab把在ImageNet上预训练得到的ResNet作为它的主要特征提取网络。但是,它为多尺度的特征学习添加了一个新的残差块。最后一个ResNet块使用了空洞卷积,而不是常规的卷积。此外,这个残差块内的每个卷积都使用了不同的扩张率来捕捉多尺度的语境信息。

另外,这个残差块的顶部使用了空洞空间金字塔池化ASPP。ASPP使用了不同扩张率的卷积来对任意尺度的区域进行分类。

DeepLabv1-v2都是使用带孔卷积提取密集特征来进行语义分割。但是为了解决分割对象的多尺度问题,DeepLabv3设计采用多比例的带孔卷积级联或并行来捕获多尺度背景。DeepLabv3修改之前提出的带孔空间金字塔池化模块,该模块用于探索多尺度卷积特征,将全局背景基于图像层次进行编码获得特征,取得 state-of-art 性能,在PASCAL VOC-2012达到86.9mIOU。

DeepLabv3+继续在模型的架构上更新,为了融合多尺度信息,引入语义分割常用的encoder-decoder。在encoder-decoder架构中,引入可任意控制编码器提取特征的分辨率,通过空洞卷积平衡精度和耗时。

在语义分割任务中采用 Xception模型,在 ASPP 和解码模块使用 depthwise separable convolution,提高编码器-解码器网络的运行速率和健壮性,在 PASCAL VOC 2012 数据集上取得新的 state-of-art 表现,89.0mIOU。

DeepLabv3+的模型框架如下图所示:

 

 

 

图3. Deeplab V3+模型架构

考虑到语义分割架构是不断地在原有基础上提升,项目的开发总体流程如图178所示:

 

 

 

图4. 系统总体流程图

 

测试

1)公开数据集测试:在VOC和COCO等数据集上进行测试,得到mAP和Loss等数据。

2)在自主采集数据集上进行测试,分析测试结果。

集成

写成封装函数,能够集成在FPGA开发板上正确运行。

 

开发环境说明

 

 

 

表1. 语义分割开发环境

 

3.  关键技术参数和性能指标

1)实时性:在GPU和FPGA上达到30fps

2)环境适应性:在公开数据集和自主采集数据集上均可较好的进行语义分割

posted @ 2020-03-12 18:56  吴建明wujianming  阅读(3390)  评论(0编辑  收藏  举报