APP下载

基于语义分割的车位检测算法研究

2024-01-22东,冰,浩,

大连理工大学学报 2024年1期
关键词:非对称车位卷积

李 伟 东, 李 冰, 朱 旭 浩, 李 乐

(大连理工大学 汽车工程系, 辽宁 大连 116024 )

0 引 言

目前,新能源汽车所占市场份额不断扩大,汽车智能化程度增高,全景环视系统(around view monitor,AVM)[1]已是大多数车辆的标配,利用AVM进行车辆环境感知具有很大的研究价值,越来越多的研究者提出了利用AVM的车位检测算法.

多年来,基于计算机视觉和AVM的车位检测算法已被广泛研究,总体可分为基于线检测和基于标记点检测两种.基于线检测的方法首先通过检测器检测出车位线的边缘特征,如Canny边缘检测器[2]和Sobel滤波器[3],通过拟合算法对直线进行预测,采用人工设计的几何约束进行筛选和定位得到车位.朱旺旺等[4]利用改进的Radon算法对边缘提取后的车位图像进行检测,通过阈值分割优化Radon矩阵提取车位线,取得了较好的检测结果.基于标记点检测的方法采用标记点检测器[5]、增强决策树[6]等一些检测方法检测出标记点,通过模板匹配等技术进行车位检测.尽管传统车位检测算法的结果较好,准确率也较高,但鲁棒性差,对地面纹理及光照强度的变化较为敏感,在复杂环境下检测结果较差.

随着深度学习在计算机视觉中的应用,目标检测和语义分割被应用在车位检测任务中.Deep PS(deep parking-slot)[7]是第一个基于深度学习的车位检测算法,并公开数据集PS2.0,为后续研究者提供便利.该算法使用一个CNN网络来检测周围视图中的标记点,使用另一个CNN网络来匹配成对的标记点.Deep PS在多种复杂条件下取得了良好的检测结果.DMPR-PS(directional marking-point regression parking-slot)[8]为两阶段检测算法,第一阶段采用基于CNN的模型对标记点的方向、坐标和形状进行回归;第二阶段采用人工设计的几何规则对标记点进行过滤和匹配.相较于Deep PS更为轻量化,但是对于倾斜车位的检测结果较差.Min等[9]考虑标记点之间的内在联系,提出了基于图神经网络的检测算法——AGNN-PS.首先检测标记点,匹配得到车位入口线后推理得到车位,但通过标记点难以得到整个车位的形状信息以及车位线的方向信息,因此难以判断车位的类型,对非垂直车位检测结果较差.党顺峰等[10]通过在网络中增加注意力模块对Mask R-CNN[11]算法进行改进,对车位的8个关键点进行检测,提高了算法在遮挡情况下的检测精度.

VH-HFCN(vertical horizontal highly fused convolutional network)[12]是第一个基于语义分割的车位检测算法,标注并公开数据集PSV datasets,为后续研究者提供了便利.VH-HFCN在HFCN[13]基础上设计了由垂直卷积和水平卷积组成的VH模块,通过骨架化和线变换对分割区域进行提取,得到车位信息.Jian等[14]提出了一种基于多任务学习的线和点语义分割模型,该模型通过两个连续的U-Net[15]网络分别分割车位的入口线和车位角的中心点,生成车位入口线和车位角中心点图像,并通过后期处理得到车位的信息.该算法采用两个分割模型进行检测,模型总的参数量较大,检测过程较为复杂.

综上所述,采用标记点检测的方法在检测速度及过程的复杂度方面相较于语义分割有着比较大的优势.语义分割任务是像素级别的分类检测任务,模型参数量较大,推理检测速度较慢,但采用语义分割进行车位线特征的提取可以得到车位的整体信息,对非垂直类型的车位尤其是倾斜车位检测结果更好.本文采用深度可分离卷积[16]和非对称卷积[17]结合的轻量化策略构建轻量化的车位线分割模型,在PSV datasets上进行训练并达到目前最高的分割精度;提出一种基于斜率聚类和非极大值抑制(NMS)的车位线提取方法.

1 车位检测算法

