核心思想
该文提出一种无需提取图像特征的视觉伺服方法,在经典的视觉伺服过程中,通常会选择若干个特征点,以特征点的坐标值作为特征值,计算期望位置图像和当前位置图像中特征值(特征点的坐标)之间的差异,来驱动控制律的计算。而该文则是使用整幅图像的灰度值作为特征值,也就是让当前位置图像中所有像素点的灰度值与期望位置图像中所有像素点的灰度值都非常接近,这就表示机器人已经移动到期望位置了。换句话说该文选择所有像素点的灰度值作为特征值,而不是经典算法中选择3个点的坐标(包含x和y两个方向,共6个值)作为特征值,显然经典方法中的控制律计算方法不再可用了,因为特征值的数量巨大。作者将其转化为一个优化问题,自变量就是相机的位姿 r = ( t x , t y , t z , θ x , θ y , θ z ) r=(t_x,t_y,t_z,\theta_x,\theta_y,\theta_z) r=(tx,ty,tz,θx,θy,θz),因变量就是图像的灰度值,是一个与位姿相关的函数 s ( r ) s(r) s(r),目标函数就是希望当前位置下的图像灰度值 s ( r ) s(r) s(r)和期望位置下的图像灰度值 s ( r ∗ ) s(r^*) s(r∗)之间的差值,如下
针对这个优化问题,可以采用迭代的方法进行求解,如梯度下降法、牛顿法、高斯牛顿法、LM方法等,核心的思想都在于寻找到一个能使目标函数值变小的方向 d ( r ) d(r) d(r),然后更新 r r r的值
t k t_k tk就表示更新的步长,速度控制律可由下式推导得出
关于几种迭代求解方法的实现过程,这里就不再详细展开了,可以参考这几篇博客的内容:
- https://zhuanlan.zhihu.com/p/37524275
- https://zhuanlan.zhihu.com/p/42415718
- https://blog.csdn.net/mingtian715/article/details/53579379
上文中提到该文选择所有点的灰度值作为特征值,也就是
这是一个 N ∗ M N*M N∗M大小的特征向量, N , M N,M N,M表示图像的长和宽。则对应的图像灰度值雅可比矩阵 L I L_I LI可由下式表示
▽ I x \bigtriangledown I_x ▽Ix表示 x x x方向上的灰度值梯度, L x L_x Lx表示 x x x方向上的图像雅可比矩阵(交互矩阵,与经典算法中计算方法相同)。根据理论分析和实验,作者设计了一种两阶段的控制律计算方法,在初始阶段(靠近初始位置附近)采用梯度下降法对目标函数进行优化,得到的控制律为
这个阶段是一个开环控制过程,当粗略的检测到达到目标函数 C ( r ) C(r) C(r)三阶多项式近似值的谷底时(近似最小值),切换为LM算法计算控制律
其中 μ \mu μ是一个常数值,当 μ \mu μ取值比较大时,上式就近似梯度下降法,这种情况下收敛到全局最小值的比率会比较低。当 μ \mu μ取值比较小时,上式就近似高斯牛顿法,就不一定保证能够收敛了。因此需要选择合适的 μ \mu μ值,本文取0.01。
算法评价
本文将视觉伺服转化为优化问题,提出一种利用全局特征来进行视觉伺服计算的方法,该方法的提出使得使用高维向量进行视觉伺服变成了可能,比如上篇文章使用全图的光流信息作为特征论文阅读笔记《DFVS: Deep Flow Guided Scene Agnostic Image Based Visual Servoing》
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。