养猪大户必备!教你用ModelBox开发一个AI数猪应用

💡 原文中文,约72800字,阅读约需174分钟。
📝

内容提要

本文介绍了使用ModelBox进行视频应用开发的步骤,包括准备环境、创建工程、创建推理功能单元、创建后处理功能单元和绘图功能单元。最后运行应用并进行测试。

🔎

延伸解读

ModelBox 功能单元开发模式解析

文章展示了 ModelBox 以功能单元(FlowUnit)为核心的开发模式。推理、后处理、绘图等环节被拆分为独立单元,通过流程图连接。这种设计让开发者能灵活替换或复用单元,例如将 YOLOv7 推理单元替换为其他模型,只需调整流程图和单元配置,降低了模块间的耦合度。

后处理单元的关键参数与逻辑

后处理单元 yolov7_post 的配置文件中,net_h、net_w、num_classes、conf_threshold 和 iou_threshold 是影响检测结果的关键参数。逻辑代码中,根据 num_classes 是否为 1 决定置信度计算方式,并使用 OpenCV 的 NMSBoxes 进行非极大值抑制,这些细节直接关系到最终框的准确性和数量。

本地视频与 HTTP 服务两种运行方式

文章提供了两种运行方式:本地视频文件处理和 HTTP 服务。本地方式通过 mock_task.toml 配置输入输出路径,适合离线测试;HTTP 方式则启动服务,通过 test_http.py 发送 base64 图片请求,适合集成到其他系统。两种方式共用相同的推理和后处理单元,体现了流程图的灵活性。

测试与结果验证的注意事项

运行应用后,生成的视频保存在 hilens_data_dir 目录。HTTP 测试时,test_http.py 会读取 test_imgs 文件夹中的图片,发送请求并解析返回的 JSON 检测结果,然后绘制检测框并保存。注意脚本中使用了已弃用的 tostring() 方法,建议改用 tobytes() 以避免警告。

❓

Q&A

如何使用ModelBox创建AI数猪应用的工程?

在ModelBox sdk目录下使用create.bat命令创建yolov7_pig工程,命令为:. eate.bat -t server -n yolov7_pig。

如何创建推理功能单元?

使用create.bat命令创建推理功能单元,命令为:. eate.bat -t infer -n yolov7_infer -p yolov7_pig,并下载ONNX格式模型。

如何进行后处理功能单元的配置?

创建后处理功能单元时,使用create.bat命令,并修改配置文件和逻辑代码以适应功能需求。

如何运行AI数猪应用并进行测试?

准备测试视频和图片,修改bin/mock_task.toml配置文件,然后执行main.bat运行应用。

如何通过HTTP服务进行请求测试?

在应用目录下创建test_http.py脚本,发起HTTP请求进行测试,确保HTTP服务已启动。

如何修改流程图以适应新的功能单元?

修改yolov7_pig工程graph目录下的流程图文件,确保流程图包含新的功能单元并正确配置。

🏷️

标签

➡️

继续阅读