针对语义分割检测模型参数量较大、车位线提取过程复杂等问题,本文采用深度可分离卷积、非对称卷积、转置卷积[18]和通道裁剪等方法对传统语义分割网络U-Net进行轻量化改进,提出UFAC-Net模型进行车位线和车道线分割.车位检测算法框架如图1所示,车载环视图像通过分割网络分割出车位线,通过图像细化和线变换初步提取车位线,通过斜率聚类和NMS进一步对车位进行筛选,最终提取得到准确的车位信息.

1.1 深度可分离卷积

深度可分离卷积是2017年由Chollet[16]提出的用于嵌入式设备的轻量化方法,主要分为逐通道卷积和逐点卷积,其过程如图2所示.图中c和n分别为输入特征图和输出特征图通道数,i和o分别为输入特征图和输出特征图尺寸(高×宽),q为卷积核尺寸(高×宽),f为1×1的卷积核.

图1 车位检测算法框架

(a) 逐通道卷积

(b) 逐点卷积

图2(a)为逐通道卷积,单个卷积核负责相应通道的特征图,输出特征图通道数和输入特征图通道数相等;图2(b)为逐点卷积,通过n个1×1×c的卷积核,将输入特征图在深度方向上进行加权组合,输出n个特征图.整个过程的参数量和计算量公式如下:

D=q×c+n×c

(1)

F=q×c×o+n×c×o

(2)

式中:D为参数量,F为计算量.在得到相同通道数特征图的情况下,该卷积方式约为常规卷积参数量和计算量的1/q,使用深度可分离卷积代替常规卷积可大幅降低模型的参数量和计算量.

1.2 非对称卷积

非对称卷积即采用不规则的卷积核进行卷积运算,将n×n的卷积核分解为1×n和n×1的卷积核,分别进行卷积运算后再进行相加.显然非对称卷积所用的参数量更少,但也会有比较严重的信息损失.针对本文任务的特殊性,数据集中的有效特征都为线形特征且具有一定的分布规律(近似水平和近似垂直而且分布比较稀疏).采用连续的非对称卷积能够在使用较少参数量的同时得到较大的有效感受野,更多地保留图像中的有效信息.

VH模块通过采用连续的非对称卷积增大网络在水平和垂直方向上的感受野,其对图像中线形特征的注意力更强,并且在线形分割中取得较好的结果,但其为一维卷积核,每次只能在一维空间上对特征进行融合(水平或垂直方向上),会造成较大的信息损失.若采用常规卷积(n×n),减少信息损失的同时会大幅增加网络的参数量和计算量.针对此问题,本文对VH模块进行改进(ACVH模块),如图3所示,增加一个网络分支,对分支上的特征图不做任何的卷积处理,而是直接与经过VH模块计算后的特征图相加,保证模块在不增加参数量的同时减少非对称卷积过程中的信息损失,并且选择n=5的非对称卷积核,保证参数量较少前提下进一步扩大感受野,增加网络精度.

图3 ACVH模块结构

1.3 改进的网络模型

U-Net是经典的语义分割网络,通过4个下采样模块将输入图像变为含有1 024个通道数的特征图,在上采样阶段通过网络分支进行特征融合,有效减少了在下采样阶段图像信息的损失.其对小样本数据集的分割结果较好,广泛应用于医学图像分割和遥感图像分割领域.但U-Net网络层通道数过多,模型参数量和计算量较大;其输入图像的大小为572×572,每次上采样阶段进行特征融合时,都需要裁剪网络分支的特征图,网络复杂性较高;上采样和下采样之间采用1×1卷积核融合特征,感受野较小.宋廷强等[19]对U-Net网络底层模块进行扩大感受野的改进,有效提高了遥感影像道路的分割精度.

本文采用深度可分离卷积和非对称卷积对U-Net进行改进得到UFAC-Net模型,该模型的结构如图4所示,网络主要由3种模块组成:4个Encoder模块,4个Decoder模块,1个ACVH模块.其中,Encoder模块主要进行下采样操作,包含2个深度可分离卷积层和1个最大池化层.采用深度可分离卷积代替常规卷积降低网络的参数量和计算量.Decoder模块主要进行上采样操作,包含1个转置卷积层和2个深度可分离卷积层,转置卷积提供上采样操作.在与网络分支相连的Decoder模块中,增加连接层,用于融合网络主干和分支的特征图并将融合后的特征图输入下一个Decoder模块.ACVH模块为改进的非对称卷积模块,具体结构如图3所示,每层不规则卷积的通道数均为512.模块位于整个网络的下采样和上采样操作之间,扩大有效感受野,增加模型对线形特征的分割能力;网络的输入改为512×512,避免在融合浅层特征时的裁剪操作.

