KR102606904B1 - 실시간 영상통화 서비스 지원 방법 및 이를 위한 영상통화 지원 장치 - Google Patents

실시간 영상통화 서비스 지원 방법 및 이를 위한 영상통화 지원 장치 Download PDF

Info

Publication number
KR102606904B1
KR102606904B1 KR1020220080657A KR20220080657A KR102606904B1 KR 102606904 B1 KR102606904 B1 KR 102606904B1 KR 1020220080657 A KR1020220080657 A KR 1020220080657A KR 20220080657 A KR20220080657 A KR 20220080657A KR 102606904 B1 KR102606904 B1 KR 102606904B1
Authority
KR
South Korea
Prior art keywords
video call
user
face
call support
support device
Prior art date
Application number
KR1020220080657A
Other languages
English (en)
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 KR1020220080657A priority Critical patent/KR102606904B1/ko
Application granted granted Critical
Publication of KR102606904B1 publication Critical patent/KR102606904B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4782Web browsing, e.g. WebTV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game
    • 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/265Mixing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

본 발명은 실시간으로 영상통화 서비스를 지원하는 방법 및 이를 위한 영상통화 지원 장치에 관한 것으로, 구체적으로는 영상통화에 참여하는 사용자들이 각자 임의로 선택한 얼굴로 자신의 얼굴영상을 바꾼 채 실시간 영상통화를 할 수 있도록 한 방법 및 장치에 관한 것이다.

Description

