일주일간의 개고생과 무수한 삽질.. 그리고 희생된 데스크탑(포맷함)
제 컴퓨터에는 지금 롤과 YOLO Darkflow를 돌릴 수 있는 환경에 필요한 세팅 뿐...
일단 YOLO를 사용한다고 생각한 이상,
darknet에서 이미 만들어 둔 모델을 실행시켜 보고싶은 것이 아니라
YOLO를 이용하여 자신만의 모델을 학습 시키려는 사람일 것이다.
그러기 위해서는 2가지가 필요하다
- labelImg
- Darkflow
이 블로그 까지 들어왔다는 것은 설치에 매우 난관을 겪고있다는 뜻이라고 생각된다.
이 설치 과정에서 오류가 나는 이유는 끝도없이 많다
설치해야하는 프로그램이 기본적으로 많아서 어디에서 오류가 났는지도 알 수 없기 때문 ...
그리고 가지고있는 OS/Graphic card 등 기본적인 환경이 다르기 때문에도 정확히 알 수 없다
당신의 컴퓨터가 어떤 환경인지에 따라 다음의 방법이 먹히지 않을 수도 있으니
제대로 읽지 않고 시도하지 말고 끝까지 읽어본 뒤(중간중간이나 끝부분에 오류도 넣어서 글을 쓸거라서) 에 차근차근 시도해보길 바란다...
일단 내 컴퓨터 환경은 다음과 같다
OS : Window 10
CPU : Intel Core i5-9600KF CPU 3.70GHz
RAM 8.00GB
GPU : NVIDIA Geforce GTX 960
근데 아마 OS/GPU만 상관있을 거다 ...
labelImg
전자는 학습에 제공할 dataset을 만드는 도구이다.
학습을 위해 bounding box를 그려 라벨링을 하는데 사용하는 도구이다
여러가지 도구가 있는 것 같은데 darkflow에는 다들 이걸 써서, 이게 다크플로우 전용인지 아니면 다른걸 써도 되는지는 모르겠다
darknet은 다른걸 사용하는 것 같긴하다
대충 이렇게 범위를 지정해서 라벨링을 해주는 도구다
배트 패밀리 나 모르는사이에 또 증식했네...
프로그램은 이렇게 생겼다
자세한 학습법은 아직 나도 정확히 몰라서 나중에 연구하고 쓸 것
설치 방법은... 조금 나중에 쓰겠음 이거는 쉬워서 구글링하면 많이나옴...
Darkflow
일단 Darkflow는 2가지 버전으로 돌릴 수 있다.
- CPU version
- GPU verison
물론 당연히 GPU version이 훨씬 빠르다
하지만 설치가 상대적으로 매우 복잡하고(그건 아닌데 오류가 많이남..)
가장 중요한 것은 NVIDIA사의 GPU를 장착한 컴퓨터여야 한다.
나는 다양한 삽질 끝에 GPU version을 설치 했으나, 설치에 매우 곤란을 겪고 있는 사람은 일단 CPU버전을 먼저 해본 후 잘 되면 그걸 사용하고
참다참다 못하면 GPU를 도전해 보길 바란다..
* CPU버전 설치를 먼저 진행하고 그 이후에 GPU버전에 필요한걸 추가적으로 설치해도 문제가 없다.
설치 순서
Visual Studio -> Anaconda -> (NVIDIA Graphic Driver -> CUDA -> cuDNN) -> Darkflow
이 부분은 GPU만 해당
CPU VERSION
Darkflow를 정상적으로 작동시키기 위한 준비물
- Visual Studio(Microsoft Build Tools 2015 Update 3)
- Anaconda
- Python
- Tensorflow
- 기타 모듈들..
- Darkflow (github)
Visual Studio
아마 여러곳에서 찾아보면 Visual Studio 2015를 사용하라고 나올 것이다.
나는 Visual Studio쪽에서 여러 에러가 발생 했는데 결론부터 말하면
다른게 아니라
Microsoft Build Tools 2015 Update 3을 깔아야 한다
아래 링크로 들어가서
visualstudio.microsoft.com/ko/vs/older-downloads/
재배포 가능 패키지 및 빌드 도구 클릭
Build Tools 2015 Update 3를 다운로드 해준다
설정을 Default (기본)으로 하여 전부 설치한다
참고로 용량이 조금 크다
오류 목록
이미 Visual studio를 가진경우에는 설치가 안될 수 있다.
가지고있는 모든 Visual Studio를 제거한 후 설치해야하는데
그럼에도 설치되어 있던 Program Files등에 있는 디렉토리들에서 계속 오류가 났다.
그래서 시점복구도 해보고 이것 저것 해봤는데 오류가 고쳐지지 않아
난 결국 컴퓨터를 포맷해서 깐 후에야 성공했다....
Anaconda
사실 요즘엔 docker가 핫한데...
그런걸 따질 여유는 없었다 일단 되기라도 했으면 좋겠다는 심정이어서
아나콘다를 이용해서 가상환경에서 진행하였다
(여러가지 버전의 파이썬등이 로컬에 설치되면 또 이상한 오류가 많이 생기므로 가상환경을 이용하는 것이 좋음)
자신에게 맞는 버전을 깐 후에 그냥 시키는 대로 하면된다.
Darkflow
이제 부터는 아나콘다를 이용하여 가상환경을 만들어 내 진행한다
anaconda prompt 켜기
그냥 클릭해서 켜면됨..
가상환경 만들기
//가상 환경 python 3.6버전으로 생성
conda create -n DarkflowTest python=3.6 pip
//가상 환경 진입
conda activate DarkflowTest
//가상 환경이 만들어진 곳으로 이동
// window C:/Users/본인계정/Anaconda3(or .conda or )/envs/생성한 가상환경이름
// mac /Users/본인계정/opt/anaconda3/envs/생성한 가상환경 이름
// 다를 수도 있음 주의
cd (가상환경 경로)
가상환경으로 진입하는거 잊지말자...
계속 까먹어서 자기도 모르게 로컬에 설치하는 경우가 엄청 많음 진짜로...
모듈 설치
//Tensorflow설치
pip install tensorflow==1.14
Darkflow는 Tensorflow 2를 지원하지 않음을 명심하자
만약 오류가 난다면, 가상환경에 진입하는 것을 잊지 않았는지 확인하고
안되면 ,
//Tensorflow설치
conda install tensorflow==1.14
을 해보도록 하자
scipy / numpy / opencv / cython 설치
pip install scipy numpy opencv-python
pip install cython
darkflow 다운로드
두가지 방법이 있다.
git을 이용
//git 설치
conda install -c ananconda git
//git을 이용하여 다운로드
git clone https://github.com/thtrieu/darkflow
수동 다운로드
사이트에 접속하여
zip으로 압축파일을 푼 후 해당 파일의 이름을 "darkflow"로 변경한 후
현재 존재하는 경로에 넣어준다 (가상환경 경로로 이동했던 그곳... )
빌드
//darkflow로 이동
cd darkflow
//build
python setup.py build_ext --inplace
입력했을 때 딱히 아무런 오류 메세지가 나오지 않으면 성공(캡쳐를 까먹음)
확인하는 법
python flow --h
입력시, 별 다른 에러 메세지가 나오지 않고 다음과 같은 화면이 출력되었다면 아마 정상적으로 작동할 것
내가 겪었던 오류 LIST
1. Cannot open include file: 'io.h' : No such file or directory
fatal error C1083: Cannot open include file: 'io.h': No such file or
directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\cl.exe' failed with exit status 2
해결방법 )
환경 변수 추가
2. Cannot open include file: 'basetsd.h': No such file or directory
fatal error C1083: Cannot open include file: 'basetsd.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\cl.exe' failed with exit status 2
해결방법 )
2017 / 2019 Visual Studio라면 Installer에서 해결방법이 있지만,
2015는 대체 그런게 없다...
해결방법은 다 삭제 후 Build Tools 2015 Update 3 를 다운로드 하는 방법인데,
이미 가지고 있던 기타 Visual Studio의 잔재들까지 완벽하게 없애지 않는 이상 오류를 해결 할 수 없어서
그냥 윈도우를 초기화했다...
윈도우 초기화 하는법
여기 참고
지금 복구하는법 캡쳐하려다가 컴퓨터 복구시켜버릴 뻔 해서 생략함ㅋㅋㅋㅋㅋㅋ ㅠ
3. error: Microsoft Visual C++ 14.0 is required.
error: Microsoft Visual C++ 14.0 is required.
Get it with "Microsoft Visual C++ Build Tools" : https://visualstudio.microsoft.com/downloads/
해결방법) 2번과 동일..
GPU VERSION
Darkflow를 정상적으로 작동시키기 위한 준비물
- Visual Studio (Microsoft Build Tools 2015 Update 3)
- NVIDIA Graphic Card(하드웨어)
- NVIDIA Driver
- CUDA
- cuDNN
- Anaconda
- Darkflow (github)
색칠 한 것이 완료되었다는 전제하에 작성
(즉, 위의 CPU버전을 했을 때 별다른 오류가 없었다는 가정 하에 작성)
여기서 발생하는 대부분의 오류는 버전을 잘못 설치해서이다
Visaul Studio /NVIDIA Graphic Card / NVIDIA Drvier / CUDA / cuDNN / Anacodna(python/tensorflow)
이들 모두 사이의 버전이 정확하게 맞지 않으면 작동하지 않는다..
그렇기 때문에 이 글을 보면서 바로바로 설치하지 말고,
맞는 버전을 적어 둔 뒤 최종적으로 저들 사이에 맞는 버전이라면 그때 설치를 진행하도록 하자
즉 2가지 단계를 거친다
- 설치버전 확인하기
- 설치 순서에 맞게 설치하기
일단 Visual Studio는 위에서 말한 Microsoft Build Tools 2015 Update 3 을 사용했다고 가정하고 시작한다.
만약 그러고싶지 않으면, 그러지 않아도 될것이긴 하다..
그 대신 자신의 VS에 맞는 다른 옵션들을 골라야한다
그건 여기를 참고해서 ... 나는 그러고싶지 않아서 그냥 국룰을 따라했다
docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html
국룰을 따라할 사람( Microsoft Build Tools 2015 Update 3을 이용해 CPU버전이 잘 돌아간 사람 )은 아래 "설치 버전을 확인하기" 부분을 건너 뛰어도 된다.
물론 정확하게 하려면 보는게 좋음
설치하려는 버전을 확인하기
NVIDIA Graphic Card 확인
자신이 사용하는 NVIDIA의 그래픽 카드가 무엇인지 확인하자
or
cmd -> nvidia-smi 입력
이게 안나오면 쫄지말자 그냥 driver를 설치하지 않은 것이다.
나의 그래픽 카드는
NVIDIA Geforce GTX 960 임을 확인하였다.
이제 각자 자신의 그래픽 카드를 기억하고, 자신에 맞추어 따로오도록 한다.
NVIDIA Driver
cmd-> nvidia-smi 입력
만약없다면? 저 화면이 나오지 않는다면,
설치링크
www.nvidia.co.kr/Download/Find.aspx?lang=kr
여기서 버전을 보고 깔면된다
(물론 아직깔면 안됨 그냥 되는 목록을 켜놓거나 어디 적어놓기만 해야함)
Windows 10 version확인법은
제어판 > 시스템에 가면 써있음
CUDA
이 놈 아주 예민한 것 같다..
여려가지를 확인해주어야 하는데 일단
- 자신의 NVIDIA GPU가 어떤 버전의 CUDA 를 지원하는지
- NVIDIA Driver가 어떤 버전의 CUDA를 지원하는지
를 확인해야한다.. (근데 더있을 수도 있음;)
자신의 NVIDIA GPU가 어떤 버전의 CUDA 를 지원하는지
일단 자신의 NVIDIA GPU가 어떤 버전의 CUDA를 지원하는지 확인하자
그러려면 NVIDIA GPU의 Compute capability부터 확인해 주어야함
여기 들어가서 중간쯤 GPU Supports를 보면,
NVIDIA GeForce GTX 960 의 Compute capability는 5.2인 것을 알 수 있다.
그럼 그 위에 Compute Capability가 5.2인 GPU가 사용할 수 있는
CUDA SDK목록은
이렇게 확인가능하다
나는
CUDA 6.5 ~ 11.2 가 사용가능한 것으로 밝혀져..~
NVIDIA Driver가 어떤 버전의 CUDA를 지원하는지
또 어떤 Driver인지에 따라 CUDA를 사용할 수 있는 지가 다르다..
docs.nvidia.com/deploy/cuda-compatibility/#source-compatibility
이 링크에 가서 중간 쯤 보면
음..상관없이 되는 것 같다
설치링크
developer.nvidia.com/cuda-toolkit-archive
cuDNN
이거는 간단하게 여기 사이트에 들어가면 옆에 나와있다
이걸 설치하려면 NVIDIA에 가입해야한다.
developer.nvidia.com/rdp/cudnn-archive
자신이 설치한 CUDA 버전에 맞는 cuDNN을 선택한다.
자신의 os에 맞는 버전을 선택하여 다운로드 한다.
Tensorflow + Python
CUDA버전에 맞는 텐서플로우 버전과 파이선 버전확인
www.tensorflow.org/install/source_windows#tested_build_configurations
텐서플로우 2는 지원이 안되니까 1만 봐야하고일단
자신이 Visual C++ 2019 를 사용한다면 못하겟네... 2만지원하니까
그럼 Visual C++ 2017을 사용한다면 쿠다 10에 cuDNN 7.4고정에 1.15~1.13 텐서플로우 파이썬은 3.5~3.7만 가능
물론 이에 맞는 NVIDIA DRIVER / NVIDIA GPU가 있어야 함
뭐 이런거다
설치하기
설치를 진행할 때 순서는
NVIDIA Driver -> CUDA -> cuDNN -> Anaconda prompt를 이용한 실행
이다.
이제 고른 것들을 차례대로 설치하자
내가 고른건
NVIDIA Driver : version 460.89
CUDA : 8.0
cuDNN : 6.0 for CUDA 8.0
Tensorflow : tensorflow-gpu == 1.4.0
NVIDIA
www.nvidia.co.kr/Download/Find.aspx?lang=kr
여기서 자신의 사양을 검색해서 원하는 버전 클릭
그냥 하면되는데 특이사항은
시스템 검사 부분에서
NVIDIA 그래픽 드라이버 및 GeForce Experience가 아닌
NVIDIA 그래픽 드라이버를 선택
사용자 정의 설치에서
NVIDIA GeForce Experince를 해제하고 설치 한다
자세히 알고싶으면 아래 참고
다 설치 했으면 한번 재부팅 해주자
참고
CUDA
developer.nvidia.com/cuda-toolkit-archive
그냥 설치하면 되는데,
사용자 정의 설치 > CUDA > Visual Studio Integration 체크를 해제하고 설치하도록 한다.
*이걸 설치하는 동안에 갑자기 화면이 깜빡거리거나 아예 나가서 돌아오지 않을 수 있는데
쫄지 말고 오랫동안 검은화면이 지속되면 본체를 눌러서 꺼버린다음에
" 앱 및 기능 "에서 CUDA를 검색하여 전체 삭제한다음 재시도하면 되더라...
참고
reyrei.tistory.com/24?category=794577
cuDNN
developer.nvidia.com/rdp/cudnn-archive
쿠다 버전에 맞게 다운 받은 후
압축을 풀어 준 후에 내용물인 bin / include / lib를
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0(자신이 설치한 버전)
내에 넣어서 덮어써준다.
그 후 환경변수를 설정해 준다.
내PC > 속성 > 고급 시스템 설정 > 고급 > 환경변수
새로 만들기를 눌러서
변수이름 : cudnn
변수 값 디렉토리는 이와같이 지정해준다 (뒤에 버전은 다르게 써야함)
참고로 CUDA_PATH 2개는 설치하면 자동으로 생김
여기까지 완료했으면 anaconda prompt에
nvcc --version을 입력했을 때,
이렇게 나온다.
Darkflow실행하기
설치가 완료되었으면 이제 CPU때랑 완전 비슷하다(텐서플로우가 다름)
이제 부터는 아나콘다를 이용하여 가상환경을 만들어 내 진행한다
anaconda prompt 켜기
그냥 클릭해서 켜면됨..
가상환경 만들기
//가상 환경 python 3.6버전으로 생성
conda create -n DarkflowGPUTest python=3.6 pip
//가상 환경 진입
conda activate DarkflowGPUTest
//가상 환경이 만들어진 곳으로 이동
// window C:/Users/본인계정/Anaconda3(or .conda or )/envs/생성한 가상환경이름
// mac /Users/본인계정/opt/anaconda3/envs/생성한 가상환경 이름
// 다를 수도 있음 주의
cd (가상환경 경로)
가상환경으로 진입하는거 잊지말자...
계속 까먹어서 자기도 모르게 로컬에 설치하는 경우가 엄청 많음 진짜로...
모듈 설치
//Tensorflow설치
pip install tensorflow-gpu==1.4
아까 위에서 자신이 설치하기로 결정한 버전으로 설치해준다.
아니면 실행할 때 오류남
안되면 ,
//Tensorflow설치
conda install tensorflow==1.4
을 해보도록 하자
scipy / numpy / opencv / cython 설치
pip install scipy numpy opencv-python
pip install cython
darkflow 다운로드
두가지 방법이 있다.
git을 이용
//git 설치
conda install -c anaconda git
//git을 이용하여 다운로드
git clone https://github.com/thtrieu/darkflow
수동 다운로드
사이트에 접속하여
zip으로 압축파일을 푼 후 해당 파일의 이름을 "darkflow"로 변경한 후
현재 존재하는 경로에 넣어준다 (가상환경 경로로 이동했던 그곳... )
빌드
//darkflow로 이동
cd darkflow
//build
python setup.py build_ext --inplace
입력했을 때 딱히 아무런 오류 메세지가 나오지 않으면 성공(캡쳐를 까먹음)
확인하는 법
python flow --h
입력시, 별 다른 에러 메세지가 나오지 않고 다음과 같은 화면이 출력되었다면 아마 정상적으로 작동할 것
Arguments:
--help, --h, -h show this super helpful message and exit
--imgdir path to testing directory with images
--binary path to .weights directory
--config path to .cfg directory
--dataset path to dataset directory
--labels path to labels file
--backup path to backup folder
--summary path to TensorBoard summaries directory
--annotation path to annotation directory
--threshold detection threshold
--model configuration of choice
--trainer training algorithm
--momentum applicable for rmsprop and momentum optimizers
--verbalise say out loud while building graph
--train train the whole net
--load how to initialize the net? Either from .weights or a checkpoint, or even from scratch
--savepb save net and weight to a .pb file
--gpu how much gpu (from 0.0 to 1.0)
--gpuName GPU device name
--lr learning rate
--keep Number of most recent training results to save
--batch batch size
--epoch number of epoch
--save save checkpoint every ? training examples
--demo demo on webcam
--queue process demo in batch
--json Outputs bounding box information in json format.
--saveVideo Records video from input video or camera
--pbLoad path to .pb protobuf file (metaLoad must also be specified)
--metaLoad path to .meta file generated during --savepb that corresponds to .pb file
오류 LIST
1. ImportError: Could not find 'cudart64_90.dll'.
나는 이런 오류가 났었는데, cuda 9.0으로 변경하라는 오류이다.
이때 변경할 필요가 없다. 바로 당신이 자신의 CUDA 와 맞지 않는 버전의 텐서플로우를 설치 했기 때문이다.
이 표를 보고 CUDA와 cuDNN버전을 확인해서 올바른 버전을 가상환경에 설치하면 해결된다.
이 외에도 다양한 오류가 날 수 있지만 대부분 위의 표에 호환되지 않는 것 끼리 설치했을 확률이 높으며,
뭔가 심각한 오류가 나는부분은 MSVC(비쥬얼 C++)오류 일탠데 이걸 깔끔하게 삭제 후 재설치가 어려워서 나는 포맷했다...
'졸업프로젝트 > YOLO' 카테고리의 다른 글
[YOLO] Darknet 공식문서 번역 (0) | 2021.03.08 |
---|---|
[YOLO]OpenCV를 이용한 YOLO (0) | 2021.03.07 |
[YOLOdarkflow] Image Labeling (0) | 2021.02.24 |
사전조사2 (0) | 2021.02.10 |
사전조사 내용 (0) | 2021.02.10 |