[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 주요 기능 및 공유
현재 사용할 수 있는 엔트리의 인공지능과 관련된 기능은 지속적으로 업데이트할 예정이다. 엔트리 웹사이트와 포스트에서 제공하고 설명해 주는 다양한 기능을 활용하여 인공지능과 관련된 코딩을 자유롭게 진행하고, 이 작품들을 공유해 학생들이 적극적으로 인공지능에 대한 학습을 진행할 수 있다.
엔트리 웹사이트의 ‘공유하기’ - ‘작품 공유하기’를 통해 다양한 인공지능 블록을 이용해 만든 작품을 통해 학습하고, 직접 만든, 또는 학생들이 만든 작품을 업로드해 보자.