基于深度学习的人手视觉追踪机器人

基于深度学习的人手视觉追踪机器人
林粤伟1,2,  牟 森1
1(青岛科技大学 信息科学技术学院, 青岛 266061)2
(海尔集团博士后工作站, 青岛 266000)
通讯作者: 林粤伟, E-mail: ******************
摘 要: 视觉追踪是智能机器人的核心功能之一, 广泛应用于自动驾驶、智慧养老等领域. 以低成本树莓派作为下位机机器人平台, 通过在上位机运行事先训练好的深度学习SSD 模型实现对人手的目标检测与视觉追踪. 基于谷歌TensorFlow 深度学习框架和美国印第安纳大学EgoHands 数据集对SSD 模型进行训练. 机器人和上位机的软件使用Python 在Linux 系统下编程实现, 两者之间通过WiFi 进行视频流与追踪控制命令的交互. 实测表明, 所研制智能机器人的视觉追踪功能具有良好的稳定性和性能.关键词: 深度学习; SSD 模型; 树莓派; 计算机视觉; 机器人
引用格式:  林粤伟,牟森.基于深度学习的人手视觉追踪机器人.计算机系统应用,2020,29(11):227–231. /1003-3254/7594.html
电脑加密锁Human Hands Visual Tracking Robot Based on Deep Learning
LIN Yue-Wei 1,2, MU Sen 1
1(College of Information Science and Technology, Qingdao University of Science and Technology, Qingdao 266061, China)2
(Postdoctoral Workstation of Haier Group, Qingdao 266000, China)
Abstract : Vision tracking is one of the core functions of smart robots, and widely used in automatic d
led光源模组
riving, intelligent pension and other fields. The low-cost Raspberry Pi is employed as the slave computer robot platform. The object detection and visual tracking of human hands is implemented through running the pre-trained deep learning SSD model on host computer. The SSD model is trained based on Google’s TensorFlow deep learning framework and US Indiana University’s EgoHands dataset. Both of the robot and host computer’s software is written by Python in Linux systems.Video stream and tracking control commands are exchanged between robot and host via WiFi. The practical tests show that the vision tracking function of the developed smart robot has good stability and performance.Key words : deep learning; SSD model; Raspberry Pi; computer vision; robot
智能机器人的开发是科学研究、大学生科技创新大赛的热点, 基于计算机视觉的目标检测技术在智能小车、无人机、机械臂等领域得到了广泛应用. 在企业界, 零度智控公司开发了Dobby (多比)、大疆公司开发了Mavic 等, 研发出了具有视觉人体追踪与拍摄
功能的家用小四轴自拍无人机. 在学术界, 文献[1] 从检测、 跟踪与识别三方面对基于计算机视觉的手势识别的发展现状进行了梳理与总结; 文献[2]基于传统的机器学习方法-半监督学习和路威机器人平台实现了视觉追踪智能小车; 文献[3]基于微软Kinect 平台完
计算机系统应用 ISSN 1003-3254, CODEN CSAOBN
E-mail: ************ Computer Systems & Applications,2020,29(11):227−231 [doi: 10.15888/jki.csa.007594] ©中国科学院软件研究所版权所有.
Tel: +86-10-62661041
① 基金项目: 青岛科技大学教学改革研究面上项目(2018MS44); 青岛市博士后应用研究项目
Foundation item: General Program of Education Reform of Qingdao University of Science and Technology (2018MS44); Post Doctorial Application Research of Qingdao City
收稿时间: 2020-01-08; 修改时间: 2020-02-08, 2020-03-17; 采用时间: 2020-03-24; csa 在线出版时间: 2020-10-29
成了视觉追踪移动机器人控制系统的设计; 文献[4]对服务机器人视觉追踪过程中的运动目标检测与跟踪算法进行研究并在ROS (Robot Operating System, 机器人操作系统)机器人平台进行实现.
上述视觉追踪功能的实现大多采用传统的目标检测方法, 基于图像特征和机器学习, 且所采用平台成本相对较高. 近年随着大数据与人工智能技术的兴起, 利用深度学习直接将分类标记好的图像数据集输入深度卷积神经网络大大提升了图像分类、目标检测的精确度. 国内外基于Faster R-CNN (Faster Region-Convolutional Neural Network, 更快的区域卷积神经网络)、YOLO (You Only Look Once, 一
种single-stage 目标检测算法)、SSD (Single Shot multibox Detector, 单步多框检测器)等模型的深度学习算法得到广泛应用,如文献[5]将改进的深度学习算法应用于中国手语识别. 本文基于深度学习[6]技术, 在低成本树莓派[7]平台上设计实现了视觉追踪智能机器人(小车), 小车能够通过摄像头识别人手并自动追踪跟随人手. 与现有研究的主要不同之处在于使用了更为经济的低成本树莓派作为机器人平台, 并且在目标检测的算法上使用了基于TensorFlow [8]深度学习框架的SSD 模型, 而不是基于传统的图像特征和机器学习算法.
1  关键技术
1.1  系统架构
如图1, 整个系统分为机器人小车(下位机)和主控电脑(上位机)两部分. 上位机基于深度学习卷积神经网络做出预测, 下位机负责机器人的行进以及视频
数据采集与传输, 两者之间通过WiFi 通信. 其中, 小车主控板为开源的树莓派3代B 开发板, CPU (ARM 芯片)主频1.2 GHz, 运行有树莓派定制的嵌入式Linux 操作系统, 配以板载WiFi 模块、CSI 接口摄像头、底盘构成下位机部分. 上位机操作运行事先训练好的SSD 模型[9]. 小车摄像头采集图像数据, 将其通过WiFi 传输给上位机, 并作为SSD 模型的输入. SSD 模型如果从输入的图像中检测到人手, 会得到人手在图像中的位置, 据此决定小车的运动方向和距离(需要保持人手在图像中央), 进而向小车发送控制
命令, 指示运动方向和距离. 小车收到上位机发来的远程控制命令后,做出前进、转向等跟踪人手的动作. 智能小车和主控电脑两端皆运行用Python [10]编写的脚本程序.1.2  深度学习SSD 模型
SSD 模型全名为Single Shot multibox Detector [9],是一种基于深度学习的one stage (一次)目标检测模型. SSD 模型由一个基础网络(base network)的输出级后串行连接几种不同的辅助网络构成, 如图2所示. 不同于之前two stage 的Region CNN [11], SSD 模型是一个one stage 模型, 即只需在一个网络中即可完成目标检测, 效率更高.
摄像头控制
图传
传输图像
发送命令
SSD 模型
树莓派
图1    智能机器人系统架构
S S D
300
300
3
512
10241024512256256
256Image 3838
Conv4_3
Conv6_21919
Conv6(FC6)1919
Conv7(FC7)1919
Conv9_255
Conv10_2Conv11_23
3
1Conv: 3×3×1024Conv: 1×1×1024Conv: 1×1×256Conv: 3×3×512−s2Conv: 1×1×128Conv: 3×3×256−s2Conv: 1×1×128Conv: 3×3×256−s1Conv: 1×1×128
Conv: 3×3×256−s1
VGG-16
Through Conv5_3 layer
dtt使用浓度
Classifier: Conv:3×3×(4×(Classes+4))
Classifier: Conv:3×3×(6×(Classes+4))
Conv: Conv:3×3×(4×(Classes+4))
D e t e c t i o n s : 8732 p e r  c l a s s
N o n -m a x i m u m  s u p p r e s s i o n
74.3 mAP 59 FPS
图2    SSD 模型
SSD 模型采用多尺度特征预测的方法得到多个不同尺寸的特征图[9]
. 假设模型检测时采用m  层特征图,则得到第k 个特征图的默认框比例公式如式(1):
S k =S min +
S max −S min
m −1
(k −1),k ∈{1,2,···,m }
(1)
其中, S k 表示特征图上的默认框大小相对于输入原图
计算机系统应用
2020 年 第 29 卷 第 11 期
的比例(scale). 一般取S min =0.2, S max =0.9. m 为特征图个数.
SSD 模型的损失函数定义为位置损失与置信度损失的加权和[9], 如式(2)所示:
L (x ,c ,l ,g )=
1
N
(L conf (x ,c )+αL loc (x ,l ,g ))(2)
其中, N 表示与真实物体框相匹配的默认框数量; c 是预测框的置信度; l 为预测框的位置信息; g 是真实框的位置信息; α是一个权重参数, 将它设为1; L loc (x,l,g )位置损失是预测框与真实框的Smooth L1损失函数;L conf (x,c )是置信度损失, 这里采用交叉熵损失函数.1.3  TensorFlow 平台
使用谷歌TensorFlow 深度学习框架对SSD 模型进行训练. TensorFlow 能够将复杂的数据结构传输至人工智能神经网络中进行学习和预测, 近年广泛应用于图像分类、机器翻译等领域. TensorFlow 有着强大的Python API 函数, 而本文实现的智能小车和主控电脑端运行的程序皆为Python 脚本, 可以方便的调用Python API 函数.
2  设计与实现
系统主程序软件流程如图3所示. 上位机运行自行编写的Python 脚本作为主程序, 接收下位机发来的图像, 并将其输入到事先训练好的深度学习SSD 模型中, 以检测人手目标. 若检测到人手, 则产生、发送控制命令至下位机. 下位机运行两个自行编写的Python 脚本, 其中一个脚本基于开源的mjpg-streamer 软件采集、传输图像至上位机, 另一个接收来自上位机的控制命令并通过GPIO 端口控制车轮运动.
机器人上电
Linux 系统启动
采集图像
图传进程
控制进程
打开摄像头
把采集到的图像以流的方式通过 IP 网络传输到上位机
机器人掉电
启动进程
连接 WiFi AP
启动 http 服务器
是否有上位机控制命令?
控制车轮
Y N
智能机器人/下位机 (服务端)
电脑/上位机 (客户端)
连接 WiFi AP 进程启动
接收图像
将图像输入SSD 模型进行识别
是否检测到人手?
根据人手在图像中的位置生成并发送命令
进程退出
Y
N
http/WiFi 通信
图3    主程序软件流程
2.1  深度学习SSD 模型训练
ca3780
上位机电脑和CPU 型号为联想Thinkpad E540酷睿i5 (第4代), 操作系统为Ubuntu 16.04 LTS 64位,TensorFlow 版本为v1.4.0, 采用TensorFlow Object Detection API 的SSD MobileNet V1模型. 训练数据直接使用了美国印第安纳大学计算机视觉实验室公开的
EgoHands 数据集, 该数据集是一个向外界开放下载的1.2 GB 的已经标注好的数据集, 用谷歌眼镜采集第一视角下的人手图像数据, 例如玩牌、下棋等场景下人手的姿态. 首先对数据集进行数据整理, 将其转换为TensorFlow 专有的TF Record 数据集格式文件, 然后修改TensorFlow 目标检测训练配置文件ssd_
2020 年 第 29 卷 第 11 期
计算机系统应用
mobilenet_fig. 训练全程在电脑上由通用CPU运行, 共运行26小时. 结束训练后将protobuf格式的二进制文件(真正的SSD模型)保存下来以便下文介绍的上位机Python主程序调用.
2.2  上位机设计
考虑到小车回传视频的帧数比较高, 且深度学习神经网络的计算也是一件耗时的任务, 在上位机主程序(
Python脚本)中建立了两个队列, 一个输入队列用来存储下位机传来的原始图像, 一个输出队列用来存储经神经网络运算处理之后带有标注结果的图像. 上位机通过开源软件OpenCV的cv2.videoCapture类用文件的方式读取视频信息. 运行SSD目标检测模型进行人手识别时, 会得到目标的标注矩形框中心, 当中心落到整幅图像的左侧并超出一定距离时, 产生turnleft 左转指令; 当中心落到整幅图像右侧且超出一定距离的时, 产生turnright右转指令; 当中心落到图像的上半部分并超过一定距离时, 产生forward前进指令. 距离值默认设定为60个像素, 该参数可修改. 预测小车行进方向功能的伪代码如算法1所示.
算法1. 上位机预测行进方向伪代码
Require: 距离阈值(默认为60像素)
 while 全部程序就绪 do
  if 没有识别到目标:
   Continue;
  else if 识别到目标:
   if 识别到目标面积过大, 目标离摄像头太近:
   Send(“stop”);
    else:
    if 目标中心 x<640/2–距离阈值:
    Send(“turnleft”);
   if 目标中心 x>640/2+距离阈值:
    Send(“turnright”);
    else:
    Send(“forward”);
 end while
