当前位置: 首页 > news >正文

基于YOLO11实例分割与奥比中光相机的快递包裹抓取点检测

本博客来源于CSDN机器鱼,未同意任何人转载。

更多内容,欢迎点击本专栏,查看更多内容。

0 引言

项目采用六轴机械臂搭配末端真空吸盘,从无序包裹中抓取想要的包裹。AI算法需要提供各包裹的抓取点的3D坐标与3D姿态。由于快递包裹含有多个面,且大多为倾斜状态,为了顺利抓取,我们的算法需要如下几个步骤:

①从彩色图的包裹堆里面识别、分割出每个单独的包裹,得到2D掩码Mask1;

②从对齐的深度图中提取每个包裹Mask1对应的深度掩码Mask2;

③根据相机参数,计算Mask2对应的三维点云DisMask;

④将DisMask中的异常点云值剔除后做平面分割,只要含点云数量最多的那个平面;

⑤求平面的质心作为抓取点,求平面的法向量与x、y、z轴的角度为末端抓取姿态。

最终得到6个值返回给下位机做机械臂的控制。

本次是在windows上进行开发,我用到的软件与SDK有:cmak-3.28.1,vs2019,opencv-4.6.1,open3d-0.18.0,orbbecsdk1.10.18、cuda-11.6、cudnn-8.5.0、tensorrt-8.4.1.5。

模型用的ultralytics最新版训练的yolo11s-seg,训练好之后转好的onnx模型与训练数据可以在【这里】下载,训练方法网上到处都有,不是此博客的重点。

1 奥比中光相机测试

1.1 SDK相机初体验

以前做这种对精度要求不那么高项目用的都是intel的realsense系列,但价格越来越贵了,加上奥博中光天天网上吹牛批,所以某鱼买了一款二手的GeminiPro相机,是奥比中光与轮趣科技一同研发的。

首先配置奥比中光相机的驱动与SDK,必须要装驱动才能使用,下载地址:地址1。因为我采用的win11,所以下载的win_x64这个版本。

解压后的目录为D:/Project/OrbbecSDK/(这是我放置的目录),也可以换其他路径存放。有个driver的文件夹,里面的exe无脑安装即可。

安装完成后,打开CMAKE_GUI与VS2019,CMAKE我采用的版本是3.28.1。首先打开CMakeLists.txt将OpenCV_DIR的路径改成自己的实际路径,关于opencv的安装编译网上有很多,这里就不赘述了。

https://github.com/orbbec/OrbbecSDK/releases然后打开cmakegui按照下列步骤配置并生成vs的工程文件,生成好之后打开,最后ALL_BUILD。

 

ALL_BUILD右键生成之后会在bin目录下生成很多exe文件,插上相机、运行color_viewer有画面就代表已经可以正确使用SDK了,下面我们对其进行改写,得到我们想要的程序。

1.2 将SDK的Example改成所需要程序

在我的案例中,对于SDK需要有以下几个功能:

①设定参数与初始化相机;②获取彩色图与深度图;③对彩色图与深度图进行对齐;④传入检测得到的box与mask计算3d点云;⑤点云处理得到三维抓取点与三维姿态。

 4.6再更新

http://www.dtcms.com/a/112951.html

相关文章:

  • 基于CATIA产品结构树智能排序的二次开发技术解析——深度定制BOM层级管理系统的Pycatia实践
  • docker搭建minio集群(简化版)
  • MessageQueue --- RabbitMQ WorkQueue
  • Redis-Hash类型
  • 我的购物车设计思考:从个人项目到生产实战思考的蜕变
  • 【Linux网络与网络编程】05.应用层自定义协议序列化和反序列化
  • Systemd构建自动化备份服务与外部存储管理
  • KAPC的前世今生--(下)下RPCRT4!NMP_SyncSendRecv函数分析
  • 去中心化指数(链上ETF)
  • 【小沐学Web3D】three.js 加载三维模型(React Three Fiber)
  • Cribl 通过Generic API新建 Dataset
  • 谈谈策略模式,策略模式的适用场景是什么?
  • 基本机动飞行性能
  • 车辆信息查询API——车辆车五项查询
  • 金融数据分析(Python)个人学习笔记(6):安装相关软件
  • PyTorch参数管理详解:从访问到初始化与共享
  • ARM架构与编程学习(四)(08_keil_gcc_Makefile)
  • 晶晨S905-S905L-S905LB_S905M2通刷_安卓6.0.1_16S极速开机_线刷固件包
  • 英语—四级CET4考试—蒙猜篇—匹配题
  • 测试:正交法设计测试用例
  • mysql数据库中getshell的方式总结
  • Java进阶-day06:反射、注解与动态代理深度解析
  • GPU显存占用高但利用率低的深度解析 (基于实际案例与技术文档)
  • python爬虫爬取淘宝热销(热门)台式电脑商品信息(课程设计;提供源码、使用说明文档及相关文档;售后可联系博主)
  • php8 命名参数使用教程
  • 跳跃连接(Skip Connection)与残差连接(Residual Connection)
  • 家庭路由器wifi设置LAN2LAN和LAN2WAN
  • STM32低功耗模式详解:睡眠、停机、待机模式原理与实践(下) | 零基础入门STM32第九十三步
  • 30信号和槽_带参数的信号槽(3)
  • [Linux]进程状态、僵尸进程处理回收、进程优先级 + 图例展示