다음을 통해 공유


예측 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로 시작하는 방법을 알아봅니다.