• 검색 결과가 없습니다.

Implementation of a Classification System for Dog Behaviors using YOLI-based Object Detection and a Node.js Server

N/A
N/A
Protected

Academic year: 2021

Share "Implementation of a Classification System for Dog Behaviors using YOLI-based Object Detection and a Node.js Server"

Copied!
9
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

YOLO 기반 개체 검출과 Node.js 서버를 이용한 반려견 행동 분류 시스템 구현

조용화

1

, 이혁재

1*

, 김영훈

2

1

경남대학교 정보통신공학과,

2

경남대학교 조선해양시스템공학과

Implementation of a Classification System for Dog Behaviors using YOLI-based Object Detection and a Node.js Server

Yong-Hwa Jo

1

, Hyuek-Jae Lee

1*

, Young-Hun Kim

2

1

Department of Information & Communication Engineering, Kyungnam University

2

Department of Naval Architecture & Ocean System Engineering, Kyungnam University

요 약 본 논문은 실시간 영상 분석을 통해서 반려견에 대한 객체를 추출해 내고, 추출된 이미지로부터 반려견 행동을 분류하 는 방법을 구현한다. 반려견 객체 탐지를 위해서 Darknet YOLO를 사용하였으며, 추출된 이미지로부터 행동 패턴 분류는 구글 에서 제공하고 있는 Teachable Machine을 이용하였다. 학습된 Teachable Machine은 구글 드라이브에 저장되어 node.js 서버 상 에서 ml5.js로 구현하여 사용할 수 있다. 분류된 행동 패턴 결과는 사용자의 스마트 폰 또는 PC로 실시간 전송되며, 언제 어디 서든 확인 가능할 수 있게 node.js 서버에서 socket.io 모듈을 사용해서 상호반응 웹 서버를 구현하였다.

• 주제어 : 합성곱 신경망, 다크넷 YOLO, 객체 검출, 딥러닝, 강아지 행동

Abstract This paper implements a method of extracting an object about a dog through real-time image analysis and

classifying dog behaviors from the extracted images. The Darknet YOLO was used to detect dog objects, and the Teachable Machine provided by Google was used to classify behavior patterns from the extracted images. The trained Teachable Machine is saved in Google Drive and can be used by ml5.js implemented on a node.js server. By implementing an interactive web server using a socket.io module on the node.js server, the classified results are transmitted to the user's smart phone or PC in real time so that it can be checked anytime, anywhere.

• Key Words : Convolutional Neural Network (CNN), Darknet YOLO, Object detection, Deep learning, Dog behaviors

Received 07 January 2020, Revised 08 March 2020, Accepted 28 March 2020

* Corresponding Author Hyuek Jae Lee, Department of Information & Communication Engineering, Kyungnam University, 7

Kyungnamdaehak-ro, Masanhappo-gu, Changwon-si, Gyeongsangnam-do 51767 Korea.

E-mail: [email protected]

(2)

Ⅰ. 서론

최근 통계청 보도에 따르면, 1인 가구가 꾸준히 증 가하고 있으며, 2019년 기준 1인 가구는 603만9천 가 구로 전년 대비 25만1천 가구 증가했다[1]. 1인 가구 중 취업자 수는 367만 1천 명으로 전체 1인 가구 중 절반을 넘는 수치이다. 1인 가구로 살아가는 현대인들 이 늘어남에 따라 반려동물 시장도 커지고 있는데, 이 는 혼자 사는 것에 대한 외로움으로 인해 반려동물을 양육하고자 하는 1인 가구의 증가 때문이다. 그런데, 반려동물을 양육하는데 제일 어려운 점은 혼자 두고 출근, 외출하는 것으로 조사됐다[2]. 이런 시대적 흐름 에 따라 집에 홀로 남겨진 반려동물이 잘 있는지 확인 하기 위한 가정용 CCTV 설치가 증가하고 있다. 하지 만, 가정용 CCTV로 반려동물의 상태를 지속해서 확인 하는 것은 매우 힘든 일이다. 이에 대한 한 가지 해결 책을 본 논문에서 제시하고 자 한다.

