二维码扫码已经是人们日常生活的一部分,二维码识别已经是事实证明的成熟有效的技术。可以说,二维码是联系现实世界(物理空间)与虚拟世界(像素空间)的很好的媒介。在机器视觉定位桌面物体任务时,可以利用二维码技术结合透视变换,实现像素坐标与物理世界平面的关系映射,快速实现像素坐标转桌面坐标。
站在巨人肩膀上可以看得更远,我们可以利用apriltag二维码系统,通过其python 库和API进行定位识别,而透视变换可以利用opencv库warpPerspective函数进行坐标转换。简单的步骤如下:
1.制作apriltag二维码标签及平面板
去打印店打印以下二维码贴纸。
将二维码贴到需要定位的平面板上,设置好对应的尺寸关系(如以下棋盘):
如图所示,将二维码以一定的顺序,以一定的定位规则,贴在待识别的平面板上,目的是确定明确的物理关系,通过四个二维码作为桥梁,建立像素坐标和现实坐标(可以自定义)的关系。上例中,棋盘的格子实际距离是20mm,可以定义其现实坐标系的原点在红帅的正下方(如图),四个二维码根据顺时针依次贴在棋盘四个固定点上面,建立一个矩形,至此,已经定义好了在现实坐标系中,四个二维码的坐标([x0,y0],[x1,y1],[x2,y2],[x3,y3])
定义好现实坐标系,和像素坐标系,以及定位好四个二维码位置之后,就可以利用二维码识别和图像变换算法进行坐标转换了。
2.利用二维码识别API和opencv透视变换算法进行图像变换
相机放在棋盘的正上方,对角度可以不用太严格,然后利用二维码识别和opencv相关算法,首先对图像