2D 이미지에서 기계학습 기법을 활용한 특징점 찾기 및 신체치수 추출
초록
사진이미지에서 신체 치수 추출은 의류 제작의 자동화를 위한 기초 기술이다. 본 연구는 전면과 측면 사진을 입력받아 신체의 12가지 특징점을 찾고, 실험적으로 의류 제작에 필요한 6가지 기본 치수를 계산하는 방법을 제시하였다. 기존의 방법들이 이미지의 윤곽선을 만들고 윤곽선을 이용하여 특징점을 찾아내는 방법과는 달리, 이미지의 부분을 잘라내어 소프트맥스 회귀 기계학습으로 특징점을 찾은 다음, 실험을 통하여 특징점의 직선 및 곡선 거리를 계산하는 방법을 찾아내었다. 길이 계산 결과 소매길이, 가슴둘레의 오차는 2% 이내로 계산되었으며 진동, 앞장, 어깨길이는 오차 비율이 높았으나 길이 값으로는 2cm 이내로 계산되었다. 제안된 방법은 기계학습을 이용하여 특징점 위치 정확도가 높고, 기존 방법에 비하여 사진 획득시 제약 사항을 줄인 장점이 있다.
Abstract
Body measurements from 2D images are the basic technique for clothing automation. We compute 12 feature points of human body from the front and side images, and experimentally calculate 6 basic sizes for clothings. Existing methods make contour from 2D images and detects feature points, but in our method we find feature points using softmax regression machine learning algorithm from the sub images, and experimentally estimates sizes by calculating length of lines and circumferences of curves using the feature points. As for the sleeve and chest length, the error is within 2%, for armhole, front and shoulder length, it has high error rate but within 2cm error bounds. The proposed method helps find more correct feature points and has the advantage of reducing the constraint on image acquisition compared to the existing methods.
Keywords:
clothing automation, 2D image, body measurement, softmax regressionⅠ. 서 론
의복제작을 위하여 사람의 몸에서 치수를 측정하는 것을 채촌(Measurement)라고 한다. 치수를 직접 측정하지 않고 사진이미지에서 신체 치수를 추출하는 작업은 의류 제작의 자동화를 위한 기초 기술이다. 사진이미지에서 신체 치수 추출은 대략적인 체형 파악을 통한 온오프라인 기성복의 추천, 원격 측정을 통한 맞춤 의류 제작까지 다양한 곳에 적용이 가능하다. 그러나 2D 이미지에서 신체 치수 추출의 정확성은 아직 정확한 맞춤 의류 제작 수준까지는 도달하지 않은 상태이며 이 문제를 3D 이미지나 제한된 환경에서 획득한 2D 이미지를 통하여 해결하려고 하고 있다[1].
직접 측정 방식은 대부분의 맞춤의류에서 사용하는 방법으로 측정치가 정확하다. 그러나 측정자와 피측정자가 오프라인에서 만나기 어려운 경우나 측정에 따른 시간적인 비용을 절약할 필요가 있을 때 등 제한적 환경에서 사용이 어려우며, 측정 시 가상의 선을 기준으로 측정하기 때문에 피측정자에 따라 수치가 다를 수도 있다. 직접측정 오차를 줄이거나 측정비용을 줄이기 위한 방법으로 3차원 스캔 기술을 이용하는 방법이 있지만 스캔의 비용이나 제약으로 인하여 쉽게 사용이 어렵다[2]. 2D 이미지 스캔은 직접 측정 방식과 3차원 측정 방식의 단점들을 보완하는 방법으로 비용 면에서 가장 저렴한 반면 측정 오차를 줄여야하는 문제가 있다. 측정 방식에 따른 정확도, 측정비용 등을 비교해본 내용은 표 1과 같다.
본 연구는 전면과 측면 사진을 입력받아 기존 연구와 다른 방법으로 2D 이미지에 기계학습 방법을 적용하여 사진에서 12가지 특징점을 찾은 다음 의류 제작에 필요한 6가지 기본 치수를 계산하는 방법을 제시하고자 한다.
2장에서는 2D 이미지 스캔으로 연구 동향을 살펴보고, 3장에서는 방법과 알고리즘을 제시하며, 4장에서 결론 및 향후 연구 방향을 제시한다.
Ⅱ. 연구개요
2.1 연구 동향
Luo는 2D 이미지를 이용한 비접촉식 신체 치수 측정 방법을 이미지 실루엣 추출, 신체 치수 계산, 오류의 분석을 통하여 결과를 전자상거래에 적용시 특징을 설명하였다. 논문에서는 2D 이미지에서 윤곽선(실루엣) 추출 방법의 정확도 때문에 오류가 발생할 수 있음을 설명하였다[1].
Jiang은 2차원 전면 및 측면 이미지를 이용하여 신체 특징점을 자동으로 인식하는 방법을 제시하였다. 먼저 Freeman의 8 연결체인 코드를 이용하여 사람의 신체 모양을 윤곽곡선을 나타내는 실루엣과 윤곽 탐색의 효율적인 방법으로 101개의 특징점을 찾았다. 논문에서 신체 치수 측정 방법은 제시하지 않았으며, 이미지는 탈의 상태에서 측정이어야하며 특징점에 의미를 부여하지는 않았다[3].
Probandari는 사진으로부터 특징점을 찾은 뒤, 11개 부분의 둘레길이를 실측치와 비교하였다. 둘레게산은 원, 타원형, 사각형 등으로 계산을 하였다. 가슴둘레, 힙둘레 등 오차가 큰 경우가 있음을 보이고 원인으로 특징점 위치, 색상이 있는 옷을 입을 등을 지적하였다. 오차를 줄일 수 있는 방법에 대하여 구체적으로 대안을 제시하지는 않았다[4].
Nguyen은 부분 픽셀 처리와 컨벡스 헐(Convex Hull)을 이용하여 윤곽선을 처리하여 점들을 찾아내는 방법을 사용하였다. 이 방법을 이용하여 가슴, 허리, 힙의 둘레를 계산하였다. 논문에서는 특징점의 의미부여 방법은 제시하지 않았다[5].
Roknabadi와 Istook는 리본을 사람 몸의 측정 위치에 붙이고 정면, 측면 이미지 획득하여 신체 치수를 측정하였다[2][6]. 그 외 운동센서(Kinetic Sensor)를 이용하는 방법도 제시되었다[7][8].
기존의 알고리즘은 2D 사진에서 특징점을 찾기 위하여 윤곽선 탐색, 리본 부착 등이 방법으로 특징점 찾는 방식을 사용한다. 윤곽선의 변화를 이용하여 특징점을 찾는 방식은 많은 수의 특징점을 찾지만 특징점이 어느 부위인지를 알 수 있는 방법은 없다. 윤곽선 기반 알고리즘은 오류가 윤곽선의 정확성이 낮다고 알려져 있다[1].
2.2 제안 알고리즘
제안 알고리즘은 신체 치수 측정을 위한 특징점을 찾아 특징점 간의 직선 및 곡선의 거리를 계산하는 방법이다. 기존의 방법들이 특징점을 찾는 방법이 윤곽선 기반 알고리즘이라면, 본 알고리즘은 원하는 특징점을 바로 찾는 방법이다. 양복 제작 전문가로부터 전체 특징점 중 상의 제작에 필요한 12가지 특징점을 정하고 특징점으로부터 실험적으로 6가지 기본 치수를 계산한다[9][10]. 12가지 특징점은 이미지에서 직접 찾기(프로그램 계산)와 기계학습을 통한 찾기 방법을 통하여 찾아낸다. 직접 찾기는 원하는 특징점의 픽셀을 이미지의 흑백 영상 경계로부터 픽셀 값을 직접 읽어내어 찾아낸다. 기계학습을 이용한 특징점 찾기는 소프트맥스 회귀(Softmax Regression)를 이용한 이미지 패턴을 비교하여 찾아낸다. 구체적인 방법은 2.3절에서 설명한다. 그림 1은 양복 정장 제작에 필요한 특징점과 길이 값을 보인 그림이다.
그림 1에서 보인 상의 의류 제작에 필요한 12가지 특징점과 각각의 계산 방법에 대한 설명은 표 2와 같다.
특징점을 찾은 후 실험적으로 의류 제작에 필요한 전체 치수 중 6가지 치수는 표 3과 같다. 치수 계산에 필요한 키의 값은 사용자로부터 직접 측정하여 입력한다. 각 치수에 대한 설명은 표 3에 나와있으며 진동과 같은 직선의 경우 직접 특징점 값으로부터 계산이 가능하다.
직선의 길이는 픽셀 수에 픽셀 당 길이를 곱하여 찾아내고, 곡선의 길이는 포물선 공식을 이용하여 보정 값을 적용하여 계산한다. 앞장, 어깨너비, 소매길이, 가슴둘레는 곡선의 길이로 주로 특징점으로부터 포물선의 둘레를 계산하며 되며 여기에 필요한 보정 값을 추가하여준다.
2.3 알고리즘
특성점 찾기 및 치수계산 전 과정은 5단계로 구성되며 알고리즘 1과 같이 기술된다.
[알고리즘 1] 특징점 찾기 및 치수계산
{
1단계 : 모바일 환경에서 이미지 획득
2단계 : 이미지 정제
3단계 : 기계학습을 통한 인체 특징점 추출
4단계 : 직선 및 곡선 길이 계산
5단계 : 실측치 입력 및 오차 검증
}
1단계 모바일 환경에서 이미지를 가장 잘 획득하기 위한 환경을 설정하고 이미지를 얻는다. 이미지 획득 환경은 3.1에 실험 환경 부분에서 자세히 설명한다.
2단계 이미지 정제 부분은 핸드폰에서 획득한 이미지를 크기를 표준화 한 다음 흑백 이미지로 변환하는 과정이다. 핸드폰에서 획득한 이미지는 보통 3000*40000 이상의 해상도를 갖고 있다. 이 이미지를 얼굴 인식 후 인물을 중심으로 여백을 남긴 후 잘라내면 2000*1200 크기로 줄어든다. 이미지를 표준화하여 처리하기 위해서 크기를 600*1000 로 줄인 다음 흑백으로 변환한다. 흑백으로 변환된 이미지는 0~255의 명암 값을 갖게 되는데 이것은 150을 중심으로 0, 255로 값을 모두 바꾼다. 결과로 1,255의 명암 값을 갖는 600*1000 크기의 이미지를 얻는다. 이미지의 사례는 그림 2와 같다.
3단계 특징점 추출은 12개의 특징점을 찾아내는 과정이다. 계산 방법은 머신러닝, 프로그램계산, 자동계산의 3가지 방법으로 점에 따른 계산 방법은 표 2에서 나타나 있다.
첫째, 머신 러닝 방법은 소프트맥스(Softmax) 회귀를 이용한 가장 유사한 블록을 그림으로부터 찾아내는 방법이다. 예를 들어 FR(오른쪽 겨드랑이)의 경우 그림 3과 같은 패턴을 학습 시킨 후 패턴과 가장 유사한 블록을 찾아낸다. 그림 3의 패턴은 28*28 비트 패턴이며, 연구에서는 신체 이미지를 28*28 크기의 블록으로 중복 분할한 다음 분할된 이미지 중에서 가장 이미지 유사도가 비슷한 블록을 소프트맥스 회귀로 찾아내는 방법이다. 찾은 블록에서 특징점을 찾아낸다.
소프트맥스 회귀는 기계학습 방법으로 신경망을 이용한 로지스틱 회귀방법이며 입력 데이터에 대하여 결과 범주에 대한 확률값을 반환하는 방법이다. 로지스틱 함수로 소프트맥스 함수 를 사용한다. 여기서 z 는 입력 벡터이며, K 는 범주의 개수이다. 소프트맥스 회귀는 로지스틱 회귀의 일반화된 방법이며 이미지 분류와 같이 각 범주에 들어갈 가능성이 배타적이지 않을 경우 사용되는 방법이다[11].
소프트맥스 회귀를 적용하여 FR 점을 찾는 과정은 알고리즘 2와 같다.
[알고리즘 2] Find FR (오른쪽 겨드랑이 점 찾기)
{
흑백처리된 전면 이미지(tempimage) 입력 받음
오른쪽 어깨 위 시작점 찾기(startx, starty)
입력데이터(testimages) 블록 400개 생성
Tensorflow 변수초기화
Tensorflow Softmax 함수 생성
Softmax 오차함수(cross_entropy) 생성
Softmax 오차함수(훈련데이터) 호출
Softmax 오차함수(입력데이터) 호출
오차함수 중 최소값 블록(result) 찾기
최소값 블록에서 좌표(frx, fry) 찾기
특성점(frx, fry) 반환
}
둘째, 프로그램 계산 방법은 직접 픽셀을 찾아가는 방법이다. 예를 들면 측면 이미지의 경우 T(머리 끝점은 흑백 이미지 값을 이용하여 직접 찾아간다. 셋째, 자동계산 방법은 머신 러닝과 프로그램 계산 방법으로 얻어진 값을 기초로 점의 값을 추정하는 방법이다. 예를 들면 가슴점(F)의 경우 오른쪽 겨드랑이(FR), 왼쪽 겨드랑이(FL) 값으로 중앙 점을 계산하는 방법이다.
4단계 직선 및 곡선 길이 계산은 3단계서 얻어진 특징점 값을 토대로 직선이나 곡선의 길이를 계산한다. 계산해야하는 값은 표 3의 TO, OB, NF, NS, SL, FW의 6개이다. TO(총장)은 N(목)과 L(바닥) 값을 이용하여 계산한다. OB(진동)으로 O(목)에서 B(가슴)까지를 직선으로 보고 직선의 길이를 계산하는 방법을 사용한다. NF(진동)는 N(목)에서 F(가슴)까지를 타원으로 보고 타원의 둘레를 계산하는 방법을 사용한다. NS(어꺠너비)는 N(목)에서 S(어깨)까지를 직선으로 보고 직선의 길이를 계산하는 방법을 사용한다. SL(소매길이)는 S(어깨)에서 SL(팔끝)까지를 직선으로 보고 직선의 길이를 계산하는 방법을 사용한다. 계산에 필요한 포물선의 둘레 L은 다음과 같은 공식으로 구할 수 있다. 단, a 는 포물선의 높이, b는 포물선의 밑변이다[12].
(1) |
FW(가슴둘레)는 그림 4와 같이 전면 이미지에서 FR, FL 값을 이용하여 가슴의 폭 a를 계산하고 측면 이미지에서 SB, SF 값을 이용하여 가슴의 두께 b를 알아내어 단면으로부터 길이를 추정한다. c의 길이는 NR, NL로 계산된 목의 두께에 보정 값 1.2를 곱한 다음 a에서 뺀 값으로 정하였다.
5단계 실측치를 계산하는 방법은 사람의 키를 직접 입력하는 방법을 사용하였다. 입력한 키를 이용하여 키의 픽셀수를 나눈 후 픽셀당 실제길이 피치(Pitch)를 구하였다.
Ⅲ. 실험 및 결과
3.1 실험 환경
이미지 획득을 위한 측정 환경을 하얀 배경에 짙은 단색의 상하의를 입은 피측정자를 카메라의 거리는 2m이며 카메라 높이는 1.2m로 하여 설정하였다. 측정 거리 및 높이는 약간의 가감이 가능하며 인위적인 측정 환경 보다는 가능한 일반적인 환경에서 사진을 찍는 경우를 가정하였다. 정면 사진은 반듯이 선 상태에서 손바닥을 앞으로 향하면서 양팔을 30도 정도 벌린 상태로 사진을 찍는다.
측면은 왼쪽으로 90도 돌아 두 팔은 몸에 붙인 반듯한 상태에서 사진을 찍는다. 측정 환경은 그림 5와 같다.
3.2 실험 결과 비교
실험 데이터는 3명의 남자 신체를 이용하였다. 특성 점 오차는 0% 미만으로 12개의 특징점을 찾을 수 있었다. 값이 다를 수 있는 경우는 특징점이 2개 이상일 경우 선택을 해야 하는 경우이다. 예를 들면 머리끝을 찾을 경우 머리 끝점이 2개 이상 있을 수 있으며 1개를 프로그램 상에서 선택을 하는 경우이다.
길이 계산은 실험 결과 오차가 발생하였다. 오차의 범위는 직선 혹은 곡선에 따라 오차가 발생한다. 계산 값과 실측값을 비교한 내용은 표 4와 같다. 진동, 앞장, 어깨너비와 같이 길이가 짧은 경우 오차율이 높고 소매길이, 가슴둘레는 비교적 오차율이 작게 관찰되었다.
가슴둘레는 여러 가지 계산식을 사용하여 실험하여 최종적으로 그림 4의 모델을 이용하였는데 실험결과 Probandari[4], Hung[13]과 Kohlschütter[14] 보다 표 5와 같이 오차 값을 실측치에 30% 정도 줄일 수 있었다.
실험의 결과를 기존 연구와 비교하여 장단점을 비교하면 표 5와 같다. 각각의 연구에 대하여 사진촬영 방법, 특징점 찾는 방법, 길이 계산 내용을 비교하였다. 길이 계산의 종류가 동일하지 않아 그 중 공통적으로 계산된 가슴둘레 값을 기준으로 비교하였다. 본 연구의 방법은 가능한 사진 촬영에 장소 제한을 줄이려고 하였고, 특징점을 기계학습을 통하여 정확히 찾았다. 가슴둘레 오차는 여러 개의 둘레값의 하나로 절대적인 기준은 아니지만 참고값으로 사용하였다.
3.3 길이 오차
길이 계산 오차의 원인은 여러 가지로 분석해볼 수 있다. 오차의 원인을 찾는 작업은 개선 방향을 어디에 중점을 둘 것인가에 중요한 점이다. 실험을 통하여 오차는 1) 실측치 측정시 발생하는 측정인에 따라 발생하는 오차, 2) 이미지 획득시 의복 상태에 따른 오차, 3) 피측정인의 키 측정값에서 발생하는 오차, 4) 특징점 찾는 프로그램에 따른 오차, 5) 특징점을 이용하여 길이를 계산하는 계산식에 따른 오차로 구분할 수 있다. 각각에 대한 예상 오차 범위와 해결 방법을 정리하면 다음과 같다. 의복오차와 길이계산오차는 많은 실험을 통하여 향후 개선이 필요한 사항이다.
Ⅳ. 결론 및 향후 과제
사진이미지에서 신체 치수 추출은 의류 제작의 자동화를 위한 기초 기술이다. 본 연구는 전면과 측면 사진을 입력받아 신체의 12가지 특징점을 찾은 다음, 실험적으로 의류 상의 제작에 필요한 6가지 기본 치수를 계산하는 방법을 제시하였다. 기존의 연구들이 이미지에 윤곽선을 만들고 윤곽선을 이용하여 계산하는 방법과는 달리 본 연구에서는 이미지의 부분을 잘라내어 기계학습으로 특징점을 찾은 다음 특징점의 직선 및 곡선 거리를 계산하는 방법을 사용하였다. 제안된 방법은 이미지를 직접 다루기 때문에 특징점 위치가 정확하고, 이미지를 획득할 때 기본적인 제약 사항만 지키면 사용할 수 있는 방법으로 기존 방법에 비하여 신체 치수 오차가 훨씬 적음을 보였다.
앞으로의 연구는 첫째, 이미지에서 특징점을 더 정확히 찾을 수 있도록 이미지를 정제하는 소프트웨어 도구를 만들고, 둘째, 실제 의류 제작에 필요한 더 많은 수치값에 대한 계산 방법을 확보하고 의류 업종에서 실제로 활용할 수 있는 응용을 제작하고자 한다.
Acknowledgments
본 연구는 덕성여자대학교 2017년도 덕성여자대학교 교내연구비 지원에 의해 이루어졌음
References
- S. Luo, "Application Research on 2D Image-based Non-contact Anthropometric Technology in Clothing E-commerce", 7th International Conference on Applied Science, Engineering and Technology, ICASET, Advances in Engineering Research, 122, p112-128, May), (2017. [https://doi.org/10.2991/icaset-17.2017.21]
- A. D. Roknabadi, M. Latifi, S. S. Saharkhiz, and H. Aboltakhty, "Human Body Measurement System in Clothing Using Image Processing", World Applied Sciences Journal, 19(1), p112-119, Jan), (2012.
- L. Jiang, J. Yao, B. Li, F. Fang1, Q. Zhang, and M. Meng, "Automatic Body Feature Extraction from Front and Side Images", A Journal of Software Engineering and Applications, 5(12B), p94-100, Dec), (2012. [https://doi.org/10.4236/jsea.2012.512b019]
- H. Probandari, S. Probandari, and A. Darmawan, "Development of Digital Anthropometric Circumferential Measurement System Based on Two Dimensional Images", 11th Asia Pacific Industrial Engineering and Management Systems Conference, p1-6, Dec), (2010.
- T. L. Nguyen, T. H. Nguyen, and A. Zhukov, "Studies of Anthropometrical Features using Machine Learning Approach", Supplementary Proceedings of the 4th International Conference on AIST' 2015, Yekaterinburg, Russia, p96-105, Apr), (2015.
- C. Istook, H. Lim, and J. Chun, "Comparative Analysis of Body Measurement and Fit Evaluation between 2D Direct Body Measuring and 3D Body Scan Measuring", The Research Journal of the Costume Culture, 19(6), p1347-1358, Dec), (2011.
- H. Xu, Y. Yu, Y. Zhou, Y. Li, and S. Du, "Measuring Accurate Body Parameters of Dressed Humans with Large-Scale Motion Using a Kinect Sensor", Sensors, 13(9), p11362-11384, Aug), (2013. [https://doi.org/10.3390/s130911362]
- J. Shin, K. Ko, and S. B. Pan, "Automation of Human Body Model Data Measurement Using Kinect in Motion Capture System", Journal of KIIT, 12(9), p173-180, Sep), (2014. [https://doi.org/10.14801/kitr.2014.12.9.173]
- J. Lee, and P. Lee, "Master Tailor", HanMunhwasa, p22, (2017).
- Tailor, https://www.tailorstore.com/ Instructions - Men's body measurements - Tailor Store, [Accessed: Mar. 28. 2018].
- Softmax Regression, http://ufldl.stanford.edu/wiki/index.php/Softmax_Regression [Accessed: Mar. 28. 2018].
- Parabolic, http://keisan.casio.com/ Keisan Online Calculator, [Accessed: Mar. 28. 2018].
- P. C. Hung, C. P. Witana, and R. S. Goonetilleke, "Anthropometric Measurements from Photographic Images", Proceedings of the 7th International Conference on Work with Computer Systems (WWCS), Kuala Lumpur, Malaysia, p764-769, Jun), (2004.
- T. Kohlschütter, "Human Body Modelling by Development of the Automatic Landmarking Algorithm", Technical Report No. DCSE/TR-2012-11, University of West Bohemia, Department of Computer Science and Engineering, Czech Republic, Aug), (2012.
- M. Hassaballah, H. A. Alshazly, and A. A. Abdelmgeid, "Image Feature Detectors and Descriptors", Springer International Publishing Switzerland, p11-45, Feb), (2016.
2015년 3월 ~ 현재 : 덕성여자 대학 컴퓨터학과 재학중
관심분야 : 데이터베이스, 머신러닝, HCI
2015년 3월 ~ 현재 : 덕성여자 대학교 컴퓨터학과 재학중
관심분야 : 데이터베이스, 머신러닝, 웹시스템
2015년 3월 ~ 현재 : 덕성여자 대학교 컴퓨터학과 재학중
관심분야 : 딥러닝, 사물인터넷, 블록체인, 오픈소스
2015년 3월 ~ 현재 : 덕성여자 대학교 컴퓨터학과 재학중
관심분야 : 데이터베이스, 머신러닝, 사물인터넷
2015년 3월 ~ 현재 : 덕성여자 대학교 컴퓨터학과 재학중
관심분야 : 웹서버, 사물인터넷
1982년 2월 : 서울대학교 계산통계학과(이학사)
1985년 2월 : 서울대학교 계산통계학과(이학석사)
1993년 2월 : 서울대학교 계산통계학과(이학박사)
1988년 9월 ~ 현재 : 덕성여자 대학교 컴퓨터학과 교수
관심분야 : 데이터베이스 질의어, 데이터마이닝