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.
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.
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.
Adatok küldése a szolgáltatásba
Ez az útmutató feltételezi, hogy már létrehozott egy CustomVisionPredictionClient objektumot a predictionClient
Custom 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.