Jenis Results

Results adalah satu-satunya tipe hasil per gambar dari setiap model LibreYOLO. Objek ini memiliki slot payload opsional, satu per bentuk task, dan hanya mengisi slot yang dihasilkan model.

Objek Results

Satu Results menjelaskan satu gambar. Sumber satu gambar mengembalikan satu objek, sumber list atau direktori mengembalikan list, dan stream=True mengembalikan generator yang menghasilkan objek tersebut.

AtributJenisArti
orig_shape(int, int)Tinggi dan lebar gambar asli
pathstrPath sumber ketika input berasal dari disk
namesdict[int, str]Indeks kelas ke nama kelas
speeddict[str, float]Milidetik per tahap
track_idtensorId track ketika hasil berasal dari track()
frame_idxintIndeks frame untuk sumber video dan stream
restore_scaleintFaktor upscale output terhadap input dari hasil restore; 1 di tempat lain
Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLO9t.pt")result = model(SAMPLE_IMAGE) print(result.orig_shape, result.path)print(result.boxes.xyxy)print(result.boxes.conf)print(result.names[int(result.boxes.cls[0])])

Slot payload

Setiap slot bernilai None kecuali model menghasilkannya. Slot yang diisi family ditentukan oleh task-nya.

SlotKelasTask
boxesBoxesdetect
masksMaskssegment
keypointsKeypointspose
probsProbsclassify
obbOBBobb
gazeGazegaze
pointsPointspoint
semantic_maskSemanticMasksemantic
panopticPanopticSegmentationpanoptic
depth_mapDepthMapdepth
normal_mapNormalMapnormal
edgesEdgeMapedge
restoredRestoredImagerestore
matteMattematte
ocrOCRRegionsocr
embeddingsEmbeddingsembed
identitiesIdentitiesembed, dengan gallery
meshesMeshesmesh
generatedGeneratedImagegenerate
gaussiansGaussiansgenerate3d

result.normals adalah alias baca-tulis untuk result.normal_map.

Lebih dari satu slot dapat ditetapkan sekaligus. Model segmentation mengisi boxes dan masks; model gaze mengisi boxes dengan bounding box wajah dan gaze dengan sudut; model mesh mengisi boxes dengan bounding box orang dan meshes yang barisnya diselaraskan dengannya.

Bounding box

Bounding box deteksi untuk satu gambar.

AnggotaMengembalikan
xyxyKoordinat sudut dalam piksel gambar asli
xywhPusat dan ukuran dalam piksel
xyxynSudut yang dinormalisasi ke [0, 1]
xywhnPusat dan ukuran yang dinormalisasi ke [0, 1]
confConfidence per bounding box
clsIndeks kelas per bounding box
idId track per bounding box, atau None
is_trackTrue ketika terdapat id track
dataTensor terkemas

with_id(id) dan with_orig_shape(orig_shape) mengembalikan Boxes baru dengan kolom tersebut diganti.

Masks

Instance mask untuk satu gambar. data adalah tensor mask; xy mengembalikan kontur per instance dalam piksel dan xyn mengembalikannya dalam bentuk ternormalisasi.

Keypoints

Keypoint pose yang barisnya diselaraskan dengan boxes. xy adalah pasangan koordinat per keypoint dan xyn pasangan ternormalisasi. conf adalah channel ketiga ketika data memilikinya, atau None. has_visible adalah array boolean, true ketika conf > 0, dan seluruhnya true jika tidak ada channel confidence.

Points

Lokalisasi titik untuk satu gambar. data berbentuk (N, 4) dengan baris x, y, class, confidence. Koordinat berupa piksel absolut; xy, cls, dan conf memisahkan kolom, sedangkan xyn menormalisasi koordinat.

Probs

Skor classification. top1 adalah indeks pemenang, top5 adalah lima indeks terbaik, dan top1conf serta top5conf adalah skor-nya.

OBB

Oriented bounding box. data menyimpan 7 atau 8 nilai per baris: xywhr, id track opsional, lalu confidence dan kelas.

AnggotaMengembalikan
xywhrPusat, ukuran, dan rotasi dalam radian
xyxyxyxyEmpat sudut dalam piksel
xyxyxyxynEmpat sudut ternormalisasi
xyxyHull yang sejajar sumbu dalam piksel
conf, cls, id, is_trackSeperti pada Boxes

