Rövid útmutató: Képelemzés 4.0
Ismerkedés az Image Analysis 4.0 REST API-val vagy az ügyféloldali SDK-val egy alapszintű képelemzési alkalmazás beállításához. A Képelemzési szolgáltatás AI-algoritmusokat biztosít a képek feldolgozásához és a vizuális funkciókkal kapcsolatos információk visszaadására. Az alábbi lépéseket követve telepítsen egy csomagot az alkalmazásba, és próbálja ki a mintakódot.
A C# képelemzési ügyféloldali SDK-jával elemezhet egy képet szöveg olvasásához és kép képaláírás létrehozásához. Ez a rövid útmutató meghív egy függvényt AnalyzeImage()
, amely az ügyfélobjektumot használja egy távoli kép elemzéséhez és az eredményeknek a konzolra való nyomtatásához.
Referenciadokumentáció | Csomagok (NuGet) | Minták
Tipp
Az Analysis 4.0 API számos különböző műveletet hajthat végre. Az összes elérhető funkciót bemutató példákért tekintse meg a Kép elemzése útmutatót .
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- A Visual Studio IDE és a számítási feladat .NET asztali fejlesztése engedélyezve van. Vagy ha nem tervezi a Visual Studio IDE használatát, a .NET 6.0 SDK-ra vagy újabb verzióra van szüksége.
- A .NET-futtatókörnyezet telepítve van.
- Miután megkapta az Azure-előfizetését, a Azure Portal. A rövid útmutató feliratozási funkciójának használatához az alábbi Azure-régiókban kell létrehoznia az erőforrást: 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. Az üzembe helyezés után válassza az Erőforrás megnyitása lehetőséget.
- Az alkalmazás azure AI Vision szolgáltatáshoz való csatlakoztatásához szüksége van a létrehozott erőforrás kulcsára és végpontjára.
- Az ingyenes tarifacsomag (
F0
) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős szintre éles környezetben.
Alkalmazás beállítása
Hozzon létre egy új C#-alkalmazást.
Nyissa meg a Visual Studiót, és az Első lépések területen válassza az Új projekt létrehozása lehetőséget. Állítsa a sablonszűrőket C#/Minden platform/Konzol értékre. Válassza a Konzolalkalmazás (windowsos, Linux és macOS rendszeren futó parancssori alkalmazás) lehetőséget, és válassza a Tovább gombot. Frissítse a projekt nevét az ImageAnalysisQuickstart fájlra, és válassza a Tovább gombot. Válassza a .NET 6.0-s vagy újabb verzióját, és válassza a Létrehozás lehetőséget a projekt létrehozásához.
Az ügyféloldali SDK telepítése
Miután létrehozott egy új projektet, telepítse az ügyféloldali SDK-t úgy, hogy a megoldáskezelőben a jobb gombbal a projektmegoldásra kattint, és kiválasztja a NuGet-csomagok kezelése lehetőséget. A megnyíló csomagkezelőben válassza a Tallózás lehetőséget, jelölje be az Előzetes verzió belefoglalása jelölőnégyzetet, és keressen rá.Azure.AI.Vision.ImageAnalysis
Válassza a Telepítés gombot. További információt az SDK telepítési útmutatójában talál.
Környezeti változók létrehozása
Ebben a példában írja meg a hitelesítő adatait az alkalmazást futtató helyi gépen lévő környezeti változókba.
Nyissa meg az Azure Portalt. Ha az Előfeltételek szakaszban létrehozott erőforrás sikeresen üzembe lett helyezve, válassza az Erőforrás megnyitása lehetőséget a Következő lépések területen. A kulcsot és a végpontot a Kulcsok és végpontok lapon, az Erőforrás-kezelés területen találja. Az erőforráskulcs nem egyezik meg az Azure-előfizetés azonosítójával.
Tipp
Ne foglalja bele a kulcsot közvetlenül 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 Vault.
A kulcs és a végpont környezeti változójának beállításához nyisson meg egy konzolablakot, és kövesse az operációs rendszer és a fejlesztési környezet utasításait.
- A
VISION_KEY
környezeti változó beállításához cserélje le a elemetyour-key
az erőforrás egyik kulcsára. - A
VISION_ENDPOINT
környezeti változó beállításához cserélje le a elemetyour-endpoint
az erőforrás végpontjára.
setx VISION_KEY your-key
setx VISION_ENDPOINT your-endpoint
A környezeti változók hozzáadása után előfordulhat, hogy újra kell indítania a futó programokat, amelyek felolvassák a környezeti változókat, beleértve a konzolablakot is.
Kép elemzése
A projektkönyvtárban nyissa meg az új projekttel korábban létrehozott Program.cs fájlt. Illessze be a következő kódot:
Tipp
A kód egy kép URL-címének elemzését mutatja be. Helyi képfájlt vagy memóriapufferből származó képet is elemezhet. További információt a Kép elemzése útmutatóban talál.
using Azure;
using Azure.AI.Vision.Common;
using Azure.AI.Vision.ImageAnalysis;
class Program
{
static void AnalyzeImage()
{
var serviceOptions = new VisionServiceOptions(
Environment.GetEnvironmentVariable("VISION_ENDPOINT"),
new AzureKeyCredential(Environment.GetEnvironmentVariable("VISION_KEY")));
using var imageSource = VisionSource.FromUrl(
new Uri("https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png"));
var analysisOptions = new ImageAnalysisOptions()
{
Features = ImageAnalysisFeature.Caption | ImageAnalysisFeature.Text,
Language = "en",
GenderNeutralCaption = true
};
using var analyzer = new ImageAnalyzer(serviceOptions, imageSource, analysisOptions);
var result = analyzer.Analyze();
if (result.Reason == ImageAnalysisResultReason.Analyzed)
{
if (result.Caption != null)
{
Console.WriteLine(" Caption:");
Console.WriteLine($" \"{result.Caption.Content}\", Confidence {result.Caption.Confidence:0.0000}");
}
if (result.Text != null)
{
Console.WriteLine($" Text:");
foreach (var line in result.Text.Lines)
{
string pointsToString = "{" + string.Join(',', line.BoundingPolygon.Select(pointsToString => pointsToString.ToString())) + "}";
Console.WriteLine($" Line: '{line.Content}', Bounding polygon {pointsToString}");
foreach (var word in line.Words)
{
pointsToString = "{" + string.Join(',', word.BoundingPolygon.Select(pointsToString => pointsToString.ToString())) + "}";
Console.WriteLine($" Word: '{word.Content}', Bounding polygon {pointsToString}, Confidence {word.Confidence:0.0000}");
}
}
}
}
else
{
var errorDetails = ImageAnalysisErrorDetails.FromResult(result);
Console.WriteLine(" Analysis failed.");
Console.WriteLine($" Error reason : {errorDetails.Reason}");
Console.WriteLine($" Error code : {errorDetails.ErrorCode}");
Console.WriteLine($" Error message: {errorDetails.Message}");
}
}
static void Main()
{
try
{
AnalyzeImage();
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
}
Ezután hozza létre és futtassa az alkalmazást. Az itt láthatóhoz hasonló kimenetnek kell megjelennie.
Az alkalmazás létrehozásához és futtatásához válassza a Hibakeresés indítása lehetőséget az IDE ablak tetején található Hibakeresés menüből (vagy nyomja le az F5 billentyűt).
Kimenet
A konzol kimenetének a következő szöveghez hasonlónak kell lennie:
Caption:
"a person pointing at a screen", Confidence 0.4892
Text:
Line: '9:35 AM', Bounding polygon {{X=130,Y=129},{X=215,Y=130},{X=215,Y=149},{X=130,Y=148}}
Word: '9:35', Bounding polygon {{X=131,Y=130},{X=171,Y=130},{X=171,Y=149},{X=130,Y=149}}, Confidence 0.9930
Word: 'AM', Bounding polygon {{X=179,Y=130},{X=204,Y=130},{X=203,Y=149},{X=178,Y=149}}, Confidence 0.9980
Line: 'E Conference room 154584354', Bounding polygon {{X=130,Y=153},{X=224,Y=154},{X=224,Y=161},{X=130,Y=161}}
Word: 'E', Bounding polygon {{X=131,Y=154},{X=135,Y=154},{X=135,Y=161},{X=131,Y=161}}, Confidence 0.1040
Word: 'Conference', Bounding polygon {{X=142,Y=154},{X=174,Y=154},{X=173,Y=161},{X=141,Y=161}}, Confidence 0.9020
Word: 'room', Bounding polygon {{X=175,Y=154},{X=189,Y=155},{X=188,Y=161},{X=175,Y=161}}, Confidence 0.7960
Word: '154584354', Bounding polygon {{X=192,Y=155},{X=224,Y=154},{X=223,Y=162},{X=191,Y=161}}, Confidence 0.8640
Line: '#: 555-173-4547', Bounding polygon {{X=130,Y=163},{X=182,Y=164},{X=181,Y=171},{X=130,Y=170}}
Word: '#:', Bounding polygon {{X=131,Y=163},{X=139,Y=164},{X=139,Y=171},{X=131,Y=171}}, Confidence 0.0360
Word: '555-173-4547', Bounding polygon {{X=142,Y=164},{X=182,Y=165},{X=181,Y=171},{X=142,Y=171}}, Confidence 0.5970
Line: 'Town Hall', Bounding polygon {{X=546,Y=180},{X=590,Y=180},{X=590,Y=190},{X=546,Y=190}}
Word: 'Town', Bounding polygon {{X=547,Y=181},{X=568,Y=181},{X=568,Y=190},{X=546,Y=191}}, Confidence 0.9810
Word: 'Hall', Bounding polygon {{X=570,Y=181},{X=590,Y=181},{X=590,Y=191},{X=570,Y=190}}, Confidence 0.9910
Line: '9:00 AM - 10:00 AM', Bounding polygon {{X=546,Y=191},{X=596,Y=192},{X=596,Y=200},{X=546,Y=199}}
Word: '9:00', Bounding polygon {{X=546,Y=192},{X=555,Y=192},{X=555,Y=200},{X=546,Y=200}}, Confidence 0.0900
Word: 'AM', Bounding polygon {{X=557,Y=192},{X=565,Y=192},{X=565,Y=200},{X=557,Y=200}}, Confidence 0.9910
Word: '-', Bounding polygon {{X=567,Y=192},{X=569,Y=192},{X=569,Y=200},{X=567,Y=200}}, Confidence 0.6910
Word: '10:00', Bounding polygon {{X=570,Y=192},{X=585,Y=193},{X=584,Y=200},{X=570,Y=200}}, Confidence 0.8850
Word: 'AM', Bounding polygon {{X=586,Y=193},{X=593,Y=194},{X=593,Y=200},{X=586,Y=200}}, Confidence 0.9910
Line: 'Aaron Buaion', Bounding polygon {{X=543,Y=201},{X=581,Y=201},{X=581,Y=208},{X=543,Y=208}}
Word: 'Aaron', Bounding polygon {{X=545,Y=202},{X=560,Y=202},{X=559,Y=208},{X=544,Y=208}}, Confidence 0.6020
Word: 'Buaion', Bounding polygon {{X=561,Y=202},{X=580,Y=202},{X=579,Y=208},{X=560,Y=208}}, Confidence 0.2910
Line: 'Daily SCRUM', Bounding polygon {{X=537,Y=259},{X=575,Y=260},{X=575,Y=266},{X=537,Y=265}}
Word: 'Daily', Bounding polygon {{X=538,Y=259},{X=551,Y=260},{X=550,Y=266},{X=538,Y=265}}, Confidence 0.1750
Word: 'SCRUM', Bounding polygon {{X=552,Y=260},{X=570,Y=260},{X=570,Y=266},{X=551,Y=266}}, Confidence 0.1140
Line: '10:00 AM 11:00 AM', Bounding polygon {{X=536,Y=266},{X=590,Y=266},{X=590,Y=272},{X=536,Y=272}}
Word: '10:00', Bounding polygon {{X=539,Y=267},{X=553,Y=267},{X=552,Y=273},{X=538,Y=272}}, Confidence 0.8570
Word: 'AM', Bounding polygon {{X=554,Y=267},{X=561,Y=267},{X=560,Y=273},{X=553,Y=273}}, Confidence 0.9980
Word: '11:00', Bounding polygon {{X=564,Y=267},{X=578,Y=267},{X=577,Y=273},{X=563,Y=273}}, Confidence 0.4790
Word: 'AM', Bounding polygon {{X=579,Y=267},{X=586,Y=267},{X=585,Y=273},{X=578,Y=273}}, Confidence 0.9940
Line: 'Churlette de Crum', Bounding polygon {{X=538,Y=273},{X=584,Y=273},{X=585,Y=279},{X=538,Y=279}}
Word: 'Churlette', Bounding polygon {{X=539,Y=274},{X=562,Y=274},{X=561,Y=279},{X=538,Y=279}}, Confidence 0.4640
Word: 'de', Bounding polygon {{X=563,Y=274},{X=569,Y=274},{X=568,Y=279},{X=562,Y=279}}, Confidence 0.8100
Word: 'Crum', Bounding polygon {{X=570,Y=274},{X=582,Y=273},{X=581,Y=279},{X=569,Y=279}}, Confidence 0.8850
Line: 'Quarterly NI Hands', Bounding polygon {{X=538,Y=295},{X=588,Y=295},{X=588,Y=301},{X=538,Y=302}}
Word: 'Quarterly', Bounding polygon {{X=540,Y=296},{X=562,Y=296},{X=562,Y=302},{X=539,Y=302}}, Confidence 0.5230
Word: 'NI', Bounding polygon {{X=563,Y=296},{X=570,Y=296},{X=570,Y=302},{X=563,Y=302}}, Confidence 0.3030
Word: 'Hands', Bounding polygon {{X=572,Y=296},{X=588,Y=296},{X=588,Y=302},{X=571,Y=302}}, Confidence 0.6130
Line: '11.00 AM-12:00 PM', Bounding polygon {{X=536,Y=304},{X=588,Y=303},{X=588,Y=309},{X=536,Y=310}}
Word: '11.00', Bounding polygon {{X=538,Y=304},{X=552,Y=304},{X=552,Y=310},{X=538,Y=310}}, Confidence 0.6180
Word: 'AM-12:00', Bounding polygon {{X=554,Y=304},{X=578,Y=304},{X=577,Y=310},{X=553,Y=310}}, Confidence 0.2700
Word: 'PM', Bounding polygon {{X=579,Y=304},{X=586,Y=304},{X=586,Y=309},{X=578,Y=310}}, Confidence 0.6620
Line: 'Bebek Shaman', Bounding polygon {{X=538,Y=310},{X=577,Y=310},{X=577,Y=316},{X=538,Y=316}}
Word: 'Bebek', Bounding polygon {{X=539,Y=310},{X=554,Y=310},{X=554,Y=317},{X=539,Y=316}}, Confidence 0.6110
Word: 'Shaman', Bounding polygon {{X=555,Y=310},{X=576,Y=311},{X=576,Y=317},{X=555,Y=317}}, Confidence 0.6050
Line: 'Weekly stand up', Bounding polygon {{X=537,Y=332},{X=582,Y=333},{X=582,Y=339},{X=537,Y=338}}
Word: 'Weekly', Bounding polygon {{X=538,Y=332},{X=557,Y=333},{X=556,Y=339},{X=538,Y=338}}, Confidence 0.6060
Word: 'stand', Bounding polygon {{X=558,Y=333},{X=572,Y=334},{X=571,Y=340},{X=557,Y=339}}, Confidence 0.4890
Word: 'up', Bounding polygon {{X=574,Y=334},{X=580,Y=334},{X=580,Y=340},{X=573,Y=340}}, Confidence 0.8150
Line: '12:00 PM-1:00 PM', Bounding polygon {{X=537,Y=340},{X=583,Y=340},{X=583,Y=347},{X=536,Y=346}}
Word: '12:00', Bounding polygon {{X=539,Y=341},{X=553,Y=341},{X=552,Y=347},{X=538,Y=347}}, Confidence 0.8260
Word: 'PM-1:00', Bounding polygon {{X=554,Y=341},{X=575,Y=341},{X=574,Y=347},{X=553,Y=347}}, Confidence 0.2090
Word: 'PM', Bounding polygon {{X=576,Y=341},{X=583,Y=341},{X=582,Y=347},{X=575,Y=347}}, Confidence 0.0390
Line: 'Delle Marckre', Bounding polygon {{X=538,Y=347},{X=582,Y=347},{X=582,Y=352},{X=538,Y=353}}
Word: 'Delle', Bounding polygon {{X=540,Y=348},{X=559,Y=347},{X=558,Y=353},{X=539,Y=353}}, Confidence 0.5800
Word: 'Marckre', Bounding polygon {{X=560,Y=347},{X=582,Y=348},{X=582,Y=353},{X=559,Y=353}}, Confidence 0.2750
Line: 'Product review', Bounding polygon {{X=538,Y=370},{X=577,Y=370},{X=577,Y=376},{X=538,Y=375}}
Word: 'Product', Bounding polygon {{X=539,Y=370},{X=559,Y=371},{X=558,Y=376},{X=539,Y=376}}, Confidence 0.6150
Word: 'review', Bounding polygon {{X=560,Y=371},{X=576,Y=371},{X=575,Y=376},{X=559,Y=376}}, Confidence 0.0400
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure AI-szolgáltatási előfizetést, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.
Következő lépések
Ebben a rövid útmutatóban megtanulta, hogyan telepítheti a Képelemzés ügyféloldali SDK-t, és hogyan indíthat alapszintű képelemzési hívásokat. Ezután további információk az Analysis 4.0 API funkcióiról.
- Képelemzés áttekintése
- A minta forráskód a GitHubon található.
A Pythonhoz készült Képelemzési ügyféloldali SDK használatával elemezhet egy távoli képet szöveg olvasásához és kép képaláírás létrehozásához. Ez a rövid útmutató az ügyfélobjektumot használja egy távoli kép elemzéséhez és az eredmények konzolon való nyomtatásához.
Referenciadokumentáció | Csomag (PyPi) | Minták
Tipp
Az Analysis 4.0 API számos különböző műveletet hajthat végre. Az összes elérhető funkciót bemutató példákért tekintse meg a Kép elemzése útmutatót .
Előfeltételek
Azure-előfizetés – Ingyenes létrehozás
Python 3.x. A Python-telepítésnek tartalmaznia kell a pipet. A parancssorban való futtatással
pip --version
ellenőrizheti, hogy telepítve van-e a pip. Kérje le a pipet a Python legújabb verziójának telepítésével.Miután megkapta az Azure-előfizetését, a Azure Portal. A rövid útmutatóban szereplő feliratozási funkció használatához az alábbi Azure-régiókban kell létrehoznia az erőforrást: 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, Kelet-Ázsia. Az üzembe helyezés után válassza az Erőforrás megnyitása lehetőséget.
- Az alkalmazás azure AI Vision szolgáltatáshoz való csatlakoztatásához szüksége lesz a létrehozott erőforrás kulcsára és végpontjára.
- Az ingyenes tarifacsomag (
F0
) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős tarifacsomagra éles környezetben.
Környezeti változók létrehozása
Ebben a példában írja meg a hitelesítő adatait a környezeti változókba az alkalmazást futtató helyi gépen.
Nyissa meg az Azure Portalt. Ha az Előfeltételek szakaszban létrehozott erőforrás sikeresen üzembe lett helyezve, válassza az Erőforrás megnyitása lehetőséget a Következő lépések területen. A kulcsot és a végpontot az Erőforrás-kezelés területen, a Kulcsok és végpont lapon találja. Az erőforráskulcs nem egyezik meg az Azure-előfizetés azonosítójával.
Tipp
Ne foglalja bele a kulcsot közvetlenül a kódba, és soha ne tegye közzé nyilvánosan. További hitelesítési lehetőségekért, például az Azure Key Vault, tekintse meg az Azure AI-szolgáltatások biztonságicikkét.
A kulcs és a végpont környezeti változójának beállításához nyisson meg egy konzolablakot, és kövesse az operációs rendszer és a fejlesztési környezet utasításait.
- A
VISION_KEY
környezeti változó beállításához cserélje le a elemetyour-key
az erőforrás egyik kulcsára. - A
VISION_ENDPOINT
környezeti változó beállításához cserélje le a elemetyour-endpoint
az erőforrás végpontjára.
setx VISION_KEY your-key
setx VISION_ENDPOINT your-endpoint
A környezeti változók hozzáadása után előfordulhat, hogy újra kell indítania a futó programokat, amelyek beolvassák a környezeti változókat, beleértve a konzolablakot is.
Kép elemzése
Nyisson meg egy parancssort, ahol az új projektet szeretné, és hozzon létre egy új fájlt quickstart.py néven.
Futtassa ezt a parancsot az Azure AI Vision ügyféloldali SDK telepítéséhez:
python -m pip install azure-ai-vision
További információt az SDK telepítési útmutatójában talál.
Másolja a következő kódot a quickstart.py:
Tipp
A kód egy kép URL-címének elemzését mutatja be. Helyi képfájlt vagy memóriapufferből származó képet is elemezhet. További információért tekintse meg a Kép elemzése útmutatót.
import os
import azure.ai.vision as sdk
service_options = sdk.VisionServiceOptions(os.environ["VISION_ENDPOINT"],
os.environ["VISION_KEY"])
vision_source = sdk.VisionSource(
url="https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png")
analysis_options = sdk.ImageAnalysisOptions()
analysis_options.features = (
sdk.ImageAnalysisFeature.CAPTION |
sdk.ImageAnalysisFeature.TEXT
)
analysis_options.language = "en"
analysis_options.gender_neutral_caption = True
image_analyzer = sdk.ImageAnalyzer(service_options, vision_source, analysis_options)
result = image_analyzer.analyze()
if result.reason == sdk.ImageAnalysisResultReason.ANALYZED:
if result.caption is not None:
print(" Caption:")
print(" '{}', Confidence {:.4f}".format(result.caption.content, result.caption.confidence))
if result.text is not None:
print(" Text:")
for line in result.text.lines:
points_string = "{" + ", ".join([str(int(point)) for point in line.bounding_polygon]) + "}"
print(" Line: '{}', Bounding polygon {}".format(line.content, points_string))
for word in line.words:
points_string = "{" + ", ".join([str(int(point)) for point in word.bounding_polygon]) + "}"
print(" Word: '{}', Bounding polygon {}, Confidence {:.4f}"
.format(word.content, points_string, word.confidence))
else:
error_details = sdk.ImageAnalysisErrorDetails.from_result(result)
print(" Analysis failed.")
print(" Error reason: {}".format(error_details.reason))
print(" Error code: {}".format(error_details.error_code))
print(" Error message: {}".format(error_details.message))
Ezután futtassa az alkalmazást a
python
gyorsindítási fájlban található paranccsal.python quickstart.py
Kimenet
A konzol kimenetének a következő szöveghez hasonlónak kell megjelennie:
Caption:
'a person pointing at a screen', Confidence 0.4892
Text:
Line: '9:35 AM', Bounding polygon {130, 129, 215, 130, 215, 149, 130, 148}
Word: '9:35', Bounding polygon {131, 130, 171, 130, 171, 149, 130, 149}, Confidence 0.9930
Word: 'AM', Bounding polygon {179, 130, 204, 130, 203, 149, 178, 149}, Confidence 0.9980
Line: 'E Conference room 154584354', Bounding polygon {130, 153, 224, 154, 224, 161, 130, 161}
Word: 'E', Bounding polygon {131, 154, 135, 154, 135, 161, 131, 161}, Confidence 0.1040
Word: 'Conference', Bounding polygon {142, 154, 174, 154, 173, 161, 141, 161}, Confidence 0.9020
Word: 'room', Bounding polygon {175, 154, 189, 155, 188, 161, 175, 161}, Confidence 0.7960
Word: '154584354', Bounding polygon {192, 155, 224, 154, 223, 162, 191, 161}, Confidence 0.8640
Line: '#: 555-173-4547', Bounding polygon {130, 163, 182, 164, 181, 171, 130, 170}
Word: '#:', Bounding polygon {131, 163, 139, 164, 139, 171, 131, 171}, Confidence 0.0360
Word: '555-173-4547', Bounding polygon {142, 164, 182, 165, 181, 171, 142, 171}, Confidence 0.5970
Line: 'Town Hall', Bounding polygon {546, 180, 590, 180, 590, 190, 546, 190}
Word: 'Town', Bounding polygon {547, 181, 568, 181, 568, 190, 546, 191}, Confidence 0.9810
Word: 'Hall', Bounding polygon {570, 181, 590, 181, 590, 191, 570, 190}, Confidence 0.9910
Line: '9:00 AM - 10:00 AM', Bounding polygon {546, 191, 596, 192, 596, 200, 546, 199}
Word: '9:00', Bounding polygon {546, 192, 555, 192, 555, 200, 546, 200}, Confidence 0.0900
Word: 'AM', Bounding polygon {557, 192, 565, 192, 565, 200, 557, 200}, Confidence 0.9910
Word: '-', Bounding polygon {567, 192, 569, 192, 569, 200, 567, 200}, Confidence 0.6910
Word: '10:00', Bounding polygon {570, 192, 585, 193, 584, 200, 570, 200}, Confidence 0.8850
Word: 'AM', Bounding polygon {586, 193, 593, 194, 593, 200, 586, 200}, Confidence 0.9910
Line: 'Aaron Buaion', Bounding polygon {543, 201, 581, 201, 581, 208, 543, 208}
Word: 'Aaron', Bounding polygon {545, 202, 560, 202, 559, 208, 544, 208}, Confidence 0.6020
Word: 'Buaion', Bounding polygon {561, 202, 580, 202, 579, 208, 560, 208}, Confidence 0.2910
Line: 'Daily SCRUM', Bounding polygon {537, 259, 575, 260, 575, 266, 537, 265}
Word: 'Daily', Bounding polygon {538, 259, 551, 260, 550, 266, 538, 265}, Confidence 0.1750
Word: 'SCRUM', Bounding polygon {552, 260, 570, 260, 570, 266, 551, 266}, Confidence 0.1140
Line: '10:00 AM 11:00 AM', Bounding polygon {536, 266, 590, 266, 590, 272, 536, 272}
Word: '10:00', Bounding polygon {539, 267, 553, 267, 552, 273, 538, 272}, Confidence 0.8570
Word: 'AM', Bounding polygon {554, 267, 561, 267, 560, 273, 553, 273}, Confidence 0.9980
Word: '11:00', Bounding polygon {564, 267, 578, 267, 577, 273, 563, 273}, Confidence 0.4790
Word: 'AM', Bounding polygon {579, 267, 586, 267, 585, 273, 578, 273}, Confidence 0.9940
Line: 'Churlette de Crum', Bounding polygon {538, 273, 584, 273, 585, 279, 538, 279}
Word: 'Churlette', Bounding polygon {539, 274, 562, 274, 561, 279, 538, 279}, Confidence 0.4640
Word: 'de', Bounding polygon {563, 274, 569, 274, 568, 279, 562, 279}, Confidence 0.8100
Word: 'Crum', Bounding polygon {570, 274, 582, 273, 581, 279, 569, 279}, Confidence 0.8850
Line: 'Quarterly NI Hands', Bounding polygon {538, 295, 588, 295, 588, 301, 538, 302}
Word: 'Quarterly', Bounding polygon {540, 296, 562, 296, 562, 302, 539, 302}, Confidence 0.5230
Word: 'NI', Bounding polygon {563, 296, 570, 296, 570, 302, 563, 302}, Confidence 0.3030
Word: 'Hands', Bounding polygon {572, 296, 588, 296, 588, 302, 571, 302}, Confidence 0.6130
Line: '11.00 AM-12:00 PM', Bounding polygon {536, 304, 588, 303, 588, 309, 536, 310}
Word: '11.00', Bounding polygon {538, 304, 552, 304, 552, 310, 538, 310}, Confidence 0.6180
Word: 'AM-12:00', Bounding polygon {554, 304, 578, 304, 577, 310, 553, 310}, Confidence 0.2700
Word: 'PM', Bounding polygon {579, 304, 586, 304, 586, 309, 578, 310}, Confidence 0.6620
Line: 'Bebek Shaman', Bounding polygon {538, 310, 577, 310, 577, 316, 538, 316}
Word: 'Bebek', Bounding polygon {539, 310, 554, 310, 554, 317, 539, 316}, Confidence 0.6110
Word: 'Shaman', Bounding polygon {555, 310, 576, 311, 576, 317, 555, 317}, Confidence 0.6050
Line: 'Weekly stand up', Bounding polygon {537, 332, 582, 333, 582, 339, 537, 338}
Word: 'Weekly', Bounding polygon {538, 332, 557, 333, 556, 339, 538, 338}, Confidence 0.6060
Word: 'stand', Bounding polygon {558, 333, 572, 334, 571, 340, 557, 339}, Confidence 0.4890
Word: 'up', Bounding polygon {574, 334, 580, 334, 580, 340, 573, 340}, Confidence 0.8150
Line: '12:00 PM-1:00 PM', Bounding polygon {537, 340, 583, 340, 583, 347, 536, 346}
Word: '12:00', Bounding polygon {539, 341, 553, 341, 552, 347, 538, 347}, Confidence 0.8260
Word: 'PM-1:00', Bounding polygon {554, 341, 575, 341, 574, 347, 553, 347}, Confidence 0.2090
Word: 'PM', Bounding polygon {576, 341, 583, 341, 582, 347, 575, 347}, Confidence 0.0390
Line: 'Delle Marckre', Bounding polygon {538, 347, 582, 347, 582, 352, 538, 353}
Word: 'Delle', Bounding polygon {540, 348, 559, 347, 558, 353, 539, 353}, Confidence 0.5800
Word: 'Marckre', Bounding polygon {560, 347, 582, 348, 582, 353, 559, 353}, Confidence 0.2750
Line: 'Product review', Bounding polygon {538, 370, 577, 370, 577, 376, 538, 375}
Word: 'Product', Bounding polygon {539, 370, 559, 371, 558, 376, 539, 376}, Confidence 0.6150
Word: 'review', Bounding polygon {560, 371, 576, 371, 575, 376, 559, 376}, Confidence 0.0400
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure AI-szolgáltatási előfizetést, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.
Következő lépések
Ebben a rövid útmutatóban megtanulta, hogyan telepítheti az Image Analysis ügyféloldali SDK-t, és hogyan indíthat alapszintű képelemzési hívásokat. A következő lépésben további információt olvashat az Analysis 4.0 API funkcióiról.
- Képelemzés áttekintése
- A minta forráskód a GitHubon található.
A C++ képelemzési ügyféloldali SDK-val elemezhet egy képet szöveg olvasásához, és létrehozhat egy kép képaláírás. Ez a rövid útmutató meghív egy függvényt AnalyzeImage()
, amely az ügyfélobjektumot használja egy távoli kép elemzéséhez és az eredmények konzolra való nyomtatásához.
Referenciadokumentáció | Csomag (NuGet) | Minták
Tipp
Az Analysis 4.0 API számos különböző műveletet hajthat végre. Az összes elérhető funkciót bemutató példákért tekintse meg a Kép elemzése útmutatót .
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozása
- Windows-fejlesztés esetén a Visual Studio IDE és a számítási feladat asztali fejlesztése, amelyen engedélyezve van a C++ funkció.
- Miután megkapta az Azure-előfizetését, a Azure Portal. A rövid útmutatóban szereplő feliratozási funkció használatához az alábbi Azure-régiókban kell létrehoznia az erőforrást: 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, Kelet-Ázsia, Kelet-Ázsia. Az üzembe helyezés után válassza az Erőforrás megnyitása lehetőséget.
- Az alkalmazás azure AI Vision szolgáltatáshoz való csatlakoztatásához szüksége lesz a létrehozott erőforrás kulcsára és végpontjára.
- Az ingyenes tarifacsomag (
F0
) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős tarifacsomagra éles környezetben.
Alkalmazás beállítása
Hozzon létre egy új C++ alkalmazást.
Nyissa meg a Visual Studiót, és az Első lépések területen válassza az Új projekt létrehozása lehetőséget. Állítsa a sablonszűrőket C++/Windows/Console értékre. Válassza a Konzolalkalmazás , majd a Tovább gombot. Frissítse a projekt nevét az ImageAnalysisQuickstart névre, és válassza a Létrehozás lehetőséget a projekt létrehozásához.
Az ügyféloldali SDK telepítése
Miután létrehozott egy új projektet, telepítse az ügyféloldali SDK-t. Ehhez kattintson a jobb gombbal a projektmegoldásra a Megoldáskezelőben , és válassza a NuGet-csomagok kezelése lehetőséget. A megnyíló csomagkezelőben válassza a Tallózás lehetőséget, jelölje be az Előzetes verzió belefoglalása jelölőnégyzetet, és keressen rá a kifejezésre Azure.AI.Vision.ImageAnalysis
. Válassza a Telepítés gombot. További információt az SDK telepítési útmutatójában talál.
Környezeti változók létrehozása
Ebben a példában írja meg a hitelesítő adatait a környezeti változókba az alkalmazást futtató helyi gépen.
Nyissa meg az Azure Portalt. Ha az Előfeltételek szakaszban létrehozott erőforrás sikeresen üzembe lett helyezve, válassza az Erőforrás megnyitása lehetőséget a Következő lépések területen. A kulcsot és a végpontot az Erőforrás-kezelés területen, a Kulcsok és végpont lapon találja. Az erőforráskulcs nem egyezik meg az Azure-előfizetés azonosítójával.
Tipp
Ne foglalja bele a kulcsot közvetlenül a kódba, és soha ne tegye közzé nyilvánosan. További hitelesítési lehetőségekért, például az Azure Key Vault, tekintse meg az Azure AI-szolgáltatások biztonságicikkét.
A kulcs és a végpont környezeti változójának beállításához nyisson meg egy konzolablakot, és kövesse az operációs rendszer és a fejlesztési környezet utasításait.
- A
VISION_KEY
környezeti változó beállításához cserélje le a elemetyour-key
az erőforrás egyik kulcsára. - A
VISION_ENDPOINT
környezeti változó beállításához cserélje le a elemetyour-endpoint
az erőforrás végpontjára.
setx VISION_KEY your-key
setx VISION_ENDPOINT your-endpoint
A környezeti változók hozzáadása után előfordulhat, hogy újra kell indítania a futó programokat, amelyek beolvassák a környezeti változókat, beleértve a konzolablakot is.
Kép elemzése
A projektkönyvtárban nyissa meg a korábban az új projekttel létrehozott ImageAnalysisQuickstart.cpp fájlt. Törölje a tartalmát, és illessze be a következő kódba:
Tipp
A kód egy kép URL-címének elemzését mutatja be. Helyi képfájlt vagy memóriapufferből származó képet is elemezhet. További információért tekintse meg a Kép elemzése útmutatót.
#include <vision_api_cxx_image_analyzer.hpp>
using namespace Azure::AI::Vision::ImageAnalysis;
using namespace Azure::AI::Vision::Input;
using namespace Azure::AI::Vision::Service;
std::string PolygonToString(std::vector<int32_t> boundingPolygon);
std::string GetEnvironmentVariable(const std::string name);
void AnalyzeImage()
{
auto serviceOptions = VisionServiceOptions::FromEndpoint(
GetEnvironmentVariable("VISION_ENDPOINT"),
GetEnvironmentVariable("VISION_KEY"));
auto imageSource = VisionSource::FromUrl(
"https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png");
auto analysisOptions = ImageAnalysisOptions::Create();
analysisOptions->SetFeatures(
{
ImageAnalysisFeature::Caption,
ImageAnalysisFeature::Text,
});
analysisOptions->SetLanguage("en");
analysisOptions->SetGenderNeutralCaption(true);
auto analyzer = ImageAnalyzer::Create(serviceOptions, imageSource, analysisOptions);
auto result = analyzer->Analyze();
if (result->GetReason() == ImageAnalysisResultReason::Analyzed)
{
const auto caption = result->GetCaption();
if (caption.HasValue())
{
std::cout << " Caption:" << std::endl;
std::cout << " \"" << caption.Value().Content << "\", Confidence " << caption.Value().Confidence << std::endl;
}
const auto detectedText = result->GetText();
if (detectedText.HasValue())
{
std::cout << " Text:\n";
for (const auto line : detectedText.Value().Lines)
{
std::cout << " Line: \"" << line.Content << "\"";
std::cout << ", Bounding polygon " << PolygonToString(line.BoundingPolygon) << std::endl;
for (const auto word : line.Words)
{
std::cout << " Word: \"" << word.Content << "\"";
std::cout << ", Bounding polygon " << PolygonToString(word.BoundingPolygon);
std::cout << ", Confidence " << word.Confidence << std::endl;
}
}
}
}
else
{
auto errorDetails = ImageAnalysisErrorDetails::FromResult(result);
std::cout << " Analysis failed." << std::endl;
std::cout << " Error reason = " << (int)errorDetails->GetReason() << std::endl;
std::cout << " Error code = " << errorDetails->GetErrorCode() << std::endl;
std::cout << " Error message = " << errorDetails->GetMessage() << std::endl;
}
}
std::string PolygonToString(std::vector<int32_t> boundingPolygon)
{
std::string out = "{";
for (int i = 0; i < boundingPolygon.size(); i += 2)
{
out += ((i == 0) ? "{" : ",{") +
std::to_string(boundingPolygon[i]) + "," +
std::to_string(boundingPolygon[i + 1]) + "}";
}
out += "}";
return out;
}
std::string GetEnvironmentVariable(const std::string name)
{
#if defined(_MSC_VER)
size_t size = 0;
char buffer[1024];
getenv_s(&size, nullptr, 0, name.c_str());
if (size > 0 && size < sizeof(buffer))
{
getenv_s(&size, buffer, size, name.c_str());
return std::string{ buffer };
}
#else
const char* value = getenv(name.c_str());
if (value != nullptr)
{
return std::string{ value };
}
#endif
return std::string{ "" };
}
int main()
{
try
{
AnalyzeImage();
}
catch (std::exception e)
{
std::cout << e.what();
}
return 0;
}
Ezután fordítsa le és futtassa az alkalmazást az IDE ablak tetején található Hibakeresés menü Hibakeresés indítása elemével (vagy nyomja le az F5 billentyűt). Az itt láthatóhoz hasonló kimenetnek kell megjelennie.
Kimenet
A konzol kimenetének a következő szöveghez hasonlónak kell megjelennie:
Caption:
"a person pointing at a screen", Confidence 0.489159
Text:
Line: "9:35 AM", Bounding polygon {{130,129},{215,130},{215,149},{130,148}}
Word: "9:35", Bounding polygon {{131,130},{171,130},{171,149},{130,149}}, Confidence 0.993
Word: "AM", Bounding polygon {{179,130},{204,130},{203,149},{178,149}}, Confidence 0.998
Line: "E Conference room 154584354", Bounding polygon {{130,153},{224,154},{224,161},{130,161}}
Word: "E", Bounding polygon {{131,154},{135,154},{135,161},{131,161}}, Confidence 0.104
Word: "Conference", Bounding polygon {{142,154},{174,154},{173,161},{141,161}}, Confidence 0.902
Word: "room", Bounding polygon {{175,154},{189,155},{188,161},{175,161}}, Confidence 0.796
Word: "154584354", Bounding polygon {{192,155},{224,154},{223,162},{191,161}}, Confidence 0.864
Line: "#: 555-173-4547", Bounding polygon {{130,163},{182,164},{181,171},{130,170}}
Word: "#:", Bounding polygon {{131,163},{139,164},{139,171},{131,171}}, Confidence 0.036
Word: "555-173-4547", Bounding polygon {{142,164},{182,165},{181,171},{142,171}}, Confidence 0.597
Line: "Town Hall", Bounding polygon {{546,180},{590,180},{590,190},{546,190}}
Word: "Town", Bounding polygon {{547,181},{568,181},{568,190},{546,191}}, Confidence 0.981
Word: "Hall", Bounding polygon {{570,181},{590,181},{590,191},{570,190}}, Confidence 0.991
Line: "9:00 AM - 10:00 AM", Bounding polygon {{546,191},{596,192},{596,200},{546,199}}
Word: "9:00", Bounding polygon {{546,192},{555,192},{555,200},{546,200}}, Confidence 0.09
Word: "AM", Bounding polygon {{557,192},{565,192},{565,200},{557,200}}, Confidence 0.991
Word: "-", Bounding polygon {{567,192},{569,192},{569,200},{567,200}}, Confidence 0.691
Word: "10:00", Bounding polygon {{570,192},{585,193},{584,200},{570,200}}, Confidence 0.885
Word: "AM", Bounding polygon {{586,193},{593,194},{593,200},{586,200}}, Confidence 0.991
Line: "Aaron Buaion", Bounding polygon {{543,201},{581,201},{581,208},{543,208}}
Word: "Aaron", Bounding polygon {{545,202},{560,202},{559,208},{544,208}}, Confidence 0.602
Word: "Buaion", Bounding polygon {{561,202},{580,202},{579,208},{560,208}}, Confidence 0.291
Line: "Daily SCRUM", Bounding polygon {{537,259},{575,260},{575,266},{537,265}}
Word: "Daily", Bounding polygon {{538,259},{551,260},{550,266},{538,265}}, Confidence 0.175
Word: "SCRUM", Bounding polygon {{552,260},{570,260},{570,266},{551,266}}, Confidence 0.114
Line: "10:00 AM 11:00 AM", Bounding polygon {{536,266},{590,266},{590,272},{536,272}}
Word: "10:00", Bounding polygon {{539,267},{553,267},{552,273},{538,272}}, Confidence 0.857
Word: "AM", Bounding polygon {{554,267},{561,267},{560,273},{553,273}}, Confidence 0.998
Word: "11:00", Bounding polygon {{564,267},{578,267},{577,273},{563,273}}, Confidence 0.479
Word: "AM", Bounding polygon {{579,267},{586,267},{585,273},{578,273}}, Confidence 0.994
Line: "Churlette de Crum", Bounding polygon {{538,273},{584,273},{585,279},{538,279}}
Word: "Churlette", Bounding polygon {{539,274},{562,274},{561,279},{538,279}}, Confidence 0.464
Word: "de", Bounding polygon {{563,274},{569,274},{568,279},{562,279}}, Confidence 0.81
Word: "Crum", Bounding polygon {{570,274},{582,273},{581,279},{569,279}}, Confidence 0.885
Line: "Quarterly NI Hands", Bounding polygon {{538,295},{588,295},{588,301},{538,302}}
Word: "Quarterly", Bounding polygon {{540,296},{562,296},{562,302},{539,302}}, Confidence 0.523
Word: "NI", Bounding polygon {{563,296},{570,296},{570,302},{563,302}}, Confidence 0.303
Word: "Hands", Bounding polygon {{572,296},{588,296},{588,302},{571,302}}, Confidence 0.613
Line: "11.00 AM-12:00 PM", Bounding polygon {{536,304},{588,303},{588,309},{536,310}}
Word: "11.00", Bounding polygon {{538,304},{552,304},{552,310},{538,310}}, Confidence 0.618
Word: "AM-12:00", Bounding polygon {{554,304},{578,304},{577,310},{553,310}}, Confidence 0.27
Word: "PM", Bounding polygon {{579,304},{586,304},{586,309},{578,310}}, Confidence 0.662
Line: "Bebek Shaman", Bounding polygon {{538,310},{577,310},{577,316},{538,316}}
Word: "Bebek", Bounding polygon {{539,310},{554,310},{554,317},{539,316}}, Confidence 0.611
Word: "Shaman", Bounding polygon {{555,310},{576,311},{576,317},{555,317}}, Confidence 0.605
Line: "Weekly stand up", Bounding polygon {{537,332},{582,333},{582,339},{537,338}}
Word: "Weekly", Bounding polygon {{538,332},{557,333},{556,339},{538,338}}, Confidence 0.606
Word: "stand", Bounding polygon {{558,333},{572,334},{571,340},{557,339}}, Confidence 0.489
Word: "up", Bounding polygon {{574,334},{580,334},{580,340},{573,340}}, Confidence 0.815
Line: "12:00 PM-1:00 PM", Bounding polygon {{537,340},{583,340},{583,347},{536,346}}
Word: "12:00", Bounding polygon {{539,341},{553,341},{552,347},{538,347}}, Confidence 0.826
Word: "PM-1:00", Bounding polygon {{554,341},{575,341},{574,347},{553,347}}, Confidence 0.209
Word: "PM", Bounding polygon {{576,341},{583,341},{582,347},{575,347}}, Confidence 0.039
Line: "Delle Marckre", Bounding polygon {{538,347},{582,347},{582,352},{538,353}}
Word: "Delle", Bounding polygon {{540,348},{559,347},{558,353},{539,353}}, Confidence 0.58
Word: "Marckre", Bounding polygon {{560,347},{582,348},{582,353},{559,353}}, Confidence 0.275
Line: "Product review", Bounding polygon {{538,370},{577,370},{577,376},{538,375}}
Word: "Product", Bounding polygon {{539,370},{559,371},{558,376},{539,376}}, Confidence 0.615
Word: "review", Bounding polygon {{560,371},{576,371},{575,376},{559,376}}, Confidence 0.04
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure AI-szolgáltatási előfizetést, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.
Következő lépések
Ebben a rövid útmutatóban megtanulta, hogyan telepítheti az Image Analysis ügyféloldali SDK-t, és hogyan indíthat alapszintű képelemzési hívásokat. A következő lépésben további információt olvashat az Analysis 4.0 API funkcióiról.
- Képelemzés áttekintése
- A minta forráskód a GitHubon található.
A Java-hoz készült Képelemzési ügyféloldali SDK-val elemezhet egy képet szöveg olvasásához, és létrehozhat egy kép képaláírás. Ez a rövid útmutató egy távoli képet elemez, és kinyomtatja az eredményeket a konzolon.
Referenciadokumentáció | Maven-csomag | Minták
Tipp
Az Analysis 4.0 API számos különböző műveletet hajthat végre. Az összes elérhető funkciót bemutató példákért tekintse meg a Kép elemzése útmutatót .
Előfeltételek
- Egy Windows 10 (vagy újabb) x64 vagy Linux x64 rendszerű gép.
- A Java Development Kit (JDK) 8-as vagy újabb verziója telepítve van, például az Azul Zulu OpenJDK, az OpenJDK Microsoft Buildje, az Oracle Java vagy az ön által előnyben részesített JDK. Futtassa
java -version
a parancsot egy parancssorból a verzió megtekintéséhez és a sikeres telepítés megerősítéséhez. Győződjön meg arról, hogy a Java-telepítés natív a rendszerarchitektúrában, és nem emuláción fut. - Az Apache Maven telepítve van. Linux rendszeren telepítse a terjesztési adattárakból, ha elérhető. A sikeres telepítés megerősítéséhez futtassa
mvn -v
a parancsot. - Azure-előfizetés – Ingyenes létrehozása
- Miután megkapta az Azure-előfizetését, a Azure Portal. A rövid útmutatóban szereplő feliratozási funkció használatához az alábbi Azure-régiókban kell létrehoznia az erőforrást: 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. Az üzembe helyezés után válassza az Erőforrás megnyitása lehetőséget.
- Az alkalmazás azure AI Vision szolgáltatáshoz való csatlakoztatásához szüksége lesz a létrehozott erőforrás kulcsára és végpontjára.
- Az ingyenes tarifacsomag (
F0
) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős tarifacsomagra éles környezetben.
Alkalmazás beállítása
Nyisson meg egy konzolablakot, és hozzon létre egy új mappát a rövid útmutató alkalmazáshoz.
- Nyisson meg egy szövegszerkesztőt, és másolja a következő tartalmat egy új fájlba. A fájl
pom.xml
mentése a projektkönyvtárban<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>azure.ai.vision.imageanalysis.samples</groupId> <artifactId>image-analysis-quickstart</artifactId> <version>0.0</version> <dependencies> <!-- https://mvnrepository.com/artifact/com.azure/azure-ai-vision-imageanalysis --> <dependency> <groupId>com.azure</groupId> <artifactId>azure-ai-vision-imageanalysis</artifactId> <version>0.15.1-beta.1</version> </dependency> <!-- https://mvnrepository.com/artifact/com.azure/azure-core-http-netty --> <dependency> <groupId>com.azure</groupId> <artifactId>azure-core-http-netty</artifactId> <version>1.13.6</version> </dependency> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>2.0.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>2.0.7</version> </dependency> </dependencies> </project>
- Telepítse az SDK-t és a függőségeket a következő projektkönyvtárban való futtatásával:
mvn clean dependency:copy-dependencies
- A művelet sikerességét követően ellenőrizze, hogy a mappák
target\dependency
létre lettek-e hozva, és hogy tartalmaznak-e.jar
fájlokat.
További információt az SDK telepítési útmutatójában talál.
Környezeti változók létrehozása
Ebben a példában írja meg a hitelesítő adatait a környezeti változókba az alkalmazást futtató helyi gépen.
Nyissa meg az Azure Portalt. Ha az Előfeltételek szakaszban létrehozott erőforrás sikeresen üzembe lett helyezve, válassza az Erőforrás megnyitása lehetőséget a Következő lépések területen. A kulcsot és a végpontot az Erőforrás-kezelés területen, a Kulcsok és végpont lapon találja. Az erőforráskulcs nem egyezik meg az Azure-előfizetés azonosítójával.
Tipp
Ne foglalja bele a kulcsot közvetlenül a kódba, és soha ne tegye közzé nyilvánosan. További hitelesítési lehetőségekért, például az Azure Key Vault, tekintse meg az Azure AI-szolgáltatások biztonságicikkét.
A kulcs és a végpont környezeti változójának beállításához nyisson meg egy konzolablakot, és kövesse az operációs rendszer és a fejlesztési környezet utasításait.
- A
VISION_KEY
környezeti változó beállításához cserélje le a elemetyour-key
az erőforrás egyik kulcsára. - A
VISION_ENDPOINT
környezeti változó beállításához cserélje le a elemetyour-endpoint
az erőforrás végpontjára.
setx VISION_KEY your-key
setx VISION_ENDPOINT your-endpoint
A környezeti változók hozzáadása után előfordulhat, hogy újra kell indítania a futó programokat, amelyek beolvassák a környezeti változókat, beleértve a konzolablakot is.
Kép elemzése
Nyisson meg egy szövegszerkesztőt, és másolja a következő tartalmat egy új fájlba. A fájl mentése másként ImageAnalysis.java
import java.net.URL;
import java.util.EnumSet;
import com.azure.ai.vision.common.*;
import com.azure.ai.vision.imageanalysis.*;
public class ImageAnalysis {
public static void main(String[] args) {
try (
VisionServiceOptions serviceOptions = new VisionServiceOptions(
new URL(System.getenv("VISION_ENDPOINT")),
System.getenv("VISION_KEY"));
VisionSource imageSource = VisionSource.fromUrl(
new URL("https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png"));
ImageAnalysisOptions analysisOptions = new ImageAnalysisOptions()) {
analysisOptions.setFeatures(EnumSet.of(ImageAnalysisFeature.CAPTION, ImageAnalysisFeature.TEXT));
analysisOptions.setLanguage("en");
analysisOptions.setGenderNeutralCaption(true);
try (
ImageAnalyzer analyzer = new ImageAnalyzer(serviceOptions, imageSource, analysisOptions);
ImageAnalysisResult result = analyzer.analyze()) {
if (result.getReason() == ImageAnalysisResultReason.ANALYZED) {
if (result.getCaption() != null) {
System.out.println(" Caption:");
System.out.println(" \"" + result.getCaption().getContent() + "\", Confidence "
+ String.format("%.4f", result.getCaption().getConfidence()));
}
if (result.getText() != null) {
System.out.println(" Text:");
for (DetectedTextLine line : result.getText()) {
String pointsToString = "{" + String.join(",",
line.getBoundingPolygon().stream().map(Object::toString).toArray(String[]::new))
+ "}";
System.out.println(
" Line: '" + line.getContent() + "', Bounding polygon " + pointsToString);
for (DetectedTextWord word : line.getWords()) {
pointsToString = "{" + String.join(",",
word.getBoundingPolygon().stream().map(Object::toString).toArray(String[]::new))
+ "}";
System.out.println(
" Word: '" + word.getContent() + "', Bounding polygon " + pointsToString +
", Confidence " + String.format("%.4f", word.getConfidence()));
}
}
}
} else { // result.Reason == ImageAnalysisResultReason.Error
ImageAnalysisErrorDetails errorDetails = ImageAnalysisErrorDetails.fromResult(result);
System.out.println(" Analysis failed.");
System.out.println(" Error reason: " + errorDetails.getReason());
System.out.println(" Error code: " + errorDetails.getErrorCode());
System.out.println(" Error message: " + errorDetails.getMessage());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Tipp
A kód egy kép URL-címének elemzését mutatja be. Helyi képfájlt vagy memóriapufferből származó képet is elemezhet. További információért tekintse meg a Kép elemzése útmutatót.
A Java-fájl fordításához futtassa a következőt:
javac ImageAnalysis.java -cp ".;target\dependency\*"
Az aktuális mappában létrehozott fájlnak ImageAnalysis.class
kell megjelennie.
Az alkalmazás futtatása:
java -cp ".;target\dependency\*" ImageAnalysis
Kimenet
A konzol kimenetének a következő szöveghez hasonlónak kell megjelennie:
Caption:
"a person pointing at a screen", Confidence 0.4892
Text:
Line: '9:35 AM', Bounding polygon {{X=130,Y=129},{X=215,Y=130},{X=215,Y=149},{X=130,Y=148}}
Word: '9:35', Bounding polygon {{X=131,Y=130},{X=171,Y=130},{X=171,Y=149},{X=130,Y=149}}, Confidence 0.9930
Word: 'AM', Bounding polygon {{X=179,Y=130},{X=204,Y=130},{X=203,Y=149},{X=178,Y=149}}, Confidence 0.9980
Line: 'E Conference room 154584354', Bounding polygon {{X=130,Y=153},{X=224,Y=154},{X=224,Y=161},{X=130,Y=161}}
Word: 'E', Bounding polygon {{X=131,Y=154},{X=135,Y=154},{X=135,Y=161},{X=131,Y=161}}, Confidence 0.1040
Word: 'Conference', Bounding polygon {{X=142,Y=154},{X=174,Y=154},{X=173,Y=161},{X=141,Y=161}}, Confidence 0.9020
Word: 'room', Bounding polygon {{X=175,Y=154},{X=189,Y=155},{X=188,Y=161},{X=175,Y=161}}, Confidence 0.7960
Word: '154584354', Bounding polygon {{X=192,Y=155},{X=224,Y=154},{X=223,Y=162},{X=191,Y=161}}, Confidence 0.8640
Line: '#: 555-173-4547', Bounding polygon {{X=130,Y=163},{X=182,Y=164},{X=181,Y=171},{X=130,Y=170}}
Word: '#:', Bounding polygon {{X=131,Y=163},{X=139,Y=164},{X=139,Y=171},{X=131,Y=171}}, Confidence 0.0360
Word: '555-173-4547', Bounding polygon {{X=142,Y=164},{X=182,Y=165},{X=181,Y=171},{X=142,Y=171}}, Confidence 0.5970
Line: 'Town Hall', Bounding polygon {{X=546,Y=180},{X=590,Y=180},{X=590,Y=190},{X=546,Y=190}}
Word: 'Town', Bounding polygon {{X=547,Y=181},{X=568,Y=181},{X=568,Y=190},{X=546,Y=191}}, Confidence 0.9810
Word: 'Hall', Bounding polygon {{X=570,Y=181},{X=590,Y=181},{X=590,Y=191},{X=570,Y=190}}, Confidence 0.9910
Line: '9:00 AM - 10:00 AM', Bounding polygon {{X=546,Y=191},{X=596,Y=192},{X=596,Y=200},{X=546,Y=199}}
Word: '9:00', Bounding polygon {{X=546,Y=192},{X=555,Y=192},{X=555,Y=200},{X=546,Y=200}}, Confidence 0.0900
Word: 'AM', Bounding polygon {{X=557,Y=192},{X=565,Y=192},{X=565,Y=200},{X=557,Y=200}}, Confidence 0.9910
Word: '-', Bounding polygon {{X=567,Y=192},{X=569,Y=192},{X=569,Y=200},{X=567,Y=200}}, Confidence 0.6910
Word: '10:00', Bounding polygon {{X=570,Y=192},{X=585,Y=193},{X=584,Y=200},{X=570,Y=200}}, Confidence 0.8850
Word: 'AM', Bounding polygon {{X=586,Y=193},{X=593,Y=194},{X=593,Y=200},{X=586,Y=200}}, Confidence 0.9910
Line: 'Aaron Buaion', Bounding polygon {{X=543,Y=201},{X=581,Y=201},{X=581,Y=208},{X=543,Y=208}}
Word: 'Aaron', Bounding polygon {{X=545,Y=202},{X=560,Y=202},{X=559,Y=208},{X=544,Y=208}}, Confidence 0.6020
Word: 'Buaion', Bounding polygon {{X=561,Y=202},{X=580,Y=202},{X=579,Y=208},{X=560,Y=208}}, Confidence 0.2910
Line: 'Daily SCRUM', Bounding polygon {{X=537,Y=259},{X=575,Y=260},{X=575,Y=266},{X=537,Y=265}}
Word: 'Daily', Bounding polygon {{X=538,Y=259},{X=551,Y=260},{X=550,Y=266},{X=538,Y=265}}, Confidence 0.1750
Word: 'SCRUM', Bounding polygon {{X=552,Y=260},{X=570,Y=260},{X=570,Y=266},{X=551,Y=266}}, Confidence 0.1140
Line: '10:00 AM 11:00 AM', Bounding polygon {{X=536,Y=266},{X=590,Y=266},{X=590,Y=272},{X=536,Y=272}}
Word: '10:00', Bounding polygon {{X=539,Y=267},{X=553,Y=267},{X=552,Y=273},{X=538,Y=272}}, Confidence 0.8570
Word: 'AM', Bounding polygon {{X=554,Y=267},{X=561,Y=267},{X=560,Y=273},{X=553,Y=273}}, Confidence 0.9980
Word: '11:00', Bounding polygon {{X=564,Y=267},{X=578,Y=267},{X=577,Y=273},{X=563,Y=273}}, Confidence 0.4790
Word: 'AM', Bounding polygon {{X=579,Y=267},{X=586,Y=267},{X=585,Y=273},{X=578,Y=273}}, Confidence 0.9940
Line: 'Churlette de Crum', Bounding polygon {{X=538,Y=273},{X=584,Y=273},{X=585,Y=279},{X=538,Y=279}}
Word: 'Churlette', Bounding polygon {{X=539,Y=274},{X=562,Y=274},{X=561,Y=279},{X=538,Y=279}}, Confidence 0.4640
Word: 'de', Bounding polygon {{X=563,Y=274},{X=569,Y=274},{X=568,Y=279},{X=562,Y=279}}, Confidence 0.8100
Word: 'Crum', Bounding polygon {{X=570,Y=274},{X=582,Y=273},{X=581,Y=279},{X=569,Y=279}}, Confidence 0.8850
Line: 'Quarterly NI Hands', Bounding polygon {{X=538,Y=295},{X=588,Y=295},{X=588,Y=301},{X=538,Y=302}}
Word: 'Quarterly', Bounding polygon {{X=540,Y=296},{X=562,Y=296},{X=562,Y=302},{X=539,Y=302}}, Confidence 0.5230
Word: 'NI', Bounding polygon {{X=563,Y=296},{X=570,Y=296},{X=570,Y=302},{X=563,Y=302}}, Confidence 0.3030
Word: 'Hands', Bounding polygon {{X=572,Y=296},{X=588,Y=296},{X=588,Y=302},{X=571,Y=302}}, Confidence 0.6130
Line: '11.00 AM-12:00 PM', Bounding polygon {{X=536,Y=304},{X=588,Y=303},{X=588,Y=309},{X=536,Y=310}}
Word: '11.00', Bounding polygon {{X=538,Y=304},{X=552,Y=304},{X=552,Y=310},{X=538,Y=310}}, Confidence 0.6180
Word: 'AM-12:00', Bounding polygon {{X=554,Y=304},{X=578,Y=304},{X=577,Y=310},{X=553,Y=310}}, Confidence 0.2700
Word: 'PM', Bounding polygon {{X=579,Y=304},{X=586,Y=304},{X=586,Y=309},{X=578,Y=310}}, Confidence 0.6620
Line: 'Bebek Shaman', Bounding polygon {{X=538,Y=310},{X=577,Y=310},{X=577,Y=316},{X=538,Y=316}}
Word: 'Bebek', Bounding polygon {{X=539,Y=310},{X=554,Y=310},{X=554,Y=317},{X=539,Y=316}}, Confidence 0.6110
Word: 'Shaman', Bounding polygon {{X=555,Y=310},{X=576,Y=311},{X=576,Y=317},{X=555,Y=317}}, Confidence 0.6050
Line: 'Weekly stand up', Bounding polygon {{X=537,Y=332},{X=582,Y=333},{X=582,Y=339},{X=537,Y=338}}
Word: 'Weekly', Bounding polygon {{X=538,Y=332},{X=557,Y=333},{X=556,Y=339},{X=538,Y=338}}, Confidence 0.6060
Word: 'stand', Bounding polygon {{X=558,Y=333},{X=572,Y=334},{X=571,Y=340},{X=557,Y=339}}, Confidence 0.4890
Word: 'up', Bounding polygon {{X=574,Y=334},{X=580,Y=334},{X=580,Y=340},{X=573,Y=340}}, Confidence 0.8150
Line: '12:00 PM-1:00 PM', Bounding polygon {{X=537,Y=340},{X=583,Y=340},{X=583,Y=347},{X=536,Y=346}}
Word: '12:00', Bounding polygon {{X=539,Y=341},{X=553,Y=341},{X=552,Y=347},{X=538,Y=347}}, Confidence 0.8260
Word: 'PM-1:00', Bounding polygon {{X=554,Y=341},{X=575,Y=341},{X=574,Y=347},{X=553,Y=347}}, Confidence 0.2090
Word: 'PM', Bounding polygon {{X=576,Y=341},{X=583,Y=341},{X=582,Y=347},{X=575,Y=347}}, Confidence 0.0390
Line: 'Delle Marckre', Bounding polygon {{X=538,Y=347},{X=582,Y=347},{X=582,Y=352},{X=538,Y=353}}
Word: 'Delle', Bounding polygon {{X=540,Y=348},{X=559,Y=347},{X=558,Y=353},{X=539,Y=353}}, Confidence 0.5800
Word: 'Marckre', Bounding polygon {{X=560,Y=347},{X=582,Y=348},{X=582,Y=353},{X=559,Y=353}}, Confidence 0.2750
Line: 'Product review', Bounding polygon {{X=538,Y=370},{X=577,Y=370},{X=577,Y=376},{X=538,Y=375}}
Word: 'Product', Bounding polygon {{X=539,Y=370},{X=559,Y=371},{X=558,Y=376},{X=539,Y=376}}, Confidence 0.6150
Word: 'review', Bounding polygon {{X=560,Y=371},{X=576,Y=371},{X=575,Y=376},{X=559,Y=376}}, Confidence 0.0400
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure AI-szolgáltatási előfizetést, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.
Következő lépések
Ebben a rövid útmutatóban megtanulta, hogyan telepítheti az Image Analysis ügyféloldali SDK-t, és hogyan indíthat alapszintű képelemzési hívásokat. A következő lépésben további információt olvashat az Analysis 4.0 API funkcióiról.
- Képelemzés áttekintése
- A minta forráskód a GitHubon található.
Az Image Analysis REST API-val szöveget olvashat, és feliratokat hozhat létre a képhez (csak 4.0-s verzió).
Tipp
Az Analysis 4.0 API számos különböző műveletet hajthat végre. Az összes elérhető funkciót bemutató példákért tekintse meg a Kép elemzése útmutatót .
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozása
- Miután megkapta az Azure-előfizetését, a Azure Portal a kulcs és a végpont lekéréséhez. A rövid útmutatóban szereplő feliratozási funkció használatához az alábbi Azure-régiókban kell létrehoznia az erőforrást: 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, Kelet-Ázsia. Az üzembe helyezés után válassza az Erőforrás megnyitása lehetőséget.
- Az alkalmazás azure AI Vision szolgáltatáshoz való csatlakoztatásához szüksége lesz a létrehozott erőforrás kulcsára és végpontjára. A kulcsot és a végpontot a rövid útmutató későbbi részében illessze be az alábbi kódba.
- Az ingyenes tarifacsomag (
F0
) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős tarifacsomagra éles környezetben.
- Telepített cURL
Rendszerkép elemzése
A képek különböző vizuális funkciókkal való elemzéséhez hajtsa végre az alábbi lépéseket:
Másolja a következő
curl
parancsot egy szövegszerkesztőbe.curl.exe -H "Ocp-Apim-Subscription-Key: <subscriptionKey>" -H "Content-Type: application/json" "https://<endpoint>/computervision/imageanalysis:analyze?features=caption,read&model-version=latest&language=en&api-version=2023-02-01-preview" -d "{'url':'https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png'}"
Hajtsa végre a következő módosításokat a parancs megfelelő területein:
- Cserélje le az értékét
<subscriptionKey>
a Vision erőforráskulcsára. - Cserélje le az értékét
<endpoint>
a Vision-erőforrásvégpontra. Példa:https://YourResourceName.cognitiveservices.azure.com
. - Igény szerint cserélje a kép URL-címét a kérelem törzsében (
https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png
) egy másik elemzendő kép URL-címére.
- Cserélje le az értékét
Nyisson meg egy parancsablakot.
Illessze be a szerkesztett
curl
parancsot a szövegszerkesztőből a parancssori ablakba, majd futtassa a parancsot.
A válasz vizsgálata
A sikeres válasz JSON-ban lesz visszaadva, az alábbi példához hasonlóan:
{
"captionResult":
{
"text": "a man pointing at a screen",
"confidence": 0.4891590476036072
},
"modelVersion": "2023-02-01-preview",
"metadata":
{
"width": 1038,
"height": 692
},
"readResult":
{
"stringIndexType": "TextElements",
"content": "9:35 AM\nE Conference room 154584354\n#: 555-173-4547\nTown Hall\n9:00 AM - 10:00 AM\nAaron Buaion\nDaily SCRUM\n10:00 AM 11:00 AM\nChurlette de Crum\nQuarterly NI Hands\n11.00 AM-12:00 PM\nBebek Shaman\nWeekly stand up\n12:00 PM-1:00 PM\nDelle Marckre\nProduct review",
"pages":
[
{
"height": 692,
"width": 1038,
"angle": 0.3048,
"pageNumber": 1,
"words":
[
{"content":"9:35","boundingBox":[131,130,171,130,171,149,130,149],"confidence":0.993,"span":{"offset":0,"length":4}},
{"content":"AM","boundingBox":[179,130,204,130,203,149,178,149],"confidence":0.998,"span":{"offset":5,"length":2}},
{"content":"E","boundingBox":[131,154,135,154,135,161,131,161],"confidence":0.104,"span":{"offset":8,"length":1}},
{"content":"Conference","boundingBox":[142,154,174,154,173,161,141,161],"confidence":0.902,"span":{"offset":10,"length":10}},
{"content":"room","boundingBox":[175,154,189,155,188,161,175,161],"confidence":0.796,"span":{"offset":21,"length":4}},
{"content":"154584354","boundingBox":[192,155,224,154,223,162,191,161],"confidence":0.864,"span":{"offset":26,"length":9}},
{"content":"#:","boundingBox":[131,163,139,164,139,171,131,171],"confidence":0.036,"span":{"offset":36,"length":2}},
{"content":"555-173-4547","boundingBox":[142,164,182,165,181,171,142,171],"confidence":0.597,"span":{"offset":39,"length":12}},
{"content":"Town","boundingBox":[547,181,568,181,568,190,546,191],"confidence":0.981,"span":{"offset":52,"length":4}},
{"content":"Hall","boundingBox":[570,181,590,181,590,191,570,190],"confidence":0.991,"span":{"offset":57,"length":4}},
{"content":"9:00","boundingBox":[546,192,555,192,555,200,546,200],"confidence":0.09,"span":{"offset":62,"length":4}},
{"content":"AM","boundingBox":[557,192,565,192,565,200,557,200],"confidence":0.991,"span":{"offset":67,"length":2}},
{"content":"-","boundingBox":[567,192,569,192,569,200,567,200],"confidence":0.691,"span":{"offset":70,"length":1}},
{"content":"10:00","boundingBox":[570,192,585,193,584,200,570,200],"confidence":0.885,"span":{"offset":72,"length":5}},
{"content":"AM","boundingBox":[586,193,593,194,593,200,586,200],"confidence":0.991,"span":{"offset":78,"length":2}},
{"content":"Aaron","boundingBox":[545,202,560,202,559,208,544,208],"confidence":0.602,"span":{"offset":81,"length":5}},
{"content":"Buaion","boundingBox":[561,202,580,202,579,208,560,208],"confidence":0.291,"span":{"offset":87,"length":6}},
{"content":"Daily","boundingBox":[538,259,551,260,550,266,538,265],"confidence":0.175,"span":{"offset":94,"length":5}},
{"content":"SCRUM","boundingBox":[552,260,570,260,570,266,551,266],"confidence":0.114,"span":{"offset":100,"length":5}},
{"content":"10:00","boundingBox":[539,267,553,267,552,273,538,272],"confidence":0.857,"span":{"offset":106,"length":5}},
{"content":"AM","boundingBox":[554,267,561,267,560,273,553,273],"confidence":0.998,"span":{"offset":112,"length":2}},
{"content":"11:00","boundingBox":[564,267,578,267,577,273,563,273],"confidence":0.479,"span":{"offset":115,"length":5}},
{"content":"AM","boundingBox":[579,267,586,267,585,273,578,273],"confidence":0.994,"span":{"offset":121,"length":2}},
{"content":"Churlette","boundingBox":[539,274,562,274,561,279,538,279],"confidence":0.464,"span":{"offset":124,"length":9}},
{"content":"de","boundingBox":[563,274,569,274,568,279,562,279],"confidence":0.81,"span":{"offset":134,"length":2}},
{"content":"Crum","boundingBox":[570,274,582,273,581,279,569,279],"confidence":0.885,"span":{"offset":137,"length":4}},
{"content":"Quarterly","boundingBox":[540,296,562,296,562,302,539,302],"confidence":0.523,"span":{"offset":142,"length":9}},
{"content":"NI","boundingBox":[563,296,570,296,570,302,563,302],"confidence":0.303,"span":{"offset":152,"length":2}},
{"content":"Hands","boundingBox":[572,296,588,296,588,302,571,302],"confidence":0.613,"span":{"offset":155,"length":5}},
{"content":"11.00","boundingBox":[538,304,552,304,552,310,538,310],"confidence":0.618,"span":{"offset":161,"length":5}},
{"content":"AM-12:00","boundingBox":[554,304,578,304,577,310,553,310],"confidence":0.27,"span":{"offset":167,"length":8}},
{"content":"PM","boundingBox":[579,304,586,304,586,309,578,310],"confidence":0.662,"span":{"offset":176,"length":2}},
{"content":"Bebek","boundingBox":[539,310,554,310,554,317,539,316],"confidence":0.611,"span":{"offset":179,"length":5}},
{"content":"Shaman","boundingBox":[555,310,576,311,576,317,555,317],"confidence":0.605,"span":{"offset":185,"length":6}},
{"content":"Weekly","boundingBox":[538,332,557,333,556,339,538,338],"confidence":0.606,"span":{"offset":192,"length":6}},
{"content":"stand","boundingBox":[558,333,572,334,571,340,557,339],"confidence":0.489,"span":{"offset":199,"length":5}},
{"content":"up","boundingBox":[574,334,580,334,580,340,573,340],"confidence":0.815,"span":{"offset":205,"length":2}},
{"content":"12:00","boundingBox":[539,341,553,341,552,347,538,347],"confidence":0.826,"span":{"offset":208,"length":5}},
{"content":"PM-1:00","boundingBox":[554,341,575,341,574,347,553,347],"confidence":0.209,"span":{"offset":214,"length":7}},
{"content":"PM","boundingBox":[576,341,583,341,582,347,575,347],"confidence":0.039,"span":{"offset":222,"length":2}},
{"content":"Delle","boundingBox":[540,348,559,347,558,353,539,353],"confidence":0.58,"span":{"offset":225,"length":5}},
{"content":"Marckre","boundingBox":[560,347,582,348,582,353,559,353],"confidence":0.275,"span":{"offset":231,"length":7}},
{"content":"Product","boundingBox":[539,370,559,371,558,376,539,376],"confidence":0.615,"span":{"offset":239,"length":7}},
{"content":"review","boundingBox":[560,371,576,371,575,376,559,376],"confidence":0.04,"span":{"offset":247,"length":6}}
],
"spans":
[
{"offset":0,"length":253}
],
"lines":
[
{"content":"9:35 AM","boundingBox":[130,129,215,130,215,149,130,148],"spans":[{"offset":0,"length":7}]},
{"content":"E Conference room 154584354","boundingBox":[130,153,224,154,224,161,130,161],"spans":[{"offset":8,"length":27}]},
{"content":"#: 555-173-4547","boundingBox":[130,163,182,164,181,171,130,170],"spans":[{"offset":36,"length":15}]},
{"content":"Town Hall","boundingBox":[546,180,590,180,590,190,546,190],"spans":[{"offset":52,"length":9}]},
{"content":"9:00 AM - 10:00 AM","boundingBox":[546,191,596,192,596,200,546,199],"spans":[{"offset":62,"length":18}]},
{"content":"Aaron Buaion","boundingBox":[543,201,581,201,581,208,543,208],"spans":[{"offset":81,"length":12}]},
{"content":"Daily SCRUM","boundingBox":[537,259,575,260,575,266,537,265],"spans":[{"offset":94,"length":11}]},
{"content":"10:00 AM 11:00 AM","boundingBox":[536,266,590,266,590,272,536,272],"spans":[{"offset":106,"length":17}]},
{"content":"Churlette de Crum","boundingBox":[538,273,584,273,585,279,538,279],"spans":[{"offset":124,"length":17}]},
{"content":"Quarterly NI Hands","boundingBox":[538,295,588,295,588,301,538,302],"spans":[{"offset":142,"length":18}]},
{"content":"11.00 AM-12:00 PM","boundingBox":[536,304,588,303,588,309,536,310],"spans":[{"offset":161,"length":17}]},
{"content":"Bebek Shaman","boundingBox":[538,310,577,310,577,316,538,316],"spans":[{"offset":179,"length":12}]},
{"content":"Weekly stand up","boundingBox":[537,332,582,333,582,339,537,338],"spans":[{"offset":192,"length":15}]},
{"content":"12:00 PM-1:00 PM","boundingBox":[537,340,583,340,583,347,536,346],"spans":[{"offset":208,"length":16}]},
{"content":"Delle Marckre","boundingBox":[538,347,582,347,582,352,538,353],"spans":[{"offset":225,"length":13}]},
{"content":"Product review","boundingBox":[538,370,577,370,577,376,538,375],"spans":[{"offset":239,"length":14}]}
]
}
],
"styles": [],
"modelVersion": "2022-04-30"
}
}
Következő lépések
Ebben a rövid útmutatóban megtanulta, hogyan indíthat alapszintű képelemzési hívásokat a REST API használatával. Ezután további információk az Analysis 4.0 API funkcióiról.