IoT 및 AI 기술을 활용하여 반려동물을 위해 만든 기술을 펫테크(Pet-Tech)라고 하며, 웨어러블 형태의 장치나, 같이 놀아 주는 체력단련 로봇 등 다양한 형 태로 상용화되고 있다. 여러 가지 제품 중 FitBark는 웨어러블 형태의 기기로 반려동물의 활동 수준을 센서 를 통해서 정보를 수집한다[3]. 이 제품은 모듈의 추가 나, 머리, 꼬리 등 여러 부위에 부착하여 다양한 정보 수집으로 정확성을 올렸다. 그러나 모듈을 늘려 가면 무게 증가와 배터리 소모가 빨라지는 단점이 있다. 또 한, 부착해야 하는 위치에 따라 반려견의 거부감과 탈 부착의 번거로움이 생긴다. 그뿐만 아니라, 반려동물의 움직임만을 찾아 정확히 어떤 행동을 했는지 판단하는 것은 쉽지 않다. 이와 관련된 연구로 North Carolina University에서는 4개의 가속도 및 자이로 센서를 하네 스 형태로 반려견에게 착용시켰다[4]. 목 전후, 배 아 래, 꼬리 윗부분에 각 센서를 장착하여 연구를 진행하 였는데, 다양한 자세에 대한 인식이 가능하다는 장점 이 있지만, 반려견의 크기가 바뀌거나, 다른 반려견에 게 실험할 때에는 크기를 조절해야 하는 불편함이 생 긴다. 또한 전신에 장착하게 되므로 반려견의 움직임 에도 제한을 준다. 다른 연구로는 가속도 센서 기반의 KNN Classifier를 이용하여 행동을 분류하는 방법이 New Castle University에서 제안되었다[5]. 하지만 가속 도 센서만으로 행동을 감지하기에는 정확성이 떨어지 는 단점을 갖는다. 그 외에도 몇 가지 방법이 제안되

어 센서 기반 행동에 대한 인식을 진행했지만, 정확성 이 떨어지거나 반려견의 스트레스를 유발시키는 큰 문 제점이 공통적으로 생긴다.

본 논문에서는 이러한 문제점들을 해결하기 위해서 반려견에 장착시키는 장치 없이 카메라만을 사용하여 반려견의 행동을 인식하고자 한다. 반려견의 행동에 대한 분류를 실시간 수행하고, 분류된 행동을 반려견 주인의 스마트 폰으로 전송할 수 있는 시스템을 제안 한다. 반려견의 행동 상태를 확인을 위해서 Darknet 기반 YOLO (You Only Look Once) [5, 6] 딥러닝 기술 을 이용하여 반려견 객체 이미지를 잡아 낸 다음, 반 려견 행동 분류는 Google에서 개발한 Teachable machine을 이용한다. Teachable machine[7]은 브라우저 및 node.js에서 학습된 모델을 사용하기 위해 Tensorflow.js (ml5.js) 와 p5.js 기반 자바스크립트 라이 브러리로 Export하여 사용된다. 분류된 결과는 스마트 폰으로 전송되는데, 이를 위한 상호 반응 웹 소켓 구 현은 node.js 기반의 express.js와 socket.io 모듈을 이용 한다.

Ⅱ. 반려견의 행동 분류와 시스템 구현 구조

2.1 반려견의 행동 분류

