A képek hátterének eltávolítása
Ez a cikk bemutatja, hogyan hívhatja meg az Image Analysis 4.0 API-t egy kép szegmentálásához (az előtér elválasztása a háttértől). Azt is bemutatja, hogyan elemezheti a visszaadott információkat.
Fontos
A háttér eltávolítása csak közvetlen REST API-hívásokon keresztül érhető el. Nem érhető el az SDK-kon keresztül.
Előfeltételek
Ez az útmutató feltételezi, hogy sikeresen követte a rövid útmutatóban említett lépéseket. Ez a következőket jelenti:
- Létrehozott egy Vision-erőforrást, és beszerzett egy kulcsot és egy végpont URL-címet.
- Sikeresen hívást kezdeményezett
curl.exe
a szolgáltatáshoz (vagy másik eszközt használt). Az itt látható példák alapján módosíthatjacurl.exe
a hívást.
A rövid útmutató bemutatja, hogyan nyerhet ki vizualizációs funkciókat egy képből. A fogalmak azonban hasonlóak a háttér eltávolításához. Ezért érdemes a rövid útmutatóval kezdeni, és módosítani.
Fontos
A háttér eltávolítása csak az alábbi Azure-régiókban érhető el: USA keleti régiója, Közép-Franciaország, Közép-Korea, Észak-Európa, Délkelet-Ázsia, Nyugat-Európa, USA nyugati régiója.
Hitelesítés a szolgáltatáson
A Képelemzési szolgáltatáson való hitelesítéshez a Computer Vision-kulcsra és a végpont URL-címére van szükség.
Tipp.
Ne vegye fel közvetlenül a kulcsot a kódba, és soha ne tegye közzé nyilvánosan. Az Azure AI-szolgáltatások biztonsági cikkében további hitelesítési lehetőségeket talál, például az Azure Key Vaultot.
A hitelesítés az Ocp-Apim-Subscription-Key HTTP-kérés fejlécének hozzáadásával és a látáskulcshoz való beállításával történik. A hívás az URL-címre <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview
történik, ahol <endpoint>
az egyedi Computer Vision-végpont URL-címe található. Lásd: Mód kiválasztása szakasz az URL-címhez hozzáadott másik lekérdezési sztringhez.
Jelölje ki az elemezni kívánt képet
Az útmutatóban szereplő kód az URL-cím alapján hivatkozott távoli képeket használja. Érdemes lehet önállóan különböző képeket kipróbálnia a képelemzési funkciók teljes kapacitásának megtekintéséhez.
Távoli rendszerkép elemzésekor a rendszerkép URL-címét úgy adhatja meg, hogy a kérelem törzsét a következőképpen formázzuk: {"url":"https://learn.microsoft.com/azure/ai-services/computer-vision/images/windows-kitchen.jpg"}
. A tartalomtípusnak a következőnek kell lennie application/json
: .
A helyi rendszerkép elemzéséhez a bináris képadatokat a HTTP-kérelem törzsébe kell helyeznie. A tartalomtípusnak a következőnek kell lennie application/octet-stream
: vagy multipart/form-data
.
Mód kiválasztása
Állítsa a lekérdezési sztring módot a két érték egyikére. Ez a lekérdezési sztring kötelező, ha képszegmentálást szeretne végezni.
URL-paraméter | Érték | Leírás |
---|---|---|
mode |
backgroundRemoval |
Az észlelt előtérobjektum képét adja ki átlátszó háttérrel. |
mode |
foregroundMatting |
Szürke léptékű alfa matt képet ad ki, amely az észlelt előtérobjektum átlátszatlanságát jeleníti meg. |
A backgroundRemoval kitöltött URL-címe így néz ki: <endpoint>/computervision/imageanalysis:segment?api-version=2023-02-01-preview&mode=backgroundRemoval
Eredmények lekérése a szolgáltatásból
Ez a szakasz bemutatja, hogyan kezdeményezheti az API-hívást, és elemezheti az eredményeket.
A szolgáltatás HTTP-választ ad 200
vissza a sikerességhez Content-Type: image/png
, és a törzs bináris stream formájában tartalmazza a visszaadott PNG-képet.
Tegyük fel például, hogy a háttér eltávolítása a következő képen fut:
Sikeres háttéreltávolítási hívás esetén a következő négycsatornás PNG-rendszerkép a mód válasza backgroundRemoval
:
Az alábbi egycsatornás PNG-kép a mód válasza foregroundMatting
:
Az API az eredetivel megegyező méretű képet ad vissza a foregroundMatting
módhoz, de legfeljebb 16 megapixelt (a képarány megőrzése) a backgroundRemoval
módhoz.
Hibakódok
Hiba esetén a Képelemzési szolgáltatás válasza tartalmaz egy JSON hasznos adatokat, amely hibakódot és hibaüzenetet tartalmaz. Egyéb részleteket is tartalmazhat a belső hibakód és üzenet formájában. Példa:
{
"error":
{
"code": "InvalidRequest",
"message": "Analyze query is invalid.",
"innererror":
{
"code": "NotSupportedVisualFeature",
"message": "Specified feature type is not valid"
}
}
}
Az alábbiakban felsoroljuk a gyakori hibákat és azok okait. A listaelemek a következő formátumban jelennek meg:
- HTTP-válaszkód
- Hibakód és üzenet a JSON-válaszban
- [Nem kötelező] Belső hibakód és üzenet a JSON-válaszban
- Hibakód és üzenet a JSON-válaszban
Gyakori hibák listája:
400 Bad Request
InvalidRequest - Image URL is badly formatted or not accessible
. Győződjön meg arról, hogy a kép URL-címe érvényes és nyilvánosan elérhető.InvalidRequest - The image size is not allowed to be zero or larger than 20971520 bytes
. Csökkentse a kép méretét tömörítéssel és/vagy átméretezéssel, és küldje el újra a kérést.InvalidRequest - The feature 'Caption' is not supported in this region
. A funkció csak bizonyos Azure-régiókban támogatott. Tekintse meg a támogatott Azure-régiók listájának rövid útmutató előfeltételeit .InvalidRequest - The provided image content type ... is not supported
. A kérelemben szereplő HTTP-fejléc tartalomtípusa nem engedélyezett típus:- Kép URL-címe esetén a tartalomtípusnak
application/json
- Bináris képadatok esetén a tartalomtípusnak
application/octet-stream
vagymultipart/form-data
- Kép URL-címe esetén a tartalomtípusnak
InvalidRequest - Either 'features' or 'model-name' needs to be specified in the query parameter
.InvalidRequest - Image format is not valid
InvalidImageFormat - Image format is not valid
. A támogatott képformátumokért tekintse meg a Képkövetelmények szakaszt.
InvalidRequest - Analyze query is invalid
NotSupportedVisualFeature - Specified feature type is not valid
. Győződjön meg arról, hogy a funkciók lekérdezési sztringje érvényes értékkel rendelkezik.NotSupportedLanguage - The input language is not supported
. Győződjön meg arról, hogy a nyelvi lekérdezési sztring érvényes értékkel rendelkezik a kijelölt vizualizációs funkcióhoz az alábbi táblázat alapján.BadArgument - 'smartcrops-aspect-ratios' aspect ratio is not in allowed range [0.75 to 1.8]
401 PermissionDenied
401 - Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource
.
404 Resource Not Found
404 - Resource not found
. A szolgáltatás nem találta meg az egyéni modellt a lekérdezési sztring általmodel-name
megadott név alapján.
Tipp.
Az Azure AI Vision használata során átmeneti hibákat tapasztalhat, amelyeket a szolgáltatás által kikényszerített sebességkorlátozások vagy más átmeneti problémák, például a hálózati kimaradások okoznak. Az ilyen típusú hibák kezelésével kapcsolatos információkért tekintse meg az Újrapróbálkozási mintát a Felhőtervezési minták útmutatójában és a kapcsolódó megszakító mintában.