실시간 영상통화 서비스 지원 방법 및 이를 위한 영상통화 지원 장치{REAL-TIME VIDEO CALL SERVICE SUPPORT METHOD AND VIDEO CALL SUPPORT DEVICE FOR THE SAME}
본 발명은 실시간으로 영상통화 서비스를 지원하는 방법 및 이를 위한 영상통화 지원 장치에 관한 것으로, 구체적으로는 영상통화에 참여하는 사용자들이 각자 임의로 선택한 얼굴로 자신의 얼굴영상을 바꾼 채 실시간 영상통화를 할 수 있도록 한 방법 및 장치에 관한 것이다.
음성만으로 이야기를 주고 받는 음성통화 외에 서로 간의 얼굴을 화면으로 보면서 이야기를 주고 받는 영상통화 서비스도 사용률이 크게 증가하고 있다. 이러한 사용률 증가세는 비교적 대용량의 비디오 데이터를 매우 빠르게 전송할 수 있는 네트워크 인프라가 갖추어지면서 더욱 두드러지고 있다.
또한 사용자들의 얼굴을 다른 얼굴로 합성하여 가상의 인물을 생성하거나, 이렇게 생성된 가상의 인물을 활용하여 다양한 콘텐츠에 활용하는 서비스도 많이 제공되고 있는데, 이와 같은 얼굴 합성 기술은 앞서 언급한 영상통화 서비스에도 접목되어 많은 사용자들의 이용이 이어지고 있다.
그러나 종래의 얼굴 합성이 가능한 영상통화 서비스의 경우 프레임을 주고 받는 과정에서 네트워크 지연 현상이 발생하여 실시간으로 영상통화를 하기에는 무리가 있었다.
본 발명은 이러한 문제점에 착안하여 제안된 것으로, WebRTC 프로토콜을 활용함으로써 얼굴 합성 기능을 갖춘 채로 영상통화가 끊김이나 지연 없이 이루어질 수 있도록 하기 위한 것이다.
한국공개특허공보 제10-2021-0052424호 (2021.05.10 공개)
본 발명은 GPU 하드웨어가 구비된 영상통화 지원 장치, 그리고 WebRTC 프로토콜의 적용을 통해 끊김이나 지연 없는 얼굴 합성 실시간 영상통화가 가능하게 하는 것을 목적으로 한다.
특히 WebRTC 기술을 차용해 옴으로써 기존의 서버-클라이언트 구조로 이루어져 있던 영상통화 시스템보다 빠른 속도의 통신이 이루어지게 하는 것을 목적으로 한다.
또한 본 발명은 영상통화 지원 장치 및 WebRTC 기술을 활용하여 P2P 또는 다자간 영상통화가 가능한 환경을 제공하는 것을 목적으로 한다.
한편, 본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
위와 같은 문제점을 해결하기 위하여, 본 발명에 따른 영상통화 지원 장치가 실시간 영상통화 서비스를 지원하는 방법은, (a)임의 사용자 단말기의 영상통화 요청을 수신하는 단계; (b)상기 영상통화 지원 장치와 상기 사용자 단말기 간 데이터 송수신을 위한 채널을 구축하는 단계; (c)상기 사용자 단말기로부터 사용자 영상을 수신하는 단계; (d)상기 사용자 영상 내 사용자 얼굴면을 상기 사용자 단말기에 의해 선택된 특정 타겟얼굴면으로 스왑하는 단계; 및 (e)상기 타겟얼굴면이 포함된 합성영상을 상기 사용자 단말기로 전송하는 단계;를 포함할 수 있다.
또한, 상기 실시간 영상통화 서비스 지원 방법에 있어서 상기 영상통화 지원 장치는 GPU를 포함하며, 상기 영상통화 지원 장치 및 사용자 단말기 간 통신 프로토콜은 WebRTC 프로토콜에 따르는 것을 특징으로 할 수 있다.
또한, 상기 실시간 영상통화 서비스 지원 방법에 있어서 상기 사용자 얼굴면을 타겟얼굴면으로 스왑하는 단계는, 학습된 인공지능 알고리즘이 활용되는 것을 특징으로 하되, 상기 학습된 인공지능 알고리즘은 적어도 얼굴면합성모델, 및 얼굴면세그멘팅모델을 포함하는 것을 특징으로 할 수 있다.
또한, 상기 실시간 영상통화 서비스 지원 방법에 있어서 상기 (a)단계는, 영상통화 지원 장치가 복수 개의 사용자 단말기들로부터 영상통화 요청들을 수신하는 단계이고, 상기 (b)단계는, 상기 영상통화 지원 장치와 복수 개의 사용자 단말기들 간 데이터 송수신을 위한 채널을 구축하는 단계이고, 상기 (c)단계는, 상기 복수 개의 사용자 단말기들로부터 각각 사용자 영상 - 상기 사용자 영상은 사용자 얼굴면을 포함함 - 들을 수신하는 단계이고, 상기 (d)단계는, 상기 각 사용자 영상들 내 사용자 얼굴면을 상기 각 사용자 단말기들에 의해 선택된 타겟얼굴면으로 스왑하는 단계이고, 상기 (e)단계는, 상기 타겟얼굴면이 포함된 합성영상들을 사용자 단말기들로 전송하는 단계인 것을 특징으로 할 수 있다.
한편, 본 발명의 또 다른 실시예에 따른 영상통화 지원 클러스터 - 상기 영상통화 지원 클러스터는, 복수 개의 영상통화 지원 장치들을 포함함 - 가 다자간 실시간 영상통화 서비스를 지원하는 방법은, 프록시 서버를 통해 복수 개의 사용자 단말기들로부터의 영상통화 요청들을 수신하는 단계; 상기 영상통화 지원 클러스터 내 영상통화 지원 장치들이 상기 사용자 단말기들로부터의 영상통화 요청들을 할당 받는 단계; 각 영상통화 지원 장치, 및 각 영상통화 지원 장치에 매칭되는 사용자 단말기 간 데이터 송수신을 위한 채널을 구축하는 단계; 각 사용자 단말기들로부터 사용자 영상 - 상기 사용자 영상은 사용자 얼굴면을 포함함 - 들을 수신하는 단계; 상기 각 영상 내 사용자 얼굴면을 상기 각 사용자 단말기들에 의해 선택된 특정 타겟얼굴면으로 스왑하는 단계; 및 상기 타겟얼굴면이 포함된 합성영상들을 사용자 단말기들로 전송하는 단계;를 포함할 수 있다.
또한 상기 다자간 실시간 영상통화 서비스를 지원하는 방법에 있어서 상기 영상통화 지원 장치들이 상기 영상통화 요청들을 할당 받는 단계는, 상기 프록시 서버에서의 할당 알고리즘 실행에 따라 이루어지는 것을 특징으로 할 수 있다.
또한 상기 다자간 실시간 영상통화 서비스를 지원하는 방법에 있어서 각 영상통화 지원 장치, 및 각 영상통화 지원 장치에 매칭되는 사용자 단말기 간 데이터 송수신을 위한 채널을 구축하는 단계는 WebRTC 프로토콜에 따르는 것을 특징으로 할 수 있다.
또한 상기 다자간 실시간 영상통화 서비스를 지원하는 방법에 있어서 상기 각 사용자 단말기들로부터 사용자 영상을 수신하는 단계는, 특정 사용자 단말기와 매칭되는 특정 영상통화 지원 장치가, 상기 특정 사용자 단말기의 웹브라우져를 통해 사용자 영상을 수신하는 단계인 것을 특징으로 할 수 있다.
한편, 본 발명의 또 다른 실시예에 따른 영상통화 지원 장치는, 임의 사용자 단말기로부터의 영상통화 요청을 수신하고, 상기 사용자 단말기와의 데이터 송수신을 위한 채널을 구축하며, 상기 사용자 단말기로부터 사용자 영상을 수신하고, 상기 사용자 영상 내 사용자 얼굴면을 타겟얼굴면으로 스왑한 영상을 사용자 단말기로 전송하는 통신부; 상기 사용자 영상 내 사용자 얼굴면을 상기 사용자 단말기의 사용자에 의해 선택된 타겟얼굴면으로 스왑하는 얼굴면합성부; 및 상기 통신부 및 얼굴면합성부를 제어하는 제어부;를 포함할 수 있다.
또한, 상기 영상통화 지원 장치에 있어서 상기 통신부는 복수 개의 사용자 단말기들로부터 영상통화 요청들을 수신하고, 복수 개의 사용자 단말기들과의 데이터 송수신을 위한 채널들을 구축하며, 각 사용자 단말기들로부터 사용자 영상들을 수신하고, 상기 사용자 영상들 내 사용자 얼굴면을 각 사용자 단말기들에 의해 선택된 타겟얼굴면으로 스왑한 영상들을 사용자 단말기들로 전송하는 것을 특징으로 하며, 상기 얼굴면합성부는, 각 사용자 영상들 내 사용자 얼굴면을 각 사용자 단말기의 사용자에 의해 선택된 타겟얼굴면으로 스왑하는 것을 특징으로 할 수 있다.
한편, 본 발명의 또 다른 실시예에 따른 영상통화 지원 클러스터는, 상기 영상통화 지원 클러스터는 복수 개의 영상통화 지원 장치들을 포함하고, 상기 영상통화 지원 클러스터는, 복수 개의 사용자 단말기들로부터의 영상통화 요청들을 수신하고, 상기 복수 개의 영상통화 지원 장치들이 상기 사용자 단말기들로부터의 영상통화 요청들을 할당 받으며, 각 영상통화 지원 장치 및 이에 매칭되는 사용자 단말기 간 데이터 송수신을 위한 채널을 구축하고, 각 사용자 단말기들로부터 수신한 사용자 영상 내 사용자 얼굴면을 각 사용자 단말기들에 의해 선택된 타겟얼굴면으로 스왑한 후, 상기 타겟얼굴면이 포함된 합성영상들을 상기 사용자 단말기들로 전송하는 것을 특징으로 할 수 있다.
또한, 상기 영상통화 지원 클러스터에 있어서 상기 복수 개의 사용자 단말기들로부터의 영상통화 요청들은, 프록시 서버를 통하여 수신되는 것을 특징으로 할 수 있다.
또한, 상기 영상통화 지원 클러스터에 있어서 상기 복수 개 영상통화 지원 장치들로의 영상통화 요청 할당은, 상기 프록시 서버에서 수행되는 로드 밸런싱에 의해 이루어지는 것을 특징으로 할 수 있다.
본 발명에 따르면 사용자들이 끊김이나 지연 없이 영상통화 서비스를 이용할 수 있게 되며, 특히 얼굴 합성 기능까지도 실시간으로 사용할 수 있게 되는 효과가 있다.
또한 본 발명에 따르면 사용자들의 단말기 상에서는 고도의 데이터 처리 작업이 이루어지지 않게 되므로 리소스를 적게 소모하게 되며, 이에 따라 사용자 단말기들에 부담이 전가되지 않은 채 얼굴 합성 영상통화를 사용할 수 있게 되는 효과가 있다. 즉, 사용자 입장에서는 별도의 소프트웨어 설치나 GPU 인프라 구축 없이도 얼굴 합성 영상통화를 할 수 있게 되는 효과가 있다.
또한 본 발명을 전체 구현된 시스템 차원에서 바라보았을 때에는 GPU 인프라를 활용해 학습된 알고리즘의 기능을 API 서버 형태로 사용자들에게 제공할 수 있게 되며, 이를 통해 GPU 인프라 활용도를 극대화 할 수 있는 효과가 있다.
또한 본 발명은 얼굴 합성 신기술과 통신, 미디어 기술이 조화를 이루어 구현된 것으로, 영상회의, 라이브방송 등과 관련된 산업 전반에 다양하게 활용될 수 있다.
한편, 본 발명에 의한 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명에 따른 영상통화 서비스의 얼굴 합성 기능을 간략히 설명하기 위한 도면이다.
도 2는 종래방식에 따라 얼굴 합성 영상통화가 이루어지는 모습을 도시한 것이다.
도 3 및 도 4는 제1 실시예를 구현하기 위한 시스템 전반을 도시한 것이다.
도 5는 영상통화 지원 장치 내에서 얼굴면을 합성하는 과정을 도시한 것이다.
도 6은 본 발명의 제1 실시예를 구현하기 위한 시스템을 구체적으로 도시한 것이다.
도 7은 본 발명의 제1 실시예에 따른 실시간 영상통화 서비스 지원 방법을 순서에 따라 도시한 것이다.
도 8은 본 발명의 제2 실시예를 구현하기 위한 시스템을 도시한 것이다.
도 9는 본 발명의 제2 실시예에 따른 실시간 영상통화 서비스 지원 방법을 순서에 따라 도시한 것이다.
도 10은 본 발명의 제3 실시예를 구현하기 위한 시스템을 도시한 것이다.
도 11은 본 발명의 제3 실시예에 따른 실시간 영상통화 서비스 지원 방법을 순서에 따라 도시한 것이다.
본 발명의 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하의 상세한 설명에 의해 보다 명확하게 이해될 것이다. 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다.
본 명세서에서 개시되는 실시 예들은 본 발명의 범위를 한정하는 것으로 해석되거나 이용되지 않아야 할 것이다. 이 분야의 통상의 기술자에게 본 명세서의 실시예를 포함한 설명은 다양한 응용을 갖는다는 것이 당연하다. 따라서, 본 발명의 상세한 설명에 기재된 임의의 실시 예들은 본 발명을 보다 잘 설명하기 위한 예시적인 것이며 본 발명의 범위가 실시 예들로 한정되는 것을 의도하지 않는다.
도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한, 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.
또한, 어떤 구성요소들을 포함한다는 표현은 "개방형"의 표현으로서 해당 구성요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성요소들을 배제하는 것으로 이해되어서는 안 된다.
나아가 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급될 때에는, 그 다른 구성요소에 직접적으로 연결 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 한다.
이하에서는 도면들을 참조하여 본 발명의 각 실시 예들에 대해 살펴보기로 한다.
먼저 도 1은 본 발명에 따른 영상통화 서비스의 특징, 그 중에서도 특히 사용자의 얼굴을 합성하는 기능을 간략히 설명하기 위한 도면이다.
온라인을 통한 영상통화는 익히 알려져 있는 바와 같이 사용자 단말기(스마트폰, 데스크탑 등)예 구비되어 있는 촬영수단(카메라, 웹캠 등)으로 사용자 자신의 통화모습을 촬영하면 이 영상이 중간 과정을 거쳐 상대방 단말기로 전달되어 서로 얼굴을 마주 본 상태에서 통화를 할 수 있게 하는 서비스이다.
한편, 경우에 따라 사용자는 자신의 현재 모습을 상대방에게 보여주기 싫을 수 있으며, 또는 통화의 즐거움을 배가시키기 위해 자신의 얼굴이 아닌 다른 얼굴(ex. 캐릭터나 가상인물의 얼굴)을 합성하여 영상통화를 할 수도 있는데 본 발명에 따른 실시간 영상통화 서비스 지원 방법, 그리고 이를 위한 영상통화 지원 장치를 통해서는 바로 이렇게 얼굴 합성 기능을 이용하면서도 끊김 없이 실시간으로 영상통화를 이어나갈 수 있는 환경을 구현하고자 한 것이다.
얼굴 합성 기능을 영상통화 중에 사용하고자 할 때, 사용자는 바꾸고자 하는 얼굴면(타겟얼굴면)을 화면 상에서 직접 선택할 수 있으며, 이렇게 선택된 타겟얼굴면은 영상통화 지원 장치 상에서 상기 사용자의 영상에 합성된 후 다시 사용자 단말기, 및/또는 영상통화의 상대방 단말기에 전달될 수 있다. 도 1은 영상통화 지원 장치가 원본 영상으로부터 사용자의 얼굴면을 찾고(a), 이 얼굴면을 타겟얼굴면으로 스왑(b)하여 최종적으로 합성된 영상(더 정확하게는 합성된 프레임들)을 생성해 내는 과정을 간략히 도시한 것이다.
한편, 뒤에서 더 자세히 설명하겠지만 영상통화 지원 장치는 학습된 알고리즘들을 이용하여 얼굴면을 합성하게 되는데, 이러한 조건 속에서 상기 영상통화 지원 장치는 사용자가 애초 타겟얼굴면을 선택할 때에 합성이 가능한 타겟얼굴면들만을 화면 상에 선택 가능하게 제공함으로써 원활한 얼굴 합성 영상통화가 이루어지게 할 수도 있다. 이 과정에서 영상통화 지원 장치는 상기 사용자 단말기로부터 수신되는 영상을 미리 분석함으로써 원본 영상 내에서의 얼굴면 감지, 대체하여야 할 얼굴면 영역의 모양 및 크기 등을 파악할 수 있고, 이렇게 파악된 정보들을 토대로 영상통화 지원 장치가 기 학습한 알고리즘, 및/또는 기 저장된 타겟얼굴면들을 근거로 상기 사용자에게 몇몇 타겟얼굴면들을 후보로 제시할 수 있다.
다른 한편, 사용자로 하여금 직접 타겟얼굴면을 선택하게 하는 과정을 생략한 채 영상통화 지원 장치가 랜덤하게 임의의 타겟얼굴면을 선택하고, 이 타겟얼굴면을 원본 영상과 합성하여 영상통화 사용자들에게 제공할 수도 있다.
이상 도 1을 참고하여 본 발명에 따른 영상통화 서비스의 얼굴 합성 기능에 대해 살펴 보았다.
도 2는 종래방식에 따라 얼굴 합성 영상통화가 이루어지는 모습을 도시한 것이다. 종래방식은 ZeroMQ 프로토콜을 사용하여 단방향 푸시/풀 방식을 사용함에 따라 영상의 프레임을 송수신 하는 과정에서 지연이 발생하였으며, 프레임의 송수신을 위해 TCP 네트워크를 기반으로 전송 작업을 수행했기 때문에 얼굴 합성 영상통화가 실시간으로 서비스 되지 못하는 문제점이 있었다. 또한 종래방식은 GPU 인프라 상에서 별도로 프로그램을 구동시켜야만 했기에 사용자들이 쉽게 서비스를 이용할 수 없는 문제가 있었고, 다중사용자들 간 얼굴 합성 영상통화도 지원하지 못하였기 때문에 서버(S) 시스템 구성을 확장성 있게 설계할 수도 없었다.
종래방식의 여러 가지 문제점에 의해 사용자들은 영상통화 시 얼굴 합성 기능을 온전히 이용할 수 없었는데, 본 발명에서는 WebRTC 프로토콜을 도입함으로써 위와 같은 문제점들을 해소하고자 하였다.
도 3 및 도 4는 이러한 영상통화 서비스 지원 방법을 구현하기 위해 필요한 시스템 전반을 간략히 도시한 것이다.
도 3을 참고하여 시스템의 개략적인 소개를 하자면, 본 발명을 구현해 내기 위한 시스템은 크게 사용자 단말기(100), STUN/TURN서버(200), 그리고 GPU 인프라를 갖춘 영상통화 지원 장치(300)를 포함하며, 이 때 사용자 단말기(100)와 영상통화 지원 장치(300)는 WebRTC 프로토콜에 따라 피어투피어(peer-to-peer) 통신을 하는 것을 특징으로 한다.
WebRTC는 가능한 한 서버를 거치지 않은 채 피어투피어로 브라우저나 단말기 간에 데이터를 주고 받을 수 있도록 한 기술 중 하나로, 웹 상에서 실시간으로 미디어 스트림을 송수신 가능하게 해 준다. WebRTC는 시스템적 관점에서 피어들 간 연결을 도와주는 몇몇 서버들(예. STUN/TURN 서버, 시그널링 서버 등)에 의해 구현될 수 있으며, 또한 UDP(User Datagram Protocol) 기반의 스트리밍 방식을 채택하고 있다는 점에서도 특이점이 있다.
사용자 단말기(100)와 영상통화 지원 장치(300)는 ICE(Interactive Connectivity Establishment)메커니즘을 통해 영상 데이터(또는 임의 종류의 미디어)를 송수신하는 다이렉트 채널을 형성하며, 사용자 단말기(100)는 구비되어 있는 카메라(촬영수단), 그리고 WebRTC 프로토콜을 지원하는 웹 브라우저를 통해 영상통화 지원 장치(300)와 통신함으로써 얼굴 합성 기능 및 영상통화를 이용할 수 있다. 참고로 사용자 단말기(100)는 사용자가 보유하거나 소지하고 다니는 장치를 일컫는 것으로, 여기에는 스마트폰, PDA, 태블릿PC 등과 같이 휴대가 가능한 단말기, 데스크탑PC와 같은 고정형 단말기가 포함될 수 있다. 이러한 사용자 단말기(100)들은 모두 중앙처리유닛(CPU)과 메모리, 그리고 촬영수단인 카메라를 구비하고 있는 것을 전제로 한다.
다시 도 3을 참고할 때 영상통화 지원 장치(300)는 GPU 인프라를 갖추고 있으며, 이 때 GPU 인프라를 통해서는 얼굴 합성을 위해 얼굴면 합성 모델, 얼굴면 세그멘팅 모델 등의 알고리즘이 실행될 수 있다. 도 4는 도 3과 실질적으로 동일한 시스템을 다른 시각에서 도시한 것으로, 도 4에서는 사용자 단말기(100) 대신 제1 피어(101), 그리고 영상통화 지원 장치(300)는 제2 피어(301)로 도시하고 있으며, 또한 영상통화 지원 장치(300)는 내부적으로 얼굴면 합성부(350), 즉 얼굴 합성 기능을 실행시키기 위한 별도 구성을 포함할 수 있음을 도시하고 있다. 도 4에서 제1 피어(101) 및 제2 피어(301)로 도시를 한 것은 본 실시예에 따른 영상통화 서비스가 피어들 간 p2p 통신을 기반으로 이루어진다는 점을 강조하기 위함이다.
한편, 영상통화 지원 장치(300)는 GPU 인프라를 갖춘 것으로서 얼굴 합성 기능을 수행할 수 있는데, 도 4에서는 이렇게 얼굴 합성 기능을 수행하는 구성으로 얼굴면 합성부(350)로 도시하였다. 영상통화 지원 장치(300)는 합성을 수행할 데이터 세트, 예를 들어 가상의 얼굴면들을 DB화 해 둔 데이터 세트를 사용해 학습을 하고 이 학습 과정을 통해 얼굴면 합성 모델, 및/또는 얼굴면 세그멘팅 모델 등의 알고리즘 모델들을 생성할 수 있다. 이러한 과정은 별도의 GPU 인프라 상에서 수행되는 것이 가능하며, 이에 따라 시스템을 효율적으로 나누거나 구성할 수 있는 효과가 있다. 또한, 영상통화 지원 장치(300)는 사용자 단말기(100)로부터 원본 프레임(original frame)을 수신하여 전처리(pre-processing)를 통해 합성을 위한 특징을 추출할 수 있으며, 이를 기반으로 합성 프레임(result frame)을 생성한 뒤 얼굴면 세그멘팅 모델을 통해 후처리(post-processing)함으로써 최종적으로 합성된 얼굴 영상을 생성할 수 있다.
도 5는 영상통화 지원 장치(300) 내에서 얼굴면을 합성하는 과정을 이해하기 쉽도록 도시한 것이다. 도 5를 참고할 때, 우측에는 영상통화 지원 장치(300)가 GPU 인프라를 활용하여 학습용 데이터 세트를 학습(L)할 수 있음이 도시되어 있으며, 이러한 학습 과정을 통해서는 얼굴면 합성 모델(M1), 및/또는 얼굴면 세그멘팅 모델(M2)이 생성될 수 있음이 도시되어 있다. 이렇게 학습의 결과물로 생성된 모델(알고리즘)들은 얼굴면을 합성하는 과정에서 로드(load)되어 사용된다. 참고로, 앞서 언급된 학습 과정은 반드시 영상통화 지원 장치(300)에서만 실행되어야 하는 것은 아니며, 별도의 장치, 더 정확하게는 데이터 세트를 학습할 수 있는 GPU, CPU를 갖춘 임의의 장치 상에서도 실행될 수 있음을 이해한다. 다시 말해, 위에서 언급된 학습 과정, 그리고 모델(알고리즘)들을 생성하는 과정은 반드시 WebRTC 프로토콜 기반의 통신을 수행하는 영상통화 지원 장치(300) 상에서만 이루어지는 것은 아니며, 타 장치에서 학습 및 모델 생성한 뒤 생성된 모델만을 영상통화 지원 장치(300)가 수신(또는 로드)하여 활용할 수 있도록 구현할 수도 있다. 이렇게 '학습'과 '영상통화 지원'을 별개의 장치로 나누어 하도록 하는 경우 영상통화 지원 장치(300)로서는 그 만큼의 로드를 덜 수 있는 효과가 있으며, 고차원의 데이터 세트 학습을 위해 고사양의 하드웨어를 갖출 필요가 없을 수 있다.
한편, 도 5의 좌측에는 전처리 단계, 스와핑 단계, 그리고 후처리 단계가 차례로 도시되어 있다. 먼저 전처리 단계는 사용자 단말기(100)로부터 수신한 원본 프레임(original frame)을 처리하는 단계로, 여기에는 얼굴면을 감지하는 과정(S1), 얼굴면을 생성하는 과정(S2), 얼굴면을 조정(align)하는 과정(S3)이 포함된다. 전처리가 완료된 후에는 얼굴면을 스와핑 하는 과정(S4)이 실행되는데, 이 과정에서는 앞서 학습에 의해 생성되었던 얼굴면 합성 모델(M1)이 로드된다. 스와핑 과정(S4)에서는 사용자가 선택한 타겟 얼굴면이 원본 프레임에서 감지, 생성, 조정된 얼굴면을 대체하는데 이 과정에서 얼굴면 합성 모델(M1)이 활용되는 것이다. 얼굴면 스왑(S4)이 이루어진 후에는 후처리 단계가 진행된다. 후처리 단계에는 스와핑 된 얼굴면을 조절(adjust)하는 과정(S5), 얼굴면이 합성되는 과정(S6)이 포함될 수 있으며, 특히 얼굴면 합성 과정(S6)에서는 얼굴면 세그멘팅 모델(M2)이 로드될 수 있다. 이처럼 본 발명에 따른 영상통화 지원 장치(300)는 학습된 모델(알고리즘)들을 활용하여 원본 프레임 내 사용자 얼굴면을 타겟 얼굴면으로 합성하는 과정들을 실행한다. 본 발명은 도 5에 도시되어 있는 전처리 단계, 스와핑 단계, 그리고 필요에 따른 후처리 단계까지가 실시간 영상통화가 가능할 정도로 빠르게 이루어질 수 있는 환경을 제공하며, 이는 영상통화 지원 장치(300) 내 갖추어져 있는 GPU 인프라를 통해 가능할 수 있다. 다시 한 번 강조하지만, 본 발명은 이렇게 GPU 인프라를 활용한 얼굴면 합성, 그리고 WebRTC 프로토콜을 활용한 빠른 데이터 송수신 환경을 통해 사용자들이 얼굴 합성 기능을 이용하면서도 끊김 없이 실시간 영상통화를 할 수 있게 하는 것을 특징으로 한다.
한편, 도 6은 본 발명의 제1 실시예에 따른 시스템을 보다 구체적으로 도시한 것으로, WebRTC 프로토콜이 적용되는 모습이 보다 상세하게 드러나도록 도시한 것이다.
도 6을 참고할 때, 사용자 단말기(100)는 카메라, 그리고 웹 브라우저를 포함할 수 있음이 도시되어 있으며, 사용자 단말기(100)와 영상통화 지원 장치(300) 사이에는 WebRTC 프로토콜에 따른 p2p 통신을 구현해 내기 위해 필요한 주변 장치들(서버들(150, 200A,B) 및 라우터(210)들)이 도시되어 있다.
주변 장치들에 대해 상세히 살펴보면 다음과 같다.
먼저 시그널링 서버(150)는 사용자 단말기(100)와 영상통화 지원 장치(300) 사이에서 연결 요청을 중계하는 역할을 하는 장치로, 사용자 단말기(100)가 영상통화 서비스 이용을 위해 요청을 발신하면 시그널링 서버(150)가 이를 수신하여 영상통화 지원 장치(300) 측에 전달하며, 영상통화 지원 장치(300)의 응답은 다시 시그널링 서버(150)를 통해 사용자 단말기(100) 측으로 전달된다.
STUN(Session Traversal Utilities for NAT) 서버(200A)는 각 피어의 퍼블릭 IP주소를 획득 및 제공하는 장치이다. p2p 통신을 위해서는 각 피어들이 자신의 퍼블릭 IP주소를 알고 있어야 하며, 이를 상대방 피어에 제공할 수 있어야 하는데, 각 피어들에게 퍼블릭 IP주소를 제공하는 것이 STUN 서버(200A) 이다. STUN 서버(200A)는 각 피어의 퍼블릭 IP주소를 찾아 제공하는 것 외에 p2p 연결을 방해하는 요소를 탐지하며 ICE를 보완하는 역할을 할 수 있다.
TURN(Traversal Using Relays around NAT) 서버(200B)는 p2p 연결이 제대로 되지 않았을 때를 대비하여 마련된 서버 장치, 또는 백업 장치로 이해될 수 있다. NAT 보안 정책이 너무 엄격하거나 NAT 순회를 위해 필요한 NAT 바인딩을 성공적으로 생성할 수 없는 경우 릴레이 역할을 하는 TURN 서버가 경유 사용된다.
이러한 환경에서 WebRTC는 크게 두 단계를 반드시 포함할 수 있는데, 가장 먼저 시그널링 단계에서는 SDP(Session Description Protocol)가 사용되어 p2p로 주고 받는 데이터 및 세션에 대한 정의가 이루어진다. 다음으로 커넥션 단계에서는 ICE(Interactive Connectivity Establishment)가 사용되어 p2p 간 다이렉트 통신을 위한 최적의 채널이 형성된다. 이 밖에 보안 단계에서의 DTLS(Datagram Transport Layer Security), SRTP(Secure Real-time Transport Protocol) 사용, 커뮤니케이션 단계에서의 RTP(Real-time transport Protocol), SCTP(Stream Control Transmission Protocol), RTPC(Real-time Transport Control Protocol)가 더 활용될 수 있다.
이상 도 3 내지 6을 참고하여 본 발명의 제1 실시예에 따른 영상통화 지원 방법을 구현하기 위한 시스템 구성에 대해 살펴 보았다.
도 7은 본 발명의 제1 실시예에 따른 실시간 영상통화 서비스 지원 방법을 순서에 따라 도시한 것이다.
도 7을 참고할 때, 제1 실시예에 따른 실시간 영상통화 서비스 지원 방법은 영상통화 지원 장치(300)가 임의의 사용자 단말기로부터 영상통화 요청을 수신하는 단계(S101)로부터 시작될 수 있다. 영상통화 지원 장치(300)는, 바람직하게는 시그널링 서버(150)의 중계에 의해 사용자 단말기(100)로부터 영상통화 요청을 수신할 수 있다.
S101 단계 후, 상기 영상통화 지원 장치(300)와 사용자 단말기(100) 사이에는 데이터 송수신을 위한 세션, 또는 다이렉트 채널이 구축(S103)될 수 있다. 참고로 S103 단계가 실행되기 전에는 당연히 사용자 단말기(100)가 영상통화 지원 장치(300)의 퍼블릭 IP주소에 접속되는 과정이 존재함을 이해한다. 즉, 본 단계는 사용자 단말기(100)가 영상통화 지원 장치(300)의 퍼블릭 IP주소에 접속되어 있는 것을 전제로 이루어질 수 있으며, 데이터 송수신을 위한 세션 또는 채널의 구축 과정에는 STUN/TURN 서버(200)들이 개입될 수 있다. 또한 이 과정에서 상기 사용자 단말기(100) 상에서 실행되는 웹 브라우저는 WebRTC 통신 및 카메라 장치 사용을 위한 API를 참고할 수 있는데, 예를 들어 사용자 단말기(100)에 구비된 카메라, 오디오 권한을 요청 및 승인할 시 getUserMedia(), 영상통화 또는 보이스톡을 설정하기 위한 RTCPeerConnection(), 양방향 p2p 통신을 위해 채널을 열기 위한 TCDataChannel() 등의 API가 참고될 수 있다.
S103 단계 후, 상기 영상통화 지원 장치(300)는 사용자 단말기(100)로부터 사용자 영상(제1 영상)을 수신(S105)할 수 있다. 사용자 영상이란, 사용자 단말기(100)에 구비되어 있는 카메라를 통해 촬영된 영상을 일컫는 것으로, 현재 영상통화를 하고 있는 사용자의 모습, 특히 얼굴면이 포함된 사용자 영상일 수 있다.
S105단계 후, 상기 영상통화 지원 장치(300)는 상기 사용자 영상 내 얼굴면(사용자 얼굴면)을 타겟얼굴면으로 스왑 하는 단계(S107)를 수행할 수 있다. 이하의 설명에서는 발명의 이해를 돕기 위해 사용자 영상 내 사용자의 원 얼굴면을 제1 얼굴면, 그리고 타겟얼굴면을 제2 얼굴면이라 구별하여 칭하기로 한다. 제2 얼굴면은 사용자의 의사에 따라 선택된 얼굴면일 수 있으며, 이 때 사용자의 제2 얼굴면 선택입력은 앞선 S101 단계 내지 S105 단계 사이에서 이루어질 수 있다. 예를 들어, 사용자는 시그널링 서버(150)를 통하여 영상통화 지원 장치(300) 측에 영상통화 요청을 발신하는 단계에서부터 이미 제2 얼굴면, 다시 말해 사용자 자신의 얼굴면을 대체할 타겟얼굴면을 선택하여 영상통화 지원 장치(300) 측에 이를 공유할 수 있다. 참고로, 제2 얼굴면을 선택하는 화면은, 상기 사용자 단말기(100) 상에서 실행되는 영상통화 어플리케이션, 영상통화 프로그램, 영상통화 웹 인터페이스를 통해 표시될 수 있으며, 복수 개의 선택 가능한 제2 얼굴면들이 나열되어 사용자의 선택을 유도할 수 있다.
한편, 나열되는 제2 얼굴면들은 상기 영상통화 지원 장치(300)가 상기 제1 영상 내 사용자의 얼굴면을 감지한 후 스왑이 가능하거나 스왑이 상대적으로 쉬운 타겟얼굴면들로만 선별된 것일 수 있다. 영상통화 지원 장치(300)는 사용자 영상을 수신한 뒤 여기 포함된 얼굴면을 감지 및 분석할 수 있으며, 영상통화 지원 장치(300) 내 얼굴면합성부(350)는 기 학습 이력, 또는 기 저장된 합성(스왑) 이력, 또는 얼굴면 합성 모델(M1) 또는 얼굴면 세그멘팅 모델(M2)을 활용한 시뮬레이션 예측 등을 함으로써 어떤 타겟얼굴면들이 실시간 영상통화 시 합성 내지 스와핑에 적합한 것인지 스코어를 부여할 수 있고, 이 스코어를 기준으로 기준점 이상인 것들만을 선별하여 사용자가 선택 가능한 타겟얼굴면들로 표시할 수 있다.
S107단계 후, 상기 영상통화 지원 장치(300)는 상기 타겟얼굴면이 합성된 합성영상을 사용자 단말기(100)로 전송(S109)한다. 본 S107단계, 그리고 앞서 영상통화 지원 장치(300)가 사용자 단말기(100)로부터 사용자 영상을 수신하는 단계는 모두 사용자 단말기(100)와 영상통화 지원 장치(300) 사이에 형성되어 있는 다이렉트 채널을 통해 영상들이 p2p 송수신되는 것을 다시 한번 상기하도록 한다.
이상 도 7을 참고하여 제1 실시예에 따른 실시간 영상통화 서비스 지원 방법을 순서대로 살펴 보았다.
도 8은 본 발명의 제2 실시예에 따른 실시간 영상통화 서비스를 지원하기 위해 필요한 시스템을 간략히 도시한 것이다. 구체적으로, 도 8에 도시되어 있는 시스템은 복수 사용자들이 얼굴 합성 기능을 이용하면서 실시간으로 영상통화를 할 수 있게 한 것이다.
도 8을 참고할 때, 시스템 내에는 예시적으로 제1 피어 내지 제3 피어(101, 102, 103)들이 영상통화 지원 장치(300)를 일종의 허브로 삼아 연결되어 있는 모습을 확인할 수 있다. 이 때, 제1 피어 내지 제3 피어(101, 102, 103)들은 각각 STUN/TURN 서버들(200)과 연결되고, 또한 각 피어들과 영상통화 지원 장치(300) 사이에는 ICE 메커니즘에 따라 데이터(영상) 송수신을 할 수 있도록 다이렉트 채널이 형성될 수 있다. 이 때, 피어들은 각각 카메라와 WebRTC 프로토콜을 지원하는 웹 브라우저를 통해 영상통화 지원 장치(300)에 접속하게 될 것이며, 더 정확하게는 영상통화 지원 장치(300)의 구성들 중에서도 통신부(310)의 관리 하에 접속 및 데이터 송수신이 이루어질 수 있다. 또한, 영상통화 지원 장치(300) 내에는 얼굴면합성부(350)가 존재하며, 여기서는 앞서 도 5에서 설명하였던 방법론과 같은 방식으로 각 사용자들의 얼굴면을 합성하는 작업이 수행될 수 있다.
도 9는 앞서 도 8과 같은 시스템 상에서 구현되는 제2 실시예를 순서에 따라 도시한 것이다.
도 9를 참고할 때, 제2 실시예에 따른 실시간 영상통화 서비스 지원 방법은 가장 먼저 영상통화 지원 장치가 복수 사용자 단말기들로부터 영상통화 요청들을 수신하는 단계(S201)를 포함할 수 있다. 도 8에는 도시되어 있지 않지만 상기 피어들(101, 102, 103)은 시그널링 서버를 통해 각각 영상통화 요청을 영상통화 지원 장치(300)로 전송할 수 있으며, 영상통화 지원 장치(300) 역시 시그널링 서버를 통해 응답할 수 있다.
S201단계 후, 영상통화 지원 장치(300)는 각각의 피어들(101, 102, 103)과 데이터 송수신을 위한 세션 또는 다이렉트 채널을 구축(S203)할 수 있다. 본 단계의 진행에 있어서는 STUN/TURN 서버들(200)이 개입될 수 있다. S203 단계는 당연히 각 피어들(101, 102, 103)이 영상통화 지원 장치(300)의 퍼블릭 IP주소에 접속된 상태에서 진행될 수 있다.
S203단계 후, 영상통화 지원 장치(300)는 각 피어들(101, 102, 103), 즉 사용자 단말기들로부터 각각 사용자 영상을 수신(S205)할 수 있다. 이 때, 사용자 영상에는 각 사용자의 얼굴면이 포함되어 있을 것이다.
S205단계 후, 영상통화 지원 장치(300)는 각 사용자 영상 내 얼굴면을 특정 얼굴면으로 스왑(S207)할 수 있다. 특정 얼굴면이란, 각 피어에 의해 선택된 타겟얼굴면을 의미하며, 예를 들어 캐릭터, 또는 가상인물의 얼굴면일 수 있다. 또한 이 때 사용자들에 의해 선택 가능한 얼굴면들은 실질적인 영상통화가 시작되기 이전에 영상통화 지원 장치(300)에 의해 선별되거나 추천된 것일 수 있다.
S207단계 후, 영상통화 지원 장치(300)는 각 타겟얼굴면이 스왑된 상태의 영상들, 또는 타겟얼굴면이 포함된 상태의 영상들을 각 피어들(101, 102, 103)로 전송(S209)할 수 있다.
도 10은 본 발명의 제3 실시예에 따른 실시간 영상통화 서비스를 지원하기 위해 필요한 시스템을 도시한 것이다. 도 10도 도시된 시스템 역시 복수 사용자들의 영상통화를 지원하기 위한 것이나, 도 8의 시스템과 비교할 때 다른 점은, 도 10의 시스템에는 복수 개의 영상통화 지원 장치들(300A, 300B, 300C 등)이 하나의 영상통화 지원 클러스터를 구성하고 있는 점, 그리고 피어들(101, 102, 103)과 영상통화 지원 클러스터 사이에 프록시 서버(400)가 더 존재한다는 점이다.
제3 실시예를 구현하기 위한 시스템은, 실시간 다자간 통신을 위한 WebRTC 프로토콜을 모두 활용하되, p2p 구조가 아닌 MCU 구조로 설계를 함으로써 복수 사용자들 간의 영상통화 서비스 이용이 가능하게 하였다. 도 10을 참고할 때, 각 영상통화 지원 장치(300A 등)는 다시 세부적으로 코어(305), 얼굴면합성부(350), 비디오룸 관리부(360), 스크린공유부(370)를 더 포함할 수 있다.
코어(305)는 클러스터 내 개별 영상통화 지원 장치(300A 등)가 구비하고 있는 것으로, 상기 코어(305)는 피어(들)과의 통신, 더 정확하게는 피어(들)과의 WebRTC 통신을 관리 및 관제하는 기능을 한다.
얼굴면합성부(350)는 앞서 도 5에서 설명하였던 과정을 거쳐 각 사용자들의 얼굴면을 합성하는 구성으로, 피어들(101~103) 중 적어도 하나로부터 사용자 얼굴면이 포함된 영상 데이터를 수신한 후 사용자 얼굴면만 타겟얼굴면으로 바꾸어 합성된 영상을 생성하는 기능을 수행한다.
비디오룸 관리부(360)는 여러 명의 사용자들이 동시에 하나의 그룹(비디오룸)을 이루어 영상통화를 이용하고 있을 때, 해당 그룹(비디오룸)에 대한 사항들을 관리하는 구성으로 이해될 수 있다. 예를 들어, 그룹 내 사용자들의 세션(채널)을 관리하는 기능, 그룹 내에서의 각종 환경들을 설정하는 기능 등이 본 비디오룸 관리부(360)를 통해 이루어질 수 있다.
스크린공유부(370)는 앞서 얼굴면합성부(350)에 의해 합성된 영상을 복수의 사용자들에게 공유하는 구성이다. 영상통화 지원 장치(300A 등)는 개별 사용자(피어) 의 얼굴면이 포함된 영상을 받아 타겟얼굴면으로 합성한 후 이 합성된 영상을 영상통화에 참여하고 있는 타 사용자들에게도 공유를 하게 되는데, 상기 스크린공유부(370)에서 이러한 기능을 수행할 수 있다. 한편, 도 10의 제3 실시예에 따른 시스템에서는 프록시 서버(400)를 더 둠으로써 영상통화 지원 클러스터 내에서의 로드 밸런싱(Load Balancing)이 가능하게 하였으며, 이를 통해 시스템의 수평적인 확장이 가능하도록 설계한 것을 또 다른 특징으로 한다. 프록시 서버(400)는 복수 사용자 단말기들, 즉 피어들(101, 102, 103)들로부터 영상통화 요청을 수신할 수 있으며, 영상통화 지원 장치들(300 A 등)의 처리 능력을 고려하여 로드 밸런싱을 수행할 수 있다. 로드 밸런싱이란, 궁극적으로 각 피어 또는 피어들을 영상통화 지원 장치(들)로 할당하는 것을 의미한다. 이 때 로드 밸런싱은 상기 프록시 서버(400) 내에서 사전에 정의된 할당 알고리즘 실행에 따라 이루어질 수 있다.
한편, 앞서 설명한 차이점 외에 피어들(101, 102, 103) 각각이 라우터(210)를 통해 STUN/TURN 서버들(200)과 연결된다거나, ICE 메커니즘에 따라 데이터 송수신을 하는 등의 기술적 특징들은 앞서 설명하였던 도 8의 시스템과 실질적으로 동일하다.
도 11은 제3 실시예에 따른 실시간 영상통화 서비스 지원 방법을 순서에 따라 도시한 것이다.
도 11을 참고할 때, 제3 실시예는 가장 먼저 영상통화 지원 클러스터가 프록시 서버(400)를 통해 복수 개의 피어들(101, 102, 103) 또는 사용자 단말기들로부터 영상통화 요청들을 수신하는 단계(S301)를 포함할 수 있다.
S301단계 후, 영상통화 지원 클러스터 내 영상통화 지원 장치들(300A 등)은 상기 피어들(101, 102, 103)로부터의 영상통화 요청들을 할당(S303) 받을 수 있다. 본 단계는 실제로는 프록시 서버(400)에 의해 이루어질 수 있겠으나, 할당을 받는 구성은 영상통화 지원 클러스터, 더 정확하게는 클러스터 내 복수 개의 영상통화 지원 장치들이라 할 것이다. 참고로, 프록시 서버(400)는 로드 밸런싱을 수행하되 기 저장된 할당 알고리즘에 따라 수행할 수 있다.
S303단계 후, 각 피어들은 할당에 의해 매칭된 영상통화 지원 장치에 접속하게 되며 동시에 영상통화를 위한 비디오룸을 할당 받게 되고, 각 피어들과 매칭된 영상통화 지원 장치들 간에는 ICE 메커니즘을 통해 WebRTC 프로토콜에 따른 다이렉트 채널, 데이터 송수신 세션이 구축(S305)될 수 있다.
S305단계 후, 영상통화 지원 클러스터, 더 정확하게는 개별 영상통화 지원 장치들은 각 피어들로부터 사용자 영상들을 수신(S307)할 수 있다. 이 때, 각 사용자 영상들은 사용자 얼굴면을 포함할 수 있다.
S307단계 후, 각각의 영상통화 지원 장치들에서는 사용자 얼굴면을 각 피어들에 의해 선택된 특정 타겟얼굴면으로 스왑하는 단계(S309)가 수행되며, 이 후에는 타겟얼굴면이 포함된 영상들이 모든 피어들로 전송 및 공유(S311)될 수 있다.
이상 도면들을 참고하여 영상통화 서비스를 지원하는 방법, 그리고 이를 위한 장치에 대해 살펴보았다.
한편, 앞선 설명에서는 사용자 단말기, 즉 피어들로부터 사용자 얼굴면이 포함된 영상을 받아 이를 타겟얼굴면으로 합성(스와핑)한 후 영상통화 참여자들에게 공유를 하는 내용의 서비스에 대해서만 서술하였는데, 본 발명은 비단 얼굴면 합성뿐만 아니라 음성합성, 상품이미지 합성 등에도 확장 이용이 가능할 수 있다.
예를 들어, 영상통화 지원 장치(300)는 사용자 단말기(100)로부터 사용자 음성이 포함된 데이터를 수신할 수 있으며, 상기 사용자 음성을 사전에 학습된 알고리즘에 따라 타겟음성(변조된 음성)으로 바꿈으로써 원 목소리가 아닌 전혀 다른 목소리의 사용자 목소리로 영상통화를 하는 것처럼 구현할 수 있다.
또한, 사용자가 라이브 커머스에 참여하며 소통을 하고 있는 실시예에 있어서는 영상통화 지원 장치(300)가 사용자 단말기(100)로부터 사용자의 모습이 포함되어 있는 영상 데이터를 수신할 수 있으며, 상기 사용자의 옷, 신발, 악세서리 등을 사전에 학습된 알고리즘에 따라 타겟오브젝트(라이브 커머스에서 판매 중인 옷, 신발, 악세서리 등)로 합성시켜 사용자에게 피드백 하게 할 수 있다. 이 경우 사용자는 라이브 커머스를 통해 구매하고자 하는 상품을 자신이 가상적으로 착용해 본 것과 같은 경험을 느낄 수 있다.
이처럼 본 발명에서 제안하는 사전 학습된 알고리즘을 이용한 오브젝트(얼굴면, 음성, 상품 이미지)의 합성(스왑), 그리고 WebRTC 프로토콜의 활용은 실시간으로 소통이 가능한 온라인 상에서 사용자들이 다양한 경험을 할 수 있는 환경을 제공한다는 점에서 특징이 있다.
이상 영상통화 서비스를 지원하는 방법 및 이를 위한 장치, 특히 얼굴 합성 기능을 이용하면서도 실시간으로 영상통화를 가능하게 하는 방법 및 장치에 대해 살펴보았다. 한편, 본 발명은 상술한 특정의 실시예 및 응용예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 구별되어 이해되어서는 안 될 것이다.
100 사용자 단말기
101, 102, 103 피어
150 시그널링 서버
200 STUN/TURN 서버들
210 라우터
300 영상통화 지원 장치
305 코어
310 통신부
350 얼굴면합성부
360 비디오룸관리부
370 스크린공유부
400 프록시 서버

