Play With AI > Chapter 3. 나를 찾아봐

[실습하기] 얼굴을 감지하는 강아지 가면 프로그램(1)

 만들어볼까요?

지금부터 엔트리의 비디오 감지 기능을 사용하여 얼굴을 감지하는 강아지 가면 인공지능 프로그램을 만들어 보겠습니다.


[STEP 1] 비디오 감지 기능을 추가하고, 카메라가 얼굴을 감지하도록 만들기 

 

1) 엔트리 공유 주소 http://naver.me/FQhXZvDf 에 접속한 후, 코드보기를 클릭합니다.



 

2) ‘인공지능’ 블록 꾸러미에서 ‘AI블록 불러오기’를 클릭합니다.






3) ‘비디오 감지’를 선택한 뒤 ‘추가하기’를 클릭합니다.




4) ‘나를 찾아봐!’ 프로그램은 프로그램이 시작되었을 때는 강아지 얼굴 오브젝트의 모양이 보이지 않다가, 사람의 얼굴이 감지되면 강아지 얼굴 모양이 나타납니다. 즉, 처음 시작하기 버튼을 클릭했을 때는 강아지 오브젝트의 모양이 숨겨져야 합니다. 이것을 표현하기 위해, ‘생김새’ 블록 꾸러미에서 ‘모양 숨기기’ 블록을 가져와 ‘시작하기 버튼을 클릭했을 때’ 블록 아래에 연결합니다.

 

  

5) ‘나를 찾아봐!’ 프로그램은 비디오 화면에 얼굴을 비춰 얼굴을 감지하는 기능을 사용합니다. 프로그램을 시작하면 비디오 화면이 보여지도록 하기 위해 ‘인공지능’ 블록 꾸러미에서 ‘비디오 화면 보이기’ 블록을 가져옵니다.

 

 

6) 비디오 화면이 보이면 컴퓨터의 카메라에 비치는 얼굴을 감지하도록 만들어봅시다. ‘사람 인식 시작하기’ 블록을 가져온 뒤, ‘사람▼’ 부분을 눌러 ‘얼굴’로 바꾸어줍니다.





[STEP 2] 얼굴을 감지하고 강아지 오브젝트 모양이 보이도록 만들기

 

7) 이어서 얼굴이 감지되면 강아지 오브젝트의 모양이 보이도록 만들어보겠습니다. 얼굴이 감지되고 있는지는 프로그램이 실행되는 동안 계속해서 판단해야 하므로 ‘계속 반복하기’ 블록을 가져옵니다.



 

 

8) 이 프로그램은 만약 얼굴이 감지되면 강아지 오브젝트의 모양이 보여야 합니다. 이를 표현하기 위해 ‘만일 ~(이) 라면’ 블록을 가져와 ‘계속 반복하기’ 블록 안에 넣어줍니다.





 

 

9) ‘인공지능’ 블록 꾸러미에서 ‘사람 인식이 되었는가?’ 블록을 가져온 뒤, ‘만일 ~(이)라면’의 조건 부분에 끼워 넣습니다. 그 뒤 ‘사람▼’ 부분을 눌러 ‘얼굴’로 바꿉니다.






10) 얼굴이 감지 되었을 때 모양이 보이도록 다음과 같이 블록을 조립합니다.





 

 

[STEP 3] 강아지 얼굴 모양이 얼굴 위에 가면처럼 씌워지도록 만들기

 

11) 강아지 얼굴 모양이 감지된 사람의 얼굴 위에 가면처럼 씌워지도록 만들어보겠습니다. 강아지 얼굴이 가면처럼 사람의 얼굴을 모두 가리려면, 사람의 얼굴 크기에 맞춰 강아지 얼굴의 크기도 자동으로 변해야 합니다. 강아지 오브젝트의 크기를 조절하기 위해, ‘크기를 ~(으)로 정하기’ 블록을 가져옵니다.



 

 체크체크!

Q. 오브젝트의 크기는 어떻게 정하나요?

 

‘나를 찾아봐!’ 프로젝트에서는 왼쪽 그림과 같이 오브젝트의 크기를 정하였습니다. 

