使用树莓派和OAK相机部署机器人视觉模型
资讯来源:roboflow
编辑: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-python
OAK相机还需要在树莓派上进行特定设置。要确保它已设置,还需要在终端中运行以下命令:
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.py
Python脚本,你可以为你的机器人编写功能代码。例如,你可以使用像networktables,通过本地网络将检测到的物体的坐标发送到其他设备。
通过使用树莓派作为视觉协处理器,你可以轻松地将该系统集成到您现有的机器人控制系统中。