KR102039166B1 - 순환 구조 인공신경망을 이용한 가상 피팅을 수행하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 - Google Patents

순환 구조 인공신경망을 이용한 가상 피팅을 수행하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 Download PDF

Info

Publication number
KR102039166B1
KR102039166B1 KR1020180037555A KR20180037555A KR102039166B1 KR 102039166 B1 KR102039166 B1 KR 102039166B1 KR 1020180037555 A KR1020180037555 A KR 1020180037555A KR 20180037555 A KR20180037555 A KR 20180037555A KR 102039166 B1 KR102039166 B1 KR 102039166B1
Authority
KR
South Korea
Prior art keywords
wearing
image
virtual
network
classification network
Prior art date
Application number
KR1020180037555A
Other languages
English (en)
Other versions
KR20190114603A (ko
Inventor
윤은준
Original Assignee
경일대학교산학협력단
주식회사 룩옵틱스
주식회사 룩스마트랩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경일대학교산학협력단, 주식회사 룩옵틱스, 주식회사 룩스마트랩 filed Critical 경일대학교산학협력단
Priority to KR1020180037555A priority Critical patent/KR102039166B1/ko
Publication of KR20190114603A publication Critical patent/KR20190114603A/ko
Application granted granted Critical
Publication of KR102039166B1 publication Critical patent/KR102039166B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/272Means for inserting a foreground image in a background image, i.e. inlay, outlay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/272Means for inserting a foreground image in a background image, i.e. inlay, outlay
    • H04N2005/2726Means for inserting a foreground image in a background image, i.e. inlay, outlay for simulating a person's appearance, e.g. hair style, glasses, clothes

Abstract

본 발명은 순환 구조 인공신경망을 이용한 가상 피팅을 수행하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체에 관한 것으로, 이러한 본 발명은 정방향 및 역방향 학습을 통해 인공신경망을 학습시키고, 안경 혹은 콘택트렌즈의 영상인 템플릿 및 원본미착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 가상착용영상을 생성하여 사용자가 가상의 환경에서 원하는 템플릿을 피팅할 수 있도록 한다.

Description

순환 구조 인공신경망을 이용한 가상 피팅을 수행하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체{Apparatus for performing virtual fitting using cyclic artificial neural network, method thereof and computer recordable medium storing program to perform the method}
본 발명은 가상 피팅 기술에 관한 것으로, 보다 상세하게는, 순환 구조 인공신경망을 이용하여 가상으로 안경 혹은 컨택트렌즈를 착용한 영상을 제공하는 가상 피팅을 수행하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체에 관한 것이다.
인공신경망(artificial neural network)은 기계학습과 인지과학에서 생물학의 신경망(동물의 중추신경계중 특히 뇌)에서 영감을 얻은 통계학적 학습 알고리즘이다. 인공신경망은 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 가리킨다. 좁은 의미에서는 오차역전파법을 이용한 다층 퍼셉트론을 가리키는 경우도 있지만, 이것은 잘못된 용법으로, 인공신경망은 이에 국한되지 않는다. 인공신경망에는 교사 신호의 입력에 의해서 문제에 최적화되어 가는 교사 학습과 교사 신호를 필요로 하지 않는 비교사 학습이 있다. 명확한 해답이 있는 경우에는 교사 학습이, 데이터 클러스터링에는 비교사 학습이 이용된다. 인공신경망은 많은 입력들에 의존하면서 일반적으로 베일에 싸인 함수를 추측하고 근사치를 낼 경우 사용한다. 일반적으로 입력으로부터 값을 계산하는 뉴런 시스템의 상호연결로 표현되고 적응성이 있어 패턴인식과 같은 기계학습을 수행할 수 있다. 예를 들면, 필기체 인식을 위한 신경망은 입력 뉴런의 집합으로 정의되며 이들은 입력 이미지의 픽셀에 의해 활성화된다. 함수의 변형과 가중치가 적용된 후 해당 뉴런의 활성화는 다른 뉴런으로 전달된다. 이러한 처리는 마지막 출력 뉴런이 활성화될 때까지 반복되며 이것은 어떤 문자를 읽었는지에 따라 결정된다. 다른 기계학습과 같이-데이터로부터 학습하는- 신경망은 일반적으로 규칙기반 프로그래밍으로 풀기 어려운 컴퓨터 비전 또는 음성 인식과 같은 다양한 범위의 문제를 푸는데 이용된다.
한국공개특허 제2013-0103153호 2013년 09월 23일 공개 (명칭: 고객 맞춤형 안경 및 콘택트렌즈 버추얼 피팅 방법 및 그 시스템)
본 발명의 목적은 인공신경망을 이용하여 가상으로 안경 혹은 콘택트렌즈를 착용한 영상을 제공하는 가상 피팅을 수행하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 순환 구조 인공신경망을 이용한 가상 피팅을 수행하기 위한 장치는 안경 혹은 콘택트렌즈의 영상인 템플릿 및 사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 원본미착용영상 또는 가상미착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 가상착용영상을 생성하는 착용생성망과, 사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 원본착용영상 또는 가상착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 사용자가 안경 혹은 콘택트렌즈를 미착용한 영상인 가상미착용영상을 생성하는 미착용생성망과, 상기 가상착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 상기 가상착용영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 착용구분망과, 상기 가상미착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 상기 가상미착용영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 미착용구분망과, 상기 가상착용영상 및 상기 가상미착용영상이 가상인 것으로 판별하도록 기댓값을 설정한 후, 설정된 기댓값과 상기 착용구분망 및 상기 미착용구분망의 출력값의 차이가 최소가되도록 상기 착용구분망 및 상기 미착용구분망의 가중치를 수정하고, 상기 가상착용영상 및 상기 가상미착용영상이 원본인 것으로 판별하도록 기댓값을 설정한 후, 설정된 기댓값과 상기 착용구분망 및 상기 미착용구분망의 출력값의 차이가 최소가되도록 상기 착용생성망 및 상기 미착용생성망의 가중치를 수정하는 학습을 수행하는 학습부를 포함한다.
상기 장치는 상기 원본착용영상이 입력되면, 상기 미착용생성부를 통해 가상미착용영상을 생성하고, 상기 착용생성부를 통해 생성된 가상미착용영상으로부터 가상착용영상을 생성하는 피팅부를 더 포함한다.
상기 원본미착용영상 및 상기 가상착용영상은 각 픽셀의 픽셀값과 각 픽셀의 위치 정보를 포함하며, 상기 피팅부는 상기 생성된 가상착용영상의 위치 정보를 이용하여 안경 혹은 콘택트렌즈의 사이즈를 나타내는 템플릿규격을 생성하는 것을 특징으로 한다.
상기 학습부는 상기 학습 시, 상기 착용생성망, 상기 미착용생성망, 상기 착용구분망 및 상기 미착용구분망의 가중치의 변화가 없으면, 상기 기댓값을 증가시켜 설정한 후, 상기 학습을 반복하는 것을 특징으로 한다.
상기 착용구분망은 상기 가상착용영상에 대해 가중치가 적용되는 복수의 연산을 통해 상기 가상착용영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 착용전역구분망과, 상기 가상착용영상으로부터 추출되는 눈, 코, 귀와, 안경 혹은 콘택트렌즈를 포함하는 소정 크기의 영상인 가상착용지역영상에 대해 가중치가 적용되는 복수의 연산을 통해 상기 가상착용지역영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 착용지역구분망을 포함한다.
또한, 상기 미착용구분망은 상기 가상미착용영상에 대해 가중치가 적용되는 복수의 연산을 통해 상기 가상미착용영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 미착용전역구분망과, 상기 가상미착용영상으로부터 추출되는 눈, 코, 귀와, 안경 혹은 콘택트렌즈를 포함하는 소정 크기의 영상인 가상미착용지역영상에 대해 가중치가 적용되는 복수의 연산을 통해 상기 가상미착용지역영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 미착용지역구분망을 포함한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 방법은, 안경 혹은 콘택트렌즈의 영상인 템플릿 및 사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 원본미착용영상 또는 가상미착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 가상착용영상을 생성하는 착용생성망과, 사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 원본착용영상 또는 가상착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 사용자가 안경 혹은 콘택트렌즈를 미착용한 영상인 가상미착용영상을 생성하는 미착용생성망과, 상기 가상착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 상기 가상착용영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 착용구분망과, 상기 가상미착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 상기 가상미착용영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 미착용구분망을 포함하는 순환 구조 인공신경망을 이용한 가상 피팅을 수행하기 위한 방법으로, 상기 가상착용영상 및 상기 가상미착용영상이 가상인 것으로 판별하도록 기댓값을 설정하는 단계와, 상기 가상인 것으로 판별하도록 설정된 기댓값과 상기 착용구분망 및 상기 미착용구분망의 출력값의 차이가 최소가되도록 상기 착용구분망 및 상기 미착용구분망의 가중치를 수정하는 단계와, 상기 가상착용영상 및 상기 가상미착용영상이 원본인 것으로 판별하도록 기댓값을 설정하는 단계와, 상기 원본인 것으로 판별하도록 설정된 기댓값과 상기 착용구분망 및 상기 미착용구분망의 출력값의 차이가 최소가되도록 상기 착용생성망 및 상기 미착용생성망의 가중치를 수정하는 단계를 포함한다.
본 발명의 다른 견지에 따르면, 전술한 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공한다.
인경 신경망을 이용하여 가상으로 피팅된 영상을 제공함으로써 기존의 단순 합성에 비해 사용자는 자연스러운 영상을 확인할 수 있다. 따라서 사용자에게 새로운 사용자경험(UX)을 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 인공신경망을 이용한 가상으로 피팅을 수행하기 위한 장치의 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 인공신경망의 세부 구성을 설명하기 위한 도면이다.
도 3은 본 발명의 실시예에 따른 생성망의 세부 구성을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 생성망의 입력 데이터 및 출력 데이터를 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 전역구분망의 세부 구성을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 지역구분망의 세부 구성을 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 전역구분망과 지역구분망의 연산을 비교하여 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 실시예에 따른 인공신경망의 초기 학습을 설명하기 위한 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 인공신경망의 경쟁 학습을 설명하기 위한 흐름도이다.
도 11은 본 발명의 다른 실시예에 따른 인공신경망의 경쟁 학습을 설명하기 위한 흐름도이다.
도 12는 본 발명의 또 다른 실시예에 따른 인공신경망의 경쟁 학습을 설명하기 위한 흐름도이다.
도 13은 본 발명의 일 실시예에 따른 인공신경망을 이용한 가상 피팅을 수행하기 위한 방법을 설명하기 위한 흐름도이다.
도 14는 본 발명의 다른 실시예에 따른 인공신경망을 설명하기 위한 도면이다.
도 15는 본 발명의 다른 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다.
도 16은 본 발명의 실시예에 따른 정방향 학습을 설명하기 위한 도면이다.
도 17은 본 발명의 실시예에 따른 정방향 학습을 설명하기 위한 흐름도이다.
도 18은 본 발명의 실시예에 따른 역방향 학습을 설명하기 위한 도면이다.
도 19는 본 발명의 실시예에 따른 역방향 학습을 설명하기 위한 흐름도이다.
도 20은 본 발명의 다른 실시예에 따른 인공신경망을 이용한 가상 피팅을 수행하기 위한 방법을 설명하기 위한 흐름도이다.
도 21은 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 시스템을 설명하기 위한 도면이다.
도 22는 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 사용자장치의 구성을 설명하기 위한 블록도이다.
도 23은 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 사용자장치의 구성을 설명하기 위한 도면이다.
도 24는 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 피팅서버의 구성을 설명하기 위한 블록도이다.
도 24는 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 방법을 설명하기 위한 흐름도이다.
도 25는 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 방법을 설명하기 위한 흐름도이다.
도 26은 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 방법을 설명하기 위한 도면이다.
본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음을 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다.
먼저, 본 발명의 실시예에 따른 인공신경망을 이용한 안경 착용 영상을 생성하기 위한 장치의 구성에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 인공신경망을 이용한 가상으로 피팅을 수행하기 위한 장치의 구성을 설명하기 위한 도면이다. 도 1을 참조하면, 본 발명의 실시예에 따른 인공신경망을 이용하여 가상으로 피팅을 수행하기 위한 장치인 가상피팅모듈(10)은 인공신경망(100), 학습부(200) 및 피팅부(300)를 포함한다.
인공신경망(100)은 복수의 인공신경망(110, 120)을 포함한다. 학습부(200)는 학습 데이터를 통해 인공신경망(100)이 사용자가 안경을 착용한 가상의 영상을 생성하도록 인공신경망(100)을 학습시킨다. 피팅부(300)는 학습이 완료된 인공신경망(100)에 피팅 데이터를 입력하여 인공신경망(100)을 통해 사용자가 안경을 착용한 가상의 영상을 도출하고, 이를 출력한다.
그러면, 본 발명의 일 실시예에 따른 인공신경망의 세부 구성에 대해서 설명하기로 한다. 도 2는 본 발명의 일 실시예에 따른 인공신경망의 세부 구성을 설명하기 위한 도면이다. 도 2를 참조하면, 인공신경망(200)은 생성망(110) 및 구분망(120)을 포함한다. 또한, 구분망(120)은 전역구분망(121) 및 지역구분망(123)을 포함한다. 생성망(110), 전역구분망(121) 및 지역구분망(123) 각각은 하나의 인공신경망을 구성한다. 이러한 생성망(110), 전역구분망(121) 및 지역구분망(123) 각각에 대해서 설명하기로 한다.
먼저, 생성망(110)에 대해서 설명하기로 한다. 도 3은 본 발명의 실시예에 따른 생성망의 세부 구성을 설명하기 위한 도면이다. 도 4는 본 발명의 실시예에 따른 생성망의 입력 데이터 및 출력 데이터를 설명하기 위한 도면이다.
도 3 및 도 4를 참조하면, 생성망(110)은 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층을 포함한다. 여기서, 복수의 연산을 포함하는 복수의 계층은 컨볼루션(Convolution) 연산을 수행하는 컨볼루션계층(CL: Convolution Layer), 다운샘플링(Down Sampling) 연산을 수행하는 풀링계층(PL: Pooling Layer) 및 업샘플링(Up Sampling) 연산을 수행하는 언풀링(UL: Unpooling Layer) 계층 및 디컨불루션 연산을 수행하는 디컨불루션 계층(DL: Deconvolution Layer) 각각을 하나 이상 포함한다. 컨볼루션, 다운샘플링, 업샘플링 및 디컨불루션 연산 각각은 소정의 행렬로 이루어진 필터를 이용하며, 이러한 행렬의 원소의 값들이 가중치가 된다.
생성망(110)은 안경 혹은 콘택트렌즈의 영상인 템플릿(1)과 사용자가 안경 혹은 콘택트렌즈를 착용하지 않은 영상인 원본미착용영상(20)을 입력 받는다. 특히, 원본미착용영상(20)은 각 픽셀의 픽셀값과 각 픽셀의 위치 정보를 포함한다. 여기서, 위치 정보는 소정의 기준점(예컨대, 카메라의 초점)을 가지며, 기준점 (0, 0, 0)으로부터 해당 픽셀로 촬영된 객체까지의 3차원의 거리를 나타내는 3차원 좌표값(x, y, z)이다. 예컨대, 원본미착용영상(20)의 어느 하나의 픽셀 P1은 기본적으로 픽셀 좌표계에 따라 (x, y)에 위치하고, 픽셀값(예컨대, RGB값)을 가지며, 3차원 좌표값 (x, y, z)을 가진다.
생성망(110)은 템플릿(1) 및 원본미착용영상(20)이 입력되면, 원본미착용영상(20)에 대해 복수의 계층의 가중치가 적용되는 복수의 연산을 수행하여 사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 가상착용영상(30)을 생성한다. 다른 말로, 생성망(110)은 원본미착용영상(20)의 모든 픽셀의 픽셀값 및 3차원 좌표값에 대해 복수의 계층의 가중치가 적용되는 복수의 연산을 수행하여 사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 가상착용영상(30)을 생성한다. 이에 따라, 생성된 가상착용영상(30)의 각 픽셀은 픽셀값과 더불어 위치 정보를 포함한다. 가상착용영상(30)의 위치 정보는 원본미착용영상(20)과 동일한 기준점(예컨대, 카메라의 초점)을 가지는 3차원 좌표값(x, y z)이다. 이에 따라, 생성망(110)이 생성한 가상착용영상(30)으로부터 안경 혹은 콘텐트렌즈의 실물 사이즈를 나타내는 템플릿규격(2)을 도출할 수 있다. 부연하면, 카메라(디지털카메라)로 촬영한 영상은 메타데이터에 카메라의 파라미터, 예컨대, 초점 거리, 주점 거리, 해상도, 이미지 센서 규격 등이 저장된다. 또한, 위치 정보를 통해 기준점(예컨대, 카메라의 초점)으로부터 해당 객체까지의 거리를 알 수 있다. 이에 따라, 초점 거리, 주점 거리 및 위치 정보를 통해 영상의 가로 및 세로의 실제 크기를 구할 수 있고, 해상도를 통해 각 픽셀의 실제 크기를 구할 수 있다. 원본미착용영상(20)으로부터 가상착용영상(30)을 생성하는 경우, 메타데이터는 그대로 상속된다. 따라서 가상착용영상(30)의 메타데이터 및 위치 정보를 이용하여 가상착용영상(30)의 각 픽셀의 실제 크기 및 위치를 구할 수 있다. 이에 따라, 각 픽셀의 실제 크기를 위치 정보(3차원 좌표값)에 따라 배열하면 실제 크기의 안경 혹은 콘텐트렌즈의 실물 사이즈를 나타내는 템플릿규격(2)을 도출할 수 있다. 본 발명의 실시예에 따른 원본미착용영상(20)은 카메라(디지털카메라) 및 3D센서를 이용하여 촬영되며, 이때, 카메라는 영상을 촬영하여 각 픽셀에 대한 픽셀값을 생성하고, 3D센서는 소정의 기준점으로부터 영상의 각 픽셀을 이루는 객체에 대한 거리를 측정하여 측정된 거리로부터 위치 정보를 생성할 수 있다. 가상착용영상(30) 또한 동일한 기준에 따라 위치 정보를 가지며, 예컨대, 가상착용영상(30)의 어느 하나의 픽셀 P2는 안경테를 나타내며, 3차원 좌표값을 가진다. 전술한 바와 같이, 카메라 파라미터 및 위치 정보를 이용하여 템플릿규격(2)을 도출할 수 있다.
다음으로, 전역구분망(121) 및 지역구분망(123)을 포함하는 구분망(120)에 대해서 설명하기로 한다. 도 5는 본 발명의 실시예에 따른 전역구분망의 세부 구성을 설명하기 위한 도면이다. 도 6은 본 발명의 실시예에 따른 지역구분망의 세부 구성을 설명하기 위한 도면이다. 그리고 도 7은 본 발명의 실시예에 따른 전역구분망과 지역구분망의 연산을 비교하여 설명하기 위한 도면이다.
도 5 및 도 6에 도시된 바와 같이, 전역구분망(121) 및 지역구분망(123) 양자 모두 가중치가 적용되는 복수의 연산을 수행하는 복수의 계층을 포함한다. 여기서, 복수의 연산을 수행하는 복수의 계층은 컨볼루션(Convolution) 연산을 수행하는 컨볼루션계층(CL: Convolution Layer) 및 소프트맥스(Soft-max) 연산을 수행하는 완전연결층(FL: Fully Connected Layer)을 포함한다. 컨볼루션 연산은 소정의 행렬로 이루어진 필터를 이용하며, 이러한 행렬의 원소의 값들이 가중치가 된다. 또한, 소프트맥스 연산 또한 가중치를 적용하여 수행된다.
전역구분망(121)은 사용자가 안경을 착용한 영상인 착용 영상(30, 40)을 입력 받고, 착용 영상(30, 40)에 대해 가중치가 적용되는 복수의 연산을 수행하여 입력된 착용 영상(30, 40)이 원본(real)인지 혹은 가상(fake)의 것인지 여부를 출력한다. 여기서, 착용 영상(30, 40)은 가상착용영상(30) 및 원본착용영상(40)을 포함한다. 가상착용영상(30)은 생성망(110)이 생성한 영상이며, 원본착용영상(40)은 안경을 착용한 사용자를 촬영한 영상의 원본이다.
지역구분망(123)은 지역 영상(35, 45)을 입력 받고, 지역 영상(35, 45)에 대해 가중치가 적용되는 복수의 연산을 수행하여 입력된 지역 영상(35, 45)이 원본(real)인지 혹은 가상(fake)의 것인지 여부를 출력한다. 여기서, 지역 영상(35, 45)은 가상착용지역영상(35) 및 원본착용지역영상(45)을 포함한다. 가상착용지역영상(35)은 가상착용영상(30)으로부터 추출되며, 가상착용영상(30)에서 식별되는 눈, 코, 귀와, 안경 혹은 콘택트렌즈를 포함하는 소정 크기의 직사각형의 영상을 의미한다. 원본착용지역영상(45)은 원본착용영상(40)으로부터 추출되며, 원본착용영상(40)에서 식별되는 눈, 코, 귀와, 안경 혹은 콘택트렌즈를 포함하는 소정 크기의 직사각형의 영상을 의미한다.
전술한 바와 같이, 전역구분망(121) 및 지역구분망(123) 양자 모두는 컨벌루션 연산을 수행한다. 컨벌루션 연산은 소정 크기의 행렬인 필터(혹은 커널)를 이용하여 연산이 수행되며, 이러한 컨벌루션 연산으로부터 이미지의 특징을 추출한다.
본 발명의 실시예에 따르면, 전역구분망(121) 및 지역구분망(123)은 서로 동일한 수의 컨볼루션 계층을 포함하며, 지역구분망(123)의 컨볼루션 계층의 컨볼루션 연산에 사용되는 필터는 대응하는 전역구분망(121)의 컨볼루션 계층의 컨볼루션 연산에 사용되는 필터 보다 작은 크기를 가진다. 예컨대, 도 7의 (A)에 도시된 바와 같이, 전역구분망(121)의 세 번째 컨볼루션 계층의 특징지도(Feature Map: M1)에 대한 컨볼루션 연산 시, 5×5 크기의 필터(W1)를 사용한다고 가정한다. 그러면, 도 7의 (B)에 도시된 바와 같이, 이에 대응하는 지역구분망(123)의 세 번째 컨볼루션 계층의 특징지도(Feature Map: M2)에 대한 컨볼루션 연산 시, 5×5 크기보다 작은 3×3 크기의 필터(W2)를 사용한다.
다음으로, 전술한 본 발명의 일 실시예에 따른 인공신경망(100)의 학습 방법에 대해서 설명하기로 한다. 도 8은 본 발명의 일 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다.
도 8을 참조하면, 학습부(200)는 S100 단계에서 인공신경망(100)의 생성망(110) 및 구분망(120) 각각에 대해 개별적으로 초기 학습을 수행한다. 초기 학습 시, 학습부(200)는 생성망(110)이 원본미착용영상(20)을 입력 받아 가상착용영상(30)을 출력하도록 학습시킨다. 또한, 학습부(200)는 초기 학습 시, 전역구분망(121) 및 지역구분망(123)을 포함하는 구분망(120)이 전역구분망(121) 및 지역구분망(123) 각각이 가상착용영상(30) 및 가상착용지역영상(35)을 가상(fake)인 것으로 판별하고, 원본착용영상(40) 및 원본착용지역영상(45)을 원본(real)인 것으로 판별하도록 학습시킨다.
그런 다음, 학습부(200)는 S200 단계에서 생성망(110) 및 구분망(120)에 대해 경쟁 학습을 수행한다. 이때, 학습부(200)는 상이한 기댓값을 적용하여 구분망(120)과 생성망(110)이 상호 경쟁하도록 하는 학습을 수행한다. 즉, 학습부(200)는 전역구분망(121) 및 지역구분망(123)을 포함하는 구분망(120)이 생성망(110)이 생성한 가상착용영상(30) 및 가상착용지역영상(35)을 가상(fake)인 것으로 판별하도록 구분망(120)을 학습시킨다. 이에 대응하여, 학습부(200)는 전역구분망(121) 및 지역구분망(123)을 포함하는 구분망(120)이 생성망(110)이 생성한 가상착용영상(30) 및 가상착용지역영상(35)을 원본(real)인 것으로 판별하도록 생성망(110)을 학습시킨다.
그러면, 보다 자세히 본 발명의 실시예에 따른 인공신경망(200)의 초기 학습에 대해서 설명하기로 한다. 도 9는 본 발명의 실시예에 따른 인공신경망의 초기 학습을 설명하기 위한 흐름도이다.
도 9를 참조하면, 학습부(200)는 S110 단계에서 학습 데이터를 이용하여 생성망(110)에 대해 초기 학습을 수행한다. S110 단계의 초기 학습 시, 학습부(200)는 학습 데이터로 템플릿(1), 원본미착용영상(20) 및 원본착용영상(40)을 이용한다. 전술한 바와 같이, 템플릿(1)은 안경 혹은 콘택트렌즈의 기본 형상이며, 원본미착용영상(20)은 사용자가 안경 혹은 콘택트렌즈를 착용하지 않은 영상이다. 또한, 원본착용영상(40)은 사용자가 템플릿(1)의 안경 혹은 콘택트렌즈를 착용한 영상이다. 특히, 원본미착용영상(20) 및 원본착용영상(40) 양자 모두 각 픽셀의 픽셀값 및 각 픽셀의 위치 정보, 즉, 3차원 좌표값(x, y z)을 포함한다.
학습부(200)는 학습 데이터로 템플릿(1) 및 원본미착용영상(20)을 생성망(110)에 입력한다. 그러면, 생성망(110)은 입력된 템플릿(1) 및 원본미착용영상(20)에 대해 가중치가 적용되는 복수의 연산을 수행하여 가상착용영상(30)을 출력한다. 그러면, 학습부(200)는 가상착용영상(30)과 원본착용영상(40)을 상호 비교하여 가상착용영상(30)이 원본착용영상(40)에 대한 차이(픽셀값 및 위치 정보)가 최소가 되도록 역확산(back-propagation) 알고리즘을 통해 생성망(110)의 가중치를 수정한다.
다음으로, 학습부(200)는 S120 단계에서 전역구분망(121) 및 지역구분망(123)을 포함하는 구분망(120)에 대해 초기 학습을 수행한다. 학습부(200)는 구분망(120) 초기 학습 시, 학습 데이터로 가상착용영상(30) 및 원본착용영상(40)을 포함하는 착용 영상 그리고 가상착용지역영상(35) 및 원본착용지역영상(45)을 포함하는 지역 영상을 이용한다. 이러한 S120 단계에서 학습부(200)는 학습 데이터를 이용하여 전역구분망(121) 및 지역구분망(123) 각각이 가상착용영상(30) 및 가상착용지역영상(35)을 가상(fake)인 것으로 판별하고, 원본착용영상(40) 및 원본착용지역영상(45)을 원본(real)인 것으로 판별하도록 한다. 이러한 S120 단계에서 학습부(200)는 전역구분망(121)에 가상착용영상(30) 또는 원본착용영상(40)을 학습 데이터로 입력하고, 지역구분망(123)에 가상착용지역영상(35) 또는 원본착용지역영상(45)을 학습 데이터로 입력한다. 학습 데이터가 입력되면, 전역구분망(121) 및 지역구분망(123)은 복수의 연산을 통해 입력된 학습 데이터가 원본(real)일 확률 및 가상(fake)일 확률을 출력값으로 출력한다. 즉, 전역구분망(121)은 가상착용영상(30) 또는 원본착용영상(40)이 입력되면, 복수의 가중치가 적용되는 연산을 통해 입력된 가상착용영상(30) 또는 원본착용영상(40)이 원본(real)일 확률과 가상(fake)일 확률을 출력값으로 출력한다. 또한, 지역구분망(123)은 가상착용지역영상(35) 및 원본착용지역영상(45)이 입력되면, 복수의 가중치가 적용되는 연산을 통해 입력된 가상착용지역영상(35) 또는 원본착용지역영상(45)이 원본(real)일 확률과 가상(fake)일 확률을 출력값으로 출력한다. 예를 들면, 전역구분망(121) 및 지역구분망(123)은 출력값으로 원본(real)일 확률과 가상(fake)일 확률을 'real = 0.75' 및 'fake = 0.25'와 같이 출력한다. 그러면, 학습부(200)는 전역구분망(121) 및 지역구분망(123) 각각이 가상착용영상(30) 및 가상착용지역영상(35)을 가상인 것으로 판별하고, 원본착용영상(40) 및 원본착용지역영상(45)을 원본인 것으로 판별하도록 기댓값을 설정한다. 즉, 학습부(200)는 가상착용영상(30) 및 가상착용지역영상(35)이 입력될 때, 기댓값을 'real = 0.40' 및 'fake = 0.60'으로 설정하고, 원본착용영상(40) 및 원본착용지역영상(45)이 입력될 때, 기댓값을 'real = 0.60' 및 'fake = 0.40'으로 설정할 수 있다. 그런 다음, 학습부(200)는 전역구분망(121) 및 지역구분망(123)의 출력값과 기댓값의 차이인 손실값이 최소가 되도록 역확산 알고리즘을 이용하여 전역구분망(121) 및 지역구분망(123)의 가중치를 수정한다.
다음으로, 전술한 바와 같은 초기 학습이 완료된 후, 수행되는 인공신경망(200)의 경쟁 학습의 일 실시예에 대해서 설명하기로 한다. 도 10은 본 발명의 일 실시예에 따른 인공신경망의 경쟁 학습을 설명하기 위한 흐름도이다. 도 10은 도 8의 S200 단계의 일 실시예이다.
도 10을 참조하면, 학습부(200)는 S210 단계에서 전역구분망(121) 및 지역구분망(123)을 포함하는 구분망(120)이 가상착용영상(30) 및 가상착용지역영상(35)을 가상(fake)인 것으로 판별하도록 기댓값을 설정하여 구분망(120)을 학습시킨다. 이를 위하여, 학습부(200)는 템플릿(1) 및 원본착용영상(20)을 생성망(110)에 입력하여 생성망(110)으로부터 가상착용영상(30)을 획득한 후, 가상착용영상(30)으로부터 가상착용지역영상(35)을 추출한다. 이때, 학습부(200)는 가상착용영상(30) 및 가상착용지역영상(35) 각각에 대한 기댓값을 'real = 0.40' 및 'fake = 0.60'으로 설정한다. 그런 다음, 학습부(200)는 생성망(110)으로부터 획득한 가상착용영상(30) 및 가상착용지역영상(35)을 전역구분망(121) 및 지역구분망(123)에 입력하고, 전역구분망(121) 및 지역구분망(123) 각각의 출력값과 기댓값과의 차이인 손실값이 최소가 되도록 역확산 알고리즘을 이용하여 생성망(110)의 가중치를 고정한 상태에서 전역구분망(121) 및 지역구분망(123)의 가중치를 수정한다.
S210 단계의 구분망(120)의 학습에 대응하여, 학습부(200)는 S220 단계에서 전역구분망(121) 및 지역구분망(123)을 포함하는 구분망(120)이 가상착용영상(30) 및 가상착용지역영상(35)을 원본(real)인 것으로 판별하도록 기댓값을 설정하여 생성망(110)을 학습시킨다. 이를 위하여, 학습부(200)는 템플릿(1) 및 원본착용영상(20)을 생성망(110)에 입력하여 생성망(110)으로부터 가상착용영상(30)을 획득한 후, 가상착용영상(30)으로부터 가상착용지역영상(35)을 추출한다. 이때, 학습부(200)는 가상착용영상(30) 및 가상착용지역영상(35) 각각에 대한 기댓값을 'real = 0.60' 및 'fake = 0.40'으로 설정한다. 그런 다음, 학습부(200)는 생성망(110)이 생성한 가상착용영상(30) 및 가상착용지역영상(35)을 전역구분망(121) 및 지역구분망(123)에 입력하고, 전역구분망(121) 및 지역구분망(123) 각각의 출력값과 기댓값과의 차이인 손실값이 최소가 되도록 역확산 알고리즘을 이용하여 전역구분망(121) 및 지역구분망(123)의 가중치를 고정한 상태에서 생성망(110)의 가중치를 수정한다.
이와 같이, 경쟁 학습은 전역구분망(121) 및 지역구분망(123)이 가상착용영상(30) 및 가상착용지역영상(35)을 가상인 것으로 판별하도록 하는 학습과, 생성망(110)이 전역구분망(121) 및 지역구분망(123)이 가상착용영상(30) 및 가상착용지역영상(35)을 원본인 것으로 판별하도록 하는 학습이 경쟁한다. 이러한 S210 단계 내지 S220 단계는 교번으로 반복하여 수행된다. 이러한 반복되는 경쟁 학습 과정에서 생성망(110)과 전역구분망(121) 및 지역구분망(123)을 포함하는 구분망(120)의 가중치의 변화가 없으면, 학습부(200)는 기댓값을 증가시켜 경쟁 학습을 지속할 수 있다. 즉, 학습부(200)는 구분망(120) 학습 시, 가상착용영상(30) 및 가상착용지역영상(35)에 대한 기댓값을 'real = 0.40' 및 'fake = 0.60'에서 'real = 0.30' 및 'fake = 0.70'과 같이 증가시킬 수 있다. 이는 전역구분망(121) 및 지역구분망(123)을 포함하는 구분망(120)이 가상착용영상(30) 및 가상착용지역영상(35)을 가상(fake)인 것으로 판별하도록 하는 기댓값을 증가시키는 것을 의미한다. 이에 대응하여, 학습부(200)는 생성망(110) 학습 시, 가상착용영상(30) 및 가상착용지역영상(35)에 대한 기댓값을 'real = 0.60' 및 'fake = 0.40'에서 'real = 0.70' 및 'fake = 0.30'과 같이 증가시킬 수 있다. 이는 전역구분망(121) 및 지역구분망(123)으로 하여금 가상착용영상(30) 및 가상착용지역영상(35)을 원본(real)인 것으로 판별하도록 하는 기댓값을 증가시키는 것을 의미한다. 한편, 학습부(200)는 기댓값을 최대(구분망 'real = 0.00' 및 'fake = 1.00', 생성망 'real = 1.00' 및 'fake = 0.00')로 증가시킨 후에도 구분망(120)과 생성망(110)의 가중치의 변화가 없으면, 학습을 완료할 수 있다.
다음으로, 초기 학습이 완료된 후, 수행되는 인공신경망(200)의 경쟁 학습의 다른 실시예에 대해서 설명하기로 한다. 도 11은 본 발명의 다른 실시예에 따른 인공신경망의 경쟁 학습을 설명하기 위한 흐름도이다. 도 11은 도 8의 S200 단계의 다른 실시예이다.
도 11을 참조하면, 학습부(200)는 S310 단계에서 전역구분망(121)이 생성망(110)이 생성한 가상착용영상(30)을 가상(fake)인 것으로 판별하도록 기댓값을 설정하여 전역구분망(121)을 학습시킨다. 이를 위하여, 학습부(200)는 템플릿(1) 및 원본착용영상(20)을 생성망(110)에 입력하여 생성망(110)으로부터 가상착용영상(30)을 획득한다. 이때, 학습부(200)는 가상착용영상(30)에 대한 기댓값을 'real = 0.40' 및 'fake = 0.60'으로 설정한다. 그런 다음, 학습부(200)는 생성망(110)으로부터 획득한 가상착용영상(30)을 전역구분망(121)에 입력하고, 전역구분망(121)의 출력값을 얻은 후, 전역구분망(121)의 출력값과 기댓값과의 차이인 손실값이 최소가 되도록 역확산 알고리즘을 이용하여 생성망(110) 및 지역구분망(123)의 가중치를 고정한 상태에서 전역구분망(121)의 가중치를 수정한다.
다음으로, 학습부(200)는 S320 단계에서 전역구분망(121)이 생성망(110)이 생성한 가상착용영상(30)을 원본(real)인 것으로 판별하도록 기댓값을 설정하여 생성망(110)을 학습시킨다. 이를 위하여, 학습부(200)는 템플릿(1) 및 원본착용영상(20)을 생성망(110)에 입력하여 생성망(110)으로부터 가상착용영상(30)을 획득한다. 이때, 학습부(200)는 가상착용영상(30)에 대한 기댓값을 'real = 0.60' 및 'fake = 0.40'으로 설정한다. 그런 다음, 학습부(200)는 생성망(110)이 생성한 가상착용영상(30)을 전역구분망(121)에 입력하고, 전역구분망(121)의 출력값을 얻은 후, 전역구분망(121)의 출력값과 기댓값과의 차이인 손실값이 최소가 되도록 역확산 알고리즘을 이용하여 전역구분망(121) 및 지역구분망(123)의 가중치를 고정한 상태에서 생성망(110)의 가중치를 수정한다.
학습부(200)는 S330 단계에서 지역구분망(123)이 가상착용지역영상(35)을 가상(fake)인 것으로 판별하도록 기댓값을 설정하여 지역구분망(123)을 학습시킨다. 이를 위하여, 학습부(200)는 템플릿(1) 및 원본착용영상(20)을 생성망(110)에 입력하여 생성망(110)으로부터 가상착용영상(30)을 획득한 후, 가상착용영상(30)으로부터 가상착용지역영상(35)을 추출한다. 이때, 학습부(200)는 가상착용지역영상(35)에 대한 기댓값을 'real = 0.40' 및 'fake = 0.60'으로 설정한다. 그런 다음, 학습부(200)는 가상착용지역영상(35)을 지역구분망(123)에 입력하고, 지역구분망(123)의 출력값을 얻은 후, 지역구분망(123)의 출력값과 기댓값과의 차이인 손실값이 최소가 되도록 역확산 알고리즘을 이용하여 생성망(110) 및 전역구분망(121)의 가중치를 고정한 상태에서 지역구분망(123)의 가중치를 수정한다.
다음으로, 학습부(200)는 S340 단계에서 지역구분망(123)이 가상착용지역영상(35)을 원본(real)인 것으로 판별하도록 기댓값을 설정하여 생성망(110)을 학습시킨다. 이를 위하여, 학습부(200)는 템플릿(1) 및 원본착용영상(20)을 생성망(110)에 입력하여 생성망(110)으로부터 가상착용영상(30)을 획득한 후, 가상착용영상(30)으로부터 가상착용지역영상(35)을 추출한다. 이때, 학습부(200)는 가상착용영상(30) 및 가상착용지역영상(35) 각각에 대한 기댓값을 예컨대, 'real = 0.60' 및 'fake = 0.40'으로 설정한다. 그런 다음, 학습부(200)는 가상착용지역영상(35)을 지역구분망(123)에 입력하고, 지역구분망(123)의 출력값을 얻는다. 그리고 학습부(200)는 지역구분망(123)의 출력값과 기댓값과의 차이인 손실값이 최소가 되도록 역확산 알고리즘을 이용하여 전역구분망(121) 및 지역구분망(123)의 가중치를 고정한 상태에서 생성망(110)의 가중치를 수정한다.
이러한 본 발명의 실시예에 따른 경쟁 학습은 전역구분망(121)이 가상착용영상(30)을 가상인 것으로 판별하도록 하는 학습과, 생성망(110)이 전역구분망(121)으로 하여금 가상착용영상(30)을 원본인 것으로 판별하도록 하는 학습과, 지역구분망(123)이 가상착용지역영상(35)을 가상인 것으로 판별하도록 하는 학습과, 생성망(110)이 지역구분망(123)으로 하여금 가상착용지역영상(35)을 원본인 것으로 판별하도록 하는 학습이 상호 경쟁한다. 이러한 S310 단계 내지 S340 단계는 반복하여 수행된다. 이러한 반복되는 경쟁 학습 과정에서 생성망(110)과 구분망(120)을 포함하는 인공신경망(100)의 가중치의 변화가 없으면, 학습부(200)는 기댓값을 증가시켜 경쟁 학습을 지속할 수 있다. 즉, 학습부(200)는 구분망(120) 학습 시, 가상착용영상(30) 및 가상착용지역영상(35)에 대한 기댓값을 'real = 0.40' 및 'fake = 0.60'에서 'real = 0.30' 및 'fake = 0.70'과 같이 증가시킬 수 있다. 이는 전역구분망(121) 및 지역구분망(123)을 포함하는 구분망(120)이 가상착용영상(30) 및 가상착용지역영상(35)을 원본(real)인 것으로 판별하도록 하는 기댓값을 증가시키는 것을 의미한다. 이에 대응하여, 학습부(200)는 생성망(110) 학습 시, 가상착용영상(30) 및 가상착용지역영상(35)에 대한 기댓값을 'real = 0.60' 및 'fake = 0.40'에서 'real = 0.70' 및 'fake = 0.30'과 같이 증가시킬 수 있다. 이는 생성망(110)이 전역구분망(121) 및 지역구분망(123)으로 하여금 가상착용영상(30) 및 가상착용지역영상(35)을 원본(real)인 것으로 판별하도록 하는 기댓값을 증가시키는 것을 의미한다. 한편, 학습부(200)는 기댓값을 최대(구분망 'real = 0.00' 및 'fake = 1.00', 생성망 'real = 1.00' 및 'fake = 0.00')로 증가시킨 후에도 구분망(120)과 생성망(110)의 가중치의 변화가 없으면, 학습을 완료할 수 있다.
다음으로, 인공신경망(200)의 경쟁 학습의 또 다른 실시예에 대해서 설명하기로 한다. 도 12는 본 발명의 또 다른 실시예에 따른 인공신경망의 경쟁 학습을 설명하기 위한 흐름도이다. 도 12는 도 8의 S200 단계의 다른 실시예이다. 도 12의 실시예는 도 11의 실시예와 전역구분망(121)과 지역구분망(123)의 학습 절차의 순서만 변경되며, 그 학습 절차를 동일하다. 따라서 간략하게 설명하기로 한다.
학습부(200)는 S410 단계에서 지역구분망(123)이 생성망(110)이 생성한 가상착용영상(30) 및 가상착용지역영상(35)을 가상(fake)인 것으로 판별하도록 기댓값을 설정하여 지역구분망(123)의 가중치를 수정하는 학습을 수행한다. 이때, 생성망(110) 및 전역구분망(121)의 가중치는 고정된다.
다음으로, 학습부(200)는 S420 단계에서 지역구분망(123)이 생성망(110)이 생성한 가상착용영상(30) 및 가상착용지역영상(35)을 원본(real)인 것으로 판별하도록 기댓값을 설정하여 생성망(110)의 가중치를 수정하는 학습을 수행한다. 이때, 전역구분망(121) 및 지역구분망(123)의 가중치는 고정된다.
이어서, 학습부(200)는 S430 단계에서 전역구분망(121)이 생성망(110)이 생성한 가상착용영상(30)을 가상(fake)인 것으로 판별하도록 기댓값을 설정하여 전역구분망(121)의 가중치를 수정하는 학습을 수행한다. 이때, 생성망(110) 및 지역구분망(123)의 가중치는 고정된다.
다음으로, 학습부(200)는 S440 단계에서 전역구분망(121)이 생성망(110)이 생성한 가상착용영상(30)을 원본(real)인 것으로 판별하도록 기댓값을 설정하여 생성망(110)의 가중치를 수정하는 학습을 수행한다. 이때, 전역구분망(121) 및 지역구분망(123)의 가중치는 고정된다.
이러한 본 발명의 실시예에 따른 경쟁 학습은 전역구분망(121)이 가상착용영상(30)을 가상인 것으로 판별하도록 하는 학습과, 생성망(110)이 전역구분망(121)으로 하여금 가상착용영상(30)을 원본인 것으로 판별하도록 하는 학습과, 지역구분망(123)이 가상착용지역영상(35)을 가상인 것으로 판별하도록 하는 학습과, 생성망(110)이 지역구분망(123)으로 하여금 가상착용지역영상(35)을 원본인 것으로 판별하도록 하는 학습이 상호 경쟁한다. S310 단계 내지 S340 단계와 마찬가지로, 이러한 S410 단계 내지 S440 단계는 선택적으로 기댓값을 증가시키면서 반복하여 수행될 수 있다.
한편, 도 11과 같은 경우, 전역구분망(121)을 통해 영상 전체에 대해 학습하고, 지역구분망(123)을 통해 눈, 코, 귀와 안경 혹은 콘택트렌즈가 위치한 영역을 포함하는 소정 크기의 직사각형의 영상, 즉, 지역 영상에 대해 학습함으로써, 보다 정밀하게 필요한 부분을 학습할 수 있다. 반면, 도 12의 경우, 지역구분망(123)을 통해 지역 영상을 학습한 후, 전역구분망(121)을 통해 영상 전체에 대해 학습함으로써, 필요한 부분의 학습을 지역구분망(123)을 통해 미리 수행하기 때문에 전역구분망(121)의 학습 시간을 단축시킬 수 있다.
한편, 도 7을 참조하면, 생성망(110)이 생성하는 가상착용영상(30) 중 실질적으로 이미지가 변경되는 부분은 눈, 코, 귀와 안경 혹은 콘택트렌즈가 위치한 영역과 그 주변 영역이다. 또한, 지역구분망(123)은 눈, 코, 귀와 안경 혹은 콘택트렌즈가 위치한 영역을 포함하는 소정 크기의 직사각형의 영상이 원본(real)인지 혹은 가상(fake)의 것인지를 구분하기 위한 것이다. 이에 따라, 지역구분망(123)은 전역구분망(121) 보다 정밀한 해상도의 필터(W2)를 이용함으로써 안경 혹은 콘택트렌즈가 위치한 영역에 대해 보다 정밀한 학습이 이루어질 수 있다. 따라서 가상착용영상(30)의 품질이 향상될 수 있다.
전술한 바에 따라 학습이 완료된 인공신경망(200)을 이용하여 가상으로 피팅을 수행할 수 있다. 이러한 인공신경망을 이용한 가상 피팅을 수행하기 위한 방법에 대해서 설명하기로 한다. 도 13은 본 발명의 일 실시예에 따른 인공신경망을 이용한 가상 피팅을 수행하기 위한 방법을 설명하기 위한 흐름도이다.
도 13을 참조하면, 피팅부(300)는 S510 단계에서 템플릿(1) 및 원본미착용영상(20)을 학습이 완료된 인공신경망(100)의 생성망(110)에 입력한다. 그러면, 인공신경망(100)의 생성망(110)은 S520 단계에서 학습된 가중치를 적용한 복수의 연산을 수행하여 가상착용영상(30)을 생성한다.
전술한 바와 같이, 가상착용영상(30)의 각 픽셀은 픽셀값뿐만 아니라 위치 정보를 포함한다. 이에 따라, 피팅부(300)는 S530 단계에서 가상착용영상(30)의 위치 정보를 이용하여 가상착용영상(30)의 안경 혹은 콘택트렌즈의 실물 사이즈를 도출하여 템플릿규격(2)을 생성한다. 이러한 템플릿규격(2)은 사용자에게 가장 적합한 사이즈의 안경 혹은 콘택트렌즈를 선택할 수 있도록 한다.
전술한 본 발명의 실시예에 따른 인공신경망(100)은 단지 안경 혹은 콘택트렌즈를 착용하지 않은 사용자에 대해 가상의 피팅을 제공하였다. 선글라스를 제외하고, 안경 혹은 콘택트렌즈를 사용하는 사용자는 안경 혹은 콘택트렌즈를 착용한 상태에서 가상 피팅을 수행할 수 있다. 이러한 경우에 사용자가 안경 혹은 콘택트렌즈를 벗고 가상 피팅을 수행하는 것은 번거롭다. 따라서 가상으로 안경을 벗긴 후, 다른 안경을 가상으로 착용시키기 위한 인공신경망에 대해서 설명하기로 한다. 도 14는 본 발명의 다른 실시예에 따른 인공신경망을 설명하기 위한 도면이다.
도 14를 참조하면, 본 발명의 다른 실시예에 따른 인공신경망(100)은 착용생성망(130), 착용구분망(140), 미착용생성망(150) 및 미착용구분망(160)을 포함한다. 또한, 착용구분망(140)은 착용전역구분망(141) 및 착용지역구분망(143)을 포함한다. 그리고 미착용구분망(160)은 미착용전역구분망(161) 및 미착용지역구분망(163)을 포함한다.
착용생성망(130) 및 미착용생성망(150)은 도 3에 도시된 바와 같이, 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층을 포함한다. 여기서, 복수의 연산을 포함하는 복수의 계층은 컨볼루션(Convolution) 연산을 수행하는 컨볼루션계층(CL: Convolution Layer), 다운샘플링(Down Sampling) 연산을 수행하는 풀링계층(PL: Pooling Layer) 및 업샘플링(Up Sampling) 연산을 수행하는 언풀링(UL: Unpooling Layer) 계층 및 디컨불루션 연산을 수행하는 디컨불루션 계층(DL: Deconvolution Layer) 각각을 하나 이상 포함한다. 컨볼루션, 다운샘플링, 업샘플링 및 디컨불루션 연산 각각은 소정의 행렬로 이루어진 필터를 이용하며, 이러한 행렬의 원소의 값들이 가중치가 된다.
착용전역구분망(141), 착용지역구분망(143), 미착용전역구분망(161) 및 미착용지역구분망(163) 모두 도 5 및 도 6에 도시된 바와 같이, 가중치가 적용되는 복수의 연산을 포함하는 복수의 계층을 포함한다. 여기서, 복수의 연산을 포함하는 복수의 계층은 컨볼루션(Convolution) 연산을 수행하는 컨볼루션계층(CL: Convolution Layer) 및 소프트맥스(Soft-max) 연산을 수행하는 완전연결층(FL: Fully Connected Layer)을 포함한다. 컨볼루션 연산은 소정의 행렬로 이루어진 필터를 이용하며, 이러한 행렬의 원소의 값들이 가중치가 된다. 또한, 소프트맥스 연산 또한 가중치를 적용하여 수행된다.
착용생성망(130)은 생성망(110)과 동일한 구성을 가지며, 동일한 기능을 수행한다. 즉, 착용생성망(130)은 템플릿(1)과 원본미착용영상(20)을 입력 받고, 복수의 계층의 가중치가 적용되는 복수의 연산을 수행하여 가상착용영상(30)을 생성한다. 즉, 착용생성망(130)은 원본미착용영상(20)의 픽셀의 픽셀값 및 위치 정보(3차원 좌표값)에 대해 복수의 계층의 가중치가 적용되는 복수의 연산을 수행하여 가상착용영상(30)을 생성한다.
미착용생성망(150)은 생성망(110)과 동일한 구성을 가진다. 미착용생성망(150)은 원본착용영상(40)을 입력 받고, 원본착용영상(40)에 대해 복수의 계층의 가중치가 적용되는 복수의 연산을 수행하여 가상미착용영상(50)을 생성한다. 즉, 미착용생성망(150)은 원본착용영상(40)의 픽셀의 픽셀값 및 위치 정보(3차원 좌표값)에 대해 복수의 계층의 가중치가 적용되는 복수의 연산을 수행하여 가상미착용영상(50)을 생성한다. 여기서, 가상미착용영상(50)은 미착용생성망(150)에 의해 생성되며, 사용자가 안경 혹은 콘택트렌즈를 착용하지 않은 영상이다.
착용구분망(140)은 구분망(120)과 동일한 구성 및 동일한 기능을 가진다. 착용구분망(140)의 착용전역구분망(141) 및 착용지역구분망(143)은 각각 구분망(120)의 전역구분망(121) 및 지역구분망(123)과 동일한 구성 및 동일한 기능을 가진다. 착용전역구분망(141) 가상착용영상(30) 및 원본착용영상(40)을 포함하는 착용 영상(30, 40)을 입력 받고, 착용 영상(30, 40)에 대해 가중치가 적용되는 복수의 연산을 수행하여 입력된 착용 영상(30, 40)이 원본(real)인지 혹은 가상(fake)의 것인지 여부를 출력한다. 착용지역구분망(143)은 가상착용지역영상(35) 및 원본착용지역영상(45)을 포함하는 지역 영상(35, 45)을 입력 받고, 지역 영상(35, 45)에 대해 가중치가 적용되는 복수의 연산을 수행하여 입력된 지역 영상(35, 45)이 원본(real)인지 혹은 가상(fake)의 것인지 여부를 출력한다. 여기서, 지역 영상(35, 45)은 가상착용지역영상(35) 및 원본착용지역영상(45)을 포함한다.
미착용구분망(160)은 구분망(120)과 동일한 구성을 가진다. 미착용전역구분망(161) 원본미착용영상(20) 및 가상미착용영상(50)을 포함하는 미착용 영상(20, 50)을 입력 받고, 미착용 영상(20, 50)에 대해 가중치가 적용되는 복수의 연산을 수행하여 입력된 미착용 영상(20, 50)이 원본(real)인지 혹은 가상(fake)의 것인지 여부를 출력한다. 전술한 바와 같이, 가상미착용영상(50)은 미착용생성망(150)에 의해 생성되며, 사용자가 안경 혹은 콘택트렌즈를 착용하지 않은 상태의 영상이다.
미착용지역구분망(163)은 가상미착용지역영상(55) 및 원본미착용지역영상(25)을 포함하는 지역 영상(25, 55)을 입력 받고, 지역 영상(25, 55)에 대해 가중치가 적용되는 복수의 연산을 수행하여 입력된 지역 영상(25, 55)이 원본(real)인지 혹은 가상(fake)의 것인지 여부를 출력한다. 원본미착용지역영상(25)은 원본미착용영상(20)으로부터 추출되며, 원본미착용영상(20)에서 식별되는 눈, 코 및 귀를 포함하는 소정 크기의 직사각형의 영상을 의미한다. 마찬가지로, 가상미착용지역영상(55)은 가상미착용영상(50)으로부터 추출되며, 가상미착용영상(50)에서 식별되는 눈, 코, 귀를 포함하는 소정 크기의 직사각형의 영상을 의미한다.
한편, 앞서 도 7을 참조로 설명된 바와 같이, 전역구분망(121) 및 지역구분망(123) 양자 모두는 필터를 이용한 컨볼루션 연산에 의해 생성되는 컨볼루션 계층을 포함한다. 또한, 지역구분망(121)의 컨볼루션 계층의 컨볼루션 연산에 사용되는 필터는 대응하는 전역구분망(123)의 컨볼루션 계층의 컨볼루션 연산에 사용되는 필터 보다 작은 크기를 가진다. 마찬가지로, 착용전역구분망(141), 착용지역구분망(143), 미착용전역구분망(161), 미착용지역구분망(163)은 모두 필터를 이용한 컨볼루션 연산에 의해 생성되는 컨볼루션 계층을 포함한다. 또한, 착용전역구분망(141)의 컨볼루션 계층의 컨볼루션 연산에 사용되는 필터는 대응하는 착용지역구분망(143)의 컨볼루션 계층의 컨볼루션 연산에 사용되는 필터 보다 작은 크기를 가진다. 미착용전역구분망(161)의 컨볼루션 계층의 컨볼루션 연산에 사용되는 필터는 대응하는 미착용지역구분망(163)의 컨볼루션 계층의 컨볼루션 연산에 사용되는 필터 보다 작은 크기를 가진다.
다음으로, 전술한 본 발명의 다른 실시예에 따른 인공신경망(100)의 학습 방법에 대해서 설명하기로 한다. 도 15는 본 발명의 다른 실시예에 따른 인공신경망을 학습시키는 방법을 설명하기 위한 흐름도이다.
도 15를 참조하면, 학습부(200)는 S600 단계에서 인공신경망(100)의 개별망, 즉, 착용생성망(130), 착용전역구분망(141)과 착용지역구분망(143)을 포함하는 착용구분망(140), 미착용생성망(150) 및 착용전역구분망(141)과 착용지역구분망(143)을 포함하는 미착용구분망(160) 각각에 대해 개별적으로 초기 학습을 수행한다. 이러한 개별망 각각에 대한 초기 학습에 대해 설명하면 다음과 같다.
착용생성망(130)의 경우, 학습부(200)는 학습 데이터로 템플릿(1) 및 원본미착용영상(20)을 착용생성망(130)에 입력한다. 그러면, 착용생성망(130)은 입력된 템플릿(1) 및 원본미착용영상(20)에 대해 가중치가 적용되는 복수의 연산을 수행하여 가상착용영상(30)을 출력한다. 그러면, 학습부(200)는 가상착용영상(30)과 원본착용영상(40)을 상호 비교하여 가상착용영상(30)이 원본착용영상(40)에 대한 차이(픽셀값 및 위치 정보)가 최소가 되도록 역확산(back-propagation) 알고리즘을 통해 착용생성망(130)의 가중치를 수정한다.
미착용생성망(150)의 경우, 학습부(200)는 학습 데이터로 원본착용영상(40)을 미착용생성망(150)에 입력한다. 그러면, 미착용생성망(150)은 입력된 원본착용영상(40)에 대해 가중치가 적용되는 복수의 연산을 수행하여 가상미착용영상(50)을 출력한다. 그러면, 학습부(200)는 가상미착용영상(50)과 원본미착용영상(20)을 상호 비교하여 가상미착용영상(50)이 원본미착용영상(20)에 대한 차이(픽셀값 및 위치 정보)가 최소가 되도록 역확산(back-propagation) 알고리즘을 통해 미착용생성망(150)의 가중치를 수정한다.
착용전역구분망(141)과 착용지역구분망(143)을 포함하는 착용구분망(140)의 경우, 학습부(200)는 착용전역구분망(141)에 가상착용영상(30) 또는 원본착용영상(40)을 학습 데이터로 입력하고, 착용지역구분망(143)에 가상착용지역영상(35) 또는 원본착용지역영상(45)을 학습 데이터로 입력한다. 이때, 학습부(200)는 착용전역구분망(141) 및 착용지역구분망(143)이 가상착용영상(30) 및 가상착용지역영상(35)을 가상인 것으로 판별하고, 원본착용영상(40) 및 원본착용지역영상(45)을 원본인 것으로 판별하도록 기댓값을 설정한다. 학습 데이터가 입력되면, 착용전역구분망(141) 및 착용지역구분망(143)은 복수의 연산을 통해 입력된 학습 데이터가 원본(real)일 확률 및 가상(fake)일 확률을 출력값으로 출력한다. 그러면, 학습부(200)는 착용전역구분망(141) 및 착용지역구분망(143)의 출력값과 기댓값의 차이인 손실값이 최소가 되도록 역확산 알고리즘을 이용하여 착용전역구분망(141) 및 착용지역구분망(143)의 가중치를 수정한다. 이에 따라, 학습부(200)는 학습 데이터를 이용하여 전역구분망(121) 및 지역구분망(123)이 가상착용영상(30) 및 가상착용지역영상(35)을 가상(fake)인 것으로 판별하고, 원본착용영상(40) 및 원본착용지역영상(45)을 원본(real)인 것으로 판별하도록 학습시킬 수 있다.
미착용전역구분망(161)과 미착용지역구분망(163)을 포함하는 미착용구분망(160)의 경우, 학습부(200)는 미착용전역구분망(161)에 가상미착용영상(50) 또는 원본미착용영상(20)을 학습 데이터로 입력하고, 미착용지역구분망(163)에 가상미착용지역영상(55) 또는 원본미착용지역영상(25)을 학습 데이터로 입력한다. 이때, 학습부(200)는 미착용전역구분망(161) 및 미착용지역구분망(163)이 가상미착용영상(50) 및 가상미착용지역영상(55)을 가상인 것으로 판별하고, 원본미착용영상(20) 및 원본미착용지역영상(25)을 원본인 것으로 판별하도록 기댓값을 설정한다. 학습 데이터가 입력되면, 미착용전역구분망(161)과 미착용지역구분망(163)은 복수의 연산을 통해 입력된 학습 데이터가 원본(real)일 확률 및 가상(fake)일 확률을 출력값으로 출력한다. 그러면, 학습부(200)는 미착용전역구분망(161)과 미착용지역구분망(163)의 출력값과 기댓값의 차이인 손실값이 최소가 되도록 역확산 알고리즘을 이용하여 미착용전역구분망(161)과 미착용지역구분망(163)의 가중치를 수정한다. 이에 따라, 학습부(200)는 학습 데이터를 이용하여 미착용전역구분망(161)과 미착용지역구분망(163)이 가상미착용영상(50) 및 가상미착용지역영상(55)을 가상(fake)인 것으로 판별하고, 원본미착용영상(20) 및 원본미착용지역영상(25)을 원본(real)인 것으로 판별하도록 학습시킬 수 있다.
전술한 바와 같이, 초기 학습이 완료되면, 학습부(200)는 S700 단계에서 정방향 학습을 수행한다. 정방향 학습 시, 학습부(200)는 착용생성망(130)을 통해 가상착용영상(30)과 가상착용지역영상(35)을 생성하고, 생성된 가상착용영상(30)을 미착용생성망(150)에 입력하여 미착용생성망(150)을 통해 가상미착용영상(50) 및 가상미착용지역영상(55)을 순차로 생성한다. 그리고 생성된 가상의 영상들(30, 35, 50, 55)에 대해 착용구분망(140) 및 미착용구분망(160)이 가상인 것으로 판별하고, 착용생성망(130) 및 미착용생성망(150)이 원본인 것으로 판별하도록 경쟁시킨다. 즉, 정방향 학습은 원본착용영상(40)이 아닌 가상으로 생성된 가상착용영상(30)을 이용하여 다시 역으로 원본착용영상(20)을 모사하는 가상의 가상착용영상(50)을 생성하도록 학습하는 것을 의미한다.
그리고 학습부(200)는 S800 단계에서 역방향 학습을 수행한다. 역방향 학습 시, 학습부(200)는 미착용생성망(150)을 통해 가상미착용영상(50) 및 가상미착용지역영상(55)을 생성하고, 가상미착용영상(50)을 착용생성망(130)에 입력하여 착용생성망(130)을 통해 가상착용영상(30)과 가상착용지역영상(35)을 생성한다. 그리고 생성된 가상의 영상들(30, 35, 50, 55)에 대해 착용구분망(140) 및 미착용구분망(160)이 가상인 것으로 판별하고, 착용생성망(130) 및 미착용생성망(150)이 원본인 것으로 판별하도록 경쟁시킨다. 이러한 역방향 학습은 원본미착용영상(20)이 아닌 가상으로 생성된 가상미착용영상(50)을 이용하여 다시 역으로 원본착용영상(40)을 모사하는 가상의 가상착용영상(30)을 생성하도록 학습하는 것을 의미한다.
한편, 전술한 S700 및 S800 단계는 교번으로 반복하여 수행된다. 이러한 반복 수행 시, 학습부(200)는 기댓값을 순차로 증가시킬 수 있다. 이러한 기댓값을 증가시키는 것에 대해서는 아래에서 더 상세하게 설명하기로 한다.
그러면, 전술한 정방향 학습과 역방향 학습에 대해 보다 상세하게 설명하기로 한다. 먼저, 정방향 학습에 대해 보다 상세하게 설명한다. 도 16은 본 발명의 실시예에 따른 정방향 학습을 설명하기 위한 도면이다. 또한, 도 17은 본 발명의 실시예에 따른 정방향 학습을 설명하기 위한 흐름도이다. 특히, 도 17은 도 15의 S700 단계를 보다 상세하게 설명하기 위한 것이다.
도 16 및 도 17을 참조하면, 학습부(200)는 S710 단계에서 착용생성망(130)에 템플릿(1) 및 원본착용영상(20)을 착용생성망(130)에 입력하여 착용생성망(130)을 통해 가상착용영상(30)을 생성하고, 가상착용영상(30)으로부터 가상착용지역영상(35)을 추출한다.
또한, 학습부(200)는 S720 단계에서 앞서 생성된 가상착용영상(30)을 미착용생성망(150)에 입력하여, 미착용생성망(150)을 통해 가상미착용영상(50)을 생성하고, 가상미착용영상(50)으로부터 가상미착용지역영상(55)을 추출한다.
그리고 학습부(200)는 S730 단계에서 착용전역구분망(141) 및 착용지역구분망(143)이 가상착용영상(30) 및 가상착용지역영상(35)을 가상인 것으로 판별하고, 미착용전역구분망(161) 및 미착용지역구분망(163)이 가상미착용영상(50) 및 가상미착용지역영상(55)을 가상인 것으로 판별하도록 착용전역구분망(141) 및 착용지역구분망(143)의 가중치와 미착용전역구분망(161) 및 미착용지역구분망(163)의 가중치를 수정하는 학습을 수행한다. 즉, S730 단계에서 학습부(200)는 가상착용영상(30), 가상착용지역영상(35), 가상미착용영상(50) 및 가상미착용지역영상(55) 각각을 가상인 것으로 판별하도록 각각(30, 35, 50, 55)에 대한 기댓값을 예컨대, 'real = 0.40' 및 'fake = 0.60'으로 설정한다. 그런 다음, 학습부(200)는 가상착용영상(30), 가상착용지역영상(35), 가상미착용영상(50) 및 가상미착용지역영상(55) 각각을 대응하는 착용전역구분망(141), 착용지역구분망(143), 미착용전역구분망(161) 및 미착용지역구분망(163)에 입력하고, 각각(141, 143, 161, 163)의 출력값을 얻는다. 그리고 착용전역구분망(141), 착용지역구분망(143), 미착용전역구분망(161) 및 미착용지역구분망(163) 각각의 출력값과 기댓값과의 차이인 손실값이 최소가 되도록 역확산 알고리즘을 이용하여 착용생성망(130) 및 미착용생성망(150)의 가중치를 고정한 상태에서 착용전역구분망(141), 착용지역구분망(143), 미착용전역구분망(161) 및 미착용지역구분망(163) 각각의 가중치를 수정한다.
다음으로, 학습부(200)는 S740 단계에서 착용전역구분망(141) 및 착용지역구분망(143)하여금 가상착용영상(30) 및 가상착용지역영상(35)을 원본인 것으로 판별하고, 미착용전역구분망(161) 및 미착용지역구분망(163)하여금 가상미착용영상(50) 및 가상미착용지역영상(55)을 원본인 것으로 판별하도록 착용생성망(130)의 가중치와 미착용생성망(150)의 가중치를 수정하는 학습을 수행한다. 즉, S740 단계에서 학습부(200)는 가상착용영상(30), 가상착용지역영상(35), 가상미착용영상(50) 및 가상미착용지역영상(55) 각각을 원본인 것으로 판별하도록, 각각(30, 35, 50, 55)에 대한 기댓값을 예컨대, 'real = 0.60' 및 'fake = 0.40'으로 설정한다. 그런 다음, 학습부(200)는 가상착용영상(30), 가상착용지역영상(35), 가상미착용영상(50) 및 가상미착용지역영상(55) 각각을 대응하는 착용전역구분망(141), 착용지역구분망(143), 미착용전역구분망(161) 및 미착용지역구분망(163)에 입력하고, 각각(141, 143, 161, 163)의 출력값을 얻는다. 그리고 착용전역구분망(141), 착용지역구분망(143), 미착용전역구분망(161) 및 미착용지역구분망(163) 각각의 출력값과 기댓값과의 차이인 손실값이 최소가 되도록 역확산 알고리즘을 이용하여 착용전역구분망(141), 착용지역구분망(143), 미착용전역구분망(161) 및 미착용지역구분망(163)의 가중치를 고정한 상태에서 착용생성망(130) 및 미착용생성망(150)의 가중치를 수정한다.
이와 같이, 정방향 학습은 착용생성망(130)을 통해 가상착용영상(30)과 가상착용지역영상(35)을 생성하고, 생성된 가상착용영상(30)을 미착용생성망(150)에 입력하여 미착용생성망(150)을 통해 가상미착용영상(50) 및 가상미착용지역영상(55)을 순차로 생성한다. 그리고 생성된 가상의 영상들(30, 35, 50, 55)에 대해 착용구분망(140) 및 미착용구분망(160)이 가상인 것으로 판별하고, 착용생성망(130) 및 미착용생성망(150)이 원본인 것으로 판별하도록 경쟁시킨다. 특히, 원본(40)이 아닌 가상으로 생성된 영상(30)을 이용하여 다시 역으로 원본(20)을 모사하는 가상의 영상(50)을 생성하기 때문에 학습을 통해 보다 자연스러운 가상의 영상(50)을 생성할 수 있도록 할 수 있다.
다음으로, 역방향 학습에 대해 보다 상세하게 설명한다. 도 18은 본 발명의 실시예에 따른 역방향 학습을 설명하기 위한 도면이다. 또한, 도 19는 본 발명의 실시예에 따른 역방향 학습을 설명하기 위한 흐름도이다. 특히, 도 19는 도 15의 S800 단계를 보다 상세하게 설명하기 위한 것이다.
도 18 및 도 19를 참조하면, 학습부(200)는 S810 단계에서 원본착용영상(40)을 미착용생성망(150)에 입력하여, 미착용생성망(150)을 통해 가상미착용영상(50)을 생성하고, 가상미착용영상(50)으로부터 가상미착용지역영상(55)을 추출한다.
또한, 학습부(200)는 S820 단계에서 착용생성망(130)에 템플릿(1) 및 가상미착용영상(50)을 착용생성망(130)에 입력하여 착용생성망(130)을 통해 가상착용영상(30)을 생성하고, 가상착용영상(30)으로부터 가상착용지역영상(35)을 추출한다.
그런 다음, 학습부(200)는 S830 단계에서 미착용전역구분망(161) 및 미착용지역구분망(163)이 가상미착용영상(50) 및 가상미착용지역영상(55)을 가상인 것으로 판별하고, 착용전역구분망(141) 및 착용지역구분망(143)이 가상착용영상(30) 및 가상착용지역영상(35)을 가상(fake)인 것으로 판별하도록 미착용전역구분망(161) 및 미착용지역구분망(163)의 가중치와, 착용전역구분망(141) 및 착용지역구분망(143)의 가중치를 수정하는 학습을 수행하는 학습을 수행한다.
즉, S830 단계에서 학습부(200)는 가상미착용영상(50), 가상미착용지역영상(55), 가상착용영상(30) 및 가상착용지역영상(35) 각각을 가상인 것으로 판별하도록 각각(30, 35, 50, 55)에 대한 기댓값을 예컨대, 'real = 0.40' 및 'fake = 0.60'으로 설정한다. 그런 다음, 학습부(200)는 가상미착용영상(50), 가상미착용지역영상(55), 가상착용영상(30) 및 가상착용지역영상(35) 각각을 대응하는 미착용전역구분망(161), 미착용지역구분망(163), 착용전역구분망(141) 및 착용지역구분망(143)에 입력하고, 각각(161, 163, 141, 143)의 출력값을 얻는다. 그리고 착용전역구분망(141), 착용지역구분망(143), 미착용전역구분망(161) 및 미착용지역구분망(163) 각각의 출력값과 기댓값과의 차이인 손실값이 최소가 되도록 역확산 알고리즘을 이용하여 착용생성망(130) 및 미착용생성망(150)의 가중치를 고정한 상태에서 착용전역구분망(141), 착용지역구분망(143), 미착용전역구분망(161) 및 미착용지역구분망(163) 각각의 가중치를 수정한다.
다음으로, 학습부(200)는 S840 단계에서 미착용전역구분망(161) 및 미착용지역구분망(163)하여금 가상미착용영상(50) 및 가상미착용지역영상(55)을 원본(real)인 것으로 판별하고, 착용전역구분망(141) 및 착용지역구분망(143)하여금 가상착용영상(30) 및 가상착용지역영상(35)을 원본인 것으로 판별하도록 미착용생성망(150) 및 착용생성망(130)의 가중치를 수정하는 학습을 수행한다.
즉, S840 단계에서 학습부(200)는 가상착용영상(30), 가상착용지역영상(35), 가상미착용영상(50) 및 가상미착용지역영상(55) 각각을 원본인 것으로 판별하도록, 각각(30, 35, 50, 55)에 대한 기댓값을 예컨대, 'real = 0.60' 및 'fake = 0.40'으로 설정한다. 그런 다음, 학습부(200)는 가상착용영상(30), 가상착용지역영상(35), 가상미착용영상(50) 및 가상미착용지역영상(55) 각각을 대응하는 착용전역구분망(141), 착용지역구분망(143), 미착용전역구분망(161) 및 미착용지역구분망(163)에 입력하고, 각각(141, 143, 161, 163)의 출력값을 얻는다. 그리고 착용전역구분망(141), 착용지역구분망(143), 미착용전역구분망(161) 및 미착용지역구분망(163) 각각의 출력값과 기댓값과의 차이인 손실값이 최소가 되도록 역확산 알고리즘을 이용하여 착용전역구분망(141), 착용지역구분망(143), 미착용전역구분망(161) 및 미착용지역구분망(163)의 가중치를 고정한 상태에서 착용생성망(130) 및 미착용생성망(150)의 가중치를 수정한다.
이와 같이, 역방향 학습은 미착용생성망(150)을 통해 가상미착용영상(50) 및 가상미착용지역영상(55)을 생성하고, 가상미착용영상(50)을 착용생성망(130)에 입력하여 착용생성망(130)을 통해 가상착용영상(30)과 가상착용지역영상(35)을 생성한다. 그리고 생성된 가상의 영상들(30, 35, 50, 55)에 대해 착용구분망(140) 및 미착용구분망(160)이 가상인 것으로 판별하고, 착용생성망(130) 및 미착용생성망(150)이 원본인 것으로 판별하도록 경쟁시킨다. 특히, 원본(20)이 아닌 가상으로 생성된 영상(50)을 이용하여 다시 역으로 원본(40)을 모사하는 가상의 영상(30)을 생성하기 때문에 학습을 통해 보다 자연스러운 가상의 영상(30)을 생성할 수 있도록 할 수 있다.
한편, 전술한 바와 같이, S700 및 S800 단계는 교번으로 반복하여 수행된다. 특히, 반복하여 수행되는 중 가중치의 변화가 없으면, 학습부(200)는 기댓값을 증가시켜 정방향 학습과 역방향 학습을 지속할 수 있다. 즉, 학습부(200)는 착용구분망(140) 및 미착용구분망(160)의 학습 시, 가상착용영상(30), 가상착용지역영상(35), 가상미착용영상(50) 및 가상미착용지역영상(55)에 대한 기댓값을 'real = 0.40' 및 'fake = 0.60'에서 'real = 0.30' 및 'fake = 0.70'과 같이 증가시킬 수 있다. 이는 착용구분망(140) 및 미착용구분망(160)이 가상착용영상(30), 가상착용지역영상(35), 가상미착용영상(50) 및 가상미착용지역영상(55)을 가상인 것으로 판별하도록 하는 기댓값을 증가시키는 것을 의미한다. 또한, 학습부(200)는 착용생성망(130) 및 미착용생성망(150)의 학습 시, 가상착용영상(30), 가상착용지역영상(35), 가상미착용영상(50) 및 가상미착용지역영상(55)에 대한 기댓값을 'real = 0.60' 및 'fake = 0.40'에서 'real = 0.70' 및 'fake = 0.30'과 같이 증가시킬 수 있다. 이는 착용생성망(130) 및 미착용생성망(150)이 착용구분망(140) 및 미착용구분망(160)으로 하여금 가상착용영상(30), 가상착용지역영상(35), 가상미착용영상(50) 및 가상미착용지역영상(55)을 원본인 것으로 판별하도록 하는 기댓값을 증가시키는 것을 의미한다. 한편, 학습부(200)는 기댓값을 최대(구분망 'real = 0.00' 및 'fake = 1.00', 생성망 'real = 1.00' 및 'fake = 0.00')로 증가시킨 후에도 구분망(120)과 생성망(110)의 가중치의 변화가 없으면, 학습을 완료할 수 있다.
전술한 바와 같은 학습이 완료된 후, 인공신경망(200)을 이용하여 가상으로 피팅을 수행할 수 있다. 이에 대해 설명하기로 한다. 도 20은 본 발명의 다른 실시예에 따른 인공신경망을 이용한 가상 피팅을 수행하기 위한 방법을 설명하기 위한 흐름도이다.
도 20을 참조하면, 피팅부(300)는 S910 단계에서 데이터를 입력받는다. 입력되는 데이터는 원본미착용영상(20) 혹은 원본착용영상(40)이 될 수 있다. 그러면, 피팅부(300)는 S920 단계에서 앞서 입력된 데이터가 원본미착용영상(20)인지 원본착용영상(40)인지 여부를 판별한다. 그리고 입력된 데이터가 원본착용영상(40)이면, S930 단계로 분기하고, 입력된 데이터가 원본미착용영상(20)이면, S940 단계로 분기한다.
입력된 데이터가 원본착용영상(40)인 경우, 피팅부(300)는 S930 단계에서 미착용생성망(150)을 이용하여 원본착용영상(40)으로부터 가상미착용영상(50)을 생성한다. 그런 다음, 피팅부(300)는 S940 단계에서 템플릿(1) 및 앞서 생성된 가상미착용영상(50)을 착용생성망(130)에 입력하여 착용생성망(130)을 통해 가상착용영상(30)을 생성한다.
한편, 입력된 데이터가 원본미착용영상(20)이면, 피팅부(300)는 S940 단계에서 템플릿(1) 및 입력된 원본미착용영상(20)을 착용생성망(130)에 입력하여 착용생성망(130)을 통해 가상착용영상(30)을 생성한다.
전술한 바와 같이, 가상착용영상(30)의 각 픽셀은 픽셀값뿐만 아니라 위치 정보를 포함한다. 이에 따라, 피팅부(300)는 S950 단계에서 가상착용영상(30)의 위치 정보를 이용하여 템플릿규격(2)을 도출한다. 이러한 템플릿규격(2)은 사용자에게 가장 적합한 사이즈의 안경 혹은 콘택트렌즈를 선택할 수 있도록 한다.
다음으로, 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 시스템에 대해서 설명하기로 한다. 도 21은 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 시스템을 설명하기 위한 도면이다. 도 21을 참조하면, 본 발명의 실시예에 따른 가상 피팅 시스템은 사용자장치(400) 및 피팅서버(500)를 포함한다.
사용자장치(400)는 사용자가 사용하는 다양한 종류의 장치가 될 수 있다. 예컨대, 사용자장치(400)는 스마트폰, 태블릿, 노트북, 퍼스널컴퓨터 등이 될 수 있다. 피팅서버(500)는 본 발명의 실시예에 따른 가상피팅모듈(10)을 포함하는 애플리케이션 서버 기능과, 사용자가 가상의 피팅을 위해 템플릿(1)을 선택할 수 있도록 하는 웹 페이지를 제공하는 웹 서버의 기능을 포함한다.
사용자장치(400)는 피팅서버(500)로 사용자가 선택한 템플릿(1), 사용자의 원본미착용영상(20) 혹은 원본착용영상(40)을 전송한다. 그러면, 피팅서버(500)는 사용자가 선택한 템플릿(1)의 안경 혹은 콘택트렌즈를 착용한 영상인 가상착용영상(30) 및 템플릿규격(2)을 생성하고, 생성된 가상착용영상(30) 및 템플릿규격(2)을 사용자장치(400)로 전송한다. 그러면, 사용자장치(400)는 가상착용영상(30)을 표시하여 사용자가 선택한 템플릿(1)을 착용했을 때 자신의 모습을 확인할 수 있도록 한다.
그러면, 본 발명의 실시예에 따른 사용자장치(100)에 대해 보다 상세하게 설명하기로 한다. 도 22는 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 사용자장치의 구성을 설명하기 위한 블록도이다. 도 23은 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 사용자장치의 구성을 설명하기 위한 도면이다. 도 22를 참조하면, 본 발명의 실시예에 따른 사용자장치(400)는 3D센서부(410), 카메라부(420), 통신부(430), 입력부(440), 표시부(450), 저장부(460) 및 제어부(470)를 포함한다.
3D센서부(410)는 비접촉 방식으로 사람, 안경, 콘택트렌즈 등을 포함하는 객체에 대한 3차원 좌표를 획득하기 위한 센서이다. 3D센서부(410)는 카메라부(120)의 파라미터에 동기되어 카메라부(120)가 촬영한 영상의 픽셀 좌표에 대응하는 3차원 좌표를 검출한다. 3D센서부(410)는 카메라부(120)의 촬영시마다, 3차원 좌표를 검출하고, 검출된 3차원 좌표를 제어부(470)로 전달한다. 3D센서부(410)는 레이저, 적외선, 가시광 등을 이용하는 다양한 방식의 센서를 이용할 수 있다. 이러한 3D센서부(410)는 TOP(Time of Flight), 위상변위(Phase-shift) 및 Online Waveform Analysis 중 어느 하나를 이용하는 레이저 방식 3차원 스캐너, 광 삼각법을 이용하는 레이저 방식 3차원 스캐너, 백색광 혹은 변조광을 이용하는 광학방식 3차원 스캐너, Handheld Real Time 방식의 PHOTO, 광학방식 3차원 스캐너, Pattern Projection 혹은 Line Scanning을 이용하는 광학방식, 레이저 방식 전신 스캐너, 사진 측량(Photogrammetry)을 이용하는 사진방식 스캐너, 키네틱(Kinect Fusion)을 이용하는 실시간(Real Time) 스캐너 등을 예시할 수 있다.
카메라부(420)는 영상을 촬영하기 위한 것으로, 렌즈, 이미지 센서를 포함한다. 이미지 센서는 피사체에서 반사되는 빛을 입력받아 전기신호로 변환하며, CCD(Charged Coupled Device), CMOS(Complementary Metal-Oxide Semiconductor) 등을 기반으로 구현될 수 있다. 카메라부(420)는 아날로그-디지털 변환기(Analog to Digital Converter)를 더 포함할 수 있으며, 이미지 센서에서 출력되는 전기신호를 디지털 수열로 변환하여 제어부(470)로 출력할 수 있다.
도 23을 참조하면, 카메라부(420)의 3차원 좌표계는 카메라부(420)의 초점(렌즈의 중심)을 원점(Oc), 카메라의 정면 광학축 방향을 Z(Zc)축, 카메라 위아래 방향을 Y(Yc)축, 좌우 방향을 X(Xc)축으로 설정한다. 카메라 좌표계(10) 상에서 Z축(Zc)을 광학축이라고 한다. 본 발명의 실시예에서 3D센서(410) 및 카메라부(420)의 초점은 동일한 Xc-Yc평면상에 위치한다. 즉, Zc 값은 동일하며, Xc 및 Yc의 값만 상이하다. 그리고 광학축은 서로 평행하게 배치된다고 가정한다. 픽셀 좌표계(Pixel Coordinate System: PCS)는 본 발명의 실시예에 따른 모든 영상(20, 30, 40, 50)의 각 픽셀의 좌표계이며, 2차원의 좌표(x, y)이다. 픽셀 좌표계는 좌우 방향을 x축(x)으로 위아래 방향을 y축(y)로 설정한다. 이러한 픽셀 좌표계(30)의 x축(x) 및 y축(y)에 의해 결정되는 평면을 이미지 평면이라 한다. 도시된 바와 같이, 픽셀 좌표계의 원점(P0)은 FOV의 좌측 상단에 위치한다. 3D센서부(410) 및 카메라부(420)의 내부 파라미터는 초점 거리(fx, fy) 및 주점 거리(cx, cy)를 포함한다. 여기서, 초점 거리(fx, fy)는 렌즈의 중심으로부터 이미지 센서까지의 거리이다. 초점 거리를 하나의 값 f가 아닌 fx, fy로 구분하는 것은 센서(152, 162)의 물리적인 셀 간격이 가로 방향과 세로 방향이 다르기 때문이다. 다른 말로, 초점 거리(fx, fy)는 3D센서(410)의 경우, 3D센서부(410)의 렌즈의 중심으로부터 3D센서부(410) 3D센서까지의 거리이며, 카메라부(420)의 경우, 카메라부(420)의 렌즈의 중심으로부터 이미지 센서까지의 거리이다. 주점 거리(cx, cy)는 3D센서부(410)의 경우, 3D센서부(410)의 렌즈의 중심에서 3D센서에 내린 수선의 발의 좌표이다. 카메라부(420)의 경우, 렌즈의 중심으로부터 이미지센서에 내린 수선의 발의 좌표이다. 따라서 3D센서부(410)는 3D센서부(410)로부터 객체의 어느 한 픽셀 Pr에 대한 거리(벡터)를 통해 3차원 좌표를 획득하고, 획득한 거리를 초점 거리 및 주점 거리를 이용하여 카메라부(420)와 원점(Oc)을 기준으로 하는 3차원 좌표에 매핑할 수 있다. 이에 따라, 카메라부(420)가 촬영한 영상의 픽셀 좌표에 3D센서부(410)가 획득한 3차원 좌표를 카메라부(420)의 3차원 좌표로 변환하여 매핑할 수 있다.
통신부(430)는 피팅서버(500)와 통신하기 위한 수단이다. 통신부(430)는 네트워크를 통해 사용자 장치(200)와 통신할 수 있다. 통신부(430)는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF(Radio Frequency) 송신기(Tx) 및 수신되는 신호를 저 잡음 증폭하고 주파수를 하강 변환하는 RF 수신기(Rx)를 포함할 수 있다. 그리고 통신부(430)는 송신되는 신호를 변조하고, 수신되는 신호를 복조하는 모뎀(Modem)을 포함할 수 있다.
입력부(440)는 사용자장치(400)를 제어하기 위한 사용자의 키 조작을 입력받고 입력 신호를 생성하여 제어부(470)에 전달한다. 입력부(440)는 사용자장치(400)를 제어하기 위한 각 종 키들을 포함할 수 있다. 입력부(440)는 표시부(450)가 터치스크린으로 이루어진 경우, 각 종 키들의 기능이 표시부(450)에서 이루어질 수 있으며, 터치스크린만으로 모든 기능을 수행할 수 있는 경우, 입력부(440)는 생략될 수도 있다.
표시부(450)는 사용자장치(400)의 메뉴, 입력된 데이터, 기능 설정 정보 및 기타 다양한 정보를 사용자에게 시각적으로 제공한다. 표시부(450)는 사용자장치(400)의 부팅 화면, 대기 화면, 메뉴 화면, 등의 화면을 출력하는 기능을 수행한다. 특히, 표시부(450)는 본 발명의 실시예에 따른 가상의 피팅 영상을 화면으로 출력하는 기능을 수행한다. 이러한 표시부(450)는 액정표시장치(LCD, Liquid Crystal Display), 유기 발광 다이오드(OLED, Organic Light Emitting Diodes), 능동형 유기 발광 다이오드(AMOLED, Active Matrix Organic Light Emitting Diodes) 등으로 형성될 수 있다. 한편, 표시부(450)는 터치스크린으로 구현될 수 있다. 이러한 경우, 표시부(450)는 터치센서를 포함한다. 터치센서는 사용자의 터치 입력을 감지한다. 터치센서는 정전용량 방식(capacitive overlay), 압력식, 저항막 방식(resistive overlay), 적외선 감지 방식(infrared beam) 등의 터치 감지 센서로 구성되거나, 압력 감지 센서(pressure sensor)로 구성될 수도 있다. 상기 센서들 이외에도 물체의 접촉 또는 압력을 감지할 수 있는 모든 종류의 센서 기기가 본 발명의 터치센서로 이용될 수 있다. 터치센서는 사용자의 터치 입력을 감지하고, 감지 신호를 발생시켜 제어부(470)로 전송한다. 특히, 표시부(450)가 터치스크린으로 이루어진 경우, 입력부(440) 기능의 일부 또는 전부는 표시부(450)를 통해 이루어질 수 있다.
저장부(460)는 사용자장치(400)의 동작에 필요한 프로그램 및 데이터를 저장하는 역할을 수행한다. 특히, 저장부(460)는 사용자장치(400)의 사용에 따라 발생하는 사용자 데이터, 예컨대, 피팅서버(500)로부터 수신된 가상착용영상(30) 혹은 템플릿(1)을 저장하는 영역이다. 저장부(460)에 저장되는 각 종 데이터는 사용자의 조작에 따라, 삭제, 변경, 추가될 수 있다.
제어부(470)는 사용자장치(400)의 전반적인 동작 및 사용자장치(400)의 내부 블록들 간 신호 흐름을 제어하고, 데이터를 처리하는 데이터 처리 기능을 수행할 수 있다. 또한, 제어부(470)는 기본적으로, 사용자장치(400)의 각 종 기능을 제어하는 역할을 수행한다. 제어부(470)는 중앙처리장치(CPU: Central Processing Unit), 디지털신호처리기(DSP: Digital Signal Processor) 등을 예시할 수 있다. 이러한 제어부(470)의 동작에 대해서는 아래에서 더 상세하게 설명될 것이다.
다음으로, 본 발명의 실시예에 따른 피팅서버(500)에 대해 보다 상세하게 설명하기로 한다. 도 24는 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 피팅서버의 구성을 설명하기 위한 블록도이다. 도 23을 참조하면, 본 발명의 실시예에 따른 피팅서버(500)는 통신모듈(510), 저장모듈(520) 및 제어모듈(530)을 포함한다. 특히, 제어모듈(530)은 가상피팅모듈(10)을 포함한다.
통신모듈(510)은 예컨대, 네트워크를 통해 사용자장치(400)와 통신하기 위한 것이다. 통신모듈(510)은 네트워크를 통해 데이터를 송수신하기 위해 송신되는 신호를 변조하고, 수신되는 신호를 복조하는 모뎀(Modem)을 포함할 수 있다. 이러한 통신모듈(510)은 제어모듈(530)로부터 전달 받은 데이터를 네트워크를 통해 사용자장치(400)로 전송할 수 있다. 또한, 통신모듈(510)은 수신되는 데이터를 제어모듈(530)로 전달할 수 있다.
저장모듈(520)은 피팅서버(500)의 동작에 필요한 프로그램 및 데이터를 저장하는 역할을 수행한다. 특히, 저장모듈(520)은 본 발명의 실시예에 따른 복수의 템플릿(1)을 저장할 수 있다. 저장모듈(520)에 저장되는 각 종 데이터는 사용자의 조작에 따라 등록, 삭제, 변경, 추가될 수 있다.
제어모듈(530)은 피팅서버(500)의 전반적인 동작 및 피팅서버(500)의 내부 블록들 간 신호 흐름을 제어하고, 데이터를 처리하는 데이터 처리 기능을 수행할 수 있다. 제어모듈(530)은 중앙처리장치(CPU: Central Processing Unit), 디지털신호처리기(DSP: Digital Signal Processor) 등이 될 수 있다. 이러한 제어모듈(530)의 동작은 아래에서 더 상세하게 설명될 것이다.
다음으로, 전술한 시스템을 이용한 가상 피팅을 수행하기 위한 방법을 설명하기로 한다. 도 25는 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 방법을 설명하기 위한 흐름도이다. 도 26은 본 발명의 실시예에 따른 가상 피팅을 수행하기 위한 방법을 설명하기 위한 도면이다.
도 25를 참조하면, S1110 단계에서 사용자장치(400) 및 피팅서버(500)는 추천하고자 하는 템플릿(1), 즉, 안경 혹은 콘택트렌즈의 영상을 제공한다. 일 실시예에 따르면, 피팅서버(500)의 제어모듈(530)이 통신모듈(510)을 통해 저장모듈(520)에 저장된 복수의 템플릿(1)을 사용자장치(400)로 전송할 수 있다. 그러면, 사용자장치(400)의 제어부(470)는 통신부(430)를 통해 복수의 템플릿(1)을 수신하여 표시부(450)를 통해 표시할 수 있다. 다른 실시예에 따르면, 사용자장치(400)의 제어부(470)는 카메라부(410)를 통해 사용자의 얼굴 영상을 촬영하고, 촬영한 얼굴 영상을 피팅서버(500)로 전송할 수 있다. 그러면, 피팅서버(500)의 제어모듈(530)은 저장모듈(520)에 저장된 복수의 사용자의 원본착용영상(40), 가상착용영상(50) 중 사용자의 얼굴 형태와 유사도가 소정 수치 이상인 얼굴이 있는 영상(R)을 추출하고, 해당 영상(R)의 템플릿(1)을 식별한다. 그런 다음, 제어모듈(530)은 템플릿(1)을 포함하는 영상(R) 혹은 그 템플릿(1)을 사용자장치(400)로 전송할 수 있다. 그러면, 사용자장치(400)의 제어부(470)는 통신부(430)를 통해 템플릿(1)을 포함하는 영상(R) 혹은 템플릿(1)을 수신하여 표시부(450)를 통해 표시할 수 있다.
사용자는 템플릿(1) 혹은 템플릿(1)을 포함하는 영상(R)을 보고 자신이 원하는 템플릿(1)을 선택할 수 있다. 사용자장치(400)의 제어부(470)는 S1120 단계에서 입력부(440) 또는 표시부(450)를 통해 사용자가 선택한 템플릿(1)을 식별할 수 있다. 그러면, 제어부(470)는 S1130 단계에서 카메라부(420)를 통해 사용자의 얼굴 영상을 촬영하고, 3D센서부(410)를 통해 얼굴 영상의 각 픽셀의 위치 정보를 생성하여 원본미착용영상(20) 혹은 원본착용영상(40)을 생성한다. 즉, 사용자가 안경 혹은 콘택트렌즈를 착용하고 있지 않은 경우, 원본미착용영상(20)이 생성되며, 사용자가 안경 혹은 콘택트렌즈를 착용하고 있는 경우, 원본착용영상(40)이 생성된다. 그런 다음, 제어부(470)는 S1140 단계에서 원본 영상, 즉, 원본미착용영상(20) 혹은 원본착용영상(40)과 사용자가 선택한 템플릿(1)을 피팅서버(500)로 전송한다.
피팅서버(500)의 제어모듈(530)은 가상피팅모듈(10)을 통해 S1150 단계에서 수신된 템플릿(1)과, 원본 영상, 즉, 원본미착용영상(20) 혹은 원본착용영상(40)으로부터 템플릿(1)을 착용한 가상착용영상(30)을 생성한다. 이때, 가상피팅모듈(10)의 피팅부(300)는 수신된 영상이 원본미착용영상(20)이면, 생성망(110) 혹은 착용생성망(130)을 이용하여 가상착용영상(30)을 생성하고, 원본착용영상(40)이면, 미착용생성망(150) 및 착용생성망(130)을 이용하여 가상착용영상(30)을 생성한다. 즉, 가상피팅모듈(10)의 피팅부(300)는 원본착용영상(40)인 경우, 원본착용영상(40)을 가상미착용영상(50)으로 변환한 후, 가상미착용영상(50)과 템플릿(1)을 이용하여 가상착용영상(30)을 생성한다.
가상착용영상(30)은 픽셀값뿐만 아니라 위치 정보를 포함하며, 제어모듈(530)은 S1160 단계에서 가상피팅모듈(10)을 통해 가상착용영상(30)의 위치 정보를 이용하여 템플릿규격(2)을 도출한다. 그런 다음, 제어모듈(530)은 S1170 단계에서 통신모듈(510)을 통해 가상착용영상(30) 및 템플릿규격(2)을 사용자장치(400)로 전송한다.
그러면, 사용자장치(400)의 제어부(470)는 통신부(430)를 통해 가상착용영상(30) 및 템플릿규격(2)을 수신하고, S1180 단계에서 가상착용영상(30)을 표시부(450)를 통해 표시할 수 있다. 가상착용영상(30)을 통해 사용자는 자신이 선택한 템플릿(1)을 착용한 자신의 모습을 확인할 수 있다. 해당 템플릿(1), 즉, 안경 혹은 콘택트렌즈가 자신에게 어울리는지 여부를 화면을 통해 직접 확인할 수 있다.
그리고 사용자의 선택이 있는 경우, 제어부(470)는 S1190 단계에서 템플릿규격(2)에 따라 템플릿(1)을 실물 크기의 영상을 생성하고, 생성한 실물 크기의 영상을 표시부(450)를 통해 표시한다. 이러한 화면예가 도 26에 도시되었다. 이와 같이, 제어부(470)는 템플릿(1)의 크기가 표시부(450) 보다 큰 경우에도 실물 크기의 영상을 생성하며, 스위핑(swiping) 등 사용자장치(400)의 조작을 통해 사용자가 실물 크기의 템플릿(1)을 확인할 수 있도록 한다.
한편, 앞서 설명된 본 발명의 실시예에 따른 다양한 방법들은 다양한 컴퓨터수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 와이어뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 와이어를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 균등론에 따라 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.
100: 인공신경망 110: 생성망
120: 구분망 121: 전역구분망
123: 지역구분망 130: 착용생성망
140: 착용구분망 141: 착용전역구분망
143: 착용지역구분망 150: 미착용생성망
160: 미착용구분망 161: 미착용전역구분망
163: 미착용지역구분망 200: 학습부
300: 피팅부
400: 사용자장치 500: 피팅장치

Claims (7)

  1. 순환 구조 인공신경망을 이용한 가상 피팅을 수행하기 위한 장치에 있어서,
    안경 혹은 콘택트렌즈의 영상인 템플릿 및 사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 원본미착용영상 또는 가상미착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 가상착용영상을 생성하는 착용생성망;
    사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 원본착용영상 또는 가상착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 사용자가 안경 혹은 콘택트렌즈를 미착용한 영상인 가상미착용영상을 생성하는 미착용생성망;
    상기 가상착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 상기 가상착용영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 착용구분망;
    상기 가상미착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 상기 가상미착용영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 미착용구분망; 및
    상기 가상착용영상 및 상기 가상미착용영상이 가상인 것으로 판별하도록 기댓값을 설정한 후, 설정된 기댓값과 상기 착용구분망 및 상기 미착용구분망의 출력값의 차이가 최소가되도록 상기 착용구분망 및 상기 미착용구분망의 가중치를 수정하고, 상기 가상착용영상 및 상기 가상미착용영상이 원본인 것으로 판별하도록 기댓값을 설정한 후, 설정된 기댓값과 상기 착용구분망 및 상기 미착용구분망의 출력값의 차이가 최소가되도록 상기 착용생성망 및 상기 미착용생성망의 가중치를 수정하는 학습을 수행하는 학습부;를 포함하며,
    상기 복수의 연산은 컨볼루션, 다운샘플링, 업샘플링 및 디컨불루션 연산 중 적어도 하나를 포함하며,
    상기 복수의 연산 각각은 소정의 행렬로 이루어진 필터를 이용하며,
    상기 가중치는 상기 행렬의 원소의 값들인 것을 특징으로 하는 가상 피팅을 수행하기 위한 장치.
  2. 제1항에 있어서,
    상기 원본착용영상이 입력되면, 상기 미착용생성망을 통해 가상미착용영상을 생성하고, 상기 착용생성망을 통해 생성된 가상미착용영상으로부터 가상착용영상을 생성하는 피팅부;를 더 포함하는 것을 특징으로 하는 가상 피팅을 수행하기 위한 장치.
  3. 제2항에 있어서,
    상기 원본미착용영상 및 상기 가상착용영상은 각 픽셀의 픽셀값과 각 픽셀의 위치 정보를 포함하며, 상기 피팅부는 상기 생성된 가상착용영상의 위치 정보를 이용하여 안경 혹은 콘택트렌즈의 사이즈를 나타내는 템플릿규격을 생성하는 것을 특징으로 하는 가상 피팅을 수행하기 위한 장치.
  4. 제1항에 있어서,
    상기 학습부는 상기 학습 시,
    상기 착용생성망, 상기 미착용생성망, 상기 착용구분망 및 상기 미착용구분망의 가중치의 변화가 없으면, 상기 기댓값을 증가시켜 설정한 후, 상기 학습을 반복하는 것을 특징으로 하는 가상 피팅을 수행하기 위한 장치.
  5. 제1항에 있어서,
    상기 착용구분망은
    상기 가상착용영상에 대해 가중치가 적용되는 복수의 연산을 통해 상기 가상착용영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 착용전역구분망; 및
    상기 가상착용영상으로부터 추출되는 눈, 코, 귀와, 안경 혹은 콘택트렌즈를 포함하는 소정 크기의 영상인 가상착용지역영상에 대해 가중치가 적용되는 복수의 연산을 통해 상기 가상착용지역영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 착용지역구분망;을 포함하며,
    상기 미착용구분망은
    상기 가상미착용영상에 대해 가중치가 적용되는 복수의 연산을 통해 상기 가상미착용영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 미착용전역구분망; 및
    상기 가상미착용영상으로부터 추출되는 눈, 코, 귀와, 안경 혹은 콘택트렌즈를 포함하는 소정 크기의 영상인 가상미착용지역영상에 대해 가중치가 적용되는 복수의 연산을 통해 상기 가상미착용지역영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 미착용지역구분망;을 포함하는 것을 특징으로 하는 가상 피팅을 수행하기 위한 장치.
  6. 안경 혹은 콘택트렌즈의 영상인 템플릿 및 사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 원본미착용영상 또는 가상미착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 가상착용영상을 생성하는 착용생성망과, 사용자가 안경 혹은 콘택트렌즈를 착용한 영상인 원본착용영상 또는 가상착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 사용자가 안경 혹은 콘택트렌즈를 미착용한 영상인 가상미착용영상을 생성하는 미착용생성망과, 상기 가상착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 상기 가상착용영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 착용구분망과, 상기 가상미착용영상에 대해 가중치가 적용되는 복수의 연산을 수행하여 상기 가상미착용영상이 원본인지 혹은 가상의 것인지 여부를 출력하는 미착용구분망을 포함하는 순환 구조 인공신경망을 이용한 가상 피팅을 수행하기 위한 방법에 있어서,
    상기 가상착용영상 및 상기 가상미착용영상이 가상인 것으로 판별하도록 기댓값을 설정하는 단계;
    상기 가상인 것으로 판별하도록 설정된 기댓값과 상기 착용구분망 및 상기 미착용구분망의 출력값의 차이가 최소가되도록 상기 착용구분망 및 상기 미착용구분망의 가중치를 수정하는 단계;
    상기 가상착용영상 및 상기 가상미착용영상이 원본인 것으로 판별하도록 기댓값을 설정하는 단계;
    상기 원본인 것으로 판별하도록 설정된 기댓값과 상기 착용구분망 및 상기 미착용구분망의 출력값의 차이가 최소가되도록 상기 착용생성망 및 상기 미착용생성망의 가중치를 수정하는 단계;를 포함하며,
    상기 복수의 연산은 컨볼루션, 다운샘플링, 업샘플링 및 디컨불루션 연산 중 적어도 하나를 포함하며,
    상기 복수의 연산 각각은 소정의 행렬로 이루어진 필터를 이용하며,
    상기 가중치는 상기 행렬의 원소의 값들인 것을 특징으로 하는 가상 피팅을 수행하기 위한 방법.
  7. 제6항에 따른 가상 피팅을 수행하기 위한 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
KR1020180037555A 2018-03-30 2018-03-30 순환 구조 인공신경망을 이용한 가상 피팅을 수행하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 KR102039166B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180037555A KR102039166B1 (ko) 2018-03-30 2018-03-30 순환 구조 인공신경망을 이용한 가상 피팅을 수행하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180037555A KR102039166B1 (ko) 2018-03-30 2018-03-30 순환 구조 인공신경망을 이용한 가상 피팅을 수행하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Publications (2)

Publication Number Publication Date
KR20190114603A KR20190114603A (ko) 2019-10-10
KR102039166B1 true KR102039166B1 (ko) 2019-10-31

Family

ID=68206519

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180037555A KR102039166B1 (ko) 2018-03-30 2018-03-30 순환 구조 인공신경망을 이용한 가상 피팅을 수행하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Country Status (1)

Country Link
KR (1) KR102039166B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102091643B1 (ko) * 2018-04-23 2020-03-20 (주)이스트소프트 인공신경망을 이용한 안경 착용 영상을 생성하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101520778B1 (ko) 2014-11-28 2015-05-18 (주) 뷰엠테크놀로지 콘택트렌즈 가상 피팅 방법, 장치 및 이 방법을 실행시키는 컴퓨터 프로그램

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100050052A (ko) * 2008-11-05 2010-05-13 김영준 안경 가상 착용 방법
KR20130103153A (ko) 2012-03-09 2013-09-23 주식회사 퍼비스코리아 고객 맞춤형 안경 및 콘택트렌즈 버추얼 피팅 방법 및 그 시스템
KR20170050465A (ko) * 2015-10-30 2017-05-11 에스케이텔레콤 주식회사 얼굴 인식 장치 및 방법
KR101998361B1 (ko) * 2016-06-01 2019-07-10 가천대학교 산학협력단 카메라 영상의 얼굴 인식 방법
KR101913750B1 (ko) * 2016-08-10 2018-10-31 주식회사 원더풀플랫폼 패션 코디네이션 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101520778B1 (ko) 2014-11-28 2015-05-18 (주) 뷰엠테크놀로지 콘택트렌즈 가상 피팅 방법, 장치 및 이 방법을 실행시키는 컴퓨터 프로그램

Also Published As

Publication number Publication date
KR20190114603A (ko) 2019-10-10

Similar Documents

Publication Publication Date Title
KR102134476B1 (ko) 인공신경망을 이용한 가상 피팅 시스템, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
US11644898B2 (en) Eye tracking method and system
CN103310186B (zh) 校正图像中用户的注视方向的方法和便携式终端
US10325184B2 (en) Depth-value classification using forests
CN106255978A (zh) 面部表情跟踪
CN111767866B (zh) 一种人体模型创建方法、装置、电子设备及存储介质
CN111242090A (zh) 基于人工智能的人脸识别方法、装置、设备及介质
KR102091643B1 (ko) 인공신경망을 이용한 안경 착용 영상을 생성하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
KR102039164B1 (ko) 다중 구조 인공신경망을 이용한 가상 피팅을 수행하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
KR102039166B1 (ko) 순환 구조 인공신경망을 이용한 가상 피팅을 수행하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
KR101121712B1 (ko) 시선 경로 제공장치
KR102274581B1 (ko) 개인화된 hrtf 생성 방법
CN106461982A (zh) 用于确定至少一个行为参数的方法
KR102039171B1 (ko) 인공신경망을 이용한 거울형 가상 피팅 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
CN117981338A (zh) 用于底片快门滞后捕获的低功率融合
KR102197620B1 (ko) 아웃도어 의류의 통계 정보를 제공하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
CN114677737A (zh) 生物信息识别方法、装置、设备及介质
JP2022095332A (ja) 学習モデル生成方法、コンピュータプログラム及び情報処理装置
KR102078458B1 (ko) 핸즈프리 안경형 보청장치, 이를 제어하기 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
WO2023119968A1 (ja) 3次元座標算出方法及び3次元座標算出装置
KR102184397B1 (ko) 인공신경망을 이용한 로봇 작업의 위험 상황을 제어하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
JP2023032243A (ja) 識別モデル生成装置、識別装置、識別モデル生成方法、識別方法、プログラム
KR20220075984A (ko) 콘택트렌즈 맞춤 추천 및 가상 피팅 시스템
CN115223238A (zh) 信息提示方法、装置、存储介质及电子设备
CN117724609A (zh) 基于面部信息追踪的交互方法及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right