본문 바로가기

Capstone design/Theft Chaser

Theft Chaser : Yolo를 활용한 도둑탐지 - Yolo 설치

앞의 글에서 GPU를 사용해 학습시키기 위한 환경을 구성해주었습니다.

이제 Yolo를 다운받아줍니다.

git clone https://github.com/pjreddie/darknet

다운을 받고 darknet 폴더로 이동해 Makefile을 열어줍니다

vi Makefile
nano Makefile

 

Makefile을 열게되면 제일 위에 있는 항목들부터 수정해줍니다.

Makefile 을 수정해준다.

이전에 GPU 사용을 위해 CUDA와 CUDNN을 설치해 주었으니 GPU와 CUDNN의 값을 0에서 1로 바꿔줍니다.

(0 = 사용하지 않음, 1 = 사용)

OPENCV도 0이라 써있다면 1로 고쳐줍니다.

 

그 다음 밑으로 내려와서 'ifeq ($(GPU), 1)' 항목을 찾아줍니다.

찾으셨다면 COMMON+ 와 LDFLAGS+ 에 써있는 경로를 한번씩 확인해줍니다.

문제가 없다면 저장하고 나온 후 darknet 폴더안에서 make 해줍니다.

make

저는 학습 환경을 여러번 옮겨다니며 설치도 여러번 해봤는데 매번 오류를 겪으며 설정을 했었습니다.

 

간혹 make 도중 lcublas, lcudart, lcurand 라는 파일을 찾을 수 없다며 에러가 날 때가 있었습니다.

그럴때 전 /usr/local/cuda (CUDA 설치 시 default location) 경로에 symbolic link 가 잘 걸려있나 확인해줬습니다.

폴더에 링크가 걸려있음에도 같은 오류가 날 때는 /usr/local/cuda-9.0/lib64 폴더로 이동(본인의 쿠다 버전에 맞는 원본 폴더로 이동합니다.)해서 libcublas.so , libcudart.so , libcurand.so 이 세 파일이 존재하는지 확인해주고 없다면 폴더 내에서 symbolic link를 통해 만들어 주었습니다.

cd /usr/local/cuda-9.0/lib64/
ln -s libcublas.so.9.0.176 libcublas.so
ln -s libcudart.so.9.0.176 libcudart.so
ln -s libcurand.so.9.0.176 libcurand.so

 

이렇게까지 했음에서 lcublas , lcudart , lcurand 라는 파일이 없다며 make가 안될 경우엔

cd /usr/local/cuda-9.0/lib64/
ln -s libcublas.so.9.0.176 lcublas
ln -s libcudart.so.9.0.176 lcudart
ln -s libcurand.so.9.0.176 lcurand

요구하는 파일명을 그대로 링크로 걸어줘서 오류를 해결한 적도 있었습니다.

 

이렇게 make를 끝내고 나면 yolo 실행을 위한 가중치 파일을 받아줍니다.

(전 yolov3를 사용했습니다.)

wget https://pjreddie.com/media/files/yolov3.weights

 

가중치 파일까지 모두 받았다면 이제 예제 파일을 실행시켜 봅니다.

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

위의 실행 문구는 data 폴더 안의 dog.jpg 사진을 가져와 cfg 폴더 안의 yolov3.cfg로 detect 하며 가중치 파일으로yolov3.weight 를 사용한다는 것입니다.

 

실행을 시키게 되면 이제 인터넷에서 자주 볼 수 있던

yolo를 통해 dog.jpg 안에 있는 객체를 detect한 모습

위와 같은 사진을 볼 수 있게 됩니다.

 

이 밖의 다른 사진이나 동영상, 웹캠을 이용한 실시간 탐지를 하려면

./darknet detect cfg/yolov3.cfg yolov3.weights data/<사진이름>
./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights <영상이름>
./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights

같이 사용하면 됩니다. (세 번째 실행 문구가 웹캠을 통한 인식입니다.)

 

이번 포스팅은 여기까지 Yolo의 설치부터 설정, make 예제파일 실행까지 다뤄보았습니다.

다음 포스팅에선 직접 학습시킨 데이터를 바탕으로 실행해보는 부분을 다뤄보겠습니다.

 

참고 사이트

개발자 이상현 https://pgmrlsh.tistory.com/4?category=766787