Claims (13)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 영상통화 지원 클러스터 - 상기 영상통화 지원 클러스터는, 복수 개의 영상통화 지원 장치들을 포함함 - 가 다자간 실시간 영상통화 서비스를 지원하는 방법에 있어서,
    프록시 서버를 통해 복수 개의 사용자 단말기들로부터의 영상통화 요청들을 수신하는 단계;
    상기 영상통화 지원 클러스터 내 영상통화 지원 장치들이 상기 사용자 단말기들로부터의 영상통화 요청들을 할당 받는 단계;
    각 영상통화 지원 장치, 및 각 영상통화 지원 장치에 매칭되는 사용자 단말기 간 데이터 송수신을 위한 채널을 구축하는 단계;
    각 사용자 단말기들로부터 사용자 영상 - 상기 사용자 영상은 사용자 얼굴면을 포함함 - 들을 수신하는 단계;
    상기 각 영상 내 사용자 얼굴면을 상기 각 사용자 단말기들에 의해 선택된 특정 타겟얼굴면으로 스왑하는 단계; 및
    상기 타겟얼굴면이 포함된 합성영상들을 사용자 단말기들로 전송하는 단계;
    를 포함하는,
    다자간 실시간 영상통화 서비스를 지원하는 방법.
  6. 제5항에 있어서,
    상기 영상통화 지원 장치들이 상기 영상통화 요청들을 할당 받는 단계는,
    상기 프록시 서버에서의 할당 알고리즘 실행에 따라 이루어지는 것을 특징으로 하는,
    다자간 실시간 영상통화 서비스를 지원하는 방법.
  7. 제5항에 있어서,
    각 영상통화 지원 장치, 및 각 영상통화 지원 장치에 매칭되는 사용자 단말기 간 데이터 송수신을 위한 채널을 구축하는 단계는 WebRTC 프로토콜에 따르는 것을 특징으로 하는,
    다자간 실시간 영상통화 서비스를 지원하는 방법.
  8. 제7항에 있어서,
    상기 각 사용자 단말기들로부터 사용자 영상을 수신하는 단계는,
    특정 사용자 단말기와 매칭되는 특정 영상통화 지원 장치가, 상기 특정 사용자 단말기의 웹브라우져를 통해 사용자 영상을 수신하는 단계인 것을 특징으로 하는,
    다자간 실시간 영상통화 서비스를 지원하는 방법.
  9. 삭제
  10. 삭제
  11. 영상통화 지원 클러스터에 있어서,
    상기 영상통화 지원 클러스터는 복수 개의 영상통화 지원 장치들을 포함하고,
    상기 영상통화 지원 클러스터는,
    복수 개의 사용자 단말기들로부터의 영상통화 요청들을 수신하고, 상기 복수 개의 영상통화 지원 장치들이 상기 사용자 단말기들로부터의 영상통화 요청들을 할당 받으며, 각 영상통화 지원 장치 및 이에 매칭되는 사용자 단말기 간 데이터 송수신을 위한 채널을 구축하고, 각 사용자 단말기들로부터 수신한 사용자 영상 내 사용자 얼굴면을 각 사용자 단말기들에 의해 선택된 타겟얼굴면으로 스왑한 후, 상기 타겟얼굴면이 포함된 합성영상들을 상기 사용자 단말기들로 전송하는 것을 특징으로 하는,
    영상통화 지원 클러스터.
  12. 제11항에 있어서,
    상기 복수 개의 사용자 단말기들로부터의 영상통화 요청들은, 프록시 서버를 통하여 수신되는 것을 특징으로 하는,
    영상통화 지원 클러스터.
  13. 제12항에 있어서,
    상기 복수 개 영상통화 지원 장치들로의 영상통화 요청 할당은,
    상기 프록시 서버에서 수행되는 로드 밸런싱에 의해 이루어지는 것을 특징으로 하는,
    영상통화 지원 클러스터.

