FFD와 로봇 팔을 이용한 3D 가발 형상 제작 시스템
초록
본 논문에서는 기존의 수동식 가발 제조 시스템을 대체 하여 자동으로 3D 가발을 제작하기 위한 새로운 기법을 제안 하였다. 기존 3차원 두상을 얻기 위해서는 레이저 및 적외선을 이용하는 방법이 있다. 그러나 두가지 방법 모두 빛을 이용하므로, 머리카락에 의해 정확한 두상 측정이 어렵다. 본 논문에서 제안한 시스템은 원래의 머리 모양을 정확히 구현하기 위해 머리카락이 있는 경우에 대하여서도 실제 두상 형상 처리에 문제가 없는 접촉식 측정 방법을 구현 하였다. 본 논문의 3D 가발을 제작 기법은 우선 머리 형상에 대한 대표적인 7개의 랜드 마크 점을 설정하고, 이상적 두상인 표준 3차원 머리 형상을 만든다. 그리고 본 논문에서 설계한 로봇 팔을 사용하여 5개의 측정 점에 대한 3차원 위치 정보를 추출하고, 해당 데이터를 기준으로 피 측정자의 3차원 두상을 FFD(Free Form Deformation) 알고리즘을 이용하여 생성하였다. 구현된 방법으로 측정 결과, 실제 피 측정자의 머리에 비해 1.1 ∼ 5.6%의 오차가 있었다. 따라서 제안한 기법은 단지 7개의 랜드 마크에 대한 피 측정자의 5개 3차원 접촉 측정 점만으로도 맞춤형 가발을 빠르고 효율적으로 만들 수 있는 장점을 가진다.
Abstract
In this paper, we propose a new method to automatically make 3D wigs by replacing existing manual wig manufacturing system. To obtain the existing 3D head image, there is a method using a laser and an infrared ray. However, since both methods use light, it is difficult to measure the correct head by the hair. In this paper, we propose a contact type measurement method which has no problem in actual head shape processing even when there is hair. The 3D wig making method of this paper first establishes seven representative landmark points for the head shape and creates a standard 3D head shape which is an ideal head shape. Using the robotic arm designed in this paper, 3D position information of five measurement points is extracted and the 3D head of the subject is generated using the FFD(Free Form Deformation) algorithm based on the corresponding data. As a result of the implemented method, there was an error of 1.1 ~ 5.6% compared between actual head and subject. The proposed technique has the advantage of making the customized wig quickly and efficiently by taking only five 3D contact measurement points of the subject.
Keywords:
3D Wig, encoder, FFD, landmark, robotⅠ. 서 론
컴퓨터 그래픽과 컴퓨터 비전 기술의 비약적인 발전과 함께 3D 인체 형상 생성 및 후처리하는 소프트웨어가 많이 개발되어 있다. 이러한 소프트웨어를 기반으로 3D 가발 제작에 관한 여러 연구가 진행 되어 왔다. 가장 보편적인 기법은 3차원 머리 형상 데이터를 취득하기 위한 3D 스캐너 방식이며 3D 가발을 만들기 위해 3차원 머리 데이터를 스캐닝 한 후 사후 처리가 필요하다 [1]-[4]. 그러나 이러한 3D 스캐너 기법은 데이터 취득 및 처리 절차에 소요되는 시간이 오래 걸리고 비용이 많이 드는 단점이 있다.
본 논문에서 제안한 기법은 복잡한 처리 없이 3D 가발을 만드는데 경제적이며 효과적인 기법이다. 먼저 7개의 랜드 마크 부분에 대하여 표준 3차원 머리 형상을 만들고, 엔코더를 이용하여 제작된 로봇 팔에 의해 측정된 5개 측정 점으로 피 측정자의 두상을 만든다. 마지막으로 두 3차원 두상과의 차이를 구분하여 3차원 머리 형상용 헤어 영역을 분할하고 3차원 가발을 만든다. 본 논문에서 제안한 기법은 다음 그림 1과 같이 순서도를 통해 나타낼 수 있다.
Ⅱ. 3D 가발 형상 데이터 추출 절차
2.1 3D 랜드마크 추출용 로봇 팔 설계
3차원 머리형상의 기본 데이터인 5개의 측정 점을 얻기 위해 본 논문에서는 4개의 인코더와 32비트 ARM CORTEX-m3 모듈을 이용하여 그림 1과 같은 로봇 팔을 제작하였다. 제작된 로봇 팔에서 얻어진 엔코더 각도 값은 PC USB 포트를 통하여 PC 소프트웨어에 전송된다. 4개의 로봇 팔의 길이는 그림 1에 표시된 것과 같이 115mm (Arm1), 170mm (Arm2), 275mm (Arm3) 및 245mm (Arm4) 이다.
3차원 가발 상의 5개점의 위치를 만드는 것이 중요하므로, 결과적으로 로봇 팔은 세 축으로 분리된다. 그림 2의 arm 4의 Encoder-4는 Z 축을 따라 회전하고, 또 다른 세 개의 엔코더가 Y 및 X 축을 따라 회전한다.
이 회전각을 측정하여 Inverse Kinematic을 사용하면 체크된 5개점에 대한 3차원 위치를 계산하여 추출 할 수 있다.
2.2 접촉식 3차원 머리 형상 측정 알고리즘
로봇 팔은 그림 3의 오른쪽에 표시된 회전 방향에 따라 데카르트 좌표 시스템으로 변환된다. 그림 3의 왼쪽에 표시된 로봇 팔의 기하학적 표현이다.
3차원 머리 형상 측정기의 최종 위치 정보를 계산하기 위해 오른쪽에 표시된 데카르트 좌표계에서 Inverse Kinematic을 사용한다. 그리고 로봇 관절에 부착한 엔코더 센서(MX-12W)를 총 4개 부착하고, 로봇 팔의 4개 관절 회전 각도를 각각 'α', 'β', 'γ', 'δ’로 표현하였다.
따라서 그림 3의 매개 변수를 다음과 같이 표현 할 수 있다.
(1) |
(2) |
(3) |
(4) |
(5) |
(6) |
(7) |
(8) |
(9) |
(10) |
(11) |
(12) |
(13) |
(14) |
bx : arm1 길이
tb : arm2 길이
fm : arm3 길이
cx : arm4 길이
로봇 팔 관절 회전 각도: 'α', 'β', 'γ', 'δ’
2.3 로봇 팔과 PC 소프트웨어와 동기화
로봇 팔에 의한 피 측정자의 머리 형상을 측정하기 위하여, 본 논문에서 설계한 로봇 팔과 연동되어 시각적으로 로봇 팔의 위치와 측정 점의 위치, 3차원 두상 데이터 등을 모니터링 할 수 있도록, FFD 알고리즘이 적용된 PC 소프트웨어를 개발하였으며, 구동 사례를 그림 4와 같이 로봇 팔과 동기화시켜 나타내었다. 즉 로봇 팔을 잡고 움직이게 되면 움직임에 맞춰, PC 화면에 3차원 그래픽 형태의 막대 오브젝트가 실시간으로 로봇 팔과 똑같이 변형되어 나타난다. 소프트웨어는 ‘Processing'이란 IDE를 이용하여 제작되었다[5].
2.4 이상적인 3차원 머리 형상 점
본 논문에서는 그림 5에 나타낸 것과 같이 Size Korea에서[6] 제공되는 3차원 인체 활용 데이터의 머리 모양을 기반으로 7개의 랜드 마크 점을 선택하였다. 따라서 그림 5에 막대 오브젝트는 앞서 말한 바와 같이 실제 로봇 팔과 연동하여 동작되어 진다.
그림 5에 보여진 이상적인 표준 3차원 머리 데이터에서 설정되는 7개의 랜드 마크는 다음과 같다.
◆ Landmark1 : 눈살 점
◆ Landmark2 : 뒤통수 점
◆ Landmark3, Landmark7 : (3),(7) 머리 옆 점
◆ Landmark4 : 머리 마루 점
◆ Landmark5 : 코뿌리 점
◆ Landmark6 : 뒤통수 돌출 점
표준 3차원 머리 데이터에서 설정되는 두상의 형태와 관련된 6개의 주요 길이는 다음과 같다.
◆ 머리 둘레
◆ 머리 뒤(호) 길이
◆ 귀마개 사이의 3차원 머리 형상(호) 길이
◆ 양쪽 귓 볼 수직 길이
◆ 뒷통수 돌출 길이
◆ 뒤통수 길이
그림 6은 위 6개의 주요 길이를 그림으로 표현한 것이다.
7가지 랜드 마크 점과 6개의 길이는 연령에 따라 평균값이 다르게 나타난다.
표 1의 데이터는 Size Korea에서[6] 제공되는 국민 인체 측정 데이터를 기반으로 통계 분석 후 한국인 40세의 머리 모양에 따른 두상과 관련된 6개의 길이를 나타낸 것이다. 이 6개의 길이를 이용하여 40세의 이상적인 표준 3차원 머리 데이터를 제작하였다.
결국 표 1의 표준 길이를 가진 이상적인 40세의 표준 3차원 머리 데이터를 기반으로 40대의 피 측정자 3차원 가발을 생성하게 된다. 그러므로 표준 3차원 머리 형상은 측정된 5개점에 따라 변형되어야 한다. 변형되기 위해 참고 되는 지점은 뒤통수 점, 머리 옆 점 두개, 머리 마루 점, 뒤통수 돌출 점까지 총 5개점으로 이루어진다.
3차원 데이터 변형 처리 알고리즘으로 대표적인 FFD에 대하여 현재까지 많은 연구가 진행 되어 왔다. 대표적인 것으로 동적 정점 연결[7], 재귀 B-Spline 표면[8] 및 다른 기법을 사용한 메시 용 다중 해상도 형상 변형 기법 등이 있다. 또한 Coquillart 기법 [9]은 표면의 기존 모양을 블렌딩하기 위해 임의 곡선을 사용한 기법 들이 있다. 그리고 Voro-noi 기법[10]을 기반으로 하여 샘플링 밀도를 증가시켜 3차원 형상을 변환하는 기법도 있다. 그러나 이 기법들은 주로 거친 형상을 매끄럽게 만들 때에 사용된다. 그리고 본 논문에서는 번스타인 다항식을 사용하여 64개의 로컬 제어점을 사용하고 3D 메시 객체와 일치시켜 처리 가능한 FFD를 구현하였다.
(15) |
위 식은 ‘1 x n’형태로 원본 vertex 값을 배열 처리 한 것이다. 즉 v는 각 3차원 점의 x,y,z 좌표 값을 갖는 샘플 데이터들의 배열이다.
본 논문에서는 IDE 매핑[6] 함수를 사용하여 3차원 머리 데이터상의 원본 vertex 값을 스케일링하고 0과 1에 바인딩 된다. FFD 알고리즘을 적용한 3차원 형상 데이터는 다음과 같은 식으로 표현 된다.
(16) |
여기서 i, j, r 은 변형 메쉬를 제어하기 위한 4 × 4 × 4 = 64 제어점이며, u, t, s는 원본 vertex 값 x, y, z의 매개 변수이다. v'는 제어점을 기반으로 하는 변형 메쉬의 새로운 vertex이다.
Ⅲ. 실험 및 결과
본 논문에서 제안한 기법의 유효성을 입증하기 위하여 실험을 진행 하였다.
이를 위하여 그림 7과 같이 7개의 랜드 마크를 사용하고, 표준 3차원 머리 형상도 설정하였다.
그러나 3차원 가발 생성의 경우 안면과 이마 부분에 대한 고려는 필요치 않는다. 따라서 앞서 말했듯이 본 연구에서는 실제 로봇 팔에 의해 측정되어지는 위치는 뒷머리와 관련된 5개점이 된다. 그리고 로봇 팔로 측정된 5개점을 자동으로 추적하면서, FFD에 의해 두상이 변형되고, 그림 8에 표시된 5개의 측정 점을 기반으로 피 측정자 3차원 머리 형상을 만들게 된다.
그림 8에서 붉은 점은 머리 옆 점, 머리 마루 점, 뒤통수 돌출 점, 뒤통수 점, 눈살 점과 코뿌리 점과 같이 7개의 랜드 마크를 표시한 것이다. 그리고 푸른색 점들 중, ‘1 point'와 '2 point'는 각각 오른쪽과 왼쪽의 머리 옆 점이며, ‘3 point'는 머리 마루 점, ‘4 point'는 뒤통수 돌출 점, ‘5 point'는 뒤통수 점에 각각 대응된다. ‘1 point’와 '2 point'는 붉은 색과 일치하지 않아 보이지만, 사실 '1 point'와 '2 point'의 머리 옆 점은 머리 양 옆의 넓이 정보를 가져오기 위한 것으로, Z 좌표는 정확히 일치한다.
그림 9는 FFD 알고리즘에 의해 제어될 점들의 위치를 나타낸 것이다. 제어 점의 수는 총 ‘16 x 4’로 ‘64’개가 된다. 각 점들의 순서 번호는 오른쪽 하단 앞쪽부터 시작되며, 순서 번호 0을 기점으로 화살표 방향으로 순서 번호가 증가된다. 그리고 7개의 랜드 마크에서 가까운 제어 점들이 측정된 5개 점에 각 랜드 마크가 접근될 수 있도록 이동되어 진다.
예를 들어, 측정된 머리마루의 점이 7개 랜드 마크의 머리마루 점과 위치가 서로 다르다면, 그림 10과 같이 랜드 마크의 머리마루 점과 가장 가까운 제어 점 29, 30번과 45, 46번이 이동되어 두 머리마루 점이 겹쳐지도록 FFD로 변환된다.
즉, 표준 3차원 머리 형상이 FFD의 제어 점 에 의해 이동되고, 표준 3차원 머리 형상의 랜드 마크의 위치도 따라서 이동 되면서, 이동된 랜드 마크의 위치가 측정 점에 도달하면, FFD 변형 작업이 종료되는 것이다.
그림 11은 로봇 팔에 의한 측정값에 따라, FFD 알고리즘을 통하여 표준 3차원 머리 형상이 측정자의 3차원 머리 형상으로 변형되는 것을 보여준다.
그림 11(a)는 변형 전 머리 데이터로 6개의 표준 길이를 가진 이상적 두상의 표준 3차원 머리 형상 데이터이다. 그림 11 (b)는 로봇 팔에 의해 측정된 5개점에 의하여 변형된 3차원 머리 형상 데이터로 피 측정자의 두상과 흡사한 형태이다. 그림 11의 위 그림은 (a), (b) 두 개의 두상 데이터를 측면에서 바라보았을 때를 나타낸 것이며, 그림 11의 아래 그림은 ‘Perspective’ 시점으로 나타낸 것이다.
두 형태를 비교 하였을 때, 전체적으로 (a)의 두상 보다 (b)의 두상이 머리마루와 뒷머리가 납작한 형태에 가까운 것을 알 수 있다.
그림 12는 피 측정자 한 명을 기준으로 약 40번의 3D 데이터를 생성하였을 때, 뒷머리와 관련된 4개의 길이(머리둘레, 눈살 머리마루 뒤통수 길이, 머리마루-왼쪽 귀 구슬점 수직 길이, 왼쪽 눈초리 뒤통수 돌출 수평 길이)를 측정한 값과 비교하기 위해 나타낸 그래프이다. 그래프의 검은 선이 피 측정자의 실측 데이터이고, 표식으로 나타낸 값 들이 생성된 3D 데이터로부터 측정한 값들이다. 대부분의 값들이 실측값보다 상회하는 것으로 나타난다.
표 2는 그림 12의 그래프로 나타낸 값들의 평균을 구하여 피 측정자 실측값과 비교하여 오차를 나타낸 것이다. 각 길이에 대한 오차는 1.1∼5.6%로 나타났다. 그러나 피 측정자와 3D 데이터의 길이를 측정할 때, 측정 위치와 방법에 따라 그 길이의 차이가 판이하게 달라질 수 있음을 고려할 필요가 있다.
본 연구에서 구현한 소프트웨어는 최종적으로 표준 3차원 머리 형상을 5개의 측정 점 데이터를 기반으로 하여, 두 3차원 머리 형상의 차이를 추출해 3차원 가발 형상을 만드는 것이다. 그림 13(a)는 구현한 소프트웨어의 3차원 가발 데이터 생성을 위한 유저 인터페이스(UI)로 임계 값을 제어 막대(Control Bar)를 통해 변형 하도록 하였다. 이 임계 값은 표준 3차원 머리 형상 데이터와 로봇 팔로 측정된 5개 측정 점에 의해 변형된 피 측정자 머리 형상 데이터 사이의 차분 값 범위를 의미한다. 즉 차분 값의 범위가 좁으면 그만큼 생성되는 가발 데이터의 범위가 좁아지고, 넓을수록 생성되는 가발 데이터의 범위가 넓어지는 것을 의미한다. 그리고 3차원 가발 데이터의 외부 면 범위와 내부 면 범위를 분리하여 각각 조종 하도록 하였으며, 각 면에는 다시 Y, Z 좌표의 범위를 분리하여 각각 조종하도록 하였다. 그래서 각 좌표의 범위를 조정하면, 조정된 범위에서의 데이터를 실시간으로 표현하여, 사용자가 가장 가공하기 쉬운 3차원 가발 형상 데이터의 프로토 형태를 추출할 수 있도록 한다. 이렇게 추출된 프로토 형태의 데이터는 3D 디자인 툴에 의해 손쉽게 가공될 수 있다.
그림 13의 (b)에서 파란색은 임계 값에 의해 생성될 3차원 가발 내부 면의 범위를 보여주며, 붉은색은 외부 면의 범위를 보여준다. 그리고 그림 13(b)의 왼쪽과 오른쪽 그림은 임계 값 조정에 따른 외부 면의 형태 변화를 보여준다.
그림 14는 표준 3차원 머리 형상, 로봇 팔에 의해 측정된 5개점을 따라 변형된 피 측정자 3차원 머리 형상, 최종적으로 생성된 3차원 가발 형상을 비교하기 위해 나타낸 그림이다.
(a)데이터에서 (b)의 데이터를 소프트웨어에 의해 차분 처리한 뒤, 3차원 디자인 툴로 적당히 가공한 것이 (c)의 데이터이며, 따라서 (c)의 데이터가 최종적으로 생성된 3차원 가발 형상이다.
Ⅳ. 결 론
현재까지 많은 연구자들이 가발을 만드는 데 있어 3D 스캐너 및 다양한 수동 기법을 사용해왔다. 그러나 이러한 기법들은 가발 측정 시 필요한 필수 데이터 측정에 많은 시간이 소요되며 또한 머리카락이 두피를 덮고 있는 경우 정확한 가발 모양을 설계하기 어려운 단점이 있었다. 본 논문에서 제안한 기법은 3차원 접촉식 방식으로 비교적 저렴한 비용의 간단한 설계로 머리카락과 관계없이 피 측정자의 정확한 두피의 형태를 측정 할 수 있는 기법을 제안 하였다. 결국 물리적 접촉식 형태의 측정방식으로 본래 가시광선 및 레이저, 적외선을 이용하는 3차원 스캐닝 측정 방식에 있어서 머리카락 부분 측정이 어려운 단점을 극복하였다는 것에 큰 의미가 있었다. 본 연구에서 설계한 로봇 팔은 피측정자의 머리에 대해 실시간으로 5개의 3차원 위치를 측정 하였으며, 해당 위치를 통한 뒷머리와 관련된 주요 길이를 추출 하였고, 이들 주요 길이에 대하여 피 측정자와 로봇 팔에 의해 측정된 데이터를 기반으로 가공된 3차원 머리 형상을 비교하여 5.6[%]이내의 오차를 확인하였다. 또한 표준 3차원 머리 형상 데이터를 기반으로, FFD 알고리즘을 이용하여 맞춤형 가발 형상 생성 기법을 제시하였다.
Acknowledgments
이 논문은 2014년 공주대학교 학술연구지원사업의 연구지원에 의하여 연구되었음.
References
- J. S. Bridle, "Probabilistic Interpretation of Feedforward Classification Network Outputs, with Relationships to Statistical Pattern Recognition", NATO ASI Series F68, Berlin, Springer-Verlag, F68, p227-236, (1989). [https://doi.org/10.1007/978-3-642-76153-9_28]
- Young-Jun Song, Son-Hee Kim, and Jae-Hyeong Ahn, "Facial feature analysis for 3D face modeling", Journal of Korean Institute Information Technology, 2(2), p25-29, Sep), (2004.
- Maneesh Agrawala, Andrew C. Beers, and Marc Levoy, "3D painting on scanned surfaces", Proceedings of the 1995 symposium on Interactive 3D graphics, Monterey, California, USA, p145-150, Apr), (1995. [https://doi.org/10.1145/199404.199429]
- Marc Levoy, "The digital michelangelo project", Proceedings of the 2nd international conference on 3-D digital imaging and modeling, Oct. 04-08, 1999, Ottawa, Canada. [https://doi.org/10.1109/im.1999.805329]
- https://processing.org, [Accessed: Aug. 25, 2017]
- http://sizekorea.kr/02_data/directData02.asp, [Accessed: Aug. 26, 2017]
- L. Cobalt, T. Bereuter, and H. P. Seidel, "Multi-resolution shape deformations for meshes with dynamic vertex connectivity", Computer Graphics Forum (Euro graphics 2000 issue), 19(3), pC249-C260, Jan), (2000.
- E. Catmull, and J. Clark, "Recursively Generated B-Spline Surfaces on Arbitrary Topological Meshes", Computer Aided Design, 10(6), p350-355, Nov), (1978. [https://doi.org/10.1016/0010-4485(78)90110-0]
- Fausto Bernardini, Joshua Mittleman, Holly Rushmeier, Cláudio Silva, and Gabriel Taubin, "The Ball-Pivoting Algorithm for Surface Reconstruction", IEEE Transactions on Visualization and Computer Graphics, 5(4), p349-359, Oct), (1999. [https://doi.org/10.1109/2945.817351]
- Nina Amenta, Marshall Bern, and Manolis Kamvysselis, "A new Voro-noi-based surface reconstruction algorithm", Proceedings of the 25th annual conference on Computer graphics and interactive techniques, p415-421, Jul), (1998. [https://doi.org/10.1145/280814.280947]
2014년 2월 : 공주대학교 일반대학원 전기전자제어공학과 석사 졸업
2016년 8월 : 공주대학교 일반대학원 전기전자제어공학과 박사 수료
관심분야 : 전기/전자, 의료공학
2016년 1월 : Ahsanullah University of Science and Technology 컴퓨터 공학과 학사 졸업
2016년 8월 ~ 현재 : 공주대학교 일반대학원 전기전자제어공학과 석사과정
관심분야 : 전기/전자, 정보통신
1988년 2월 : 고려대학교 석사 졸업
1994년 2월 : Texas A&M University 박사 졸업
1994년 ~ 현재 : 공주대학교 전기전자제어공학부 교수
관심분야 : 전기/전자, 전력전자, 정보통신
1999년 2월 : 명지대학교 석사 졸업
2005년 2월 : 공주대학교 일반대학원 전기전자제어공학과 박사 졸업
2008년 ~ 현재 : 대덕대학교 전기과 교수
관심분야 : 전기/전자, 전력전자
2016년 2월 : 공주대학교 일반대학원 전기전자제어공학과 석사 졸업
2016년 2월 ~ 현재 : 공주대학교 일반대학원 전기전자제어공학과 박사과정
관심분야 : 전기/전자, 전력전자