识别图像卡片
本案例使用 eye-to-hand 的模式,使用摄像头,通过 OpenCV 加载 Tensorflow 训练出来的模型数据,识别图像物块并定位图像物块在视频中的位置。通过相关点位,计算出物块相对于机械臂的空间坐标位置。为机械臂设置一套相关动作,将识别的物块放入桶中。在接下来的章节中将详细介绍整个案例的代码实现过程。
1 摄像头调整
首先,需要使用python运行aikit_V2包下的OpenVideo.py。若开启的摄像头为电脑摄像头则需要修改cap_num,具体可参考:注意事项。确保摄像头完全包含整个识别区域,且识别区域在视频中是正正方方的,如下图所示。若识别区域在视频中不符合要求,则需要调整摄像头的位置。
M5版本:
- 打开一个控制台终端(快捷键Win+R,输入cmd进入终端),先切换到aikit_V2所在文件夹路径,再进入目标文件夹
cd Desktop/aikit_V2/AiKit_270M5/
- 输入以下命令,打开摄像头进行调整
python scripts/OpenVideo.py
树莓派版本:
- 打开一个控制台终端(快捷键Ctrl+Alt+T),进入目标文件夹
cd ~/aikit_V2/AiKit_270Pi/
- 输入以下命令,打开摄像头进行调整
python scripts/OpenVideo.py
2 添加新图像
M5版本:
- 打开一个控制台终端(快捷键Win+R,输入cmd进入终端),先切换到aikit_V2所在文件夹路径,再进入目标文件夹
cd Desktop/aikit_V2/AiKit_270M5/
- 输入以下命令,启动添加图像的程序。
python scripts/add_img.py
树莓派版本:
- 打开一个控制台终端(快捷键Ctrl+Alt+T),进入目标文件夹
cd ~/aikit_V2/AiKit_270Pi/
- 输入以下命令,启动添加图像的程序。
python scripts/add_img.py
- 根据终端输入的提示进行操作,在弹出的第二个图像框中进行图像的截取。
- 图像截取区域完成后,按下回车键,根据终端提示,输入数字(1~4)保存到相对应图像的文件夹,按下回车键即可保存至对应文件夹。
3 案例重现
M5版本:
- 打开一个控制台终端(快捷键Win+R,输入cmd进入终端),先切换到aikit_V2所在文件夹路径,再进入目标文件夹
cd Desktop/aikit_V2/AiKit_270M5/
- 再输入以下命令,启动图像识别程序。
python scripts/aikit_img.py
树莓派版本:
- 打开一个控制台终端(快捷键Ctrl+Alt+T),输入以下命令进入目标文件夹:
cd ~/aikit_V2/AiKit_270Pi
- 再输入以下命令,启动图像识别程序。
python scripts/aikit_img.py
- 当命令终端出现ok并且摄像头窗口能正常开启时,说明程序运行成功,此时可将可识别的物体放置识别区域进行识别抓取。
注意事项
- 当摄像头没有正确自动框出识别区域,需要关闭程序,调整摄像头的位置,可将摄像头向左向右移动等操作。
- 若命令终端没有出现ok,且无法识别图片时,需要将摄像头稍微向后或向前移动一下,当命令终端出现ok时程序即可正常运行。
- 由于更换了识别的方式,请先确保在代码路径下有存放图片的文件夹以及需要进行识别的图片,如果没有的话,可以使用
python scripts/add_img.py
添加图片。 - OpenCV图像识别会受环境的影响,若处在较为昏暗的环境下识别效果将大大降低。