from ultralytics import YOLO import os # 训练分辨率与端侧推理对齐:tflite 导出/真机推理均为 704x704。 # 训练 1280 会让模型对"清晰大目标"自信,推理时目标变小置信度崩坏(误报根源)。 # multi_scale=0.5 随机缩放输入 0.5~1.5x,进一步抗尺度漂移。 # 训练完成后导出 tflite(imgsz=704,与训练一致)。 os.chdir("/opt/pheasant_data") model = YOLO("yolov8n.pt") model.train(data="datasets/yolo/dataset.yaml", imgsz=704, epochs=150, patience=30, batch=16, device=0, workers=4, # project 必须绝对路径,相对路径会被拼到默认 runs/detect 下造成双层嵌套 project="/opt/pheasant_data/runs/pheasant", name="yolov8n_704", exist_ok=True, plots=True, multi_scale=0.5) # 导出 tflite:输入固定 [1,3,704,704],与 flutter_app/assets/model.tflite 一致 model.export(format="tflite", imgsz=704) print("EXPORT_DONE: /opt/pheasant_data/runs/pheasant/yolov8n_704/weights/best.tflite")