组装硬件

将提供的设备进行组装,有相机组件机械臂组件传送带组件
其中,机械臂组件还需要与吸盘夹爪组装。(如果是螺丝检测,则应该组装夹爪;如果是PCB检测,则应该组装吸盘)
传送带组件中,还有红外线检测仪器。

项目文件

1.png

螺丝加工件处理

数据采集与标注

数据采集

本项目中,数据采集使用"MAIN_DH.py"文件,直接在终端内执行(执行命令前需要cd至代码主路径下)

python3 MAIN_DH.py

执行命令后,会打开GUI窗口,如图所示:
2.png
其中具体功能详情如下:

  1. 打开相机
  2. 关闭相机
  3. 采集图像数据
  4. 连接机械臂
  5. 断开机械臂
  6. 机械臂回零
  7. 关闭真空发生器
  8. 显示机械臂现在的笛卡的坐标XYZR的值
  9. 控制机械臂XY方向运动
  10. 控制机械臂Z方向与R旋转
  11. 设置中转点将8现在的坐标值设置到中转点位
  12. 运动到中转点
  13. 设置抓取点将8现在的坐标值设置到抓取点位
  14. 运动到抓取点
  15. 设置机械臂抓取机械臂在XY方向的偏差
  16. 显示日志信息
  17. 选择放置物料的类别
  18. 开始零件分类
  19. 开始PCB分类
  20. 调用执行开始
  21. 保存设置的点位信息
  22. 调试完成后勾选记录比赛
  23. 根据17设置的类别设置对应类别的放置点
  24. 运动到17选择的点位

数据采集后,数据保存到主路径的上一级目录下的"save_image"文件夹下。

数据标注

此时,应该在项目主目录下新建一个文件夹,然后把"save_image"文件夹下的文件复制到新建的文件夹下。
cd进入这个文件夹后,在终端执行:

labelimg

会打开数据标注工具"labelimg",如下图所示:
3.png

  1. 打开标注照片的文件夹
  2. 设置标注完成保存位置(将采集的图片.jpg文件和打完标签的.txt文件保存在一个文件夹里)
  3. 打完标签完成后可以打开该文件里的classes.txt文件,若里面的东西只有本次打标签的名字,则正确。
  4. 格式选YOLO
  5. 可以在 Edit 里面选择"auto save"(自动保存)

注意事项:标注PCB缺陷数据集的时候必须标注一个名为PCB的类,为pcb抓取定位位置(没有这个类无法定位抓取)。需要将有问题的PCB板的问题处特别标定。

模型训练

在数据采集和训练完成后,我们需要训练数据,训练数据的python代码是项目主路径下的"train.py"文件。
但是在训练之前,我们需要调整训练参数,具体要调整的内容如下:

  1. 训练的模型配置文件和标签数据文件:
    train.py的大概430行左右,有下述代码:

     parser.add_argument('--cfg', type=str, default='models/yolo5s_part.yaml', help='model.yaml path')
     parser.add_argument('--data', type=str, default=ROOT /'data/part.yaml', help='dataset.yaml path')

    依次点击上述两个yaml文件,修改nc(标签个数)name(标签名称)

  2. 训练的GPU与训练的轮数、一轮中每秒训练的图片张数:
    train.py的大概440行左右,有下述代码:

     parser.add_argument('--epochs', type=int, default=1000, help='total training epochs')
     parser.add_argument('--batch-size', type=int, default=100, help='total batch size for all GPUs, -1 for autobatch')

    修改第一行的轮数次数,修改第二行的一轮中每秒训练的图片张数(一般为6 or 8)。
    train.py的大概450行左右,有下述代码:

     parser.add_argument('--device', default='0', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')

    修改需要使用的GPU索引,一般填0,即默认使用第一张显卡训练。
    修改完训练参数后,我们开始训练模型。

我们使用终端执行下述命令打开它。

python3 train.py

然后等待训练的模型完成。会生成best.ptlast.pt文件,路径是在"/runs/train/xxx"(这个路径在训练的python文件中可自定义)。
我们把这两个pt文件复制到\my_weights\nut路径下。

九点标注

运行项目主路径线下的"arm_机械臂手眼标定\MAIN_GUI_daheng.py"文件,进行九点标注,实现九点标注是为了把机械臂与摄像头的点位匹配,已达到获取后续抓取的准确性。

开始测试

本项目中,数据测试使用"MAIN_DH.py"文件,直接在终端内执行(执行命令前需要cd至代码主路径下)

python3 MAIN_DH.py

打开GUI页面后,开始测试。

PCB板加工件处理

数据采集与标注

同上文一致。

模型训练

同上文一致。

九点标注

上文标注后PCB板可不再标注,但是不能动 摄像头与机械臂的位置。

开始测试

同上文一致。

分类: 数据分析与深度学习数据采集与自动化处理 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录