인간과 반려견의 커뮤니케이션 증진을 위한 행동 인지를 위한 행동 선정을 최소화하고 데이터 분석을 위한 각 행동을 Table 1과 같이 정의한다. 기존 20~30 가지의 강아지 행동 패턴[8]을 약 9가지 정도로 줄이 고, 중복 및 유사 행동 등을 통일하여 선정했다. 반려 견의 행동 분류 시스템을 설계하기 전에 설계의 기초 가 되는 기준을 제공하기 위해 반려견 행동을 선정 및 정의한다. 행동 선정은 가정 내 반려견을 대상으로 평 소와 같은 환경에서 똑같이 행동하도록 하고, 관찰을 통해 보이는 여러 행동 중 가장 자주 보여주는 행동을 우선적으로 채택하고 분류했다. 반려동물의 다양한 행 동 분류는 집에서 늘 일어날 수 있는 행동으로 선정했 으며, 다양한 행동 중 정적 행동의 엎드리기와 옆으로 눕기가 가장 많은 빈도수를 보여준다. 또한 생리적 행 동의 먹기, 단발적 행동의 짖기, 서기, 몸 털기, 앉기, 냄새 맡기, 지속적 행동의 뛰기, 걷기, 꼬리 흔들기, 활동적 행동의 점프하기가 다른 행동에 비해 좀 더 높 은 빈도수를 보여준다. 단발적 행동에서 냄새 맡기는

(3)

멈추고 행동하기보다는 걸으며 행동하는 모습이 더 많 이 관찰되어 걷는 쪽으로 포함했다. 정적 행동은 뒤집 기와 잠자기로 통일하여 선정하였다.

Table 1. Categorized patterns of dog behaviors

동적행동

생리적

행동 먹기 (Eat)

단발적행동

앉기 (Sit) 짖기 (Bark) 몸 털기 (Whisk) 지속적

행동

꼬리 흔들기( Wag) 뛰기 (Run) 활동적행동 점프하기 (Jump)

정적행동 휴식 및

수면

뒤집기 (Back) 잠자기 (Sleep)

2.2 시스템의 전체 구조

반려견의 행동 인지를 위한 전체 시스템 구조는 Fig. 1과 같다. 카메라로부터 받은 이미지에서 반려견 인지 아닌지, 반려견이면 그 위치가 어디 인지를 찾아 내는 기술이 먼저 필요하다. 두 번째로는 추출된 반려 견 이미지로부터 위에서 정의한 9가지 행동 중 어떤 것인지를 인지하는 행동 분류기가 필요하다. 분류된 결과를 스마트 폰 혹은 데스크톱 PC로 전송하기 위한 웹 서버 기술이 필요한데, 시스템을 구현하기 위한 기 술은 다음 3가지로 요약될 수 있다.

Ÿ Object detection을 위한 Darknet 기반 YOLO 딥러 닝 기술

Ÿ P5.js와 ml5.js 기반 Teachable Machine (반려견 행 동 분류기)

Ÿ Node.js를 이용한 Server 구현 기술

2.2.1 Object Detection을 위한 Darknet 기반 YOLO 제일 먼저 구현되어야 할 부분은 카메라로부터 받 은 이미지에서 반려견인지 아닌지, 반려견이면 그 위 치가 어디 인지를 찾아내는 Object Detection 기술이 먼저 필요하며, Darknet 기반의 YOLO를 이용하여 구 현한다(Step1). 보통 분류(Classification) 문제라는 것은 Object가 하나있는 영상에 대해서 Object의 class를 분 류하는 문제이다. 이에 반해 Object Detection 문제는

분류(Classification)와 Localization을 합친 문제로서 Object의 class 분류와 object의 위치를 bounding box로 위치를 찾는 것을 의미한다. Object Detection 분야에 서 CNN(Convolutional Neural Network)을 기반으로 하 는 여러 모델 들이 제안되었고, R-CNN, Fast R-CNN, Faster R-CNN 순으로 발전하였다. 처음에 R-CNN(~50 초)은 매우 느렸으며, Fast R-CNN도 ~2초, 즉 0.5 Frame Per Second (FPS) 정도로 실시간 구동하여 사용 하기는 어려웠다. Faster R-CNN가 최대 ~7 FPS 정도 보여주는 시점에서 YOLO가 성능은 약간 떨어지지만 45 FPS를 보여 주어 세상을 놀라게 했다. 이후에 SSD(Single Shot MultiBox Detector)가 제안되었고, 최근 에는 YOLO v2, v3[5]가 잇달아 발표되면서 Object Detection 분야에 절대 강자로 자리 잡고 있다.

