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.
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:
- Android - Shembull kodi - Udhëzues
- Python - Shembull Kodi - Udhëzues
- Web - Shembull Kodi - Udhëzues
- iOS - Shembull kodi - Udhëzues
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:
| Klasifikuesi i imazheve nxjerr një listë kategorish që përmbajnë:
|
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 (rekomandohet)
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 .