Gaze

Sudut arah pandang per wajah dalam radian, berbentuk (N, 2), dengan baris yang diselaraskan terhadap bounding box wajah dalam boxes. Kolom 0 adalah pitch dan kolom 1 adalah yaw menurut konvensi L2CS: yaw positif memutar pandangan ke arah kiri subjek dan pitch positif memutarnya ke bawah. pitch_deg dan yaw_deg mengonversi ke derajat, sedangkan direction_3d mengembalikan vektor arah satuan.

SemanticMask

Map semantic padat, berbentuk (H, W) yang berisi id kelas bilangan bulat pada canvas gambar asli. 255 adalah nilai ignore dan tidak pernah dihitung sebagai kelas (SemanticMask.IGNORE_INDEX). classes mencantumkan id kelas yang ada, dan class_mask(class_id) mengembalikan mask boolean untuk satu kelas.

PanopticSegmentation

Setiap piksel mendapatkan tepat satu segmen yang tidak tumpang tindih, dengan region stuff dan instance thing disatukan. data adalah map id segmen bilangan bulat (H, W); id segmen 0 tidak berlabel (PanopticSegmentation.IGNORE_INDEX). segments_info adalah list dict, satu per segmen, masing-masing setidaknya memuat {"id": int, "category_id": int}, dengan id cocok dengan nilai dalam map dan category_id mengindeks names. segment_ids mencantumkan id yang ada dan segment_mask(segment_id) mengembalikan mask boolean satu segmen.

Thing-versus-stuff merupakan properti kategori, bukan segmen. Payload dapat melakukan denormalization properti tersebut ke setiap segmen sebagai "isthing": bool, dan jika dilakukan, nilainya harus sesuai dengan map level kategori.

DepthMap

Map inverse-depth relatif padat, berbentuk (H, W) float pada canvas gambar asli. Nilai lebih tinggi berarti lebih dekat ke kamera. Nilainya relatif, bukan meter metrik. min, max, dan mean dihitung pada nilai terbatas, sedangkan normalized() melakukan rescale map ke [0, 1].

DepthMap(data, orig_shape=None, encoding="inverse_depth") juga menerima encoding="depth" dan encoding="log_depth". Validator menafsirkannya sebelum penyelarasan. Nilai kedalaman relatif tetap tidak menjamin skala metrik.

NormalMap

Kolom surface-normal padat, float32 (H, W, 3) pada canvas gambar asli, dalam frame kamera OpenCV: +x ke kanan, +y ke bawah, dan +z masuk ke scene. Normal menghadap kamera, sehingga permukaan fronto-parallel adalah (0, 0, -1). Setiap piksel berupa vektor satuan. assert_normalized(atol=1e-4) memeriksa invariant tersebut.

EdgeMap

Map probabilitas edge padat, float32 (H, W) pada canvas gambar asli, dengan 0 berarti bukan edge dan 1 berarti edge. Map kontinu dipertahankan agar ambang batas tetap menjadi pilihan pemanggil: binary(threshold=0.5) menerapkannya, dan array mengembalikan tampilan numpy.

RestoredImage

Gambar RGB hasil restorasi, uint8 (H, W, 3). Untuk super-resolution, canvas berukuran Results.restore_scale kali input. array mengembalikan tampilan numpy dan save(path) menulis gambar.

Matte

Matte opasitas lunak, float32 (H, W) dalam [0, 1] pada canvas gambar asli. 1 berarti foreground penuh dan 0 berarti background penuh. Matte lunak mencakup mask penghapusan latar belakang keras yang menggunakan ambang batas 0.5, sekaligus mempertahankan edge anti-alias yang dibuang mask biner. array mengembalikan tampilan numpy.

Pada hasil matte, Results.cutout(image=None) mengembalikan array uint8 RGBA (H, W, 4) yang channel keempatnya adalah matte, dan Results.save(path, image=None) menulis cutout sebagai PNG berlatar belakang transparan. Keduanya mengambil RGB dari image jika diberikan, atau memuat ulang dari Results.path.

OCRRegions

