엔트리와 함께하는 인공지능 교실 > Chapter 1. 인공지능 블록 활용

[Session 03] 비디오 감지 블록 활용하기

비디오 감지 블록 활용하기

엔트리의 비디오 감지 기능은 매우 많은 내용을 담고 있다. 기본적으로 비디오가 연결되었는지 확인하는 블록부터, 움직임 값을 감지하는 블록, 사람이나 사물을 인식해서 그 수를 찾고, 성별, 나이, 감정 등을 얼굴에서 인식하는 기능도 포함되어 있다.


학습 목표 

엔트리의 비디오 감지 기능과 인공지능 블록 전체를 활용해 코딩할 수 있다.

학습 준비물

웹캠, 마이크



3-1 비디오 감지 블록 활용하기-1

본 주제에서는 비디오 감지 기능을 활용하여 다양한 사람, 사물을 인식하는 코딩을 한다.

얼굴인식 코딩하기

★ 비디오가 연결되었는지 확인하는 코딩

1) 시작하기 버튼을 클릭했을 때, 만약 비디오가 정상적으로 연결되어 있다면 비디오 화면을 실행 화면에 띄워 주게 되는데, 이때 [비디오 화면 보이기/숨기기] 블록을 이용한다. 주의할 점은 비디오 화면이 엔트리봇 뒤로 나타나게 되기 때문에, ‘생김새’ 블록 꾸러미의 [모양 숨기기] 블록을 이용해 엔트리봇이 말을 하지 않을 때는 모양을 숨겨 준다.

 

만약 비디오가 연결되어 있지 않다면, 엔트리봇이 ‘비디오가 연결되지 않았습니다. 카메라를 확인해 주세요.’ 라고 말하도록 한다.



2) 엔트리의 얼굴인식 기능을 사용하기 위해, 비디오 화면을 보여 주고 엔트리봇이 ‘얼굴 인식 준비가 되었으면 스페이스 키를 눌러 주세요.’ 라고 말하도록 한다.


 

3) 사용자가 스페이스 키를 눌렀을 때, [얼굴 인식 시작하기] 블록을 이용해 얼굴을 인식한다. 같은 블록을 사용하여, 사람, 얼굴, 사물을 각각 인식할 수 있고 인식을 시작하거나 중지할 수 있다. 얼굴 인식이 되었다면, 엔트리봇이 나타나서 ‘얼굴 인식이 완료되었습니다.’ 라고 말하고, 그렇지 않다면 ‘인식 준비가 되면 다시 스페이스 키를 눌러 주세요.’ 라고 말하도록 한다.

★ 얼굴 인식을 통해 암호를 해제하는 코딩

1) 우선 오브젝트 두 가지를 추가한다. 엔트리봇 그림 아래의 + 아이콘을 클릭한 다음, ‘오브젝트 추가하기’에서 열쇠와 자물쇠 그림을 각각 불러온다. 또 활용할 것은 ‘속성’ 탭에서 추가할 수 있는 신호인데, 우선 신호 추가하기 버튼을 눌러 ‘시작하기’ 라는 신호를 하나 추가한다.

  

 


2) 엔트리봇에는 위와 같이 코딩한다. 시작하기 버튼을 클릭했을 때, 엔트리봇의 모양을 보이게 하고 ‘준비가 되었으면 스페이스 키를 누르세요.’ 라고 말한다.


 

 

3) 스페이스 키를 눌렀을 때, ‘시작’ 블록 꾸러미에서 위에서 추가 했던 ‘시작하기’ 신호를 보낸다. 그리고 엔트리봇의 모양은 숨겨 준다.


 

4) 추가로, 열쇠와 자물쇠는 처음 시작했을 때에는 숨겨 준다. 열쇠와 자물쇠 오브젝트에 각각 오른쪽과 같이 코딩한다.


