Detyra MediaPipe Image Embedder ju lejon të konvertoni të dhënat e imazhit në një përfaqësim numerik për të kryer detyra të përpunimit të imazhit që lidhen me ML, siç është krahasimi i ngjashmërisë së dy imazheve. Këto udhëzime ju tregojnë se si të përdorni Image Embedder për aplikacionet Node dhe web.
Për më shumë informacion rreth aftësive, modeleve dhe opsioneve të konfigurimit të kësaj detyre, shihni Përmbledhjen .
Shembull kodi
Kodi shembull për Image Embedder ofron një implementim të plotë të kësaj detyre në JavaScript për referencën tuaj. Ky kod ju ndihmon ta testoni këtë detyrë dhe të filloni ndërtimin e aplikacionit tuaj të integrimit të imazheve. Mund ta shikoni, ekzekutoni dhe modifikoni shembullin e Image Embedder 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 posaçërisht për të përdorur Image Embedder. Për informacion të përgjithshëm mbi konfigurimin e mjedisit tuaj të zhvillimit për përdorimin e detyrave MediaPipe, duke përfshirë kërkesat e versionit të platformës, shihni udhëzuesin e konfigurimit për Web .
Paketat JavaScript
Kodi i Imazhe Embedder është i disponueshëm përmes paketës MediaPipe @mediapipe/tasks-vision NPM . Mund t'i gjeni dhe shkarkoni këto biblioteka nga lidhjet e dhëna në udhëzuesin e Konfigurimit të platformës.
Mund të instaloni paketat e kërkuara me kodin e mëposhtëm për konfigurimin lokal duke përdorur komandën e mëposhtme:
npm install @mediapipe/tasks-vision
Nëse doni të importoni kodin e detyrës nëpërmjet një shërbimi të rrjetit të ofrimit të përmbajtjes (CDN), shtoni kodin e mëposhtëm në
etiketë në skedarin tuaj HTML:<!-- You can replace jsDelivr with your preferred CDN -->
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision/vision_bundle.mjs"
crossorigin="anonymous"></script>
</head>
Model
Detyra MediaPipe Image Embedder kërkon një model të trajnuar që është i pajtueshëm me këtë detyrë. Për më shumë informacion mbi modelet e trajnuara të disponueshme për Image Embedder, shihni seksionin Modelet e përmbledhjes së detyrës.
Zgjidhni dhe shkarkoni një model dhe më pas ruajeni atë brenda direktorisë së projektit tuaj:
<dev-project-root>/app/shared/models/
Krijo detyrën
Specifikoni një rrugë modeli
Mund të krijoni një detyrë me opsionet fillestare duke përdorur metodën createFromModelPath() :
const vision = await FilesetResolver.forVisionTasks(
// path/to/wasm/root
"https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@latest/wasm"
);
const imageEmbedder = await ImageEmbedder.createFromOptions(vision, {
baseOptions: {
modelAssetPath: `https://storage.googleapis.com/mediapipe-models/image_embedder/mobilenet_v3_small/float32/1/mobilenet_v3_small.tflite`
},
});
Specifikoni bufferin e modelit
Nëse modeli juaj është ngarkuar tashmë në memorie, mund të përdorni metodën createFromModelBuffer() :
const vision = await FilesetResolver.forVisionTasks(
// path/to/wasm/root
"https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@latest/wasm"
);
const imageEmbedder = ImageEmbedder.createFromModelBuffer(
vision,
new Uint8Array(...)
);
Specifikoni opsionet e personalizuara
Detyra MediaPipe Image Embedder përdor funksionin createFromOptions për të konfiguruar detyrën. Funksioni createFromOptions pranon vlera për 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ërtohet dhe konfigurohet detyra me opsione të personalizuara:
const vision = await FilesetResolver.forVisionTasks(
// path/to/wasm/root
"https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@latest/wasm"
);
const imageEmbedder = await ImageEmbedder.createFromOptions(
vision,
{
baseOptions: {
modelAssetPath: "model.tflite"
},
quantize: true
});
Opsionet e konfigurimit
Kjo detyrë ka opsionet e mëposhtme të konfigurimit për aplikacionet Web:
| Emri i opsionit | Përshkrimi | Diapazoni i Vlerave | Vlera e parazgjedhur |
|---|---|---|---|
running_mode | Cakton modalitetin e ekzekutimit për detyrën. Ekzistojnë dy mënyra: IMAZH: Modaliteti për futjen e një imazhi të vetëm. VIDEO: Modaliteti për kuadrot e dekoduara të një videoje ose në një transmetim të drejtpërdrejtë të të dhënave hyrëse, si p.sh. nga një kamera. | { IMAGE, VIDEO } | IMAGE |
l2Normalize | Nëse duhet të normalizohet vektori i karakteristikave të kthyera me normën L2. Përdoreni këtë opsion vetëm nëse modeli nuk përmban tashmë një L2_NORMALIZATION TFLite Op. Në shumicën e rasteve, ky është tashmë rasti dhe normalizimi L2 arrihet kështu përmes inferencës TFLite pa pasur nevojë për këtë opsion. | Boolean | False |
quantize | Nëse ngulitja e kthyer duhet të kuantizohet në bajt nëpërmjet kuantizimit skalar. Ngulitja supozohet në mënyrë implicite të jetë normë njësie dhe për këtë arsye çdo dimension është i garantuar të ketë një vlerë në [-1.0, 1.0]. Përdorni opsionin l2Normalize nëse nuk është ky rasti. | Boolean | False |
Përgatitni të dhënat
Imazh Embedder mund të ngulë imazhe në çdo format të mbështetur nga shfletuesi pritës. Detyra gjithashtu trajton përpunimin paraprak të të dhënave të futura, duke përfshirë ndryshimin e madhësisë, rrotullimin dhe normalizimin e vlerave.
Thirrjet në metodat Image Embedder embed() dhe embedForVideo() ekzekutohen në mënyrë sinkrone dhe bllokojnë fijen e ndërfaqes së përdoruesit. Nëse doni të nxirrni vektorë karakteristikash nga kornizat e videos, çdo ngulitje do të bllokojë fijen kryesore. Mund ta parandaloni këtë duke zbatuar punëtorët e uebit për të ekzekutuar metodat embed() dhe embedForVideo() në një fije tjetër.
Ekzekuto detyrën
Imazh Embedder përdor metodat embed() (me modalitetin ekzekutues image ) dhe embedForVideo() (me modalitetin ekzekutues video ) për të shkaktuar përfundime. Imazh Embedder API do të kthejë vektorët e integrimit për imazhin hyrës.
Kodi i mëposhtëm tregon se si ekzekutohet përpunimi me modelin e detyrës:
Imazh
const image = document.getElementById("image") as HTMLImageElement; const imageEmbedderResult = imageEmbedder.embed(image);
Video
const video = document.getElementById("webcam"); const startTimeMs = performance.now(); const embedderResult = await imageEmbedder.embedForVideo(video, startTimeMs);
Trajtoni dhe shfaqni rezultatet
Pas ekzekutimit të inferencës, detyra Image Embedder kthen një objekt ImageEmbedderResult i cili përmban vektorët e ngulitjes për imazhin ose kornizën e hyrjes.
Më poshtë tregohet një shembull i të dhënave të daljes nga kjo detyrë:
ImageEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.0, 0.0, ..., 0.0, 1.0, 0.0, 0.0, 2.0}
head_index: 0
Ky rezultat u mor duke futur imazhin e mëposhtëm:

Mund të krahasoni ngjashmërinë semantike të dy ngulitjeve duke përdorur funksionin ImageEmbedder.cosineSimilarity . Shihni kodin e mëposhtëm për një shembull.
// Compute cosine similarity.
const similarity = ImageEmbedder.cosineSimilarity(
imageEmbedderResult.embeddings[0],
otherEmbedderResult.embeddings[0]);
Kodi shembullor i Image Embedder tregon se si të shfaqen rezultatet e embedderê të kthyera nga detyra, shihni shembullin për detaje.