RKNN 料袋(bag / bag35)检测与滚筒控制逻辑
本工程基于 RKNN 模型 对流水线上的料袋进行检测与分类(bag / bag35),
并根据检测结果与位置关系判断料袋状态(未到位 / 到位 / 掉出滚筒),
最终执行对应的 滚筒控制逻辑 或用于 纯判断测试。
一、目录结构
detect_bagor35bag/
├── bag3568.rknn
├── detect_bag.py
├── main_bag_judgment.py
├── test_bag_onlyjudgment_withou-motor-contral.py
├── test_image/
└── README.md
二、功能说明
料袋检测
- RKNN 推理
- 支持
bag/bag35目标检测 - 输出
cls / conf / min_x50kg料包为bag,35kg为bag35;conf是置信度;min_x是判断料包底部距离现在传感器物理位置的距离,未到位是负数,到位后是正数距离
状态判断
| 状态 | 条件 |
|---|---|
| 没有料袋 | min_x is None |
| 料袋未到位 | min_x < THRESHOLD_X |
| 料袋到位 | THRESHOLD_X ≤ min_x ≤ THRESHOLD_maxX |
| 料包掉出滚筒 | min_x > THRESHOLD_maxX |
THRESHOLD_X = 537 # 到位阈值
THRESHOLD_maxX = 1430 # 掉出滚筒阈值
滚筒控制规则
- 未检测 / 未到位 → 不动作
- 掉出滚筒 → 停机报警
- 到位:
- bag → 立即停止滚筒
- bag35 → 延时2s → 这里不确定能不能直接正转变反转加了一个停止滚筒→ 反转2s → 停止
三、依赖安装(已安装)
pip install opencv-python numpy rknnlite
四、使用方式
主程序(含电机控制)
python main_bag_judgment.py
仅判断测试(无电机)
python test_bag_onlyjudgment_withou-motor-contral.py
五、核心接口
detect_bag
cls, conf, min_x = detect_bag(img) #不可视化图像
cls, conf, min_x, vis_img = detect_bag(img, return_vis=True) #可视化图像
bag_judgment
status_bool, status_text, conf, min_x, vis_img = bag_judgment(img) #不可视化图像+滚筒控制
六、状态文本规范
没有料袋
料袋未到位
料袋到位
料包掉出滚筒
七、说明
- 检测与控制逻辑解耦
- 易于扩展新料袋类型
- 支持现场与离线测试