반응형


이번에는 딥러닝 환경을 구축하기 위해 기본이 되는 아나콘다(파이썬)을 설치해보도록 할게요.


먼저 아나콘다 설치 파일을 다운로드하기 위해 아래의 링크를 통해 아나콘다 공식 홈페이지로 이동해서 Download 버튼을 클릭하세요.


아나콘다 홈페이지


아나콘다는 Windows, MacOS, Linux 등 다양한 OS와 32 비트/64비트, Python 3.7, 2.7 등 다양한 환경을 지원하고 있어요.



저는 윈도우에 파이썬 3.x 버전으로 개발 환경을 구축해야되서 Python 3.7 64-Bit를 다운로드 했어요.


다운로드가 완료되면 설치 파일을 실행하세요.

기본 설치 경로는 C:\Users\현재 계정\anaconda3에 설치되는 것을 볼 수 있어요.

현재 2020.02 버전 기준 설치에 필요 공간 약 3.0GB 정도네요.



Advanced Options 창에서는 환경 변수 등록을 위해 <Add Anacoda3 to my PATH environment variable>을 체크하고 <Install> 버튼을 클릭하세요.




프로그램 설치를 완료하고 시작 메뉴에서 Anaconda - Anaconda Navigator (anaconda3)를 실행하세요.


Navigator 간단하게 응용 프로그램 실행, 환경 구성, 학습 등이 가능하며 Home에서 CMD 창, 주피터 노트북 등을 바로 실행할 수 있어요.




테스트도 CMD.exe Prompt를 실행한 다음 파이썬을 실행하기 위해 python을 입력해보았어요.

화면과 같이 Python 3.7.6 이라는 버전을 볼 수 있어요.



그럼 이상으로 아나콘다 설치하기 포스팅을 마치며 다음에 자료 정리해서 사용하는 방법에 대해서 포스팅 해보도록 하며, 오늘도 즐거운 개발하세요.


반응형
,
반응형


darknet을 Makefile 파일에 OPENCV=1로 설정하여

make 하고 yolo를 실행했을 때 OpenCV 관련하여 다음과 같은 에러가 발생했어요.


실행 : ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

에러 : darknet: error while loading shared libraries: libopencv_highgui.so.3.4: cannot open shared object file: No such file or directory


OpenCV 라이브러리 관련하여 문제가

발생한 거 같은데 하나씩 확인해보도록 할게요.



1. OpenCV 설치 여부 확인


우선 OpenCV가 제대로 설치되어 있나 터미널에서

다음 명령어를 실행해서 현재 설치된 버전이 나오나 확인하세요.


pkg-config --modversion opencv



만약에 다음과 같이 버전이 나오지 않는다면 OpenCV가 

설치되어 있지 않거나 환경 설정 관련 문제 일수도 있어요.



OpenCV 설치가 필요하신 분은 아래의 링크를 

참고하여 OpenCV를 설치하고 오세요.


Unbuntu에 OpenCV 설치하기(Ubuntu, Linux)



2. 라이브러리 정보 갱신


라이브러리 관련 정보 갱신을 위해 터미널에 아래 명령어를 실행하고

다시 darknet detect가 되나 확인해보세요.


sudo ldconfig


저 같은 경우에는 OpenCV를 설치하고 바로 darknet yolo를 실행하여

라이브러리 인식 관련 문제가 있었던 거 같네요.


그럼 이상으로 포스팅을 마치며 오늘도 즐거운 하루 보내세요.



반응형
,
반응형


이번에는 darknet Yolo v3를 환경 구축(설치)과 물체 인식을 해보도록 할게요.


▷ 테스트 환경

1. Ubuntu (버추얼 머신 - 우분투 가상 환경)

2. 노트북 (Intel i3-2330M 2.20Hz, RAM 8GB, SSD, GT 540M)


▷ 기타 환경 (옵션, 없거나 이용하지 않아도 상관없음)

1. OpenCV

2. GPU, Cudnn, CUDA(NVIDIA Graphic Card)



1. 코드 다운로드


먼저 github를 통해 darknet을 다운로드하세요.

