1.添加模型转换脚本\n2.添加moniter.sh监控系统资源脚本

This commit is contained in:
haotian 2025-09-01 16:07:53 +08:00
parent 6ba2838eaa
commit f4ff462bc5
3 changed files with 81 additions and 0 deletions

7
moniter.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/bash
while true; do
clear
echo "CPU 使用率: $(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')%"
echo "内存使用率: $(free -m | awk 'NR==2{printf "%.2f%%\n", $3 * 100/$2 }')"
sleep 1
done

16
transfer/001pt转onnx.py Normal file
View File

@ -0,0 +1,16 @@
from ultralytics import YOLO
import torch
# 加载模型时禁用数据验证
model = YOLO("/home/admin-root/haotian/康达瑞贝斯机器狗/YoloV8Obj/dataset_20250819/train2/weights/best.pt", task="detect")
# 手动设置模型为推理模式
model.model.eval()
# 导出 ONNX
dummy_input = torch.randn(1, 3, 640, 640)
torch.onnx.export(
model.model, # 使用 model.model 访问底层 PyTorch 模型
dummy_input,
"yolov8_20250820.onnx",
input_names=["input"],
output_names=["output"],
opset_version=11,
)

View File

@ -0,0 +1,58 @@
from rknn.api import RKNN
import cv2
import numpy as np
# 初始化 RKNN
rknn = RKNN()
# 配置参数(关键!)
rknn.config(
target_platform="rk3588", # 根据实际芯片型号修改
mean_values=[[0, 0, 0]], # YOLOv8 输入为 0-255无需归一化
std_values=[[255, 255, 255]], # 输入数据除以 255即 0-1 范围)
# quant_img_RGB2BGR=True,
optimization_level=3, # 最高优化级别
)
# 加载 ONNX
ret = rknn.load_onnx(model="/home/orangepi/Desktop/kangda_robotic_dog/yolov8_20250820.onnx")
assert ret == 0, "加载 ONNX 失败!"
# 转换模型
ret = rknn.build(
do_quantization=False, # 启用量化
# dataset="dataset.txt", # 校准数据路径
)
assert ret == 0, "转换 RKNN 失败!"
# 导出 RKNN
ret = rknn.export_rknn("/home/orangepi/Desktop/kangda_robotic_dog/yolov8_20250820.rknn")
assert ret == 0, "导出 RKNN 失败!"
# Set inputs
img = cv2.imread('/home/orangepi/Desktop/kangda_robotic_dog/微信图片_20250827165826.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img.resize((3, 640, 640))
img = np.expand_dims(img, 0)
# Init runtime environment
print('--> Init runtime environment')
ret = rknn.init_runtime()
if ret != 0:
print('Init runtime environment failed!')
exit(ret)
print('done')
# Inference
print('--> Running model')
outputs = rknn.inference(inputs=[img], data_format=['nchw'])
np.save('./tflite_mobilenet_v1_0.npy', outputs[0])
print(len(outputs))
print('done')
rknn.release()