Ⅰ. 서론
최근 사람들의 머리 모양 변화에 대한 관심과 전반적인 의식 수준이 높아졌다. 1년에 2-4회 변화 주기를 통해 정기적으로 변화를 줄 정도로 관심을 갖고 있으며 헤어스타일 변화 패턴도 소극적인 경향에서 벗어나 적극적으로 자신의 트렌드와 개성에 맞게 가꾸고 이를 중시하는 경향이 높아졌다.[1]
헤어 변화를 위해 사람들은 SNS, 대중매체, 잡지 등을 활용해 정보를 조사하고 헤어디자이너에게 조사된 헤어스타일로 작업해주길 요청하게 된다. 조사된 자료가 본인의 얼굴형과 개성 등에 알맞게 부합되는지는 미리 확인할 수 없다. 따라서 헤어디자이너가 요구받은 헤어 스타일 자료와 같은 헤어 스타일을 연출해내더라도 고객이 만족하지 못하는 경우가 발생할 수 있다.
본 논문에서는, 사용자가 조사한 헤어 스타일을 미리 자신에게 적용시키고 확인해봄으로서 헤어 변화의 실패확률을 줄이며 생활 편의 서비스를 지원하는 스마트 미러 개발을 다룬다.
스마트 미러는 터치 패널이 부착된 모니터와 하프미러필름을 활용해 제작했다. 웹 애플리케이션을 출력하고 터치패널을 활용해 입력을 받아 기능을 수행하게 된다. 이미지를 선택하고 장착된 카메라를 통해 사진을 촬영 후 매칭된 결과물을 확인할 수 있다. 스마트 미러를 통해 반사되어 보이는 본인의 모습과 매칭 이후의 결과물을 동시에 볼 수 있기 때문에 본인이 원하는 헤어 변화가 만족스러울지 미리 확인하고 현재의 모습과 비교하기에 편리하도록 개발했다.
본 서비스는 RestAPI[2] 방식을 활용해 서버와 통신하는 웹 애플리케이션, 모바일 애플리케이션로 구성되어 있다. 웹 애플리케이션을 통해서 날씨, 메모 정보를 출력, 사용자 기반 이미지 리스트를 확인하고 선택된 이미지를 매칭, 결과물 출력, 저장할 수 있게 구현했다. 모바일 애플리케이션은 가상 스타일링을 원하는 이미지를 등록하고 수정 또는 삭제 할 수 있는 헤어 이미지 갤러리와 웹 애플리케이션에서 수행된 이미지 매칭 결과물을 확인할 수 있는 매칭 결과 갤러리로 구성되어 있다.
본 논문의 구성은 다음과 같다. Ⅱ장에서는 본 눈문에관련된 유사 서비스 혹은 연관성이 높은 제품들을 비교분석하였다. Ⅲ장에서는 헤어 스타일링 지원 스마트미러에 대한 설계 및 구현 내용을 기술하였다. Ⅳ장에서는 실험 및 결과를 분석한다. Ⅴ장에서는 연구 결과 및 향후 계획에 관해 설명한다.
Ⅱ. 관련 연구
1. 관련 제품
본 논문에서 참고한 제품들을 아래와 같이 표1로 정리하였다.
표 1. 관련 제품들
Table 1. Related Products
위의 두 기존 제품들의 각각의 장점은 디스플레이를 통해 시술 메뉴를 확인하고, 시술 시간 동안 고객의 지루함을 해소하는 영상, 잡지 등 미디어 콘텐츠를 제공하는 점과 각사용자의 피부 타입을 측정하여 미용 제품을 추천해 사용자에게 유용한 정보를 제공할 수 있다는 점이다. 두 제품 모두 상당한 관심을 받은 제품이었지만 가격이 비싸고 실용성이 낮아 판매량이 부진하여 판매가 중단되었다.
본 논문의 스마트 미러는 메모, 날씨 정보를 확인 할 수 있는 생활 편의 기능을 제공하면서 헤어 스타일링 기능을 접목해 차별화를 주었다. 모바일 애플리케이션과의 연동 기능이 제공되어 편리하게 휴대전화로 원하는 헤어스타일 이미지를 등록하고 등록한 이미지를 즉시 미러를 통해 가상으로 스타일링 해볼 수 있다. 가상 헤어 스타일 매칭을 통해 헤어 스타일 변화 실패 상황을 예방할 수 있다.
2. 안면인식 알고리즘
본 논문의 스마트 미러에서 이미지 매칭 기능을 구현하기 위해서는 안면인식 기술을 필요로 한다. 안면인식 기능을 위한 대표적인 라이브러리로 DLib[5]와 Open CV의 Haar Object Detector[6]가 있다.
DLib는 머신러닝 알고리즘과 도구를 제공하는 C++툴킷이다. 이미지 처리 관련 기본 라이브러리 및 학습을 위한 convolutional neural network 알고리즘을 제공한다. DLib의 Object Detector[7] 활용해 안면인식 기능을 수행하면 안면의 전체적인 외곽 좌표와 모든 이목구비의 외곽 좌표를 얻을 수 있다.
Haar Object Detector는 OpenCV에서 제공하는 객체탐지 라이브러리이다. Haar feature-based Cascade 분류기를 이용해 객체를 탐지한다. Haar feature-based Cascade 분류기는 폴 비올라(Paul Viola)와 마이클 존스(Michael Jones)의 논문에서 제안한 효과적인 객체탐지 방법이다.[8] Open CV에서 직접 제공하는 1226KB의 안면 객체의 특징을 담은 학습 데이터를 활용해 Haar Object Detector로 안면인식 기능을 수행한다. 성재경의 논문에서 언급된 얼굴 검출 기술 중 특징 기반 방법을 사용해 얼굴 요소들의 크기, 모양, 상호 연관성, 얼굴의 색상과 질감 정보, 또는 이러한 요소들의 혼합된 형태의 정보를 이용해 얼굴을 검출한다.[9]
DLib는 안면 외곽과 모든 이목구비의 외곽 좌표를 탐색할 수 있어 세세한 안면인식 정보를 얻을 수 있다는 장점이 있다. 그러나 본 논문에서 구현할 헤어 이미지 매칭 기능은 한 개의 좌표를 좌측 최상단 위치로 지정하고 그 위치를 기반으로 헤어 이미지를 씌우도록 구현되기 때문에 Haar Object Detector로부터 얻을 수 있는 한 개의 대표 위치 좌표만을 활용해도 기능 구현에 문제가 없다고 판단했다. 따라서 안면인식을 위한 라이브러리로 Haar Object Detector를 활용한다.
Ⅲ. 시스템 설계 및 구현
1. 개발환경
래의 표 2는 하드웨어 구성을 보여준다. 터치 패널이 장착되어 터치 기능이 제공되는 모니터와 거울의 기능을 수행하기 위한 미러 필름, 사용자의 모습을 촬영하는데 사용할 웹캠으로 구성되어 있다.
표 2. HW 환경
Table 2. Hardware environment
아래 그림 1은 스마트 미러의 구성도이다. 스마트 미러는 터치 모니터 위에 하프 미러 필름을 부착해 제작했다. 반사율 53%, 투과율 18%의 미러 필름을 사용하였다. 모니터 위에 직접적으로 필름을 부착하지 않고 일반 PVC 필름 위에 미러필름을 부착한 후 접착성이 없는 필름을 스크린 위에 올린 후 케이스로 덮어 구성했다. 터치 기능을 활용해 별도의 입력장치 없이 입력기능을 수행한다. 웹 캠은 헤어 이미지 매칭 기능에서 사용자의 모습을 촬영하기 위해 사용된다.
그림 1. 스마트 미러 구성
Fig. 1. Smart Mirror configuration
소프트웨어 개발환경은 아래 표 3과 같다.
표 3. SW 개발 환경
Table 3. Software development environment
2. 하드웨어 및 소프트웨어의 구성
아래 그림 2는 스마트 미러의 시스템 구성을 나타낸다. 사용자가 제어할 수 있는 모바일 애플리케이션, 웹 애플리케이션, 스마트 미러, 데이터 처리 및 저장 역할을 하는 Firebase Server, Google Cloud Storage[16], Firebase Database로 구성되어 있으며, RestAPI방식을 이용해 데이터를 송수신한다.
그림 2. 시스템 구성도
Fig. 2. System configuration
아래의 그림 3은 스마트 미러의 주요 기능인 헤어스타일링 기능의 SW 구성도를 나타낸 것이다. 헤어 영역 추출 모듈, 헤어 이미지 매칭 모듈, 헤어 색 변환 모듈 총 3개의 모듈로 구성되어 있다.
그림 3. 헤어 스타일링 기능 SW 구성도
Fig. 3. SW configuration of HairStyling function
3. 헤어 스타일링 시스템 및 기타 시스템 설계와 구현
헤어 스타일링 시스템은 세 가지 기능으로 구성되어있다. 사용자의 가상 헤어 스타일링을 위한 헤어 영역 추출 기능, 헤어 이미지 매칭 기능, 헤어 색 변환 기능이 구현되었다. 각 기능의 수행 과정과 알고리즘에 대해 설명한다.
첫 번째로 헤어 영역 추출기능은 사용자가 을 통해 이미지를 업로드 했을 때 해당 이미지의 머리카락 영역만 추출해 내기 위해 사용된다. 아래의 그림 4는 헤어 영역 추출기능 수행 시나리오이다.
그림 4. 헤어 영역 추출 기능 수행 시나리오
Fig. 4. Scenario of performing hair extraction function
헤어 영역 추출 기능 알고리즘은 아래 그림 5와 같다. 배경 제거를 위해 이미지의 객체를 탐색하고 객체의 외곽선을 검출하여 인물의 위치를 제외한 배경 영역을 추출한 후 인물 객체만 저장한다. 저장된 이미지에서 머리카락 추출기능이 수행한다. 안면인식 좌표를 기반으로 안면의 상, 좌, 우에서 추출 좌표들을 지정한다. 추출된 컬러와 같은 컬러 범위 값을 설정하고 범위 안에 있는 컬러값들을 가진 픽셀들을 마스크 씌워 마스크 이미지를 생성한다. 마스크 이미지와 원본 이미지에서 공통영역만 추출하여 결과 이미지를 생성한다.
그림 5. 헤어 영역 추출 기능
Fig. 5. Hair extraction function
두 번째로 헤어 이미지 매칭 기능은 사용자가 선택한 헤어 이미지를 촬영된 사용자 얼굴 이미지에 합성하는 기능이다. 이미지 매칭 기능 수행 시나리오는 아래 그림6과 같다.
그림 6. 헤어 이미지 매칭 기능 수행 시나리오
Fig. 6. Scenario of performing hair image matching function
그림 7은 스마트 미러에 출력되는 헤어 매칭 기능 수행 결과 화면이다.
그림 7. 헤어 매칭 결과
Fig. 7. A result of Image Overlaying
헤어 이미지 매칭 알고리즘은 아래 그림 8과 같다. 매칭될 이미지의 원본 이미지와 촬영된 사용자 이미지에서 안면인식 기능을 수행하고 안면의 크기를 확인한다. 원본 헤어 이미지에서의 안면 크기와 사용자의 안면 크기의 비율 차이를 계산하고 매칭될 헤어 이미지의 크기를 조절한다. 이미지가 합성될 x, y 좌표의 위치를 계산하여 헤어 이미지를 합성한다.
그림 8. 이미지 매칭 알고리즘
Fig. 8. Image Overlaying Algorithm
세 번째로 헤어 색 변환 기능은 사용자가 이미지 매칭 기능을 수행시키고 가상 염색을 시도하기 위해 색깔을 선택했을 때 수행되는 기능이다. 색깔의 선택 여부를 확인하고 선택된 색깔이 을 때 색 변환 기능이 수행된다. 헤어 색 변환 알고리즘은 아래 그림 9와 같다. 해당 헤어 이미지를 흑백화 시킨 후 흑백을 반전하고 이미지의 암 대비를 개선하기 위해 평활화 작업을 수행한다. 그 후 선택된 색깔로 모든 픽셀을 변환시킨다.
그림 9. 헤어 색 변환 알고리즘
Fig. 9. Image Color Converting Algorithm
헤어 스타일링 기능을 제외한 기타 기능은 크게 메모 기능, 사용자 위치 기반 날씨 조회 기능, 매칭 결과물 갤러리 기능이 있다.
사용자는 앱을 이용하여 메모 정보를 추가, 수정, 삭제 가능하며 웹에서 보여질지 선택 가능하다. 메모 정보는FirebaseRealTime Database에 실시간으로 반영된다.
사용자 위치 기반 날씨 열람 기능은 앱을 통해 사용자가 정보를 입력한다. 웹에 사용자가 로그인할 때 해당 사용자의 위치 정보를 불러온다. 사용자의 주소지를 한국기상청 기준 위도, 경도로 변환한다. 변환된 위도, 경도 정보를 포함해 우리 동네 예보 API[17]를 요청한다. 반환받은 정보를 활용해 사용자에게 날씨 정보를 제공한다.
이미지 매칭 결과물 갤러리 기능은 앱에서 제공된다. 갤러리를 통해 결과물을 볼 수 있고 해당 이미지를 핸드폰에 저장 가능하며 삭제도 가능하다.
Ⅳ. 실험 및 결과
본 논문에서는 Haar-cascade 알고리즘을 활용해 사용자의 안면을 인식하고 안면 위치를 기반으로 이미지를 합성하는 기능을 제공한다. 안면인식 시스템은 입력된 얼굴 이미지의 특성에 따라 성능이 크게 좌우되는 문제점을 가지고 있다.[18] 갑작스러운 동작, 객체의 모양 패턴 변경, 변화가 심한 조명이나 그림자 등 외부 환경적인 요인이 성능에 크게 영향을 끼친다.[19] 안면인식 실패는 이미지 매칭 기능의 실패로 이어지게 된다. 안면인식 성공률을 높이는 안면의 패턴을 확인하기 위해 네 가지 상황에 따른 안면 인식률 비교 실험을 수행하였다.
강한 빛 노출이 없는 공간에서 안면의 패턴에 대해서만 변화를 주어 실험을 진행했다. 총 네 가지의 상황은 두 눈썹이 가려진 경우, 두 눈썹이 보이는 경우, 한쪽 눈이 가려진 경우, 눈을 감은 경우이다. 각 20번의 매칭 기능을 수행해 안면인식 성공 여부를 확인했다. 다음 그림10은 네 가지 상황에 따른 이미지 매칭 성공률이다.
그림 10. 상황에 따른 이미지 매칭 성공률
Fig. 10. A success rate of Image matching
해당 실험을 통해 두 눈썹이 보이는 상태가 가장 인식 성공 확률이 높다는 것을 확인했다. 한쪽 눈이 가려진 상태에는 인식이 연속적으로 실패한다는 사실 또한 확인했다. 눈썹의 가려짐이 인식에 50%의 확률로 영향을 미치므로 주의할 필요가 있다.
실험 결과를 종합하면 두 눈과 눈썹이 잘 보이는 경우 가장 면인식 확률을 높을 것으로 판단된다. 따라서 이미지 매칭 기능 수행 이전에 두 눈과 눈썹이 잘 보이는 정적인 상태에서 기능을 수행하라는 안내 문구를 노출한다면 이미지 매칭 기능 성공 확률을 높일 수 있다.
Ⅴ. 결론
기존에 개발되어 있는 스마트 미러 제품들은 단순한 생활 편의 기능에만 집중되어 있어 일반 거울과의 차별점이 없었으며 특별한 기능을 제공하는 경우에는 실용성이 떨어지는 것이 문제였다.
본 논문에서는 헤어 스타일링 지원 스마트 미러를 개발하여 생활편의 기능은 기본적으로 제공하고 헤어 미용 고민을 해소할 가상 헤어 스타일링 기능을 제공하였다.
개발 과정에서, 사용자의 안면이 제대로 인식되지 않은 경우 이미지 매칭 기능이 수행되지 않는 문제점이 발견되었다. 해당 경우를 예방하는 방법으로 안내 문구를 노출 시키게 되었다. 하지만 이는 사용자의 수동적인 촬영 준비과정이 필요하므로 한쪽 눈만이 인식된 경우에도 이미지 매칭이 수행될 수 있도록 예외적 상황에 대한 소프트웨어적 개선이 필요하다.
Haar-cascade 알고리즘에 활용될 학습 데이터에 눈, 코, 입 객체 형태에 대한 학습 데이터를 추가해 안면 전체 인식 실패 시 눈, 코, 입의 인식을 수행해 눈, 코, 입의 위치를 기반으로 헤어 이미지를 매칭하는 기능을 추가 구현해 개선할 계획이다.
References
- Hyun-Ha Nam, Byung-Jun Kang, Kang-Ryoung Park, "Comparison of Computer and Human Face Recognition According to Facial Components", Journal of Korea Multimedia Society vol.15, no.1, pp.40-50, 2012. DOI: http://dx.doi.org/10.9717/kmms.2012.15.1.040
- Rest API, https://mangkyu.tistory.com/46
- Samsung Mirror Display, http://bit.ly/2LNVKCP
- LG U+ LTE Magic Mirror, http://biz.newdaily.co.kr/site/data/html/2017/01/25/2017012510086.html
- Davis King, "Dlib-ml: A Machine Learning Toolkit", Journal of Machine Learning Research, vol.10, pp.755-1758, Dec. 2009. DOI: 10.1145/1577069.1755843
- OpenCV(Face Detection using Haar Cascades), https://docs.opencv.org/3.4.3/d7/d8b/tutorial_py_face _detection.html
- DLib(object_detector), http://dlib.net/imaging.html#object_detector
- P. Viola, M. Jones, "Rapid object detection using a boosted cascade of simple features", Proceedings of the 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR 2001), Feb. 2001. DOI: http://dx.doi.org/10.1109/CVPR.2001.990517.
- Jae-Kyung Sung, In-Ho Choi, Sang-Min Park, Yong-Guk Kim, "Measure and Analysis of Open-Close Frequency of Mouth and Eyes for Sleepiness Decision",The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 14, No. 3, pp.89-97, Jun. 30, 2014. DOI:http://dx.doi.org/10.7236/JIIBC.2014.14.3.89
- Exabio X2200EW plus Touchmonitor Touchscreen, https://www.itenjoy.co.kr/view.php?num=4065666
- Half Mirror Film 25, http://www.any-mall.co.kr/shop/shopdetail.html?branduid=111053&xcode=029&mcode=001&scode=&type=X&search=&sort=order
- Microsoft HD-3000, http://www.noteforum.co.kr/news/index.htm?nm=13495
- VisualStudio Code Documentation, https://code.visualstudio.com/docs
- Firebase Documentation, https://firebase.google.com/docs
- Android Studio Documentation, https://developer.android.com/studio/intro/?hl=ko
- Google Cloud Storage, https://cloud.google.com/storage/docs/
- Weather Forecast API, https://www.data.go.kr/dataset/15000099/openapi.do
- Seung Ho Lee, "A Method for Determining Face Recognition Suitability of Face Image," Journal of the Korea Academia-Industrial cooperation Society(JKAIS), Vol. 19, No. 11 pp. 295-302, 2018. DOI: https://doi.org/10.5762/KAIS.2018.19.11.295
- Min-Koo Kang, "Research of Decision Tree Based Blob Occlusion Solution Method Using Time Series Feature," The Journal of KIIT, Vol. 15, No. 12, pp.9-15, 2017. DOI: https://doi.org/10.14801/jkiit.2017.15.12.9