본문 바로가기
졸업 작품 (Capstone)/Theft Chaser (YOLO)

[3] 개발환경 & 프로그램 구성도

by Late Bloomer Lee 2019. 6. 12.
728x90

자, 그러면 지금부터 개발환경과 전체적인 프로그램 구성도에 대해서 최대한 간략히 말해보겠습니다.

먼저 아래 사진은 저희의 개발환경입니다.

 

전체적인 개발환경

- Yolo_mark를 이용한 라벨링은 은 각자의 컴퓨터 혹은 노트북을 이용해 이루어졌으며, 

 

- 저 같은 경우 Ubuntu 버전은 16.04.1 LTS를 사용했습니다.

  ( 전 우분투를 외장 SSD에 설치해서 부팅을 했습니다. 설치법은 후에 자세히 다루겠습니다 )

 

- Yolo_mark를 이용한 라벨링은 가상화 소프트웨어(가상 머신)인 VirtualBox(버츄어박스),

  VMware의 Workstation을 사용하셔도 되지만, 비추합니다. ( 라벨링이 한계 )

 

- 저희가 GPU Server(GPU 컴퓨터)에 학습시킬 이미지(도난 재현 이미지)들은 각자 스마트폰으로

  직접 촬영해서 구했습니다. ( 구글링을 해봤지만 쓸만한 이미지들이 없었습니다 )

 

- 노트북이나 데스크탑에 기본 내장되어있는 웹캠을 사용해도 되지만, CCTV의 위치처럼

  카메라가 보다 자유롭게 움직여야 하며 프로그램이 실시간으로 처리된다는 것을 증명하기 위해

  Logitech(로지텍)의 C920 Pro 모델을 사용했습니다.

 

- 저희들이 가지고 있는 컴퓨터나 노트북의 그래픽 카드 성능이 현저히 떨어지기 때문에 

  저희 학교의 성능 좋은 GPU 컴퓨터를 사용했습니다. RTX 2080 TI가 2개입니다.

 

- GPU 컴퓨터(서버)를 원격으로 접속하기 위해 Portainer를 사용했습니다. Portainer는 Docker를

  GUI 환경으로 볼 수 있습니다.

 

- 위 사진에는 없지만 학습시킨 데이터를 사용하기 위해 GPU 컴퓨터에 있는 학습된 weights 파일을

  Github에 올려 제 노트북에 받아 직접 실행을 해보았습니다.

  ( 성능이 좋은 컴퓨터나 노트북이라면 이런 번거로운 행동을 하지 않으셔도 됩니다. )

 

- 라벨링 및 테스트 영상, 이미지 실행을 위해 오픈소스인 OpenCV 3.2.0, YOLO V3를 사용했습니다.

 


 

아래 사진은 간단한 프로그램 구성도 입니다.

 

프로그램 구성도

프로그램이 돌아가는 구조를 간단히 설명하자면 이렇습니다.

 

- 학습된 데이터를 가지고 있는 YOLO는 실시간으로 켜져있는 웹캠( Logitech C920 Pro )을 이용해 

  도난 행위, 혹은 수상한 행위를 일정 시간 포착할 경우, 우분투 운영체제 내에서 소리를 내게 만든다.

 

 

 

다음에 다룰 내용은 외장 SSD에 우분투를 설치하는 내용을 다루겠습니다.

728x90

댓글