Teks terlokalisasi beserta transkrip. data adalah poligon float (N, 4, 2) dalam piksel gambar asli, berurutan kiri atas, kanan atas, kanan bawah, kiri bawah, dan region berada dalam urutan baca, atas ke bawah lalu kiri ke kanan. texts adalah list N transkrip. conf adalah skor pengenalan per region dan det_conf adalah skor deteksi, keduanya berbentuk (N,).

Quad deteksi merupakan poligon sebenarnya, sehingga tidak mengisi Results.boxes. xyxy memberikan hull yang sejajar sumbu.

Embedding

Vektor ternormalisasi L2 dari task embed, selalu berbentuk (N, D). Hasil seluruh gambar memuat satu baris tanpa bounding box; embedding region memiliki baris yang diselaraskan dengan boxes. Karena setiap baris dinormalisasi, cosine similarity merupakan dot product.

AnggotaMengembalikan
dimD
normalizedBaris yang dinormalisasi ulang
similarity(other)Cosine similarity pairwise terhadap Embeddings atau tensor lain
verify(i, j, threshold=0.4)True ketika baris i dan j cocok

Identities

Kecocokan gallery bernama, dengan baris yang diselaraskan terhadap embeddings. Dihasilkan ketika Gallery diberikan kepada prediksi embed. name adalah list dengan entri bernilai None di bawah ambang batas kecocokan, dan nama terdekat yang berada di bawah ambang batas tidak pernah ditebak. score adalah array skor kecocokan dan data memasangkan keduanya.

Meshes

Body mesh manusia parametrik, dengan baris yang diselaraskan terhadap bounding box orang dalam boxes. Semuanya berada dalam frame kamera gambar asli. transl bersifat metrik dalam meter dengan +z menjauhi kamera; vertices dan joints3d bersifat metrik dan sudah menyertakan transl; joints2d berada dalam piksel pada canvas gambar asli, bukan crop yang dilihat jaringan. Tidak ada kolom yang memuat frame dunia atau gravitasi.

Tata letak parameter berbeda antar body model, sehingga tidak ada bentuk yang ditetapkan langsung. body_model menyebut parameterization dan jumlahnya dibaca dari tensor: num_vertices, num_joints, num_betas, dan has_vertices. params mengembalikan dict parameter, sedangkan save_obj(path, index=0) menulis satu mesh. Kolom-nya adalah global_orient, body_pose, betas, transl, vertices, faces, joints3d, joints2d, conf, focal_length, dan extras.

Untuk body_model="mhr", rotasi berupa sudut Euler dalam radian, bukan axis-angle, body_pose merupakan vektor parameter per joint yang flat, bukan satu triplet per joint, dan betas adalah koefisien identity blendshape. Skala skeleton, pose tangan, dan ekspresi wajah berada dalam extras.

Konversi dan pemilihan

Setiap payload memiliki to(*args, **kwargs), cpu(), cuda(), dan numpy(), dan memanggil salah satunya pada Results menerapkannya ke setiap slot yang terisi sekaligus.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLO9t.pt")result = model(SAMPLE_IMAGE) # Setiap payload berpindah bersama-sama.result = result.cpu().numpy() # Baris sebagai dict biasa, lalu sebagai JSON.print(result.summary()[:1])print(result.to_json())

result[idx] memilih baris lintas payload yang selaras baris. len(result) adalah jumlah deteksi, atau jumlah titik jika tidak ada bounding box. result.update(...) mengembalikan salinan dengan slot bernama diganti; metode ini menerima setiap slot ditambah track_id dan restore_scale.

summary dan to_json

summary(normalize=False, decimals=5, embeddings=False) mengembalikan list dict biasa, satu baris per deteksi, segmen, titik, atau region bergantung pada slot yang ditetapkan. to_json(**kwargs) meneruskan argumennya ke summary dan mengembalikan string JSON.

plot() merender payload setiap task. Overlay gambar memakai array BGR secara default; pil=True meminta PIL. Peta kedalaman, normal, edge, dan albedo, kuboid 3D, serta potongan aksi mengembalikan gambar PIL secara default; pil=False mengembalikan array-nya.

Boxes3D

