Az előrejelzési API meghívása

A modell betanítása után programozott módon tesztelheti, ha képeket küld az előrejelzési API-végpontnak. Ebben az útmutatóban megtudhatja, hogyan hívhatja meg az előrejelzési API-t egy kép pontozásához. Megtudhatja, hogyan konfigurálhatja az API viselkedését az igényeinek megfelelően.

Feljegyzés

Ez a dokumentum bemutatja, hogy a C#-hoz készült .NET-ügyfélkódtár használatával küldi el a rendszerképet a Prediction API-nak. További információkért és példákért tekintse meg az Előrejelzési API referenciát.

Beállítás

A betanított iteráció közzététele

A Custom Vision weblapon jelölje ki a projektet, majd válassza ki a Teljesítmény fület.

Ha képeket szeretne küldeni a Prediction API-nak, először közzé kell tennie az előrejelzési iterációt, ami a Közzététel lehetőség kiválasztásával és a közzétett iteráció nevének megadásával végezhető el. Így a modell elérhetővé válik a Custom Vision Azure-erőforrás előrejelzési API-ja számára.

The performance tab is shown, with a red rectangle surrounding the Publish button.

A modell sikeres közzététele után megjelenik egy "Közzétett" címke az iteráció mellett a bal oldali oldalsávon, és a neve megjelenik az iteráció leírásában.

The performance tab is shown, with a red rectangle surrounding the Published label and the name of the published iteration.

Az URL és az előrejelzési kulcs megszerzése

A modell közzététele után az Előrejelzés URL-címének kiválasztásával lekérheti a szükséges információkat. Ekkor megnyílik egy párbeszédpanel, amelyen a Prediction API használatára vonatkozó információk találhatók, beleértve az előrejelzési URL-címet és a Prediction-Key-t.

The performance tab is shown with a red rectangle surrounding the Prediction URL button.

The performance tab is shown with a red rectangle surrounding the Prediction URL value for using an image file and the Prediction-Key value.

Adatok küldése a szolgáltatásba

Ez az útmutató feltételezi, hogy már létrehozott egy CustomVisionPredictionClient objektumot a predictionClientCustom Vision előrejelzési kulcsával és a végpont URL-címével. A funkció beállításával kapcsolatos útmutatásért kövesse az egyik rövid útmutatót.

Ebben az útmutatóban egy helyi rendszerképet fog használni, ezért töltsön le egy képet, amelyet be szeretne küldeni a betanított modellbe. Az alábbi kód arra kéri a felhasználót, hogy adjon meg egy helyi elérési utat, és lekéri a fájl bájtfolyamát az elérési úton.

Console.Write("Enter image file path: ");
string imageFilePath = Console.ReadLine();
byte[] byteData = GetImageAsByteArray(imageFilePath);

Adja meg a következő segédmetódust:

private static byte[] GetImageAsByteArray(string imageFilePath)
{
    FileStream fileStream = new FileStream(imageFilePath, FileMode.Open, FileAccess.Read);
    BinaryReader binaryReader = new BinaryReader(fileStream);
    return binaryReader.ReadBytes((int)fileStream.Length);
}

A ClassifyImageAsync metódus a projektazonosítót és a helyileg tárolt rendszerképet veszi figyelembe, és a rendszerképet az adott modellhez sorolja.

// Make a prediction against the new project
Console.WriteLine("Making a prediction:");
var result = predictionApi.ClassifyImageAsync(project.Id, publishedModelName, byteData);

Az adatok feldolgozásának meghatározása

Alternatív metódusok kiválasztásával (lásd a CustomVisionPredictionClient osztály metódusait) opcionálisan konfigurálhatja a szolgáltatás pontozási műveletének módját.

A fenti módszer nem aszinkron verzióját használhatja az egyszerűség kedvéért, de előfordulhat, hogy a program jelentős ideig bezárul.

A -WithNoStore metódusok megkövetelik, hogy a szolgáltatás ne őrizze meg az előrejelzési rendszerképet az előrejelzés befejezése után. A szolgáltatás általában megőrzi ezeket a képeket, így betanítási adatokként hozzáadhatja őket a modell jövőbeli iterációihoz.

A -WithHttpMessages metódusok az API-hívás nyers HTTP-válaszát adják vissza.

Eredmények lekérése a szolgáltatásból

A szolgáltatás imagePrediction objektum formájában adja vissza az eredményeket. A Predictions tulajdonság a PredictionModel objektumok listáját tartalmazza, amelyek mindegyike egyetlen objektum-előrejelzést jelöl. Ezek közé tartozik a címke neve és a határolókeret koordinátái, ahol az objektumot észlelték a képen. Az alkalmazás ezután elemezheti ezeket az adatokat, például megjelenítheti a képet címkézett objektummezőkkel a képernyőn.

Következő lépések

Ebben az útmutatóban megtanulta, hogyan küldhet képeket az egyéni képosztályozónak/detektornak, és hogyan kaphat választ programozott módon a C# SDK-val. Ezután megtudhatja, hogyan végezheti el a teljes körű forgatókönyveket a C# használatával, vagy hogyan kezdheti el egy másik nyelvi SDK használatát.