반응형

방학동안 현장실습과 즐거운 휴무의 연속으로 졸작을 많이 진행하지 못하고

2학기가 시작되고 7주가 지났다.

지난 7주동안 어떤 것을 했는지 요약하겠다.


1학기 때 YOLO를 사용하고, 실행해보는 것 까지 진행하였다.

YOLO는 이미 학습되어 있는 카테고리가 분류되어 있다.

하지만 우리가 필요한 것은 '야생동물'. 때문에 다시 학습시킬 필요가 있다고 판단했다.

여러 카테고리를 학습하기 앞서, 고라니 하나만을 학습시키기로 결정.

총 200장의 고라니 사진을 수집했다.


YOLO를 학습하기 위해서는 YOLO-Mark가 필요하다.

YOLO-Mark는 YOLO에서 학습할 이미지에서 학습할 개체를 Bounding-Box로 표시해주는 프로그램이다.

YOLO-Mark를 다운받기 위해서는 git을 통하여 다운받으면 된다. 간단하다.

git clone https://github.com/AlexeyAB/Yolo_mark

Yolo_mark 폴더가 생겼을 것이다.

폴더에 들어가 yolo_mark를 실행시키면 된다.

YOLO-Mark를 실행시키면 위와 같은 프로그램이 실행된다.


YOLO-Mark를 실행시키기 전에 'obj.names' 파일을 찾아서 카테고리를 먼저 분류한다.

우리는 고라니만을 학습시킬 예정이기 때문에 'inermis' 한 줄만 저장했다.

그리고 'yolo-obj.cfg'파일을 찾아서 수정해야한다.

...

...

...

...

[convolutional]

size=1

stride=1

pad=1

filters=35 -> 30

activation=linear


[region]

anchors = 1.08,1.19,  3.42,4.41,  6.63,11.38,  9.42,5.11,  16.62,10.52

bias_match=1

classes=2 -> 1

coords=4

num=5

softmax=1

jitter=.2

rescore=1


object_scale=5

noobject_scale=1

class_scale=1

coord_scale=1


absolute=1

thresh = .6

random=0

yolo-obj.cfg 파일의 맨 아래 부분을 위와 같이 수정한다.

마지막으로 img폴더에 학습하고자 하는 이미지를 저장한 후, YOLO-Mark를 통하여 Bounding-Box를 설정해준다.

그리고 학습을 시킨다.

./darknet detector train data/obj.data cfg/yolo-obj.cfg

위와 같이 입력하면 학습이 진행된다.

학습을 진행한 결과 '1000 per / 60 min'의 속도가 나왔다.... 짱느리다....

현재까지 2만번을 학습시켰음에도 불구하고 고라니 이외의 물체가 60%이상으로 인식된다....

한참은 더 해야할 듯 하다...


학습은 여기까지!

YOLO를 해결하였으니, 이제 그 외의 부분을 살펴보자.

이제 Bounding-Box의 좌표를 확인하여 카메라를 이동, 물총을 발사하는 것이 남았다.

카메라의 이동과 물총을 발사하기 위해 우리는 '아두이노(Arduino)'를 사용하기로 했다.


아두이노가 아직 도착하지 않았기에 간단히 구조만 설명하도록 하겠습니다.

반응형

+ Recent posts