KR1020220080657A 2022-06-30 2022-06-30 실시간 영상통화 서비스 지원 방법 및 이를 위한 영상통화 지원 장치 KR102606904B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220080657A KR102606904B1 (ko) 2022-06-30 2022-06-30 실시간 영상통화 서비스 지원 방법 및 이를 위한 영상통화 지원 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220080657A KR102606904B1 (ko) 2022-06-30 2022-06-30 실시간 영상통화 서비스 지원 방법 및 이를 위한 영상통화 지원 장치

Publications (1)

Publication Number Publication Date
KR102606904B1 true KR102606904B1 (ko) 2023-11-29

Family

ID=88969033

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220080657A KR102606904B1 (ko) 2022-06-30 2022-06-30 실시간 영상통화 서비스 지원 방법 및 이를 위한 영상통화 지원 장치

Country Status (1)

Country Link
KR (1) KR102606904B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200015492A (ko) * 2017-04-21 2020-02-12 시스템73 리미티드 예상 오버레이 네트워크 아키텍처
KR20200140368A (ko) * 2018-05-07 2020-12-15 애플 인크. 화상 회의를 위한 보충 콘텐츠를 이용한 비디오 스트림들의 수정
KR20210052424A (ko) 2018-10-05 2021-05-10 에스케이텔레콤 주식회사 통신 장치 및 그 영상통화 방법
KR20210149674A (ko) * 2019-03-13 2021-12-09 주식회사 케이티 아바타를 이용하여 영상 통화를 수행하는 사용자 단말, 통화 중계 서버 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200015492A (ko) * 2017-04-21 2020-02-12 시스템73 리미티드 예상 오버레이 네트워크 아키텍처
KR20200140368A (ko) * 2018-05-07 2020-12-15 애플 인크. 화상 회의를 위한 보충 콘텐츠를 이용한 비디오 스트림들의 수정
KR20210052424A (ko) 2018-10-05 2021-05-10 에스케이텔레콤 주식회사 통신 장치 및 그 영상통화 방법
KR20210149674A (ko) * 2019-03-13 2021-12-09 주식회사 케이티 아바타를 이용하여 영상 통화를 수행하는 사용자 단말, 통화 중계 서버 및 방법

