___|  _ \   |  |    |   |_ _|\ \     / ____|
 |     |   |  |  |    |   |  |  \ \   /  __|
 |   | |   | ___ __|  ___ |  |   \ \ /   |
\____|\___/     _|   _|  _|___|   \_/   _____| 

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

[딥러닝 토이즈, Deep Learning Toys] Quick, Draw! Handwriting recognition.

BY: @deep-root | CREATED: March 11, 2018, 8:40 a.m. | VOTES: 7 | PAYOUT: $0.62 | [ VOTE ]

안녕하세요. 딥루트 @deep-root입니다.
이번 포스팅에서는 구글 AI experiment에서 나온 Handwriting recognition project인 Quick, Draw!에 대해서 소개해보려 합니다.
Handwriting recognition은 말 그대로 손으로 작성한 글씨나 그림을 인식하는 것을 의미하는데, 구글에서 오픈소스 프로젝트 중 하나로 데이터 및 데모를 공유하였죠.

Quick, Draw!

[IMAGE: https://steemitimages.com/DQmW9y5qX7hczJMCVtcNs7ZT2LxhMaFnE6K9L9sHAgppSny/title.PNG]

이번에 소개하는 Quick, Draw는 주어진 키워드로 사람이 그림을 그리고 AI가 어떤 그림인지 맞추는 방법으로 게임을 진핸하는데요. 쉽게 설명하면 AI와 하는 캐치마인드로 보시면 됩니다. (이제 아래에서 학습된 네트워크를 간단하게 AI로 표현하겠습니다.)

[IMAGE: https://steemitimages.com/DQmVvRNtoZk48JnbctYzwL4ChkjRVwvCfkbDS5QvVCnjoCh/%EC%BA%90%EC%B9%98%EB%A7%88%EC%9D%B8%EB%93%9C.jpg]
~~소는 역시 조선소~~

게임 진행은 간단합니다. Quick, Draw! 페이지에 접속해서 시작하기를 누르면 바로 진행할 수 있습니다.
한 번에 총 __6개__의 문제(키워드)를 풀어볼 수 있습니다. 그리고 한 키워드당 20초의 시간이 주어집니다. 제가 테스트 했을 때는 포크, 쾌속선, 팔꿈치, 냉장박스, 기차, 자동차, 6개의 키워드가 문제로 나왔습니다.

마우스로 그려서인지... 제가 똥손이라 그런건지 6개의 문제중에 한 문제는 실패했습니다. ㅠㅠ 그럼 아래에서 제가 그린 그림과 AI가 어떤 어떤 답을 찍었는지 성공 사례와 실패 사례로 한번 살펴보겠습니다.

캐치 마인드 성공!!

[IMAGE: https://steemitimages.com/DQmRdRa3RdQsvEoEmL46sNQpcFYfzwgHk4Yo1kCvxuoVPWB/boat_title.png]

[IMAGE: https://steemitimages.com/DQmeyvRmaJ4g5sz1tZmtpvjiVSq27ydzmuUcXKJS4GKVoh1/boat.gif]

우선 첫번째 키워드는 `쾌속정' 입니다. 위 그림을 보면 그림이 진행 됨에 따라서 AI가 유추를 시작하는 것을 볼 수 있습니다. 처음 배의 하단을 그렸을 때는 카누__라고 했다가, 배의 윗 부분을 그리니 __여객선, 그리고 나름의 스터스터 (프로펠러) 까지 그리자 드디어 쾌속정 이라고 정답을 외치더군요!!

캐치 마인드 실패 ㅠㅜ

[IMAGE: https://steemitimages.com/DQmbQsfvrenbtfCoMJe8yyDtABkHVVMy97qwsmisQ31oxES/arm_title.png]
[IMAGE: https://steemitimages.com/DQmYSti6nK9QeguBApgRxHn2E81KzdpxmCw2RFc9dpYQXk8/arm.gif]

두 번째는 `팔꿈치'라는 키워드 입니다. 어떻게든 팔꿈치를 표현해보려 했는데 줄->수박->콧수염->신발... 결국 20초 안에 정답을 외치게 만들지 못했습니다.

결과분석

[IMAGE: https://steemitimages.com/DQmXg23CMiD77QY8tNcHxEBJVuFwEy3HmS3bbfTvAcbnM8a/total.png]

6개의 문제를 모두 풀고나면 시도해본 문제들에 대해서 위와 같이 나타내 줍니다. 그리고 각 그림을 클릭하면 AI가 제가 그린그림과 학습된 데이터에서 어떤 그림과 매칭이 된 건지 보여줍니다. 물론 잘못 매칭된 결과과 다른 사람들이 그린 결과도 함께 보여줍니다. 제가 그린 팔꿈치의 경우에는 인어, 신발, 해변으로 인식했네요. ~~좀 더 팔꿈치를 각지게 그릴걸 그랬습니다~~

[IMAGE: https://steemitimages.com/DQmcromrk3XeqJpuU79jduewYSkgGecYQoZpRMP8kamN9cM/arm_detail.png]

마무리하며..

사실 게임으로서의 Quick, Draw를 보면 그냥 심심할 때 생각없이 해보기 좋은 데모죠. `우와, 이제 이렇게 가지고 놀 수도 있구나' 하면서요. 하지만 이런 프로젝트의 장점은 바로 오픈소스 프로젝트라는 겁니다. 사용자는 원한다면 언제든 수십만개의 낙서그림 데이터를 받을 수 있고 데이터는 지금 이 순간에도 계속 업데이트 되고 있습니다. 키워드가 주어지고 사용자가 해당 키워드에 맞는 그림을 그려주기 때문에 실시간으로 데이터를 모을 수 있죠. 모든
데이터가 다 사용되진 않겠지만 저 또한 부분적으로는 오픈 프로젝트에 기여했다고 생각할 수 있겠죠?
Brilliant!!!

[IMAGE: https://steemitimages.com/DQmQL4SNjVyZwyBrR247onHXP4AuKjyS8JQhNNYDRk7Fn17/data.PNG]

그리고, 학습 네트워크가 공개되지는 않았지만 예상컨데 시계열 데이터 (time-series data)를 처리하기 용이한 RNN (Recurrent Neural Network) 또는 LSTM (Long Short-Term Memory models) 를 사용했을 것입니다.
구글에서 제공한는 소개영상을 보면 손으로 작성한 글자를 인식할 때 아래 그림과 같이 선을 긋는 순서들도 데이터로 활용됩니다. 즉, 그림 전체의 모양 뿐만 아니라 그림을 그리는 순서 또한 인식에 중요한 특징이 됩니다. 데이터 셋 페이지에 들어가서 보시면 각 그림이 그려지는 순서 또한 함께 나타나는 것을 확인하실 수 있습니다.

이런 시계열 데이터 처리에 대표적인게 RNN 그리고 이를 개선한 LSTM 입니다. 좀 더 자세한 내용을 공부하고 싶으신 분은 ratsgo님의 블로그Terry님의 딥러닝 영상을 보시는 것을 추천합니다.

[IMAGE: https://steemitimages.com/DQmbvZfMtgDbqaLtXs4GJ8tMST23SvYxcKrWR6jPNxHh7PC/rnn.gif]

그럼 마지막은구글에서 만든 Quick, Draw! 소개영상으로 마무리하며 글을 마치겠습니다. 다들 한번 재미삼아 해보시면 좋겠어요!
https://www.youtube.com/watch?v=X8v1GWzZYJ4

TAGS: [ #kr ] [ #kr-newbie ] [ #deep-learning ] [ #jjangjjangman ] [ #snw ]

Replies

@virus707 | March 12, 2018, 7:15 p.m. | Votes: 0 | [ VOTE ]

짱짱맨 태그 사용에 감사드립니다^^

@deep-root | March 13, 2018, 2:49 p.m. | Votes: 0 | [ VOTE ]

저야말로 이렇게 방문해 주셔서 감사합니다 :)

[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>