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