런타임
런타임은 inference만 가능합니다. 이는 도구가 이미지를 프로세싱할 수는 있지만 도구를 수정하거나 다시 트레이닝할 수는 없다는 뜻입니다. 도구의 프로세싱은 배포된 프로덕션 환경에서 Deep Learning 도구를 실행하기 위해 필요한 최소한의 기능입니다.
| 장점 | 단점 |
|---|---|
| 통합이 용이함 | 도구를 다시 트레이닝하려면 실행 중인 ViDi Suite Deep Learning 라이센스가 필요함 |
| 매개변수가 동결되며, 응용 프로그램 운영자는 도구를 수정할 수 없음 | 복잡한 아키텍처 |
Cognex VisionPro Deep Learning 도구의 런타임 단계는 트레이닝 단계보다 단순합니다. 런타임 구성 요소는 다음과 같습니다.
- 샘플링
- 신경망 처리
- 결과 형성
런타임 워크스페이스와 런타임 배포
런타임 워크스페이스는 이미지나 데이터베이스가 포함되지 않고, 스트림과 도구만을 포함한 구성 파일로 전체적인 워크스페이스의 작은 버전입니다. 이 구성 파일을 라이브러리로 로드해 일부 분석을 수행할 수 있습니다. 런타임 워크스페이스는 고객 현장에 런타임으로 배포하는 데 사용되거나 VisionPro 응용 프로그램에 통합되어 사용됩니다.
런타임 배포가 적합한 영역은 다음과 같습니다.
- 응용 프로그램 운영자가 도구를 다시 트레이닝할 필요가 없는 경우.
- 응용 프로그램의 레서피에 대한 강력한 통제가 보장된 영역(예: 의료 및 약 관련 응용 프로그램).
- 낮은 계산력 또는 내장 플랫폼에서 도구가 프로세싱되고, 트레이닝은 다른 플랫폼에서 실행된 응용 프로그램.
- 다수 라인이 동일 응용 프로그램 레서피를 이용할 경우.
- 시연, 시장에 빨리 나가야 하는 솔루션, 개념 증명 응용 프로그램의 실행.
런타임 워크스페이스 생성 방법
이미지를 확보했다면 VisionPro Deep Learning 도구를 트레이닝할 수 있으며, 이 도구를 트레이닝한 후에 이 도구와 이 도구가 있는 워크스페이스를 런타임 워크스페이스로 내보낼 수 있습니다. 그 후에, 런타임 워크스페이스는 여러분의 머신 비전 응용 프로그램에 사용됩니다. 이는 다음의 분리된 3단계로 실행됩니다.
- 이미지를 하드 디스크에서 추출해 VisionPro Deep Learning GUI에 놓습니다. API를 통해 "데이터베이스에 추가" 메서드를 사용하거나 수동으로 VisionPro Deep Learning GUI로 끌어다 놓아 VisionPro Deep Learning GUI로 전송할 수 있습니다.
- 해당 도구를 트레이닝합니다.
-
학습을 마친 도구와 이 도구가 있는 워크스페이스를 새 런타임 워크스페이스로 내보낸 다음, 라이브러리에서 이를 불러옵니다. 이는 수동으로, 또는 Deep Learning 라이브러리(DLL)의 get workspace from server 메서드를 이용해 실행할 수 있습니다.
런타임 작업 영역 내보내기
런타임 워크스페이스(.vrws) 내보내기
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 |
Deep Learning GUI와 타사 응용 프로그램
DLL은 API를 사용한 통합된 학습을 오직 특정 라이센스(VisionPro Deep Learning Licenses)에서만 지원합니다. 하지만 VisionPro Deep Learning GUI를 이용하면 새로운 레서피를 학습을 할 수 있습니다.
이는 다음의 분리된 3단계로 실행됩니다.
- 이미지를 획득합니다.
- API를 통해 "데이터베이스에 추가" 메서드를 사용하거나 수동으로 VisionPro Deep Learning GUI로 끌어다 놓아 VisionPro Deep Learning GUI로 전송하십시오.
- 런타임 워크스페이스를 내보내고 DLL 안으로 로드합니다. 이는 수동으로, 또는 DLL의 get workspace from server 메서드를 이용해 실행할 수 있습니다.
사용자의 Vision 응용 프로그램은 다음을 담당합니다.
- 이미지를 획득합니다.
- DLL의 add to database 메서드를 이용하거나, 수작업으로 VisionPro Deep Learning GUI로 끌어다 놓음으로써, 이미지를 GUI로 전송합니다.
- 트레이닝이 완료되면 새로운 런타임 워크스페이스를 로드합니다.
시스템을 트레이닝하려면, 사용자는 다음을 해야 합니다.
- 이미지를 하드 디스크에서 추출해 VisionPro Deep Learning GUI에 놓습니다.
- 해당 도구를 트레이닝합니다.
- 런타임 워크스페이스를 내보냅니다.