5) 위 코딩은 ‘열쇠’ 오브젝트에 해 준다. 우선 ‘시작하기’ 신호를 받았을 때, 열쇠 모양이 나타나고 비디오 화면이 나타나며 얼굴 인식을 시작한다. 얼굴 인식이 되었을 경우 열쇠 오브젝트는 인식된 얼굴의 코의 x와 y 좌표로 따라가게 된다. ‘흐름’ 블록 꾸러미의 [계속 반복하기] 블록을 사용해 얼굴 인식이 계속되고 오브젝트가 실시간으로 얼굴의 좌표값을 따라가도록 한다.


 

6) 자물쇠 오브젝트는 시작했을 때 모양을 숨기고, 초기 위치와 크기를 설정한다.


 

 

7) ‘시작하기’ 신호를 받았을 때, 자물쇠 오브젝트의 모양이 보이게 되고 만약 열쇠 오브젝트와 닿는다면 모양이 바뀌도록 한다. 이때 ‘흐름’ 블록 꾸러미의 [참이(가) 될 때까지 기다리기] 블록과 ‘판단’ 블록 꾸러미의 [열쇠에 닿았는가?] 블록을 사용하도록 한다. 모양을 바꾼 후, ‘암호가 해제되었습니다.’를 말하도록 한다.


★ 얼굴 인식을 이용하여 성별, 나이, 감정을 인식하는 코딩

얼굴인식을 이용하여 사람의 현재 상태를 알 수 있다.

 

1) 우선 기본 오브젝트인 엔트리봇에 비디오 투명도 효과 블록을 넣어 화면을 깨끗하게 해 준다. 비디오 화면 보이기 블록을 이용하여 화면을 켠 후, 얼굴을 인식하도록 한다.


 

2) 계속 반복하기 블록을 추가한 다음 얼굴인식 시작하기 블록을 넣는다.


 

3) 엔트리 화면에 얼굴에 윤곽선이 그려지면서 얼굴을 인식하는 화면을 확인할 수 있다. 

 

4) 1번째 얼굴의 성별 블록과 말하기 블록을 결합하고 2초 기다리기 블록을 추가한다. 이는 2초마다 성별을 측정하기 위해서 필요하다.


 

5) 비디오 화면을 통해 얼굴의 성별을 인식하는 프로그램이 완성되었다.

 

6) 얼굴을 인식하여 성별, 나이, 감정을 말하는 프로그램을 만들 수 있다.

 

7) 얼굴을 인식하여 성별은 남,녀로 인식이 가능하며, 대략적인 나이를 말해준다. 얼굴의 표정을 바꾸어 감정을 표시할 수 있으며, 행복, 분노, 화남, 무표정 등 다양한 표정을 읽을 수 있다.

◀ 성별을 인식하는 화면

  

  

 ▲ 나이를 인식하는 화면

 ▲ 감정을 인식하는 화면


★ 얼굴 인식을 이용하여 사랑스러운 눈 만들기

얼굴인식을 이용하여 하트가 눈을 따라다니도록 만들 수 있다.

 

1) 우선 기본 오브젝트인 엔트리봇에 비디오 투명도 효과 블록을 넣어 화면을 깨끗하게 해 준다. 비디오 화면 보이기 블록을 이용하여 하면을 켠 후, 얼굴을 인식하도록 한다.

 

 

 

 2) 오브젝트 추가하기 버튼을 눌러 ‘하트’모양 오브젝트를 추가한다.

 

 

3) 하트’ 오브젝트의 크기를 자신의 눈 크기 만큼 줄인다. 그리고 하트 오브젝트를 클릭하여 코딩을 시작한다. 시작하기 버튼을 클릭하였을 때 블록과 ‘흐름’블록 꾸러미에서 [계속 반복하기 블록]을 가져온다. 그리고 ‘움직임’ 블록 꾸러미에서 [x:0 y:0 위치로 이동하기]블록을 가져온다.


4) ‘인공지능’블록 꾸러미에서 [1번째 얼굴의 왼쪽눈의 x좌표] 블록을 2개 가져와 x, y 좌표 위치 이동하기 블록에 넣어준다. 이때 x와 y좌표를 서로 일치하게 넣어준다.


 

