esemény
AI-alkalmazások és -ügynökök létrehozása
márc. 17. 21 - márc. 21. 10
Csatlakozzon a meetup sorozathoz, hogy valós használati esetek alapján, skálázható AI-megoldásokat hozzon létre más fejlesztőkkel és szakértőkkel.
RegisztrációEzt a böngészőt már nem támogatjuk.
Frissítsen a Microsoft Edge-re, hogy kihasználhassa a legújabb funkciókat, a biztonsági frissítéseket és a technikai támogatást.
A .NET-hez készült Custom Vision ügyfélkódtár használatának első lépései. Az alábbi lépések végrehajtásával telepítheti a csomagot, és kipróbálhatja a példakódot egy képosztályozási modell létrehozásához. Létrehozhat egy projektet, címkéket vehet fel, betanítheti a projektet, és a projekt előrejelzési végpontJÁNAK URL-címével programozott módon tesztelheti. Ezt a példát használhatja sablonként saját képfelismerő alkalmazás létrehozásához.
Megjegyzés
Ha kód írása nélkül szeretne besorolási modellt létrehozni és betaníteni, tekintse meg a böngészőalapú útmutatót.
Referenciadokumentáció | Kódtár forráskódja betanításhoz és előrejelzéshez | Csomag (NuGet) betanítási és előrejelzési | mintákhoz
F0
) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős szintre az éles környezetben.Ebben a példában a hitelesítő adatokat az alkalmazást futtató helyi gépen lévő környezeti változókba fogja írni.
Nyissa meg az Azure Portalt. Ha az Előfeltételek szakaszban létrehozott Custom Vision-erőforrások sikeresen üzembe helyezve, válassza az Erőforrás megnyitása gombot a Következő lépések szakaszban. A kulcsokat és végpontokat az erőforrások Kulcsok és végpontok lapján, az Erőforrás-kezelés területen találja. Be kell szereznie a betanítási erőforrás és az előrejelzési erőforrás kulcsait, valamint az API-végpontokat.
Az előrejelzési erőforrás-azonosítót az előrejelzési erőforrás Tulajdonságok lapján találja az Azure Portalon, erőforrás-azonosítóként felsorolva.
Tipp
Ezeket az értékeket is lekérheti https://www.customvision.ai . A bejelentkezés után válassza a beállítások ikont a jobb felső sarokban. A Beállítás lapon megtekintheti az összes kulcsot, erőforrás-azonosítót és végpontot.
A környezeti változók 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.
VISION_TRAINING KEY
környezeti változó beállításához cserélje le <your-training-key>
a betanítási erőforrás egyik kulcsára.VISION_TRAINING_ENDPOINT
környezeti változó beállításához cserélje le <your-training-endpoint>
a betanítási erőforrás végpontját.VISION_PREDICTION_KEY
környezeti változó beállításához cserélje le <your-prediction-key>
az előrejelzési erőforrás egyik kulcsára.VISION_PREDICTION_ENDPOINT
környezeti változó beállításához cserélje le <your-prediction-endpoint>
az előrejelzési erőforrás végpontját.VISION_PREDICTION_RESOURCE_ID
környezeti változó beállításához cserélje le <your-resource-id>
az előrejelzési erőforrás erőforrás-azonosítóját.Fontos
Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal rendelkező Microsoft Entra ID-hitelesítést javasoljuk, hogy ne tárolja a hitelesítő adatokat a felhőben futó alkalmazásokkal.
Óvatosan használja az API-kulcsokat. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan. API-kulcsok használata esetén biztonságosan tárolhatja őket az Azure Key Vaultban, rendszeresen elforgathatja a kulcsokat, és szerepköralapú hozzáférés-vezérléssel és hálózati hozzáférés-korlátozásokkal korlátozhatja az Azure Key Vaulthoz való hozzáférést. További információ az API-kulcsok biztonságos használatáról az alkalmazásokban: API-kulcsok az Azure Key Vaulttal.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
export VISION_TRAINING_KEY=<your-training-key>
export VISION_TRAINING_ENDPOINT=<your-training-endpoint>
export VISION_PREDICTION_KEY=<your-prediction-key>
export VISION_PREDICTION_ENDPOINT=<your-prediction-endpoint>
export VISION_PREDICTION_RESOURCE_ID=<your-resource-id>
Miután hozzáadta a környezeti változókat, futtassa source ~/.bashrc
a konzolablakból a módosítások hatékonyabbá tétele érdekében.
A Visual Studio használatával hozzon létre egy új .NET Core-alkalmazást.
Miután létrehozott egy új projektet, telepítse az ügyfélkódtárat úgy, hogy a jobb gombbal a projektmegoldásra kattint a Megoldáskezelő, és válassza a NuGet-csomagok kezelése lehetőséget. Válassza a Tallózás lehetőséget a megnyíló csomagkezelőben, majd jelölje be az Előzetes verzió belefoglalása jelölőnégyzetet, és keressen Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training
rá és Microsoft.Azure.CognitiveServices.Vision.CustomVision.Prediction
. Válassza ki a legújabb verziót, majd válassza a Telepítés lehetőséget.
Tipp
Szeretné egyben megtekinteni a teljes gyorsútmutatós kódfájlt? Megtalálhatja a GitHubon, amely a gyorsútmutató kódmintáit is tartalmazza.
Nyissa meg a program.cs fájlt a projektkönyvtárban, és adja hozzá a következő using
irányelveket:
using Microsoft.Azure.CognitiveServices.Vision.CustomVision.Prediction;
using Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training;
using Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training.Models;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
Az alkalmazás metódusában main
olyan változókat hozhat létre, amelyek lekérik az erőforrás kulcsait és végpontjait a környezeti változókból. Emellett deklarál néhány alapvető objektumot is, amelyeket később használni fog.
// Retrieve the environment variables for your credentials:
private static string trainingEndpoint = Environment.GetEnvironmentVariable("VISION_TRAINING_ENDPOINT");
private static string trainingKey = Environment.GetEnvironmentVariable("VISION_TRAINING_KEY");
private static string predictionEndpoint = Environment.GetEnvironmentVariable("VISION_PREDICTION_ENDPOINT");
private static string predictionKey = Environment.GetEnvironmentVariable("VISION_PREDICTION_KEY");
private static string predictionResourceId = Environment.GetEnvironmentVariable("VISION_PREDICTION_RESOURCE_ID");
private static List<string> hemlockImages;
private static List<string> japaneseCherryImages;
private static Tag hemlockTag;
private static Tag japaneseCherryTag;
private static Iteration iteration;
private static string publishedModelName = "treeClassModel";
private static MemoryStream testImage;
Az alkalmazás metódusában main
adja hozzá az ebben a rövid útmutatóban használt metódusok hívásait. Ezeket később implementálhatja.
CustomVisionTrainingClient trainingApi = AuthenticateTraining(trainingEndpoint, trainingKey);
CustomVisionPredictionClient predictionApi = AuthenticatePrediction(predictionEndpoint, predictionKey);
Project project = CreateProject(trainingApi);
AddTags(trainingApi, project);
UploadImages(trainingApi, project);
TrainProject(trainingApi, project);
PublishIteration(trainingApi, project);
TestIteration(predictionApi, project);
DeleteProject(trainingApi, project);
Egy új módszerrel példányosíthatja a betanítási és előrejelzési ügyfeleket a végpont és a kulcsok használatával.
private static CustomVisionTrainingClient AuthenticateTraining(string endpoint, string trainingKey)
{
// Create the Api, passing in the training key
CustomVisionTrainingClient trainingApi = new CustomVisionTrainingClient(new Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training.ApiKeyServiceClientCredentials(trainingKey))
{
Endpoint = endpoint
};
return trainingApi;
}
private static CustomVisionPredictionClient AuthenticatePrediction(string endpoint, string predictionKey)
{
// Create a prediction endpoint, passing in the obtained prediction key
CustomVisionPredictionClient predictionApi = new CustomVisionPredictionClient(new Microsoft.Azure.CognitiveServices.Vision.CustomVision.Prediction.ApiKeyServiceClientCredentials(predictionKey))
{
Endpoint = endpoint
};
return predictionApi;
}
Ez a következő kódrészlet létrehoz egy képbesorolási projektet. A létrehozott projekt megjelenik a Custom Vision webhelyén. Tekintse meg a CreateProject metódust a projekt létrehozásakor szükséges egyéb beállítások megadásához (erről az osztályozó webes portál összeállítása című útmutatóban olvashat).
private static Project CreateProject(CustomVisionTrainingClient trainingApi)
{
// Create a new project
Console.WriteLine("Creating new project:");
return trainingApi.CreateProject("My New Project");
}
Ez a módszer határozza meg a modellt betanított címkéket.
private static void AddTags(CustomVisionTrainingClient trainingApi, Project project)
{
// Make two tags in the new project
hemlockTag = trainingApi.CreateTag(project.Id, "Hemlock");
japaneseCherryTag = trainingApi.CreateTag(project.Id, "Japanese Cherry");
}
Először töltse le a projekt mintaképét. Mentse a Mintaképek mappa tartalmát a helyi eszközre.
Ezután adjon meg egy segédmetódust, amellyel feltöltheti a képeket ebbe a könyvtárba. Előfordulhat, hogy szerkesztenie kell az GetFiles
argumentumot, hogy a rendszer a képek mentési helyére mutasson.
private static void LoadImagesFromDisk()
{
// this loads the images to be uploaded from disk into memory
hemlockImages = Directory.GetFiles(Path.Combine("Images", "Hemlock")).ToList();
japaneseCherryImages = Directory.GetFiles(Path.Combine("Images", "Japanese_Cherry")).ToList();
testImage = new MemoryStream(File.ReadAllBytes(Path.Combine("Images", "Test", "test_image.jpg")));
}
Ezután adjon meg egy módszert a képek feltöltésére, és alkalmazza a címkéket a mappa helyének megfelelően. A képek már rendezve vannak. A képeket iteratív módon vagy kötegben (kötegenként legfeljebb 64) töltheti fel és címkézheti fel. Ez a kódrészlet mindkettőre tartalmaz példákat.
private static void UploadImages(CustomVisionTrainingClient trainingApi, Project project)
{
// Add some images to the tags
Console.WriteLine("\tUploading images");
LoadImagesFromDisk();
// Images can be uploaded one at a time
foreach (var image in hemlockImages)
{
using (var stream = new MemoryStream(File.ReadAllBytes(image)))
{
trainingApi.CreateImagesFromData(project.Id, stream, new List<Guid>() { hemlockTag.Id });
}
}
// Or uploaded in a single batch
var imageFiles = japaneseCherryImages.Select(img => new ImageFileCreateEntry(Path.GetFileName(img), File.ReadAllBytes(img))).ToList();
trainingApi.CreateImagesFromFiles(project.Id, new ImageFileCreateBatch(imageFiles, new List<Guid>() { japaneseCherryTag.Id }));
}
Ez a módszer hozza létre az első betanítási iterációt a projektben. A betanítás befejezéséig lekérdezi a szolgáltatást.
private static void TrainProject(CustomVisionTrainingClient trainingApi, Project project)
{
// Now there are images with tags start training the project
Console.WriteLine("\tTraining");
iteration = trainingApi.TrainProject(project.Id);
// The returned iteration will be in progress, and can be queried periodically to see when it has completed
while (iteration.Status == "Training")
{
Console.WriteLine("Waiting 10 seconds for training to complete...");
Thread.Sleep(10000);
// Re-query the iteration to get it's updated status
iteration = trainingApi.GetIteration(project.Id, iteration.Id);
}
}
Tipp
Betanítása kijelölt címkékkel
Igény szerint csak az alkalmazott címkék egy részhalmazára taníthat be. Érdemes lehet ezt megtennie, ha még nem alkalmazott elég címkét bizonyos címkékre, de van elég más.
A TrainProject hívásban használja a paraméterttrainingParameters
. Hozzon létre egy TrainingParameterst , és állítsa a tulajdonságát SelectedTags
a használni kívánt címkék azonosítóinak listájára. A modell betanítása csak a lista címkéinek felismerésére fog betanulni.
Ezzel a módszerrel a modell aktuális iterációja elérhető lesz a lekérdezéshez. A modell neve hivatkozásként használható előrejelzési kérések küldéséhez. Meg kell adnia a saját értékét a következőhöz predictionResourceId
: . Az előrejelzési erőforrás-azonosítót az Azure Portal Tulajdonságok lapján találja, erőforrás-azonosítóként felsorolva.
private static void PublishIteration(CustomVisionTrainingClient trainingApi, Project project)
{
trainingApi.PublishIteration(project.Id, iteration.Id, publishedModelName, predictionResourceId);
Console.WriteLine("Done!\n");
// Now there is a trained endpoint, it can be used to make a prediction
}
A szkript ezen része betölti a képet, lekérdezi a modell végpontját, majd megjeleníti az előrejelzési adatokat a konzolon.
private static void TestIteration(CustomVisionPredictionClient predictionApi, Project project)
{
// Make a prediction against the new project
Console.WriteLine("Making a prediction:");
var result = predictionApi.ClassifyImage(project.Id, publishedModelName, testImage);
// Loop over each prediction and write out the results
foreach (var c in result.Predictions)
{
Console.WriteLine($"\t{c.TagName}: {c.Probability:P1}");
}
}
Futtassa az alkalmazást az IDE ablak tetején található Hibakeresés gombra kattintva.
A futtatása során az alkalmazásnak meg kell nyitnia egy konzolablakot, és az alábbi kimenetet kell megjelenítenie:
Creating new project:
Uploading images
Training
Done!
Making a prediction:
Hemlock: 95.0%
Japanese Cherry: 0.0%
Ezután ellenőrizheti, hogy a tesztkép (az Images/Test/ mappában található) megfelelően lett-e megcímkézve. Az alkalmazásból történő kilépéshez nyomjon meg egy billentyűt. Vissza is léphet a Custom Vision webhelyére, és megtekintheti az újonnan létrehozott projekt aktuális állapotát.
Ha saját képosztályozási projektet szeretne implementálni (vagy inkább egy objektumészlelési projektet szeretne kipróbálni), érdemes törölnie a faazonosítási projektet ebből a példából. Az ingyenes előfizetés két Custom Vision-projektet tesz lehetővé.
A Custom Vision webhelyén lépjen a projektekhez, és kattintson a My New Project panel alsó részén található kuka ikonra.
Most már láthatta, hogyan végezhető el az objektumészlelési folyamat minden lépése kódban. Ez a minta egyetlen betanítási iterációt hajt végre, de gyakran többször kell betanítania és tesztelnie a modellt, hogy pontosabb legyen.
Ez az útmutató útmutatást és mintakódot biztosít a Custom Vision Go ügyfélkódtárának a képosztályozási modell létrehozásához való használatának megkezdéséhez. Létrehoz egy projektet, címkéket ad hozzá, betanítja a projektet, és a projekt előrejelzési végpontJÁNAK URL-címével programozott módon teszteli azt. Ezt a példát használhatja sablonként saját képfelismerő alkalmazás létrehozásához.
Megjegyzés
Ha kód írása nélkül szeretne besorolási modellt létrehozni és betaníteni, tekintse meg a böngészőalapú útmutatót.
Használja a Custom Vision ügyféloldali kódtárát a Következőhöz:
Referenciadokumentáció ( betanítás) és (előrejelzés)
F0
) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős szintre az éles környezetben.Ebben a példában a hitelesítő adatokat az alkalmazást futtató helyi gépen lévő környezeti változókba fogja írni.
Nyissa meg az Azure Portalt. Ha az Előfeltételek szakaszban létrehozott Custom Vision-erőforrások sikeresen üzembe helyezve, válassza az Erőforrás megnyitása gombot a Következő lépések szakaszban. A kulcsokat és végpontokat az erőforrások Kulcsok és végpontok lapján, az Erőforrás-kezelés területen találja. Be kell szereznie a betanítási erőforrás és az előrejelzési erőforrás kulcsait, valamint az API-végpontokat.
Az előrejelzési erőforrás-azonosítót az előrejelzési erőforrás Tulajdonságok lapján találja az Azure Portalon, erőforrás-azonosítóként felsorolva.
Tipp
Ezeket az értékeket is lekérheti https://www.customvision.ai . A bejelentkezés után válassza a beállítások ikont a jobb felső sarokban. A Beállítás lapon megtekintheti az összes kulcsot, erőforrás-azonosítót és végpontot.
A környezeti változók 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.
VISION_TRAINING KEY
környezeti változó beállításához cserélje le <your-training-key>
a betanítási erőforrás egyik kulcsára.VISION_TRAINING_ENDPOINT
környezeti változó beállításához cserélje le <your-training-endpoint>
a betanítási erőforrás végpontját.VISION_PREDICTION_KEY
környezeti változó beállításához cserélje le <your-prediction-key>
az előrejelzési erőforrás egyik kulcsára.VISION_PREDICTION_ENDPOINT
környezeti változó beállításához cserélje le <your-prediction-endpoint>
az előrejelzési erőforrás végpontját.VISION_PREDICTION_RESOURCE_ID
környezeti változó beállításához cserélje le <your-resource-id>
az előrejelzési erőforrás erőforrás-azonosítóját.Fontos
Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal rendelkező Microsoft Entra ID-hitelesítést javasoljuk, hogy ne tárolja a hitelesítő adatokat a felhőben futó alkalmazásokkal.
Óvatosan használja az API-kulcsokat. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan. API-kulcsok használata esetén biztonságosan tárolhatja őket az Azure Key Vaultban, rendszeresen elforgathatja a kulcsokat, és szerepköralapú hozzáférés-vezérléssel és hálózati hozzáférés-korlátozásokkal korlátozhatja az Azure Key Vaulthoz való hozzáférést. További információ az API-kulcsok biztonságos használatáról az alkalmazásokban: API-kulcsok az Azure Key Vaulttal.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
export VISION_TRAINING_KEY=<your-training-key>
export VISION_TRAINING_ENDPOINT=<your-training-endpoint>
export VISION_PREDICTION_KEY=<your-prediction-key>
export VISION_PREDICTION_ENDPOINT=<your-prediction-endpoint>
export VISION_PREDICTION_RESOURCE_ID=<your-resource-id>
Miután hozzáadta a környezeti változókat, futtassa source ~/.bashrc
a konzolablakból a módosítások hatékonyabbá tétele érdekében.
Ha a Custom Vision for Go-val szeretne képelemzési alkalmazást írni, szüksége van a Custom Vision szolgáltatás ügyfélkódtárára. Futtassa az alábbi parancsot a PowerShellben:
go get -u github.com/Azure/azure-sdk-for-go/...
Vagy ha használja dep
, futtassa az adattáron belül a következőt:
dep ensure -add github.com/Azure/azure-sdk-for-go
Ez a példa az Azure AI-szolgáltatások Python SDK-mintatárából származó képeket használja a GitHubon. Klónozza vagy töltse le ezt az adattárat a fejlesztői környezetbe. Jegyezze meg a mappa helyét egy későbbi lépésben.
Hozzon létre egy sample.go nevű új fájlt az előnyben részesített projektkönyvtárban, és nyissa meg az előnyben részesített kódszerkesztőben.
Adja hozzá a következő kódot a szkripthez egy új Custom Vision Service-projekt létrehozásához.
Tekintse meg a CreateProject metódust a projekt létrehozásakor szükséges egyéb beállítások megadásához (erről az osztályozó webes portál összeállítása című útmutatóban olvashat).
import(
"context"
"bytes"
"fmt"
"io/ioutil"
"path"
"log"
"time"
"github.com/Azure/azure-sdk-for-go/services/cognitiveservices/v3.0/customvision/training"
"github.com/Azure/azure-sdk-for-go/services/cognitiveservices/v3.0/customvision/prediction"
)
var (
training_key string = os.Getenv("VISION_TRAINING_KEY")
prediction_key string = os.Getenv("VISION_PREDICTION_KEY")
prediction_resource_id = os.Getenv("VISION_PREDICTION_RESOURCE_ID")
endpoint string = os.Getenv("VISION_ENDPOINT")
project_name string = "Go Sample Project"
iteration_publish_name = "classifyModel"
sampleDataDirectory = "<path to sample images>"
)
func main() {
fmt.Println("Creating project...")
ctx = context.Background()
trainer := training.New(training_key, endpoint)
project, err := trainer.CreateProject(ctx, project_name, "sample project", nil, string(training.Multilabel))
if (err != nil) {
log.Fatal(err)
}
Ha besorolási címkéket szeretne létrehozni a projekthez, adja hozzá a következő kódot a sample.go végéhez:
// Make two tags in the new project
hemlockTag, _ := trainer.CreateTag(ctx, *project.ID, "Hemlock", "Hemlock tree tag", string(training.Regular))
cherryTag, _ := trainer.CreateTag(ctx, *project.ID, "Japanese Cherry", "Japanese cherry tree tag", string(training.Regular))
A minta képek projekthez adásához, helyezze el a következő kódot a címke létrehozása után. Ez a kód a képeket a hozzájuk tartozó címkékkel együtt tölti fel. Egyetlen kötegben legfeljebb 64 képet tölthet fel.
Megjegyzés
Módosítania kell a rendszerképek elérési útját annak alapján, hogy hol töltötte le korábban az Azure AI-szolgáltatások Go SDK-mintái projektet.
fmt.Println("Adding images...")
japaneseCherryImages, err := ioutil.ReadDir(path.Join(sampleDataDirectory, "Japanese Cherry"))
if err != nil {
fmt.Println("Error finding Sample images")
}
hemLockImages, err := ioutil.ReadDir(path.Join(sampleDataDirectory, "Hemlock"))
if err != nil {
fmt.Println("Error finding Sample images")
}
for _, file := range hemLockImages {
imageFile, _ := ioutil.ReadFile(path.Join(sampleDataDirectory, "Hemlock", file.Name()))
imageData := ioutil.NopCloser(bytes.NewReader(imageFile))
trainer.CreateImagesFromData(ctx, *project.ID, imageData, []string{ hemlockTag.ID.String() })
}
for _, file := range japaneseCherryImages {
imageFile, _ := ioutil.ReadFile(path.Join(sampleDataDirectory, "Japanese Cherry", file.Name()))
imageData := ioutil.NopCloser(bytes.NewReader(imageFile))
trainer.CreateImagesFromData(ctx, *project.ID, imageData, []string{ cherryTag.ID.String() })
}
Ez a kód létrehozza az előrejelzési modell első iterációját, majd közzéteszi az iterációt az előrejelzési végponton. A közzétett iterációnak megadott név használható előrejelzési kérések küldéséhez. Az iteráció csak a közzétételig érhető el az előrejelzési végponton.
fmt.Println("Training...")
iteration, _ := trainer.TrainProject(ctx, *project.ID)
for {
if *iteration.Status != "Training" {
break
}
fmt.Println("Training status: " + *iteration.Status)
time.Sleep(1 * time.Second)
iteration, _ = trainer.GetIteration(ctx, *project.ID, *iteration.ID)
}
fmt.Println("Training status: " + *iteration.Status)
trainer.PublishIteration(ctx, *project.ID, *iteration.ID, iteration_publish_name, prediction_resource_id))
A képek előrejelzési végpontra való küldéséhez és az előrejelzés lekéréséhez adja hozzá a következő kódot a fájl végéhez:
fmt.Println("Predicting...")
predictor := prediction.New(prediction_key, endpoint)
testImageData, _ := ioutil.ReadFile(path.Join(sampleDataDirectory, "Test", "test_image.jpg"))
results, _ := predictor.ClassifyImage(ctx, *project.ID, iteration_publish_name, ioutil.NopCloser(bytes.NewReader(testImageData)), "")
for _, prediction := range *results.Predictions {
fmt.Printf("\t%s: %.2f%%", *prediction.TagName, *prediction.Probability * 100)
fmt.Println("")
}
}
Futtassa az alkalmazást a következő paranccsal:
go run sample.go
Az alkalmazás kimenetének az alábbi szöveghez hasonlóan kell kinéznie:
Creating project...
Adding images...
Training...
Training status: Training
Training status: Training
Training status: Training
Training status: Completed
Done!
Hemlock: 93.53%
Japanese Cherry: 0.01%
Ezután ellenőrizheti, hogy a tesztkép (base_image_url<>/Images/Test/) megfelelően van-e megjelölve. Vissza is léphet a Custom Vision webhelyére, és megtekintheti az újonnan létrehozott projekt aktuális állapotát.
Ha saját képosztályozási projektet szeretne implementálni (vagy inkább egy objektumészlelési projektet szeretne kipróbálni), érdemes törölnie a faazonosítási projektet ebből a példából. Az ingyenes előfizetés két Custom Vision-projektet tesz lehetővé.
A Custom Vision webhelyén lépjen a projektekhez, és kattintson a My New Project panel alsó részén található kuka ikonra.
Most már láthatta, hogyan végezhető el az objektumészlelési folyamat minden lépése kódban. Ez a minta egyetlen betanítási iterációt hajt végre, de gyakran többször kell betanítania és tesztelnie a modellt, hogy pontosabb legyen.
Ismerkedés a Custom Vision Java-ügyfélkódtárával képosztályozási modell létrehozásához. Az alábbi lépések végrehajtásával telepítheti a csomagot, és kipróbálhatja az alapműveletek példakódját. Ezt a példát használhatja sablonként saját képfelismerő alkalmazás létrehozásához.
Megjegyzés
Ha kód írása nélkül szeretne besorolási modellt létrehozni és betaníteni, tekintse meg a böngészőalapú útmutatót.
A Java-hoz készült Custom Vision ügyfélkódtár használatával:
Referenciadokumentáció | Kódtár forráskódja (betanítás) és (előrejelzés)| Artifact (Maven) for (training) and (prediction) | Samples
F0
) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős szintre az éles környezetben.Ebben a példában a hitelesítő adatokat az alkalmazást futtató helyi gépen lévő környezeti változókba fogja írni.
Nyissa meg az Azure Portalt. Ha az Előfeltételek szakaszban létrehozott Custom Vision-erőforrások sikeresen üzembe helyezve, válassza az Erőforrás megnyitása gombot a Következő lépések szakaszban. A kulcsokat és végpontokat az erőforrások Kulcsok és végpontok lapján, az Erőforrás-kezelés területen találja. Be kell szereznie a betanítási erőforrás és az előrejelzési erőforrás kulcsait, valamint az API-végpontokat.
Az előrejelzési erőforrás-azonosítót az előrejelzési erőforrás Tulajdonságok lapján találja az Azure Portalon, erőforrás-azonosítóként felsorolva.
Tipp
Ezeket az értékeket is lekérheti https://www.customvision.ai . A bejelentkezés után válassza a beállítások ikont a jobb felső sarokban. A Beállítás lapon megtekintheti az összes kulcsot, erőforrás-azonosítót és végpontot.
A környezeti változók 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.
VISION_TRAINING KEY
környezeti változó beállításához cserélje le <your-training-key>
a betanítási erőforrás egyik kulcsára.VISION_TRAINING_ENDPOINT
környezeti változó beállításához cserélje le <your-training-endpoint>
a betanítási erőforrás végpontját.VISION_PREDICTION_KEY
környezeti változó beállításához cserélje le <your-prediction-key>
az előrejelzési erőforrás egyik kulcsára.VISION_PREDICTION_ENDPOINT
környezeti változó beállításához cserélje le <your-prediction-endpoint>
az előrejelzési erőforrás végpontját.VISION_PREDICTION_RESOURCE_ID
környezeti változó beállításához cserélje le <your-resource-id>
az előrejelzési erőforrás erőforrás-azonosítóját.Fontos
Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal rendelkező Microsoft Entra ID-hitelesítést javasoljuk, hogy ne tárolja a hitelesítő adatokat a felhőben futó alkalmazásokkal.
Óvatosan használja az API-kulcsokat. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan. API-kulcsok használata esetén biztonságosan tárolhatja őket az Azure Key Vaultban, rendszeresen elforgathatja a kulcsokat, és szerepköralapú hozzáférés-vezérléssel és hálózati hozzáférés-korlátozásokkal korlátozhatja az Azure Key Vaulthoz való hozzáférést. További információ az API-kulcsok biztonságos használatáról az alkalmazásokban: API-kulcsok az Azure Key Vaulttal.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
export VISION_TRAINING_KEY=<your-training-key>
export VISION_TRAINING_ENDPOINT=<your-training-endpoint>
export VISION_PREDICTION_KEY=<your-prediction-key>
export VISION_PREDICTION_ENDPOINT=<your-prediction-endpoint>
export VISION_PREDICTION_RESOURCE_ID=<your-resource-id>
Miután hozzáadta a környezeti változókat, futtassa source ~/.bashrc
a konzolablakból a módosítások hatékonyabbá tétele érdekében.
Egy konzolablakban (pl. cmd, PowerShell vagy Bash) hozzon létre egy új mappát az alkalmazásnak, majd navigáljon oda.
mkdir myapp && cd myapp
Futtassa a gradle init
parancsot a munkakönyvtárból. Ez a parancs alapvető buildfájlokat hoz létre a Gradle számára, beleértve a build.gradle.kts fájlt is, amelyet futásidőben használnak az alkalmazás létrehozásához és konfigurálásához.
gradle init --type basic
Amikor a rendszer kéri, hogy válasszon egy DSL-t, válassza a Kotlin lehetőséget.
Keresse meg a build.gradle.kts fájlt, és nyissa meg a kívánt IDE- vagy szövegszerkesztővel. Ezután másolja a következő buildkonfigurációba. Ez a konfiguráció java-alkalmazásként definiálja a projektet, amelynek belépési pontja az osztály CustomVisionQuickstart
. Importálja a Custom Vision-kódtárakat.
plugins {
java
application
}
application {
mainClassName = "CustomVisionQuickstart"
}
repositories {
mavenCentral()
}
dependencies {
compile(group = "com.azure", name = "azure-cognitiveservices-customvision-training", version = "1.1.0-preview.2")
compile(group = "com.azure", name = "azure-cognitiveservices-customvision-prediction", version = "1.1.0-preview.2")
}
A munkakönyvtárban futtassa a következő parancsot a projekt forrásmappájának létrehozásához:
mkdir -p src/main/java
Lépjen az új mappára, és hozzon létre egy CustomVisionQuickstart.java nevű fájlt. Nyissa meg a kívánt szerkesztőben vagy IDE-ben, és adja hozzá a következő import
utasításokat:
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import com.google.common.io.ByteStreams;
import com.microsoft.azure.cognitiveservices.vision.customvision.training.models.Classifier;
import com.microsoft.azure.cognitiveservices.vision.customvision.training.models.Domain;
import com.microsoft.azure.cognitiveservices.vision.customvision.training.models.DomainType;
import com.microsoft.azure.cognitiveservices.vision.customvision.training.models.ImageFileCreateBatch;
import com.microsoft.azure.cognitiveservices.vision.customvision.training.models.ImageFileCreateEntry;
import com.microsoft.azure.cognitiveservices.vision.customvision.training.models.Iteration;
import com.microsoft.azure.cognitiveservices.vision.customvision.training.models.Project;
import com.microsoft.azure.cognitiveservices.vision.customvision.training.models.Region;
import com.microsoft.azure.cognitiveservices.vision.customvision.training.models.TrainProjectOptionalParameter;
import com.microsoft.azure.cognitiveservices.vision.customvision.training.CustomVisionTrainingClient;
import com.microsoft.azure.cognitiveservices.vision.customvision.training.Trainings;
import com.microsoft.azure.cognitiveservices.vision.customvision.training.CustomVisionTrainingManager;
import com.microsoft.azure.cognitiveservices.vision.customvision.prediction.models.ImagePrediction;
import com.microsoft.azure.cognitiveservices.vision.customvision.prediction.models.Prediction;
import com.microsoft.azure.cognitiveservices.vision.customvision.prediction.CustomVisionPredictionClient;
import com.microsoft.azure.cognitiveservices.vision.customvision.prediction.CustomVisionPredictionManager;
import com.microsoft.azure.cognitiveservices.vision.customvision.training.models.Tag;
Tipp
Szeretné egyben megtekinteni a teljes gyorsútmutatós kódfájlt? Megtalálhatja a GitHubon, amely a gyorsútmutató kódmintáit is tartalmazza.
Az alkalmazás osztályában CustomVisionQuickstart
hozzon létre változókat, amelyek lekérik az erőforrás kulcsait és végpontját a környezeti változókból.
// retrieve environment variables
final static String trainingApiKey = System.getenv("VISION_TRAINING_KEY");
final static String trainingEndpoint = System.getenv("VISION_TRAINING_ENDPOINT");
final static String predictionApiKey = System.getenv("VISION_PREDICTION_KEY");
final static String predictionEndpoint = System.getenv("VISION_PREDICTION_ENDPOINT");
final static String predictionResourceId = System.getenv("VISION_PREDICTION_RESOURCE_ID");
Fontos
Ne felejtse el eltávolítani a kulcsokat a kódból, amikor elkészült, és soha ne tegye közzé őket nyilvánosan. Éles környezetben biztonságos módon tárolhatja és érheti el a hitelesítő adatait, például az Azure Key Vaultot. További információkért tekintse meg az Azure AI-szolgáltatások biztonsági cikkét.
Az alkalmazás metódusában main
adja hozzá az ebben a rövid útmutatóban használt metódusok hívásait. Ezeket később fogja meghatározni.
Project project = createProject(trainClient);
addTags(trainClient, project);
uploadImages(trainClient, project);
trainProject(trainClient, project);
publishIteration(trainClient, project);
testProject(predictor, project);
Az alábbi osztályok és felületek a Custom Vision Java ügyfélkódtár néhány fő funkcióját kezelik.
Név | Leírás |
---|---|
CustomVisionTrainingClient | Ez az osztály kezeli a modellek létrehozását, betanítását és közzétételét. |
CustomVisionPredictionClient | Ez az osztály kezeli a modellek lekérdezését képosztályozási előrejelzésekhez. |
ImagePrediction | Ez az osztály egyetlen előrejelzést határoz meg egyetlen képen. Tartalmazza az objektumazonosító és -név tulajdonságait, valamint egy megbízhatósági pontszámot. |
Ezek a kódrészletek bemutatják, hogyan végezheti el a következő feladatokat a Java Custom Vision ügyfélkódtárával:
A metódusban példányosíthatja a main
betanítási és előrejelzési ügyfeleket a végpont és a kulcsok használatával.
// Authenticate
CustomVisionTrainingClient trainClient = CustomVisionTrainingManager
.authenticate(trainingEndpoint, trainingApiKey)
.withEndpoint(trainingEndpoint);
CustomVisionPredictionClient predictor = CustomVisionPredictionManager
.authenticate(predictionEndpoint, predictionApiKey)
.withEndpoint(predictionEndpoint);
Ez a következő metódus létrehoz egy képbesorolási projektet. A létrehozott projekt a Custom Vision webhelyén jelenik meg, amelyet korábban felkeresett. Tekintse meg a CreateProject metódus túlterheléseit, és adjon meg más lehetőségeket a projekt létrehozásakor (erről a Detektor létrehozása webes portál útmutatójában olvashat).
public static Project createProject(CustomVisionTrainingClient trainClient) {
System.out.println("ImageClassification Sample");
Trainings trainer = trainClient.trainings();
System.out.println("Creating project...");
Project project = trainer.createProject().withName("Sample Java Project").execute();
return project;
}
Ez a módszer határozza meg a modell betanítása során használni kívánt címkéket.
public static void addTags(CustomVisionTrainingClient trainClient, Project project) {
Trainings trainer = trainClient.trainings();
// create hemlock tag
Tag hemlockTag = trainer.createTag().withProjectId(project.id()).withName("Hemlock").execute();
// create cherry tag
Tag cherryTag = trainer.createTag().withProjectId(project.id()).withName("Japanese Cherry").execute();
}
Először töltse le a projekt mintaképét. Mentse a Mintaképek mappa tartalmát a helyi eszközre.
public static void uploadImages(CustomVisionTrainingClient trainClient, Project project) {
Trainings trainer = trainClient.trainings();
System.out.println("Adding images...");
for (int i = 1; i <= 10; i++) {
String fileName = "hemlock_" + i + ".jpg";
byte[] contents = GetImage("/Hemlock", fileName);
AddImageToProject(trainer, project, fileName, contents, hemlockTag.id(), null);
}
for (int i = 1; i <= 10; i++) {
String fileName = "japanese_cherry_" + i + ".jpg";
byte[] contents = GetImage("/Japanese_Cherry", fileName);
AddImageToProject(trainer, project, fileName, contents, cherryTag.id(), null);
}
}
Az előző kódrészlet két segédfüggvényt használ, amelyek erőforrás-adatfolyamként kérik le a képeket, és feltöltik őket a szolgáltatásba (egyetlen kötegben legfeljebb 64 képet tölthet fel).
private static void AddImageToProject(Trainings trainer, Project project, String fileName, byte[] contents,
UUID tag, double[] regionValues) {
System.out.println("Adding image: " + fileName);
ImageFileCreateEntry file = new ImageFileCreateEntry().withName(fileName).withContents(contents);
ImageFileCreateBatch batch = new ImageFileCreateBatch().withImages(Collections.singletonList(file));
// If Optional region is specified, tack it on and place the tag there,
// otherwise
// add it to the batch.
if (regionValues != null) {
Region region = new Region().withTagId(tag).withLeft(regionValues[0]).withTop(regionValues[1])
.withWidth(regionValues[2]).withHeight(regionValues[3]);
file = file.withRegions(Collections.singletonList(region));
} else {
batch = batch.withTagIds(Collections.singletonList(tag));
}
trainer.createImagesFromFiles(project.id(), batch);
}
private static byte[] GetImage(String folder, String fileName) {
try {
return ByteStreams.toByteArray(CustomVisionSamples.class.getResourceAsStream(folder + "/" + fileName));
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
return null;
}
Ez a módszer hozza létre az első betanítási iterációt a projektben. A betanítás befejezéséig lekérdezi a szolgáltatást.
public static void trainProject(CustomVisionTrainingClient trainClient, Project project) {
System.out.println("Training...");
Trainings trainer = trainClient.trainings();
Iteration iteration = trainer.trainProject(project.id(), new TrainProjectOptionalParameter());
while (iteration.status().equals("Training")) {
System.out.println("Training Status: " + iteration.status());
Thread.sleep(1000);
iteration = trainer.getIteration(project.id(), iteration.id());
}
System.out.println("Training Status: " + iteration.status());
}
Ezzel a módszerrel a modell aktuális iterációja elérhető lesz a lekérdezéshez. A modell neve hivatkozásként használható előrejelzési kérések küldéséhez. Meg kell adnia a saját értékét a következőhöz predictionResourceId
: . Az előrejelzési erőforrás-azonosítót az Azure Portal Tulajdonságok lapján találja, erőforrás-azonosítóként felsorolva.
public static String publishIteration(CustomVisionTrainingClient trainClient, Project project) {
Trainings trainer = trainClient.trainings();
// The iteration is now trained. Publish it to the prediction endpoint.
String publishedModelName = "myModel";
trainer.publishIteration(project.id(), iteration.id(), publishedModelName, predictionResourceId);
}
Ez a metódus betölti a tesztrendszerképet, lekérdezi a modell végpontját, és előrejelzési adatokat ad ki a konzolon.
// load test image
public static void testProject(CustomVisionPredictionClient predictor, Project project) {
byte[] testImage = GetImage("/Test", "test_image.jpg");
// predict
ImagePrediction results = predictor.predictions().classifyImage().withProjectId(project.id())
.withPublishedName(publishedModelName).withImageData(testImage).execute();
for (Prediction prediction : results.predictions()) {
System.out.println(String.format("\t%s: %.2f%%", prediction.tagName(), prediction.probability() * 100.0f));
}
}
Az alkalmazást a következőkkel hozhatja létre:
gradle build
Futtassa az alkalmazást a gradle run
következő paranccsal:
gradle run
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.
Ha saját képosztályozási projektet szeretne implementálni (vagy inkább egy objektumészlelési projektet szeretne kipróbálni), érdemes törölnie a faazonosítási projektet ebből a példából. Az ingyenes előfizetés két Custom Vision-projektet tesz lehetővé.
A Custom Vision webhelyén lépjen a projektekhez, és kattintson a My New Project panel alsó részén található kuka ikonra.
Most már láthatta, hogyan végezhető el az objektumészlelési folyamat minden lépése kódban. Ez a minta egyetlen betanítási iterációt hajt végre, de gyakran többször kell betanítania és tesztelnie a modellt, hogy pontosabb legyen.
Ez az útmutató útmutatást és mintakódot biztosít a Custom Vision ügyfélkódtár Node.js rendszerképbesorolási modell létrehozásához való használatának megkezdéséhez. Létrehozhat egy projektet, címkéket vehet fel, betanítheti a projektet, és a projekt előrejelzési végpontjának URL-címével programozott módon tesztelheti azt. Ezt a példát használhatja sablonként saját képfelismerő alkalmazás létrehozásához.
Megjegyzés
Ha kód írása nélkül szeretne besorolási modellt létrehozni és betaníteni, tekintse meg a böngészőalapú útmutatót.
Használja a Custom Vision ügyfélkódtárát Node.js a következő célokra:
Referenciadokumentáció (betanítás) és (előrejelzés) | Csomag (npm) a (betanítási) és az (előrejelzési) | mintákhoz
F0
) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős szintre az éles környezetben.Ebben a példában a hitelesítő adatokat az alkalmazást futtató helyi gépen lévő környezeti változókba fogja írni.
Nyissa meg az Azure Portalt. Ha az Előfeltételek szakaszban létrehozott Custom Vision-erőforrások sikeresen üzembe helyezve, válassza az Erőforrás megnyitása gombot a Következő lépések szakaszban. A kulcsokat és végpontokat az erőforrások Kulcsok és végpontok lapján, az Erőforrás-kezelés területen találja. Be kell szereznie a betanítási erőforrás és az előrejelzési erőforrás kulcsait, valamint az API-végpontokat.
Az előrejelzési erőforrás-azonosítót az előrejelzési erőforrás Tulajdonságok lapján találja az Azure Portalon, erőforrás-azonosítóként felsorolva.
Tipp
Ezeket az értékeket is lekérheti https://www.customvision.ai . A bejelentkezés után válassza a beállítások ikont a jobb felső sarokban. A Beállítás lapon megtekintheti az összes kulcsot, erőforrás-azonosítót és végpontot.
A környezeti változók 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.
VISION_TRAINING KEY
környezeti változó beállításához cserélje le <your-training-key>
a betanítási erőforrás egyik kulcsára.VISION_TRAINING_ENDPOINT
környezeti változó beállításához cserélje le <your-training-endpoint>
a betanítási erőforrás végpontját.VISION_PREDICTION_KEY
környezeti változó beállításához cserélje le <your-prediction-key>
az előrejelzési erőforrás egyik kulcsára.VISION_PREDICTION_ENDPOINT
környezeti változó beállításához cserélje le <your-prediction-endpoint>
az előrejelzési erőforrás végpontját.VISION_PREDICTION_RESOURCE_ID
környezeti változó beállításához cserélje le <your-resource-id>
az előrejelzési erőforrás erőforrás-azonosítóját.Fontos
Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal rendelkező Microsoft Entra ID-hitelesítést javasoljuk, hogy ne tárolja a hitelesítő adatokat a felhőben futó alkalmazásokkal.
Óvatosan használja az API-kulcsokat. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan. API-kulcsok használata esetén biztonságosan tárolhatja őket az Azure Key Vaultban, rendszeresen elforgathatja a kulcsokat, és szerepköralapú hozzáférés-vezérléssel és hálózati hozzáférés-korlátozásokkal korlátozhatja az Azure Key Vaulthoz való hozzáférést. További információ az API-kulcsok biztonságos használatáról az alkalmazásokban: API-kulcsok az Azure Key Vaulttal.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
export VISION_TRAINING_KEY=<your-training-key>
export VISION_TRAINING_ENDPOINT=<your-training-endpoint>
export VISION_PREDICTION_KEY=<your-prediction-key>
export VISION_PREDICTION_ENDPOINT=<your-prediction-endpoint>
export VISION_PREDICTION_RESOURCE_ID=<your-resource-id>
Miután hozzáadta a környezeti változókat, futtassa source ~/.bashrc
a konzolablakból a módosítások hatékonyabbá tétele érdekében.
Egy konzolablakban (pl. cmd, PowerShell vagy Bash) hozzon létre egy új mappát az alkalmazásnak, majd navigáljon oda.
mkdir myapp && cd myapp
Futtassa az npm init
parancsot egy Node-alkalmazás package.json
fájllal való létrehozásához. A folyamat befejezéséhez nyomja le többször az ENTER billentyűt.
npm init
Ha képelemzési alkalmazást szeretne írni a Custom Vision for Node.js használatával, szüksége van a Custom Vision npm-csomagjaira. A telepítésükhöz futtassa a következő parancsot a PowerShellben:
npm install @azure/cognitiveservices-customvision-training
npm install @azure/cognitiveservices-customvision-prediction
Az alkalmazás fájlja package.json
frissül a függőségekkel.
Hozzon létre egy elnevezett index.js
fájlt, és importálja a következő kódtárakat:
const util = require('util');
const fs = require('fs');
const TrainingApi = require("@azure/cognitiveservices-customvision-training");
const PredictionApi = require("@azure/cognitiveservices-customvision-prediction");
const msRest = require("@azure/ms-rest-js");
Tipp
Szeretné egyben megtekinteni a teljes gyorsútmutatós kódfájlt? Megtalálhatja a GitHubon, amely a gyorsútmutató kódmintáit is tartalmazza.
Változókat hozhat létre az erőforrás Azure-végpontjához és kulcsaihoz.
// retrieve environment variables
const trainingKey = process.env["VISION_TRAINING_KEY"];
const trainingEndpoint = process.env["VISION_TRAINING_ENDPOINT"];
const predictionKey = process.env["VISION_PREDICTION_KEY"];
const predictionResourceId = process.env["VISION_PREDICTION_RESOURCE_ID"];
const predictionEndpoint = process.env["VISION_PREDICTION_ENDPOINT"];
Adjon hozzá mezőket a projekt nevének és egy időtúllépési paraméternek az aszinkron hívásokhoz.
const publishIterationName = "classifyModel";
const setTimeoutPromise = util.promisify(setTimeout);
Név | Leírás |
---|---|
TrainingAPIClient | Ez az osztály kezeli a modellek létrehozását, betanítását és közzétételét. |
PredictionAPIClient | Ez az osztály kezeli a modellek lekérdezését képosztályozási előrejelzésekhez. |
előrejelzés | Ez a felület egyetlen előrejelzést határoz meg egyetlen képen. Tartalmazza az objektumazonosító és -név tulajdonságait, valamint egy megbízhatósági pontszámot. |
Ezek a kódrészletek bemutatják, hogyan végezheti el a következő feladatokat a JavaScripthez készült Custom Vision ügyfélkódtárral:
Ügyfélobjektumok példányosítása a végponttal és a kulccsal. Hozzon létre egy ApiKeyCredentials objektumot a kulccsal, és használja a végponttal egy TrainingAPIClient és PredictionAPIClient objektum létrehozásához.
const credentials = new msRest.ApiKeyCredentials({ inHeader: { "Training-key": trainingKey } });
const trainer = new TrainingApi.TrainingAPIClient(credentials, trainingEndpoint);
const predictor_credentials = new msRest.ApiKeyCredentials({ inHeader: { "Prediction-key": predictionKey } });
const predictor = new PredictionApi.PredictionAPIClient(predictor_credentials, predictionEndpoint);
Új függvény indítása az összes Custom Vision-függvényhívást tartalmazó függvényhez. Adja hozzá a következő kódot egy új Custom Vision service-projekt létrehozásához.
(async () => {
console.log("Creating project...");
const sampleProject = await trainer.createProject("Sample Project");
Ha besorolási címkéket szeretne létrehozni a projekthez, adja hozzá a következő kódot a függvényhez:
const hemlockTag = await trainer.createTag(sampleProject.id, "Hemlock");
const cherryTag = await trainer.createTag(sampleProject.id, "Japanese Cherry");
Először töltse le a projekt mintaképét. Mentse a Mintaképek mappa tartalmát a helyi eszközre.
A minta képek projekthez adásához, helyezze el a következő kódot a címke létrehozása után. Ez a kód a képeket a hozzájuk tartozó címkékkel együtt tölti fel.
const sampleDataRoot = "Images";
console.log("Adding images...");
let fileUploadPromises = [];
const hemlockDir = `${sampleDataRoot}/Hemlock`;
const hemlockFiles = fs.readdirSync(hemlockDir);
hemlockFiles.forEach(file => {
fileUploadPromises.push(trainer.createImagesFromData(sampleProject.id, fs.readFileSync(`${hemlockDir}/${file}`), { tagIds: [hemlockTag.id] }));
});
const cherryDir = `${sampleDataRoot}/Japanese_Cherry`;
const japaneseCherryFiles = fs.readdirSync(cherryDir);
japaneseCherryFiles.forEach(file => {
fileUploadPromises.push(trainer.createImagesFromData(sampleProject.id, fs.readFileSync(`${cherryDir}/${file}`), { tagIds: [cherryTag.id] }));
});
await Promise.all(fileUploadPromises);
Fontos
Módosítania kell a rendszerképek elérési útját (sampleDataRoot
) az Azure AI-szolgáltatások Python SDK-minták adattárának letöltési helye alapján.
Ez a kód létrehozza az előrejelzési modell első iterációját.
console.log("Training...");
let trainingIteration = await trainer.trainProject(sampleProject.id);
// Wait for training to complete
console.log("Training started...");
while (trainingIteration.status == "Training") {
console.log("Training status: " + trainingIteration.status);
await setTimeoutPromise(1000, null);
trainingIteration = await trainer.getIteration(sampleProject.id, trainingIteration.id)
}
console.log("Training status: " + trainingIteration.status);
Ez a kód közzéteszi a betanított iterációt az előrejelzési végponton. A közzétett iterációnak megadott név használható előrejelzési kérések küldéséhez. Az iteráció csak a közzétételig érhető el az előrejelzési végponton.
// Publish the iteration to the end point
await trainer.publishIteration(sampleProject.id, trainingIteration.id, publishIterationName, predictionResourceId);
Ha képet szeretne küldeni az előrejelzési végpontnak, és le szeretné kérni az előrejelzést, adja hozzá a következő kódot a függvényhez.
const testFile = fs.readFileSync(`${sampleDataRoot}/Test/test_image.jpg`);
const results = await predictor.classifyImage(sampleProject.id, publishIterationName, testFile);
// Show results
console.log("Results:");
results.predictions.forEach(predictedResult => {
console.log(`\t ${predictedResult.tagName}: ${(predictedResult.probability * 100.0).toFixed(2)}%`);
});
Ezután zárja be a Custom Vision függvényt, és hívja meg.
})()
Futtassa az alkalmazást a node
paranccsal a gyorsútmutatós fájlon.
node index.js
Az alkalmazás kimenetének az alábbi szöveghez hasonlóan kell kinéznie:
Creating project...
Adding images...
Training...
Training started...
Training status: Training
Training status: Training
Training status: Training
Training status: Completed
Results:
Hemlock: 94.97%
Japanese Cherry: 0.01%
Ezután ellenőrizheti, hogy a tesztkép (a <sampleDataRoot>/Test/) megfelelően van-e megjelölve. Vissza is léphet a Custom Vision webhelyére, és megtekintheti az újonnan létrehozott projekt aktuális állapotát.
Ha saját képosztályozási projektet szeretne implementálni (vagy inkább egy objektumészlelési projektet szeretne kipróbálni), érdemes törölnie a faazonosítási projektet ebből a példából. Az ingyenes előfizetés két Custom Vision-projektet tesz lehetővé.
A Custom Vision webhelyén lépjen a projektekhez, és kattintson a My New Project panel alsó részén található kuka ikonra.
Ez az útmutató bemutatja, hogyan végezhető el az objektumészlelési folyamat minden lépése kódban. Ez a minta egyetlen betanítási iterációt hajt végre, de gyakran többször kell betanítania és tesztelnie a modellt, hogy pontosabb legyen.
Ismerkedés a Python Custom Vision ügyfélkódtárával. Az alábbi lépések végrehajtásával telepítheti a csomagot, és kipróbálhatja a példakódot egy képosztályozási modell létrehozásához. Létrehoz egy projektet, címkéket ad hozzá, betanítja a projektet, és a projekt előrejelzési végpontJÁNAK URL-címével programozott módon teszteli azt. Ezt a példát használhatja sablonként saját képfelismerő alkalmazás létrehozásához.
Megjegyzés
Ha kód írása nélkül szeretne besorolási modellt létrehozni és betaníteni, tekintse meg a böngészőalapú útmutatót.
A Python Custom Vision ügyfélkódtárával a következő célokra használhatja:
Referenciadokumentáció Kódtár forráskódcsomagja | (PyPI)Minták | |
F0
) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős szintre az éles környezetben.Ebben a példában a hitelesítő adatokat az alkalmazást futtató helyi gépen lévő környezeti változókba fogja írni.
Nyissa meg az Azure Portalt. Ha az Előfeltételek szakaszban létrehozott Custom Vision-erőforrások sikeresen üzembe helyezve, válassza az Erőforrás megnyitása gombot a Következő lépések szakaszban. A kulcsokat és végpontokat az erőforrások Kulcsok és végpontok lapján, az Erőforrás-kezelés területen találja. Be kell szereznie a betanítási erőforrás és az előrejelzési erőforrás kulcsait, valamint az API-végpontokat.
Az előrejelzési erőforrás-azonosítót az előrejelzési erőforrás Tulajdonságok lapján találja az Azure Portalon, erőforrás-azonosítóként felsorolva.
Tipp
Ezeket az értékeket is lekérheti https://www.customvision.ai . A bejelentkezés után válassza a beállítások ikont a jobb felső sarokban. A Beállítás lapon megtekintheti az összes kulcsot, erőforrás-azonosítót és végpontot.
A környezeti változók 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.
VISION_TRAINING KEY
környezeti változó beállításához cserélje le <your-training-key>
a betanítási erőforrás egyik kulcsára.VISION_TRAINING_ENDPOINT
környezeti változó beállításához cserélje le <your-training-endpoint>
a betanítási erőforrás végpontját.VISION_PREDICTION_KEY
környezeti változó beállításához cserélje le <your-prediction-key>
az előrejelzési erőforrás egyik kulcsára.VISION_PREDICTION_ENDPOINT
környezeti változó beállításához cserélje le <your-prediction-endpoint>
az előrejelzési erőforrás végpontját.VISION_PREDICTION_RESOURCE_ID
környezeti változó beállításához cserélje le <your-resource-id>
az előrejelzési erőforrás erőforrás-azonosítóját.Fontos
Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal rendelkező Microsoft Entra ID-hitelesítést javasoljuk, hogy ne tárolja a hitelesítő adatokat a felhőben futó alkalmazásokkal.
Óvatosan használja az API-kulcsokat. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan. API-kulcsok használata esetén biztonságosan tárolhatja őket az Azure Key Vaultban, rendszeresen elforgathatja a kulcsokat, és szerepköralapú hozzáférés-vezérléssel és hálózati hozzáférés-korlátozásokkal korlátozhatja az Azure Key Vaulthoz való hozzáférést. További információ az API-kulcsok biztonságos használatáról az alkalmazásokban: API-kulcsok az Azure Key Vaulttal.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
export VISION_TRAINING_KEY=<your-training-key>
export VISION_TRAINING_ENDPOINT=<your-training-endpoint>
export VISION_PREDICTION_KEY=<your-prediction-key>
export VISION_PREDICTION_ENDPOINT=<your-prediction-endpoint>
export VISION_PREDICTION_RESOURCE_ID=<your-resource-id>
Miután hozzáadta a környezeti változókat, futtassa source ~/.bashrc
a konzolablakból a módosítások hatékonyabbá tétele érdekében.
Ha a Custom Vision for Pythonnal szeretne képelemzési alkalmazást írni, szüksége van a Custom Vision ügyfélkódtárára. A Python telepítése után futtassa a következő parancsot a PowerShellben vagy egy konzolablakban:
pip install azure-cognitiveservices-vision-customvision
Hozzon létre egy új Python-fájlt, és importálja a következő kódtárakat.
from azure.cognitiveservices.vision.customvision.training import CustomVisionTrainingClient
from azure.cognitiveservices.vision.customvision.prediction import CustomVisionPredictionClient
from azure.cognitiveservices.vision.customvision.training.models import ImageFileCreateBatch, ImageFileCreateEntry, Region
from msrest.authentication import ApiKeyCredentials
import os, time, uuid
Tipp
Szeretné egyben megtekinteni a teljes gyorsútmutatós kódfájlt? Megtalálhatja a GitHubon, amely a gyorsútmutató kódmintáit is tartalmazza.
Változókat hozhat létre az erőforrás Azure-végpontjához és kulcsaihoz.
# retrieve environment variables
ENDPOINT = os.environ["VISION_TRAINING_ENDPOINT"]
training_key = os.environ["VISION_TRAINING_KEY"]
prediction_key = os.environ["VISION_PREDICTION_KEY"]
prediction_resource_id = os.environ["VISION_PREDICTION_RESOURCE_ID"]
Név | Leírás |
---|---|
CustomVisionTrainingClient | Ez az osztály kezeli a modellek létrehozását, betanítását és közzétételét. |
CustomVisionPredictionClient | Ez az osztály kezeli a modellek lekérdezését képosztályozási előrejelzésekhez. |
ImagePrediction | Ez az osztály egyetlen objektum előrejelzését határozza meg egyetlen képen. Tartalmazza az objektum azonosítójának és nevének tulajdonságait, az objektum határolókeretének helyét és a megbízhatósági pontszámot. |
Ezek a kódrészletek bemutatják, hogyan végezheti el a következőket a Python Custom Vision ügyfélkódtárával:
Hozzon létre egy betanítási és előrejelzési ügyfelet a végponttal és a kulcsokkal. Hozzon létre ApiKeyServiceClientCredentials
objektumokat a kulcsaival, és használja őket a végponttal egy CustomVisionTrainingClient és a CustomVisionPredictionClient objektum létrehozásához.
credentials = ApiKeyCredentials(in_headers={"Training-key": training_key})
trainer = CustomVisionTrainingClient(ENDPOINT, credentials)
prediction_credentials = ApiKeyCredentials(in_headers={"Prediction-key": prediction_key})
predictor = CustomVisionPredictionClient(ENDPOINT, prediction_credentials)
Adja hozzá a következő kódot a szkripthez egy új Custom Vision Service-projekt létrehozásához.
Tekintse meg a create_project metódust, amely a projekt létrehozásakor más beállításokat is megadhat (erről az osztályozó webes portál összeállítása című útmutatóban olvashat).
publish_iteration_name = "classifyModel"
credentials = ApiKeyCredentials(in_headers={"Training-key": training_key})
trainer = CustomVisionTrainingClient(ENDPOINT, credentials)
# Create a new project
print ("Creating project...")
project_name = uuid.uuid4()
project = trainer.create_project(project_name)
Ha besorolási címkéket szeretne hozzáadni a projekthez, adja hozzá a következő kódot:
# Make two tags in the new project
hemlock_tag = trainer.create_tag(project.id, "Hemlock")
cherry_tag = trainer.create_tag(project.id, "Japanese Cherry")
Először töltse le a projekt mintaképét. Mentse a Mintaképek mappa tartalmát a helyi eszközre.
A minta képek projekthez adásához, helyezze el a következő kódot a címke létrehozása után. Ez a kód a képeket a hozzájuk tartozó címkékkel együtt tölti fel. Egyetlen kötegben legfeljebb 64 képet tölthet fel.
base_image_location = os.path.join (os.path.dirname(__file__), "Images")
print("Adding images...")
image_list = []
for image_num in range(1, 11):
file_name = "hemlock_{}.jpg".format(image_num)
with open(os.path.join (base_image_location, "Hemlock", file_name), "rb") as image_contents:
image_list.append(ImageFileCreateEntry(name=file_name, contents=image_contents.read(), tag_ids=[hemlock_tag.id]))
for image_num in range(1, 11):
file_name = "japanese_cherry_{}.jpg".format(image_num)
with open(os.path.join (base_image_location, "Japanese_Cherry", file_name), "rb") as image_contents:
image_list.append(ImageFileCreateEntry(name=file_name, contents=image_contents.read(), tag_ids=[cherry_tag.id]))
upload_result = trainer.create_images_from_files(project.id, ImageFileCreateBatch(images=image_list))
if not upload_result.is_batch_successful:
print("Image batch upload failed.")
for image in upload_result.images:
print("Image status: ", image.status)
exit(-1)
Megjegyzés
Az Azure AI-szolgáltatások Python SDK-minták adattárának letöltési helye alapján módosítania kell a rendszerképek elérési útját.
Ez a kód létrehozza az előrejelzési modell első iterációját.
print ("Training...")
iteration = trainer.train_project(project.id)
while (iteration.status != "Completed"):
iteration = trainer.get_iteration(project.id, iteration.id)
print ("Training status: " + iteration.status)
print ("Waiting 10 seconds...")
time.sleep(10)
Tipp
Betanítása kijelölt címkékkel
Igény szerint csak az alkalmazott címkék egy részhalmazára taníthat be. Érdemes lehet ezt megtennie, ha még nem alkalmazott elég címkét bizonyos címkékre, de van elég más.
A train_project hívásban állítsa a választható paramétert selected_tags
a használni kívánt címkék azonosító sztringjeinek listájára. A modell betanítása csak a lista címkéinek felismerésére fog betanulni.
Az iteráció csak a közzétételig érhető el az előrejelzési végponton. Az alábbi kód a modell aktuális iterációját teszi elérhetővé lekérdezésre.
# The iteration is now trained. Publish it to the project endpoint
trainer.publish_iteration(project.id, iteration.id, publish_iteration_name, prediction_resource_id)
print ("Done!")
A képek előrejelzési végpontra való küldéséhez és az előrejelzés lekéréséhez adja hozzá a következő kódot a fájl végéhez:
# Now there is a trained endpoint that can be used to make a prediction
prediction_credentials = ApiKeyCredentials(in_headers={"Prediction-key": prediction_key})
predictor = CustomVisionPredictionClient(ENDPOINT, prediction_credentials)
with open(os.path.join (base_image_location, "Test/test_image.jpg"), "rb") as image_contents:
results = predictor.classify_image(
project.id, publish_iteration_name, image_contents.read())
# Display the results.
for prediction in results.predictions:
print("\t" + prediction.tag_name +
": {0:.2f}%".format(prediction.probability * 100))
Futtassa az alkalmazást a következő paranccsal:
python CustomVisionQuickstart.py
Az alkalmazás kimenetének az alábbi szöveghez hasonlóan kell kinéznie:
Creating project...
Adding images...
Training...
Training status: Training
Training status: Completed
Done!
Hemlock: 93.53%
Japanese Cherry: 0.01%
Ezután ellenőrizheti, hogy a tesztkép (base_image_location<>/images/Test/) megfelelően van-e megjelölve. Vissza is léphet a Custom Vision webhelyére, és megtekintheti az újonnan létrehozott projekt aktuális állapotát.
Ha saját képosztályozási projektet szeretne implementálni (vagy inkább egy objektumészlelési projektet szeretne kipróbálni), érdemes törölnie a faazonosítási projektet ebből a példából. Az ingyenes előfizetés két Custom Vision-projektet tesz lehetővé.
A Custom Vision webhelyén lépjen a projektekhez, és kattintson a My New Project panel alsó részén található kuka ikonra.
Most már láthatta, hogyan végezhető el a képbesorolási folyamat minden lépése kódban. Ez a minta egyetlen betanítási iterációt hajt végre, de gyakran többször kell betanítania és tesztelnie a modellt, hogy pontosabb legyen.
Ismerkedés a Custom Vision REST API-val. Kövesse az alábbi lépéseket az API meghívásához és egy képbesorolási modell létrehozásához. Létrehoz egy projektet, címkéket ad hozzá, betanítja a projektet, és a projekt előrejelzési végpontJÁNAK URL-címével programozott módon teszteli azt. Ezt a példát használhatja sablonként saját képfelismerő alkalmazás létrehozásához.
Megjegyzés
A Custom Vision a legegyszerűbben egy ügyfélkódtár SDK-ján vagy a böngészőalapú útmutatón keresztül használható.
A REST API Custom Vision-ügyfélkódtárával:
F0
) használatával kipróbálhatja a szolgáltatást, és később frissíthet egy fizetős szintre az éles környezetben.Egy képosztályozási projekt létrehozásához az alábbihoz hasonló parancsot fog használni. A létrehozott projekt megjelenik a Custom Vision webhelyén.
curl -v -X POST -H "Training-key: {subscription key}" "https://{endpoint}/customvision/v3.3/Training/projects?name={name}"
Másolja a parancsot egy szövegszerkesztőbe, és végezze el a következő módosításokat:
{subscription key}
az érvényes kulccsal.{endpoint}
a kulcsnak megfelelő végpontra.
Megjegyzés
A 2019. július 1. után létrehozott új erőforrások egyéni altartományneveket fognak használni. További információkért és a regionális végpontok teljes listájáért tekintse meg az Azure AI-szolgáltatások egyéni altartományneveit.
{name}
a projekt nevére.Megjelenik egy JSON-válasz, mint az alábbi példa. Mentse a "id"
projekt értékét egy ideiglenes helyre.
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string",
"settings": {
"domainId": "00000000-0000-0000-0000-000000000000",
"classificationType": "Multiclass",
"targetExportPlatforms": [
"CoreML"
],
"useNegativeSet": true,
"detectionParameters": "string",
"imageProcessingSettings": {
"augmentationMethods": {}
}
},
"created": "string",
"lastModified": "string",
"thumbnailUri": "string",
"drModeEnabled": true,
"status": "Succeeded"
}
Az alábbi paranccsal definiálhatja a modellt betanítandó címkéket.
curl -v -X POST -H "Training-key: {subscription key}" "https://{endpoint}/customvision/v3.3/Training/projects/{projectId}/tags?name={name}"
{projectId}
a saját projektazonosítóját.{name}
a használni kívánt címke nevére.Ismételje meg ezt a folyamatot a projektben használni kívánt összes címke esetében. Ha a példaként megadott képeket használja, adja hozzá a címkéket "Hemlock"
és "Japanese Cherry"
a .
Megjelenik egy JSON-válasz, mint az alábbi példa. Mentse az "id"
egyes címkék értékét egy ideiglenes helyre.
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string",
"type": "Regular",
"imageCount": 0
}
Ezután töltse le a projekt mintaképét. Mentse a Mintaképek mappa tartalmát a helyi eszközre.
Az alábbi paranccsal töltse fel a képeket, és alkalmazza a címkéket; egyszer a "Hemlock" képeket, és külön-külön a "Japán Cseresznye" képeket. További lehetőségekért tekintse meg a Képek létrehozása a Data API-ból című témakört.
curl -v -X POST -H "Content-Type: multipart/form-data" -H "Training-key: {subscription key}" "https://{endpoint}/customvision/v3.3/Training/projects/{projectId}/images?tagIds={tagArray}"
--data-ascii "{binary data}"
{projectId}
a saját projektazonosítóját.{tagArray}
egy címke azonosítójára.Ez a módszer betanozza a modellt a feltöltött címkézett képeken, és visszaad egy azonosítót az aktuális projekt iterációjához.
curl -v -X POST -H "Content-Type: application/json" -H "Training-key: {subscription key}" "https://{endpoint}/customvision/v3.3/Training/projects/{projectId}/train"
{projectId}
a saját projektazonosítóját.{tagArray}
egy címke azonosítójára.Tipp
Betanítása kijelölt címkékkel
Igény szerint csak az alkalmazott címkék egy részhalmazára taníthat be. Érdemes lehet ezt megtennie, ha még nem alkalmazott elég címkét bizonyos címkékre, de van elég más. Adja hozzá az opcionális JSON-tartalmat a kérés törzséhez. Töltse ki a "selectedTags"
tömböt a használni kívánt címkék azonosítóival.
{
"selectedTags": [
"00000000-0000-0000-0000-000000000000"
]
}
A JSON-válasz információkat tartalmaz a betanított projektről, beleértve az iterációs azonosítót ("id"
). Mentse ezt az értéket a következő lépéshez.
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"status": "string",
"created": "string",
"lastModified": "string",
"trainedAt": "string",
"projectId": "00000000-0000-0000-0000-000000000000",
"exportable": true,
"exportableTo": [
"CoreML"
],
"domainId": "00000000-0000-0000-0000-000000000000",
"classificationType": "Multiclass",
"trainingType": "Regular",
"reservedBudgetInHours": 0,
"trainingTimeInMinutes": 0,
"publishName": "string",
"originalPublishResourceId": "string"
}
Ezzel a módszerrel a modell aktuális iterációja elérhető lesz a lekérdezéshez. Az előrejelzési kérések küldéséhez a visszaadott modellnevet használja hivatkozásként.
curl -v -X POST -H "Training-key: {subscription key}" "https://{endpoint}/customvision/v3.3/Training/projects/{projectId}/iterations/{iterationId}/publish?publishName={publishName}&predictionId={predictionId}"
{projectId}
a saját projektazonosítóját.{iterationId}
az előző lépésben visszaadott azonosítóra.{publishedName}
az előrejelzési modellhez hozzárendelni kívánt nevet.{predictionId}
a saját előrejelzési erőforrás-azonosítóját. Az előrejelzési erőforrás-azonosítót az Azure Portal Tulajdonságok lapján találja, erőforrás-azonosítóként felsorolva.Végül ezzel a paranccsal tesztelje a betanított modellt egy új kép feltöltésével, hogy címkékkel osztályozhassa. A korábban letöltött mintafájlok Teszt mappájában használhatja a képet.
curl -v -X POST -H "Training-key: {subscription key}" "https://{endpoint}/customvision/v3.3/Training/projects/{projectId}/iterations/{iterationId}/publish?publishName={publishName}&predictionId={predictionId}"
{projectId}
a saját projektazonosítóját.{publishedName}
az előző lépésben használt névre.A visszaadott JSON-válasz felsorolja a modell által a képre alkalmazott címkéket, valamint az egyes címkék valószínűségi pontszámait.
{
"id": "00000000-0000-0000-0000-000000000000",
"project": "00000000-0000-0000-0000-000000000000",
"iteration": "00000000-0000-0000-0000-000000000000",
"created": "string",
"predictions": [
{
"probability": 0.0,
"tagId": "00000000-0000-0000-0000-000000000000",
"tagName": "string",
"boundingBox": {
"left": 0.0,
"top": 0.0,
"width": 0.0,
"height": 0.0
},
"tagType": "Regular"
}
]
}
Ha saját képosztályozási projektet szeretne implementálni (vagy inkább egy objektumészlelési projektet szeretne kipróbálni), érdemes törölnie a faazonosítási projektet ebből a példából. Az ingyenes előfizetés két Custom Vision-projektet tesz lehetővé.
A Custom Vision webhelyén lépjen a projektekhez, és kattintson a My New Project panel alsó részén található kuka ikonra.
Most elvégezte a képbesorolási folyamat minden lépését a REST API használatával. Ez a minta egyetlen betanítási iterációt hajt végre, de gyakran többször kell betanítania és tesztelnie a modellt, hogy pontosabb legyen.
esemény
AI-alkalmazások és -ügynökök létrehozása
márc. 17. 21 - márc. 21. 10
Csatlakozzon a meetup sorozathoz, hogy valós használati esetek alapján, skálázható AI-megoldásokat hozzon létre más fejlesztőkkel és szakértőkkel.
RegisztrációOktatás
Képzési terv
Ajánlott eljárások Java-alkalmazásokhoz az Azure-ban - Training
Kezdje itt, és ismerje meg, hogyan monitorozhat, automatizálhat, finomhangolhat, automatikus skálázhat, biztonságossá és fejleszthet Java-alkalmazásokat az Azure-ban. Mint mindig, használjon olyan eszközöket és keretrendszereket, amelyeket ismer és szeret – Spring, Tomcat, WildFly, JBoss, WebLogic, WebSphere, Maven, Gradle, IntelliJ, Eclipse, Jenkins, Terraform stb.
Tanúsítvány
Microsoft Certified: Az Azure AI alapjai - Certifications
A Microsoft Azure szoftvereinek és szolgáltatásainak fejlesztésével kapcsolatos alapvető AI-fogalmak bemutatása AI-megoldások létrehozásához.
Dokumentáció
Megismerheti, hogyan használható az API képek programozott tesztelésére a Custom Vision Service osztályozóval.
Rövid útmutató: Objektumészlelés a Custom Vision ügyfélkódtárával - Azure AI services
Rövid útmutató: Objektumészlelési projekt létrehozása, egyéni címkék hozzáadása, képek feltöltése, modell betanítása és objektumok észlelése képeken a Custom Vision ügyfélkódtár használatával.
Ebben az oktatóanyagban egy mintaalkalmazást fog végigvezetni, amely a Custom Visiont használja az emblémaészlelési forgatókönyv részeként. Megtudhatja, hogyan használható a Custom Vision más összetevőkkel egy végpontok közötti alkalmazás biztosításához.