2.0 KiB
RKNN 堆料分类推理系统 README
本项目用于在 RK3588 平台上运行 RKNN 分类模型,对多个 ROI 区域进行堆料状态分类,包括:
未堆料 0 小堆料 1 大堆料 2 未浇筑满 3 浇筑满 4
项目中支持 多 ROI 裁剪、模型推理、加权判断(小/大堆料) 和分类结果输出。
目录结构
project/ │── yiliao_cls.rknn # RKNN 模型 │── best.pt # pt 模型 │── roi_coordinates/ # ROI 坐标文件目录 │ └── 1_rois.txt │── test_image/ # 测试图片目录 │ └── 1.jpg └── 2.jpg └── 3.jpg │── yiliao_main_rknn.py # RKNN主推理脚本 │── yiliao_main_pc.py # PC推理脚本 │── README.md
配置(略)
安装依赖(略)
调用示例
单张图片推理调用示例
from yiliao_main_rknn import classify_frame_with_rois
# 示例调用
# =====================================================
if __name__ == "__main__":
model_path = "yiliao_cls.rknn"
roi_file = "./roi_coordinates/1_rois.txt"
frame = cv2.imread("./test_image/1.png")
result = classify_frame_with_single_roi(model_path, frame, roi_file)
print(result)
##小堆料 / 大堆料加权判定说明
模型原始输出中,小堆料(class 1)与大堆料(class 2)相比时容易出现概率接近的情况。
通过加权机制:
✔ 可以避免因整体概率偏低导致分类不稳定 ✔ 优先放大“大堆料 的可能性”(因为 w2 > w1) ✔ score 更能反映堆料大小的趋势,而不是绝对概率
为提高判断稳定性,采用了加权评分方式:(这些参数都可以根据实际情况在文件中对weighted_small_large中参数进行修改) score = (0.3 * p1 + 0.7 * p2) / (p1 + p2) score ≥ 0.4 → 大堆料 score < 0.4 → 小堆料
p1:小堆料概率 p2:大堆料概率 score 越接近 1 越倾向于大堆料 score 越接近 0 越倾向于小堆料