2019. 10. 26. 09:56ㆍ드론
[실행환경] ubuntu 16.04 LTS
CUDA 연동을 하지 않으면 1을 상회하는 FPS를 얻는다. 즉 실시간은 어렵다는 의미다. 따라서 GPU 연동을 통해 실시간성을 구현해보고자 한다
1. Nvidia 드라이버를 설치
Nvidia 설치는 기본적으로 설치되어 있는 드라이버를 설정했다. 최대한 있는 것 중 높은 버전으로 설정했다. 나중에 CUDA 호환에서도 영향을 미친다고 한다.
Application 중 Additional Driver를 실행시킨다. 아래는 기본 화면이다
$ echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
기본 커널 모듈이 nouveau로 잡혀있으면 문제가 많다고 한다. 따라서 맨 위로 설정한다. 따라서 환경설정 파일을 수정하고 커널 컴파일을 다시 한 후 재부팅을 한다. 명령어는 아래 사이트를 참고하도록 한다
[참고] https://askubuntu.com/questions/841876/how-to-disable-nouveau-kernel-driver
설치한 후 드라이버가 잘 설치되었는지 확인해본다
$ lspci -k
필자 GPU는 GT 750M으로 잡힌 것을 확인할 수 있다
2. CUDA 8.0 설치
구글에 CUDA 8.0을 검색한다
계정 로그인을 하고 운영체제에 맞게 설정한 후 cuda_8.0.61_375.26_linux.run 파일을 받았다
$ chmod +x cuda_8.0.61_375.26_linux.run
$ sudo ./cuda_8.0.61_375.26_linux.run
실행 이후의 선택과정은 다음 링크에서 확인했다
[참고] https://juni-94.tistory.com/6, https://yunsangq.github.io/articles/2017-02/Ubuntu-16.04(64bit),-CUDA-8.0,-cuDNN-5.1-Install
3. openCV-3.4.0, openCV-contrib 3.4.0 설치하기
대략적인 과정은 다음 링크에서 확인했다
https://www.pytorials.com/how-to-install-opencv340-on-ubuntu1604/
4. Darknet 실행하기
현재 GPU 메모리는 2G로 아쉽게 기본 cfg 파일은 실행시킬 수 없는 환경이다. 따라서 4G 메모리가 필요한 파일을 실행시키면 메모리 dump 에러가 발생한다. 그래서 tiny 파일만 실행이 가능하다
[출처] https://jusths.tistory.com/33
GPU, OPENCV, CUDNN을 모두 1로 설정하고 빌드를 한 후, Tiny 파일을 받고 실시간 웹 캠 예제를 실행한다. 약 FPS 20을 상회하는 주기로 이미지 검출이 가능해졌다는 것을 확인할 수 있다
$ ./darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg cfg/yolov3-tiny.weights
'드론' 카테고리의 다른 글
ROS AR_Marker 해석하기 (0) | 2019.10.28 |
---|---|
roslaunch에서의 param tag 의미 (0) | 2019.10.26 |
roslaunch에서 param 설정해서 노드 제어하기 (0) | 2019.10.25 |
roslaunch command line args (0) | 2019.10.24 |
ROS C++ 서비스 서버와 클라이언트 (0) | 2019.10.24 |