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. Këto udhëzime ju tregojnë se si të përdorni Klasifikuesin e Imazheve për aplikacionet Node dhe ueb.
Ju mund ta shihni këtë detyrë në veprim duke parë demonstrimin . Për më shumë informacion rreth aftësive, modeleve dhe opsioneve të konfigurimit të kësaj detyre, shihni Përmbledhjen .
Shembull kodi
Shembulli i kodit për Klasifikuesin e Imazheve ofron një zbatim të plotë të kësaj detyre në JavaScript për referencën tuaj. Ky kod ju ndihmon të testoni këtë detyrë dhe të filloni ndërtimin e aplikacionit tuaj të klasifikimit të imazheve. Mund të shikoni, ekzekutoni dhe modifikoni kodin e shembullit të Klasifikimit të Imazheve duke përdorur vetëm shfletuesin tuaj të internetit.
Konfigurimi
Ky seksion përshkruan hapat kryesorë për konfigurimin e mjedisit tuaj të zhvillimit dhe projekteve të kodit në mënyrë specifike për të përdorur Klasifikuesin e Imazheve. Për informacion të përgjithshëm mbi konfigurimin e mjedisit tuaj të zhvillimit për përdorimin e detyrave të MediaPipe, duke përfshirë kërkesat e versionit të platformës, shihni udhëzuesin e konfigurimit për Ueb .
Paketat JavaScript
 Kodi i Klasifikuesit të Imazheve është i disponueshëm përmes paketës MediaPipe @mediapipe/tasks-vision NPM . Ju mund t'i gjeni dhe shkarkoni këto biblioteka nga lidhjet e dhëna në udhëzuesin e konfigurimit të platformës.
Ju mund të instaloni paketat e kërkuara me kodin e mëposhtëm për vendosjen lokale duke përdorur komandën e mëposhtme:
npm install @mediapipe/tasks-vision
Nëse dëshironi të importoni kodin e detyrës nëpërmjet një shërbimi të rrjetit të shpërndarjes së përmbajtjes (CDN), shtoni kodin e mëposhtëm në
etiketa në skedarin tuaj HTML:<!-- You can replace JSDeliver with another CDN if you prefer to -->
<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision/vision_bundle.js"
    crossorigin="anonymous"></script>
</head>
Model
Detyra MediaPipe Image Classifier kërkon një model të trajnuar që është në përputhje me këtë detyrë. Për më shumë informacion mbi modelet e trajnuara të disponueshme për Klasifikuesin e Imazheve, shihni seksionin Modelet e përmbledhjes së detyrave.
Zgjidhni dhe shkarkoni një model dhe më pas ruajeni në direktorinë e projektit tuaj:
<dev-project-root>/app/shared/models/
Krijo detyrën
 Përdorni një nga funksionet e Klasifikuesit të Imazhit createFrom...() për të përgatitur detyrën për ekzekutimin e konkluzioneve. Përdorni funksionin createFromModelPath() me një shteg relative ose absolute drejt skedarit të modelit të trajnuar. Nëse modeli juaj tashmë është i ngarkuar në memorie, mund të përdorni metodën createFromModelBuffer() .
 Shembulli i kodit më poshtë tregon përdorimin e funksionit createFromOptions() për të vendosur detyrën. Funksioni createFromOptions ju lejon të personalizoni Klasifikuesin e Imazheve me opsionet e konfigurimit. Për më shumë informacion mbi opsionet e konfigurimit, shihni Opsionet e konfigurimit .