Boxes3D(data, orig_shape=None, intrinsics=None) menyimpan baris (N, 14): pusat xyz, dimensi wlh, quaternion wxyz, skor peringkat, ID kelas, skor keyakinan 2D, dan skor keyakinan 3D. Koordinat memakai meter dalam kerangka kamera, dengan x ke kanan, y ke bawah, dan z ke depan; tidak menyiratkan kerangka dunia. Intrinsik 3x3 merujuk ke kanvas asli. Baris sejajar dengan Results.boxes.

AlbedoMap

AlbedoMap(data, orig_shape=None) menyimpan RGB linear. Konversi tampilan menghasilkan sRGB; validasi albedo kuantitatif memakai nilai linear asli.

Actions

Actions(data, orig_shape=None, names=None, fps=None, instruction=None) merepresentasikan potongan aksi float32 (T, D). first mengembalikan baris pertama; slicing memilih timestep. Nilai tetap dalam satuan dataset policy. names menjelaskan dimensi aksi, fps laju kontrol, dan instruction teks pengondisi.

GeneratedImage

GeneratedImage(data, orig_shape=None, *, prompt=None, seed=None, params=None) menyimpan satu gambar sintetis, (H, W, 3) uint8 RGB. array mengembalikan view numpy dan image mengembalikan PIL.Image. prompt adalah teks yang menghasilkan gambar dan seed adalah bilangan bulat yang mereproduksinya dengan model dan pengaturan yang sama; params mencatat sisa pemanggilan: model, imgsz, dan setiap pengaturan family yang berlaku. save(path) menulis gambar, dan PNG juga menyimpan to_dict(), yaitu shape, prompt, seed, dan params, sebagai JSON dalam chunk teks libreyolo.

Pada hasil generasi, Results.boxes dan Results.path bernilai None, orig_shape adalah (H, W) milik gambar itu sendiri, dan len(result) bernilai 1. Results.save(path) menulis gambar, plot() mengembalikannya sebagai gambar PIL, dan summary() mengembalikan satu baris berisi catatan payload.

Gaussians

Gaussians(xyz, scales, rotations, opacities, sh, *, camera=None, seed=None, params=None, input_image=None) menyimpan satu objek 3D hasil generasi sebagai splat Gaussian, dalam kerangka objek itu sendiri: z ke atas, berpusat di kubus [-0.5, 0.5]^3. Setiap baris adalah satu Gaussian.

AnggotaMengembalikan
xyz(N, 3) posisi dalam kerangka objek
scales(N, 3) simpangan baku sepanjang sumbu lokal, linear, bukan log
rotations(N, 4) quaternion satuan (w, x, y, z), sumbu lokal ke kerangka objek
opacities(N,) dalam [0, 1]
sh(N, K, 3) koefisien warna spherical-harmonic, derajat 0 lebih dulu
colors(N, 3) RGB dalam [0, 1], dari suku derajat 0
cameraTampilan input yang diinferensikan: yaw dan pitch dalam radian, radius dalam satuan objek, fov vertikal dalam derajat, dan margin crop
seed, paramsSeed dan pengaturan pemanggilan yang mereproduksi objek
input_imageGambar RGB yang dilihat model setelah preprocessing-nya sendiri

len(gaussians) adalah N, dan gaussians[gaussians.opacities > 0.1] mengembalikan Gaussians baru berisi baris yang dipilih. save(path) menulis menurut ekstensi. .ply adalah tata letak 3D Gaussian Splatting standar, dengan skala log dan opacity logit, diputar y-up seperti yang diharapkan viewer splat, dan satu baris header comment libreyolo berisi seed, kamera, dan params sebagai JSON. Payload dengan warna orde lebih tinggi (K > 1) memunculkan NotImplementedError untuk .ply. .splat adalah format web ringkas, 32 byte per Gaussian. render(size=512, background=(0, 0, 0)) mengembalikan render titik dari tampilan input yang diinferensikan sebagai PIL.Image, tinjauan cepat, bukan rasterisasi Gaussian.

Pada hasil 3D hasil generasi, Results.boxes bernilai None; path, orig_shape, dan orig_img menjelaskan gambar sumber, dan len(result) bernilai 1. Results.save(path) menulis objek, plot() mengembalikan render titik itu, dan summary() mengembalikan satu baris berisi catatan payload.

Nama slot, bentuk, properti, dan nilai default dibaca dari libreyolo/utils/results.py pada v1.6.0. Maknanya dikutip dari docstring kelas payload.