自动泊车之通用停车位检测算法(下篇)为何这么重要呢?

自动泊车之通用停车位检测算法(下篇)为何这么重要呢?_58汽车

本文介绍了车位几何抽象、数据集制作、车位预测、网络架构等内容。车位几何抽象是为了对复杂的现实环境进行数学表示,数据集制作时需注意标注车位角点、进入线和分隔线。车位预测时,以feature map为输入,回归车位角点、进入线和分隔线等信息。网络架构可自行选择,但需注意输出特征图的大小。在公开数据集上的测试结果显示,设计可模仿实际泊车的AVM成像,需注意增强手段和loss设计。总结指出,解决算法只是迈出了第一步,工程之路还需不断探索。

接着上篇写:

上篇我们写到了车位几何抽象

3.2车位几何抽象

车位抽象出来后,我们只需预测车位的几何表征信息,而无需纠结于车位具体是哪种类型,角点具体用哪种模板,复杂抽象的几何表征,恰恰是对复杂的现实环境的一种数学表示。

图53中的红色曲线箭头,代表车位的几何方向,进入线是AB,分隔线是AD,车位角点是A,红色方向为分隔线->车位角点->进入线。AD->A->AB

3.3数据集的制作

图54是整张AVM图(4路图像去畸变和拼接后)做的处理,图56是单路鱼眼相机图像做的处理。

在制作数据集时,可以在AVM图上进行标注,也可以在单路图像上进行标注。

整张AVM图标注时,遵循图53的右子图标注原则:即在AVM整图的右边,找到车位,对车位角点A打标;再标注进入线AB,AB应尽可能准确;标注AD时,可任意选择AD的长度,因为AD的预测有两种方法,再上篇的图49公式里,是计算方式。此时整个车位就是逆时针顺序。相对而言,AVM图左边的标注也是按照逆时针原则,但要注意标注进入线和分隔线。

单路图像标注时,把左边相机拍摄的左子图全部旋转到右子图,进行统一标注。

另外,还可以给车位上是否占用,即是否可用打上标签。

标注的图像通过裁剪和放缩,处理到W=128,H=384,W/H=1/3,送入网络。这个比例和大小自己定,这里职位为了除以下采样32的倍数,选128的倍数更方便。

公开数据中,我们采用了ps2.0和PIL_park,并进行数据集的改造。以符合我们的几何抽象定义。另外还自行采取和制作了商场停车场的数据集(就不贴上来了)。

ps2.0:Vision-basedparking-slotdetection:ADCNN-basedapproachandalarge-scalebenchmarkdataset

PIL_park:Context-basedparkingslotdetectionwitharealisticdataset

3.4车位预测

在featuremap上,一个feature_map像素,回归一个车位。输入的分辨率是128*384,吐出的特征图分辨率是4*12,输入的通道是3(RGB)或者1(Gray灰度图),输出的通道根据需要而定,我们采用的8个输出通道,具体为:confidence置信度,车位角点A_x/A_y,进入线delta_x/delta_y,分隔线delta_x/delta_y或者分隔线cos/sin,是否占用标志isOccupied(或者是否可用标志available)。

这里的车位角点,并不是真正意义上的图像中一定存在的车位角点,进入线和分隔线也不是真正意义上图像中存在的线、实线、虚线、各种线,我们回归的是一种抽象的数学几何表示。

是不是有点像CenterNet?或者YOLO系列,YOLO1/2/3/X,AnchorFree,但是这里最大的区别在于,没有利用图像中的具体像素,利用实例的形状和位置来确定实例,这里就解释不通,因为汽车有畸变,它挡住了车位,并不是真正的实际成像,我们回归可以说是一个二维平面(地面)的车位,而3维空间中的汽车被AVM压到了二维成像中,像素分布并不可靠了,学习图像具体的像素不可行,必须让网络学习抽象的几何表征。有点难以解释,让整个车位的信息,压缩到车位角点,即便车位角点实际并不存在,或者车位角点难以区分,如图58所示。车位角点只是一个承载的载体,也可换到图像中任何其他位置,如进入线AB中点,(没试过),设计的时候考虑到了这一点。

3.5网络架构

这个就很随意了,backbone和detectionhead,任选,只是输出特征图的大小要特别注意,拿feature_map的分辨率4×12来说,一张128×384的图最多给48个车位预测,实际上没有这么多,只是为了适应车位在图中的分布,需要4×12去适应车位出现在图中的不同位置。我们选择了单阶段的网络设计,直出,就用单分辨率特征图,发现已经把公开数据集ps2.0和PIL_park的AP快刷满了。

3.6公开数据集上的测试结果

ps2.0数据集是同济在2018年发布的,在车位检测极具影响力,但比较简单。PIL_park发布得更晚,文章引用少,但难度足够。

再贴下效果图:

视频效果在:

3.7设计实验

为了模仿实际泊车的AVM成像,比较关键的增强手段就是旋转ratote,然后就是平移shift。

上篇有说,就是汽车在行驶过程中,前行、转向和靠近车位的距离。

输入采用RGB和灰度图均可,灰度图只是为了实际工程应用,但RGB的AP更高。

实验参照一些影响广泛的检测网络设计即可,不是本篇讨论的范围。

但是在设计loss的时候,因为confidence、角点坐标、进入线、分隔线、是否占用,它们的loss量级有差,于是乎,做了对比实验,发现需要给上述的每个单项加系数,使网络更关注角点坐标和进入线,而对是否占用的影响降低。采用了L2-norm。

不采用任何增强手段的粗糙网络在PIL_park的test上也能达到超过90的mAP。方法很重要。

四、总结

还行吧,工程的路还很长,解决算法只是迈出了第一步,坚实的第一步!

以上内容由58汽车提供。如有任何买车、用车、养车、玩车相关问题,欢迎在下方表单填写您的信息,我们将第一时间与您联系,为您提供快捷、实用、全面的解决方案。

原创文章,作者:58汽车,如若转载,请注明出处:https://car.58.com/7121675/