Similar Documents

Publication Publication Date Title
US9571793B2 (en) Methods, systems and program products for managing resource distribution among a plurality of server applications
EP3284211B1 (en) Handling conferences using highly-distributed agents
US9538139B2 (en) Multi-stream video switching with selective optimized composite
CN112235121B (zh) 一种线上会议实现方法、装置、设备及存储介质
US9774824B1 (en) System, method, and logic for managing virtual conferences involving multiple endpoints
US20110304686A1 (en) Unified communication based multi-screen video system
JP2007329917A (ja) テレビ会議システム、複数のテレビ会議出席者が互いを見、聞くことを可能にする方法およびテレビ会議システム用のグラフィカル・ユーザ・インタフェース
EP3962038B1 (en) Spatially aware multimedia router system and method
WO2021233093A1 (zh) 帐号接入方法和装置、存储介质及电子设备
US20230291808A1 (en) Data processing method and apparatus, device and medium
CN109586929B (zh) 会议内容的传输方法及装置、电子设备、存储介质
US9270937B2 (en) Real time stream provisioning infrastructure
US20210084425A1 (en) Representation of contextual information by projecting different participants' audio from different positions in a 3D soundscape
WO2014071020A1 (en) Methods and apparatus for video communications
US10462197B2 (en) On Demand in-band signaling for conferences
US9473316B2 (en) Resource consumption reduction via meeting affinity
KR102606904B1 (ko) 실시간 영상통화 서비스 지원 방법 및 이를 위한 영상통화 지원 장치
US20170201720A1 (en) Media Control Method and Device
JP2023524930A (ja) アバターを利用したカンファレンス処理方法およびシステム
JP2015527818A (ja) ビデオ会議環境のためのビデオ表示変更
US10552801B2 (en) Hard stop indicator in a collaboration session
JP2023527624A (ja) コンピュータプログラムおよびアバター表現方法
Ongtang et al. Client-based Multipoint Media Mixer to Support People with Hearing Impairment in Communication
CN114827097B (zh) 通信网络构建方法、装置及计算机设备
CN115695387B (zh) 音视频会议实现方法、音视频会议系统及相关装置

Legal Events

Date Code Title Description
GRNT Written decision to grant