Fig. 1. Overall system structure

2.2.2 P5.js와 ml5.js 기반 반려견 행동 분류기 반려견의 행동 인지를 위해서 반려견 이미지만 추 출하여 정의한 9가지 행동 중 어떤 것인지를 인지하는 분류기는 일단 구글에서 서비스 하고 있는 Teachable Machine[7]으로 학습 시킨 후에, ml5.js을 이용하여 웹 기반으로 동작할 수 있도록 코딩하였다(Step2). 구글 이 머신러닝 과정을 이해하고 학습할 수 있는 웹 기반 학습 도구인 Teachable Machine 2.0을 2019년 공개했 으며, 이미지, 오디오, 자세 세 가지 프로젝트를 통해, 머신러닝을 학습하고 학습 모델을 생성한 후 저장하고 활용할 수 있다. 웹사이트를 방문해 보면 누구나 쉽게 사용할 수 있도록 구성되어 있으며, 이미지에 대한 학 습 모델은 preview 기능을 이용해, 바로 다른 이미지 와 비교하거나 Export Model 메뉴를 이용해, Fig. 2와 같이 텐서플로(Tensorflow.js) 로 내보내거나 다운로드 받을 수 있다. 여기서는 Tensorflow.js에서 Upload (sharable link)을 이용하여 학습된 모델을 생성하고, 구

(4)

글 드라이브에 저장해서 추후에 p5.js 기반 ml5.js을 이 용하여 영상 분류기로 쓸 수 있도록 서비스 하고 있다.

Fig. 2. Exporting and download method of Tensorflow.js (ml5.js) model from the Teachable Machine

2.2.3 Node.js 기반 웹 서버

분류된 결과를 스마트 폰 혹은 데스크탑 PC로 전송 하기 위한 node.js 웹 서버를 구현한다(Step3). Node.js 는 single thread 기반으로 동작하는 고성능의 비동기 IO (Async/Non-blocking IO)를 지원하는 네트워크 서버 이다. Node.js은 짧은 시간에 많은 클라이언트 요청을 처리하는 웹 어플리케이션을 개발하기엔 적당하나, CPU의 사용이 높은 경우는 오히려 성능이 좋지 않을 수 있다. 즉, 간단하지만 빈도수가 많은 처리를 요하는 서버를 구축할 때 효율이 좋으며, 본 논문에서와 같은 응용에 적합한 서버 구축 방법이다. Node.js을 가지고 웹 서버를 일일이 코딩하는 것보다 웹 프레임워크인 Express.js을 이용하는 방법을 택했다. 웹이 발전하면 서, 클라이언트의 요청에 응답만 하는 단방향성이 아 닌 양방향성의 웹사이트가 유행하고 있다. 연결이 유 지된 상태에서 서버 또는 클라이언트상의 이벤트가 어 느 쪽에서든 상관없이 발생하면 이벤트 리슨너에 의해

서버에서 클라이언트로, 또는 클라이언트에서 서버로 데이터의 전달이 이뤄진다. 즉 양방향으로 자유롭게 데이터를 교환하기 위해 웹소켓(WebSocket)이 제안되 었으며, 그것을 구현할 수 있도록 만든 것이 socket.io 이다. 본 논문에서는 node.js 기반에서 Express.js 와 socket.io을 이용한 양방 통신이 가능한 웹 서버를 구 축하였다. 위에서 설명한 구현 내용을 설명하면 Fig. 3 과 같이 요약될 수 있다.

Step 1

Step 2

Step 3

Fig. 3. Three steps for implementing the proposed system

Ⅲ. 제안 시스템 구현

3.1 Darknet YOLO 설치 및 테스트

3.1.1 윈도우 환경에서 Darknet YOLO v3 설치

윈도우 버전 YOLO v3를 설치하려면 우선 다음과 같은 프로그램이 설치되어 있어야 하며, Nvidia Geforce GTX 1080 보드를 사용했다.

