fix: xóa phông và sắp xếp lại các nút trên giao diện
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import os
|
||||
import glob
|
||||
import shutil
|
||||
from ultralytics import YOLO
|
||||
|
||||
# 1. Nạp mô hình PyTorch gốc từ file bạn đã tải sẵn
|
||||
model = YOLO("yolov11n-seg.pt")
|
||||
|
||||
print("⏳ Bước 1: Đang dịch sang định dạng trung gian ONNX...")
|
||||
# Xuất sang file .onnx (Vượt qua bộ check OS của LiteRT)
|
||||
onnx_path = model.export(format="onnx", imgsz=640)
|
||||
|
||||
print("⏳ Bước 2: Kích hoạt onnx2tf để dịch ma trận đồ họa sang TFLite...")
|
||||
onnx_file = "yolov11n-seg.onnx"
|
||||
|
||||
if os.path.exists(onnx_file):
|
||||
# Gọi công cụ dòng lệnh chuyển dịch sang Float32
|
||||
# -nuo: Chống tối ưu hóa lỗi cấu hình phần cứng Android GPU Delegate
|
||||
os.system(f"onnx2tf -in {onnx_file} -nuo")
|
||||
|
||||
print("🔍 Đang quét tìm vị trí file .tflite thành phẩm...")
|
||||
# 🟢 SỬA LỖI: Tìm kiếm tất cả các file .tflite được sinh ra trong các thư mục con
|
||||
tflite_matches = glob.glob("**/yolov11n-seg*.tflite", recursive=True) + glob.glob("*.tflite")
|
||||
|
||||
# Lọc bỏ nếu tìm trúng file đích cũ để tránh trùng lặp
|
||||
tflite_matches = [f for f in tflite_matches if "yolov11n_seg_portrait.tflite" not in f]
|
||||
|
||||
if tflite_matches:
|
||||
generated_tflite = tflite_matches[0]
|
||||
dest_path = "yolov11n_seg_portrait.tflite"
|
||||
|
||||
# Di chuyển và đổi tên chuẩn xác cho dự án Android
|
||||
os.replace(generated_tflite, dest_path)
|
||||
print(f"🎉 XUẤT FILE THÀNH CÔNG! File đã nằm tại: {os.path.abspath(dest_path)}")
|
||||
|
||||
# --- DỌN DẸP FILE RÁC TRUNG GIAN ---
|
||||
try:
|
||||
os.remove(onnx_file)
|
||||
# Xóa các thư mục tạm do onnx2tf hoặc ultralytics tạo ra
|
||||
if os.path.exists("yolov11n-seg_saved_model"):
|
||||
shutil.rmtree("yolov11n-seg_saved_model")
|
||||
if os.path.exists("saved_model"):
|
||||
shutil.rmtree("saved_model")
|
||||
# Tìm và xóa thư mục con trùng tên nếu có
|
||||
for d in os.listdir("."):
|
||||
if os.path.isdir(d) and "yolov11n-seg" in d:
|
||||
shutil.rmtree(d)
|
||||
except Exception as clean_ex:
|
||||
print(f"⚠️ Cảnh báo dọn dẹp: {str(clean_ex)}")
|
||||
|
||||
else:
|
||||
print("❌ Lỗi: onnx2tf không tạo ra bất kỳ file .tflite nào! Hãy kiểm tra log phía trên của onnx2tf xem có bị lỗi thiếu công cụ 'flatc' không.")
|
||||
else:
|
||||
print("❌ Lỗi: Không tìm thấy file ONNX trung gian để chuyển đổi!")
|
||||
Reference in New Issue
Block a user