OpenVINO
OpenVINO IR adalah format runtime milik Intel, sebuah graph model.xml di samping blob bobot model.bin. LibreYOLO mengekspor perantara ONNX, mengonversinya dengan ov.convert_model, lalu menulis metadata.yaml ke direktori yang sama.
- Flag
export(format="openvino")- Menulis
- Sebuah direktori berisi model.xml, model.bin dan metadata.yaml
- Tambahan
pip install "libreyolo[onnx,openvino]"- Dimuat kembali
LibreYOLO("weights/LibreYOLO9t_openvino")- Bentuk
- Mengikuti perantara ONNX: batch dinamis saat dynamic=True
- Presisi
- FP32, kompresi bobot FP16 (half=True), INT8 lewat NNCF (int8=True dengan data=)
Instalasi
# IR dikonversi dari perantara ONNX, jadi kedua extra dibutuhkan.pip install "libreyolo[onnx,openvino]"pip install nncfKonversi melewati perantara ONNX, jadi extra onnx termasuk kebutuhan wajib, bukan
pelengkap opsional. NNCF dipasang terpisah dan hanya diperlukan untuk int8=True.
Ekspor
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO9t.pt") # Menulis direktori weights/LibreYOLO9t_openvinopath = model.export(format="openvino")print(path)libreyolo export --model LibreYOLO9t.pt --format openvinomodel.export( format="openvino", imgsz=640, batch=1, dynamic=False, # True mempertahankan sumbu batch dinamis sepanjang IR half=False, # True menyimpan bobot FP16 int8=False, # True menjalankan kuantisasi pascapelatihan NNCF data=None, # wajib saat int8=True output_path=None, # None menulis weights/<stem>_openvino)Artefaknya berupa direktori, bukan berkas. weights/LibreYOLO9t_openvino berisi
model.xml, model.bin dan metadata.yaml, dan _fp16 disisipkan sebelum suffix
saat half=True. Pindahkan atau salin seluruh direktori; ketiga berkas itu adalah
satu artefak.
half=True menyetel compress_to_fp16 saat penyimpanan. Itu kompresi bobot di dalam
IR, bukan perubahan presisi inferensi yang dipilih perangkat saat runtime.
INT8
from libreyolo import LibreYOLO LibreYOLO("LibreYOLO9t.pt").export( format="openvino", int8=True, data="coco128.yaml", # wajib: format ini tidak punya nilai bawaan fraction=1.0,)int8=True menjalankan kuantisasi pascapelatihan NNCF di atas loader kalibrasi
LibreYOLO dengan preset mixed, dan data wajib diisi: format ini tidak punya
fallback delapan gambar. NNCF yang tidak terpasang memunculkan ImportError yang
menyebutkan perintah instalasinya.
Menjalankan artefak
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("weights/LibreYOLO9t_openvino")result = model.predict(SAMPLE_IMAGE)print(result.boxes.xyxy[:3])from libreyolo import LibreYOLO # "auto" dan "cpu" dipetakan ke CPU, "gpu" dan "cuda" dipetakan ke GPU,# nilai lain diteruskan dalam huruf kapital, misalnya "npu" -> NPU.model = LibreYOLO("weights/LibreYOLO9t_openvino", device="gpu")import numpy as npimport openvino as ovimport yaml core = ov.Core()print(core.available_devices) compiled = core.compile_model("weights/LibreYOLO9t_openvino/model.xml", "CPU")outputs = compiled(np.zeros((1, 3, 640, 640), dtype=np.float32))print([tensor.shape for tensor in outputs.values()]) # Nama kelas, task dan ukuran input tersimpan di metadata.yaml di samping IR.meta = yaml.safe_load(open("weights/LibreYOLO9t_openvino/metadata.yaml"))print(meta["model_family"], meta["task"], meta["names"]) # Preprocessing dan postprocessing menjadi tanggung jawab Anda di jalur ini.LibreYOLO() mengenali direktori mana pun yang berisi model.xml dan mengembalikan
objek Results yang sama seperti checkpoint, dengan membaca nama kelas, task, ukuran
input dan skema pose dari metadata.yaml.
String device dipetakan, bukan diteruskan apa adanya. auto dan cpu sama-sama
dikompilasi untuk CPU, gpu dan cuda sama-sama dikompilasi untuk GPU, dan nilai
lain diubah menjadi huruf kapital lalu diserahkan ke OpenVINO, dan begitulah target
NPU dicapai.
Snippet ketiga ditujukan untuk pembaca yang tidak memasang LibreYOLO. Preprocessing,
decoding, NMS dan penyesuaian skala koordinat menjadi tanggung jawab Anda di sana,
dan nama kelas hanya ada di metadata.yaml.
Batasan
IR tanpa metadata.yaml tetap bisa dimuat, tetapi backend lalu jatuh ke 80 kelas dan
task deteksi, yang salah untuk task lain. Jaga direktori tetap utuh.
Diblokir sebelum tracing: segmentasi YOLO9, segmentasi RTMDet-Ins, deteksi SSD,
Faster R-CNN dan RetinaNet, serta matting BiRefNet atau FeyNobg, karena OpenVINO
2026.2 tidak bisa menurunkan operasi ONNX standar DeformConv-19 pada decoder matte
yang dipakai bersama.
Kalau sebuah kombinasi tidak divalidasi dan juga tidak diblokir, jalur converter
tersedia dan proyek belum mencatat paritas runtime OpenVINO untuknya. Beberapa
kombinasi divalidasi dengan konteks eksplisit yang dilampirkan, misalnya segmentasi
semantik DeepLabV3 pada input tetap 520 kali 520 di OpenVINO 2026.2 dengan presisi
inferensi default CPU, dan gaze L2CS pada crop wajah tetap 448 kali 448.
libreyolo formats mencetak konteks itu untuk tiap kombinasi.
Untuk grid family dan task lengkap, lihat matriks ekspor. Untuk satu kombinasi:
libreyolo formats --family yolo9 --task detect