[YOLO / darkflow] YOLO와 Python을 이용한 object detection (1) - 설치 및 테스트 (+20.08.13. GPU 오류 해결 완료)
(+2020.8.13)
CUDA_ERROR_OUT_OF_MEMORY, CUDNN_STATUS_ALLOC_FAILED 오류 해결했습니다.
GPU를 30%정도만 사용하고 배치를 작게 잡으면 됩니다. - 맨 하단 기술함.
※ 본 포스팅은 darkflow 유투브(https://www.youtube.com/watch?v=PyjBd7IDYZs)를 참고하여 작성되었습니다.
※ Windows 10 x64 환경을 사용하고 있습니다.
0. YOLO darkflow 설치를 위한 준비
- Anaconda/CUDA 설치
: 2019/01/05 - [Laboratory/인공지능] - Python/Tensorflow/Keras를 이용한 Mask RCNN (1)
- Darkflow GitHub : https://github.com/thtrieu/darkflow
- Darknet GitHub : https://pjreddie.com/darknet/yolo/
1. YOLO 설치를 위한 환경설정
1-1. 가상환경 생성
- 명령프롬프트(cmd)창을 연다.
- YOLO설치를 위한 가상환경을 생성한다.
- anaconda와 CUDA, cuDNN 등은 위의 링크 참고하여 설치한다.
conda create -n YOLOdark python=3.6 pip |
1-2. 필요 모듈 설치
- 가상환경 진입하여 필요모듈을 설치한다.
- darkflow에서는 Python3, tensorflow 1.0, numpy, opencv 3을 이용한다고 되어있다.
- cython은 파이썬 컴파일러로서 darkflow 빌드를 위해 설치한다.
pip install tensorflow-gpu==1.5 |
pip install tensorflow-gpu==1.5 pip install scipy numpy opencv-python pip install cython |
2. YOLO darkflow 다운로드 및 빌드
- GitHub : https://github.com/thtrieu/darkflow
- GitHub에서 git을 다운받거나 git clone을 이용하여 폴더로 다운로드한다.
2-1. darkflow 다운로드 (web download or git clone 중 1 택)
- 웹페이지에서 다운받아서 폴더에 압축을 푸는 방법
- git clone을 설치하여 git을 다운로드하는 방법
Conda install –c anaconda git |
- 폴더 내에 darkflow 라는 폴더가 생성되면 다운 완료.
2-2. 라이브러리 빌드(Build the library)
- darkflow 폴더로 진입
- darkflow에서 제공되는 setup.py 파일을 빌드한다.
python3 setup.py build_ext --inplace |
- bulid 폴더가 생성되는 것을 확인한다.
2-3. 가중치 파일(weights file) 다운로드
- YOLO darkflow 테스트를 위해 이미 학습되어있는 가중치 파일을 다운로드한다.
- Darknet 사이트에서 제공되는 YOLOv2 608×608 weights file을 다운받는다.
- Darknet : https://pjreddie.com/darknet/yolo/
- darkflow 폴더에 bin 이라는 폴더를 새로 생성하고, 폴더 안에 yolov2.weights 파일을 넣어준다.
3. YOLO darkflow 테스트 (GPU or No GPU)
- videofile.mp4 파일을 폴더에 하나 저장하고, flow 파일을 실행시켜본다.
3-1. CPU로 테스트(no GPU)
- CUDA, CUDNN 오류가 나지 않는다.
- 매우매우 느리다. (29초짜리 영상을 24s짜리로 변환하는데 15분정도 걸렸다. 중간에 짜증나서 취소함)
python flow --model cfg/yolo.cfg --load bin/yolo.weights --demo videofile.mp4 --saveVideo |
* youtube에 있는 레이싱 영상을 녹화하여 구동해본 결과 영상입니다.
(영상 출처 : https://www.youtube.com/watch?v=eSAVhH0T3Ls&t=58s)
3-1. GPU를 사용하는 테스트
- 오류 수정 예정...(2019/4/19) 오류 해결함
- 오류 발생
( + 2020.8.13)
※ CUDA_ERROR_OUT_OF_MEMORY, CUDNN_STATUS_ALLOC_FAILED 오류 해결 방법
→그래픽 카드 사양이...좋지 않기때문에...............생기는 오류같습니다...
gpu 와 batch를 이렇게 수정하면 됩니다. ㅠㅅㅠ
(dell 7577 inspiron 노트북 gtx 1060max-q 기준)
gpu 1.0 = gpu를 100% 쓰겠다. 이므로 0.3 정도로 하면 가까스로 돌아갑니다.
0.4부터 제 노트북은 오류가 납니다..
python flow --model cfg/yolo.cfg --load bin/yolo.weights --demo videofile.mp4 --saveVideo ↓ python flow --demo videofile.mp4 --model cfg/yolo.cfg --saveVideo --load -1 --gpu 0.3 batch 5 |
커스텀 학습 시에도
python flow --model cfg/yolo.cfg --load bin/yolo.weights --train --annoation train/Annotations --dataset train/Images --load -1 --gpu 0.3 --batch 5 형태로 넣어주세요.
참고로 darkflow는 lableImg 라는 annoation 툴을 사용하셔야 합니다.