2.3  下位机设计
下位机基于低成本树莓派平台实现, 使用开源软件Bottle部署了一个多线程的HTTP服务器, 该服务器接
收上位机发出的HTTP POST请求, 提取其中的控制命令进行运动控制. 使用开源软件mjpg-streamer控制网络摄像头采集图像, 并将图像数据以视频流的方式通过IP网络传输到上位机客户端.3  测试结果与评估
搭建局域网环境(也支持广域网), 使上位机和下位机接入同一无线路由器. 当摄像头采集到的画面右侧出现人手时, 如图4所示的实时图像中, 标注方框标记出了检测到的人手的位置, 同时控制台输出turnright (右转)控制命令, 此时小车向右侧做出移动. 当屏幕中没有人手时, 画面上面没有用彩画出的区域, 上位机的终端也不打印输出任何控制命令.
图4    人手目标检测功能测试结果
功能方面, 针对人手在小车视野的不同位置情况进行所研制小车人手视觉追踪的功能测试. 比如, 当人手在小车前方且完整出现时, 上位机应发出forward (前进)命令, 进而小车收到该命令后向前行进. 当小车视野里没有或只有部分人手时, 应当无命令输出, 小车原地不动. 功能测试用例如表1所示, 测试结果均为预期的正常结果. 性能方面, 所采用基于深度学习SSD 模型的人手目标检测算法的准确性与实时性较好, 算法的mAP (平均精准度) 为74%, 检测速率40 fps左右,可以较好的满足系统要求.
表1    人手视觉功能测试结果
测试用例输出命令小车动作手在小车正前方60 cm处forward向前行进
手在小车左前方60 cm处turnleft向左行进棉花糖制造机
手在小车右前方60 cm处turnright向右行进
手在小车正前方130 cm处forward向前行进
手在小车左前方130 cm处turnleft向左行进
手在小车右前方130 cm处turnright向右行进
视野里只有半只手无输出原地不动
手在小车视野下方无输出原地不动
小车(机器人平台)外观如图5所示. 另外, 由于动态视频文件无法在论文中展示, 这里展示的是录制好
计算机系统应用2020 年 第 29 卷 第 11 期
的测试视频中2个帧的截图, 如图6所示, 从小车的位置变化可以看出其可以追踪人手.
图5    机器人外观
图6    追踪人手
4  结论
本文利用深度学习SSD 目标检测模型对目标进行识别, 将识别的结果用于修正智能小车机器人的行进路线, 满足了智能机器人的视觉追踪功能需求. 其特主要在于采用了低成本树莓派, 以及深度学习而非传统的神经网络识别算法, 省去了设置特征的步骤. 系统暂时只能用来识别人手, 小车能够跟随人手移动, 功能稳定性与性能良好. 若要识别追踪其他物体, 可以使用其他自己制作或第三方数据集对SSD 模
型进行训练, 以把网络的识别对象训练成拟追踪的目标类型. 未
来也可应用5G 通信模块, 进行更为稳定低时延的视频传输与控制.
参考文献
Rautaray  SS, Agrawal  A. Vision  based  hand  gesture
recognition  for  human  computer  interaction: A  survey.Artificial  Intelligence  Review, 2015, 43(1): 1–54. [doi: 10.1007/s10462-012-9356-9]
1张子洋, 孙作雷, 曾连荪. 视觉追踪机器人系统构建研究.
电子技术应用, 2016, 42(10): 123–126, 130.
2王道全. 基于视觉的智能追踪机器人的设计研究[硕士学磷酸氧钛钾
位论文]. 青岛: 青岛科技大学, 2016.
3周燕秋. 服务机器人视觉追踪技术研究[硕士学位论文].
上海: 上海师范大学, 2018.
4周舟, 韩芳, 王直杰. 改进SSD 算法在中国手语识别上的
应用. 计算机工程与应用: 1–7. knski/kcms/detail/11.2127.TP.20191207.1137.006.html . [2020-03-19].
5Goodfellow I, Bengio Y, Courville A. Deep Learning 深度学
习. 赵申剑, 黎彧君, 符天凡, 等译. 北京: 人民邮电出版社,
2017.
6许艳, 孟令军, 王志国. 基于树莓派的元器件检测系统设
计. 电子技术应用, 2019, 45(11): 63–67, 71.
7郑泽宇, 梁博文, 顾思宇. TensorFlow: 实战Google 深度学
习框架. 2版. 北京: 电子工业出版社, 2018.
8Liu  W, Anguelov  D, Erhan  D, et  al . SSD: Single  shot
MultiBox  detector. Proceedings  of  the  14th  European Conference on Computer Vision. Amsterdam. 2016. 21–37.
9Chun W. Python 核心编程. 孙波翔, 李斌, 李晗, 译. 3版. 北
京: 人民邮电出版社, 2016.
10Girshick  R, Donahue  J, Darrell  T, et  al . Rich  feature
hierarchies  for  accurate  object  detection  and  semantic segmentation. Proceedings of the 2014 IEEE Conference on Computer  Vision  and  Pattern  Recognition. Columbus, OH,USA. 2014. 580–587.
112020 年 第 29 卷 第 11 期
计算机系统应用

本文发布于:2024-09-21 17:29:04,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/326657.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:小车   人手   机器人   追踪   图像   视觉   学习   目标
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议