아래 코드 블럭은 제일 간단한 Classification 검사 진행을 설명합니다.
{
//Initialize
SaigeVision.Core.SaigeVisionApp.Init();
//Prepare
IGpuService gpuService = new NvGpuService();
gpuService.DetectConnectedGPUs();
PhysicalGpu gpu = gpuService.CurrentDetectedGPUs[0];
SrImage image = new SrImage("c:\...\...\...\Sample1.jpg");
Uri model = new Uri("c:\...\...\...\model.SrCls");
//Inspect
using (var engine = EngineLoader.LoadFrom<ClassificationEngine>(model))
{
engine.AllocateNetwork(gpu);
ClassificationReport report = engine.Inspect(image);
ClassInfo prediction = report.Prediction;
Console.WriteLine($"Predicted : {prediction.Name}");
}
//Clean up (optional)
image.Dispose();
}
이와 같은 간단한 코드로 SaigeVision.Core.Inference에서 제공하는 검사 기능을 수행 할 수 있습니다.
'Workspace'에서 정상적으로 SaigeVision.Core.Inference를 참조했다면, 위 샘플 코드를 'Copy & paste' 하여 동작 시켜 보세요.
샘플 코드에 보이듯이 'SaigeVision'에서 제공하는 'Inference'의 사용은 몇가지 규칙적인 절차를 가지고 있습니다.
해당하는 절차와 각 절차의 설명은 아래와 같습니다.
- Initialize:
SaigeVision.Core를 사용 가능한 상태로 초기화합니다. - Prepare: 필요한 데이터와 환경을 준비합니다.
- Inspect :
InspectionEngine을 로드하고 검사를 수행합니다. - Clean up (optional): 사용한 리소스를 제거합니다.
InspectionEngine은 ClassificationEngine과 DetectionEngine, SegmentationEngine을 포괄하여 통칭하는 단어입니다. 이 단어는 Docs에 계속해서 등장하니 이해해두는 편이 좋습니다.
이 단계에서는 검사 결과 외에도 SagieVision.Core.Infernece를 통해 'Inference'를 수행하는 전체적인 흐름을 이해하는 것이 중요합니다.
모든 InspectionEngine은 이러한 절차를 공통적으로 사용합니다.
SaigeVision.Core.Inference는 ClassificationEngine과 DetectionEngine, SegmentationEngine 을 제공합니다.
각 InspectionEngine에 대한 세부적인 내용과 가이드를 이 Docs에서 확인하세요.
🚫
SaigeVision.Core로 시작하는 네임스페이스의 모든 도구는 라이센스 검사가 적용되어 있습니다. 도구를 사용하기 전에 꼭 라이센스를 위한 준비가 되었는지 확인하세요.
