逆战 yolov11 rk3588fp,图片尺寸416416,onnx模型已训练逆战 yolov11 rk3588fp,图片尺寸416416,onnx模型已训练,
显示乱码(???)表示中文目录,可正常识别,附标签集,检测代码
1
1
1
显示乱码(???)表示中文目录,可正常识别,可提供标签集,检测代码
逆战目标检测(YOLOv11 + RK3588 FP版)使用文档
适配416×416输入尺寸,已训练完成,提供 ONNX 模型、完整标签集、检测源码,支持 RK3588 嵌入式板卡部署,中文目录出现????为正常编码显示,不影响识别与运行。
一、资源清单
| 文件/目录 | 说明 |
|---|---|
yolov11_nz.pt | PyTorch 原生模型权重(PC端推理/二次训练) |
yolov11_nz.onnx | 通用ONNX模型(RK3588部署基础文件) |
nz_dataset/ | YOLO格式标签数据集(图片+txt标注标签集) |
detect_pc.py | PC端图片/视频/摄像头检测代码 |
detect_rk3588.py | RK3588板卡专用检测代码 |
classes.txt | 目标类别名称文件 |
补充说明:路径含中文时终端/日志显示
????,属于字符编码展示问题,模型、文件读写、检测功能完全正常,无需修改路径。
二、运行环境配置
1. PC端运行依赖
pipinstallultralytics opencv-python numpy2. RK3588板卡依赖
板卡预装系统需配置:rknn-toolkit2、opencv-python、numpy,RK官方标准环境即可运行。
三、PC端检测代码(YOLOv11)
输入尺寸固定416×416,支持单图、视频、本地摄像头检测。
3.1 单张图片检测
fromultralyticsimportYOLOimportcv2# 加载训练好的YOLOv11模型model=YOLO("yolov11_nz.pt")# 待检测图片路径(支持中文目录,显示乱码不影响使用)img_path="测试图片.jpg"# 模型推理,指定输入尺寸416*416,置信度阈值0.25results=model(img_path,imgsz=416,conf=0.25)# 绘制检测结果forresinresults:out_img=res.plot()# 展示+保存结果cv2.imshow("逆战目标检测",out_img)cv2.imwrite("pc_detect_result.jpg",out_img)cv2.waitKey(0)cv2.destroyAllWindows()3.2 视频/摄像头实时检测
fromultralyticsimportYOLOimportcv2 model=YOLO("yolov11_nz.pt")# 0 = 本地摄像头,也可填写视频文件路径cap=cv2.VideoCapture(0)whilecap.isOpened():ret,frame=cap.read()ifnotret:break# 推理检测results=model(frame,imgsz=416,conf=0.25)frame=results[0].plot()cv2.imshow("实时检测",frame)# 按 q 退出ifcv2.waitKey(1)&0xFF==ord('q'):breakcap.release()cv2.destroyAllWindows()四、RK3588 板卡部署(FP精度 + ONNX转RKNN)
本项目为FP浮点版,适配RK3588,先将ONNX转为RKNN模型,再运行推理。
4.1 ONNX 转 RKNN 模型代码
fromrknn.apiimportRKNN# 初始化RKNN对象rknn=RKNN()# 配置预处理参数(适配416*416输入)rknn.config(mean_values=[[0,0,0]],std_values=[[255,255,255]],target_platform='rk3588'# 指定板卡型号)# 加载ONNX模型rknn.load_onnx(model="yolov11_nz.onnx")# 构建RKNN模型(FP浮点,不做量化)rknn.build(do_quantization=False)# 导出RKNN模型rknn.export_rknn("yolov11_nz_rk3588.rknn")# 释放资源rknn.release()print("模型转换完成!")4.2 RK3588 端推理检测代码
fromrknn.apiimportRKNNimportcv2importnumpyasnp# 类别列表,与训练标签一一对应CLASS_NAMES=[]withopen("classes.txt","r",encoding="utf-8")asf:CLASS_NAMES=[line.strip()forlineinf.readlines()]# 初始化并加载RKNN模型rknn=RKNN()rknn.load_rknn("yolov11_nz_rk3588.rknn")# 初始化运行环境rknn.init_runtime()defdetect_image(img_path):# 读取图像img=cv2.imread(img_path)h,w=img.shape[:2]# 缩放到模型输入尺寸 416*416img_resize=cv2.resize(img,(416,416))# 构造推理输入input_data=np.expand_dims(img_resize,axis=0)# 模型推理outputs=rknn.inference(inputs=[input_data])# 此处可结合YOLOv11官方后处理解析输出、绘制检测框# 后处理逻辑可直接使用配套提供的后处理脚本returnimg_resize# 执行检测result=detect_image("测试图片.jpg")cv2.imwrite("rk3588_result.jpg",result)# 释放资源rknn.release()五、数据集与标签格式说明
数据集为标准YOLO 标签格式,目录结构如下:
nz_dataset/ ├── images/ # 所有原始图片 └── labels/ # 对应txt标签文件- 标签规则:
类别ID 归一化中心x 归一化中心y 归一化宽 归一化高 - 配套
classes.txt记录所有检测类别,可直接用于二次训练。
六、补充说明&常见问题
- 中文目录乱码(???)
仅为终端/日志字符显示问题,文件读取、模型推理、保存结果均不受影响,正常使用即可。 - 输入尺寸
模型固定训练尺寸416×416,推理代码已内置对应参数,无需手动修改。 - 精度说明
RK3588版本为FP浮点精度,保留原始模型精度,无需量化,开箱即用。 - 二次训练
可使用提供的标签集 +yolov11_nz.pt权重,基于YOLOv11官方框架继续微调训练。