엔트리와 함께하는 인공지능 교실 > Chapter 10. 피지컬 활용 인공지능 모델(코블)

[Session 02] 수신호 출발기(이미지 분류)

 수신호 출발기(이미지 분류)

옛날 먼바다에서 항해를 하는 배와 배 사이에 신호를 주고 받을 때는 수신호를 이용하였다. 수신호는 약속된 몇 가지 신호로 의사소통을 한다. 컴퓨터의 카메라는 사람의 눈 역할을 한다. 소리, 텍스트로 전달하기 어려운 경우에는 카메라로 이미지 인식할 수 있다. 인공지능 이미지 모델을 활용하면 이미지를 인식으로 명령을 전달할 수 있다. 본 세션에서는 50미터 달리기 연습을 하기 위한 인공지능 측정기를 개발하고자 한다. 50미터라는 먼 거리에서 출발 신호를 보내고 결승점에서는 피지컬 도구의 초음파 센서로 걸린 시간을 측정할 수 있다. 이미지 분류 모델과 피지컬 도구를 활용한 제품을 개발하는 사례를 실습을 통해 알아보자.


학습 목표 

이미지 분류 모델과 피지컬 초음파 센서를 활용하여 50미터 달리기 측정기를 개발할 수 있다.

학습 준비물

코블 교구: 메인보드, 초음파센서, 각도모터, 숫자 전광판, 레고블록

데이터 수집 아이디어

이미지로 신호를 보낼 수 있는 이미지 데이터에는 어떤 것이 있을까? 수신호의 다양한 모양을 크게 다른 모양 2가지를 정하고 이미지 데이터를 수집한다.


▲ #온도센서, #선풍기, #텍스트 인식, #지도학습, #분류 학습, #인공지능 에어컨



 2-1 인공지능 모델 학습하기

본 세션에서는 먼 거리에서도 이미지로 명령을 내릴 수 있는 인공지능 이미지 모델을 제작하고자 한다. 운동장 환경의 원거리에서 카메라를 찍어 이미지 데이터를 수집할 수 있으나 실습환경을 고려하여 이미지를 간략히 구성한다.

 

1) 인공지능 모델학습에서 ‘분류:이미지’를 선택한다.



2) 학습모델명 ‘50미터 달리기’, 클래스 1은 ‘준비’, 클래스 2는 ‘출발’로 정하고, 각 클래스별로 30개 이상의 이미지 데이터를 입력하였다. 결과 테스트에서 인식율이 90% 이상이 나오는 것을 확인하였다.

 



 2-2 엔트리 화면과 오브젝트 구성하기


 

1) 위 그림에서 보듯이 화면구성을 한다. 글상자 오브젝트는 ‘준비’, ‘출발’, ‘멈춤’, ‘걸린시간’을 구성하고 배경은 ‘운동장’, 달리는 사람은 ‘축구선수’ 오브젝트를 불러왔다.


 

2) 신호는 ‘준비’, ‘멈춤’, ‘출발’을 만들고 변수는 ‘기록’, 리스트는 ‘최고기록’을 만들었다.



 2-3 코블 블록 구성하기

코블 블록 조립을 위한 구성품은 다음과 같다.


초음파 센서는 결승 라인으로 배치하여 도착 시에 감지될 수 있도록 한다. 메인보드의 내장 스피커를 활용하기 때문에 메인보드의 스피커 부분이 가려지지 않게 한다. 각도모터는 기록 갱신이 될 때 깃발이 5초간 올라갈 수 있도록 하기 때문에 결승 라인에 초음파와 연결한다.



 2-4 엔트리 블록 코딩하기

 오브젝트 코딩하기

 

 1) 초시계가 시작되게 한다. ‘걸린시간’ 글 상자 오브젝트에 시간이 출력되므로 초시계는 숨기기를 한다. ‘출발’신호를 받으면 코블 본체에 있는 멜로디를 1초간 재생하여 출발음이 나오도록 한다.
각도모터 20도는 내려간 상태이다. 글상자 오브젝트에 ‘초시계값’이 계속 출력되도록 에 를 넣는다. 코블의 숫자 전광판에 ‘초시계 값’이 출력되도록 한다. 각도모터 20도는 내려간 상태이다.


 

2) 변수 ‘기록’을 생성하고 기록의 초기값을 100으로 정한다. 기록값이 최고기록의 1번째 항목보다 작으면 최고기록의 1번째에 넣는다(최고기록 갱신). 코블 각도모터의 120도는 깃발이 위로 치켜올라간 상태이다.


 



 오브젝트 코딩하기

 

1) 출발’ 신호를 받았을 때 초시계가 초기화되어 ‘0’을 가리키도록 한다.


 

2) 엔트리 화면에서 ‘준비’ 오브젝트를 클릭했을 때 ‘준비’ 신호를 보낸다.



 오브젝트 코딩하기

 

1) 출발’ 신호를 받았을 때 초시계가 시작하도록 한다.


 
 

2) 엔트리 화면에서 ‘출발’ 오브젝트를 클릭했을 때 ‘출발’ 신호를 보낸다.


 오브젝트 코딩하기

 

1) 코블에 있는 초음파 센서와 대상과의 거리가 4cm 미만이라면 초시계가 멈추 도록 를 한다.


 

2) 엔트리 화면에서 ‘멈춤’ 오브젝트를 클릭했을 때 ‘멈춤’ 신호를 보낸다.


 

3) ‘멈춤’신호를 받으면 초시계를 정지하고 변수 ‘기록’을 ‘초시계값’으로 정한다.



 오브젝트 코딩하기

 

1) ‘출발’ 신호를 받았을 때 축구선수의 움직임이 달리는 애니메이션이 구현되도록 한다.


 

2) 키보드의 ‘엔터’키를 입력하여 인공지능의 학습한 모델로 분류하기를 실행한다. 분류결과가 ‘준비’이면 ‘준비’신호, ‘출발’이면 ‘출발’ 신호를 보낸다.


 

3) '멈춤' 신호를 받았을 때 오브젝트의 모양이 서있는 모양이 되도록 한다.



[실행하기]

 

 1) 프로그램을 실행한 후, 엔터를 눌러 데이터를 입력한다.

 


2) ‘출발’ 신호를 보내면 부저소리와 함께 달리기가 시작된다. 목적지에 도달하면 초음파 센서에 의해 ‘멈 춤’ 신호가 프로그램으로 전달되어 걸린 시간이 표시된다.

3) 다음의 추가 내용을 넣어서 나만의 수신호 출발기를 만들어 보자.

•코블 자동차를 만들어 자동차 ‘출발’, ‘도착’ 신호로 속도를 측정하여 보자. 초등학교 5학년 2학기의 물체의 빠르기 측정 실험을 코블 자동차로 할 수 있다. •거리별로 LED가 들어오게 만들어 보자. 출발시 1번 LED 켜기, 50미터에서 2번 LED 켜기, 100미터에서 3번 LED 켜기를 넣어보자.