cvflair 0.13.0
Yüz tespiti yolu açıldı. Çizim tarafı zaten çalışıyordu; sürtünme, yüz
modellerinin kutuyu farklı bir biçimde vermesindeydi.
pip install -U cvflairKutu biçimi
cvflair xyxy okur; yüz ve cascade modellerinin çoğu bir köşe ve bir boyut
verir. from_xywh dönüşümü üstlenir:
faces = cascade.detectMultiScale(gray) # OpenCV: (x, y, w, h)
detections = Detections.from_xywh(faces)Model 0-1 aralığında veriyorsa kare boyutu da geçilir:
Detections.from_xywh(kutular, *frame.shape[1::-1]).
MediaPipe'ın yüz ve nesne tespiti için ayrı bir okuyucu var; iki API sürümünü de
tanır (eski solutions oranlı kutu verir, yeni tasks piksel):
detections = Detections.from_mediapipe(sonuc, *frame.shape[1::-1])| Model | Çıktısı | Yol |
|---|---|---|
| YOLO / Ultralytics | xyxy | Detections.from_ultralytics(...) |
| InsightFace | face.bbox xyxy |
Doğrudan Detections(...) |
| OpenCV cascade | (x, y, w, h) |
Detections.from_xywh(...) |
| MediaPipe | oranlı ya da piksel kutu | Detections.from_mediapipe(...) |
Hiçbiri kurulu olmak zorunda değil: alanlar adlarıyla okunur, cvflair bu
kütüphaneleri import etmez.
FACE_5
Yüz modellerinin ortak beş noktası — iki göz, burun, iki ağız köşesi.
InsightFace'in kps alanı, RetinaFace ve MediaPipe aynı sırayı kullanır.
from cvflair import FACE_5, KeyPoints
points = KeyPoints(xy=[face.kps for face in faces])
cam.show(frame, detections, keypoints=points, skeleton=FACE_5)skeleton="face" de aynı topolojiyi verir. Gözler arasına çizgi çekilmez: yüzü
ortadan bölüp işareti okunmaz hale getiriyor. Kalabalıkta 20 piksele inen
yüzlerde de çizildiği sınandı.
Playground
İskelet önizlemesine yüz eklendi ve üç çizimin de altına silüet kondu; kutu
kipinde çizim bir figürün üstünde duruyor, iskelet kipinde çizgiler boşluktaydı.
Çizimlerin kendisi değişmedi.
Tüm değişiklikler:
CHANGELOG