本文任务的数据集较小,如果采用通道较深的卷积层会使网络过拟合,产生较大的冗余.通过通道裁剪,将UFAC-Net的通道整体缩减为U-Net的1/2,进一步降低网络的复杂度.

整体的改进策略为先采用经典的网络轻量化方式(深度可分离卷积和通道裁剪)降低网络的参数量和计算量,再搭配嵌入网络深层的ACVH模块增加网络精度.

1.4 数据集

PSV datasets[12]共有4 249张图,包含各种复杂场景下的全景俯视图,如图5所示.数据集共分为3类:背景类、车道线、车位线.

1.5 损失函数

损失函数的计算公式如下:

(3)

lu=luw[xu]

(4)

(5)

图4 UFAC-Net模型结构

(a) 全景俯视图

(b) 线形图

式中:u=1,2,…,G,为样本数;k=0,1,2,为类别数.式(3)为常规交叉熵损失函数.模型采用加权交叉熵损失函数,如式(4)所示,通过增加车位线和车道线标签的权重,使网络更加注意车位线特征.模型中进行传播的损失由式(5)计算.

1.6 车位的提取与定位

图像经过网络进行分割后,进一步从中提取出车位信息,提取过程如图6所示.

图6 车位提取过程

通过图像细化降低车位线宽度,如图6中②所示;通过霍夫变换对细化后的图像进行车位线提取,线段用首尾点的坐标表示((x1,y1),(x2,y2)),如图6中③所示;通过斜率聚类和NMS对提取的车位线进行筛选.根据线段斜率将所有线段分为近似水平线和近似垂直线,经过聚类得到每条车位线的簇,取每一簇线段中的最大值保留.图6中④为筛选后的结果.线段斜率的计算公式如下:

Kg=|Δyg/(Δxg+1)|

(6)

式中:g=1,2,…,V,V为线段的总数量.

2 实验结果与分析

2.1 消融实验与分析

消融实验模型组成见表1.在U-Net的基础上进行3次微调分别得到UF-Net、UFC-Net、UFAC-Net,其中UFAC-Net是在UFC-Net的基础上嵌入ACVH模块得到,对其分别采用常规交叉熵损失函数和加权交叉熵损失函数进行训练,分别用UFAC-Net1和UFAC-Net2表示.

表1 消融实验模型组成

本文使用像素精度(pixel accuracy,PA)B1、平均像素精度(mean pixel accuracy,MPA)B2、平均交并比(mean intersection over union,MIoU)B3、频率权重交并比(frequency weighted intersection over union,FWIoU)B4为评估指标.计算公式如下:

(7)

(8)

(9)

(10)

式中:pij表示本属于i类却预测为j类的像素点总数,pii表示属于i类并且预测为i类的像素点总数,pji表示本不属于i类却预测为i类的像素点总数,k表示类别数(k=2).

为探究最佳的非对称卷积核长度R,本文分别设置4种不同的R(3、5、7、9),并在UFAC-Net网络中统一采用加权交叉熵损失函数测试,结果见表2.当R=5时,可以在较小的参数量提升下获得较大的精度提升,网络整体效果最佳.

表2 不同R的ACVH模块分割结果

由表3可知,UF-Net相比于U-Net,模型的平均交并比下降2.30%,深度可分离卷积可以满足本文任务的需求.UFAC-Net1的平均交并比达到72.92%,参数量为3.1 MB,约为U-Net参数量(17.6 MB)的1/5.通过增加ACVH模块使UFAC-Net1在增加较少参数量的情况下对分割精度的提升明显.通过采用加权交叉熵损失函数,使得UFAC-Net2在UFAC-Net1的基础上平均交并比提升0.13%,达到73.05%,损失函数最终的权重为[1,1.5,3].

表3 车位线分割结果

实验表明,在进行车位线分割任务时,可通过深度可分离卷积、通道裁剪等方式对分割模型轻量化,搭配ACVH模块可在增加少量参数情况下明显提升分割精度.