Ÿ Visual Studio → Visual Studio v14.2 Ÿ Nvidia CUDA → CUDA 10.1

(5)

Ÿ Nvidia cuDNN → cuDNN 7.3.1 Ÿ OpenCV 2.4 이상 → OpenCV 3.4

Darknet 프로젝트에 대한 다운로드는 참고문헌[9]에 서 가능하다. 이 사이트에서 Darknet 다운로드 링크 Darknet.zip 또는 원본 위치 github darknet에서 소스코 드를 다운로드 받아 사용할 수 있다. Visual studio IDE 에서 CUDA path, OpenCV 등 몇 가지를 잘 설정해 주 어야 수많은 warning은 보이지만 컴파일이 가능하다.

3.1.2 Darknet YOLO 학습

YOLO를 학습시키기 위해선 강아지의 이미지 데이 터가 필요하다. 그러나 일반 가정에서 강아지 혹은 고 양이를 키우기 때문에 강아지만 학습시켜 놓으면, 고 양이가 강아지로 인식되는 문제를 갖게 된다. 따라서 강아지와 고양이를 구분할 수 있도록 해야 하며, 이 두 종류의 이미지 데이터가 필요하게 된다. 이들 데이 터는 인터넷 검색을 통해 쉽게 얻을 수 있으며, 참고 문헌[10]에서 학습데이터를 구했다.

YOLO를 위한 이미지는 YOLO_Mark 프로그램을 가 지고 쉽게 얻어낼 수 있으며, 참고문헌[11] 사이트에서 다운 받아 설치하면 된다. YOLO_Mark 프로그램을 이 용하면 이미지 데이터를 쉽게 라벨링할 수 있으며, 학 습을 위해 여러 종류의 강아지와 고양이 이미지 각 500장을 이용하여 학습을 수행했다. 학습을 위해서 Imagenet상에 어느 정도 미리 학습된 convolutional weights 을 사용하는데, 본 논문에서는 darknet53모델 을 이용하였다. 학습을 위해 설정해 줘야하는 파일들 의 내용은 참고문헌[12] 사이트에 잘 설명되어 있다.

학습률은 0.01로 잡았고, Fig. 4에 학습에 따른 오차 감 소 데이터를 보였다. 1,600 iteration부터 거의 수렴해 가고 있고, 4,000 iteration에서 학습을 멈추었다.

Fig. 4. Overall loss against iterations during training 3.1.3 학습된 YOLO 테스트

학습된 모델을 테스트하기 위해 10가지의 배경을

마련해 두고, 강아지 1마리부터 5마리를 배경에 임의 로 배치 할 경우, YOLO 모델이 찾아 낼 수 있는가를 테스트하였다. 몇 가지 배경에 대한 반려견 인식 테스 트에 대한 예를 Fig. 5에 보였다.

(a)

(b)

(c)

(d)

Fig. 5. Dog recognition test against several backgrounds

각 배경에 대해 강아지 위치를 10가지 랜덤하게 선 정(총 100가지)해서 인식률을 계산하였다. 우선은 1마 리부터 5마리를 랜덤하게 배치하는 경우의 인식률은 Fig. 6과 같다. 여러 마리의 강아지가 겹쳐있는 경우 오인식이 되는 것으로 확인되었다. 그러나 1~3마리의

(6)

강아지는 거의 100% 인식을 수행함을 확인 하였다.

Fig. 6. Recognition rate vs. number of puppies

같은 방법으로 고양이 수를 1마리에서 3마리 섞어 놓은 경우 인식률이 떨어지는 것을 확인하였는데, Fig.

7에 인식률 결과를 보였다. 그러나 강아지 2마리까지 는 별 영향 없이 거의 100% 인식함을 확인하였다.

Fig. 7. Recognition rate in mixed cats

3.2 P5.js와 ml5.js 기반 이미지 분류기 구현

3.2.1 구글 Teachable Machine을 이용한 학습