다운로드하는 방법은 링크를 통해 github 사이트에서 다운로드 버튼을 클릭하거나 터미널 창을 열어 아래의 명령어를 입력하면 받을 수 있어요. ( https://github.com/pjreddie/darknet)


- 터미널에서 다운로드

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



우분투에 git이 없다고 나오는 경우에는 아래의 명령어를 입력하여 git을 설치하세요.


sudo apt install git






2. 코드 빌드


git clone 하여 github에서 코드 다운로드를 완료하면 darknet 폴더가 생기는 이 폴더로 이동한 다음 사용하는 환경에 맞게 Makefile를 수정한 다음 make 하면 돼요.

기본 설정은 CPU로 되어 있어 GPU를 사용하실 분은 MakeFile을 열어 사용 체크를 해줘야 돼요.

(2.1 ~ 2.2 해당하는 작업)


2.1. Makefile 설정

vi 또는 gedit를 이용하여 Makefile을 열어 GPU, OpenCV 사용 여부 등을 설정해주세요.

단순히 CPU로 사용하실 분은 건너뛰셔도 돼요.


 $ gedit Makefile



GPU=0 # GPU 사용 시 1로 변경

CUDNN=0 # Cudnn 사용 시 1로 변경 (NVIDIA)

OPENCV=0 # opencv 사용 시 1로 변경 >물체 인식 후 이미지 뷰의 창을 띄워 결과 확인 가능


2.2. 빌드

 cd darknet

 make


만약 시스템에 make, gcc, pkg-config가 설치되어 있지 않으면 아래의 명령어를 입력하여 설치하고 make 하세요.



- 기본

 sudo apt install make

 sudo apt install gcc




- pkg-config: not found

sudo apt-get install pkg-config






3. 물체 인식하기


우선 아래의 명령어를 터미널에 입력하여 yolov3 가중치를 다운로드하세요.

darknet의 경우 여러 가중치를 사용할 수도 있어요.

이는 밑에서 설명하도록 할게요.


3.1. 가중치 다운로드

가중치 다운로드하기 위해 터미널에 다음과 같은 명령어를 입력하세요.

(또는 아래의 링크를 웹브라우저에 입력하여 다운로드)


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



3.2 물체 인식하기

지금은 yolov3를 기준으로 다음과 같이 cfg, weights, 인식할 이미지 등을 같이 입력하면 돼요.


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


cfg/yolov3.cfg : 설정값

yolov3.weight : 가중치



결과를 확인하면 해당 이미지를 처리하는데 걸린 시간과 객체의 이름, 인식률(%)이 표시돼요.

그리고 인식 결과가 이미지 darknet 폴더 내에 predictions.jpg로 저장돼요.


Loading weights from yolov3.weights...Done!

data/dog.jpg: Predicted in 67.919827 seconds.

dog: 100%

truck: 92%

bicycle: 99%



Makefile에서 OPENCV를 1로 설정하여 make 하였다면 결과 창이 떠요.


실행 중에 Killed가 뜨면 메모리 관련, 시스템 환경으로 인한 실행 중단 일 수 있어요.

저는 버추얼 머신의 기본 메모리를 낮게 잡아놔 총 4GB로 설정해주니 죽지 않고 잘 실행되네요.



위의 명령어로는 기본 인식률 0.25(25%)가 넘는 경우에만 Bounding Box(네모) 표시하기 때문에 원하는 인식률 이상의 객체를 뽑아내고 싶으신 분은 뒤에 [ -thresh 원하는 값 ]을 입력해주시면 돼요.

-thresh 0 : 전체

-thresh 0.9 : 90% 이상인 경우만 표시


./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg -thresh 0.95


Loading weights from yolov3.weights...Done!

data/dog.jpg: Predicted in 45.647927 seconds.

dog: 100%

bicycle: 99%



저는 버추얼 머신(VM)의 우분투 환경, CPU만 사용한 결과로 실제 시스템 환경에서 GPU 사용을 할 경우에는 이 결과보다 빠르게 나와요.


이외에도 yolov3-tiny라고 다른 가중치를 이용하여 물체 인식을 할 수도 있어요.

yolov3-tiny의 경우 yolov3보다 가볍지만 정확도는 떨어지는 모델이며 사용법은 yolov3와 비슷하여 앞의 명령어에서 cfg, weight 부분을 바꿔주면 돼요.


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

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






4. YOLO3, YOLO3-Tiny 인식 결과 비교


▷ 테스트 이미지 : ./data/dog.jpg

▷ 테스트 환경 : 버추얼 머신(VM 환경), CPU


▷ YOLO3

Loading weights from yolov3.weights...Done!

./data/dog.jpg: Predicted in 51.491298 seconds.

dog: 100%

truck: 92%

bicycle: 99%


▷ YOLO3-Tiny

Loading weights from yolov3-tiny.weights...Done!

./data/dog.jpg: Predicted in 1.888756 seconds.

dog: 56%

car: 52%

truck: 56%

car: 62%

bicycle: 58%



정확도 : Yolo3 >Yolo3-Tiny

처리 속도 : Yolo3-Tiny >Yolo3


Yolo3 Tiny가 속도가 빠른 대신 인식 정확도는 Yolo3가 더 높아요.

그래서 임베디드 같은 낮은 사양의 환경에서는 Yolo3 Tiny를 이용하는 게 좋을듯하네요.

이 밖에도 darknet 폴더 내부에 있는 data 폴더에 다양한 이미지들이 있으니 참고하세요.


그리고 YOLOv3는 80개의 클래스를 제공하고 있는데요.

data/coco.names 파일을 열면 클래스 네임들을 볼 수 있어요.

person

bicycle

car

....


그럼 이상으로 포스팅을 마치면 다음은 YOLO Train(학습) 편으로 돌아올게요.



반응형
,