养猪大户必备!教你用ModelBox开发一个AI数猪应用
内容提要
本文介绍了使用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目录下的流程图文件,确保流程图包含新的功能单元并正确配置。