YOLO로 부터 추출된 강아지 이미지의 행동 패턴을 분류하기 위해 구글이 무료로 제공하고 있는 Teachable Machine 2.0을 이용하기로 한다. 학습은 참 고문헌[7]의 웹상에서 쉽게 할 수 있으며, 학습된 모델 은 구글 드라이브로 저장되어 사용된다. 위의 웹 사이 트에서 Tensorflow.js Upload (sharable link)을 이용하여 학습된 모델을 생성하고, 구글 드라이브에 저장한 다 음, p5.js 기반 ml5.js을 이용하여 영상 분류기로 쓸 수 있도록 구현했다. 앞 장에서 정한 9가지 행동 패턴에 대하여 각각 20장 이상(각 이미지에 대해 5장씩 위치

와 크기 변형을 가진 데이터도 학습데이터로 입력)의 이미지를 학습패턴으로 이용했다. 본 논문에서는 불특 정 강아지에 대해 학습 시켰는데, 만일 한 마리 혹은 두 마리의 반려견 (집에서는 보통 한~두 마리 강아지 를 키우므로)의 행동 패턴 이미지를 이용하면 더욱 정 밀한 결과를 얻을 수 있을 것으로 예상한다.

3.2.2 행동 패턴 분류 인식률 테스트

Teachable Machine을 이용하여 9가지 행동 패턴을 학습했으며, 온라인으로 웹상에서 테스트를 수행할 수 있다. 크기와 각도 변화에 매우 잘 적응해서 인식함을 보여 주었는데, 가끔 패턴 마다 약간씩 오인식되는 경 우가 있다. Fig. 8에 인식률 결과를 보였다. 크기와 각 도 변화를 어느 정도 흡수할 수 있는지 9 패턴에 대해 4가지 다른 조합으로 인식률 테스트를 수행했는데, 크 기 변화 ±20%, 각도 변화 ±20°까지는 거의 100%

가까운 인식률을 보여 주었다. 즉, YOLO로 부터 뽑아 진 강아지 이미지가 어느 정도 변형이 되더라도 잘 인 식할 수 있음을 보여준다.

Fig. 8. Recognition rate vs. behavior patterns according to size and angle change

3.3 Node.js 서버 구축

node.js 서버를 구축하는 방법은 의외로 간단하다.

참고문헌[13]에 들어가면 각종 OS에 해당하는 버전을 구할 수 있다. 기본적으로 node.js를 설치하면 npm (node package manager, nodejs의 앱스토어 같은 기능) 이 함께 설치되고 PATH 에 기본경로가 추가된다. npm 으로 express, socket.io 모듈 설치하여 웹 서버를 구축 하면 된다. Teachable Machine에서 인식된 결과는 p5.js 기반으로 node.js 서버에 연결되어 전달되고, 전 달받은 데이터는 서버에 연결된 모든 클라이언트에

(7)

broadcast 하도록 프로그래밍 하였다. 또한 node.js가 비동기, event driven 형태로 데이터를 전달하기 때문 에 Teachable Machine에서 인식되어 전달되자마자 모 든 클라이언트에 방송되도록 Fig. 9와 같이 동작 된다.

Fig. 9. Implementation of Interactive web based on Node.js

Ⅳ. 반려견 행동 분류를 위한 연동 테스트

4.1 테스트 방법

앞 절에서의 설명한 Darknet YOLO, Teachable Machine, Node.js 서버를 연동하여, 반려견 사진을 카 메라로 받아 전체 시스템을 테스트 하였다. 앞 절에서 설명한 10가지의 배경, 행동 패턴 10가지에 대해 판별 결과를 사용자가 스마트 폰에서 각 10회 확인한다.

4.2 테스트 환경

Table 2. Test environment

대 상 부 분 사 양

PC

모델명 · 삼성 DB400T7A/Z1WC CPU · Intel Core i5-7400 (3GHz) RAM · 8GB

OS · WIN10

서버

CPU · Intel Core i5-7400 (3GHz) RAM · 8GB

OS · WIN10

