Udhëzues detyrash për zbulimin e objekteve

Një mace dhe një qen që janë të theksuara me kuti kufizuese që janë etiketuar saktë

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.

Provojeni!

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:

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:
  • Imazhe të palëvizshme
  • Korniza video të deshifruara
  • Furnizimi me video drejtpërdrejt
Object Detector API nxjerr rezultatet e mëposhtme për objektet e zbuluara:
  • Kategoria e objektit
  • Rezultati i probabilitetit
  • Koordinatat e kutisë kufizuese

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 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