基于深度学习的杆塔三维姿态实时估计*
2021-06-30李国强彭炽刚向东伟杨成城
李国强 ,彭炽刚 ,汪 勇 ,向东伟 ,杨成城
(1.广东电网有限责任公司 机巡作业中心,广东 广州 510062;2.武汉汇卓航科技有限公司,湖北 武汉 430070)
0 引言
随着国民经济的增长和无人机在电网的逐步应用推广,繁重的无人机作业任务让无人机的智能化显得尤为重要。同时,机器学习技术的飞速发展,给无人机的智能化提供了新的思路。但是,机器视觉的目前所需要的训练数据是通过无人机等手段采集的,不仅耗时长、耗人力,而且检测往往只是针对单张图片,进行二维平面上的识别,面对实时视频检测比较卡顿,同样无法识别物体三维空间姿态。
因此,需要改善视频实时识别的卡顿,改进训练数据的采集技术。传统的目标检测算法大多数以图像识别为基础。一般可以在图片上使用穷举法或者滑动窗口选出所有物体可能出现的区域框,对这些区域框提取特征并使用图像识别分类方法,得到所有分类成功的区域后,通过非极大值抑制输出结果。近些年来相关学者提出采用人工智能的方法实现目标检测,其中包括K 最近邻KNN[1]、随机森林Random Forest[2]、线性向量 机SVM[3]。这些浅层机器学习方法在建模过程中功能简单,复杂函数和分类问题的表达有限,鲁棒性差,准确度和精度低。而对于难以应对指数增长的遥感图像目标特征提取,也不能达到很好的特征分析和识别效果。
针对以上的问题,本文拟解决的关键问题和创新点如下:
(1)引入深度学习特征学习机制:深度学习研究怎样在大量数据中快速自动的获取多层特征,其核心思想是利用一系列非线性变换从原始数据中提取特征,从低级到高级,从具体到抽象,从一般到具体的语义。通过无监督机制,采用自学习方法学习遥感图像的特征,提高了遥感图像的自动化程度和准确性。
(2)采用3D 游戏引擎进行渲染模拟目标模型的真实存在环境,通过虚拟相机拍摄得到海量的训练数据集。
(3)GPU 计算的处理机制:采用GPU 加速计算,优势在于针对实时视频检测,数据的吞吐量大以及数据处理速度快。
1 相关研究
(1)浅层机器学习目标检测方法:浅层目标检测方法通常有支持K 最近邻KNN[1]、随机森林Random Forest[2]、向量机SVM[3]。
(2)R-CNN 为代表的深度学习目标检测方法:2014年RBG(Ross B.Girshick)[4]使用卷积神经网络直接产生Region Proposal 来代替传统目标检测使用的手工设计的滑动窗口特征,设计了R-CNN 框架,使得目标检测取得巨大突破,极大地促进了深度学习对目标检测的热度。在此基础之上,很多学者对CNN 进行改进用以实现目标检测与场景识别,具有代表性的是R-CNN[4](CVPR2014、TPAMI2015)、SPP -NET[5](ECCV2014)、FastR -CNN[6](ICCV2015)、FasterR-CNN[7](NIPS2015)。
(3)以YOLO 为代表回归方法的深度学习目标检测算法:基于回归方法的深度学习目标检测算法主要有YOLO[8](CVPR2016、oral)、SSD[9](ECCV 2016)。
在遥感影像识别领域,郭军[10]引进了基于上下文信息的可见光遥感图像目标检测与识别,王慧利[11]提出了聚类与几何特征相结合的遥感图像多类人造目标检测算法,吴一全等[12]提出了基于自适应参数支持向量机的高光谱遥感图像小目标检测,林煜东[13]引进了基于姿态加权投票的旋转缩放不变目标检测方法,李湘眷等[14]提出了窗口融合特征对比度的光学遥感目标检测算法。
2 算法模型
2.1 R-CNN
R-CNN 采用监督学习机制,神经网络模型使用卷积算法对图像进行提取特征点和反向传播算法进行机器学习训练。遵循传统目标检测的思路,同样采用提取框,对每个框提取特征、图像分类、非极大值抑制4 个步骤进行目标检测。
R-CNN 对输入的数据的主要是通过以下几种方法来实现形变变化、尺度变化、位移变化的不变性:子采样、权值共享和局部感受野。
子采样:如果卷积层的输入被平移,它的输出将被平移,但是不会改变它,并且一旦检测到特征,只要保存相对于其他特征的近似位置,其精确位置就不那么重要。因此,在每个卷积层后面将有一个附加层来执行局部平均值化,即子采样以降低输出对平移和变形的敏感度。
权值共享:加权平均可以大大减少训练参数的个数,通过降采样降低输入影像的分辨率,滤除带噪声的特征,增强在图像识别中起作用的特征。
局部感受野:局部感受野是指网络每一层中的单个神经元只与与其输入层对应的邻域中的神经元相连。
卷积神经网络的训练分为两个阶段:
(1)向前传播阶段:通过卷积核对输入数据进行卷积操作,经过逐级变换传送到输出层。数据在实际网络的计算过程中卷积层的向前传播过程如下:其中一个输入为15 个神经元的图片,卷积核为2×2×1 的网络,即卷积核的权值为W1、W2、W3、W4。那么卷积核对于输入数据的卷积过程。卷积核采用步长为1 的卷积方式,卷积整个输入图片,形成了局部感受野,然后与其进行卷积算法,即权值矩阵与图片的特征值进行加权和(再加上一个偏置量),然后通过激活函数得到输出。
(2)向后传播阶段:当卷积神经网络输出的结果与期望值不相符时,则进行反向传播过程。求出结果与期望值的误差,再将误差一层一层地返回,计算出每一层的误差,然后进行权值更新。该过程的主要目的是通过训练样本和期望值来调整网络权值。误差的传递过程可以这样来理解:首先,数据从输入层到输出层,期间经过了卷积层、下采样层、全连接层,而数据在各层之间传递的过程中难免会造成数据的损失,也就导致了误差的产生。而每一层造成的误差值是不一样的,所以当求出网络的总误差之后,需要将误差传入网络中,求得该各层对于总的误差应该承担多少比重。
2.2 Deep-Object-Pose
Deep-Object-Pose[15]是 继PoseCNN 和Deep-6DPose 之后,为了实现机器人的抓取研究,英伟达TREMBLAY J 等提出的一种改进的目标空间姿态估计方法。利用合成数据来训练用于机器人操作的深层神经网络,一个基于深度神经网络的一次性系统,可以在几乎实时的情况下,从单个RGB 图像中推断出杂乱的已知物体的三维姿态,而不需要进行校正。该系统采用一种简单的深度网络结构,完全基于模拟数据进行训练,通过PnP[16](Perspective-n-Point)推导出投影三维包围盒的二维图像坐标。结合非光真实感(领域随机化)和光真实感合成数据来训练鲁棒的深度神经网络,实现了与基于真实数据训练的最先进网络相媲美的性能。Yu Xiang 等人在2017 年提出的神经网络体系结构如图1 所示,针对物体的空间姿态信息进行识别。
图1 神经网络结构
3 数据分析与处理
数据分析与处理包括:3D 模型制作、图像合成、目标检测。
3.1 3D 模型制作
实验中的模型文件通过SketchUp 软件进行人工绘制,然后通过3D 打印机将模型文件打印出来。如图2所示,图2(a)为手工描绘的3D 模型文件,图2(b)是将图2(a)中的3D 模型文件通过3D 打印技术打印出的真实模型。
图2 模型文件及模型
3.2 训练数据生成
与2D 对象检测相比,3D 对象检测需要标记的数据更加复杂,而手工生成这些数据几乎是不可能的。目前我们基于UE4 开发了一个插件,利用它可以生成海量的高质量的合成数据,这些数据包括RGB 图像、深度图、分割图以及每一帧的标记数据文件。通过利用异步、多线程的顺序帧抓取,插件以50~100 Hz 的频率生成数据,这比默认的UE4 截屏函数要快得多。除了合成数据,插件还包括不同的组件,以生成高度随机化的图像。这种随机化包括光照、物体、相机的位置、姿势、纹理和干扰以及相机路径跟随等。这些组成部分使研究人员能够轻松地创建随机场景来训练深层神经网络。
通过将模型塔导入到UE4 场景中,利用插件提供的自动传送虚拟相机,可以捕捉模型塔在逼真场景中的各个方位的每一帧图像,并高速生成合成数据。其中虚拟相机是由左右双摄像头组成,左右相机之间的距离保持60 cm(这是UE4 中的坐标距离,具体值由对象大小来设定),捕捉到的一帧数据包括:RGB 图像、深度图、分割图和数据标记文件,由于是左右双相机捕捉,因此一帧数据包括8 个文件。
图3 为一组合成数据,其中包含虚拟RGB 相机拍摄的影像(如图3(a)所示)、虚拟深度相机拍摄的影像(如图3(b)所示)、分割图片(如图3(c)所示)。同时还包含配置文件,配置文件分为_camera_settings.json 和_object_settings.json。_camera_settings.json 是UE4 虚拟相机的配置文件,包含一些相机的捕获图片大小以及相机在世界坐标系中的XYZ 位置和方位矩阵;_object_settings.json 则是捕获对象的配置文件,包含对象的类名、三维场景坐标、姿态以及对象的包围盒信息等信息。
图3 UE4 合成得单组数据
部分信息如下:
利用UE4 插件可以快速高效合成自己想要的训练数据,生成数据的多少可以根据自己的需求来设定。为了让自己的数据更合理更逼真,也可以更换不同的UE场景,改变目标对象的位置,以及添加一些外在干扰项(如天气变化、物体遮挡、场景光照等因素),这样可以使得合成数据更多样性,更逼近现实,因为数据集的好坏直接决定了后面训练网络模型的好坏,也决定了网络模型的鲁棒性。
考虑到电力塔材质的特殊性,因为电力塔是银白色金属材质,具有高反射性,所以在UE4 中表面颜色受光照影响比较明显。为了克服光照这一因素对塔身检测的干扰,在合成数据时,可以在UE4 场景中添加一些随机光照组件,它可以以很快的速度随机改变光照强度以及光源的位置;或者在场景的不同位置,调整不同的光照强度,分别生成一定数量的数据用于后期的训练。
3.3 目标检测结果与分析
3.3.1 实验环境
选择适合的实验环境,对于实验的精度以及效率有着很重要的影响。其中表1 中是本次实验所用的电脑配置,表2 是本次图像识别所用的摄像头参数。
表1 实验电脑环境
表2 摄像头参数
3.3.2 检测图片中的模型
单张图片识别效果如图4 所示,准确识别出了图片杆塔模型的三维空间姿态信息。通过实验可以清晰地看出,利用Deep-Object-Pose 对遥感影像杆塔单张数据的检测,能比较准确地识别出杆塔的三维空间姿态信息。
图4 单张图片识别
3.3.3 检测现实模型
为了验证算法的可扩展性,本文使用罗技C920 高清摄像头仿照无人机通道巡检作业方式识别杆塔模型。识别现实模型空间姿态如图5 所示,精确识别出了现实杆塔三维空间姿态信息。
图5 识别现实模型空间姿态
3.3.4 检测遮挡模型目标
本文为了验证算法在现实环境中的应用性,选择高光反射比较强的镜面作为遮挡物,从图6中可以很清晰地看出,本算法能完整地识别杆塔模型的姿态信息,验证了算法识别的准确性。
图6 模型遮挡识别实验
4 结论
本文提出的Deep-Object-Pose 算法适用于做杆塔这类无纹理镂空目标的检测识别,通过视频的实时检测,其能准确识别杆塔的空间姿态信息。为验证算法的可扩展性,通过实验进行遮挡验证,其算法能准确地估计物体的空间姿态信息,模拟无人机在电力巡检过程中杆塔在现实环境中有遮挡的情况,这将为无人机的智能化奠定良好的基础。