Detyra MediaPipe Object Detector ju lejon të zbuloni praninë dhe vendndodhjen e klasave të shumta të objekteve brenda imazheve ose videove. Për shembull, një detektor objekti mund të gjejë qentë në një imazh. Kjo detyrë funksionon në të dhënat e imazhit me një model të mësimit të makinës (ML), duke pranuar të dhëna statike ose një transmetim të vazhdueshëm video si hyrje dhe nxjerr një listë të rezultateve të zbulimit. Çdo rezultat zbulimi përfaqëson një objekt që shfaqet brenda imazhit ose videos.
Filloni
Filloni ta përdorni këtë detyrë duke ndjekur një nga këto udhëzues zbatimi për platformën në të cilën po punoni:
- Android - Shembull kodi - Udhëzues
- Python - Shembull Kodi - Udhëzues
- Web - Shembull Kodi - Udhëzues
- iOS - Shembull kodi - Udhëzues
Këta udhëzues specifikë të platformës ju përcjellin një zbatim bazë të kësaj detyre, duke përfshirë një model të rekomanduar dhe shembull kodi me opsionet e rekomanduara të konfigurimit.
Detajet e detyrës
Ky seksion përshkruan aftësitë, hyrjet dhe rezultatet e kësaj detyre.
Veçoritë
- Përpunimi i imazhit në hyrje - Përpunimi përfshin rrotullimin e imazhit, ndryshimin e madhësisë, normalizimin dhe konvertimin e hapësirës së ngjyrave.
- Vendndodhja e hartës së etiketës - Vendos gjuhën e përdorur për emrat e shfaqur
- Pragu i rezultatit - Filtro rezultatet bazuar në rezultatet e parashikimit.
- Zbulimi Top-k - Filtro rezultatet e zbulimit të numrave.
- Emërtoni listën e lejeve dhe listën e refuzimit - Specifikoni kategoritë e zbuluara.
Hyrjet e detyrave | Rezultatet e detyrave |
---|---|
Object Detector API pranon një hyrje të një prej llojeve të mëposhtme të të dhënave:
| Object Detector API nxjerr rezultatet e mëposhtme për objektet e zbuluara:
|
Opsionet e konfigurimeve
Kjo detyrë ka opsionet e mëposhtme të konfigurimit:
Emri i opsionit | Përshkrimi | Gama e vlerave | Vlera e paracaktuar |
---|---|---|---|
running_mode | Vendos modalitetin e ekzekutimit për detyrën. Ekzistojnë tre mënyra: IMAGE: Modaliteti për hyrjet e një imazhi të vetëm. VIDEO: Modaliteti për kornizat e dekoduara të një videoje. LIVE_STREAM: Modaliteti për një transmetim të drejtpërdrejtë të të dhënave hyrëse, si p.sh. nga një aparat fotografik. Në këtë modalitet, resultListener duhet të thirret për të vendosur një dëgjues për të marrë rezultatet në mënyrë asinkrone. | { IMAGE, VIDEO, LIVE_STREAM } | IMAGE |
display_names | Vendos gjuhën e etiketave për t'u përdorur për emrat e shfaqur të dhëna në meta të dhënat e modelit të detyrës, nëse disponohet. Parazgjedhja është en për anglisht. Ju mund të shtoni etiketa të lokalizuara në meta të dhënat e një modeli të personalizuar duke përdorur API-në e shkrimtarit metadata TensorFlow Lite | Kodi lokal | sq |
max_results | Vendos numrin maksimal opsional të rezultateve të zbulimit me pikët më të larta për t'u kthyer. | Çdo numër pozitiv | -1 (të gjitha rezultatet kthehen) |
score_threshold | Vendos pragun e rezultatit të parashikimit që tejkalon atë të dhënë në meta të dhënat e modelit (nëse ka). Rezultatet nën këtë vlerë refuzohen. | Çdo noton | Nuk është vendosur |
category_allowlist | Vendos listën opsionale të emrave të kategorive të lejuara. Nëse nuk janë bosh, rezultatet e zbulimit, emri i kategorisë së të cilave nuk është në këtë grup do të filtrohen. Emrat e kopjuar ose të panjohur të kategorive shpërfillen. Ky opsion është reciprokisht ekskluziv me category_denylist dhe duke përdorur të dyja rezultatet në një gabim. | Çdo varg | Nuk është vendosur |
category_denylist | Vendos listën opsionale të emrave të kategorive që nuk lejohen. Nëse nuk janë bosh, rezultatet e zbulimit, emri i kategorisë së të cilave është në këtë grup do të filtrohen. Emrat e kopjuar ose të panjohur të kategorive shpërfillen. Ky opsion është reciprokisht ekskluziv me category_allowlist dhe duke përdorur të dyja rezultatet në një gabim. | Çdo varg | Nuk është vendosur |
Modelet
Object Detector API kërkon që një model i zbulimit të objektit të shkarkohet dhe të ruhet në direktorinë e projektit tuaj. Nëse nuk keni tashmë një model, filloni me modelin e paracaktuar, të rekomanduar. Modelet e tjera të paraqitura në këtë seksion bëjnë shkëmbime ndërmjet vonesës dhe saktësisë.
Modeli EfficientDet-Lite0 (rekomandohet)
Modeli EfficientDet-Lite0 përdor një shtyllë EfficientNet-Lite0 me një madhësi hyrëse 320x320 dhe rrjet të veçorive BiFPN. Modeli u trajnua me grupin e të dhënave COCO , një grup të dhënash për zbulimin e objekteve në shkallë të gjerë që përmban 1.5 milionë shembuj objektesh dhe 80 etiketa objektesh. Shikoni listën e plotë të etiketave të mbështetura. EfficientDet-Lite0 është i disponueshëm si int8, float16 ose float32. Ky model rekomandohet sepse vendos një ekuilibër midis vonesës dhe saktësisë. Është i saktë dhe mjaftueshëm i lehtë për shumë raste përdorimi.
Emri i modelit | Forma e hyrjes | Lloji i kuantizimit | Versionet |
---|---|---|---|
EfficientDet-Lite0 (int8) | 320 x 320 | int8 | E fundit |
EfficientDet-Lite0 (float 16) | 320 x 320 | noton 16 | E fundit |
EfficientDet-Lite0 (float 32) | 320 x 320 | Asnjë (float32) | E fundit |
Modeli EfficientDet-Lite2
Modeli EfficientDet-Lite2 përdor një shtyllë EfficientNet-Lite2 me një madhësi hyrëse 448x448 dhe rrjet të veçorive BiFPN. Modeli u trajnua me grupin e të dhënave COCO , një grup të dhënash për zbulimin e objekteve në shkallë të gjerë që përmban 1.5 milionë shembuj objektesh dhe 80 etiketa objektesh. Shikoni listën e plotë të etiketave të mbështetura. EfficientDet-Lite2 është i disponueshëm si një model int8, float16 ose float32. Ky model në përgjithësi është më i saktë se EfficientDet-Lite0, por është gjithashtu më i ngadalshëm dhe më intensiv me memorie. Ky model është i përshtatshëm për rastet e përdorimit ku saktësia është një përparësi më e madhe ndaj shpejtësisë dhe madhësisë.
Emri i modelit | Forma e hyrjes | Lloji i kuantizimit | Versionet |
---|---|---|---|
EfficientDet-Lite2 (int8) | 448 x 448 | int8 | E fundit |
EfficientDet-Lite2 (float 16) | 448 x 448 | noton 16 | E fundit |
EfficientDet-Lite2 (float 32) | 448 x 448 | Asnjë (float32) | E fundit |
Modeli SSD MobileNetV2
Modeli SSD MobileNetV2 përdor një shtyllë MobileNetV2 me një madhësi hyrëse 256x256 dhe rrjet të veçorive SSD. Modeli u trajnua me grupin e të dhënave COCO , një grup të dhënash për zbulimin e objekteve në shkallë të gjerë që përmban 1.5 milionë shembuj objektesh dhe 80 etiketa objektesh. Shikoni listën e plotë të etiketave të mbështetura. SSD MobileNetV2 është i disponueshëm si një model int8 dhe float 32. Ky model është më i shpejtë dhe më i lehtë se EfficientDet-Lite0, por në përgjithësi është gjithashtu më pak i saktë. Ky model është i përshtatshëm për rastet e përdorimit që kërkojnë një model të shpejtë dhe të lehtë që sakrifikon njëfarë saktësie.
Emri i modelit | Forma e hyrjes | Lloji i kuantizimit | Versionet |
---|---|---|---|
SSDMobileNet-V2 (int8) | 256 x 256 | int8 | E fundit |
SSDMobileNet-V2 (float 32) | 256 x 256 | Asnjë (float32) | E fundit |
Kërkesat e modelit dhe meta të dhënat
Ky seksion përshkruan kërkesat për modelet e personalizuara nëse vendosni të ndërtoni një model për ta përdorur me këtë detyrë. Modelet e personalizuara duhet të jenë në formatin TensorFlow Lite dhe duhet të përfshijnë meta të dhëna që përshkruajnë parametrat e funksionimit të modelit.
Kërkesat e projektimit
Input | Forma | Përshkrimi |
---|---|---|
Imazh i futur | Tensor i formës Float32[1, lartësia, gjerësia, 3] | Imazhi i hyrjes së normalizuar. |
Prodhimi | Forma | Përshkrimi |
---|---|---|
detection_boxes | Tensor i formës Float32 [1, kutitë_numri, 4] | Vendndodhja e kutisë së çdo objekti të zbuluar. |
detection_classes | Tensor i formës Float32 [1, kutitë_numri] | Indekset e emrave të klasave për çdo objekt të zbuluar. |
detection_scores | tensori i formës float32 [1, kutitë_numri] | Rezultatet e parashikimit për çdo objekt të zbuluar. |
num_boxes | Tensor Float32 me madhësi 1 | Numri i kutive të zbuluara. |
Kërkesat për metadata
Parametri | Përshkrimi | Përshkrimi |
---|---|---|
input_norm_mean | Vlera mesatare e përdorur në normalizimin e tensorit të hyrjes. | Imazhi i hyrjes së normalizuar. |
input_norm_std | Norma e fushës e përdorur në normalizimin e tensorit të hyrjes. | Vendndodhja e kutisë së çdo objekti të zbuluar. |
label_file_paths | Shtigjet drejt skedarëve të etiketës tensor të kategorisë. Nëse modeli nuk ka skedarë etiketash, kaloni një listë boshe. | Indekset e emrave të klasave për çdo objekt të zbuluar. |
score_calibration_md | Informacion mbi funksionimin e kalibrimit të pikëve në tensorin e klasifikimit. Ky parametër nuk kërkohet nëse modeli nuk përdor pikë kalibrimi. | Rezultatet e parashikimit për çdo objekt të zbuluar. |
num_boxes | Tensor Float32 me madhësi 1 | Numri i kutive të zbuluara. |
Standardet e detyrave
Këtu janë standardet e detyrave për modelet e mësipërme të para-trajnuara. Rezultati i vonesës është vonesa mesatare në Pixel 6 duke përdorur CPU / GPU.
Emri i modelit | Vonesa e CPU-së | Vonesa e GPU-së |
---|---|---|
Modeli EfficientDet-Lite0 float32 | 61.30 ms | 27.83 ms |
Modeli EfficientDet-Lite0 float16 | 53,97 ms | 27,97 ms |
Modeli EfficientDet-Lite0 int8 | 29.31 ms | - |
Modeli EfficientDet-Lite2 float32 | 197,98 ms | 41.15 ms |
Modeli EfficientDet-Lite2 float16 | 198.77 ms | 47.31 ms |
Modeli EfficientDet-Lite2 int8 | 70.91 ms | - |
Modeli SSD MobileNetV2 float32 | 36.30 ms | 24.01 ms |
Modeli SSD MobileNetV2 float16 | 37.35 ms | 28.16 ms |