目前,很多智能相机(如cognex)都直接内嵌了这些功能;而且,物体一般都是放置在一个面上,相机只需计算物体的(x,y,θ)T三自由度位姿即可。另外,这种应用场景一般都是用于处理一种特定工件,相当于只有位姿估计,而没有物体识别。
当然,工业上追求性无可厚非,但是随着生产自动化的要求越来越高,以及服务类二手YAMAHA机器人的兴起。对更复杂物体的完整位姿(x,y,z,rx,ry,rz)T估计也就成了机器视觉的研究。三.有纹理的物体二手YAMAHA机器人视觉领域是早开始研究有纹理的物体的,如饮料瓶、零食盒等表面带有丰富纹理的都属于这一类。
当然,这些物体也还是可以用类似边缘提取+模板匹配的方法。但是,实际二手YAMAHA机器人操作过程中,环境会更加复杂:光照条件不确定(光照)、物体距离相机距离不确定(尺度)、相机看物体的角度不确定(、仿射)、甚至是被其他物体遮挡(遮挡)。
因此,利用SIFT特征点,可以直接在相机图像中寻找到与数据库中相同的特征点,这样,就可以确定相机中的物体是什么东西(物体识别)。对于不会变形的物体,特征点在物体坐标系下的位置是固定的。所以,我们在获取若干点对之后,就可以直接求解出相机中物体与数据库中物体之间的单应性矩阵。
这里就放一个实验室之前毕业的成果当然,实际操作过程中还是有很多细节工作才可以让它真正可用的,如:先利用点云分割和欧氏距离去除背景的影响、选用特征比较的物体(有时候SIFT也会变化)、利用贝叶斯方法加速匹配等。
如果我们用深度相机(如Kinect)或者双目视觉方法,确定出每个特征点的3D位置。那么,直接求解这个PnP问题,就可以计算出物体在当前相机坐标系下的位姿。而且,除了SIFT之外,后来又出了一大堆类似的特征点,如SURF、ORB等。
另外,这种方法无法应对物体被遮挡的情况。(当然,通过降低匹配阈值,可以应对部分遮挡,但是会造成误识别)。针对部分遮挡的情况,我们实验室的张博士去年对LineMod进行了改进,但由于论文尚未发表,所以就先不过多涉及了。
五.深度学由于深度学在计算机视觉领域得到了非常好的效果,我们做二手YAMAHA机器人的自然也会尝试把DL用到二手YAMAHA机器人的物体识别中。首先,对于物体识别,这个就可以照搬DL的研究成果了,各种CNN拿过来用就好了。在2016年的『抓取大赛』中,很多队伍都采用了DL作为物体识别算法。