GPU · NVIDIA Geforce GTX 1080 Ti 카메라 모델명 · 로지텍 HD ProWebcam C920

모델명 · 소니 액션캠 HDR-AS300 핸드폰 모델명 · 안드로이드 8.0(오레오) AVD

(Nexus S)

4.3 반려견 인식 테스트

일단 다양한 배경 상에서 반려견 존재 유무를 판단 하는 것이 중요하다. 카메라에 사람이나 고양이가 잡 혔는데, 반려견으로 오인식되는 경우는 그 이후에 행 동 패턴 인식 자체가 무의미 하게 되기 때문이다. 4가 지 상황, 즉 아무 객체가 없는 경우, 반려견만 있는 경 우, 반려견과 사람이 있는 경우, 반려견과 고양기가 있 는 경우에 대한 판별을 확인했다. 반려견과 고양이에 서 일부 오류 (다수의 반려견과 고양이가 섞여 있을 때 반려견을 고양이로 인식) 결과가 나왔으나, 전반적 인 결과에 영향은 작은 것으로 판단했다. 측정 결과는 Table 3에 나타냈고, 몇 가지 상황에 대한 결과를 Fig.

10에 보였다.

Table 3. Result of dog recognition tests

구분 1 2 3 4 5 6 7 8 9 10

있을 때애완견 존재인식

○ ○ ○ ○ ○ ○ ○ ○ ○ ○

없을 때애완견 존재 미인식

○ ○ ○ ○ ○ ○ ○ ○ ○ ○

애완견+

사람 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

애완견+

고양이 ○ ○ ○ ○ ○ ○ ○ ○ ○ ×

Fig. 10. Photo images of some dog recognition tests

4.4 반려견 행동 패턴 분류 테스트

10가지 행동 패턴에 대한 100번의 분석 결과에서 97

(8)

번 중 1번의 오인식이 발생하여 98.9% 인식 정확도를 보였다. 개별 행동 분석결과에서도 Jump(90%)를 제외 한 모든 행동에 대해 100% 정확도를 보였다. 등록된 이미지 분석이 완료되면 사진 이미지 파일로 전환되게 고 20초 동안 판별되는 사진의 개수로 인식 속도를 계 산할 수 있다(인식 속도 = 판별된 사진 수/20초). 평균 적으로 33장의 사진을 20초 동안 판별할 수 있는데, 인식 속도는 초당 1.65장으로 계산 된다. 행동 패턴 분 류에 대한 측정 결과는 Table 4에 나타냈고, 몇 가지 상황에 대한 결과를 Fig. 11에 보였다.

Table 4. Result of classification tests for Dog behaviors

구분 1 2 3 4 5 6 7 8 9 10

Sleep ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Sit ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Eat ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Walk ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Bark ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Wag ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

back ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Whisk ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Jump ○ ○ ○ ○ ○ ○ ○ ○ ○ ×

Random ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Fig. 11. Photo images of classification tests for dog behaviors

Ⅴ. 결론

반려견의 행동 패턴에 대한 분류를 위해서 반려견 객체 검출 용도로 Darknet 기반 YOLO를 이용했고, 행 동 패턴 분류는 구글의 Teachable Machine을 사용했 다. 반려견 인식 테스트에서 4가지의 상황에 맞춰 실 험을 진행하였는데, 반려견 뿐 만 아니라 사람과 고양 이의 개별적인 물체 인식 정확도가 높은 것을 확인했 다. 고양이의 경우 오인식되는 경우가 나타나는데, 사 람 눈으로 확인해도 혼동을 줄 정도이기 때문에 오인 식이 무의미하다. 행동 패턴 분류 실험에서는 10가지 행동 패턴에 대해서 98.9%라는 높은 정확도를 보였다.

동시에 상호 반응형 웹 서버를 구현하여 여러 환경(스 마트 폰, PC)에서 반려견의 행동 패턴에 대한 인식 결 과를 확인할 수 있도록 구현하였다.

