헤어 시뮬레이션, 20년 전엔 왜 실패했고 지금은 무엇이 달라졌을까? - 정면 DB가 가진 각도의 한계
20년 전, 헤어 시뮬레이션을 만들다 2006년경, WinForms 기반으로 헤어 시뮬레이션 프로그램을 개발한 적이 있습니다. 당시에는 미용실에서 고객이 자신의 얼굴에 다양한 헤어스타일을 미리 적용해 볼 수 있도록 하는 것이 목표였습니다. 지금처럼 AI가 없던 시절이라, 준비된 헤어 이미지를 고객 사진 위에 합성하는 방식으로 구현했습니다. 개발 단계에서는…
20년 전, 헤어 시뮬레이션을 만들다
2006년경, WinForms 기반으로 헤어 시뮬레이션 프로그램을 개발한 적이 있습니다.
당시에는 미용실에서 고객이 자신의 얼굴에 다양한 헤어스타일을 미리 적용해 볼 수 있도록 하는 것이 목표였습니다. 지금처럼 AI가 없던 시절이라, 준비된 헤어 이미지를 고객 사진 위에 합성하는 방식으로 구현했습니다.
개발 단계에서는 결과가 꽤 만족스러웠습니다.
하지만 실제 미용실에 설치한 후 예상하지 못했던 문제가 발생했습니다.
개발 환경과 실제 환경은 달랐다
개발할 때 사용한 사진은 모두 스튜디오에서 촬영한 모델 사진이었습니다.
조명이 일정하고
정면을 바라보며
화질도 매우 좋았습니다.
이 환경에서는 헤어를 합성해도 자연스럽게 보였습니다.
하지만 실제 고객은 달랐습니다.
휴대폰으로 촬영한 셀카는 사람마다 모두 달랐습니다.
조명이 일정하지 않고
얼굴 각도가 조금씩 틀어져 있으며
화질도 제각각이었습니다.
결국 모델 사진에 최적화된 알고리즘은 실제 환경에서 제대로 동작하지 않았습니다.
당시에는 이질감을 해결할 방법이 없었고, 이것이 프로젝트가 기대만큼 성공하지 못했던 가장 큰 이유였습니다.
20년 후, 같은 문제를 다시 만나다
최근 로컬 AI 기반의 헤어 시뮬레이션을 다시 개발하고 있습니다.
이번에는 상황이 많이 달라졌습니다.
고객이 촬영한 사진을 AI가 먼저 분석하고 보정해 주기 때문에 예전처럼 사진 품질 때문에 결과가 크게 흔들리는 일은 거의 없습니다.
노이즈 제거, 피부 보정, 색감 보정 등은 AI가 상당 부분 해결해 줍니다.
결과 역시 예전보다 훨씬 자연스럽습니다.
그런데 개발을 진행하면서 또 다른 문제를 발견했습니다.
이번에는 사진 품질이 아니라 얼굴 각도였습니다.
정면 헤어 DB가 가진 구조적인 한계
현재 보유하고 있는 헤어스타일 데이터베이스는 대부분 정면 이미지입니다.
하지만 실제 고객 사진은 항상 정면으로 촬영되지 않습니다.
약간 왼쪽을 바라보는 사진
약간 오른쪽으로 기울어진 사진
측면에 가까운 사진
등 다양한 각도로 촬영됩니다.
AI에게 정면 헤어 이미지를 다른 각도의 얼굴에 자연스럽게 적용해 달라고 요청해도 결과는 기대만큼 좋지 않았습니다.
이유는 단순합니다.
정면 이미지만으로는 헤어스타일의 3차원 형태 정보를 알 수 없기 때문입니다.
AI는 보이지 않는 옆머리와 볼륨을 추정해서 생성해야 하는데, 그 추정이 실제 형태와 다르면 부자연스러운 결과가 나타납니다.
즉, AI의 성능 문제가 아니라 입력 데이터 자체가 가진 한계인 것입니다.
현재 적용 중인 파이프라인
현재 헤어 시뮬레이션은 두 단계로 처리하고 있습니다.
1단계 : 헤어 오버레이
준비된 헤어 이미지를 고객 사진 위에 빠르게 합성합니다.
2단계 : AI 보정
오버레이 결과를 다시 AI에 전달하여
경계선
그림자
색감
자연스러운 연결
등을 보정합니다.
AI 덕분에 결과는 분명 좋아집니다.
하지만 입력 자체가 잘못된 경우에는 한계가 있습니다.
얼굴 각도와 헤어 방향이 맞지 않는 상태에서 들어온 결과를 AI가 완전히 다른 형태로 바꾸지는 못하기 때문입니다.
20년 전과 지금, 무엇이 같고 무엇이 다른가
같은 점
문제의 본질은 변하지 않았습니다.
항상 참조 데이터와 실제 사용 환경 사이의 차이(Gap) 가 문제였습니다.
20년 전에는 그 차이가 사진 품질이었고,
지금은 얼굴 각도가 되었습니다.
문제의 형태는 달라졌지만 본질은 같습니다.
다른 점
20년 전에는 이 문제를 해결할 기술이 거의 없었습니다.
반면 지금은 AI가
사진 품질
노이즈
색감
자연스러운 연결
등은 상당 부분 해결해 줍니다.
다만 입력 데이터 자체가 가진 구조적인 한계까지 모두 해결해 주지는 않습니다.
이번 개발을 통해 AI 역시 좋은 결과를 만들기 위해서는 좋은 입력 데이터가 얼마나 중요한지 다시 한번 확인하게 되었습니다.
앞으로의 개발 방향
현재 고려하고 있는 방법은 크게 세 가지입니다.
얼굴 각도를 먼저 분석한 뒤 헤어 이미지를 해당 각도에 맞게 워핑한 후 AI로 보정하는 방식
정면뿐 아니라 측면과 사선까지 포함한 다각도 헤어 데이터베이스를 구축하는 방식
지원 가능한 얼굴 각도를 제한하고, 범위를 벗어나면 정면 사진을 다시 촬영하도록 안내하는 방식
아직 정답을 찾은 것은 아닙니다.
하지만 이번에는 문제를 개발 초기에 정확히 파악했다는 점이 20년 전과 가장 큰 차이라고 생각합니다.
예전에는 실패한 뒤 원인을 알게 되었지만, 지금은 원인을 알고 해결 방법을 찾고 있습니다.
이 과정 자체가 AI 기반 헤어 시뮬레이션을 더 완성도 높은 서비스로 만드는 중요한 경험이 되고 있습니다.
본 글은 HJSOFT에서 개발 중인 로컬 AI 기반 헤어 시뮬레이션 및 얼굴 분석 기능의 실제 개발 경험을 바탕으로 작성되었습니다. 앞으로도 개발 과정에서 얻은 시행착오와 해결 방법을 지속적으로 공유할 예정입니다.
댓글 0
첫 댓글을 남겨보세요.