Yolov5s/kneron/bie2nef.py
2026-03-11 16:13:59 +08:00

45 lines
1.4 KiB
Python

import ktc
import os
import shutil
import subprocess
# 設定 `.bie` 和 `.nef` 的存放目錄
onnx_dir = "runs/train/exp24/weights/"
bie_file = os.path.join(onnx_dir, "input.kdp720.scaled.bie") # 確保 `.bie` 路徑正確
# 確保 `.bie` 檔案存在
if not os.path.exists(bie_file):
raise FileNotFoundError(f"❌ Error: BIE file not found at {bie_file}")
print(f"✅ Found BIE file: {bie_file}")
# 初始化 ModelConfig
km = ktc.ModelConfig(20008, "0001", "720", bie_path=bie_file)
# 執行 `.nef` 轉換
nef_model_path = ktc.compile([km])
# 打印出 `.nef` 生成的路徑
print(f"🔍 Generated NEF file at: {nef_model_path}")
# 確保 `.nef` 轉換成功
if not nef_model_path or not os.path.exists(nef_model_path):
raise RuntimeError(f"❌ Error: NEF model was not generated at {nef_model_path}")
# 確保目標資料夾存在
os.makedirs(onnx_dir, exist_ok=True)
# 移動 `.nef` 到指定資料夾
nef_save_path = os.path.join(onnx_dir, os.path.basename(nef_model_path))
shutil.copy(nef_model_path, nef_save_path)
# **立即檢查 `.nef` 是否真的存在**
if os.path.exists(nef_save_path):
print(f"\n✅ NEF file successfully saved to: {nef_save_path}")
else:
raise RuntimeError(f"❌ Error: NEF file NOT found in {nef_save_path} after copying!")
# **執行 `ls` 指令來確認 Python 內部真的看到 `.nef`**
print("\n🔍 Listing files in target directory:")
subprocess.run(["ls", "-lh", onnx_dir])