런타임

런타임은 inference만 가능합니다. 이는 도구가 이미지를 프로세싱할 수는 있지만 도구를 수정하거나 다시 트레이닝할 수는 없다는 뜻입니다. 도구의 프로세싱은 배포된 프로덕션 환경에서 Deep Learning 도구를 실행하기 위해 필요한 최소한의 기능입니다.

장점 단점
통합이 용이함 도구를 다시 트레이닝하려면 실행 중인 ViDi Suite Deep Learning 라이센스가 필요함
매개변수가 동결되며, 응용 프로그램 운영자는 도구를 수정할 수 없음 복잡한 아키텍처

 

Cognex VisionPro Deep Learning 도구의 런타임 단계는 트레이닝 단계보다 단순합니다. 런타임 구성 요소는 다음과 같습니다.

  • 샘플링
  • 신경망 처리
  • 결과 형성
Note: 신경망 프로세싱과 프로세싱 시 feature 샘플링에 관한 자세한 내용은 신경망 프로세싱(추론)를 확인하십시오.

 

런타임 워크스페이스와 런타임 배포

런타임 워크스페이스는 이미지나 데이터베이스가 포함되지 않고, 스트림과 도구만을 포함한 구성 파일로 전체적인 워크스페이스의 작은 버전입니다. 이 구성 파일을 라이브러리로 로드해 일부 분석을 수행할 수 있습니다. 런타임 워크스페이스는 고객 현장에 런타임으로 배포하는 데 사용되거나 VisionPro 응용 프로그램에 통합되어 사용됩니다.

 

런타임 배포가 적합한 영역은 다음과 같습니다.

  • 응용 프로그램 운영자가 도구를 다시 트레이닝할 필요가 없는 경우.
  • 응용 프로그램의 레서피에 대한 강력한 통제가 보장된 영역(예: 의료 및 약 관련 응용 프로그램).
  • 낮은 계산력 또는 내장 플랫폼에서 도구가 프로세싱되고, 트레이닝은 다른 플랫폼에서 실행된 응용 프로그램.
  • 다수 라인이 동일 응용 프로그램 레서피를 이용할 경우.
  • 시연, 시장에 빨리 나가야 하는 솔루션, 개념 증명 응용 프로그램의 실행.

 

런타임 워크스페이스 생성 방법

이미지를 확보했다면 VisionPro Deep Learning 도구를 트레이닝할 수 있으며, 이 도구를 트레이닝한 후에 이 도구와 이 도구가 있는 워크스페이스를 런타임 워크스페이스로 내보낼 수 있습니다. 그 후에, 런타임 워크스페이스는 여러분의 머신 비전 응용 프로그램에 사용됩니다. 이는 다음의 분리된 3단계로 실행됩니다.

  1. 이미지를 하드 디스크에서 추출해 VisionPro Deep Learning GUI에 놓습니다. API를 통해 "데이터베이스에 추가" 메서드를 사용하거나 수동으로 VisionPro Deep Learning GUI로 끌어다 놓아 VisionPro Deep Learning GUI로 전송할 수 있습니다.
  2. 해당 도구를 트레이닝합니다.
  3. 학습을 마친 도구와 이 도구가 있는 워크스페이스를 새 런타임 워크스페이스로 내보낸 다음, 라이브러리에서 이를 불러옵니다. 이는 수동으로, 또는 Deep Learning 라이브러리(DLL)의 get workspace from server 메서드를 이용해 실행할 수 있습니다.

     

    런타임 작업 영역 내보내기

     

    런타임 워크스페이스(.vrws) 내보내기

Note: 런타임 워크스페이스에 관한 자세한 내용은 런타임 워크스페이스를 확인하십시오.
Note: Deep Learning DLL은 API를 사용한 통합된 학습을 오직 특정 라이센스(VisionPro Deep Learning Licenses)에서만 지원합니다. 하지만 VisionPro Deep Learning GUI를 이용하면 새로운 레서피를 학습을 할 수 있습니다.

 

Deep Learning 라이브러리와 타사 응용 프로그램

Deep Learning 라이브러리(DLL, Windows의 vidi_xx.dll 파일)는 응용 프로그램에 내장되어 있으며, 타사 응용 프로그램을 이용할 수도 있습니다.

 

DLL은 다음을 담당합니다:

  • GPU 관리
  • 이미지를 추출(메모리 또는 하드 디스크를 이용)하고 XML 문자열 반환

사용자의 Vision 응용 프로그램은 다음을 담당합니다.

  • 원격 워크스페이스를 DLL로 불러오기
  • 이미지 획득
  • 이미지를 DLL로 전송
  • 결과를 해석하고 거기에 따라 작동
  • 사용자에게 피드백 제공

 

프로그래밍 언어 메서드 예시 참고
.NET namespace Runtime

Example.Runtime.GUI

Example.Runtime.Console.MultiGPU

A .NET Wrapper는 결과를 표시하는 데 이용할 UI 요소를 제공합니다.
C vidi_runtime_*

Example.Cpp.Runtime

Example.Cpp.Runtime.MultiGPU

 
Note: 런타임 워크스페이스를 API로 사용하는 것에 관한 자세한 내용은 런타임 API 프로세싱 가이드를 확인하십시오.

 

Deep Learning GUI와 타사 응용 프로그램

DLL은 API를 사용한 통합된 학습을 오직 특정 라이센스(VisionPro Deep Learning Licenses)에서만 지원합니다. 하지만 VisionPro Deep Learning GUI를 이용하면 새로운 레서피를 학습을 할 수 있습니다.

 

이는 다음의 분리된 3단계로 실행됩니다.

  1. 이미지를 획득합니다.
  2. API를 통해 "데이터베이스에 추가" 메서드를 사용하거나 수동으로 VisionPro Deep Learning GUI로 끌어다 놓아 VisionPro Deep Learning GUI로 전송하십시오.
  3. 런타임 워크스페이스를 내보내고 DLL 안으로 로드합니다. 이는 수동으로, 또는 DLL의 get workspace from server 메서드를 이용해 실행할 수 있습니다.

 

사용자의 Vision 응용 프로그램은 다음을 담당합니다.

  • 이미지를 획득합니다.
  • DLL의 add to database 메서드를 이용하거나, 수작업으로 VisionPro Deep Learning GUI로 끌어다 놓음으로써, 이미지를 GUI로 전송합니다.
  • 트레이닝이 완료되면 새로운 런타임 워크스페이스를 로드합니다.

 

시스템을 트레이닝하려면, 사용자는 다음을 해야 합니다.

  • 이미지를 하드 디스크에서 추출해 VisionPro Deep Learning GUI에 놓습니다.
  • 해당 도구를 트레이닝합니다.
  • 런타임 워크스페이스를 내보냅니다.