1.添加模型转换脚本\n2.添加moniter.sh监控系统资源脚本
This commit is contained in:
parent
6ba2838eaa
commit
f4ff462bc5
7
moniter.sh
Executable file
7
moniter.sh
Executable 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
16
transfer/001pt转onnx.py
Normal 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,
|
||||||
|
)
|
||||||
58
transfer/002onnx转rknn.py
Normal file
58
transfer/002onnx转rknn.py
Normal 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()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user