다크넷 포스팅입니다


혹시 앞에 과정이 이해가 안되시면 댓글로 남겨주세요


설치가 잘 되었는지 간단한 예제를 통해 학인을 해봐야 합니다 그래야 잘 설치되었나 확인할 수 있습니다


요번에도 Ubuntu와 Windows로 나누어 포스팅하겠습니다


"예제"실행편(Ubuntu 14.04)

"예제"실행편 역시 https://pjreddie.com/darknet/yolo/ 홈페이지를 참고하여 만들었습니다


http://wget https://pjreddie.com/media/files/yolo.weights 을 이용해 실행에 필요한 weight를 받을 수 있습니다

weight를 받으 셨으면 바로 실행할 수 있습니다


./darknet detector test cfg/coco.data cfg/yolo.cfg yolo.weights data/dog.jpg 를 실행하시면




위와 같은 결과를 얻으실 수 있습니다


"예제"실행편 (Windows)

윈도우즈 버전은 제작자가 솔루션을 다 만들어 두어서 솔루션만 실행하시면 됩니다



자신의 세팅에 맞는 솔루션을 실행해 주시면 됩니다

아래 yolo_blahblah.sln들은 추후에 사용할 예정이니 무시하셔도 됩니다

darknet을 gpu와 nogpu 둘중에 실행하시면

darknet.exe 혹은 darknet_no_gpu.exe가 생성됩니다

darknet(or darknet_no_gpu) detector test cfg/coco.data cfg/yolo.cfg yolo.weights data/dog.jpg 로 실행하면됩니다

data와 cfg파일의 위치는 exe파일 기준으로 정해주시면됩니다


다음편은 실행편으로 돌아오겠습니다

요즘 사용하고 있는 딥러닝 프레임워크 Yolov2 Darknet에 관련 포스팅을 하고자 합니다

https://pjreddie.com/darknet/yolo/ 에 가시면 좀 더 정확한 정보를 확인 하실수 있습니다


설치(Ubuntu 14.04)

https://github.com/pjreddie/darknet 에서 Darknet 프로젝트를 확인하실 수 있습니다


git을 통해 프로젝트를 받으셨다면 makefile을 고쳐야 합니다



makefile에 보시면 GPU와 opencv 등을 사용할 것인지 확인을 합니다

각자 맞는 상황에 맞는 세팅을 하시면 됩니다

만약 gpu를 사용하지만 opencv와 cudnn을 사용하지 않는다면 gpu만 1 opencv와 cudnn은 0으로 두시면 됩니다


makefile을 세팅 하셨다면 make를 통해 설치를 마치시면됩니다


설치(Windows)

https://github.com/unsky/yolo-for-windows-v2 에서 윈도우 버전 Darknet 프로젝트를 확인하실 수 있습니다

git에는 opencv2.4.9로만 되어 있지만 3.x 버전에서도 동작되는 것을 확인했습니다

Visual studio를 사용하여 Cuda가 설치되어있는 위치와 opencv의 위치를 잡아 주시면 됩니다



Darknet3rdParty 는 프로젝트에 포함되어있는 3rdparty안에 있는 라이브러리 입니다


위와 같이 세팅해주시고 64bit로 컴파일 하시면됩니다


다음편은 세팅편으로 돌아오겠습니다

Reinforcement Learning(강화학습: RL)은 Interpreter(관리자)가 Agent(로봇) 에게 보상과 상태를 주며 action(행동)을 시키는데 그 action이 맞으면 

reward를(1) 틀리면 punishment(?) 를 줘서 그 행동의 방향을 우리가 원하는 방향으로 바꾸는 알고리즘이다


[그림] 간단한 reinforcement learning 

https://en.wikipedia.org/wiki/Reinforcement_learning


RL은 Machine learning(기계학습: ML) 분야에 많이 사용되는데 ML분야에 기본인 Data를 이용하여 Output을 추론하는 과정에
가장 최적화된 방법을 찾는데 사용된다


ML의 방법에는 크게

Label된 데이터가 필요한 Supervised learning(지도학습)

Label된 데이터가 필요 없는 Unsupervised learning(비지도학습)

이 있는데 Supervised learning의 경우 많은 수의 label된 데이터를 수집하는데 어려움이 있고

Unsupervised learning의 경우에는 학습하는데 어려움이 있다

RL를 사용하여 세상에 존재하는 모든 데이터를 학습함에 있어 Unsupervised learning에 좀 더 최적화된 데이터 분류 방법을

제공함으로서 최적화된 ML 알고리즘을 제작하는데 그 사용방법을 사용한다


다음은 RL에 가장 기초가 되는 MDP(Markov Decision Process)에 대해 간단히 알아보도록 하겠다

+ Recent posts