摘 要:视觉图像信号包含了真实世界的丰富的颜色、纹理、形状等信息,是包括人类在内的许多动物感知世界的主要方式。近年来,图像传感器与图像处理算法越来越成熟,在目标检测、目标识别、物体追踪等方面的应用展现出高性能、高精度、低成本等优势。本文实现了一套基于嵌入式平台和SSD算法的室内物体检测、识别、追踪算法,并且将这一系列算法应用于室内机器人足球赛,搭建了完整的室内机器人对抗系统。本文中提出的基于SSD算法的室内机器人足球比赛系统在目标检测准确率和效率方面都优于传统计算机视觉算法。
关键词:卷积神经网络;SSD目标检测算法;智能机器人;嵌入式
中图分类号:TP242 文献标识码:A 文章编号:2096-4706(2019)23-0012-03
Indoor Robot Football Match System Based on Embedded
Platform and Target Detection Algorithm
LIU Chunlong
(Zhuhai Vocational School of Polytechnic,Zhuhai 519070,China)
Abstract:Visual image signals contain rich colors,textures,shapes,and other information in the real world. They are the main way that many animals,including humans,perceive the world. In recent years,image sensors and image processing algorithms have become more and more mature,showing advantages such as high performance,high precision,and low cost in target detection,target recognition,and object tracking applications. This article implements a set of indoor object detection,recognition,and tracking algorithms based on the embedded platform and SSD algorithm,and applies this series of algorithms to indoor robot football matches to build a complete indoor robot confrontation system. The indoor robot soccer game system based on SSD algorithm proposed in this paper is superior to traditional computer vision algorithms in terms of target detection accuracy and efficiency.
Keywords:convolutional neural network;SSD target detection algorithm;intelligent robot;embedded
1 研究背景
機器人的定位与追踪是机器人系统的关键问题,是许多机器人应用的基础。室内定位系统分为无线和视觉两大类。无线定位的方案主要基于Wi-Fi、GSM、蓝牙等无线信号,通过终端定位设备与搭建在室内的基站进行通信。这类基于无线通信的室内定位方法不仅仅需要建立基站,各个待定位物体还需要通过安装专用的无线收发模块与基站通信来完成室内定位。并且由于室内环境复杂,无线电信号多径效应明显,导致基于无线的室内定位技术精度低、稳定性不足,当前主流的基于无线信号的定位技术的定位精度一般在0.5m左右。
某些特定任务采用基于视觉的方法对物体进行定位。在机器人足球对抗赛中,由于机器人在地面上移动,只需在地面二维平面上进行定位,机器人运动边界固定,活动规律明确,采用基于视觉的物体定位方法更加简单,只需开发定位系统,在终端上无须安装任何电路设备。相比于基于无线的定位系统,基于视觉的定位系统往往具备更高的物体定位精度,不仅应用在对机器人的定位中,机器人自身同样需要对周围关键目标进行定位[1]。国际上最有影响力的室内足球机器人比赛RoboCup已举办20余年,安装在场地上的摄像头可以对机器人进行定位,而安装在机器人身上的摄像头可以对足球、球门、其他机器人进行定位和追踪。
基于图像的定位检测技术过程包括检测输入图像中的目标,确定图像中目标的语义类型,确定目标在图像中的具体区域,根据图像传感器的位置信息确定目标在现实世界中的位置。室内环境中的基于图像的定位检测技术具有如下挑战:首先,同类目标的颜色、形状、纹理等方面可能存在巨大差异,不同类物体也有可能形态相近,类内相似度低和类间相似度高对物体检测的准确性提出挑战;其次,室内光照环境变化较大,极端情况下需要在复杂灯光效果下完成物体检测与定位,待检测区域中也会存在移动障碍物干扰,光照变换和环境干扰对物体检测的鲁棒性提出挑战;最后,由于室内物体运动轨迹相比室外更加精细,物体间距更小,物体定位边界不紧致会导致相邻物体检测位置重合,因此要求物体定位边界更加紧致。
为了解决上述问题,已经提出许多目标检测定位算法[2]。近年来,随着深度学习技术的不断发展,许多基于深度学习的目标检测算法在准确性上优于传统方法。本文将深度学习目标检测算法应用在室内机器人足球比赛系统中,搭建了完整的基于嵌入式平台的室内机器人对抗系统,内容安排如下:第2节介绍室内机器人足球比赛规则及系统架构;第3节介绍系统计算模块;第4节介绍系统控制模块;第5节介绍实验结果及分析;第6节介绍本文总结与展望。
2 室内机器人足球比赛规则及系统架构
我们设计了一个室内机器人比赛场景,将基于CNN的目标检测系统完整部署到嵌入式系统中。参赛双方各派出一辆小车,以将球踢进对方球门底线为目标,比赛结束时进球多者获胜。双方轮流担任射门方和防守方,射门方仅可在距离对方底线70cm外放置球和移动,防守方可在距离己方底线40cm范围内移动,超过该40cm范围将被强制停止。比赛在尺寸为210cm×297cm的模拟足球场上进行。需要开发的系统包括感知、计算、决策、控制单元,如图1所示。系统采用Xilinx Zynq7020 SoC平台,Zynq系列芯片包含一个基于双核ARM Cortex-A9的处理子系统(Processing System,PS)和Xilinx 28nm可编程逻辑(Programmable Logic,PL)。PS除核心外还包括片上存储器、外部存储器接口及大量外设连接接口。PS和PL之间通过可配置的AXI总线进行数据和指令交互。
基于嵌入式平台的室内机器人足球比赛系统结构如图2所示。
在该系统中,由于计算部分的目标检测模块计算量需求最大,我们使用PL对目标检测算法进行加速,其余的传感、决策和控制单元被部署在PS上。其中简单的控制通过PS和PL之间的AXI总线来传输少量控制信号,大量的数据通过PS和PL共享的内存DDR进行交互。感知系统主要为摄像头传感器,控制单元为电机驱动模块,二者均有成熟的解决方案和通用协议,并且为PS封装了相应的软件驱动,因此文中不再赘述。本文将主要介绍该系统的计算模块和决策模块。
3 计算模块
计算模块的主要功能是基于输入图像确定物体的位置,确定物体位置的核心算法为物体检测算法。我们分析了各种基于CNN的物体检测算法,确定使用SSD作为该系统的目标检测算法[3]。相比于YOLO算法,SSD候选框更加丰富,尺度种类也更加多样,并且大大减少了网络参数。相比于Faster-RCNN等两阶段算法,SSD和YOLO这类单阶段算法在速度上有大幅提升,适合应用到嵌入式设备中。
在FPGA上设计CNN加速器是近年来的一个热门研究方向。国内有很多企业已经开发了基于FPGA的CNN系统,说明基于FPGA的神经网络加速器已经进入工业应用阶段。在本研究中,我们采用开源的神经网络加速器DNNWeaver。DNNWeaver是一款基于FPGAs的深度神经网络加速器开源框架,程序员只需使用一种流行的深度学习框架caffe的代码格式,描述指定的深度神经网络,该框架便可以自主生成专用于指定深度神经网络的加速器。
我们首先利用caffe框架完成针对背景、足球、机器人三分类场景的SSD网络训练,之后利用DNNWeaver框架将神经网络映射到Zynq7020 FPGA上,对应一张输入图片,输出足球和对方小车在图像中的坐标。接下来,我们根据足球和对方小车在图像中的坐标,估计出足球和对方小车在真实世界中相对于平台小车的位置。最后,我们将足球和对方小车的真实位置发送给决策模块,由决策模块负责计算平台小车移动位置。
4 决策模块
首先根据计算模块传来的足球和对方小车的位置,計算足球相对于己方小车的方向和距离。我们用变量ball_distance表示足球相对于己方小车的距离,用变量fc表示足球相对于己方小车的方向。当足球在小车的正前方时,我们令fc=0;当球在小车的正右方时,令fc=90;当球在小车的正后方时,令fc=180;当足球在小车的正左方时,令fc=270。依此类推,如图3所示。fc的取值范围为0~359,分别对应了足球相对于小车的360种不同方向。我们利用三角函数atan将足球和己方小车的位置信息(两者的X轴和Y轴的坐标值)换算成相应的fc值。
接下来分析如何让小车做出把球推进对方球门的动作。当球非常靠近小车时(ball_distance≈20),如果球就在小车正右边,即fc=90,只要令小车运动方向path=fc+90,小车就会马上向正后方移动,则下一时刻足球将位于小车的右方偏前一点,fc减小(例如fc=70)。若继续执行path=fc+90,则小车向右后方移动,到下一时刻fc又减小(例如fc=50)。仍然执行path=fc+90将使得fc继续减小。当fc≈30时,足球已经差不多在小车的前方了,这时小车已经走出了一条曲线,并且成功绕到了足球的后面。当fc≤30时,由于此时球距离小车很近,只要令path=0,小车向前运动,足球就自然进入小车的控球位里,小车就能够将足球向前推进。
最后分析如何在带球过程中躲避对方小车。我们可以将对方小车看成一个障碍物,当障碍物离平台小车较远时,决策模块会让平台小车直接向球门运动;当障碍物离平台小车较近时,决策模块会让平台小车向障碍物靠近球门的方向转向。作为防守方时,平台小车将采用“盯人防守”策略,总是向对方小车控球处移动。有了传感、计算、决策、控制模块,我们便实现了一个完整的机器人场地足球比赛系统。
5 实验结果及分析
为了验证我们算法的有效性,我们实现了小车的平台。整体小车平台由三部分组成:机械平台、摄像头、控制板,如图4所示。机械平台负责控制逻辑构成,由稳压模块、电机驱动、三轮平台组成。摄像头负责采集环境信息,采用USB摄像头模组,通过USB接口与控制板进行连接。控制板负责处理环境信息,采用Xilinx Zynq 7020 SoC。由于主控板SoC具备ARM处理器,我们在主控板上部署了嵌入式操作系统,利用操作系统的驱动程序和OpenCV开源图像处理库对摄像头图像进行读取,摄像头最高帧率为50fps。
我们以场地顶端的摄像头采集的图片作为真值,在小车上部署摄像头采集传感器数据,建立室内机器人场景数据集。小车和顶端摄像头会接收到相同的同步信号,保证小车和顶端摄像头具备相同的时间基准。小车和摄像头采集到的图片及其对应的时间戳会分别存储在SD卡中。完成数据采集后,分别在小车视角和摄像头视角同一时刻采集的图片中手工标定出门球车的位置,小车与摄像头采集时间戳小于6ms的图片认为是同一时刻采集。在实验过程中,将摄像头采集的图像中标定的小车、足球、球门、另一辆小车的位置作为真值。摄像头采集的数据分为训练集和测试集,其中训练集900张图片,测试集237张图片。
我们使用均衡平均精度(mean Average Precision,mAP)作为衡量物体检测性能的指标。某一类别的平均精度(AveragePrecision,AP)為不同召回率测试点精度之和除以召回率测试点的数目。对于整个数据集,mAP为所有类别的AP之和除以类别数目。在实验中,可通过小车识别到物体的相对位置和大小计算出物体的实际位置,如果实际位置和真值的距离误差在30cm以内则认为识别正确。在AP计算过程中,我们分别采用执行度最高的1/2/4/8/16个框候选物体作为五个测试点,计算召回率和精度,进一步计算平均精度mAP。
在本实验中,我们分别实现了基于神经网络模型SSD的物体检测算法和传统基于Haar特征级联滤波的物体检测算法来对门球车(球门、足球、机器车)进行检测和定位,并进行对比。图像读取、Haar级联滤波识别门球车、决策控制等功能在SoC的ARM处理器完成,基于神经网络模型SSD识别门球车在SoC的FPGA平台上完成。SSD目标检测算法和传统Haar级联滤波算法的mAP与计算速度如表1所示。可以看出,基于SSD的物体检测方法不论是在算法精度还是在计算速度方面都好于传统的Haar级联滤波器算法。
6 结 论
本文设计并实现了一种基于嵌入式平台和SSD深度神经网络模型的室内物体检测、识别、追踪算法,搭建了完整的室内机器人足球比赛系统。实验结果表明本文提出的足球比赛系统在目标检测准确率和计算速度方面均优于传统方法。在未来的研究工作中,我们将对该系统的准确率和计算性能做进一步优化,并将其应用于其他实际应用场景中。
参考文献:
[1] 王语琪,巩应奎.一种基于视觉信息的可见光通信室内定位方法 [J].计算机技术与发展,2016,26(1):200-204.
[2] 徐剑,丁晓青,王生进,等.多视角多行人目标检测、定位与对应算法 [J].清华大学学报(自然科学版),2009,49(8):1139-1143.
[3] 吴帅,徐勇,赵东宁.基于深度卷积网络的目标检测综述 [J].模式识别与人工智能,2018,31(4):335-346.
作者简介:刘春龙(1970.01-),男,汉族,广东梅州人,教师,本科,研究方向:电气、自动控制。