Share via


예측 API 호출

모델을 학습한 후 예측 API 엔드포인트에 이미지를 제출하여 프로그래밍 방식으로 테스트할 수 있습니다. 이 가이드에서는 예측 API를 호출하여 이미지의 점수를 매기는 방법을 알아봅니다. 사용자 요구에 맞게 이 API의 동작을 구성할 수 있는 다양한 방법을 알아봅니다.

참고 항목

이 문서에서는 C#에 대한 .NET 클라이언트 라이브러리를 사용하여 예측 API에 이미지를 제출하는 방법을 보여 줍니다. 자세한 내용과 예는 예측 API 참조를 참조하세요.

설정

학습된 반복 게시

Custom Vision 웹 페이지에서 프로젝트를 선택하고 성능 탭을 선택합니다.

예측 API에 이미지를 제출하려면 먼저 예측을 위해 반복을 게시해야 하는데 이 작업은 게시를 선택하고 게시된 반복의 이름을 지정하여 수행할 수 있습니다. 이렇게 하면 Custom Vision Azure 리소스의 예측 API에 모델이 액세스할 수 있습니다.

게시 단추를 빨간색 사각형이 둘러싸고 있는 성능 탭이 표시됩니다.

모델이 성공적으로 게시되고 나면 왼쪽 사이드바의 반복 옆에 "게시됨" 레이블이 표시되고 해당 이름이 반복의 설명 부분에 표시됩니다.

게시된 레이블 및 게시된 반복의 이름이 빨간색 사각형으로 둘러싸고 있는 성능 탭이 표시됩니다.

URL 및 예측 키 가져오기

모델이 게시되고 나면 예측 URL을 선택하여 필요한 정보를 검색할 수 있습니다. 그러면 예측 URL예측-키를 포함하여 예측 API를 사용하기 위한 정보가 있는 대화 상자가 열립니다.

예측 URL 단추를 빨간색 사각형이 둘러싸고 있는 성능 탭이 표시됩니다.

이미지 파일 및 예측-키 값을 사용하기 위한 예측 URL 값을 빨간색 사각형이 둘러싸고 있는 성능 탭이 표시됩니다.

서비스에 데이터 제출

이 가이드에서는 Custom Vision 예측 키 및 엔드포인트 URL을 사용하여 predictionClient라는 CustomVisionPredictionClient 개체를 이미 생성했다고 가정합니다. 이 기능을 설정하는 방법에 대한 지침은 빠른 시작 중 하나를 수행합니다.

이 가이드에서는 로컬 이미지를 사용하므로 학습된 모델에 제출할 이미지를 다운로드합니다. 다음 코드는 사용자에게 로컬 경로를 지정하라는 메시지를 표시하고 해당 경로에 있는 파일의 바이트 스트림을 가져옵니다.

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

다음과 같은 도우미 메서드를 포함합니다.

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);
}

ClassifyImageAsync 메서드는 프로젝트 ID와 로컬에 저장된 이미지를 사용하고 지정된 모델에 대해 이미지의 점수를 지정합니다.

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

데이터 처리 방법 결정

필요에 따라 대체 방법(CustomVisionPredictionClient 클래스의 메서드 참조)을 선택하여 서비스에서 점수 매기기 작업을 수행하는 방법을 구성할 수 있습니다.

위의 메서드를 간소화하기 위해 비 비동기 버전의 메서드를 사용할 수 있지만 프로그램에서 상당한 시간 동안 잠길 수 있습니다.

-WithNoStore 메서드는 예측이 완료된 후 서비스에서 예측 이미지를 유지하지 않도록 요구합니다. 일반적으로 서비스는 이러한 이미지를 유지하므로 나중에 모델을 반복하기 위한 학습 데이터로 추가할 수 있습니다.

-WithHttpMessages 메서드는 API 호출의 원시 HTTP 응답을 반환합니다.

서비스에서 결과 가져오기

서비스는 ImagePrediction 개체 형식으로 결과를 반환합니다. Predictions 속성에는 각각 단일 개체 예측을 나타내는 PredictionModel 개체의 목록이 포함되어 있습니다. 여기에는 레이블의 이름과 이미지에서 개체가 검색된 경계 상자 좌표가 포함됩니다. 그러면 앱에서 이 데이터를 구문 분석할 수 있습니다. 예를 들어 화면에 레이블이 지정된 개체 필드가 있는 이미지를 표시할 수 있습니다.

다음 단계

이 가이드에서는 사용자 지정 이미지 분류자/감지기에 이미지를 제출하는 방법과 C# SDK로 응답을 프로그래밍 방식으로 수신하는 방법을 알아보았습니다. 다음으로 C#을 사용하여 엔드투엔드 시나리오를 완료하거나 다른 언어의 SDK로 시작하는 방법을 알아봅니다.