이번 연구를 통해서 별도 장치 추가 없이 카메라만 을 이용해서 반려견의 행동 패턴을 분류하는 것이 가 능함을 확인했다. 전체적으로 인식 정확도가 높고, 저 가격 구현이 가능함으로 향후 반려견 원격 관리 상용 시스템에 응용 가능하리라 판단된다.

ACKNOWLEDGMENTS

이 연구 결과물은 2020년도 경남대학교 학술진 흥연구비 지원에 의한 것임.

REFERENCES

[1] Available: https://bit.ly/3gLuq4t, 2020.

[2] Available: https://bit.ly/3gJVWPC, NEWSRO 2019.

[3] Fitbark, “Fitbark,” Available: https://www.fitbark.com.

[4] R. Brugarolas, R. T. Loftin, P. Yang, D. L. Roberts, B.

Sherman, A. Bozkurt, “Behavior recognition based on machine learning algorithms for a wireless canine machine interface,” in 2013 IEEE International Conference on Body Sensor Networks, Cambridge, MA, USA, 2013.

[5] J. Redmon, A. Farhadi, “Yolo v3: An incremental improvement,” Available: https://arxiv.org/abs/1804.02767, 2018.

[6] J. Redmon, A. Farhadi, “Yolo9000 better, faster,

(9)

stronger,” in the IEEE Conference on Computer Vision and Pattern Recognition, 2017.

[7] Available: https://teachablemachine.withgoogle.com.

[8] Available:

http://topdogblog1.blogspot.com/2012/04/doggie-language.h tml

[9] Available: https://github.com/AlexeyAB/darknet [10] Available:

https://www.kaggle.com/tongpython/cat-and-dog [11] Available: https://github.com/AlexeyAB/Yolo_mark [12] Available:

https://medium.com/@manivannan_data/how-to-train-yolov 3-to-detect-custom-objects-ccbcafeb13d2

[13] Available: https://nodejs.org/ko/download/

저자 소개

조 용 화 (Yong-Hwa Jo)

2020년 2월 : 경남대학교 정보통신공학과(공학사) 2020년 3월~현재 : 경남대학교

정보통신공학과 석사과정 관심 분야 : 딥러닝 및 인공지능

이 혁 재 (Hyuek-Jae Lee)

1994년 2월 : KAIST 전기및전자공학과(공학박사) 1994년 3월~1995년 7월 :

LG전자기술원 선임연구원 1995년 7월~2000년 7월 : ETRI

선임연구원

2000년 8월~2001년 11월 UC Davis : post-doc & asst. researcher

2001년 12월~2002년 12월 : ROSWIN-USA, Inc CEO 2003년 9월~현재 : 경남대학교 정보통신공학과 교수 관심 분야 : 광통신/광스위칭, 초고속통신망, 딥러닝응용

김 영 훈 (Young-Hun Kim)

1996년 2월 : 인하대학교 선박해양공학과(공학박사) 1988년 1월~1996년 3월 :

산업연구원(KIET) 책임연구원 1998년 10월~2000년 8월 : 미국

미시간대학교 research fellow &

post-doc 2000년 7월~2007년 8월 : 목포대학교

기계해양시스템공학부 연구교수 역임

2007년 7월~2009년 2월 : 자동차조선전략기술지원단 조선총괄

2009년 3월~현재 : 경남대학교 조선해양시스템공학과 교수

관심 분야 : 자율운항선박시스템, 조선-ICT응용, 조선-AI응용

수치

Table 1. Categorized patterns of dog behaviors
Fig. 2. Exporting and download method of Tensorflow.js (ml5.js) model from the Teachable Machine
Fig. 4. Overall loss against iterations during training 3.1.3 학습된 YOLO 테스트 학습된  모델을  테스트하기  위해  10가지의  배경을  마련해  두고, 강아지  1마리부터  5마리를 배경에  임의 로 배치 할 경우, YOLO 모델이 찾아 낼 수 있는가를 테스트하였다
Fig. 8. Recognition rate vs. behavior patterns according to size and angle change
+3

참조

관련 문서