오른쪽 눈의 x좌표에 40을 더해서 감지된 얼굴의 오른쪽 끝의 x좌표를 구하고, 왼쪽 눈의 x좌표에 40을 빼서 왼쪽 끝의 x좌표를 구하였습니다. 이렇게 얼굴의 오른쪽 끝과 왼쪽 끝의 x좌표를 구한 다음, 두 숫자를 뺀 값을 오브젝트의 크기로 정했답니다.
(오브젝트의 크기 = (오른쪽 눈의 x좌표 + 40) - (왼쪽 눈의 x좌표 –40)

여기서 40이라는 숫자는 여러분이 원하는 대로 바꾸어도 됩니다. 더 큰 숫자를 사용하면 강아지 얼굴이 여러분의 얼굴보다 더 크게 만들어지고, 더 작은 숫자를 사용하면 더 작은 강아지 얼굴 가면이 만들어집니다. 양쪽 눈을 기준으로 하지 않고 코나 입의 x좌표를 기준으로 오브젝트의 크기를 정해도 된답니다. 한번 시도해보세요!

 

 

12) 이 프로그램에서는 강아지 오브젝트의 크기를 정할 때 감지된 얼굴의 양쪽 눈의 x좌표를 이용하여 뺄셈을 합니다. 이것을 표현하기 위해 먼저 ‘계산’ 블록 꾸러미에서 ‘10-10’ 블록을 가져와 다음과 같이 ‘크기를 ~으로 정하기’ 블록 안에 끼워줍니다.




13) 뺄셈의 왼쪽 부분에는 ‘인식된 얼굴의 오른쪽 눈의 x좌표 + 40’ 의 값이 들어가야 합니다. ‘10+10’ 블록을 가져온 뒤, ‘인공지능’ 블록 꾸러미에서 ‘1번째 얼굴의 왼쪽 눈의 x좌표’ 블록을 가져와 다음과 같이 블록을 조립합니다.



14) 뺄셈의 오른쪽 부분에 들어갈 블록도 다음과 같이 조립합니다.

 

15) 조립한 블록을 ‘크기를 10 – 10 으로 정하기’ 블록 안에 각각 넣어 줍니다. 이때, 오른쪽 눈의 x좌표 관련 블록과 왼쪽 눈의 x좌표 관련 블록의 순서에 주의합니다.

 

 

[STEP 4] 강아지 오브젝트의 위치 설정하기

16) 이번에는 강아지 오브젝트의 위치를 설정하겠습니다. 강아지 얼굴은 감지된 사람의 얼굴을 따라다니면서 가면처럼 씌워져야 합니다. 이것을 표현하기 위해 먼저 ‘x: 0, y: 0 위치로 이동하기’ 블록을 가져옵니다.

 
17) 강아지 오브젝트가 감지된 얼굴의 위치를 따라 이동하려면, 감지된 얼굴의 위치를 알려주어야 합니다. 우리는 감지된 얼굴의 코의 위치를 기준으로 강아지 오브젝트가 이동하도록 하겠습니다. ‘인공지능’ 블록 꾸러미에서 ‘1번째 얼굴의 왼쪽 눈의 x좌표’ 블록을 가져와 ‘왼쪽 눈’을 ‘코’로 바꾼 뒤, ‘x:0, y:0 위치로 이동하기’ 블록의 x좌표 위치에 다음과 같이 넣습니다.

 
18) y좌표 부분에도 마찬가지로 ‘1번째 얼굴의 왼쪽 눈의 x좌표’ 블록을 가져온 뒤 ‘왼쪽 눈’을 ‘코’로 바꾸고, ‘x’ 좌 표를 ‘y’로 바꾼 뒤 다음과 같이 넣습니다.

 
19) ‘시작하기’ 버튼을 클릭하여 프로그램이 잘 동작하는지 확인합니다.

 
 프로그램에 대해 이야기해봅시다.
Q. 이번 시간에 만든 작품은 엔트리의 어떤 인공지능 관련 기능을 사용하였나요?

Q. 작품을 만들면서 어떤 생각이 들었나요?