本文的实验环境为Ubuntu16.04操作系统,单张NVIDIA V100显卡,PaddlePaddle深度学习框架.采用梯度下降法训练,第20轮学习率衰减1/3,第40轮学习率再次衰减1/3,当验证集的损失值增加时停止训练.最终模型在训练集上的损失值稳定在0.01左右,在验证集上的损失值稳定在0.03左右.通过对测试集总的推理时间取平均得到单张图像的前向推理时间为28 ms,满足实时性要求.

本文将UFAC-Net与VH-HFCN进行比较,VH-HFCN此前在该数据集上是分割精度最高的网络.由表4可知,UFAC-Net相较于VH-HFCN平均交并比提升了26.54%,达到目前在该数据集上最高的分割精度.

表4 分割结果对比(PSV datasets)

2.2 车位检测实验与分析

本文在数据集PS2.0和PSV datasets中各取200张图像组成自定义测试集测试算法的泛化性.评估指标为精准率E1、召回率E2和单张图像检测时间,测试集包含3种车位(垂直、平行、倾斜)且占比为3∶3∶4.精准率、召回率的计算公式如下所示,检测结果见表5、6.

E1=s/(s+a)

(11)

E2=s/(s+b)

(12)

式中:s为检测正确(目标车位预测和车位类别判别均正确)的样本数量,a为误检车位(目标车位预测和车位类别判别均错误)的样本数量,b为漏检车位的样本数量.精准率E1为所有检测到的车位中检测正确的占比,召回率E2为所有车位中检测正确的占比.

表5 各类别车位检测结果

由表5可知,对车位线进行检测能够获取整体车位的更多信息,提高算法对倾斜车位方向的敏感性,从而提高对倾斜车位的检测精度.同时,本文算法在垂直和平行车位的检测上也达到了良好的检测效果.

将自定义数据集随机打乱后,检测结果见表6.实验结果表明,通过对分割模型及后处理算法的优化改进,本文算法检测精准率为99.23%,召回率为99.12%,单张图像检测时间为32.2 ms,取得了较高的车位检测精度,并且达到接近于标记点检测算法的单张图像检测时间.

表6 车位检测结果

本文随机抽取不同类别车位的预测结果图.图7展示了部分垂直车位的预测结果,图中包含室内、室外及不同背景下的车位.由预测结果图可知本文算法具有良好的泛化性.

(a) 原图

(b) 标签图

(c) 分割图

(d) 结果图

图8展示了部分平行车位的预测结果,图中包含不同户外场景和光照场景下的车位.由预测结果图可知本文算法受光照强度变化影响较小.

(a) 原图

(b) 标签图

(c) 分割图

(d) 结果图

图9展示了部分倾斜车位的预测结果,由图可知,本文算法通过分割车位线能够获得比较完整的车位信息,不受倾斜车位方向的影响,能够准确检测不同方向的倾斜车位,并可同时检测位于车辆两侧不同类型的车位,鲁棒性较强.

(a) 原图

(b) 标签图

(c) 分割图

(d) 结果图

3 结 语

本文通过对车位线进行分割和提取完成了车位检测,实现了多种类型的车位识别,提出了基于深度可分离卷积和非对称卷积相结合的网络轻量化改进策略,并提出UFAC-Net分割网络,将网络的参数量降至U-Net的1/5,平均交并比相较于U-Net提升1.09%(以UFAC-Net2为参考).实验结果表明,相较于VH-HFCN,像素精度提升2.79%,平均交并比提升26.54%,为目前该数据集上分割精度最高的网络.本文算法在自定义测试集中精准率为99.23%,召回率为99.12%,单张图像检测时间为32.2 ms,具有良好的检测性能,可检测复杂场景下平行、垂直和倾斜3种类型任意位置的停车位及其周围存在的车道线.虽然算法的鲁棒性较强,但还有一定的局限性,并不能判断检测到的车位是否可用.未来会结合目标检测,将车位检测和判断当前车位是否可用相互融合,进行更加智能化的车位检测研究.

猜你喜欢

非对称车位卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
为了车位我选择了环保出行
我自己找到一个
从滤波器理解卷积
非对称Orlicz差体
基于傅里叶域卷积表示的目标跟踪算法
一个车位,只停一辆?
点数不超过20的旗传递非对称2-设计
非对称负载下矩阵变换器改进型PI重复控制
一种基于卷积神经网络的性别识别方法