在新冠病毒肆虐的当下,如何使得人群距离得到控制,并检测潜在的感染人员尤为关键。该机器人适用于对公众场所进行人群的识别与距离检测,并检测出危险动作(如咳嗽等)后自动预警,防止可能发生的病毒扩散现象。 机器人通过自动导航的方式,在公共场所内进行巡航移动,减少了传统摄像头识别的盲区缺陷。 对于该机器人的软件层次,我们设计了图像处理、路径规划、人机交互等功能模块来实现其所需要的功能目标。 机器人在巡视的过程中,首先通过 Kinect 体感摄像机进行简易的人体识别,判断当前监测人数并将人体与周围环境区分开来。Kinect 有三个镜头,中间的镜头是 RGB 彩色摄影机,用来采集彩色图像;左右两边镜头则分别为红外线发射器和红外线 CMOS 摄影机,二者组合构成 3D 结构光深度感应器,用来采集深度数据(场景中物体到摄像头的距离)。但是,由于 Kinect 摄像机目前的识别点较少,使用其虽然能降低识别所需时间,却会导致其识别精确度较低、识别部位少、可完成功能少。此时,我们引入 OpenPose 技术配合使用以补充 Kinect 技术的短板。OpenPose是基于卷积神经网络和监督学习并以 Caffe为框架开发的开源库。可以实现人体动作、面部表情、手指运动等姿态估计,适用于单人识别和多人识别,具有极好的鲁棒性。OpenPose 的整体流程为将输入的图片经过 10 层 VGG19 网络转化成图像特征,再分成两个分支分别预测每个点的关键点置信度和亲和度向量;再找到一个连线配对方式,使得总亲和度最高。该最优化问题可用 Hungarian 算法求解。也就是各肢体之间独立优化配对,解决了每个肢体涉及的两类关键点的连线聚类以后,最后依据关键点相同衔接组装成整个身体的姿态。 OpenPose 最多能追踪 25 个身体关键点和 6 个脚关键点,识别精度、识别范围与识别人数相较于 Kinect 更强。OpenPose 特有单人跟踪功能,进一步提高识别速度和视觉平滑度。利用 OpenPose 可检测识别更具体的人体、人脸、人手的骨骼信息。再利用 St-gcn 算法,即基于动态骨骼的动作识别算法进行更深层次的识别动作。首先,对输入矩阵进行归一化,归一化是在时间和空间维度下进行的。也就是将一个关节在不同帧下的位置特征(x 和 y 和 acc)进行归一化;其次,通过 St-gcn 单元,交替使用 GCN 和 TCN,对时间和空间维度进行变换;最后,通过平均池化、使用全连接层对特征进行分类。最终可实现人体动作、手势变化等姿态估计。当检测到摔倒等危险动作时,机器人会通过报警信息进行提示。