-
face-api.js 체험기체험록 2019. 7. 30. 14:56
매일 아침 Medium에서 내 취향에 맞는 읽을거리를 모아놓은 메일이 온다.
어떤 알고리즘을 사용하는지 내 관심에 들어맞는 읽을거리를 잘도 맞춘다.
오늘은 javascript module인 face-api.js에 대하여 소개하는 글을 추천받았다.
face-api.js — JavaScript API for Face Recognition in the Browser with tensorflow.js
A JavaScript API for Face Detection, Face Recognition and Face Landmark Detection
itnext.io
글에서는 들어가기 전 play하고 싶으면 demo page에 들어가보라고 했다.
난 이론보다는 경험을 통해 더 많이 성장하는 편이기 때문에 주저하지 않고 바로 demo page를 접속했다.
https://justadudewhohacks.github.io/face-api.js/face_and_landmark_detection
face-api.js
justadudewhohacks.github.io
Play!
demo page의 좌측에는 메뉴바가 있었는데 그 메뉴바에는 Face expression recognition, Face recognition, video face tracking 등 다양한 카테고리들이 있었다.
하나씩 다 체험해보다가 face expression recognition에서 '어느 한 표정이라고 하기엔 애매한 표정을 가지고 있는 얼굴 사진을 넣었을때는 뭐라고 인식할까?' 라는 궁금증이 생겼다. 그래서 애매한 표정의 대명사인 모나리자 사진을 넣어보기로 했다. SSD Mobilenet V1 모델에서는 neutral이라고 말했다. 어떻게 학습시켰는지는 몰라도 모델 참 잘 학습시킨 것 같다.
모나리자를 face expression은 neutral! 내가 좋아하는 연예인들 사진을 넣어보면서 demo page에서 제공하는 학습모델은 그들의 감정을 무엇이라 recognize하는지 확인하면서 놀던 중 문득 최근에 서울 국립현대미술관에서 본 작품 하나가 생각났다.
자크 브라스 작가님의 <얼굴 무기화 세트> 라는 작품인데 국립현대미술관의 설명은 아래와 같다.
이 작품은 안면인식 기술로 탐지될 수 없는 무정형의 가면으로, 안면인식 기술이 보여주는 불평등에 저항합니다.
작가는 지역 주민들을 대상으로 진행한 워크숍에서 참가자들의 얼굴 데이터를 수집하여 '집단 가면'을 제작했습니다. 이 가면들은 동성애자의 안면인식 데이터를 모아 성적 지향을 결정짓는 과학 연구에 대응하거나, 생체인식 기술은 피부색을 감지하지 못한다는 특징에 근거해 인종차별 문제, 그 밖에 페미니즘, 국경 보안 기술이 야기한 폭력과 민족주의를 다룹니다. 또한 정치적 대표 집단의 지배적 형태를 거부하며 집단을 변형시키는 불투명한 도구로서 사회 운동에 활용되기도 합니다.더 자세한 설명은 국립현대미술관 페이스북을 참고하세요!
https://www.facebook.com/mmcakorea/photos/a.317498618285845/2157895177579504/?type=1&theater
국립현대미술관
⠀⠀⠀ [#작품소개] #자크블라스, <얼굴 무기화 세트>, 2011-2014 이 작품은 안면인식 기술로 탐지될 수 없는 무정형의 가면으로, 안면인식 기술이 보여주는 불평등에 저항합니다. 작가는 지역 주민들을 대상으로 진행한 워크숍에서 참가자들의 얼굴 데이터를 수집하여 '집단 가면'을 제작했습니다. 이 가면들은 동성애자의 안면인식 데이터를 모아 성적...
www.facebook.com
이 작품을 보면서 딱 봐도 탐지될 수 없게 생겼지만 정말로 그럴까 가 궁금했었다. 근데 이제 실험할 기회가 생겼다.
실험결과 정말로 탐지되지 못 했다. 작품에 대해 의심의 눈초리를 보낸 것이 조금 부끄러웠다.
<얼굴 무기화 세트>에 face recognition 적용해보기 Insight
face-api.js를 경험해보니 이런 프로그램을 개발하면 어떨까 하는 생각을 했다.
그것은 바로 승강기가 여러 대 있는 건물에서 승강기를 기다리고 있는 user에게 탑승할 수 있는 승강기를 추천하는 프로그램이다.
아마 대부분 승강기가 도착했는데 정원이 차서 탑승하지 못 하고 올려보내거나 내려보낸 경험이 있을 것이다.
그래서 여러 대의 승강기가 있는 건물의 경우 필자는 제일 빨리 잡을 수 있는 승강기의 버튼을 누르거나 내가 원하는 층에 갈 수 있는 승강기(큰 건물의 경우 짝수층, 홀수층이 나뉘어져 있기 때문에)의 버튼을 모두 누르곤 한다.
하지만 이것은 에너지를 낭비하는 행위라고 생각한다.
그래서 내 아이디어는 승강기 안 탑승자수를 파악한 후 승강기 버튼을 누르려고 하는 대기자에게 이 승강기는 n명정도 탈 수 있는데 지금은 n명이 넘어서 탑승하기 힘들 것 같다 등의 정보를 제공해서 다른 승강기 버튼을 누르도록 유도하는 것이다.
예를 들어 탑승정원이 10명인 승강기가 있다고 가정해보자. Face recognition을 통해 현재 승강기 안에는 11명이 타고 있다는 것 (승강기는 무게로 정원초과를 알리기 때문에 11명일 수 있음)이 파악되었다. 그렇다면 승강기 대기자가 버튼을 누르기 전 디스플레이에 메시지를 출력하거나 승강기 주의에 LED를 설치해서 빨간색 빛을 쏘는 식으로 탑승이 불가능하다는 정보를 제공한다. 그래서 승강기 대기자는 그 승강기말고 다른 승강기의 버튼을 누르게 된다. 이렇게 하면 에너지 효율이 더 나아지지 않을까 하는 생각을 한다.
물론 만약 승강기에 사람이 아닌 무거운 물건이 타면? 등과 같이 복잡한 상황들에 대한 질문들이 있을 것이다. 또한 내 아이디어보다 더 쉽고 지혜로운 방법이 분명 있을 것이다. 그럼에도 내 아이디어는 구현해볼만하다. 왜냐하면 내가 만들고 싶으니까! ㅋㅋㅋㅋㅋㅋ
More details
face-api github : https://github.com/justadudewhohacks/face-api.js
justadudewhohacks/face-api.js
JavaScript API for face detection and face recognition in the browser and nodejs with tensorflow.js - justadudewhohacks/face-api.js
github.com
'체험록' 카테고리의 다른 글
Pull request를 날려보다! (0) 2019.11.03