많은 난관이 예상되지만 혼자서 이미지 인식을 목표로 한번 달려보자.
첫 번째는 개발 환경을 만드는 것이다.
나는 Python을 주로 사용하기 때문에 일단 Anaconda 와 Jupyter notebook 에서 시작한다.
나중에 사진 학습을 위해 GPU 가 사용될 수 있어 Colab 으로 넘어갈 수 있지만 일단은 이렇게...
#1. 환경 설정
나는 Window 10 환경을 사용하였다.
(1) anaconda 에서 가상환경 만들기. (Python 3.6 ver)
(2) 여기 에서 open CV 파일 다운 받기. (저는 opencv_python-4.4.0-cp36-cp36m-win_amd64.whl 다운했습니다.)
(3) 요기 에서 numpy 파일 다운 받기. (저는 numpy-1.18.5+mkl-cp36-cp36m-win_amd64.whl 다운했습니다.)
(4) anaconda prompt 창에서 두 명령 실행
pip install opencv_python-4.4.0-cp36-cp36m-win_amd64.whl
pip install numpy-1.18.5+mkl-cp36-cp36m-win_amd64.whl
anaconda 에서 지정된 폴더에 두 개의 파일이 있어야 합니다.
저는 numpy 설치할 때 빨간색 문장으로 오류가 뜨긴 하던데 일단 무시했습니다...
ERROR: After October 2020 you may experience errors 어쩌구.....
(5) 환경변수 추가
시스템 속성 - 고급 - 환경변수 - Path 편집 - 새로만들기
C:\ProgramData\Anaconda3\
C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\Library\bin
한 줄 씩 추가하면 됩니다. 자신의 컴퓨터 안에 있는 아나콘다 경로에 맞게 추가하셔야 합니다.
저의 경우에는 C드라이브에 있었기 때문에 저렇게 추가하였습니다.
(5-1) Visual Studio 2015 설치
20.11.02 수정... CUDA 보다 Visual Studio 를 늦게 설치하면 귀찮은 점이 발생한다... CUDA 보다 먼저 설치하세요.
(6) CUDA 설치 (CUDA 9.0)
이곳 에서 설치하실 수 있습니다. 최신 버전이 있지만 저는 오류가 나서 9.0으로 돌아왔네요...
사진은 11.1 이지만 9.0 으로 했습니다.
다운이 완료되면 관리자 권한으로 실행하여 설치합니다.
(7) cuDNN 설치
이곳 에서 다운받으시면 됩니다. cuDNN Library for Window 10
Download cuDNN v7.6.5 (November 5th, 2019), for CUDA 9.0
이 경우에는 로그인이 필요하고 로그인 후 간단한 설문 후 다운 받으실 수 있습니다.
저는 구글 로그인 했습니다. (TMI)
cuDNN 을 다운받기 전에 CUDA 와 버전이 연동되는 파일인지 확인 후 다운받으셔야 합니다.
파일명을 보면 금방 아실 수 있을 것입니다.
cuDNN 파일에 대해 압축을 풀면 세 가지 폴더가 있을 것입니다. [bin, include, lib]
그 3개의 폴더를 CUDA 를 설치한 폴더 안으로 덮어씌우기를 합니다.
V11_1 이 아니라 V9_0 가 됩니다. (사진)
이후 다시 환경 변수를 설정하는 곳으로 가서 시스템 변수 - 새로 만들기 를 합니다.
이름은 cudnn 주소는 CUDA_PATH 와 같은 위치로 복사 붙여넣기 하시면 됩니다.
(8) tensorflow 등등 설치
pip install tensorflow-gpu==1.5
pip install scipy cython matplotlib
(9) YOLO darkflow 다운로드 및 설치
관련 깃허브 에 들어가셔서 다운받으시면 됩니다. (git clone 하는 방법도 있지만...)
다운받고 압축을 풀면 darkflow-master 폴더가 나오고 그 안에 있는 단 하나의 폴더를 darkflow로 이름을 고치고
C:\ProgramData\Anaconda3\envs\가상환경명 내에 옮겼습니다.
그리고 아나콘다 프롬프트 창에서 darkflow 폴더로 이동한 뒤 실행합니다.
python3 setup.py build_ext --inplace
pip install -e .
pip install .
#2 YOLO
미리 설정되어 있는 가중치를 다운 받습니다.
그리고 darkflow 폴더 안에 있는 cfg 폴더에 다운받은 cfg 를 넣고 bin 폴더에는 weights 를 넣는다.
import tensorflow as tf
import numpy as np
import cv2
from darkflow.net.build import TFNet
import matplotlib.pyplot as plt
%config InlineBackend.figure_format = 'svg'
options = {
'model' : "./cfg/yolo.cfg",
'load' : './bin/yolo.weights',
'threshold' : 0.3,
}
tfnet = TFNet(options)
img = cv2.imread('dog.jpg', cv2.IMREAD_COLOR)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
result = tfnet.return_predict(img)
t1 = (result[0]['topleft']['x'], result[0]['topleft']['y'])
br = (result[0]['bottomright']['x'], result[0]['bottomright']['y'])
label = result[0]['label']
img = cv2.rectangle(img, t1, br, (0, 255, 0), 7)
img = cv2.putText(img, label, t1, cv2.FONT_HERSHEY_COMPLEX, 1, (0,0,0), 2)
plt.imshow(img)
plt.show()
그리고 주피터 노트북을 실행하면
출력된 이미지가 나타난다. 미리 학습된 항목들은 coco.names 파일에서 확인할 수 있다.
개 사진은 아무거나 다운받으면 될 것 같다.
'개인 프로젝트 > 이미지 인식' 카테고리의 다른 글
02. 커스텀 이미지 학습시키기 (Yolo - darknet) (1) | 2020.11.09 |
---|---|
01. 개발 환경 세팅하기. (Yolo - darknet) (0) | 2020.11.05 |