Kodi i mëposhtëm tregon se si të ndërtoni dhe konfiguroni detyrën me opsione të personalizuara:
async function createImageClassifier {
  const vision = await FilesetResolver.forVisionTasks(
    "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.0/wasm"
  );
  imageClassifier = await ImageClassifier.createFromOptions(vision, {
    baseOptions: {
      modelAssetPath: `https://storage.googleapis.com/mediapipe-models/image_classifier/efficientnet_lite0/float32/1/efficientnet_lite0.tflite`
    },
  });
}
Opsionet e konfigurimit
Kjo detyrë ka opsionet e mëposhtme të konfigurimit për aplikacionet në ueb:
| Emri i opsionit | Përshkrimi | Gama e vlerave | Vlera e paracaktuar | 
|---|---|---|---|
 runningMode |  Vendos modalitetin e ekzekutimit për detyrën. Ka dy mënyra: IMAGE: Modaliteti për hyrjet e një imazhi të vetëm. VIDEO: Modaliteti për kornizat e deshifruara të një videoje ose në një transmetim të drejtpërdrejtë të të dhënave hyrëse, si p.sh. nga një aparat fotografik.  |  { IMAGE, VIDEO } |  IMAGE | 
 displayNamesLocale |  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 | 
 maxResults | 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 | 
 scoreThreshold | 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 | 
 categoryAllowlist |  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 categoryDenylist dhe duke përdorur të dyja rezulton në një gabim. | Çdo varg | Nuk është vendosur | 
 categoryDenylist |  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 categoryAllowlist dhe duke përdorur të dyja rezultatet në një gabim. | Çdo varg | Nuk është vendosur | 
 resultListener |  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 | 
Përgatitni të dhënat
Klasifikuesi i imazheve mund të klasifikojë objektet në imazhe në çdo format të mbështetur nga shfletuesi pritës. Detyra trajton gjithashtu parapërpunimin e hyrjes së të dhënave, duke përfshirë ndryshimin e madhësisë, rrotullimin dhe normalizimin e vlerës.
 Thirrjet në metodat e klasifikimit të imazhit classify() dhe classifyForVideo() ekzekutohen në mënyrë sinkronike dhe bllokojnë lidhjen e ndërfaqes së përdoruesit. Nëse klasifikoni objekte në korniza video nga kamera e një pajisjeje, çdo klasifikim do të bllokojë fillin kryesor. Ju mund ta parandaloni këtë duke zbatuar punëtorët e uebit për të ekzekutuar classify() dhe classifyForVideo() në një thread tjetër.
Drejtoni detyrën
 Klasifikuesi i imazhit përdor metodën classify() me modalitetin e imazhit dhe metodën classifyForVideo() me modalitetin video për të nxjerrë konkluzione. API-ja e klasifikuesit të imazhit do të kthejë kategoritë e mundshme për objektet brenda imazhit të hyrjes.
Kodi i mëposhtëm tregon se si kryhet përpunimi me modelin e detyrës:
Imazhi
const image = document.getElementById("image") as HTMLImageElement; const imageClassifierResult = imageClassifier.classify(image);
Video
const video = document.getElementById("video"); await imageClassifier.setOptions({ runningMode: "VIDEO" }); const timestamp = performance.now(); const classificationResult = await imageClassifier.classifyForVideo( video, timestamp );
Për një zbatim më të plotë të ekzekutimit të një detyre të Klasifikimit të Imazhit, shihni shembullin e kodit ).
Trajtoni dhe shfaqni rezultatet
 Pas ekzekutimit të përfundimit, detyra e Klasifikimit të Imazhit kthen një objekt ImageClassifierResult i cili përmban listën e kategorive të mundshme për objektet brenda imazhit ose kornizës hyrëse.
Më poshtë tregon një shembull të të dhënave dalëse nga kjo detyrë:
ImageClassifierResult:
 Classifications #0 (single classification head):
  head index: 0
  category #0:
   category name: "/m/01bwb9"
   display name: "Passer domesticus"
   score: 0.91406
   index: 671
  category #1:
   category name: "/m/01bwbt"
   display name: "Passer montanus"
   score: 0.00391
   index: 670
Ky rezultat është marrë duke ekzekutuar klasifikuesin e shpendëve në:

Shembulli i kodit të klasifikuesit të imazhit demonstron se si të shfaqen rezultatet e klasifikimit të kthyera nga detyra, shikoni shembullin e kodit për detaje.