在立创庐山派上运行 YOLOv8 物体检测系统
最近入手了一块立创庐山派,想测试一下视觉检测的效果。由于我只买了板子,没有购买屏幕,而 CanMV-IDE 又没有 macOS 版本,用 OpenMv-IDE 也不能下发文件到板子上,我又不想拔卡插到电脑上。
所以我决定直接通过命令行工具与庐山派通信,并使用 Wi-Fi 和 MQTT 通信将识别结果发送到服务器。
前提条件
在开始之前,请确保已经完成以下准备工作:
获取代码:
1 |
|
安装 Python 3.x:可以从 Python 官网 下载并安装 Python 3.x。
配置虚拟环境:
1 |
|
安装必要的工具:
1 |
|
连接庐山派 CanMV-K230
首先,通过 USB 线将庐山派 CanMV-K230 连接到电脑。
1 |
|
使用以下命令查看挂载位置:
1 |
|
在项目文件夹下创建 .ampy
文件,并加入以下内容:
1 |
|
使用 ampy
测试一下是否能正常连接:
1 |
|
如果能正常显示 sdcard
分区下的文件和文件夹,则说明连接成功。
修改配置
复制配置文件模板并进行修改:
1 |
|
配置文件包含 WiFi、YOLO、MQTT 和 NTP 的配置信息。根据实际情况修改配置:
1 |
|
主函数执行以下步骤:
- 加载配置。
- 检查所需的配置(WiFi、YOLO、MQTT)是否存在并启用,这个项目里必须开启这三项。
- 测试 WiFi 连接。
- 如果启用了 NTP 时间同步,则同步时间。NTP 不启动也不会影响后续的操作。
- 初始化 MQTT 客户端并连接到 MQTT 代理。
- 初始化 YOLO 模型和处理管道。
- 每秒处理帧,进行目标检测,并将结果发送到 MQTT 代理。
- 处理异常并释放掉处理管道、MQTT 和 YOLO 的资源。
请注意,不要在 JSON 文件里加注释,可能会导致解析失败。
添加依赖
立创庐山派固件缺少 ntptime
和umqtt.simple
,需要使用mpremote
手动安装:
1 |
|
上传文件到庐山派 CanMV-K230
使用 ampy
工具可以方便地将文件上传到庐山派 CanMV-K230。使用以下命令将文件上传到板子上:
1 |
|
使用 screen 查看日志
可以使用 screen 工具连接到庐山派 CanMV-K230 并查看日志输出:
1 |
|
要退出 screen 会话,可以按 Ctrl+A
,然后按 K
,最后按 Y
确认退出。
每次进入都会 soft reset,可以按
Ctrl+D
手动 soft reset,如果正在运行,也可以用Ctrl+C
终止运行
项目运行
将准备好的文件都拷贝到庐山派上,项目就能正常启动了。只要板子能正常连接到 Wi-Fi 和 MQTT,就能从同样连接到 MQTT 服务器并订阅了对应 topic 的 MQTTX 上看到输出。
1 |
|
通过以上步骤,可以在立创庐山派上运行基于 YOLOv8 的物体检测系统,并通过 MQTT 协议将检测结果发布到指定的主题。