본문 바로가기

2020_capstone

[2] 개발환경과 시스템 구성도

728x90

먼저 영유아 사고 알람 시스템의 개발 환경입니다 :)

 

개발 환경

이 시스템은 ubuntu의 환경에서 이루어졌습니다 

우분투를 설치하실 때 현재 20.04버전까지 나와있는 것으로 알지만 컴퓨터의 nvidia버전과 cuda버전을 알고 설치하셔야 더 도움이 될 것 입니다.

이유는 저는 처음에 18.04버전을 설치하였다가 렌탈한 노트북의 cuda버전이 16.04여서 다시 설치한 기억이 있습니당 ...ㅎ

모르고 깔아도 어차피 지우고 다시 지우고 다시 까는 과정을 많이 걸치실 것이기에 .. 최신 버전이 제일 좋습니다 ! 

 

 

저희 팀의 개발환경을 설명 해 드리자면 yolo를 이용하기 위해서는 반드시! cuda와 cudnn이 필요는 없지만 

! ! !웹캠과 동영상을 이용하기 위해서는 필요합니다! ! !

그래서 nvidia geforce GTX 840M에 맞는  cuda 9.0과 cudnn 7.1.4를 설치하여 이용하였습니다 !

 

다음은 Yolo_mark를 이용하여 라벨링을 하였습니다.

이 라벨링 과정은 virtural box나 vmware 등 가상머신에서 이용하여도 가능하지만, 나중에 학습을 한 데이터들을 테스트 할 때에는 어려움이 있습니다. 이유는 앞에서 말씀드린 cuda와 cudnn을 이용하기 위해서는 nvidia라는 그래픽 드라이버가 필요한데 가상머신에서는 그래픽 드라이버가 없다고 보시면 됩니다. 정 안되면 가상머신을 통해 라벨링 과정만 거쳐도 괜찮을 것 같습니다 

 

이 라벨링 과정을 거치고 데이터들을 학습시켜주어야 합니다.  하지만 이 학습 과정은 웬만한 컴퓨터나 노트북으로는 무리가 있습니다.

그래서 저희는 성능이 좋은 학교 컴퓨터의 GPU를 이용하였습니다. 학교의 GPU를 이용하기 위해서 먼저 file zilla를 통해 원격으로 라벨링한 데이터들을 모두 보내주었습니다. 저는 이 file zilla를 굉장히 유용하게 사용했습니다. 

그리고 GPU는 portainer를 이용하여 container를 구축하고 서버에 원격 접속을 통해서 이용하였습니다!

그 다음 이 container를 통해서 학습을 시켰습니다 

 

이 학습 시킨 데이터들을 테스트 하기 위해 이용한 것은 Opencv와 YOLOv3입니다. 

Opencv는 현재 더 높은 버전이 있지만 저희는 4.0.2의 버전과 YOLOv3를 이용하여 이미지 라벨링과 테스트 및 이미지,영상 실행, 알람 등의 기능을 하였고, 라벨링을 하기 전 framework를 통하여 영상을 이미지화하는 과정도 하였습니다 

GPU에서 학습 시킨 weights 파일들을 가져와 학습을 테스트 하였습니다.

 


다음은 시스템 구성도입니다 :)

시스템 구성도 

 

저희의 시스템 구성도는 먼저 실시간으로 아이의 영상을 pc에 전송합니다.

전송된 데이터들에서 만약 미리 학습된 행동의 데이터가 탐지가 된다면 바로 경고 알림을 주는 시스템입니다 !

728x90