5) 같은방식으로 ‘하트’ 오브젝트를 추가한 다음 이번에는 ‘오른쪽 눈’으로 변경하여 코딩을 해준다.


 

 

 6) 하트 오브젝트가 눈을 인식하여 따라다니도록 하여 사랑스러운 눈을 만들었다.

 

 7) 같은 방식으로 눈 이외의 코, 입 등에도 코딩하여 나를 따라다니는 다양한 오브젝트를 만들 수 있다.

 

8) 완성된 작품은 저장하기 버튼을 이용하여 엔트리에 저장된다. 내 컴퓨터에 저장하기 버튼을 누르면 ent 파일이 만들어진다.

 

9) 저장된 작품을 불러올 때는 온라인상에 저장된 작품을 불러오는 방법과, 내 컴퓨터에 다운받은 저장파일을 불러오는 방법이 있다.


다음은 사물을 인식하는 코딩을 해 보도록 한다. 엔트리에서 인식할 수 있는 사물은 사람, 자전거, 자동차, 오토바이 등 80여 가지이며, 인공지능 학습에 따라 추가될 예정이다. 이 중 다양한 데이터를 학습하여 인식률이 높은 사람, 자전거, 고양이를 인식해 암호를 푸는 것을 목표로 하였다.

 

1) 우선 기본 오브젝트인 엔트리봇 외에 자전거, 고양이, 사람 오브젝트를 추가한다.


 

2) 속성 탭의 신호에 ‘사람’, ‘고양이’, ‘자전거’를 추가하고, 각각의 사물 인식이 완료되었을 때 사용할 변수 ‘인식 완료’ 도 함께 추가한다.


3) 엔트리봇에 위와 같이 코딩한다. 시작하기 버튼을 클릭했을 때, 우선 인식 완료 변수를 숨긴다. 비디오 화면을 보이게 한 후, 엔트리봇이 인식할 수 있는 사물에 대해 말하고 엔트리봇의 모양을 숨긴다.

 


 

4) 엔트리봇이 사람, 고양이, 자전거를 각각 인식할 수 있도록 코딩해 준다. 우선 사람 인식을 시작하고, 인식된 사람의 수가 설정한 수와 같아졌다면 ‘사람’ 신호를 보내고, 코드를 멈춘다. 그렇지 않다면 [계속 반복하기] 블록을 이용해 인식을 반복해서 하도록 한다. 고양이, 자전거도 위와 같은 방식으로 코딩하며, 오브젝트에 맞는 신호를 보내 준다.


 

5) 사람, 고양이, 자전거 오브젝트 각각은 처음 시작하기 버튼을 클릭했을 때는 모양을 숨겨 준다.


 

6) ‘사람’. ‘고양이’, ‘자전거’는 각각 신호를 받았을 때, 오브젝트의 모양을 보이고 ‘인식 완료’ 변수값을 1만큼 추가한다.


7) 위와 같이 인식 완료 변수값을 각 오브젝트에서 모두 얻었을 경우, 변수의 값은 3이 된다. 이 때 엔트리봇이 다시 나타나서 ‘사람, 자전거, 고양이가 모두 인식되었습니다.’ 라는 말을 하고, 모든 코드는 멈추게 된다.


 



3-2 주요 기능 및 공유

현재 사용할 수 있는 엔트리의 인공지능과 관련된 기능은 지속적으로 업데이트할 예정이다. 엔트리 웹사이트와 포스트에서 제공하고 설명해 주는 다양한 기능을 활용하여 인공지능과 관련된 코딩을 자유롭게 진행하고, 이 작품들을 공유해 학생들이 적극적으로 인공지능에 대한 학습을 진행할 수 있다.

 

엔트리 웹사이트의 ‘공유하기’ - ‘작품 공유하기’를 통해 다양한 인공지능 블록을 이용해 만든 작품을 통해 학습하고, 직접 만든, 또는 학생들이 만든 작품을 업로드해 보자.