CN110866939A - 基于相机位姿估计和深度学习的机器人运动状态识别方法 - Google Patents
基于相机位姿估计和深度学习的机器人运动状态识别方法 Download PDFInfo
- Publication number
- CN110866939A CN110866939A CN201910988218.5A CN201910988218A CN110866939A CN 110866939 A CN110866939 A CN 110866939A CN 201910988218 A CN201910988218 A CN 201910988218A CN 110866939 A CN110866939 A CN 110866939A
- Authority
- CN
- China
- Prior art keywords
- motion
- vector
- image
- matrix
- euclidean
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000013135 deep learning Methods 0.000 title claims abstract description 9
- 239000013598 vector Substances 0.000 claims abstract description 124
- 239000011159 matrix material Substances 0.000 claims abstract description 108
- 230000008859 change Effects 0.000 claims abstract description 61
- 230000001133 acceleration Effects 0.000 claims abstract description 30
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 10
- 238000012216 screening Methods 0.000 claims abstract description 10
- 238000012549 training Methods 0.000 claims abstract description 9
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 8
- 238000005070 sampling Methods 0.000 claims abstract description 8
- 238000007781 pre-processing Methods 0.000 claims abstract description 4
- 230000009466 transformation Effects 0.000 claims description 38
- 230000003287 optical effect Effects 0.000 claims description 29
- 230000009471 action Effects 0.000 claims description 17
- 238000006073 displacement reaction Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000002708 enhancing effect Effects 0.000 claims description 6
- 238000005286 illumination Methods 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009191 jumping Effects 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/269—Analysis of motion using gradient-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了基于相机位姿估计和深度学习的机器人运动状态识别方法,包括:步骤1,采集连续视频帧序列图像并进行预处理,提取每一帧图像的加速稳健特征点,进行加速稳健特征点的匹配,并对匹配的加速稳健特征点对进行筛选;步骤2,分析提取的加速稳健特征点,并依据随机抽样一致算法,排除的离群值,计算出每一个时间段内相机的欧式变化矩阵;步骤3,把相机的欧式变化矩阵的变化转化为经时间修正过的运动描述向量,再把经时间修正过的运动描述向量转化为运动描述矩阵;步骤4,构建卷积神经网络,把运动描述矩阵和动作标签矩阵作为输入训练,得到运动预测模型;步骤5,利用运动预测模型实时判断机器人运动状态。
Description
技术领域
本发明涉及行为识别及图像处理的技术领域,具体涉及基于相机位姿估计和深度学习的机器人运动状态识别方法。
背景技术
机器人运动状态识别是机器人状态监测的基础环节,可利用于工业检测、军事侦察、医疗服务、消防等领域。目前常用的机器人运动状态识别方法主要利用角度传感器和惯性传感器完成状态识别。机器人依靠机械装置来测量和识别运动状态,在可转动的关节处装有角度传感器或惯性传感器,可以测得并推算出关节转动角度及关节运动的变化状态。这种方法需在各节点处均绑定一个传感器,并且需利用各节点的多个传感器信息耦合计算运动状态,如有一个传感器出现问题,会影响整体状态识别结果,另外,部分的六轴惯性传感器在进行数据输出时都会产生累积误差,需开发者手动修正数据,算法复杂度较高,使用较为不便。
发明内容
针对现有技术的不足,本发明公开了一种基于相机位姿估计和深度学习的机器人运动状态的识别方法,包括以下步骤:
步骤1,采集连续视频帧序列图像并进行预处理,提取每一帧图像的加速稳健特征点,根据上一帧提取的加速稳健特征点的进行加速稳健特征点对的位置的预判,进行加速稳健特征点的匹配,并对匹配的加速稳健特征点对进行筛选;
步骤2,使用光流法和对极约束的方法分析提取的加速稳健特征点,并依据随机抽样一致算法,排除的离群值,计算出每一个时间段内相机的欧式变化矩阵;
步骤3,把相机的欧式变化矩阵的变化转化为经时间修正过的运动描述向量,再把经时间修正过的运动描述向量转化为运动描述矩阵;
步骤4,构建卷积神经网络,把运动描述矩阵和动作标签矩阵作为输入训练,得到运动预测模型;
步骤5,利用运动预测模型实时判断机器人运动状态。
步骤1包括如下步骤:
步骤1-1,采集连续视频帧序列图像,所述图像为彩色图像,保留彩色图像,并将彩色图像转化为灰度图像;
步骤1-2,按照光照亮度把彩色图像进行分区,如果临域亮度大于220区域的像素点数大于整个图像所含像素点数的80%,则进行针对高亮度的区域的灰度图像增强对比度,如果临域亮度小于35区域的像素点数大于整个图像所含像素点数的80%,则进行针对低亮度的区域的灰度图像增强对比度,临域是指一个像素点和该像素点的八临域的像素点所构成的区域;
像素点的亮度由以下公式定义:
Y(u,v)=0.299×R(u,v)+0.587×G(u,v)+0.114×B(u,v), (1)
其中,Y(u,v)表示像素点(u,v)的亮度,R(u,v)、G(u,v)和B(u,v)分别表示该像素点(u,v)的红色分量值、绿色分量值和蓝色分量值;以图像左上角为基准,u表示像素点所在行数,v代表像素点所在列数;
针对高亮度的区域的灰度图像增强对比度是指对灰度图像内的所有像素点进行灰度值变化,该变化由以下公式定义:
针对低亮度的区域的灰度图像增强对比度是指对灰度图像内的所有像素点进行灰度值变化,该变化由以下公式定义:
对于公式(2)和(3),Gy(u,v)表示当前像素点(u,v)变化后的灰度值,Gy0(u,v)表示当前像素点(u,v)变化前的灰度值;
步骤1-3,提取图像的加速稳健特征点(加速稳健特征点提取可参考FPGA-basedmodule for SURF extraction.Krajník,T.,J.,Pedre,S.et al.Machine Visionand Applications(2014)25:787.);
步骤1-4,对所有提取的距离过近的特征点进行筛选:对于两个距离过近的加速稳健特征点,任意选取其中一个加速稳健特征点保留,删除另一个加速稳健特征点;如果两个加速稳健特征点的坐标满足如下公式,则为距离过近:
x1、y1分别表示两个加速稳健特征点中的一个加速稳健特征点的横坐标和纵坐标,x2、y2分别表示另一个加速稳健特征点的横坐标和纵坐标;width指图像水平方向的像素点的数量,height指图像竖直方向的像素点的数量;
反复判断,直至任意两个加速稳健特征点都不满足不等式(4);
筛选后的特征点的像素坐标记为pp[i,j],i代表当前帧的编号,j代表特征点的编号;
步骤1-5,计算加速稳健特征点的世界坐标;
步骤1-6,计算下一帧图像预测的欧式变化矩阵;
步骤1-7,进行加速稳健特征点对位置的预判;
步骤1-8,依据步骤1-7中得出来的特征点对位置的预判,划分出当前帧图像的旧区域和新区域,其中旧区域为包含原有像素点在新的图像中的区域,新区域为当前帧图像不包含旧区域的区域;使用暴力匹配的方法将当前帧图像的旧区域的特征点和上一帧图像的特征点进行匹配,得出匹配的特征点对集合Matchsori,并对匹配的特征点对集合Matchsori进行筛选,初步去除离群值,得到筛选后的匹配的特征点对集合Matchs。
(暴力匹配可参考以下文献的暴力匹配部分:Point pattern matching byrelaxation,Sanjay Ranade,Azriel Rosenfeld,Point pattern matching byrelaxation,Pattern Recognition Volume 12,Issue 4,1980,Pages 269-275)
步骤1-5包括:
根据当前帧的特征点的像素坐标pp[i,j],计算出所有特征点的世界坐标,计算过程由以下公式给出:
pwnc[i,j]=T[i]-1K-1pp[i,j], (17)
其中,pw[i,j],pwnc[i,j],pp[i,j]均为三维列向量,pwnc[i,j]代表特征点的未修正的世界坐标,pw[i,j]代表特征点的世界坐标,T[i]代表累计的欧式变化矩阵,其初始值为4×4的单位矩阵,K代表相机的内参矩阵,pwnc[i,j](2)指三维列向量pwnc[i,j]中第三个元素。
步骤1-6包括:
计算出下一帧图像预测的欧式变化矩阵Tpct[i+1]:
Tct[i]表示当前帧的欧式变化矩阵。
步骤1-6中,根据如下公式计算当前帧的欧式变化矩阵Tct[i]:
其中,相机的欧式变化矩阵T_ct[i]为4×4的矩阵,代表第j个匹配的特征点对相邻两帧图像相机欧式变换;R[i]为3×3的矩阵,代表相邻两帧图像相机欧式变换的旋转矩阵;t[i]为三维列向量,代表相邻两帧图像相机欧式变换的位移向量。
步骤1-7包括:
使用加速稳健特征点的世界坐标以及下一帧图像预测的欧式变化矩阵,计算出每个特征点的像素坐标的预测值,计算过程由如下公式给出:
Tp[i]=Tpct[i]T[i-1], (5)
ppr[i+1,j]=KTp[i]pw[i,j], (6)
其中,ppr[i+1,j]为三维列向量,代表下一帧特征点的像素坐标的预测值,ppr[i+1,j](k)代表向量中第k个元素,k=0,1,2;Tp[i]代表当前帧累计的欧式变化矩阵的预测值;T[i-1]代表上一帧累计的欧式变化矩阵;u′[i,j],v′[i,j]分别代表像素点在新的图像中的横坐标和纵坐标,由此可以得出特征点的大致位置。
步骤2包括如下步骤:
步骤2-1,通过光流法提取出光流的分布情况,得出光流方向的矢量vld[i],其为二维列向量,描述了主要光流的方向;
(光流法可参考Determining optical flow,Berthold K.P.HornBrianG.Schunck,Artificial Intelligence,Volume 17,Issues 1–3,August 1981,Pages 185-203)
步骤2-2,对极约束:对于筛选后的匹配的特征点对集合Matchs,使用对极几何计算出相邻2帧图像中每个匹配的特征点对对应的相邻两帧图像相机欧式变换的旋转矩阵和相邻两帧图像相机欧式变换的位移向量,由以下公式给出:
pp[i,j]=[u[i,j],v[i,j],1]T, (10)
pp[i-1,j]=[u[i-1,j],v[i-1,j],1]T, (11)
其中pp[i,j],pp[i-1,j]均为三维列向量,pp[i,j]表示匹配的特征点对中的一个点的像素平面坐标,pp[i-1,j]表示匹配的特征点对中的另一个点的像素平面坐标,(u[i,j],v[i,j])指当前帧图像特征点的像素平面坐标,(u[i-1,j],v[i-1,j])指前一帧图像特征点的像素坐标;
使用随机抽样一致算法(随机抽样一致算法可参考Locally OptimizedRANSAC.Chum O.,Matas J.,Kittler J.(2003)Locally Optimized RANSAC.In:MichaelisB.,Krell G.(eds)Pattern Recognition.DAGM 2003.Lecture Notes in ComputerScience,vol 2781.Springer,Berlin,Heidelberg)去除离群值之后,解出R[i]、t[i],使得所有特征点对的综合偏离值最小,偏离值dbias由以下公式给出:
步骤2-3,根据如下公式计算得到预估的光流方向的矢量vldp[i]:
vldp[i]=Tct[i]vld[i-1], (14)
其中,vld[i-1]表示上一帧的光流方向的矢量,vld[i]表示当前帧的光流方向的矢量;
预估的光流方向的矢量vldp[i]为三维列向量;
将vldp[i]与vld[i]相比较,如果相差过大,则使用光流方向的矢量vld[i-1]、vld[i]与任意4个不是步骤2-2中被判定为离群值的筛选后的匹配点对重新解方程(12),得出欧式变化矩阵Tct[i],当满足如下不等式,表示相差过大:
|vld[i]-vldp[i]|>0.2×|vld[i]+vldp[i]|, (15)
步骤2-4,根据如下公式计算出当前帧图像的累计的欧式变化矩阵T[i]:
T[i]=Tct[i]T[i-1], (16)
其中T[i-1]代表上一帧图像的累积相机欧式变化的矩阵。
步骤3包括如下步骤:
步骤3-1,将得出的欧式变化矩阵转化为欧式变换描述向量ar[i],欧式变换描述向量为一个5维行向量且与欧式变化矩阵有一一对应的关系,由以下给出:
ar[i]=[θx[i] θy[i] θz[i] mx[i] my[i]], (27)
其中,θx[i]代表俯仰角,θy[i]代表偏航角,θz[i]代表翻滚角,mx[i]代表修正后的x轴方向位移量,my[i]代表修正后的y轴方向位移量,ar[i]代表欧式变换描述向量;R[i]r0,c0代表矩阵R[i]中第r0行第c0列的元素;t[i](n0)代表向量t[i]中第n0个元素。
步骤3-2,将得出的欧式变换描述向量ar[i]除以两帧之间的时间,得到第i帧的图像的经时间修正过的欧式变换描述向量a[i]:
其中Δt为编号为i-1和编号为i的两帧图像之间的时间间隔;
步骤3-3,对于第i帧的图像计算出的经时间修正过的欧式变换描述向量,经过以下变换得出运动描述向量:
vd[i]=[a[i] a[i+1] a[i+2] … a[i+9]], (29)
其中,vd[i]代表第i帧的图像的运动描述向量,为一个50维的向量;
动作标签向量用于标记需要识别的运动类型,由人工判断得到。记运动类型有n种,分别为运动1、运动2、运动3、……、运动n,运动h的动作标签向量为一个n维向量,其中第h项为1,其余项为0,1≤h≤n,且h为整数,例如,一共3种运动类型(n=3),当前的运动类型为运动2,则动作标签向量为:
ld[i]=[0 1 0], (30)
由运动描述向量得出运动描述矩阵:
Va代表运动描述矩阵;
由动作标签向量得出动作标签矩阵:
ld[i]代表第i帧的图像的动作标签向量,La代表动作标签矩阵;
动作标签矩阵中每一个行向量和运动描述矩阵中每一个行向量有着一一对应的关系。
步骤4包括:
把运动描述矩阵和动作标签矩阵作为输入输入卷积神经网络,设置迭代次数为x(一般取值为1000),经过训练,得到运动预测模型Model。
步骤5包括如下步骤:
步骤5:在得到运动预测模型Model之后,在实时运行过程之中,重复步骤1~步骤3,得到运动描述向量a[i],把运动描述向量a[i]输入运动预测模型,输出判定结果向量res[i],遍历res[i]直到找到res[i]中最大元素的编号,记为s,则实时的运动状态为运动s,1≤s≤n。
有益效果:本发明方法与常规的通过惯性传感器不同,采用视觉传感器可以有效的抑制误差的累积,对于物体运动状态的检测有着重要的辅助作用。此外,本发明方法与常规的外置视觉传感器不同,本发明采取固着于机器人上的视觉传感器,相比外置视觉传感器可以采集到更加丰富的和机器人位姿有关的信息,对于提升机器人运动状态的检测的准确度有着很大的帮助。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1是本发明实施例提供的基于相机位姿估计和深度学习的机器人运动状态的识别方法的工作流程示意图;
图2是本发明运行时的运动结果图,action type:1代表当前的运动状态为运动1,即静止;
图3是本发明运行时的运动结果图,当前的运动状态为运动1,即静止;
图4是本发明运行时的运动结果图,action type:2代表当前的运动状态为运动2,即走路;
图5是本发明运行时的运动结果图,当前的运动状态为运动2,即走路;
图6是本发明运行时的运动结果图,action type:3代表当前的运动状态为运动3,即旋转;
图7是本发明运行时的运动结果图,action type:4代表当前的运动状态为运动3,即跑步;
图8是本发明运行时的运动结果图,action type:5代表当前的运动状态为运动3,即跳跃;
图9是本发明在构建卷积神经网络并把运动描述矩阵和动作标签矩阵作为输入训练,得到运动预测模型的时候的代价函数的下降过程。
具体实施方式
如图1所示,本发明提供了基于相机位姿估计和深度学习的机器人运动状态识别方法,在本发明实例中,采用CCD工业相机采集彩***信息,通过计算机对彩***图像进一步处理。
包括以下步骤:
步骤1,采集连续视频帧序列图像并进行预处理,提取每一帧图像的加速稳健特征点,根据上一帧提取的加速稳健特征点的进行加速稳健特征点对的位置的预判,进行加速稳健特征点的匹配,并对匹配的加速稳健特征点对进行筛选;
步骤2,使用光流法和对极约束的方法分析提取的加速稳健特征点,并依据随机抽样一致算法,排除的离群值,计算出每一个时间段内相机的欧式变化矩阵;
步骤3,把相机的欧式变化矩阵的变化转化为经时间修正过的运动描述向量,再把经时间修正过的运动描述向量转化为运动描述矩阵;
步骤4,构建卷积神经网络,把运动描述矩阵和动作标签矩阵作为输入训练,得到运动预测模型;
步骤5,利用运动预测模型实时判断机器人运动状态。
步骤1包括如下步骤:
步骤1-1,采集连续视频帧序列图像,所述图像为彩色图像,保留彩色图像,并将彩色图像转化为灰度图像;
步骤1-2,按照光照亮度把彩色图像进行分区,如果临域亮度大于220区域的像素点数大于整个图像所含像素点数的80%,则进行针对高亮度的区域的灰度图像增强对比度,如果临域亮度小于35区域的像素点数大于整个图像所含像素点数的80%,则进行针对低亮度的区域的灰度图像增强对比度,临域是指一个像素点和该像素点的八临域的像素点所构成的区域;
像素点的亮度由以下公式定义:
Y(u,v)=0.299×R(u,v)+0.587×G(u,v)+0.114×B(u,v), (1)
其中,Y(u,v)表示像素点(u,v)的亮度,R(u,v)、G(u,v)和B(u,v)分别表示该像素点(u,v)的红色分量值、绿色分量值和蓝色分量值;以图像左上角为基准,u表示像素点所在行数,v代表像素点所在列数;
针对高亮度的区域的灰度图像增强对比度是指对灰度图像内的所有像素点进行灰度值变化,该变化由以下公式定义:
针对低亮度的区域的灰度图像增强对比度是指对灰度图像内的所有像素点进行灰度值变化,该变化由以下公式定义:
对于公式(2)和(3),Gy(u,v)表示当前像素点(u,v)变化后的灰度值,Gy0(u,v)表示当前像素点(u,v)变化前的灰度值;
步骤1-3,提取图像的加速稳健特征点(加速稳健特征点提取可参考FPGA-basedmodule for SURF extraction.Krajník,T.,J.,Pedre,S.et al.Machine Visionand Applications(2014)25:787.);
步骤1-4,对所有提取的距离过近的特征点进行筛选:对于两个距离过近的加速稳健特征点,任意选取其中一个加速稳健特征点保留,删除另一个加速稳健特征点;如果两个加速稳健特征点的坐标满足如下公式,则为距离过近:
x1、y1分别表示两个加速稳健特征点中的一个加速稳健特征点的横坐标和纵坐标,x2、y2分别表示另一个加速稳健特征点的横坐标和纵坐标;width指图像水平方向的像素点的数量,height指图像竖直方向的像素点的数量;
反复判断,直至任意两个加速稳健特征点都不满足不等式(4);
筛选后的特征点的像素坐标记为pp[i,j],i代表当前帧的编号,j代表特征点的编号。
步骤1-5,计算加速稳健特征点的世界坐标;
步骤1-6,计算下一帧图像预测的欧式变化矩阵;
步骤1-7,进行加速稳健特征点对位置的预判;
步骤1-8,依据步骤1-7中得出来的特征点对位置的预判,划分出当前帧图像的旧区域和新区域,其中旧区域为包含原有像素点在新的图像中的区域,新区域为当前帧图像不包含旧区域的区域;使用暴力匹配的方法将当前帧图像的旧区域的特征点和上一帧图像的特征点进行匹配,得出匹配的特征点对集合Matchsori,并对匹配的特征点对集合Matchsori进行筛选,初步去除离群值,得到筛选后的匹配的特征点对集合Matchs。
步骤1-5包括:
根据当前帧的特征点的像素坐标pp[i,j],计算出所有特征点的世界坐标pw[i,j],计算过程由以下公式给出:
pwnc[i,j]=T-1K-1pp[i,j], (17)
其中,pw[i,j],pwnc[i,j],pp[i,j]均为三维列向量,pwnc[i,j](2)指三维列向量pwnc[i,j]中第三个元素,i代表当前帧的编号,j代表特征点对的编号。
步骤1-6包括:
计算出下一帧图像预测的欧式变化矩阵Tpct[i+1]:
Tct[i]表示当前帧的欧式变化矩阵。
步骤1-6中,根据如下公式计算当前帧的欧式变化矩阵Tct[i]:
其中,相机的欧式变化矩阵T_ct[i]为4×4的矩阵,代表第j个匹配的特征点对相邻两帧图像相机欧式变换;R[i]为3×3的矩阵,代表相邻两帧图像相机欧式变换的旋转矩阵;t[i]为三维列向量,代表相邻两帧图像相机欧式变换的位移向量。
步骤1-7包括:
使用加速稳健特征点的世界坐标以及下一帧图像预测的欧式变化矩阵,计算出每个像素点在新的彩色图像中的预测位置,计算过程由如下公式给出:
Tp[i]=Tpct[i]T[i-1], (5)
ppr[i+1,j]=KTp[i]pw[i,j], (6)
其中,ppr[i+1,j]为三维列向量,代表下一帧特征点的像素坐标的预测值,ppr[i+1,j](k)代表向量中第k个元素,k=0,1,2;Tp[i]代表当前帧累计的欧式变化矩阵的预测值;T[i-1]代表上一帧累计的欧式变化矩阵;u′[i,j],v′[i,j]分别代表像素点在新的图像中的横坐标和纵坐标,由此可以得出特征点的大致位置。
步骤2包括如下步骤:
步骤2-1,通过光流法提取出光流的分布情况,得出光流方向的矢量vld[i],其为二维列向量,描述了主要光流的方向;
(光流法可参考Determining optical flow,Berthold K.P.HornBrianG.Schunck,Artificial Intelligence,Volume 17,Issues 1-3,August 1981,Pages 185-203)
步骤2-2,对极约束:对于筛选后的匹配的特征点对集合Matchs,使用对极几何计算出相邻2帧图像中每个匹配的特征点对对应的相邻两帧图像相机欧式变换的旋转矩阵和相邻两帧图像相机欧式变换的位移向量,由以下公式给出:
pp[i,j]=[u[i,j],v[i,j],1]T, (10)
pp[i-1,j]=[u[i-1,j],v[i-1,j],1]T, (11)
其中pp[i,j],pp[i-1,j]均为三维列向量,pp[i,j]表示匹配的特征点对中的一个点的像素坐标,pp[i-1,j]表示匹配的特征点对中的另一个点的像素坐标,(u[i,j],v[i,j])指当前帧图像特征点的像素平面坐标,(u[i-1,j],v[i-1,j])指前一帧图像特征点的像素坐标;
使用随机抽样一致算法(随机抽样一致算法可参考Locally OptimizedRANSAC.Chum O.,Matas J.,Kittler J.(2003)Locally Optimized RANSAC.In:MichaelisB.,Krell G.(eds)Pattern Recognition.DAGM 2003.Lecture Notes in ComputerScience,vol 2781.Springer,Berlin,Heidelberg)去除离群值之后,解出R[i]、t[i],使得所有特征点对的综合偏离值最小,偏离值dbias由以下公式给出:
步骤2-3,根据如下公式计算得到预估的光流方向的矢量vldp[i]:
vldp[i]=Tct[i]vld[i-1], (14)
其中,vld[i-1]表示上一帧的光流方向的矢量,vld[i]表示当前帧的光流方向的矢量;
预估的光流方向的矢量vldp[i]为三维列向量;
将vldp[i]与vld[i]相比较,如果相差过大,则使用光流方向的矢量vld[i-1]、vld[i]与任意4个不是步骤2-2中被判定为离群值的筛选后的匹配点对重新解方程(12),得出欧式变化矩阵Tct[i],当满足如下不等式,表示相差过大:
|vld[i]-vldp[i]|>0.2×|vld[i]+vldp[i]|, (15)
步骤2-4,根据如下公式计算出当前帧图像的累计的欧式变化矩阵T[i]:
T[i]=Tct[i]T[i-1], (16)
其中T[i-1]代表上一帧图像的累积相机欧式变化的矩阵。
步骤3包括如下步骤:
步骤3-1,将得出的欧式变化矩阵转化为欧式变换描述向量ar[i],欧式变换描述向量为一个5维行向量且与欧式变化矩阵有一一对应的关系,由以下公式给出:
ar[i]=[θx[i] θy[i] θz[i] mx[i] my[i]], (27)
其中,θx[i]代表俯仰角,θy[i]代表偏航角,θz[i]代表翻滚角,mx[i]代表修正后的x轴方向位移量,my[i]代表修正后的y轴方向位移量,ar[i]代表欧式变换描述向量;R[i]r0,c0代表矩阵R[i]中第r0行第c0列的元素;t[i](n0)代表向量t[i]中第n0个元素。
步骤3-2,将得出的欧式变换描述向量ar[i]除以两帧之间的时间,得到第i帧的图像的经时间修正过的欧式变换描述向量a[i]:
其中Δt为编号为i-1和编号为i的两帧图像之间的时间间隔;
步骤3-3,对于第i帧的图像计算出的经时间修正过的欧式变换描述向量,经过以下变换得出运动描述向量:
vd[i]=[a[i] a[i+1] a[i+2] … a[i+9]], (29)
a[i]代表第i帧的图像的经时间修正过的欧式变换描述向量;vd[i]代表第i帧的图像的运动描述向量,为一个50维的向量;
动作标签向量用于标记需要识别的运动类型,由人工判断得到。其用于标记需要识别的运动类型,静止、走路、旋转、跑步、跳跃分别为运动1、运动2、运动3、运动4、运动5。运动1、运动2、运动3、运动4、运动5的动作标签向量均为n维向量,分别为:
运动1:ld1[i]=[1 0 0 0 0], (30-1)
运动2:ld2[i]=[0 1 0 0 0], (30-1)
运动3:ld3[i]=[0 0 1 0 0], (30-1)
运动4:ld4[i]=[1 0 0 1 0], (30-1)
运动5:ld5[i]=[0 0 0 0 1]# (30-1)
由运动描述向量得出运动描述矩阵:
Va代表运动描述矩阵;
由动作标签向量得出动作标签矩阵:
ld[i]代表第i帧的图像的动作标签向量,La代表动作标签矩阵;
动作标签矩阵中每一个行向量和运动描述矩阵中每一个行向量有着一一对应的关系。
步骤4包括:
把运动描述矩阵和动作标签矩阵作为输入输入卷积神经网络,设置迭代次数为x(一般取值为1000),经过训练,得到运动预测模型Model。
图8显示了训练时代价函数的下降过程。
步骤5包括如下步骤:
步骤5:在得到运动预测模型Model之后,在实时运行过程之中,重复步骤1~步骤3,得到运动描述向量a[i],把运动描述向量a[i]输入运动预测模型,输出判定结果向量res[i],遍历res[i]直到找到res[i]中最大元素的编号,记为s,则实时的运动状态为运动s,1≤s≤n。
如果输出s=1,则代表判定的当前运动状态为静止,如图2-图3;
如果输出s=2,则代表判定的当前运动状态为走路,如图4-图5;
如果输出s=3,则代表判定的当前运动状态为旋转,如图6;
如果输出s=4,则代表判定的当前运动状态为跑步,如图7;
如果输出s=5,则代表判定的当前运动状态为跳跃,如图8;
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本发明提供了基于相机位姿估计和深度学习的机器人运动状态识别方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (10)
1.基于相机位姿估计和深度学习的机器人运动状态识别方法,其特征在于,包括以下步骤:
步骤1,采集连续视频帧序列图像并进行预处理,提取每一帧图像的加速稳健特征点,根据上一帧提取的加速稳健特征点的进行加速稳健特征点对的位置的预判,进行加速稳健特征点的匹配,并对匹配的加速稳健特征点对进行筛选;
步骤2,使用光流法和对极约束的方法分析提取的加速稳健特征点,并依据随机抽样一致算法,排除的离群值,计算出每一个时间段内相机的欧式变化矩阵;
步骤3,把相机的欧式变化矩阵的变化转化为经时间修正过的运动描述向量,再把经时间修正过的运动描述向量转化为运动描述矩阵;
步骤4,构建卷积神经网络,把运动描述矩阵和动作标签矩阵作为输入训练,得到运动预测模型;
步骤5,利用运动预测模型实时判断机器人运动状态。
2.根据权利要求1所述的方法,其特征在于,步骤1包括如下步骤:
步骤1-1,采集连续视频帧序列图像,所述图像为彩色图像,保留彩色图像,并将彩色图像转化为灰度图像;
步骤1-2,按照光照亮度把彩色图像进行分区,如果临域亮度大于220区域的像素点数大于整个图像所含像素点数的80%,则进行针对高亮度的区域的灰度图像增强对比度,如果临域亮度小于35区域的像素点数大于整个图像所含像素点数的80%,则进行针对低亮度的区域的灰度图像增强对比度,临域是指一个像素点和该像素点的八临域的像素点所构成的区域;
像素点的亮度由以下公式定义:
Y(u,v)=0.299×R(u,v)+0.587×G(u,v)+0.114×B(u,v), (1)
其中,Y(u,v)表示像素点(u,v)的亮度,R(u,v)、G(u,v)和B(u,v)分别表示该像素点(u,v)的红色分量值、绿色分量值和蓝色分量值;以图像左上角为基准,u表示像素点所在行数,v代表像素点所在列数;
针对高亮度的区域的灰度图像增强对比度是指对灰度图像内的所有像素点进行灰度值变化,该变化由以下公式定义:
针对低亮度的区域的灰度图像增强对比度是指对灰度图像内的所有像素点进行灰度值变化,该变化由以下公式定义:
对于公式(2)和(3),Gy(u,v)表示当前像素点(u,v)变化后的灰度值,Gy0(u,v)表示当前像素点(u,v)变化前的灰度值;
步骤1-3,提取图像的加速稳健特征点;
步骤1-4,对所有提取的距离过近的特征点进行筛选:对于两个距离过近的加速稳健特征点,任意选取其中一个加速稳健特征点保留,删除另一个加速稳健特征点;如果两个加速稳健特征点的坐标满足如下公式,则为距离过近:
x1、y1分别表示两个加速稳健特征点中的一个加速稳健特征点的横坐标和纵坐标,x2、y2分别表示另一个加速稳健特征点的横坐标和纵坐标;width指图像水平方向的像素点的数量,height指图像竖直方向的像素点的数量;
反复判断,直至任意两个加速稳健特征点都不满足不等式(4);
筛选后的特征点的像素坐标记为pp[i,j],i代表当前帧的编号,j代表特征点的编号;
步骤1-5,计算加速稳健特征点的世界坐标;
步骤1-6,计算下一帧图像预测的欧式变化矩阵;
步骤1-7,进行加速稳健特征点对位置的预判;
步骤1-8,依据步骤1-7中得出来的特征点对位置的预判,划分出当前帧图像的旧区域和新区域,其中旧区域为包含原有像素点在新的图像中的区域,新区域为当前帧图像不包含旧区域的区域;使用暴力匹配的方法将当前帧图像的旧区域的特征点和上一帧图像的特征点进行匹配,得出匹配的特征点对集合Matchsori,并对匹配的特征点对集合Matchsori进行筛选,初步去除离群值,得到筛选后的匹配的特征点对集合Matchs。
7.根据权利要求6所述的方法,其特征在于,步骤2包括如下步骤:
步骤2-1,通过光流法提取出光流的分布情况,得出光流方向的矢量vld[i];
步骤2-2,对极约束:对于筛选后的匹配的特征点对集合Matchs,使用对极几何计算出相邻2帧图像中每个匹配的特征点对对应的相邻两帧图像相机欧式变换的旋转矩阵和相邻两帧图像相机欧式变换的位移向量,由以下公式给出:
pp[i,j]=[u[i,j],v[i,j],1]T, (10)
pp[i-1,j]=[u[i-1,j],v[i-1,j],1]T, (11)
其中pp[i,j],pp[i-1,j]均为三维列向量,pp[i,j]表示匹配的特征点对中的一个点的像素坐标,pp[i-1,j]表示匹配的特征点对中的另一个点的像素坐标,(u[i,j],v[i,j])指当前帧图像特征点的像素平面坐标,(u[i-1,j],v[i-1,j])指前一帧图像特征点的像素坐标;
使用随机抽样一致算法去除离群值之后,解出R[i]、t[i],使得所有特征点对的综合偏离值最小,偏离值dbias由以下公式给出:
步骤2-3,根据如下公式计算得到预估的光流方向的矢量vldp[i]:
vldp[i]=Tct[i]vld[i-1], (14)
其中,vld[i-1]表示上一帧的光流方向的矢量,vld[i]表示当前帧的光流方向的矢量;
预估的光流方向的矢量vldp[i]为三维列向量;
将vldp[i]与vld[i]相比较,如果相差过大,则使用光流方向的矢量vld[i-1]、vld[i]与任意4个不是步骤2-2中被判定为离群值的筛选后的匹配点对重新解方程(12),得出欧式变化矩阵Tct[i],当满足如下不等式,表示相差过大:
|vld[i]-vldp[i]|>0.2×|vld[i]+vldp[i]|, (15)
步骤2-4,根据如下公式计算出当前帧图像的累计的欧式变化矩阵T[i]:
T[i]=Tct[i]T[i-1], (16)。
8.根据权利要求7所述的方法,其特征在于,步骤3包括如下步骤:
步骤3-1,将得出的欧式变化矩阵转化为欧式变换描述向量,欧式变换描述向量为一个5维行向量且与欧式变化矩阵有一一对应的关系,由以下公式给出:
ar[i]=[θx[i] θy[i] θz[i] mx[i] my[i]], (27)
其中,θx[i]代表俯仰角,θy[i]代表偏航角,θz[i]代表翻滚角,mx[i]代表修正后的x轴方向位移量,my[i]代表修正后的y轴方向位移量,ar[i]代表欧式变换描述向量;R[i]r0,c0代表矩阵R[i]中第r0行第c0列的元素;t[i](n0)代表向量t[i]中第n0个元素;
步骤3-2,将得出的欧式变换描述向量ar[i]除以两帧之间的时间,得到第i帧的图像的经时间修正过的欧式变换描述向量a[i]:
其中Δt为编号为i-1和编号为i的两帧图像之间的时间间隔;
步骤3-3,对于第i帧的图像计算出的经时间修正过的欧式变换描述向量,经过以下变换得出运动描述向量:
vd[i]=[a[i] a[i+1] a[i+2] … a[i+9]], (29)
其中,vd[i]代表第i帧的图像的运动描述向量,为一个50维的向量;
动作标签向量用于标记需要识别的运动类型;记运动类型有n种,分别为运动1、运动2、运动3、……、运动n,运动h的动作标签向量为一个n维向量,其中第h项为1,其余项为0,1≤h≤n,且h为整数;
由运动描述向量得出运动描述矩阵:
Va代表运动描述矩阵;
由动作标签向量得出动作标签矩阵:
ld[i]代表第i帧的图像的动作标签向量,La代表动作标签矩阵;
动作标签矩阵中每一个行向量和运动描述矩阵中每一个行向量有着一一对应的关系。
9.根据权利要求8所述的方法,其特征在于,步骤4:
把运动描述矩阵和动作标签矩阵作为输入输入卷积神经网络,设置迭代次数为x,经过训练,得到运动预测模型Model。
10.根据权利要求9所述的方法,其特征在于,步骤5包括如下步骤:
步骤5:在得到运动预测模型Model之后,在实时运行过程之中,重复步骤1~步骤3,得到运动描述向量a[i],把运动描述向量a[i]输入运动预测模型,输出判定结果向量res[i],遍历res[i]直到找到res[i]中最大元素的编号,记为s,则实时的运动状态为运动s,1≤s≤n。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910988218.5A CN110866939B (zh) | 2019-10-17 | 2019-10-17 | 基于相机位姿估计和深度学习的机器人运动状态识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910988218.5A CN110866939B (zh) | 2019-10-17 | 2019-10-17 | 基于相机位姿估计和深度学习的机器人运动状态识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110866939A true CN110866939A (zh) | 2020-03-06 |
CN110866939B CN110866939B (zh) | 2022-03-22 |
Family
ID=69652201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910988218.5A Active CN110866939B (zh) | 2019-10-17 | 2019-10-17 | 基于相机位姿估计和深度学习的机器人运动状态识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110866939B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116013072A (zh) * | 2023-01-03 | 2023-04-25 | 深圳市易联联盟科技有限公司 | 一种基于深度学习应用的停车场出入车辆计数方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590827A (zh) * | 2017-09-15 | 2018-01-16 | 重庆邮电大学 | 一种基于Kinect的室内移动机器人视觉SLAM方法 |
CN108416268A (zh) * | 2018-02-02 | 2018-08-17 | 华侨大学 | 一种基于双机器人视觉沟通的动作识别方法 |
CN109146972A (zh) * | 2018-08-21 | 2019-01-04 | 南京师范大学镇江创新发展研究院 | 基于快速特征点提取及网格化三角形约束的视觉导航方法 |
CN109953761A (zh) * | 2017-12-22 | 2019-07-02 | 浙江大学 | 一种下肢康复机器人感知***及运动意图推理方法 |
-
2019
- 2019-10-17 CN CN201910988218.5A patent/CN110866939B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590827A (zh) * | 2017-09-15 | 2018-01-16 | 重庆邮电大学 | 一种基于Kinect的室内移动机器人视觉SLAM方法 |
CN109953761A (zh) * | 2017-12-22 | 2019-07-02 | 浙江大学 | 一种下肢康复机器人感知***及运动意图推理方法 |
CN108416268A (zh) * | 2018-02-02 | 2018-08-17 | 华侨大学 | 一种基于双机器人视觉沟通的动作识别方法 |
CN109146972A (zh) * | 2018-08-21 | 2019-01-04 | 南京师范大学镇江创新发展研究院 | 基于快速特征点提取及网格化三角形约束的视觉导航方法 |
Non-Patent Citations (2)
Title |
---|
MARY B. ALATISE ET AL.: "Pose Estimation of a Mobile Robot Based on Fusion of IMU Data and Vision Data Using an Extended Kalman Filter", 《SENSORS》 * |
沈世斌 等: "基于混合高斯模型优化的运动人体跟踪方法", 《南京师范大学学报( 工程技术版)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116013072A (zh) * | 2023-01-03 | 2023-04-25 | 深圳市易联联盟科技有限公司 | 一种基于深度学习应用的停车场出入车辆计数方法 |
CN116013072B (zh) * | 2023-01-03 | 2024-02-13 | 深圳市易联联盟科技有限公司 | 一种基于深度学习应用的停车场出入车辆计数方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110866939B (zh) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111402336B (zh) | 基于语义slam的动态环境相机位姿估计及语义地图构建方法 | |
US11393103B2 (en) | Target tracking method, device, system and non-transitory computer readable medium | |
Voigtlaender et al. | Online adaptation of convolutional neural networks for the 2017 davis challenge on video object segmentation | |
CN108629843B (zh) | 一种实现增强现实的方法及设备 | |
US9734612B2 (en) | Region detection device, region detection method, image processing apparatus, image processing method, program, and recording medium | |
US20110298799A1 (en) | Method for replacing objects in images | |
CN113312973B (zh) | 一种手势识别关键点特征提取方法及*** | |
CN111931603B (zh) | 基于竞合网络的双流卷积网络的人体动作识别***及方法 | |
CN111383252A (zh) | 多相机目标追踪方法、***、装置及存储介质 | |
CN111753782A (zh) | 一种基于双流网络的假脸检测方法、装置及电子设备 | |
CN110866939B (zh) | 基于相机位姿估计和深度学习的机器人运动状态识别方法 | |
CN115620022A (zh) | 一种对象检测方法、装置、设备及存储介质 | |
CN113469216B (zh) | 零售终端海报识别与完整性判断方法、***及存储介质 | |
CN114359333A (zh) | 运动目标提取方法、装置、计算机设备和存储介质 | |
CN114067232A (zh) | 使用活动标记的图像/视频分析 | |
CN117218633A (zh) | 一种物品检测方法、装置、设备及存储介质 | |
CN109377524B (zh) | 一种单幅图像深度恢复方法和*** | |
CN108229320B (zh) | 选帧方法和装置、电子设备、程序和介质 | |
Teng et al. | Clickbait-v2: Training an object detector in real-time | |
CN112802112B (zh) | 视觉定位方法、装置、服务器及存储介质 | |
Chen et al. | DTSSNet: Dynamic Training Sample Selection Network for UAV Object Detection | |
Lin et al. | Rethinking video salient object ranking | |
EP4386670A1 (en) | Planar object tracking method and system, and training method | |
US11954901B2 (en) | Training data generation apparatus | |
US11900659B2 (en) | Training data generation apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |