Udhëzues detyrash për klasifikimin e imazheve

Një kafshë e etiketuar saktë si flamingo me një vlerësim besimi 95%.

Detyra MediaPipe Image Classifier ju lejon të kryeni klasifikimin e imazheve. Ju mund ta përdorni këtë detyrë për të identifikuar se çfarë përfaqëson një imazh midis një grupi kategorish të përcaktuara në kohën e trajnimit. Kjo detyrë funksionon në të dhënat e imazhit me një model të mësimit të makinerive (ML) si të dhëna statike ose një transmetim të vazhdueshëm dhe nxjerr një listë të kategorive të mundshme të renditura sipas rezultatit zbritës të probabilitetit.

Provojeni!

Filloni

Filloni ta përdorni këtë detyrë duke ndjekur një nga këto udhëzues zbatimi për platformën tuaj të synuar. Këta udhëzues specifikë të platformës ju përcjellin një zbatim bazë të kësaj detyre, duke përdorur një model të rekomanduar dhe ofrojnë shembuj kodesh me opsionet e rekomanduara të konfigurimit:

Detajet e detyrës

Ky seksion përshkruan aftësitë, hyrjet, daljet dhe opsionet e konfigurimit të 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.
  • Rajoni i interesit - Kryeni klasifikimin në një rajon të imazhit në vend të imazhit të plotë.
  • 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.
  • Klasifikimi Top-k - Kufizoni numrin e rezultateve të klasifikimit.
  • Emërtoni listën e lejeve dhe refuzoni - Specifikoni kategoritë e klasifikuara.
Inputet e detyrave Rezultatet e detyrave
Hyrja mund të jetë një nga llojet e mëposhtme të të dhënave:
  • Imazhe të palëvizshme
  • Korniza video të deshifruara
  • Furnizimi i drejtpërdrejtë i videos
Klasifikuesi i imazheve nxjerr një listë kategorish që përmbajnë:
  • Indeksi i kategorisë: indeksi i kategorisë në rezultatet e modelit
  • Rezultati: rezultati i besimit për këtë kategori, zakonisht një probabilitet në [0,1]
  • Emri i kategorisë (opsionale): emri i kategorisë siç specifikohet në Metadatat e Modelit TFLite, nëse disponohet
  • Emri i shfaqur i kategorisë (opsionale): një emër i shfaqur për kategorinë siç specifikohet në Metadatat e Modelit TFLite, në gjuhën e specifikuar përmes opsioneve të vendndodhjes së emrave të shfaqur, nëse disponohet

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_locale 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ë klasifikimit me pikët më të mira për t'u kthyer. Nëse < 0, të gjitha rezultatet e disponueshme do të kthehen. Çdo numër pozitiv -1
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 klasifikimit 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 klasifikimit 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
result_callback Vendos dëgjuesin e rezultateve që të marrë rezultatet e klasifikimit në mënyrë asinkrone kur Klasifikuesi i imazhit është në modalitetin e transmetimit të drejtpërdrejtë. Mund të përdoret vetëm kur modaliteti i ekzekutimit është caktuar në LIVE_STREAM N/A Nuk është vendosur

Modelet

Klasifikuesi i imazhit kërkon që një model i klasifikimit të imazheve të shkarkohet dhe të ruhet në drejtorinë e projektit tuaj. Filloni me modelin e paracaktuar, të rekomanduar për platformën tuaj të synuar kur të filloni të zhvilloni këtë detyrë. Modelet e tjera të disponueshme zakonisht bëjnë shkëmbime ndërmjet performancës, saktësisë, rezolucionit dhe kërkesave për burime, dhe në disa raste, përfshijnë veçori shtesë.

Modeli EfficientNet-Lite0 përdor një arkitekturë EfficientNet dhe është trajnuar duke përdorur ImageNet për të njohur 1000 klasa, të tilla si pemë, kafshë, ushqime, automjete, persona etj. Shikoni listën e plotë të etiketave të mbështetura. EfficientNet-Lite0 është në dispozicion si një model int8 dhe float 32. 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
EfficientNet-Lite0 (int8) 224 x 224 int8 E fundit
EfficientNet-Lite0 (float 32) 224 x 224 Asnjë (float32) E fundit

Modeli EfficientNet-Lite2

Modeli EfficientNet-Lite2 përdor një arkitekturë EfficientNet dhe është trajnuar duke përdorur ImageNet për të njohur 1000 klasa, të tilla si pemë, kafshë, ushqime, automjete, persona etj. Shikoni listën e plotë të etiketave të mbështetura. EfficientNet-Lite2 është në dispozicion si një model int8 dhe float 32. Ky model është përgjithësisht më i saktë se EfficientNet-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 lartë se shpejtësia ose madhësia.

Emri i modelit Forma e hyrjes Lloji i kuantizimit Versionet
EfficientNet-Lite2 (int8) 224 x 224 int8 E fundit
EfficientNet-Lite2 (float 32) 224 x 224 Asnjë (float32) E fundit

Standardet e detyrave

Këtu janë standardet e detyrave për të gjithë tubacionin bazuar në 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ë
EfficientNet-Lite0 (float 32) 23.52 ms 18.90 ms
EfficientNet-Lite0 (int8) 10.08 ms -
EfficientNet-Lite2 (float 32) 44.17 ms 22.20 ms
EfficientNet-Lite2 (int8) 19.43 ms -

Modele me porosi

Ju mund të përdorni një model të personalizuar ML me këtë detyrë nëse dëshironi të përmirësoni ose ndryshoni aftësitë e modeleve të ofruara. Mund të përdorni Model Maker për të modifikuar modelet ekzistuese ose për të ndërtuar një model duke përdorur mjete si TensorFlow. Modelet e personalizuara të përdorura me MediaPipe duhet të jenë në formatin TensorFlow Lite dhe duhet të përfshijnë meta të dhëna specifike që përshkruajnë parametrat e funksionimit të modelit. Ju duhet të konsideroni përdorimin e Model Maker për të modifikuar modelet e ofruara për këtë detyrë përpara se të ndërtoni tuajin.

Nëse jeni të interesuar të krijoni një klasifikues imazhi të personalizuar duke përdorur grupin tuaj të të dhënave, filloni me tutorialin e personalizimit të klasifikuesit të imazhit .