当前位置:网站首页>使用树莓派和OAK相机部署机器人视觉模型
使用树莓派和OAK相机部署机器人视觉模型
2022-08-11 09:27:00 【OAK中国_官方】
编辑:OAK中国
首发:oakchina.cn
喜欢的话,请多多️
▌前言
Hello,大家好,这里是OAK中国,我是助手君。之前在朋友圈发的要介绍一个自动捡球机器人的项目,本文是基于此项目做的拓展,更多类似项目都可参考本文去做哦。
计算机视觉可以使机器人智能地适应动态环境,通过Roboflow和一个OAK相机,你可以在你的机器人上开发和运行强大的计算机视觉模型。
在本指南中,我们将以FIRST机器人竞赛(FRC)为例,但同样的设置也可以应用于各种机器人平台和用途。
硬件准备
我们需要用到的硬件有:
- 树莓派4
- OAK相机(例如OAK-D-Lite、OAK-D-S2或者OAK-D Pro)
- 外围设备,如键盘和鼠标,以设置你的树莓派。
请确保按照官方文档将你的树莓派设置为最新版本的Raspbian操作系统。确保你的树莓派有一个正常的互联网连接,这样我们就可以在后面安装依赖项了。
构建机器人数据集
Roboflow提供了一个方便的平台来注释训练数据,创建数据集,并训练强大的机器学习模型。
登录roboflow后,你将看到一个创建工作区的选项,这是我们存储和管理图像的地方。
我们的模型通过对标记的例子进行训练来学习检测感兴趣的对象。为了收集图像,我们可以在现实世界的场景中拍摄物体的照片,并将它们上传到我们的Roboflow工作区。例如,对于2022年FRC竞赛,这可能是在场地周围的不同位置摆放的货物。
一种资源是Roboflow Universe,一个不断增长的数千个公共数据集和模型的集合。例如,这里有一些其他公共FIRST数据集.
以下是我们拍摄并上传到Roboflow的一些照片:

使用增强和预处理扩展机器人数据集
预处理和增强有助于计算机视觉模型变得更加强大。在“Generate”选项卡下你可以选择应用于你的数据的转换。
这里有一些你可以用来帮助你的模型训练的增强功能:
通过Roboflow的增强功能,你可以免费生成高达3倍于训练数据大小的数据集。
数据集生成后,它会在“Versions”选项卡下弹出。在那里,你可以一键训练机器人计算机视觉模型。我们将把它部署到我们的树莓派和OAK相机上。在你训练完你的模型后,我们可以将其结果可视化。

安装依赖项
为了让树莓派软件与OAK相机交互,它需要其他软件或依赖项才能工作。我们可以通过在终端应用程序中运行以下命令将它们安装到树莓派上:
sudo apt-get update
sudo apt-get upgrade
python3 -m pip install roboflowoak depthai opencv-pythonOAK相机还需要在树莓派上进行特定设置。要确保它已设置,还需要在终端中运行以下命令:
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="03e7", MODE="0666"' | sudo tee /etc/udev/rules.d/80-movidius.rules
sudo udevadm control --reload-rules && sudo udevadm trigger
在OAK上运行你训练过的模型
我们做了一个Github库,里面有方便的代码片段。通过运行以下命令克隆它:
git clone https://github.com/roboflow-ai/roboflow-api-snippets.git
cd Python/LuxonisOak现在,打开文件main.py并编辑第10行到第12行,指定你想要运行的模型和版本,以及你的API密匙。你可以通过点击模型测试页面上“Use with”下的“Luxonis OAK”标签来找到它。我们鼓励你尝试其他部署选项。

要运行检测,我们可以运行:
python3 ./main.py
在终端输出中,我们可以看到每个推断花费了10 ms,这意味着我们以大约每秒100帧的速度运行我们的模型!
在此基础上构建
通过编辑main.pyPython脚本,你可以为你的机器人编写功能代码。例如,你可以使用像networktables,通过本地网络将检测到的物体的坐标发送到其他设备。
通过使用树莓派作为视觉协处理器,你可以轻松地将该系统集成到您现有的机器人控制系统中。
▌参考资料
https://docs.oakchina.cn/en/latest/
https://www.oakchina.cn/selection-guide/
OAK中国
| OpenCV AI Kit在中国区的官方代理商和技术服务商
| 追踪AI技术和产品新动态
戳「+关注」获取最新资讯
边栏推荐
- 深度学习100例 —— 卷积神经网络(CNN)识别验证码
- 在软件工程领域,搞科研的这十年!
- Segmentation Learning (loss and Evaluation)
- SDUT 2877: angry_birds_again_and_again
- 谁能解答?从mysql的binlog读取数据到kafka,但是数据类型有Insert,updata,
- 基于consul的注册发现的微服务架构迁移到servicemesh
- Birth of the Go language
- qspi 接口与普通四线SPI 接口什么区别?
- Software custom development - the advantages of enterprise custom development of app software
- 深度神经网络与人脑神经网络哪些区域有一定联系?
猜你喜欢
随机推荐
WooCommerce Ecommerce WordPress Plugin - Make American Money
5分钟快速为OpenHarmony提交PR(Web)
canvas图形操作(缩放、旋转、位移)
Halcon算子解释
企业展厅制作要具备的六大功能
安装ES7.x集群
Data middle platform program analysis and development direction
Typescript基本类型---上篇
mysql数据查询因为查询的时间跨度过大导致cup爆满应该怎么办
What should I do if the mysql data query causes the cup to be full because the query time span is too large
持续集成/持续部署(2)Jenkins & SonarQube
dsu on tree(树上启发式合并)学习笔记
excel将数据按某一列值分组并绘制分组折线图
基于 VIVADO 的 AM 调制解调(3)仿真验证
SQL语句
软件定制开发——企业定制开发app软件的优势
基于卷积的神经网络系统,卷积神经网络毕业论文
oracle使用online_catalog收集数据,想看下online_catalog模式修改表字
仙人掌之歌——大规模高速扩张(1)
基于hydra库实现yaml配置文件的读取(支持命令行参数)








![Array, string, date notes [Blue Bridge Cup]](/img/71/242804a93332fc545662b983f3aa2a.png)
