KR20230123809A - System for expressing act and emotion of character based on sound and facial expression - Google Patents

System for expressing act and emotion of character based on sound and facial expression Download PDF

Info

Publication number
KR20230123809A
KR20230123809A KR1020220021056A KR20220021056A KR20230123809A KR 20230123809 A KR20230123809 A KR 20230123809A KR 1020220021056 A KR1020220021056 A KR 1020220021056A KR 20220021056 A KR20220021056 A KR 20220021056A KR 20230123809 A KR20230123809 A KR 20230123809A
Authority
KR
South Korea
Prior art keywords
type
data
character
port
target device
Prior art date
Application number
KR1020220021056A
Other languages
Korean (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 KR1020220021056A priority Critical patent/KR20230123809A/en
Publication of KR20230123809A publication Critical patent/KR20230123809A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/2053D [Three Dimensional] animation driven by audio data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • G10L25/63Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination for estimating an emotional state

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Acoustics & Sound (AREA)
  • General Engineering & Computer Science (AREA)
  • Child & Adolescent Psychology (AREA)
  • General Health & Medical Sciences (AREA)
  • Hospice & Palliative Care (AREA)
  • Psychiatry (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명은 캐릭터의 동작과 감정을 표현하는 애니메이션을 생성하는 방법에 관한 것으로, 일 실시예에서, 임의의 문장을 포함하는 음성신호를 텍스트 데이터로 변환하고 구문 분석하여 상기 문장을 포함하는 구문 데이터를 생성하는 단계; 상기 음성신호로부터 캐릭터의 특징을 포함하는 캐릭터 데이터를 생성하는 단계; 복수의 제스처 애니메이션 중에서 상기 구문 데이터에 매칭되는 제1 애니메이션을 선택하는 단계; 복수의 얼굴 애니메이션 중에서 상기 캐릭터 데이터에 매칭되는 제2 애니메이션을 선택하는 단계; 및 상기 구문 데이터에 따른 제스처와 상기 캐릭터 데이터에 따른 얼굴 표정을 각각 제1 및 제2 애니메이션에 블렌딩하는 단계;를 포함하는 캐릭터의 동작과 감정을 표현하는 애니메이션의 생성 방법을 개시한다. The present invention relates to a method for generating animation expressing motions and emotions of a character. In one embodiment, a voice signal including an arbitrary sentence is converted into text data and syntax analysis is performed to obtain syntax data including the sentence. generating; generating character data including characteristics of a character from the voice signal; selecting a first animation matching the syntax data from among a plurality of gesture animations; selecting a second animation matching the character data from among a plurality of facial animations; and blending a gesture according to the syntax data and a facial expression according to the character data into first and second animations, respectively.

Description

음성 및 표정에 기반한 캐릭터의 동작 및 감정 표현 시스템 {System for expressing act and emotion of character based on sound and facial expression} System for expressing act and emotion of character based on sound and facial expression}

본 발명은 컴퓨터를 이용한 캐릭터 애니메이션 생성 시스템에 관한 것으로, 보다 상세하게는, 음성과 표정에 기초하여 캐릭터의 동작과 감정을 표현하는 애니메이션을 생성하는 캐릭터 애니메이션 생성 시스템에 관한 것이다. The present invention relates to a character animation generation system using a computer, and more particularly, to a character animation generation system for generating animation expressing motions and emotions of a character based on voice and expression.

애니메이션(animation)에 포함되는 디지털 캐릭터(Digital Character)는 다양한 분야에 응용되며, 예를 들면 연극 배우의 모션을 감지하고 이를 디지털 캐릭터로 애니메이션화 하기도 한다.A digital character included in animation is applied to various fields, and for example, detects the motion of a play actor and animates it into a digital character.

다른 예로는, 디지털 캐릭터는 또한 음향에 동기되어 동영상으로 재생되기도 한다. 예를 들면, 한국 공개특허 제2006-0054678호(2006년 5월 23일)에는 음향에 캐릭터를 동기화시키는 기술이 개시되어 있다. As another example, the digital character is also reproduced as a moving picture synchronized with the sound. For example, Korean Patent Publication No. 2006-0054678 (May 23, 2006) discloses a technique of synchronizing a character to sound.

특허문헌1: 한국 공개특허 제2006-0054678호 (2006년 5월 23일 공개)Patent Document 1: Korean Patent Publication No. 2006-0054678 (published on May 23, 2006) 특허문헌2: 한국 공개특허 제2006-0031449호 (2006년 4월 12일 공개)Patent Document 2: Korean Patent Publication No. 2006-0031449 (published on April 12, 2006)

본 발명의 일 실시예에 따르면 사용자가 소정 문장을 포함하는 음성신호를 발화하면 이 음성신호에 기초하여 또는 상기 음성신호 및 사용자의 얼굴 표정에 기초하여 캐릭터에 동작과 표정을 블렌딩하여 캐릭터 애니메이션 동영상을 생성하는 캐릭터 애니메이션 생성 시스템을 개시한다. According to an embodiment of the present invention, when a user utters a voice signal including a predetermined sentence, a character animation video is produced by blending motions and facial expressions of characters based on the voice signal or based on the voice signal and the user's facial expression. Disclosed is a system for generating character animation.

본 발명의 일 실시예에 따르면, 캐릭터의 동작과 감정을 표현하는 애니메이션을 생성하는 방법으로서, 임의의 문장을 포함하는 음성신호를 텍스트 데이터로 변환하고 구문 분석하여 상기 문장을 포함하는 구문 데이터를 생성하는 단계; 상기 음성신호로부터 캐릭터의 특징을 포함하는 캐릭터 데이터를 생성하는 단계; 복수의 제스처 애니메이션 중에서 상기 구문 데이터에 매칭되는 제1 애니메이션을 선택하는 단계; 복수의 얼굴 애니메이션 중에서 상기 캐릭터 데이터에 매칭되는 제2 애니메이션을 선택하는 단계; 및 상기 구문 데이터에 따른 제스처와 상기 캐릭터 데이터에 따른 얼굴 표정을 각각 제1 및 제2 애니메이션에 블렌딩하는 단계;를 포함하는 캐릭터의 동작과 감정을 표현하는 애니메이션의 생성 방법을 개시한다. According to one embodiment of the present invention, as a method for generating animation expressing motions and emotions of a character, a voice signal including an arbitrary sentence is converted into text data and syntax analysis is performed to generate syntax data including the sentence. doing; generating character data including characteristics of a character from the voice signal; selecting a first animation matching the syntax data from among a plurality of gesture animations; selecting a second animation matching the character data from among a plurality of facial animations; and blending a gesture according to the syntax data and a facial expression according to the character data into first and second animations, respectively.

본 발명의 일 실시예에 따르면, 상기 애니메이션의 생성 방법을 실행시키기 위한 컴퓨터 프로그램이 기록된 컴퓨터 판독가능 기록매체를 개시한다. According to one embodiment of the present invention, a computer readable recording medium on which a computer program for executing the animation generating method is recorded.

본 발명의 일 실시예에 따르면 사용자가 발화하는 음성신호 및 표정에 기초하여 발화한 문장의 각 단어나 구문 및 감정에 대응하는 동작과 얼굴 표정을 자동적으로 매칭하고 블렌딩하여 캐릭터 애니메이션 영상을 자동적이고 창의적으로 제작할 수 있는 기술적 효과를 가진다. According to an embodiment of the present invention, based on voice signals and facial expressions uttered by a user, motions and facial expressions corresponding to each word or phrase of a sentence uttered and emotion are automatically matched and blended to create an automatic and creative character animation image. It has a technical effect that can be crafted with

또한 본 발명의 일 실시예에 따른 애니메이션 생성 기술은 사용자의 대사와 행동 및 감정 표현을 애니메이션 캐릭터가 하는 것처럼 구현할 수 있으므로 오늘날과 같은 비대면 시대에 특히 유용하고 필요한 기술적 이점이 있다. In addition, since the animation generation technology according to an embodiment of the present invention can implement the user's lines, actions, and emotional expressions as animated characters do, it has technical advantages that are particularly useful and necessary in today's non-face-to-face era.

도1은 본 발명의 일 실시예에 따른 캐릭터 애니메이션 생성 시스템을 설명하기 위한 블록도,
도2는 일 실시예에 따라 캐릭터의 감정 분류에 따른 캐릭터의 동작을 표현하는 복수의 제스처 애니메이션을 설명하는 도면,
도3은 일 실시예에 따라 음성 및 표정에 기반하여 캐릭터의 동작과 감정을 표현하는 애니메이션을 생성하는 예시적인 방법을 설명하는 흐름도,
도4는 일 실시예에 따라 캐릭터의 동작과 감정을 표현하는 애니메이션을 생성하는 과정을 설명하는 도면,
도5는 무선케어장치가 통합된 캐릭터 애니메이션 생성 시스템을 설명하기 위한 도면,
도6은 일 실시예에 따른 무선케어 방법을 설명하기 위한 도면,
도7은 일 실시예에 따른 무선 디바이스의 타입을 추정하는 방법을 설명하는 도면이다.
1 is a block diagram for explaining a character animation generation system according to an embodiment of the present invention;
2 is a diagram illustrating a plurality of gesture animations expressing motions of a character according to a character's emotion classification according to an embodiment;
Fig. 3 is a flow diagram illustrating an exemplary method for generating animations expressing motions and emotions of a character based on voice and facial expressions, according to one embodiment;
4 is a diagram for explaining a process of generating animations expressing motions and emotions of a character according to an embodiment;
5 is a diagram for explaining a character animation generation system in which a wireless care device is integrated;
6 is a diagram for explaining a wireless care method according to an embodiment;
7 is a diagram illustrating a method of estimating a type of a wireless device according to an exemplary embodiment.

이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. The above objects, other objects, features and advantages of the present invention will be easily understood through the following preferred embodiments in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments described herein and may be embodied in other forms. Rather, the embodiments introduced herein are provided so that the disclosed content will be thorough and complete and the spirit of the present invention will be sufficiently conveyed to those skilled in the art.

본 명세서에서 제1, 제2 등의 용어가 구성요소들을 기술하기 위해서 사용된 경우, 이들 구성요소들이 이 같은 용어들에 의해서 한정되어서는 안된다. 이들 용어들은 단지 어느 구성요소를 다른 구성요소와 구별시키기 위해서 사용되었을 뿐이다. 여기에 설명되고 예시되는 실시예들은 그것의 상보적인 실시예들도 포함한다.In this specification, when terms such as first and second are used to describe components, these components should not be limited by these terms. These terms are only used to distinguish one component from another. Embodiments described and illustrated herein also include complementary embodiments thereof.

본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '~를 포함한다', '~로 구성된다', 및 '~으로 이루어진다'라는 표현은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.In this specification, singular forms also include plural forms unless specifically stated otherwise in a phrase. The expressions 'comprises', 'consists of', and 'consists of' used in the specification do not exclude the presence or addition of one or more other elements in addition to the mentioned elements.

본 명세서에서 용어 '소프트웨어'는 컴퓨터에서 하드웨어를 움직이는 기술을 의미하고, 용어 '하드웨어'는 컴퓨터를 구성하는 유형의 장치나 기기(CPU, 메모리, 입력 장치, 출력 장치, 주변 장치 등)를 의미하고, 용어 '단계'는 소정의 목을 달성하기 위해 시계열로 연결된 일련의 처리 또는 조작을 의미하고, 용어 '컴퓨터 프로그램', '프로그램', 또는 '알고리즘'은 컴퓨터로 처리하기에 합한 명령의 집합을 의미하고, 용어 '프로그램 기록 매체'는 프로그램을 설치하고 실행하거나 유통하기 위해 사용되는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 의미한다. In this specification, the term 'software' refers to technology that moves hardware in a computer, and the term 'hardware' refers to a type of device or device (CPU, memory, input device, output device, peripheral device, etc.) constituting a computer, , the term 'step' means a series of processes or operations connected in time series to achieve a predetermined goal, and the term 'computer program', 'program', or 'algorithm' refers to a set of instructions combined for computer processing and the term 'program recording medium' refers to a computer-readable recording medium on which a program used to install, execute, or distribute a program is recorded.

본 명세서에서 발명의 구성요소를 지칭하기 위해 사용된 '~부', '~모듈', '~유닛', '~블록', '~보드' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 물리적, 기능적, 또는 논리적 단위를 의미할 수 있고 이는 하나 이상의 하드웨어나 소프트웨어 또는 펌웨어로 구현되거나 또는 하나 이상의 하드웨어, 소프트웨어, 및/또는 펌웨어의 결합으로 구현될 수 있다. Terms such as '~unit', '~module', '~unit', '~block', and '~board' used to refer to the components of the invention in this specification refer to those that process at least one function or operation. It may refer to a physical, functional, or logical unit, which may be implemented as one or more hardware, software, or firmware, or may be implemented as a combination of one or more hardware, software, and/or firmware.

본 명세서에서 '처리장치', '컴퓨터', '컴퓨팅 장치', '서버 장치', '서버'는 윈도우, 맥, 또는 리눅스와 같은 운영체제, 컴퓨터 프로세서, 메모리, 응용프로그램들, 기억장치(예를 들면, HDD, SDD), 및 모니터를 구비한 장치로 구현될 수 있다. 컴퓨터는 예를 들면, 데스크톱 컴퓨터나 노트북, 모바일 단말기 등과 같은 장치일 수 있으나 이들은 예시적인 것이며 이에 한정되는 것은 아니다. 모바일 단말기는 스마트폰, 태블릿 PC, 또는 PDA와 같은 모바일 무선통신기기 중 하나일 수 있다. In this specification, 'processing device', 'computer', 'computing device', 'server device', and 'server' refer to an operating system such as Windows, Mac, or Linux, a computer processor, memory, application programs, and storage devices (eg For example, HDD, SDD), and may be implemented as a device having a monitor. The computer may be, for example, a device such as a desktop computer, a laptop computer, or a mobile terminal, but these are examples and are not limited thereto. The mobile terminal may be one of mobile wireless communication devices such as a smart phone, a tablet PC, or a PDA.

본 명세서에서, 구성요소 'A'가 구성요소 'B'에게 정보, 내역, 및/ 또는 데이터를 전송한다고 함은 구성요소 'A'가 구성요소 'B'에게 직접 전송하거나 또는 구성요소 'A'가 적어도 하나 이상의 다른 구성요소를 통해서 구성요소 'B'에 전송하는 것을 포함하는 의미로 사용한다.In this specification, the transmission of information, details, and/or data from element 'A' to element 'B' means that element 'A' transmits directly to element 'B' or that element 'A' transmits information directly to element 'A'. is used in the sense of including transmission to component 'B' through at least one other component.

애니메이션산업 진흥에 관한 법률에 따르면 애니메이션은 "실물의 세계 또는 상상의 세계에 존재하는 스스로 움직이지 않는 피사체를 2D, 3D, CG, 스톱모션 등 다양한 기법과 매체를 이용하여 가공함으로써 움직이는 이미지로 창출하는 영상"이라고 정의하고 있다. 본 명세서에서 "애니메이션"은 이러한 정의를 포함할 뿐만 아니라 실존하는 캐릭터 또는 가상의 캐릭터의 몸체의 적어도 일부가 움직이는 동영상을 포괄하여 의미하는 것으로 해석한다. 또한 본 명세서에서 '애니메이션'은 '애니메이션 동영상', '애니메이션 영상', '동영상', '영상' 등으로 칭하기도 한다. According to the Animation Industry Promotion Act, animation is "creating a moving image by processing a subject that does not move by itself in the real or imaginary world using various techniques and media such as 2D, 3D, CG, and stop motion." defined as "video". In this specification, "animation" includes this definition and is interpreted as encompassing a motion picture in which at least a part of the body of a real character or a virtual character moves. Also, in this specification, 'animation' is also referred to as 'animation video', 'animation video', 'video', 'image', and the like.

본 명세서에 언급되는 '캐릭터'는 애니메이션 영상에 나타나는 실제의 또는 가공의 인물이나 동물 등 시각적 상징물을 포괄하여 지칭하는 것이며, 예컨대 가공의 캐릭터로는 각종 만화 등의 주인공이나 아바타 등을 의미할 수 있다. The 'character' referred to in this specification refers to a visual symbol such as a real or fictitious person or animal appearing in an animated image, and for example, a fictional character may mean a main character or avatar of various cartoons, etc. .

본 명세서에서 언급되는 캐릭터의 '제스처'는 애니메이션 내에서 캐릭터의 몸짓, 손짓 등 몸체의 적어도 일부의 움직임이나 동작을 의미한다. 제스처는 단순히 캐릭터 일부 몸체의 움직임을 의미할 수도 있고 캐릭터의 내면의 심리적 상태의 표현이거나 어떤 대상에 대한 신호일 수도 있다. 본 명세서에서는 특별한 제한이 없는 한 제스처를 '움직임'이나 '동작'과 동일한 의미로 사용하기로 한다. 또한 본 명세서에서 때로는 '제스처'가 캐릭터의 얼굴 표정의 움직임이나 캐릭터 얼굴의 눈, 코, 입 등 얼굴의 적어도 일부분의 움직임까지 포괄하여 의미할 수도 있다. A 'gesture' of a character referred to in this specification refers to at least a part of the body such as a character's gesture or hand gesture within an animation. A gesture may simply mean the movement of a part of a character's body, or it may be an expression of a character's inner psychological state or a signal to a certain object. In this specification, gestures are used as the same as 'movement' or 'movement' unless otherwise specified. In addition, sometimes in this specification, 'gesture' may also mean the movement of a character's facial expression or the movement of at least a part of a face such as the eyes, nose, and mouth of a character's face.

이하 도면을 참조하여 본 발명을 상세히 설명하도록 한다. 아래의 특정 실시예들을 기술하는데 있어서 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 또한 발명을 기술하는 데 있어서 공지 또는 주지관용 기술이면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는 데 있어 혼돈을 막기 위해 기술하지 않음을 미리 언급해 둔다. The present invention will be described in detail with reference to the following drawings. In describing the specific embodiments below, various specific details have been prepared to more specifically describe the invention and aid understanding. However, readers who have knowledge in this field to the extent that they can understand the present invention can recognize that it can be used without these various specific details. In addition, in describing the invention, it is mentioned in advance that parts that are well-known or commonly used technologies but are not significantly related to the invention are not described in order to prevent confusion in describing the present invention.

도1은 본 발명의 일 실시예에 따른 캐릭터 애니메이션 생성 시스템(이하 간단히 "애니메이션 생성 시스템" 또는 "시스템"이라고도 함)을 설명하기 위한 블록도이다. 도1을 참조하면, 일 실시예에 따른 애니메이션 생성 시스템(100)은 음성 및 표정 분석모듈(110), 비주얼 매니저(120), 및 애니메이션 아카이브(130)를 포함할 수 있다. 1 is a block diagram for explaining a character animation generating system (hereinafter, simply referred to as an “animation generating system” or “system”) according to an embodiment of the present invention. Referring to FIG. 1 , an animation generating system 100 according to an embodiment may include a voice and facial expression analysis module 110 , a visual manager 120 , and an animation archive 130 .

음성 및 표정 분석모듈(110)(이하 간단히 '분석모듈'이라고도 함)은 사용자가 발화하는 음성을 수신하여 음성을 분석하여 구문 데이터와 캐릭터 데이터를 생성할 수 있다. 대안적 실시예에서 분석모듈(110)은 사용자가 발화하는 음성 및 사용자의 표정을 수신하고 분석하여 구문 데이터와 캐릭터 데이터를 생성할 수 있다. The voice and facial expression analysis module 110 (hereinafter, simply referred to as 'analysis module') may generate phrase data and character data by receiving a voice spoken by a user and analyzing the voice. In an alternative embodiment, the analysis module 110 may generate phrase data and character data by receiving and analyzing a voice uttered by a user and a facial expression of the user.

일 실시예에서 분석모듈(110)은 STT 분석부(111), 구문 분석부(112), 음성 분석부(113), 및 캐릭터 데이터 생성부(114)를 포함한다. 대안적 실시예에서 분석모듈(110)은 표정 분석부(115)를 더 포함할 수 있다. In one embodiment, the analysis module 110 includes an STT analysis unit 111, a syntax analysis unit 112, a voice analysis unit 113, and a character data generation unit 114. In an alternative embodiment, the analysis module 110 may further include a facial expression analysis unit 115 .

분석모듈(110)은 사용자가 발화하는 음성신호를 수신하기 위해 마이크와 같은 음성수신 장치를 구비할 수 있다. 또한 일 실시예에서 사용자의 표정을 촬영하여 수신하기 위해 카메라와 같은 이미지 촬상 장치를 추가로 구비할 수 있다. The analysis module 110 may include a voice receiving device such as a microphone in order to receive a voice signal uttered by a user. In addition, in one embodiment, an image capture device such as a camera may be additionally provided to capture and receive a user's facial expression.

분석모듈(110)이 수신하는 음성신호는 사용자가 발화하는 소정의 문장을 포함할 수 있다. 여기서 '문장'은 반드시 주어와 동사를 포함해야 하는 것은 아니며 하나 이상의 단어의 집합일 수 있다. 마이크와 같은 음성수신 장치를 통해 입력된 음성신호는 STT(Speech-to-Text) 분석부(111)로 전달된다. STT 분석부(111)는 음성신호를 해석하여 문자 데이터로 전환하는 기능부이다. The voice signal received by the analysis module 110 may include a predetermined sentence uttered by the user. Here, a 'sentence' does not necessarily include a subject and a verb, and may be a set of one or more words. A voice signal input through a voice receiving device such as a microphone is transmitted to a speech-to-text (STT) analyzer 111 . The STT analyzer 111 is a functional unit that interprets a voice signal and converts it into text data.

STT 분석부(111)에서 생성된 문자 데이터는 구문 분석부(112)로 전달된다. 구문 분석부(112)는 문자 데이터 내의 문장을 단어별 및/또는 구문별 해석하여 구문 데이터를 생성할 수 있다. The text data generated by the STT analyzer 111 is transferred to the syntax analyzer 112 . The syntax analyzer 112 may generate syntax data by analyzing sentences in the text data by word and/or by syntax.

일 실시예에서 '구문 데이터'는 사용자가 발화한 문장(즉, 문장을 텍스트로 전환한 텍스트 데이터) 및 상기 문장에 대한 구문 분석된 데이터(이하 '메타 데이터'라 한다)를 포함할 수 있다. 예를 들어, 메타 데이터는 상기 문장을 구성하는 각각의 단어 및/또는 구문에 대응(매칭)하는 동작을 나타내는 동작 정보, 및 각각의 단어 및/또는 구문에 대응(매칭)하는 감정을 나타내는 감정 정보를 포함할 수 있다. 예를 들어 사용자가 발화한 문장 중에 '너무 기뻐'와 같은 문장이 포함된 경우, 구문 분석부(112)는 '기뻐'란 단어에 대응하여 '기쁨을 표시하는 동작'을 동작 정보로서 메타 데이터에 포함시킬 수 있다. 또한 구문 분석부(112)는 '너무 기뻐'의 문장으로부터 '기쁨' 또는 '행복'이라는 감정을 매칭시킬 수 있고 이에 따라 메타 데이터는 기분류된 감정의 종류 중 '기쁨' 또는 '행복'을 감정 정보로서 메타 데이터에 포함시킬 수 있다. In one embodiment, 'syntax data' may include a sentence uttered by a user (ie, text data converted from a sentence to text) and parsed data for the sentence (hereinafter referred to as 'meta data'). For example, the meta data may include action information indicating actions corresponding to (matching) each word and/or phrase constituting the sentence, and emotion information indicating emotion corresponding to (matching) each word and/or phrase. can include For example, when a sentence such as 'I'm so happy' is included among the sentences uttered by the user, the syntax analysis unit 112 responds to the word 'joy' by inserting an 'action to display joy' into metadata as motion information. can include In addition, the syntax analysis unit 112 may match the emotion of 'joy' or 'happiness' from the sentence 'so happy', and accordingly, the meta data determines 'joy' or 'happiness' among the types of mood-classified emotions. As information, it can be included in meta data.

일 실시예에서, 구문 분석부(112)는 문장을 형태소 기반으로 분석할 수 있고 이에 따라 메타 데이터가 동사의 시제에 관한 시제 정보(예컨대, 미래형인지 완료형인지, 가정법인지 등을 판단하는 정보)를 더 포함할 수 있다. 예를 들어 사용자가 발화한 문장이 '~했다'라는 단어를 포함한 경우, '~했'이라는 형태소로부터 해당 동작을 이미 완료했다고 판단할 수 있고, 다른 예로서, 문장이 '~하겠다'라는 단어를 포함한 경우 형태소 분석을 통해 해당 동작을 아직 하지 않았다고 판단할 수 있다. 또 다른 예로서 문장이 '~할텐데'라는 단어를 포함한 경우 구문 분석부(112)는 해당 동작을 하지 않았다고 판단할 수 있다. In one embodiment, the syntax analyzer 112 may analyze the sentence based on the morpheme, and accordingly, the meta data is tense information about the tense of the verb (eg, information for determining whether it is future, perfect, subjunctive, etc.) may further include. For example, if the sentence uttered by the user includes the word '~ did', it can be determined that the corresponding action has already been completed from the morpheme '~ did', and as another example, the sentence contains the word '~ did'. If included, it can be determined that the corresponding action has not yet been performed through morphological analysis. As another example, when the sentence includes the word 'will do', the syntax analyzer 112 may determine that the corresponding operation has not been performed.

일 실시예에서, 구문 분석부(112)는 문장을 구성하는 각각의 단어 및/또는 구문에 대응(매칭)하는 동작을 캐릭터가 수행하도록 동작 정보를 생성한다. 그러나 문장의 내용이나 뉘앙스에 따라, 캐릭터가 반드시 상기 문장 내에 포함된 단어(동사)와 일치하는 동작을 하는 것은 아니다. 예를 들어 사용자가 발화한 문장이 '뛰어야겠다'와 같이 미래형이거나 또는 '뛰었을 텐데'와 같이 가정법을 의미하는 경우 캐릭터가 뛰는 동작을 반드시 해야 하는 것이 아니므로, 구문 분석부(112)는 '뛰다'는 단어에 대응하여 뛰는 동작의 동작 정보를 생성하지 않을 수도 있고(예컨대, 이 경우 '뒤는 동작'이 아니라 '생각하는 동작' 또는 '후회하는 동작'을 동작 정보로서 생성할 수도 있고, 더 나아가 이 경우 '후회' 또는 '슬픔' 등의 감정을 감정 정보로서 생성할 수도 있다), 구문 분석부(112)는 문장의 전체적인 의미나 뉘앙스에 기초하여 동작 정보 및/또는 감정 정보를 생성하는 것이 바람직하다. 그러므로 메타 데이터가 시제 정보를 더 포함하는 일 실시예에서, 구문 분석부(112)는 문장의 단어나 구문 뿐만 아니라 시제 정보 및 문장의 문맥이나 뉘앙스에 기초하여 각 단어나 구문에 대응하는 동작의 동작 정보 및/또는 감정 정보를 생성할 수 있다. In one embodiment, the syntax analyzer 112 generates motion information so that a character performs an motion corresponding to (matching) each word and/or phrase constituting a sentence. However, depending on the content or nuance of the sentence, the character does not necessarily perform an action consistent with the word (verb) included in the sentence. For example, if the sentence uttered by the user is future tense, such as 'I should have run', or subjunctive, such as 'I would have run', the character does not necessarily perform a running motion, so the syntax analysis unit 112 ' In response to the word 'run', the motion information of the running motion may not be generated (eg, in this case, 'action to think' or 'action to regret' may be generated as motion information rather than 'action to back', Furthermore, in this case, emotions such as 'regret' or 'sadness' may be generated as emotion information), and the syntactic analysis unit 112 may generate motion information and/or emotion information based on the overall meaning or nuance of the sentence. desirable. Therefore, in an embodiment in which the meta data further includes tense information, the syntax analyzer 112 performs an operation corresponding to each word or phrase based on not only the word or phrase of the sentence but also the tense information and the context or nuance of the sentence. Information and/or emotional information may be generated.

분석 모듈(110)은 문장을 발화하는 사용자의 감정에 관한 정보를 생성하기 위해 음성 분석부(113)를 포함한다. 음성 분석부(113)는 사용자가 발화하는 음성을 수신하고 이로부터 음성의 톤, 피치, 발화 속도 등 하나 이상의 음성신호의 분석기준에 따라 분석하고, 분석 결과에 따라 사용자(발화자)의 감정 상태를 인식할 수 있다. The analysis module 110 includes a voice analysis unit 113 to generate information about the emotion of the user who utters the sentence. The voice analysis unit 113 receives the voice spoken by the user, analyzes it according to one or more voice signal analysis criteria such as tone, pitch, and speech speed of the voice, and determines the emotional state of the user (speaker) according to the analysis result. Recognizable.

음성 분석부(113)가 사용자의 감정을 인식하기 위해 종래 공지된 다양한 방식이 적용될 수 있다. 예를 들어 음성 분석부(113)는 발화하는 음성의 주파수 변화, 발화 속도 등을 고려할 수 있다. 예를 들어, 사용자가 발화하는 음성의 주파수 변화(또는 음성 내 음절의 높낮이 변화)를 측정하여 사용자의 감정상태를 감지할 수 있다. 일 실시예에서 음성 분석부(113)는 사용자가 발화하는 문장 전체에 대해 하나의 감정 상태를 인식할 수 있다. 보다 바람직한 실시예에서 음성 분석부(113)는 문장내 각 단어별 및/또는 구문별로 해당 단어나 구문에 대응하는 감정 상태를 분석할 수도 있다. In order for the voice analyzer 113 to recognize the user's emotion, various conventionally known methods may be applied. For example, the voice analysis unit 113 may consider a change in the frequency of a spoken voice, a speaking speed, and the like. For example, a user's emotional state may be detected by measuring a frequency change (or a change in pitch of a syllable in a voice) of a voice uttered by the user. In one embodiment, the voice analysis unit 113 may recognize one emotional state for all sentences uttered by the user. In a more preferred embodiment, the voice analyzer 113 may analyze an emotional state corresponding to a corresponding word or phrase for each word and/or phrase in a sentence.

분석 모듈(110)은 사용자의 감정에 관한 정보를 생성하기 위해 표정 분석부(115)를 더 포함할 수 있다. 표정 분석부(115)는 예컨대 카메라로 촬영한 사용자의 얼굴 표정을 수신하고 이로부터 사용자의 감정을 인식할 수 있다. 얼굴 표정으로부터 감정을 인식하는 것은 당업계에 공지된 기술이며 예컨대 한국 등록특허 제10-1317047호 (얼굴표정을 이용한 감정인식 장치 및 그 제어방법) 등에 개시되어 있다. The analysis module 110 may further include a facial expression analyzer 115 to generate information about the user's emotion. The facial expression analysis unit 115 may receive, for example, a user's facial expression captured by a camera and recognize the user's emotion therefrom. Recognizing emotions from facial expressions is a technique known in the art, and is disclosed in, for example, Korean Patent Registration No. 10-1317047 (Emotion Recognition Apparatus Using Facial Expressions and Control Method Thereof).

캐릭터 데이터 생성부(114)는 캐릭터에 부여할 특징(이하 '캐릭터 특징'이라고도 함)을 나타내는 데이터(이하 '캐릭터 데이터'라고도 함)를 생성하는 기능부이다. 일 실시예에서 캐릭터 특징은 캐릭터의 감정, 성별, 나이, 및 외모 중 적어도 하나를 포함할 수 있고 이에 따라 캐릭터 데이터는 감정 데이터, 성별 데이터, 나이 데이터, 및 외모 데이터 중 적어도 하나를 포함할 수 있다. The character data generation unit 114 is a functional unit that generates data (hereinafter also referred to as 'character data') representing characteristics to be given to a character (hereinafter also referred to as 'character characteristics'). In an embodiment, the character characteristics may include at least one of the character's emotion, gender, age, and appearance, and thus the character data may include at least one of emotion data, gender data, age data, and appearance data. .

캐릭터 데이터 생성부(114)는 구문 분석부(112)가 생성한 구문 데이터, 및 음성 분석부(113)와 표정 분석부(115)에서 판단한 감정 정보를 수신하고 이들 중 적어도 하나에 기초하여 캐릭터 데이터를 생성할 수 있다. The character data generation unit 114 receives the syntax data generated by the syntax analysis unit 112 and the emotion information determined by the voice analysis unit 113 and the expression analysis unit 115, and character data based on at least one of them. can create

일 예로서, 구문 데이터에서 포함된 문장기호나 문장의 단어 및/또는 구문이 감정 판단에 기여할 수 있다. 예를 들어 문장 내에 감정을 나타내는 특정 단어(예컨대 감탄사나 의성어, 의태어 등)가 포함되어 있으면 그에 대응하여 기쁨, 슬픔, 또는 놀라움 등의 감정이라고 판단할 수 있다. 따라서 캐릭터 데이터 생성부(114)는 이러한 구문 데이터 및 음성 분석부(113)와 표정 분석부(115)에서 분석된 감정 정보에 기초하여 문장의 각 단어 단위로 또는 각 구문 단위로 각각 대응되는 감정을 선택할 수 있다. 이 때 감정의 종류는 기쁨, 슬픔, 화남, 놀람, 공포 등으로 분류되어 있고, 문장의 각 단어마다 및/또는 각 구문마다 감정이 하나씩 매칭될 수 있다. 대안적 실시예에서, 문장의 각 단어마다 및/또는 각 구문마다 하나 이상의 감정이 복합적으로 매칭될 수도 있고, 이 경우 하나의 단어 및/또는 구문에 매칭되는 복수개의 감정들에 대해 가중치가 적용되어 복합적인 감정이 매칭될 수 있다. As an example, punctuation marks or words and/or phrases of sentences included in the syntax data may contribute to the emotion determination. For example, if a specific word (for example, exclamation mark, onomatopoeia, mimetic word, etc.) representing an emotion is included in the sentence, it may be determined that the emotion is joy, sadness, or surprise in response thereto. Therefore, the character data generation unit 114 generates corresponding emotions in units of words or units of sentences based on the syntax data and the emotion information analyzed by the voice analysis unit 113 and the facial expression analysis unit 115. You can choose. At this time, the types of emotions are classified into joy, sadness, anger, surprise, fear, and the like, and one emotion may be matched for each word and/or each phrase of the sentence. In an alternative embodiment, one or more emotions may be complexly matched for each word and/or each phrase of a sentence, and in this case, a weight is applied to a plurality of emotions matched to one word and/or phrase. Complex emotions can be matched.

캐릭터 데이터 생성부(114)는 구문 분석부(112)가 생성한 구문 데이터, 음성 분석부(113)에서 판단한 음성 정보, 및 표정 분석부(115)에서 획득한 얼굴 표정 중 적어도 하나에 기초하여 성별 데이터, 나이 데이터, 및 외모 데이터를 생성할 수 있다. The character data generation unit 114 determines the gender based on at least one of the syntax data generated by the syntax analysis unit 112, the voice information determined by the voice analysis unit 113, and the facial expression obtained by the expression analysis unit 115. data, age data, and appearance data may be generated.

예를 들어 캐릭터의 성별과 나이는 사용자의 음성 및/또는 사용자의 얼굴을 분석하여 판단할 수 있고, 사용자가 발화한 문장에 사용된 단어나 구문을 분석하여 성별 및/또는 나이 판단의 추가적 또는 보조적 기준으로 사용할 수 있다. 캐릭터의 외모는 예컨대 캐릭터가 뚱뚱한 몸매인지 홀쭉한 몸매인지 등 캐릭터의 외형에 관한 정보이며, 예를 들어 사용자의 음성 및/또는 사용자의 얼굴을 분석하여 판단할 수 있다. For example, the gender and age of the character can be determined by analyzing the user's voice and/or the user's face, and additional or auxiliary gender and/or age determination can be made by analyzing words or phrases used in sentences uttered by the user. can be used as a standard. The character's appearance is information about the character's appearance, such as whether the character has a fat body or a skinny body, and can be determined by, for example, analyzing the user's voice and/or the user's face.

이와 같이 캐릭터 데이터 생성부(114)가 캐릭터의 감정, 성별, 나이, 및 외모를 판단하여 캐릭터 데이터를 생성하는 것은 예컨대 딥러닝 알고리즘을 이용하여 구현할 수 있다. 즉 다양한 음성신호와 문장을 학습 데이터로 이용하여 인공신경망을 기계학습 시킴으로써 임의의 음성신호에 대한 감정, 성별, 나이, 및 외모에 관한 정보를 출력하도록 구현할 수 있다. 또한 분석 모듈(110)의 상술한 각 구성요소들(111,112,113,114,115)의 각각은 하나 이상의 알고리즘이나 소프트웨어로 구현되거나 소프트웨어와 하드웨어 또는 펌웨어의 결합으로 구현될 수 있음을 당업자는 이해할 것이다. In this way, the character data generation unit 114 determining the emotion, gender, age, and appearance of the character to generate the character data can be implemented using, for example, a deep learning algorithm. That is, by machine learning an artificial neural network using various voice signals and sentences as learning data, information on emotion, gender, age, and appearance can be output for an arbitrary voice signal. In addition, those skilled in the art will understand that each of the above-described components 111 , 112 , 113 , 114 , and 115 of the analysis module 110 may be implemented with one or more algorithms or software, or may be implemented with a combination of software, hardware, or firmware.

애니메이션 아카이브(130)는 복수개의 애니메이션 동영상을 저장할 수 있다. 일 실시예에서 애니메이션 아카이브(130)는 복수개의 제스처 동영상 및 복수개의 얼굴 동영상을 포함한다. 각각의 제스처 동영상은 캐릭터가 취할 수 있는 각기 다른 동작을 각각 표현하는 짧은 길이의 동영상이다. 예를 들어 각 제스처 동영상은 뛰다, 앉다, 손을 들다 등 기본적인 동작을 표현하거나 기쁨, 슬픔, 화남 등 감정에 따른 동작을 표현한다. 예를 들어 도2는 일 실시예에 따라 캐릭터의 감정 분류에 따라 캐릭터의 동작을 표현하는 제스처 동영상의 일부를 예로서 나타내었다. 도시한 실시예에서는 감정의 종류를 놀람, 행복, 화남, 공포, 슬픔의 5가지로 분류하였고 각 감정에 따라 하나 이상의 기본 행동을 표현하는 제스처 동영상 및 하나 이상의 부가 행동을 표현하는 제스처 동영상을 포함할 수 있다. 도2에서는 감정을 5가지로 분류하였지만 이는 예시적인 것일 뿐이며 발명의 구체적 실시 상황에 따라 감정 분류 개수가 달라질 수 있음은 물론이다. The animation archive 130 may store a plurality of animation videos. In one embodiment, the animation archive 130 includes a plurality of gesture videos and a plurality of face videos. Each gesture video is a short length video that expresses each different motion that a character can take. For example, each gesture video expresses basic motions such as running, sitting, and raising a hand, or motions according to emotions such as joy, sadness, and anger. For example, FIG. 2 shows a part of a gesture video expressing a character's motion according to the character's emotion classification according to an embodiment, as an example. In the illustrated embodiment, the types of emotions are classified into five types of surprise, happiness, anger, fear, and sadness, and each emotion includes a gesture video expressing one or more basic actions and a gesture video expressing one or more additional actions. can Although emotions are classified into five types in FIG. 2 , this is only exemplary and the number of emotion categories may vary according to specific implementation conditions of the invention.

각 제스처 동영상마다 식별정보(예컨대 식별번호나 메타 데이터 등)나 라벨이 부여되어 있고 하나 이상의 동작 및/또는 감정이 하나 이상의 제스처 동영상의 식별정보나 라벨에 매칭되어 있을 수 있다. Identification information (eg, identification number or meta data) or labels may be assigned to each gesture video, and one or more motions and/or emotions may be matched with identification information or labels of one or more gesture videos.

각각의 얼굴 동영상은 캐릭터가 취할 수 있는 각기 다른 얼굴 표정을 표현하는 짧은 길이의 동영상이다. 각 얼굴 동영상은 웃다, 울다, 찡그리다, 화내다 등 기본적인 감정 표현에 따른 얼굴 표정을 표현한다. 예를 들어 슬픈 표정의 얼굴 동영상은 눈썹 끝과 입꼬리가 내려가는 것을 표현하고 기쁜 표정의 동영상은 눈썹이 올라가고 입꼬리가 올라가는 것을 표현할 수 있다. 각 얼굴 동영상마다 식별정보나 라벨이 부여되어 있고 하나 이상의 감정이 하나 이상의 얼굴 동영상의 식별정보나 라벨에 매칭되어 있을 수 있다. Each face video is a short video that expresses different facial expressions a character can take. Each face video expresses facial expressions according to basic emotional expressions such as laughing, crying, frowning, and getting angry. For example, a video of a face with a sad expression can express the tip of the eyebrows and the corners of the mouth going down, and a video of a happy expression can express the raising of the eyebrows and the corners of the mouth. Identification information or labels are assigned to each face video, and one or more emotions may be matched with identification information or labels of one or more face videos.

일 실시예에서 애니메이션 아카이브(130)는 캐릭터 데이터의 캐릭터 특징에 따라 다양한 동작의 제스처 동영상 및/또는 얼굴 동영상을 포함할 수 있다. 예를 들어 '뛰다'라는 하나의 동작에 대해서도 캐릭터의 성별이나 나이 또는 외모에 따라 뛰는 동작이 다를 수 있고, '웃다' 또는 '울다' 등 감정 표현에 대해서도 캐릭터의 성별, 나이, 또는 외모에 따라 동작이 각각 다를 수 있다. 그러므로 바람직하게는 하나의 동작이나 감정에 대해 캐릭터의 특징에 따라 다양하고 세분화된 제스처 동영상 및/또는 얼굴 동영상을 구비하는 것이 바람직하다. In one embodiment, the animation archive 130 may include gesture videos and/or face videos of various motions according to character characteristics of character data. For example, even for one motion of 'run', the running motion may be different depending on the character's gender, age, or appearance, and for emotional expressions such as 'laughing' or 'crying', depending on the character's gender, age, or appearance Each action may be different. Therefore, it is preferable to provide various and subdivided gesture videos and/or face videos according to character characteristics for one motion or emotion.

각각의 제스처 동영상 및/또는 얼굴 동영상마다 부여되는 식별정보나 라벨은 사용자가 부여하는 것일 수도 있지만 바람직하게는 인공지능(AI) 등의 기계학습 알고리즘에 의해 자동적으로 부여될 수 있다. 예를 들어, 기계학습 알고리즘은 식별정보나 라벨이 표시된 제스처 동영상 또는 얼굴 동영상을 학습용 데이터로 이용하여 학습한 후 임의의 제스처 또는 얼굴 동영상에 대해 식별정보나 라벨을 표시할 수 있다. Identification information or labels assigned to each gesture video and/or face video may be assigned by a user, but may be automatically assigned by a machine learning algorithm such as artificial intelligence (AI). For example, a machine learning algorithm may display identification information or a label for an arbitrary gesture or face video after learning by using a gesture video or face video with identification information or a label as learning data.

각각의 제스처 동영상 및/또는 얼굴 동영상은 상술한 바와 같이 기본적인 동작이나 감정을 나타내는 짧은 길이의 단위 동영상이며 예를 들어 수분의 1초 내지 수초 사이의 길이를 갖는다. As described above, each gesture video and/or face video is a short unit video representing a basic motion or emotion, and has a length of, for example, between one minute and several seconds.

일 실시예에 각각의 제스처 동영상 및/또는 얼굴 동영상은 특정 캐릭터가 아직 입혀지지 않은 형태의 동영상일 수 있다. 예를 들어 제스처 동영상은 관절, 뼈대 등 몸체의 특징점의 움직임을 정의하는 동영상일 수 있고 얼굴 동영상은 눈, 코, 입 등 얼굴의 특징점의 움직임을 정의하는 동영상일 수 있으며, 이러한 제스처 및/또는 얼굴 동영상에 특정 캐릭터의 외관이 입혀지는 리타겟 작업은 본 발명에 따른 캐릭터 애니메이션 동영상을 생성하기 직전 또는 생성한 이후 단계에서 수행될 수 있음을 이해할 것이다. In one embodiment, each gesture video and/or face video may be a video in which a specific character is not yet put on. For example, a gesture video may be a video defining movement of body feature points such as joints and bones, and a face video may be a video defining movement of facial feature points such as eyes, nose, and mouth. These gestures and/or faces It will be understood that the retargeting task of applying the appearance of a specific character to the video can be performed immediately before or after generating the character animation video according to the present invention.

비주얼 매니저(120)는 사용자가 발화한 음성신호에 따른 동작과 얼굴 표정을 캐릭터에 입혀서 애니메이션 영상을 생성하는 기능부이다. 일 실시예에서 비주얼 매니저(120)는 분석모듈(110)에서 생성된 구문 데이터와 캐릭터 데이터를 수신하고, 이에 기초하여 애니메이션 아카이브(130)에서 적절한 제스처 애니메이션과 얼굴 애니메이션을 선택하고, 선택된 제스처 애니메이션과 얼굴 애니메이션을 구문 데이터와 캐릭터 데이터에 따라 블렌딩하여 캐릭터 애니메이션을 생성한다. The visual manager 120 is a functional unit that generates an animation image by applying motions and facial expressions according to a voice signal uttered by a user to a character. In one embodiment, the visual manager 120 receives the syntax data and character data generated by the analysis module 110, selects an appropriate gesture animation and facial animation from the animation archive 130 based on this, and selects the selected gesture animation and character data. Character animations are created by blending facial animations according to syntax data and character data.

일 실시예에서 비주얼 매니저(120)는 제스처 블렌딩부(121)와 얼굴 블렌딩부(122)를 포함한다. 제스처 블렌딩부(121)는 분석모듈(110)로부터 수신한 구문 데이터와 캐릭터 데이터에 기초하여 애니메이션 아카이브(130)에서 적절한 제스처 동영상을 선택한다. 예를 들어 제스처 블렌딩부(121)는 구문 데이터의 단어 및/또는 구문의 동작 정보와 캐릭터 데이터의 캐릭터 특징(성별, 나이, 감정, 외모 중 적어도 하나)에 기초하여 하나 이상의 제스처 동영상을 선택할 수 있고, 단어 및/또는 구문의 발화한 시간 순서대로 이에 대응하는 제스처 동영상을 블렌딩하여 시간적으로 연결된 하나의 애니메이션을 생성할 수 있다. In one embodiment, the visual manager 120 includes a gesture blending unit 121 and a face blending unit 122. The gesture blending unit 121 selects an appropriate gesture video from the animation archive 130 based on the syntax data and character data received from the analysis module 110 . For example, the gesture blending unit 121 may select one or more gesture videos based on motion information of words and/or phrases of phrase data and character characteristics (at least one of gender, age, emotion, and appearance) of character data. One temporally connected animation may be created by blending gesture videos corresponding to words and/or phrases in the chronological order of utterance.

예를 들어 얼굴 블렌딩부(122)는 구문 데이터의 단어 및/또는 구문의 감정 정보와 캐릭터 데이터의 특징(성별, 나이, 감정, 외모 중 적어도 하나)에 기초하여 하나 이상의 얼굴 동영상을 선택할 수 있고, 단어 및/또는 구문의 발화한 시간 순서대로 이에 대응하는 얼굴 표정의 변화를 제스처 동영상과 블렌딩한다. 또한 일 실시예에서 얼굴 블렌딩부(122)는 구문 데이터의 문장과 캐릭터의 입술 모양을 맞추는 입술 블렌딩(립싱크)도 수행할 수 있다. 예를 들어 얼굴 블렌딩부(122)는 구문 데이터의 문장(텍스트 정보)에 따른 각 단어의 모음의 발화 시점과 캐릭터의 입모양의 타이밍을 맞추어 입술 블렌딩을 수행할 수 있다. For example, the face blending unit 122 may select one or more face videos based on emotion information of words and/or phrases of phrase data and characteristics (at least one of gender, age, emotion, and appearance) of character data, Changes in facial expressions corresponding to words and/or phrases in the utterance time sequence are blended with the gesture video. In addition, in one embodiment, the face blending unit 122 may also perform lip blending (lip sync) to match the shape of the character's lips to the sentence of the syntax data. For example, the face blending unit 122 may perform lip blending by matching the timing of the utterance of each vowel of each word according to the sentence (text information) of the syntax data and the mouth shape of the character.

이제 도3을 참조하여 캐릭터 애니메이션 생성 시스템(100)의 예시적 동작을 설명하기로 한다. 도3을 참조하면, 단계(S10)에서 마이크(도시 생략) 등의 음성수신 장치를 통해 사용자가 발화하는 음성신호를 수신한다. 예를 들어 도3의 실시예에서 사용자가 "안녕하세요. 만나서 반가워요"라는 문장을 발화하였다고 가정한다. Referring now to FIG. 3, exemplary operation of the character animation generation system 100 will be described. Referring to FIG. 3, in step S10, a voice signal uttered by a user is received through a voice receiving device such as a microphone (not shown). For example, in the embodiment of FIG. 3 , it is assumed that the user utters the sentence "Hello. Nice to meet you."

단계(S20)에서 분석 모듈(110)의 STT 분석부(111)와 구문 분석부(112)에 의해 상기 문장을 구문 분석하여 구문 데이터를 생성한다. 예를 들어 STT 분석부(1110는 사용자가 발화한 음성신호를 '안녕하세요. 만나서 반가워요'라는 텍스트 데이터로 변환하고 구문 분석부(112)는 상기 문장을 구문 분석하여 각 단어나 구문에 따른 동작 정보(예컨대 인사하는 동작, 손을 흔드는 동작 등) 및 감정 정보(예를 들어 기쁨, 놀람 등의 감정)를 포함하는 메타 데이터를 생성할 수 있다. In step S20, the sentence is parsed by the STT analysis unit 111 and the syntax analysis unit 112 of the analysis module 110 to generate syntax data. For example, the STT analyzer 1110 converts the voice signal uttered by the user into text data of 'Hello, nice to meet you', and the syntax analyzer 112 parses the sentence to provide operation information according to each word or phrase ( Meta data including, for example, greeting motion, hand waving motion, etc.) and emotion information (eg joy, surprise, etc.) may be generated.

또한 단계(S20)와 동시에 또는 순차적으로, 단계(S30)에서 분석 모듈(110)의 음성 분석부(113)가 사용자의 음성신호를 분석하고 (예컨대 카메라 등의 촬영 장치가 있는 경우) 표정 분석부(115)가 사용자의 얼굴 표정을 분석한다. 각 분석에 따른 정보가 캐릭터 데이터 생성부(114)로 전달되고 캐릭터 데이터 생성부(114)는 이에 기초하여 성별, 나이, 감정, 및 외모 중 적어도 하나에 대한 캐릭터 특징을 포함하는 캐릭터 데이터를 생성할 수 있다. 대안적으로 캐릭터 데이터 생성부(114)는 구문 데이터에 포함된 문장(텍스트 정보)와 동작 정보 및 감정 정보도 참조하여 캐릭터 데이터를 생성할 수 있다. In addition, simultaneously or sequentially with step S20, in step S30, the voice analysis unit 113 of the analysis module 110 analyzes the user's voice signal (for example, when there is a photographing device such as a camera), and the expression analysis unit 115 analyzes the user's facial expression. Information according to each analysis is transmitted to the character data generator 114, and the character data generator 114 generates character data including at least one of character characteristics of gender, age, emotion, and appearance based on the information. can Alternatively, the character data generator 114 may generate character data by referring to sentences (text information) included in the syntax data, motion information, and emotion information.

구문 데이터와 캐릭터 데이터가 비주얼 매니저(120)로 전달되고, 단계(S40)에서 비주얼 매니저(120)는 복수의 제스처 동영상이 저장된 애니메이션 아카이브(130)에서 상기 구문 데이터와 캐릭터 데이터에 매칭되는 하나 이상의 제스처 동영상을 선택한다. 예를 들어 비주얼 매니저(120)는 구문 데이터의 문장에 포함된 하나 이상의 단어 또는 구문 및 캐릭터 데이터에 포함된 캐릭터 특징에 기초하여 하나 이상의 제스처 동영상을 선택할 수 있다. Syntax data and character data are transferred to the visual manager 120, and in step S40, the visual manager 120 matches one or more gestures to the syntax data and character data in the animation archive 130 in which a plurality of gesture videos are stored. Choose a video. For example, the visual manager 120 may select one or more gesture videos based on one or more words or phrases included in sentences of phrase data and character features included in character data.

이 때 일 실시예에서 비주얼 매니저(120)는 구문 데이터의 시제 정보를 추가로 이용하여 제스처 동영상을 선택할 수 있다. 예를 들어 사용자가 발화한 문장이 미래형이거나 가정법이라고 판단하면 해당 단어나 구문이 직접적으로 나타내는 동작이 아닌 다른 동작을 선택할 수 있다. At this time, in one embodiment, the visual manager 120 may select a gesture video by additionally using the tense information of the syntax data. For example, if it is determined that the sentence uttered by the user is future tense or subjunctive, an action other than an action directly indicated by the corresponding word or phrase may be selected.

단계(S40)와 동시에 또는 순차적으로, 단계(S50)에서 비주얼 매니저(120)는 복수의 얼굴 동영상이 저장된 애니메이션 아카이브(130)에서 구문 데이터와 캐릭터 데이터에 매칭되는 하나 이상의 얼굴 동영상을 선택한다. 예를 들어 비주얼 매니저(120)는 구문 데이터의 문장에 포함된 하나 이상의 단어 또는 구문 및 캐릭터 데이터에 포함된 캐릭터 특징에 기초하여 하나 이상의 얼굴 동영상을 선택할 수 있다. Simultaneously or sequentially with step S40, in step S50, the visual manager 120 selects one or more face videos matching the phrase data and character data from the animation archive 130 in which a plurality of face videos are stored. For example, the visual manager 120 may select one or more face videos based on one or more words or phrases included in sentences of phrase data and character features included in character data.

그 후 비주얼 매니저(120)는 선택된 하나 이상의 제스처 동영상 및 하나 이상의 얼굴 동영상을 블렌딩한다(S60). 이 단계(S60)에서 캐릭터의 입술 모양을 사용자가 발화한 문장에 따라 립싱크하는 입술 블렌딩도 수행할 수 있다. 다음으로 단계(S70)에서 예컨대 리타겟 등의 추가 작업을 수행하여 최종적으로 캐릭터에 제스처와 얼굴이 블렌딩된 캐릭터 애니메이션 동영상을 생성할 수 있다. After that, the visual manager 120 blends the selected one or more gesture videos and one or more face videos (S60). In this step (S60), lip blending may also be performed in which the shape of the lips of the character is lip-synced according to the sentence uttered by the user. Next, in step S70, additional operations such as retargeting may be performed to finally create a character animation video in which gestures and faces are blended with the character.

도4는 일 실시예에 따라 캐릭터의 동작과 감정을 표현하는 애니메이션을 생성하는 또 다른 예를 나타낸다. 설명의 편의를 위해 도3의 일부 단계(S20, S30, S60, S70)를 도4에 표시하였다. 4 shows another example of generating an animation expressing a motion and emotion of a character according to an embodiment. For convenience of description, some steps (S20, S30, S60, S70) of FIG. 3 are shown in FIG.

도4를 참조하면, 사용자가 특정 문장을 발화하면 분석모듈(110)의 STT 분석부(111)와 구문 분석부(112)가 STT 분석 및 구문 분석을 수행하여 구문 데이터를 생성하고(S20) 음성 분석부(112)와 표정 분석부(115)가 음성신호와 얼굴 표정을 각각 분석하여 캐릭터 데이터를 생성한다(S30). Referring to FIG. 4, when a user utters a specific sentence, the STT analysis unit 111 and the syntax analysis unit 112 of the analysis module 110 perform STT analysis and syntax analysis to generate syntax data (S20) and voice The analysis unit 112 and the facial expression analysis unit 115 analyze the voice signal and the facial expression, respectively, to generate character data (S30).

구문 데이터와 캐릭터 데이터는 각각 비주얼 매니저(120)의 제스처 블렌딩부(121)와 얼굴 블렌딩부(122)로 전달되고 비주얼 매니저(120)는 구문 데이터와 캐릭터에 데이터에 기초하여 애니메이션 아카이브(130)에서 가정 적절한 하나 이상의 제스처 동영상과 얼굴 동영상을 선택하여 불러온다. Syntax data and character data are transferred to the gesture blending unit 121 and the face blending unit 122 of the visual manager 120, respectively, and the visual manager 120 in the animation archive 130 based on the syntax data and character data. Home Select and load one or more gesture videos and face videos as appropriate.

그 후 비주얼 매니저(120)는 선택된 하나 이상의 제스처 동영상과 얼굴 동영상을 블렌딩하고(S60) 캐릭터 애니메이션 동영상을 생성한다(S70). 이 때 예를 들어 사용자가 "어… 잠깐! 내가 바본 줄 알아?"라는 문장을 발화하였다고 가정하면, 비주얼 매니저(120)는 구문 데이터와 캐릭터 데이터에 기초하여, '어… 잠깐!'이라는 구문에 대응하여 생각하는 동작을 매칭하고 '내가'라는 단어에 대해 자신을 가리키는 동작을 매칭하고 '바본 줄 알아?'라는 구문에 대해 화를 내는 동작을 매칭하여 각각의 제스처 동영상을 선택하여 불러온다. Then, the visual manager 120 blends the selected one or more gesture videos and face videos (S60) and creates a character animation video (S70). At this time, for example, assuming that the user utters the sentence "Uh... Wait a minute! Do you think I'm an idiot?", the visual manager 120 calculates 'Uh... Each gesture video is created by matching the action of thinking in response to the phrase “Wait!”, matching the action of pointing to oneself for the word “I”, and matching the action of getting angry for the phrase “Do you think I’m an idiot?” select and call

또한 비주얼 매니저(120)는 구문 데이터와 캐릭터 데이터에 기초하여, '어… 잠깐!'이라는 구문에 대해 생각하는 얼굴 표정을 매칭하고 '내가 바본 줄 알아!'라는 구문에 대해 화를 내는 얼굴 표정을 매칭하여 각각의 얼굴 동영상을 선택하여 불러온다. In addition, the visual manager 120, based on the syntax data and the character data, 'uh... Each face video is selected and loaded by matching a facial expression thinking for the phrase 'Wait!' and matching an angry facial expression for the phrase 'I think I'm an idiot!'.

그 후 비주얼 매니저(120)는 이와 같이 선택된 제스처 동영상을 시간적으로(즉, 문장 발화 시간에 따라) 블렌딩하고 얼굴 동영상도 시간적으로(문장 발화 시간에 따라) 및 공간적으로(즉, 제스처와 합성하여) 블렌딩하여 캐릭터 애니메이션을 생성한다. 이 때 비주얼 매니저(120)는 문장의 각 단어의 발화 타이밍에 맞추어 입술 움직임을 블렌딩하여 립싱크를 시킬 수도 있다. After that, the visual manager 120 blends the selected gesture video temporally (ie, according to the sentence utterance time), and also temporally (according to the sentence utterance time) and spatially (ie, synthesized with the gesture) the face video. Blend to create character animations. At this time, the visual manager 120 may perform lip sync by blending lip movements according to the utterance timing of each word in the sentence.

이와 같이 본 발명의 일 실시예에 따르면 사용자가 발화하는 음성신호와 표정에 따라 그에 대응하는 적절한 제스처와 얼굴 표정을 캐릭터에 입혀서 캐릭터 애니메이션을 생성할 수 있으므로 한 문장 내에서도 시간적으로 다양한 감정 변화를 표현하고 그에 따른 제스처도 변화시킬 수 있다. As described above, according to one embodiment of the present invention, character animation can be created by applying appropriate gestures and facial expressions corresponding to the voice signal and facial expression uttered by the user to the character, so that various emotional changes can be expressed temporally within a sentence. Gestures can also be changed accordingly.

이제 도5 내지 도7을 참조하여 본 발명의 일 실시예에 따른 캐릭터 애니메이션 생성 시스템(100)과 무선케어 장치가 통합된 시스템을 설명하기로 한다. Now, referring to FIGS. 5 to 7 , a system in which the character animation generating system 100 according to an embodiment of the present invention and the wireless care device are integrated will be described.

도5를 참조하면, 본 발명의 일 실시예에 따른 무선케어장치(200)가 통합된 캐릭터 애니메이션 생성 시스템(100)을 블록도로 도시하였다. 여기서 애니메이션 생성 시스템(100)의 구성 및 동작은 도1 내지 도4를 참조하여 설명하였고 이하에서는 차이점을 위주로 설명하기로 한다. Referring to FIG. 5 , a character animation generating system 100 in which a wireless care device 200 according to an embodiment of the present invention is integrated is shown in a block diagram. Here, the configuration and operation of the animation generating system 100 have been described with reference to FIGS. 1 to 4, and hereinafter, differences will be mainly described.

도5를 참조하면, 애니메이션 생성 시스템(100)에서 생성한 동영상 데이터는 근거리 통신망(N2)과 광역 통신망(N1)을 경유하여 서버(300)에 저장될 수 있다. 여기서, 근거리 통신망(N2)은 무선 근거리 통신망일 수 있고 예를 들면 와이파이나 블루투스 통신을 지원하는 무선 근거리 통신망일 수 있다. 광역 통신망(N1)은 인터넷과 같은 통신망일 수 있다. Referring to FIG. 5 , video data generated by the animation creation system 100 may be stored in the server 300 via a local area network N2 and a wide area communication network N1. Here, the local area network N2 may be a wireless local area network, and may be, for example, a wireless local area network supporting Wi-Fi or Bluetooth communication. The wide area communication network N1 may be a communication network such as the Internet.

무선케어장치(200)는 사운드 또는 텍스트 인식 기반의 동영상 캐릭터 자동 생성 시스템으로부터 소정 거리(예를 들면, 1킬로미터) 이내에 설치될 수 있다. 여기서, 소정 거리는 사운드 또는 텍스트 인식 기반의 동영상 캐릭터 자동 생성 시스템과 근거리 무선 통신이 가능한 거리이다. The wireless care device 200 may be installed within a predetermined distance (eg, 1 kilometer) from a sound or text recognition based video character automatic generation system. Here, the predetermined distance is a distance at which short-distance wireless communication with a sound or text recognition-based automatic video character generation system is possible.

무선케어장치(200)는 무선 디바이스의 무선 신호를 감지할 수 있고, 감지된 무선 디바이스가 페이크 디바이스인지 여부를 판별할 수 있다. The wireless care device 200 may detect a wireless signal of a wireless device and determine whether the detected wireless device is a fake device.

무선케어장치(200)는, 구체적으로, 무선 디바이스의 타입을 추정하는 타입 추정 동작과, 무선 디바이스의 타입에 따른 취약점으로 무선 디바이스를 공격하여 무선 디바이스가 페이크 디바이스인지 여부를 판별하는 동작을 수행한다. Specifically, the wireless care device 200 performs a type estimation operation of estimating the type of the wireless device and an operation of determining whether the wireless device is a fake device by attacking the wireless device with a vulnerability according to the type of the wireless device. .

여기서, 타입 추정 동작은, 포트 스캐닝 동작과 프로토콜 스캐닝 동작의 결과에 따라서 무선 디바이스의 타입을 추정하는 동작이다.Here, the type estimation operation is an operation of estimating the type of the wireless device according to the results of the port scanning operation and the protocol scanning operation.

포트 스캐닝 동작은 무선 디바이스의 오픈 포트를 찾는 동작이고, 프로토콜 스캐닝 동작은 포트 스캐닝 동작의 수행결과로 알아낸 오픈 포트(Open Port)에서 사용하는 프로토콜을 찾는 동작이다.The port scanning operation is an operation to find an open port of a wireless device, and the protocol scanning operation is an operation to find a protocol used in an open port found as a result of performing the port scanning operation.

프로토콜 스캐닝 동작은, 오픈 포트(Open Port)의 종류를 확인하는 동작과, 오픈 포트의 종류에 따른 프로토콜 확인용 패킷을 작성하여 오픈 포트(Open Port)를 가진 무선 디바이스에게 전송하는 동작과, 무선 디바이스로부터 프로토콜 확인용 패킷에 대한 응답이 수신되는지를 확인하는 동작이다. 여기서, 응답은 오픈 포트(Open Port)를 가진 무선 디바이스의 배너(Banner) 정보와 서비스(Service) 정보 중 적어도 하나를 포함하며, 배너 정보 또는 서비스 정보가 무선 디바이스의 타입을 나타내는 정보를 포함한다. The protocol scanning operation includes an operation of checking the type of open port, an operation of creating a packet for protocol confirmation according to the type of open port and transmitting it to a wireless device having an open port, and an operation of transmitting the packet to the wireless device having an open port This is an operation to check whether a response to the packet for protocol verification is received from Here, the response includes at least one of banner information and service information of a wireless device having an open port, and the banner information or service information includes information indicating a type of wireless device.

타입 추정 동작은 프로토콜 스캐닝 동작의 수행결과로 찾은 프로토콜로부터 서비스의 종류를 추정하는 제1추정동작과, 무선 디바이스의 타입을 나타내는 정보로부터 서비스의 종류를 추정하는 제2추정동작과, 제1추정동작에 의해 추정된 서비스의 종류와 제2추정동작에 의해 추정된 서비스의 종류를 비교하는 동작과, 비교 결과 양자가 다를 경우에 무선 디바이스의 타입을 나타내는 정보로부터 오픈 포트(Open Port)를 가진 무선 디바이스의 타입을 추정하는 동작을 수행한다.The type estimation operation includes a first estimation operation of estimating the type of service from the protocol found as a result of performing the protocol scanning operation, a second estimation operation of estimating the type of service from information indicating the type of wireless device, and the first estimation operation. An operation of comparing the type of service estimated by the second estimation operation and the type of service estimated by the second estimation operation, and a wireless device having an open port from information indicating the type of the wireless device when both comparison results are different. Performs an operation of estimating the type of .

서버(300)는 도1을 참조하여 설명한 캐릭터의 동작 자동 생성 시스템과 통신적으로 연결되어 물리적으로 1개 이상의 장치 또는 기억장치, 운영체제, 펌웨어, 응용 프로그램, 통신부, 및 기타 리소스를 각각 구비하거나 일부 자원들을 공유하도록 구성될 수 있다. The server 300 is communicatively connected to the automatic character motion generation system described with reference to FIG. 1 and physically includes one or more devices or storage devices, operating systems, firmware, application programs, communication units, and other resources, respectively, or some of them. Can be configured to share resources.

도5에는 본 시스템의 설명을 위해서, 무선장치(15: 15a, 15b, 15c, 15d)를 추가적으로 도시하였다. In FIG. 5, wireless devices 15 (15a, 15b, 15c, 15d) are additionally shown for explanation of the present system.

무선케어장치(200)는 서버(300)와 애니메이션 생성 시스템(100)의 통신을 해킹할 수 있는 위험한 디바이스(이하 '페이크 디바이스'라고도 함)를 검출하고, 통신을 차단할 수 있다. 이하에서 무선케어장치(200)의 동작을 보다 상세히 설명하기로 한다. The wireless care device 200 may detect a dangerous device capable of hacking communication between the server 300 and the animation generating system 100 (hereinafter referred to as a 'fake device') and block the communication. Hereinafter, the operation of the wireless care device 200 will be described in more detail.

무선케어장치(200)는 무선 디바이스(15)의 통신을 모니터링할 수 있고, 근거리 무선 통신도 할 수 있다. 예를 들어 무선 디바이스(15)는 블루투스(Bluetooth) 또는 와이파이(Wi-Fi)와 같은 근거리 무선 통신 기술 표준에 따른 통신을 할 수 있다. 무선 디바이스(15)는 시스템(200)에 나쁜 영향을 줄 수도 있는 디바이스이고, 무선케어장치(200)는 무선 디바이스(15)에서 페이크 디바이스를 선별할 수 있다. 무선 디바이스(15)는 스마트폰이나 무선통신이 가능한 노트북과 같은 장치일 수 있으나, 이들에만 한정되는 것은 아니다.The wireless care device 200 may monitor communication of the wireless device 15 and may also perform short-range wireless communication. For example, the wireless device 15 may perform communication according to a short-range wireless communication technology standard such as Bluetooth or Wi-Fi. The wireless device 15 is a device that may adversely affect the system 200, and the wireless care device 200 may select a fake device from the wireless device 15. The wireless device 15 may be a device such as a smart phone or a laptop capable of wireless communication, but is not limited thereto.

무선케어장치(200)는 타입 추정동작 및 페이크 디바이스 선별 및 차단 동작을 수행할 수 있다.The wireless care device 200 may perform a type estimation operation and a fake device selection and blocking operation.

후술하겠지만, 무선케어장치(200)에 포함된 통신부(도6과 그 설명 참조)는 무선 디바이스(15)가 출력하는 무선 신호들을 감지할 수 있다. 여기서, 무선 신호는 예를 들면 블루투스 통신을 위해 출력되는 신호 또는 와이파이 통신을 위해 출력되는 신호일 수 있다. 무선케어장치(200)는 통신부에 의해 감지된 디바이스들 중에서 소정 기준에 따라 하나 이상의 디바이스를 타겟 디바이스로서 선별할 수 있다. 여기서, 소정 기준은 신호의 세기일 수 있다. As will be described later, the communication unit included in the wireless care device 200 (see FIG. 6 and its description) can detect wireless signals output by the wireless device 15. Here, the wireless signal may be, for example, a signal output for Bluetooth communication or a signal output for Wi-Fi communication. The wireless care device 200 may select one or more devices as a target device according to a predetermined criterion among devices detected by the communication unit. Here, the predetermined criterion may be signal strength.

후술하겠지만, 무선케어장치(200)에 포함된 진단모듈은, 예를 들면, 타겟 디바이스(15)의 타입을 추정할 수 있고, 또한 타겟 디바이스(15)가 페이크 디바이스인지 여부를 판단할 수 있다.As will be described later, the diagnosis module included in the wireless care device 200 can, for example, estimate the type of the target device 15 and also determine whether the target device 15 is a fake device.

본 실시예에서, 무선 디바이스(15)의 갯수는 각각 4개로 도시되어 있으나, 이러한 갯수는 예시적인 것으로서 이보다 적거나 또는 많을 수 있다. 이하에서는, 무선 디바이스(15)가 타겟 디바이스라고 가정하고, 타입 추정동작, 페이크 디바이스 선별동작, 및 차단동작을 순차적으로 설명하기로 한다. In this embodiment, the number of wireless devices 15 is shown as four each, but this number is illustrative and may be less or more than this number. Hereinafter, assuming that the wireless device 15 is a target device, a type estimation operation, a fake device selection operation, and a blocking operation will be sequentially described.

타입 추정 동작type estimation behavior

타겟 디바이스(15)의 타입을 추정하는 동작이다. 본 실시예에서, 진단모듈은 포트 스캐닝(Port Scanning) 동작과, 프로토콜 스캐닝(Protocol Scanning) 동작과, 타입 추정 동작(Type Assumption)을 수행할 수 있다. This is an operation of estimating the type of the target device 15. In this embodiment, the diagnosis module may perform a port scanning operation, a protocol scanning operation, and a type assumption operation.

포트 스캐닝(Port Scanning) 동작은 타겟 디바이스(15)의 오픈 포트(Open Port)를 찾는 것이다. 즉, 포트 스캐닝(Port Scanning) 동작은 타겟 디바이스(15a), 타겟 디바이스(15b), 타겟 디바이스(15c), 및 타겟 디바이스(15d) 각각에 대하여 어떤 포트가 오픈되어 있는지를 확인하는 동작이다.A port scanning operation is to find an open port of the target device 15 . That is, the port scanning operation is an operation of checking which ports are open for each of the target device 15a, the target device 15b, the target device 15c, and the target device 15d.

포트 스캐닝(Port Scanning) 동작은 예를 들면, 풀 스캐닝(FULL SCNNING) 또는 스텔스 스캐닝(STEALTH SCANNING) 이라 불리우는 기술들에 의해 수행될 수 있다. 풀 스캐닝은 완벽한 TCP 세션(Session)을 맺어서 열려있는 포트를 확인하는 기술이다. 스텔스 스캐닝은 하프 스캔(half scan) 기술의 일종이며, 포트 확인용 패킷을 전송하고 그러한 포트 확인용 패킷에 대한 응답(response)이 오면 응답한 포트가 열려있는 것이고, 응답이 오지 않으면 포트가 닫혀 있는 것으로 판단한다. 스텔스 스캐닝은 예를 들면, FIN, NULL, 또는 XMASH 일 수 있다.The port scanning operation may be performed by techniques called, for example, full scanning or stealth scanning. Full scanning is a technique that establishes a complete TCP session and checks open ports. Stealth scanning is a kind of half scan technology. A packet for port checking is transmitted and when a response to the port checking packet is received, the responded port is open. If no response is received, the port is closed. judge it to be Stealth scanning can be, for example, FIN, NULL, or XMASH.

포트(Port)는 네트워크 서비스나 특정 프로세스를 식별하는 논리 단위이며, 포트를 사용하는 프로토콜(Protocol)은 예를 들면 전송 계층 프로토콜이다. 전송 계층 프로토콜의 예를 들면 전송 제어 프로토콜(TCP)과 사용자 데이터그램 프로토콜(UDT)와 같은 것일 수 있다. 포트들은 번호로 구별되며, 이러한 번호를 포트 번호라고 부른다. 예를 들면, 포트 번호는 IP 주소와 함께 사용된다.A port is a logical unit that identifies a network service or a specific process, and a protocol using a port is, for example, a transport layer protocol. Examples of transport layer protocols may be Transmission Control Protocol (TCP) and User Datagram Protocol (UDT). Ports are identified by numbers, and these numbers are called port numbers. For example, port numbers are used with IP addresses.

포트 번호는 예를 들면 3가지 종류로 분류될 수 있다. Port numbers can be classified into three types, for example.

포트 번호가 0번 ~ 1023번에 속하면 잘 알려진 포트(well-known port)이고, 포트 번호가 1024번 ~ 49151번에 속하면 등록된 포트(registered port)이고, 포트 번호가 49152번 ~ 65535번에 속하면 동적 포트(dynamic port)이다. 한편, 잘 알려진 포트의 대표적인 예를 들면, 20번: FTP(data), 21번: FTP(제어), 22번: SSH, 23번: 텔넷, 53번: DNS, 80번: 월드 와이드 웹 HTTP, 119번: NNTP, 443번: TLS/SSL 방식의 HTTP 이다. 이러한 포트 번호들과 포트 종류는 예시적인 것임을 당업자는 용이하게 알 수 있을 것이다.If the port number is from 0 to 1023, it is a well-known port, if the port number is from 1024 to 49151, it is a registered port, and if the port number is from 49152 to 65535 If it belongs to , it is a dynamic port. On the other hand, representative examples of well-known ports include: 20: FTP (data), 21: FTP (control), 22: SSH, 23: Telnet, 53: DNS, 80: World Wide Web HTTP, 119: NNTP, 443: TLS/SSL HTTP. Those skilled in the art will readily appreciate that these port numbers and port types are exemplary.

본 발명의 설명의 목적을 위해서, 타겟 디바이스(15a)의 오픈 포트는 80번 포트이고, 타겟 디바이스(15b)의 오프 포트는 23번 포트이고, 타겟 디바이스(15c)의 오픈 포트는 5555번 포트이고, 타겟 디바이스(15d)의 오픈 포트는 5559번 포트라고 가정한다.For purposes of explanation of the present invention, the open port of target device 15a is port 80, the off port of target device 15b is port 23, the open port of target device 15c is port 5555, , it is assumed that the open port of the target device 15d is port 5559.

포트 스캐닝(Port Scanning) 동작은 타겟 디바이스(15)의 오픈 포트(Open Port)를 찾는 동작이다. 예를 들면, 진단모듈은 포트 스캐닝 동작을 통해서, 타겟 디바이스(15a)의 오픈 포트는 80번 포트가, 타겟 디바이스(15b)의 오프 포트는 23번 포트이고, 타겟 디바이스(15c)의 오픈 포트는 5555번 포트이고, 타겟 디바이스(15d)의 오픈 포트는 5559번 포트라는 것을 알아낸다.A port scanning operation is an operation of finding an open port of the target device 15 . For example, the diagnostic module performs a port scanning operation, the open port of the target device 15a is port 80, the off port of the target device 15b is port 23, and the open port of the target device 15c is port 23. It finds out that it is port 5555 and that the open port of the target device 15d is port 5559.

프로토콜 스캐닝(Protocol Scanning) 동작은 오픈 포트(Open Port)에서 사용되는 프로토콜의 종류를 알기 위한 동작이다. 여기서, 오픈 포트는 포트 스캐닝 동작에 의해 알아낸 것이다. 예를 들면, 진단모듈은 타겟 디바이스(15a)의 오픈 포트인 80번 포트에서 사용되는 프로토콜이 무엇인지를 찾는다.A protocol scanning operation is an operation for knowing the type of protocol used in an open port. Here, the open port is found by port scanning operation. For example, the diagnosis module searches for a protocol used in port 80, which is an open port of the target device 15a.

또한, 진단모듈은 타겟 디바이스(15b)의 23번 포트에서 사용되는 프로토콜과, 타겟 디바이스(15c)의 5555번 포트에서 사용되는 프로토콜과, 타겟 디바이스(15d)의 5559번 포트에서 사용되는 프로토콜이 무엇인지를 각각 찾는다. In addition, the diagnosis module determines which protocol is used in the port 23 of the target device 15b, the protocol used in the port 5555 of the target device 15c, and the protocol used in the port 5559 of the target device 15d. Find each cognition.

진단모듈에 의해 수행되는 프로토콜 스캐닝 동작은, 오픈 포트의 종류를 확인하는 동작, 오픈 포트의 종류에 따라서 오픈 포트에 보낼 패킷(이하, '프로토콜 확인용 패킷')를 작성하는 동작, 프로토콜 확인용 패킷을 상기 오픈 포트를 가진 무선 디바이스에게 전송하는 동작, 및 프로토콜 확인용 패킷을 전송한 상기 무선 디바이스로부터 응답이 수신되는지를 확인하는 동작을 포함한다.The protocol scanning operation performed by the diagnosis module includes an operation to check the type of open port, an operation to create a packet to be sent to the open port according to the type of open port (hereinafter referred to as 'protocol checking packet'), and an operation to check the protocol. An operation of transmitting to the wireless device having the open port, and an operation of confirming whether a response is received from the wireless device that has transmitted the packet for protocol confirmation.

프로토콜 확인용 패킷은 예를 들면 스크립트(Script)일 수 있다.A packet for protocol confirmation may be, for example, a script.

오픈 포트의 종류를 확인하는 동작은, 포트 스캐닝 동작에 의해 알아낸 오픈 포트의 종류가 무엇인지를 확인하는 동작이다. 예를 들면, 오픈 포트의 종류를 확인하는 동작은 상기 오픈 포트가 잘 알려진 포트(well-known port), 등록된 포트(registered port), 또는 동적 포트(dynamic port) 중 어디에 해당되는지를 확인하는 동작이다. 오픈 포트의 종류를 확인하는 동작의 수행을 위해서, 포트 번호에 따라서 포트의 종류가 분류된 데이터(예를 들면, <표1>)(이하, '포트 종류 데이터')가 미리 준비되어 있어야 한다. 이러한 '포트 종류 데이터'는 무선케어장치(200)에 의해 저장되어 관리될 수 있다. The operation of checking the type of the open port is an operation of checking the type of the open port found through the port scanning operation. For example, the operation of checking the type of open port is an operation of checking whether the open port corresponds to a well-known port, a registered port, or a dynamic port. am. In order to perform the operation of checking the type of open port, data (eg, <Table 1>) in which the type of port is classified according to the port number (hereinafter referred to as 'port type data') must be prepared in advance. Such 'port type data' may be stored and managed by the wireless care device 200 .

일 실시예에 따르면, 진단모듈은, '포트 종류 데이터'를 참조함으로써, 상기 오픈 포트의 종류를 알 수 있다. 예를 들면, 진단모듈은 타겟 디바이스(15a)의 80번 포트와 타겟 디바이스(15b)의 23번 포트는 잘 알려진 포트(well-known port)이고, 타겟 디바이스(15c)의 5555번 포트와 타겟 디바이스(15d)의 5559번 포트는 동적 포트(dynamic port)임을 알 수 있다. According to one embodiment, the diagnosis module can know the type of the open port by referring to 'port type data'. For example, in the diagnosis module, port 80 of the target device 15a and port 23 of the target device 15b are well-known ports, and port 5555 of the target device 15c and the target device 15c are well-known ports. It can be seen that port 5559 in (15d) is a dynamic port.

진단모듈은, 오픈 포트의 종류에 맞는 프로토콜 확인용 패킷을 작성하는 동작을 수행한다. The diagnosis module performs an operation of creating a packet for checking a protocol suitable for the type of open port.

예를 들면, 타겟 디바이스(15a)의 80번 포트는 월드 와이드 웹 HTTP 프로토콜을 사용하는 것으로 잘 알려진 포트(well-known port)이므로, 웹 HTTP 프로토콜을 사용하여 프로토콜 확인용 패킷을 작성하여 타겟 디바이스(15a)에게 전송한다. 타겟 디바이스(15a)로부터 웹 HTTP 프로토콜을 이용하여 작성된 프로토콜 확인용 패킷에 대한 응답이 있으면, 진단모듈은 타겟 디바이스(15a)의 80번 포트가 웹 HTTP 프로토콜을 이용한다고 결정한다. For example, since port 80 of the target device 15a is a well-known port for using the World Wide Web HTTP protocol, a packet for protocol confirmation is created using the Web HTTP protocol, so that the target device ( 15a). If there is a response from the target device 15a to the protocol check packet written using the web HTTP protocol, the diagnosis module determines that port 80 of the target device 15a uses the web HTTP protocol.

한편, 타겟 디바이스(15a)로부터 웹 HTTP 프로토콜을 이용하여 작성된 프로토콜 확인용 패킷에 대한 응답이 없으면, 진단모듈은 타겟 디바이스(15a)의 80번 포트가 웹 HTTP 프로토콜을 이용하지 않는다고 결정한다. 이러한 경우, 진단모듈은 월드 와이드 웹 HTTP 프로토콜이 아닌 다른 프로토콜을 사용하여 프로토콜 확인용 패킷을 작성한 후 타겟 디바이스(15a)에게 전송한다. On the other hand, if there is no response from the target device 15a to the packet for protocol confirmation written using the web HTTP protocol, the diagnosis module determines that port 80 of the target device 15a does not use the web HTTP protocol. In this case, the diagnosis module uses a protocol other than the World Wide Web HTTP protocol to create a packet for protocol confirmation and transmits the packet to the target device 15a.

타겟 디바이스(15a)로부터 웹 HTTP 프로토콜이 아닌 다른 프로토콜로 작성된 프로토콜 확인용 패킷에 대한 응답이 있으면, 진단모듈은 타겟 디바이스(15a)의 80번 포트가 상기 다른 프로토콜을 이용한다고 결정한다. 만약, 타겟 디바이스(15a)로부터 웹 HTTP 프로토콜이 아닌 상기 다른 프로토콜로 작성된 프로토콜 확인용 패킷에 대한 응답이 없으면, 진단모듈은 타겟 디바이스(15a)의 80번 포트가 상기 다른 프로토콜을 이용하지 않는다고 결정한다. 이후, 타겟 디바이스(15a)는 타겟 디바이스(15a)로부터 응답이 올때까지 또 다른 프로토콜을 사용하여 프로토콜 확인용 패킷을 작성하여 전송한다. 진단모듈은 상술한 방법에 의해 타겟 디바이스(15)의 각각의 오픈 포트에서 실제 사용되는 프로토콜의 종류를 알아 낸다.If there is a response from the target device 15a to the packet for protocol confirmation written in a protocol other than the web HTTP protocol, the diagnosis module determines that port 80 of the target device 15a uses the other protocol. If there is no response from the target device 15a to the protocol confirmation packet written in the other protocol than the web HTTP protocol, the diagnosis module determines that port 80 of the target device 15a does not use the other protocol. . Thereafter, the target device 15a creates and transmits a protocol confirmation packet using another protocol until a response comes from the target device 15a. The diagnosis module finds out the type of protocol actually used in each open port of the target device 15 by the above-described method.

진단모듈은, 상술한 포트 스캐닝 동작의 수행결과와 프로토콜 스캐닝(Protocol Scanning) 동작의 수행결과 중 적어도 하나의 결과를 이용하여, 타겟 디바이스(15)의 각각의 타입(type)을 추정하는 타입 추정 동작(Type Assumption)을 수행한다. The diagnostic module performs a type estimation operation for estimating each type of the target device 15 by using at least one result of performing the above-described port scanning operation and performing the protocol scanning operation. (Type Assumption).

일 실시예에 따르면, 진단모듈에 의해 수행되는 타입 추정 동작(Type Assumption)은, 프로토콜 스캔 동작의 수행결과로 알아낸 프로토콜의 종류로부터 서비스의 종류를 추정하는 동작과, 그렇게 추정된 서비스의 종류로부터 무선 디바이스의 타입을 추정하는 동작을 포함한다.According to one embodiment, the type assumption performed by the diagnostic module includes an operation of estimating the type of service from the type of protocol found as a result of performing the protocol scan operation, and the type of service estimated as such. and estimating the type of wireless device.

프로토콜의 종류로부터 서비스의 종류를 추정하는 동작은, 통상적으로 서비스마다 주로 사용되는 프로토콜이 정해져 있다는 경험에 기초한 것이다. 예를 들면, RTSP, RTP, 또는 RTCP 프로토콜은, 주로 스트리밍 서비스를 지원한다. 즉, 프로토콜마다 주로 지원되는 서비스들을 정의한 데이터(이하, '프로토콜-서비스 매핑(mapping) 데이터'가 준비되면, 진단모듈은 '프로토콜-서비스 매핑 데이터'를 이용하여, 프로토콜의 종류로부터 서비스의 종류를 추정할 수 있다. '프로토콜-서비스 매핑 데이터'는 무선케어장치(200)에 의해 저장되어 관리될 수 있다.The operation of estimating the type of service from the type of protocol is usually based on the experience that a mainly used protocol is determined for each service. For example, RTSP, RTP, or RTCP protocols mainly support streaming services. That is, when data defining services mainly supported for each protocol (hereinafter referred to as 'protocol-service mapping data') is prepared, the diagnostic module determines the type of service from the type of protocol by using the 'protocol-service mapping data'. 'Protocol-service mapping data' can be stored and managed by the wireless care device 200.

서비스의 종류로부터 타겟 디바이스(15)의 타입을 추정하는 동작도, 통상적으로 무선 디바이스들의 타입별로 주로 사용되는 서비스가 정해져 있다는 경험에 기초한 것이다. 예를 들면, RTSP, RTP, 또는 RTCP 프로토콜은 주로 스트리밍 서비스를 지원하고, 이러한 스트리밍 서비스는 예를 들면 IP TV와 같은 무선 디바이스에 의해 제공된다. 즉, 서비스마다 주로 제공되는 무선 디바이스들의 타입을 정의한 데이터(이하, '서비스-타입 매핑(mapping) 데이터'가 준비되면, 진단모듈은 '서비스-타입 매핑 데이터'를 이용하여, 서비스의 종류로부터 무선 디바이스의 타입을 추정할 수 있다. '서비스-타입 매핑 데이터'는 무선케어장치(200)에 의해 저장되어 관리될 수 있다. The operation of estimating the type of the target device 15 from the type of service is also based on experience that a service mainly used for each type of wireless devices is usually determined. For example, RTSP, RTP, or RTCP protocols mainly support streaming services, and these streaming services are provided by wireless devices such as IP TVs, for example. That is, when data defining the types of wireless devices mainly provided for each service (hereinafter referred to as 'service-type mapping data') is prepared, the diagnostic module uses the 'service-type mapping data' to determine the type of service The device type may be estimated, and 'service-type mapping data' may be stored and managed by the wireless care device 200.

한편, 프로토콜 확인용 패킷에 대한 응답에는 타겟 디바이스(15)의 배너(Banner) 정보와 서비스(Service) 정보 중 적어도 하나를 포함할 수 있다. Meanwhile, the response to the protocol confirmation packet may include at least one of banner information and service information of the target device 15 .

프로토콜 확인용 패킷에 대한 응답에 포함된 배너(Banner) 정보에는 통상적으로, 타겟 디바이스(15)에서 사용되는 운영체제(Operating System)가 어떤 종류인지를 나타내는 데이터가 포함되어 있다. 진단모듈은, 운영체제의 종류를 알면 서비스의 종류를 알거나 또는 타겟 디바이스(15)의 타입을 추정할 수 있다.Banner information included in the response to the protocol confirmation packet typically includes data indicating what type of operating system is used in the target device 15 . The diagnostic module may know the type of service or estimate the type of the target device 15 if the type of operating system is known.

프로토콜 확인용 패킷에 대한 응답에 포함된 서비스(Service) 정보에는 통상적으로 타겟 디바이스가 어떠한 타입인지를 나타내는 데이터가 포함되어 있다. 예를 들면, 서비스(Service) 정보에는 '나의 아이폰'(My iPhone)과 같은 데이터가 포함되어 있을 수 있으며, 이러한 데이터는 타겟 디바이스의 타입을 직접적으로 나타내는 정보이다. 일 실시예에 따르면, 진단모듈에 의해 수행되는 타입 추정 동작(Type Assumption)은, 타겟 디바이스의 배너(Banner) 정보와 서비스(Service) 정보 중 적어도 하나의 정보와, 상술한 포트 스캐닝 동작의 수행결과와 프로토콜 스캐닝(Protocol Scanning) 동작의 수행결과 중 적어도 하나의 수행결과를 이용한다. Service information included in the response to the protocol confirmation packet typically includes data indicating what type of target device is. For example, the service information may include data such as 'My iPhone', and this data is information directly indicating the type of the target device. According to an embodiment, the type assumption performed by the diagnosis module is performed using at least one of banner information and service information of the target device and a result of performing the port scanning operation described above. At least one of the performance results of the protocol scanning operation and the protocol scanning operation is used.

예를 들면, 진단모듈에 의해 수행되는 타입 추정 동작(Type Assumption)은, 제1 추정동작, 제2 추정동작, 비교동작, 및 타입결정동작을 포함한다. For example, the type assumption performed by the diagnostic module includes a first estimation operation, a second estimation operation, a comparison operation, and a type determination operation.

제1 추정동작은 프로토콜 스캐닝 동작에 의해 획득된 프로토콜의 종류로부터 서비스의 종류를 추정하는 동작이다. 제2 추정동작은 타겟 디바이스(15)의 배너(Banner) 정보와 서비스(Service) 정보 중 적어도 하나의 정보를 이용하여 서비스의 종류를 추정하는 동작이다. The first estimation operation is an operation of estimating the type of service from the type of protocol obtained through the protocol scanning operation. The second estimation operation is an operation of estimating the type of service by using at least one of banner information and service information of the target device 15 .

비교동작은, 제1 추정동작에 의해 추정된 서비스의 종류와 제2 추정동작에 의해 추정된 서비스의 종류를 비교하는 동작이다. The comparison operation is an operation of comparing the service type estimated by the first estimation operation with the service type estimated by the second estimation operation.

타입결정동작은, 제1 추정동작에 의해 추정된 서비스의 종류와 제2 추정동작에 의해 추정된 서비스의 종류가 서로 다를 경우에 제2 추정동작에 의해 추정된 서비스의 종류로부터 타겟 디바이스(15)의 타입을 결정하고, 제1 추정동작에 의해 추정된 서비스의 종류와 제2 추정동작에 의해 추정된 서비스의 종류가 서로 같을 경우에 제1추정동작 또는 제2 추정동작에 의해 추정된 서비스의 종류로부터 타겟 디바이스들(15)의 타입을 추정하는 동작이다. The type determination operation determines the target device 15 from the service type estimated by the second estimation operation when the service type estimated by the first estimation operation and the service type estimated by the second estimation operation are different from each other. Determines the type of and, when the type of service estimated by the first estimation operation and the type of service estimated by the second estimation operation are the same, the type of service estimated by the first estimation operation or the second estimation operation This is an operation of estimating the type of target devices 15 from

한편, 타겟 디바이스(15)의 배너(Banner) 정보와 서비스(Service) 정보가 없거나, 그러한 배너 정보와 서비스 정보에 서비스의 종류를 추정할 수 있는 데이터가 없을 경우, 타입 추정 동작(Type Assumption)은, 제1 추정동작과 타입결정동작을 포함한다. 즉, 제2 추정동작과 비교동작의 수행이 없이, 제1추정동작과 타입결정동작만으로 타입 추정 동작이 수행될 수 있다.On the other hand, when there is no banner information and service information of the target device 15, or there is no data for estimating the type of service in such banner information and service information, the type assumption operation , includes a first estimation operation and a type determination operation. That is, the type estimation operation may be performed only with the first estimation operation and the type determination operation without performing the second estimation operation and the comparison operation.

페이크 디바이스 선별 동작은 타겟 디바이스(15) 중에서 페이크 디바이스를 선별하는 동작이다. 본 실시예에서, 진단모듈은, 타겟 디바이스(15)의 각각에 대하여 페이크 디바이스인지 여부를 판단한다. 예를 들면, 진단모듈은, 타겟 디바이스(15) 중에서 타겟 디바이스(15a)에 대하여 페이크 디바이스인지 여부를 판단하고, 타겟 디바이스(15b)에 대하여 페이크 디바이스인지 여부를 판단하고, 타겟 디바이스(15c)에 대하여 페이크 디바이스인지 여부를 판단하고, 그리고 타겟 디바이스(15d)에 대하여 페이크 디바이스인지 여부를 판단할 수 있다. 여기서, 순서는 예시적인 것으로서, 본 발명이 속하는 기술분야에 종사하는 자(이하, '당업자')가 본 발명을 실시할때 상황에 맞도록 순서를 정할 수 있을 것이다. The fake device selection operation is an operation of selecting a fake device from among the target devices 15 . In this embodiment, the diagnosis module determines whether each of the target devices 15 are fake devices. For example, the diagnostic module determines whether the target device 15a is a fake device among the target devices 15, determines whether the target device 15b is a fake device, and determines whether the target device 15c is a fake device. It is possible to determine whether the device is a fake device for the target device 15d, and to determine whether the device is a fake device for the target device 15d. Here, the order is exemplary, and a person engaged in the technical field to which the present invention belongs (hereinafter, 'one skilled in the art') may determine the order to suit the situation when practicing the present invention.

진단모듈은 페이크(fake) 디바이스인지 여부를 판단하는 대상이 되는 대상 디바이스의 타입에 따른 취약점을 공격하고, 진단모듈은 타겟 디바이스에 대한 공격이 성공하는지 여부에 따라서, 타겟 디바이스가 페이크 디바이스 인지 여부를 판단한다. 통상적으로, 무선 디바이스의 취약점(vulnerability)은 공격자가 디바이스의 정보 보증을 낮추는데 사용되는 약점을 의미한다. The diagnosis module attacks vulnerabilities according to the type of target device to determine whether the target device is a fake device, and the diagnosis module determines whether the target device is a fake device according to whether the attack on the target device succeeds. judge Typically, vulnerability in a wireless device means a weakness that an attacker can use to lower the information assurance of a device.

타겟 디바이스(15a)가 '타겟 디바이스' 인 경우를 예로 들면, 진단모듈은 타겟 디바이스(15a)가 가진 취약점에 대한 공격이 성공하는지 여부에 따라서, 타겟 디바이스(15a)가 페이크 디바이스 인지 여부를 판단할 수 있다. 즉, 진단모듈은, 타겟 디바이스(15a)가 가진 취약점에 대한 공격이 성공하면 타겟 디바이스(15a)가 페이크 디바이스가 아니라고 판단하고, 타겟 디바이스(15a)가 가진 취약점에 대한 공격이 성공하지 못하면 타겟 디바이스(15a)가 페이크 디바이스라고 판단한다.For example, when the target device 15a is a 'target device', the diagnosis module determines whether the target device 15a is a fake device according to whether an attack on a vulnerability of the target device 15a succeeds. can That is, the diagnostic module determines that the target device 15a is not a fake device if the attack on the vulnerability of the target device 15a succeeds, and if the attack on the vulnerability of the target device 15a does not succeed, the target device 15a is not successful. It is determined that (15a) is a fake device.

진단모듈은, 타겟 디바이스(15)의 각각의 타입에 따른 취약점을 선택하고, 선택한 취약점을 이용해서 타겟 디바이스(15)의 각각을 공격하고, 그러한 공격 결과에 기초하여 타겟 디바이스(15) 중에서 페이크 디바이스를 선별할 수 있다. The diagnostic module selects a vulnerability according to each type of target device 15, attacks each of the target devices 15 using the selected vulnerability, and fake devices among the target devices 15 based on the attack result. can be selected.

본 발명의 다른 실시예에 따른 진단모듈은, 타겟 디바이스(15)의 각각의 타입을 추정하고, 추정한 각각에 타입에 대응된 취약점을 공격하고, 그러한 공격결과에 기초하여 타겟 디바이스(15) 중에서 페이크 디바이스를 판단할 수 있다. The diagnosis module according to another embodiment of the present invention estimates each type of the target device 15, attacks a vulnerability corresponding to each estimated type, and among the target devices 15 based on the attack result. A fake device can be determined.

상술한 실시예들에서, 진단모듈은 타입별로 취약점이 대응된 데이터('타입별 취약점 데이터')를 참조하여, 타겟 디바이스(15)의 타입에 따른 취약점 공격용 메시지를 생성할 수 있다. 타입별 취약점 데이터는 무선케어장치(200)에 구비된 기억장치(후술하기로 함)에 의해 저장되어 관리되는 것일 수 있다. 다르게는, 무선케어장치(200)가 접근가능하도록 통신적으로 연결된 외부의 기억장치(미 도시)에 타입별 취약점 데이터에 저장되어 관리될 수 있다. In the above-described embodiments, the diagnostic module may generate a vulnerability attack message according to the type of the target device 15 by referring to data ('vulnerability data by type') to which vulnerabilities are mapped by type. Vulnerability data for each type may be stored and managed by a storage device (to be described later) provided in the wireless care device 200 . Alternatively, vulnerability data for each type may be stored and managed in an external storage device (not shown) connected communicatively so that the wireless care device 200 can access it.

상술한 실시예들에서, 타겟 디바이스(15)의 타입에 따른 취약점을 선택하는 동작은, 타입별 취약점 데이터를 참조하여 타겟 디바이스의 타입에 대응되는 취약점을 찾는 동작일 수 있다.In the above-described embodiments, the operation of selecting a vulnerability according to the type of the target device 15 may be an operation of finding a vulnerability corresponding to the type of the target device by referring to vulnerability data for each type.

상술한 실시예들에서, 진단모듈은 타입별로 취약점이 대응된 데이터('타입별 취약점 데이터')를 참조하여, 타겟 디바이스(15)의 타입에 따른 취약점 공격용 메시지를 생성할 수 있다. 타입별 취약점 데이터는 무선케어장치(200)에 구비된 기억장치(후술하기로 함)에 의해 저장되어 관리되는 것일 수 있다. 다르게는, 무선케어장치(200)가 접근가능하도록 통신적으로 연결된 외부의 기억장치(미 도시)에 타입별 취약점 데이터에 저장되어 관리될 수 있다. In the above-described embodiments, the diagnostic module may generate a vulnerability attack message according to the type of the target device 15 by referring to data ('vulnerability data by type') to which vulnerabilities are mapped by type. Vulnerability data for each type may be stored and managed by a storage device (to be described later) provided in the wireless care device 200 . Alternatively, vulnerability data for each type may be stored and managed in an external storage device (not shown) connected communicatively so that the wireless care device 200 can access it.

상술한 실시예들에서, 타겟 디바이스(15)의 타입에 따른 취약점을 선택하는 동작은, 타입별 취약점 데이터를 참조하여 타겟 디바이스의 타입에 대응되는 취약점을 찾는 동작일 수 있다.In the above-described embodiments, the operation of selecting a vulnerability according to the type of the target device 15 may be an operation of finding a vulnerability corresponding to the type of the target device by referring to vulnerability data for each type.

상술한 실시예들에서, 타겟 디바이스(15)의 취약점을 공격하는 동작은 예를 들면 진단모듈이 취약점 공격용 메시지를 타겟 디바이스에게 전송하는 동작일 수 있다. In the above-described embodiments, the operation of attacking the vulnerability of the target device 15 may be, for example, an operation of the diagnostic module transmitting a message for attacking the vulnerability to the target device.

상술한 실시예들에서, 진단모듈은 타겟 디바이스가 취약점 공격에 대한 응답을 할 경우에는 타겟 디바이스가 페이크 디바이스가 아니라고 판단을 하고, 타겟 디바이스가 취약점 공격에 대한 응답을 하지 않을 경우에는 타겟 디바이스가 페이크 디바이스라고 판단할 수 있다.In the above-described embodiments, the diagnosis module determines that the target device is not a fake device when the target device responds to a vulnerability attack, and if the target device does not respond to a vulnerability attack, the target device is a fake device. It can be judged as a device.

이하에서는, 무선 디바이스들이 가지는 취약점과 취약점 공격용 메시지에 대하여 예시적으로 설명하기로 한다. Hereinafter, vulnerabilities possessed by wireless devices and messages for attacking vulnerabilities will be exemplarily described.

일 예를 들면, 타겟 디바이스는 다음과 같은 타입의 취약점을 가진 라우터(router)일 수 있다. For example, the target device may be a router having the following types of vulnerabilities.

. 취약점: 권한 없는 공격자가 HTTP GET 메소드로 "/category_view.php" URL에 접근할 수 있음. Vulnerability: An unprivileged attacker could access the "/category_view.php" URL with the HTTP GET method

. 취약점 공격용 메시지: GET/category_view.php . Message for vulnerability attack: GET/category_view.php

다른 예를 들면, 타겟 디바이스는 다음과 같은 타입의 취약점을 가진 라우터(router)일 수 있다. For another example, the target device may be a router with the following types of vulnerabilities.

ㆍ취약점: 권한 없는 공격자가 HTTP GET 메소드로 "/mydlink/get_TriggedEventHistory.asp" URL에 접근할 수 있음ㆍVulnerability: Unprivileged attacker can access "/mydlink/get_TriggeredEventHistory.asp" URL with HTTP GET method

. 취약점 공격용 메시지: GET/mydlink/get_TriggedEventHistory.asp. Message for vulnerability attack: GET/mydlink/get_TriggeredEventHistory.asp

또 다른 예를 들면, 타겟 디바이스는 다음과 같은 타입의 취약점을 가진 라우터(router)일 수 있다. As another example, the target device may be a router with the following types of vulnerabilities.

. 취약점: 권한 없는 공격자가 HTTP GET 메소드로 "/router_info.xml?section=wps" URL에 접근하여 타겟 디바이스의 PIN 과 MAC 주소 등의 정보를 얻을 수 있음.. Vulnerability: An unauthorized attacker can obtain information such as the PIN and MAC address of the target device by accessing the "/router_info.xml?section=wps" URL using the HTTP GET method.

. 취약점 공격용 메시지: GET/router_info.xml?section=wps . Message for vulnerability attack: GET/router_info.xml?section=wps

또 다른 예를 들면, 타겟 디바이스는 다음과 같은 타입의 취약점을 가진 라우터(router)일 수 있다. As another example, the target device may be a router with the following types of vulnerabilities.

. 취약점: 권한 없는 공격자가 HTTP POST 메소드로 "/wpsacts.php" URL에 접근할 시 데이터에 스크립트 구문을 넣을 수 있는 있음.. Vulnerability: An unprivileged attacker could inject script statements into data when accessing the "/wpsacts.php" URL with the HTTP POST method.

. 취약점 공격용 메시지: GET//wpsacts.php . Message for vulnerability attack: GET//wpsacts.php

본 발명의 실시예들에 따르면, 타겟 디바이스는 같은 종류의 기능을 가진 것이라도 취약점이 다르다면 서로 다른 타입으로 취급된다. 예를 들면, 상술한 라우터들은 취약점이 서로 달라서, 따라서 서로 다른 타입의 타겟 디바이스로 구별된다. 다른 예를 들면, 타겟 디바이스의 제조사가 같고, 같은 종류의 디바이스라고 하더라도 펌 웨어(firm ware)가 서로 다르다면 다른 타입으로 취급된다. According to embodiments of the present invention, target devices are treated as different types if they have different vulnerabilities even if they have the same kind of function. For example, the aforementioned routers have different vulnerabilities and thus are distinguished as different types of target devices. For another example, if the manufacturer of the target device is the same and the firmware ware is different even if the device is of the same type, it is treated as a different type.

본 발명의 일 실시예에 따르면, '타입별 취약점 데이터'는 타겟 디바이스의 타입별로 취약점이 각각 대응된 데이터일 수 있다. 이러한 타입별 취약점 데이터가 저장되어 관리될 경우, 진단모듈은 타입별 취약점 데이터를 참조해서 타겟 디바이스의 취약점을 공격한다. According to an embodiment of the present invention, 'vulnerability data by type' may be data corresponding to vulnerabilities for each type of target device. When such vulnerability data for each type is stored and managed, the diagnostic module refers to the vulnerability data for each type to attack the vulnerability of the target device.

다르게는(alternatively), '타입별 취약점 데이터'는 타겟 디바이스의 타입별로 '취약점 공격용 메시지'가 대응된 데이터일 수 있다. Alternatively, 'vulnerability data by type' may be data to which 'messages for attacking weaknesses' are mapped to each type of target device.

본 발명의 다른 실시예에 따르면, 타입별 취약점 데이터가 미리 준비되어 있지 않을 수 있다. 이러한 실시예의 경우, 진단모듈은 타겟 디바이스의 타입에 대응된 취약점 공격용 메시지를 직접 생성할 수 있다(예를 들면, 취약점 공격부가 타입별로 취약점 공격용 메시지를 직접 생성할 수 있도록 구성된 경우). According to another embodiment of the present invention, vulnerability data for each type may not be prepared in advance. In this embodiment, the diagnostic module may directly generate a vulnerability attack message corresponding to the type of the target device (eg, if the vulnerability attack unit is configured to directly generate a vulnerability attack message for each type).

차단동작은, 페이크 디바이스의 통신을 차단하는 동작이다. 차단동작은 페이크 디바이스에 대하여 디도스(DDos) 공격을 함으로써 페이크 디바이스의 통신을 차단시키는 동작이다. The blocking operation is an operation of blocking the communication of the fake device. The blocking operation is an operation of blocking communication of the fake device by performing a DDoS attack on the fake device.

예를 들면, 진단모듈은 페이크 디바이스에게 대량의 메시지를 전송하며, 대량의 메시지를 전송받은 페이크 디바이스는 그러한 메시지에 대응하느라 다른 기기와의 통신이 불능 상태에 빠지게 된다. 이처럼, 진단모듈은 취약점이 있는 타겟 디바이스의 통신을 차단시킬 수 있다. For example, the diagnosis module transmits a large amount of messages to the fake device, and the fake device that receives the large number of messages falls into an inability to communicate with other devices while responding to such messages. In this way, the diagnosis module may block communication of a target device having a vulnerability.

예를 들면, 무선 디바이스(15a)가 페이크 디바이스라고 가정하면, 진단모듈은 페이크 디바이스(15a)에 대하여 디도스(DDos) 공격을 함으로써 블루투스 기기의 통신을 차단시킨다. 즉, 진단모듈은 페이크 디바이스(15a)에게 대량의 메시지를 전송함으로써, 대량의 메시지를 전송받은 페이크 디바이스(15a)는 그러한 메시지에 대응하느라 다른 블루투스 디바이스와 통신을 할 수 없게 된다. 이처럼, 진단모듈은 페이크 디바이스(15a)만 통신을 차단시킬 수 있다. For example, assuming that the wireless device 15a is a fake device, the diagnosis module blocks communication of the Bluetooth device by performing a DDoS attack on the fake device 15a. That is, the diagnosis module transmits a large number of messages to the fake device 15a, so that the fake device 15a receiving the large amount of messages cannot communicate with other Bluetooth devices while responding to such messages. As such, the diagnosis module may block communication only with the fake device 15a.

이하에서는, 본 발명의 일 실시예에 따른 무선케어장치(200)의 예시적 구성을 설명하기로 한다.Hereinafter, an exemplary configuration of the wireless care device 200 according to an embodiment of the present invention will be described.

본 발명의 무선케어장치(200)는, 포트 스캐닝부, 프로토콜 스캐닝부, 타입 추정부, 판단부, 운영체제, 통신부, 취약점 공격부, 컴퓨터 프로세서, 주변 기기, 기억장치, 및 메모리를 포함하며, 이들 구성요소는 서로 동작적으로 연결되어 있다. 한편, 포트 스캐닝부, 프로토콜 스캐닝부, 타입 추정부, 판단부, 및 취약점 공격부를 진단모듈로 통칭하기로 한다.The wireless care device 200 of the present invention includes a port scanning unit, a protocol scanning unit, a type estimation unit, a determination unit, an operating system, a communication unit, a vulnerability attacking unit, a computer processor, a peripheral device, a storage device, and a memory. The components are operatively connected to each other. Meanwhile, a port scanning unit, a protocol scanning unit, a type estimation unit, a determination unit, and a vulnerability attack unit will be collectively referred to as diagnosis modules.

진단모듈은 상술한 타입 추정동작, 페이크 디바이스 선별동작 및 차단동작을 수행할 수 있다. 구체적으로, 포트 스캐닝부가 포트 스캐닝 동작을 수행하고, 프로토콜 스캐닝부는 프로토콜 스캐닝 동작을 수행하고, 타입 추정부는 디바이스의 타입을 추정하고, 판단부는 페이크 디바이스 선별동작 및 차단동작을 수행할 수 있다. 이들 각각의 동작은 상술한 부분을 참조하기 바란다. The diagnostic module may perform the above-described type estimation operation, fake device selection operation, and blocking operation. Specifically, the port scanning unit may perform a port scanning operation, the protocol scanning unit may perform a protocol scanning operation, the type estimation unit may estimate a device type, and the determination unit may perform a fake device selection operation and blocking operation. For each of these operations, please refer to the above-mentioned part.

포트 스캐닝부는 상술한 포트 스캐닝 동작을 수행한다. 포트 스캐닝부는 포트 확인용 패킷을 작성하고 통신부를 통해서 포트 확인용 패킷을 무선 디바이스(15)에게 전송하고, 포트 확인용 패킷에 대한 응답이 수신되는지를 확인하여 무선 디바이스(15)에서 오픈된 포트를 결정한다.The port scanning unit performs the port scanning operation described above. The port scanning unit creates a port checking packet, transmits the port checking packet to the wireless device 15 through the communication unit, and checks whether a response to the port checking packet is received to determine the port opened in the wireless device 15. Decide.

프로토콜 스캐닝부는 상술한 프로토콜 스캐닝 동작을 수행한다. 프로토콜 스캐닝부는 프로토콜 확인용 패킷을 작성하고, 통신부를 통해서 프로토콜 확인용 패킷을 무선 디바이스(15)에게 전송하고, 프로토콜 확인용 패킷에 대한 응답이 수신되는지를 확인하고, 오픈된 포트에서 실제 사용되는 프로토콜을 결정한다. The protocol scanning unit performs the protocol scanning operation described above. The protocol scanning unit creates a protocol confirmation packet, transmits the protocol confirmation packet to the wireless device 15 through the communication unit, checks whether a response to the protocol confirmation packet is received, and actually uses the protocol in the opened port. decide

취약점 공격부는 취약점 공격용 메시지를 통신부를 통해서 대상 디바이스로 전송하며, 판단부는 취약점 공격용 메시지에 대한 응답이 있는지 여부를 확인한 후, 응답이 있으면 대상 디바이스가 페이크 디바이스가 아니고, 응답이 없으면 페이크 디바이스라고 판단한다. The vulnerability attacking unit transmits the vulnerability attacking message to the target device through the communication unit, and the judgment unit checks whether there is a response to the vulnerability attacking message. .

운영체제는 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 소프트웨어이고, 기억장치와 메모리는 각각 프로그램이 저장되고 실행되기 위한 공간을 제공하는 기록매체를 포함한다. 컴퓨터 프로세서는 중앙처리장치(CPU)이며, 이러한 중앙처리장치는 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행하는 컴퓨터의 제어 장치, 또는 그 기능을 내장한 칩이다.An operating system is software that not only manages hardware but also provides a hardware abstraction platform and common system services to execute application software. A computer processor is a central processing unit (CPU), and such a central processing unit is a control unit of a computer that controls a computer system and executes program operations, or a chip having the function.

메모리 및/또는 기억장치에는 프로그램이 저장 또는 실행되는 공간을 제공하며, 또한 프로토콜-서비스 매핑(mapping) 데이터 또는 서비스-타입 매핑(mapping) 데이터와 같이 본원 발명의 동작에 필요한 데이터들을 저장할 수 있다. The memory and/or storage unit provides a space in which programs are stored or executed, and may also store data necessary for the operation of the present invention, such as protocol-service mapping data or service-type mapping data.

메모리 및/또는 기억장치는, 또한, 각종 데이터를 임시 및/또는 영구적으로 저장할 수 있다. 예를 들면, 메모리 및/또는 기억장치는 취약점 공격용 메시지를 저장할 수 있다. The memory and/or storage device may also temporarily and/or permanently store various data. For example, memory and/or storage may store messages for vulnerability exploitation.

타입 추정부는 상술한 타입 추정 동작을 수행한다. 일 실시예에 따르면, 타입 추정부는 무선 디바이스(15)의 배너(Banner) 정보와 서비스(Service) 정보 중 적어도 하나의 정보와, 포트 스캐닝부의 동작결과와 프로토콜 스캐닝부의 동작결과 중 적어도 하나의 동작결과를 이용한다.The type estimation unit performs the above-described type estimation operation. According to an embodiment, the type estimating unit includes at least one information of Banner information and Service information of the wireless device 15, and at least one operation result of the port scanning unit operation result and the protocol scanning unit operation result. Use

다른 실시예에 따르면, 포트 스캐닝부의 동작결과와 프로토콜 스캐닝부의 동작결과 중 적어도 하나의 결과를 이용한다. 이들 실시예들에 대한 상세한 설명은 상술한 바가 있으므로, 생략하기로 한다.According to another embodiment, at least one result of an operation result of the port scanning unit and an operation result of the protocol scanning unit is used. Since the detailed description of these embodiments has been described above, it will be omitted.

일 실시예에 따르면, 기억장치 및/또는 메모리에는 타입 추정부의 타입 추정 결과가 저장된다. 타입 추정 결과는 무선 디바이스(15) 별로 타입이 대응된 데이터이다. 한편, 기억장치 및/또는 메모리에는 타입별 취약점 데이터도 저장되어 있을 수 있다. 타입별 취약점 데이터(타입별로 취약점이 대응된 데이터임)는 대상 디바이스의 타입이 가지는 취약점을 찾기 위해서 사용된다.According to one embodiment, the type estimation result of the type estimation unit is stored in the memory and/or the memory. The type estimation result is data corresponding to a type for each wireless device 15 . Meanwhile, vulnerability data for each type may also be stored in the storage device and/or memory. Vulnerability data for each type (data corresponding to vulnerabilities for each type) is used to find vulnerabilities of the target device type.

취약점 공격부는 타입별 취약점 데이터를 참조하여 대상 디바이스의 타입에 대응되는 취약점을 찾아서 취약점 공격용 메시지를 생성할수 있다. 이후, 취약점 공격용 메시지는 통신부를 통해서 대상 디바이스로 전송된다. 판단부는 취약점 공격용 메시지에 대한 응답이 있는지 여부를 확인한 후, 응답이 있으면 대상 디바이스가 페이크 디바이스가 아니고, 응답이 없으면 페이크 디바이스라고 판단한다. The vulnerability attacking unit may refer to vulnerability data for each type to find a vulnerability corresponding to the type of the target device and generate a message for attacking the vulnerability. Then, the vulnerability attack message is transmitted to the target device through the communication unit. After checking whether there is a response to the vulnerability attack message, the determination unit determines that the target device is not a fake device if there is a response, and determines that it is a fake device if there is no response.

도6은 본 발명의 일 실시예에 따른 무선케어 방법을 설명하기 위한 도면이다. 본 발명의 일 실시예에 따른 무선케어 방법은 시스템(200)에 근접한 타겟 디바이스('타겟 디바이스'라고도 함)들 중에서 페이크 디바이스를 판별하기 위한 것이다.6 is a diagram for explaining a wireless care method according to an embodiment of the present invention. A wireless care method according to an embodiment of the present invention is to determine a fake device among target devices (also referred to as 'target devices') close to the system 200 .

도6을 참조하면, 본 발명의 일 실시예에 따른 무선케어 방법은 타겟 디바이스의 타입을 추정하는 단계(S100); 타겟 디바이스의 타입에 따른 취약점을 선택하는 단계(S300); S300단계에서 선택한 상기 취약점을 공격하는 단계(S400); 및 상기 타겟 디바이스에 대한 공격이 성공하는지 여부에 따라서, 상기 타겟 디바이스가 페이크 디바이스 인지 여부를 판단하는 단계(S500)를 포함할 수 있다. Referring to FIG. 6, a wireless care method according to an embodiment of the present invention includes estimating the type of a target device (S100); Selecting a vulnerability according to the type of target device (S300); Attacking the vulnerability selected in step S300 (S400); and determining whether the target device is a fake device according to whether the attack on the target device succeeds (S500).

본 발명의 일 실시예에 따른 무선케어방법은, 무선 디바이스의 타입별로 취약점을 대응시킨 무선 디바이스 타입별 취약점 데이터를 저장하여 관리하는 단계(S200);를 더 포함할 수 있다. The wireless care method according to an embodiment of the present invention may further include storing and managing vulnerability data for each wireless device type corresponding to a vulnerability for each type of wireless device (S200).

상술한 취약점을 선택하는 단계(S300)는, 무선 디바이스 타입별 취약점 데이터를 참조하여 타겟 디바이스의 타입에 대응되는 취약점을 찾는 동작을 포함한다. The step of selecting the aforementioned vulnerability (S300) includes an operation of finding a vulnerability corresponding to the type of the target device by referring to vulnerability data for each wireless device type.

상술한 타겟 디바이스를 공격하는 단계(S400)는, 상기 타겟 디바이스의 타입에 따른 취약점을 선택하는 단계(S300)에서 선택된 취약점을 공격하는 취약점 공격용 메시지를 생성하여 타겟 디바이스에게 전송하는 단계일 수 있다. The step of attacking the target device described above (S400) may be a step of generating a vulnerability attack message that attacks the vulnerability selected in the step of selecting a vulnerability according to the type of the target device (S300) and transmitting it to the target device.

상술한 타겟 디바이스가 페이크 디바이스 인지 여부를 판단하는 단계(S500)는 타겟 디바이스가 상기 취약점 공격용 메시지에 대한 응답을 할 경우에는 타겟 디바이스가 페이크 디바이스가 아니라고 판단을 하고, 타겟 디바이스가 상기 취약점 공격용 메시지에 대한 응답을 하지 않을 경우에는 타겟 디바이스가 페이크 디바이스라고 판단하는 단계일 수 있다. In the above-described step of determining whether the target device is a fake device (S500), when the target device responds to the vulnerability attack message, it is determined that the target device is not a fake device, and the target device responds to the vulnerability attack message. If there is no response, it may be a step of determining that the target device is a fake device.

이하에서는, 본 발명의 일 실시예에 따른 무선케어 방법이 도5를 참조하여 설명한 무선케어장치(200)에 적용되었다고 가정한다. Hereinafter, it is assumed that the wireless care method according to an embodiment of the present invention is applied to the wireless care device 200 described with reference to FIG. 5 .

타겟 디바이스의 타입을 추정하는 단계(S100)는 도5를 참조하여 설명한 내용을 참조하기 바란다. For the step of estimating the type of the target device ( S100 ), please refer to the description with reference to FIG. 5 .

타입별 취약점 데이터 저장 및 관리 단계(S200)는 타겟 디바이스의 타입을 추정하는 단계(S100)의 결과를 무선케어장치(200)가 기록매체에 저장 및 관리하는 단계이다. 한편, 장치(100)가 아닌 다른 컴퓨터(미 도시)가 S100단계를 수행하는 것도 가능하다.The step of storing and managing vulnerability data for each type (S200) is a step in which the wireless care device 200 stores and manages the result of the step of estimating the type of the target device (S100) in a recording medium. Meanwhile, it is also possible for a computer (not shown) other than the device 100 to perform step S100.

취약점을 선택하는 단계(S300)는 무선케어장치(200)가 타겟 디바이스의 타입에 따른 취약점을 선택하는 단계이다. 예를 들면, 취약점 공격부는 타입 추정부에 의해 추정된 타겟 디바이스의 타입에 따른 취약점을 선택할 수 있다. 이를 위해서, 기억장치에는 타입별 취약점 데이터를 저장되어 있으며, 취약점 공격부는 그러한 타입별 취약점 데이터를 참조하여 타겟 디바이스의 타입에 대응된 취약점을 선택할 수 있다. The step of selecting a vulnerability (S300) is a step in which the wireless care device 200 selects a vulnerability according to the type of the target device. For example, the vulnerability attacker may select a vulnerability according to the type of the target device estimated by the type estimation unit. To this end, vulnerability data for each type is stored in the storage device, and the vulnerability attacking unit can select a vulnerability corresponding to the type of the target device by referring to the vulnerability data for each type.

타겟 디바이스를 공격하는 단계(S400)는, 무선케어장치(200)가 타겟 디바이스의 취약점을 공격하는 단계이다. 예를 들면, 취약점 공격부가 타겟 디바이스에게 취약점 공격용 메시지를 전송한다. 취약점 공격용 메시지는 타겟 디바이스의 타입에 따라 선택된 취약점 데이터에 기초하여 생성된 것이다. 취약점 공격부는 취약점 공격용 메시지를 직접 생성할 수 있다. Attacking the target device (S400) is a step in which the wireless care device 200 attacks the target device's vulnerability. For example, the vulnerability attacker transmits a vulnerability attack message to the target device. The vulnerability attack message is generated based on vulnerability data selected according to the type of the target device. The vulnerability attacking unit may directly generate a message for attacking the vulnerability.

타겟 디바이스가 페이크 디바이스 인지 여부를 판단하는 단계(S500)는, 예를 들면, 무선케어장치(200)의 판단부는 타겟 디바이스가 취약점 공격용 메시지에 대한 응답을 할 경우에는 타겟 디바이스가 페이크 디바이스가 아니라고 판단을 하고, 타겟 디바이스가 상기 취약점 공격용 메시지에 대한 응답을 하지 않을 경우에는 타겟 디바이스가 페이크 디바이스라고 판단할 수 있다.In the step of determining whether the target device is a fake device (S500), for example, the determining unit of the wireless care device 200 determines that the target device is not a fake device when the target device responds to the vulnerability attack message. And, if the target device does not respond to the vulnerability attack message, it may be determined that the target device is a fake device.

도7은 본 발명의 일 실시예에 따른 무선 디바이스의 타입을 추정하는 방법을 설명하기 위한 도면이다. 7 is a diagram for explaining a method of estimating a type of a wireless device according to an embodiment of the present invention.

도7을 참조하면, 본 발명의 일 실시예에 따른 무선 디바이스의 타입을 추정하는 방법은 타겟 디바이스의 오픈 포트(Open Port)를 찾는 포트 스캐닝 단계(Port Scanning step)(S110), 포트 스캐닝 단계(Port Scanning step)(S110)의 수행결과로 찾아낸 오픈 포트(Open Port)에서 사용하는 프로토콜을 찾는 프로토콜 스캐닝 단계(Protocol Scanning step)(S120), 상술한 스캔 단계들(S110, S120)의 결과에 기초하여, 타겟 디바이스의 타입을 추정하는 타입 추정 단계(Type Assumption step)(S130)를 포함할 수 있다. Referring to FIG. 7 , the method for estimating the type of a wireless device according to an embodiment of the present invention includes a port scanning step (S110) of finding an open port of a target device, and a port scanning step (S110). A protocol scanning step (S120) to find the protocol used in the open port found as a result of performing the Port Scanning step (S110), based on the results of the above-described scan steps (S110, S120) Thus, a type assumption step (S130) of estimating the type of the target device may be included.

이하에서는, 본 발명의 일 실시예에 따른 무선 디바이스의 타입을 추정하는 방법이 도5를 참조하여 설명한 장치(100)에 적용되었다고 가정하고, 본 발명의 일 실시예에 따른 무선 디바이스의 타입을 추정하는 방법을 설명하기로 한다. Hereinafter, it is assumed that the method for estimating the type of wireless device according to an embodiment of the present invention is applied to the apparatus 100 described with reference to FIG. 5, and the type of wireless device is estimated according to an embodiment of the present invention. I will explain how to do it.

포트 스캐닝 단계(S110)는 무선 디바이스(15)의 오픈 포트(Open Port)를 찾는 것이다. 즉, 포트 스캐닝 단계(S110)는, 도 2를 참조하여 설명한 포트 스캐닝(Port Scanning) 동작을 수행하는 단계이다.The port scanning step (S110) is to find an open port of the wireless device 15. That is, the port scanning step (S110) is a step of performing the port scanning operation described with reference to FIG. 2 .

본 실시예에서도, 본 발명의 설명의 목적을 위해서, 무선 디바이스(15a)의 오픈 포트는 80번 포트가, 무선 디바이스(15b)의 오프 포트는 23번 포트이고, 무선 디바이스(15c)의 오픈 포트는 5555번 포트이고, 무선 디바이스(15d)의 오픈 포트는 5559번 포트라고 가정하기로 한다In this embodiment as well, for the purpose of explanation of the present invention, the open port of wireless device 15a is port 80, the off port of wireless device 15b is port 23, and the open port of wireless device 15c is port 23. It is assumed that is port 5555 and the open port of the wireless device 15d is port 5559.

포트 스캐닝 단계(S110)는 무선 디바이스(15)의 오픈 포트(Open Port)를 찾는 것이다. 예를 들면, 포트 스캐닝 단계(S110)의 수행결과, 무선 디바이스(15a)의 오픈 포트는 80번 포트가, 무선 디바이스(15b)의 오프 포트는 23번 포트이고, 무선 디바이스(15c)의 오픈 포트는 5555번 포트이고, 무선 디바이스(15d)의 오픈 포트는 5559번 포트라는 것을 알게된다.The port scanning step (S110) is to find an open port of the wireless device 15. For example, as a result of performing the port scanning step (S110), the open port of the wireless device 15a is port 80, the off port of the wireless device 15b is port 23, and the open port of the wireless device 15c is is port 5555, and the open port of the wireless device 15d is port 5559.

프로토콜 스캐닝 단계(S120)는, 오픈 포트(Open Port)에서 실제 사용되는 프로토콜의 종류를 알기 위한 단계이다. 즉, 프로토콜 스캐닝 단계(S120)는, 도2를 참조하여 설명한 프로토콜 스캐닝 동작을 수행하는 단계이다. 한편, 오픈 포트는 포트 스캐닝 단계(S110)의 수행결과로 획득된 것이다. The protocol scanning step (S120) is a step for knowing the type of protocol actually used in the open port. That is, the protocol scanning step ( S120 ) is a step of performing the protocol scanning operation described with reference to FIG. 2 . Meanwhile, the open port is obtained as a result of performing the port scanning step (S110).

예를 들면, 프로토콜 스캐닝 단계(S120)는, 무선 디바이스(15a)의 오픈 포트인 80번 포트에서 사용되는 프로토콜의 종류를 알아내는 동작을 수행한다. 또한, 프로토콜 스캐닝 단계(S120)는 무선 디바이스(15b)의 23번 포트에서 사용되는 프로토콜과, 무선 디바이스(15c)의 5555번 포트에서 사용되는 프로토콜과, 무선 디바이스(5d)의 5559번 포트에서 사용되는 프로토콜이 무엇인지를 찾는 동작을 수행한다. 이처럼, 프로토콜 스캐닝 단계(S120)는 무선 디바이스(15)의 모든 오픈 포트에 대하여 실제 사용되는 프로토콜의 종류를 알아내는 단계이다.For example, in the protocol scanning step (S120), an operation of finding out the type of protocol used in port 80, which is an open port of the wireless device 15a, is performed. In addition, the protocol scanning step (S120) is a protocol used in port 23 of the wireless device 15b, a protocol used in port 5555 of the wireless device 15c, and a protocol used in port 5559 of the wireless device 5d. Performs an operation to find out which protocol is used. As such, the protocol scanning step ( S120 ) is a step of finding out the types of protocols actually used for all open ports of the wireless device 15 .

프로토콜 스캐닝 단계(S120)는, 오픈 포트의 종류를 확인하는 단계, 프로토콜 확인용 패킷을 작성하는 단계, 프로토콜 확인용 패킷을 상기 오픈 포트를 가진 타겟 디바이스에게 전송하는 단계, 및 프로토콜 확인용 패킷을 전송한 타겟 디바이스로부터 응답이 존재하는지를 확인하는 단계를 포함한다. 한편, 오픈 포트의 종류를 확인하는 단계는 상술한 오픈 포트의 종류를 확인하는 동작을 수행하는 단계이고, 프로토콜 확인용 패킷을 작성하는 단계는 상술한 프로토콜 확인용 패킷을 작성하는 동작을 수행하는 단계이고, 타겟 디바이스로부터 응답이 수신되는지를 확인하는 단계는 상술한 타겟 디바이스로부터 응답이 수신되는지를 확인하는 동작을 수행하는 단계이다. 따라서, 이들 단계들에 대한 보다 상세한 설명은 생략하기로 한다. The protocol scanning step (S120) includes checking the type of open port, creating a protocol checking packet, transmitting the protocol checking packet to a target device having the open port, and transmitting the protocol checking packet. and checking whether there is a response from one target device. Meanwhile, the step of confirming the type of open port is a step of performing the above-described operation of confirming the type of open port, and the step of creating a packet for protocol confirmation is the step of performing the above-described operation of creating a packet for confirmation of protocol. , and the step of checking whether a response is received from the target device is a step of performing an operation of checking whether a response is received from the target device. Therefore, a more detailed description of these steps will be omitted.

오픈 포트의 종류를 확인하는 단계는, 포트 스캐닝 동작에 의해 획득된 오픈 포트가 잘 알려진 포트(well-known port), 등록된 포트(registered port), 또는 동적 포트(dynamic port)에 해당되는지를 확인하는 동작을 수행한다.In the step of checking the type of open port, it is checked whether the open port obtained by the port scanning operation corresponds to a well-known port, a registered port, or a dynamic port. perform the action

일 실시예에 따르면, 오픈 포트의 종류를 확인하는 단계는. 포트 종류 데이터를 참조함으로써, 포트 스캐닝 동작에 의해 획득된 오픈 포트의 종류를 알아내는 동작을 수행한다. According to one embodiment, the step of checking the type of open port. By referring to the port type data, an operation of finding out the type of the open port acquired by the port scanning operation is performed.

일 실시예에 따르면, 프로토콜 확인용 패킷을 작성하는 단계는, 오픈 포트의 종류에 따라서 프로토콜 확인용 패킷을 작성하는 동작을 수행한다. According to one embodiment, the step of creating a packet for protocol confirmation performs an operation of creating a packet for protocol confirmation according to the type of open port.

예를 들면, 프로토콜 확인용 패킷을 작성하는 단계는, 무선 디바이스(15a)의 80번 포트는 월드 와이드 웹 HTTP 프로토콜을 사용하는 것으로 잘 알려진 포트(well-known port)이므로, 웹 HTTP 프로토콜을 사용하여 프로토콜 확인용 패킷을 작성하는 동작을 수행한다. For example, in the step of creating a packet for protocol confirmation, since port 80 of the wireless device 15a is a well-known port for using the World Wide Web HTTP protocol, Performs an operation to create a packet for protocol confirmation.

또한, 프로토콜 확인용 패킷을 작성하는 단계는, 무선 디바이스(15a)로부터 웹 HTTP 프로토콜을 이용하여 작성된 프로토콜 확인용 패킷에 대한 응답이 없으면, IoT 디바이스(15a)의 80번 포트가 웹 HTTP 프로토콜을 이용하지 않는다고 결정하고, 월드 와이드 웹 HTTP 프로토콜이 아닌 다른 프로코롤을 사용하여 프로토콜 확인용 패킷을 작성하는 동작을 수행한다. In addition, in the step of creating a protocol confirmation packet, if there is no response from the wireless device 15a to the protocol confirmation packet created using the web HTTP protocol, port 80 of the IoT device 15a uses the web HTTP protocol. Determines not to do so, and performs an operation of creating a packet for protocol confirmation using a protocol other than the World Wide Web HTTP protocol.

프로토콜 확인용 패킷을 무선 디바이스에게 전송하는 단계는, 프로토콜 확인용 패킷을 타겟 디바이스에게 전송하는 단계이다. 프로토콜 확인용 패킷을 타겟 디바이스에게 전송하는 단계는, 타겟 디바이스로부터 응답이 올 때까지 프로토콜 확인용 패킷을 전송하는 동작을 수행한다.The step of transmitting the packet for protocol confirmation to the wireless device is the step of transmitting the packet for protocol confirmation to the target device. In the step of transmitting the protocol confirmation packet to the target device, an operation of transmitting the protocol confirmation packet is performed until a response comes from the target device.

프로토콜 확인용 패킷을 전송한 타겟 디바이스로부터 응답이 존재하는지를 확인하는 단계는, 상기 타겟 디바이스로부터 프로토콜 확인용 패킷에 대한 응답이 오는지를 모니터링하고, 응답이 오면 그러한 응답에 사용된 프로토콜을 해당 오픈 포트에서 실제 사용되는 프로토콜이라고 결정하는 동작을 수행한다.The step of checking whether there is a response from the target device that has transmitted the packet for protocol confirmation is to monitor whether a response to the packet for protocol confirmation is coming from the target device, and if a response is received, the protocol used for such a response is changed from the corresponding open port. Performs an operation to determine the actual protocol used.

타입 추정 단계(S130)는 상술한 포토 스캐닝 단계(S110)의 수행결과와 프로토콜 스캐닝 단계(S120)의 수행결과 중 적어도 하나의 결과를 이용하여, 타겟 디바이스들의 각각의 타입(type)을 추정하는 타입 추정 동작을 수행하는 단계이다. 즉, 타입 추정 단계(S130)는 상술한 타입 추정 동작을 수행하는 단계이다.The type estimation step (S130) is a type of estimating each type of target devices using at least one result of the above-described photo scanning step (S110) and protocol scanning step (S120). This step is to perform an estimation operation. That is, the type estimation step (S130) is a step of performing the above-described type estimation operation.

일 실시예에 따르면, 타입 추정 단계(S130)는, 프로토콜 스캐닝 동작의 수행결과로 알아낸 프로토콜의 종류로부터 서비스의 종류를 추정하는 단계와, 서비스의 종류로부터 타겟 디바이스의 타입을 추정하는 단계를 포함한다. 여기서, 프로토콜의 종류로부터 서비스의 종류를 추정하는 단계는 상술한 프로토콜의 종류로부터 서비스의 종류를 추정하는 동작을 수행하는 단계이고, 서비스의 종류로부터 타겟 디바이스의 타입을 추정하는 단계는 상술한 서비스의 종류로부터 타겟 디바이스의 타입을 추정하는 동작을 수행하는 단계이다. 따라서, 이들 단계들에 대한 상세한 설명은 도1과 도5의 실시예의 설명을 참조하기 바란다. According to an embodiment, the type estimating step (S130) includes estimating the type of service from the type of protocol found as a result of performing the protocol scanning operation, and estimating the type of the target device from the type of service. do. Here, the step of estimating the type of service from the type of protocol is a step of performing an operation of estimating the type of service from the type of protocol described above, and the step of estimating the type of target device from the type of service is the step of estimating the type of service described above. This is a step of performing an operation of estimating the type of the target device from the type. Therefore, please refer to the description of the embodiment of FIGS. 1 and 5 for a detailed description of these steps.

이상과 같이 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 명세서의 기재로부터 다양한 수정 및 변형이 가능함을 이해할 수 있다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.As described above, those skilled in the art to which the present invention pertains can understand that various modifications and variations are possible from the description of this specification. Therefore, the scope of the present invention should not be limited to the described embodiments and should not be defined, but should be defined by not only the claims to be described later, but also those equivalent to these claims.

15, 15a, 15b, 15c, 15d : 무선 디바이스
100: 캐릭터 애니메이션 생성 시스템
110: 음성 및 표정 분석모듈
120: 비주얼 매니저
130: 애니메이션 아카이브
200: 무선케어장치
15, 15a, 15b, 15c, 15d: wireless device
100: Character animation creation system
110: voice and facial expression analysis module
120: visual manager
130: Animation archive
200: wireless care device

Claims (1)

캐릭터의 동작과 감정을 표현하는 애니메이션을 생성하는 방법으로서,
임의의 문장을 포함하는 음성신호를 텍스트 데이터로 변환하고 구문 분석하여 상기 문장을 포함하는 구문 데이터를 생성하는 단계;
상기 음성신호로부터 캐릭터의 특징을 포함하는 캐릭터 데이터를 생성하는 단계;
복수의 제스처 애니메이션 중에서 상기 구문 데이터에 매칭되는 제1 애니메이션을 선택하는 단계;
복수의 얼굴 애니메이션 중에서 상기 캐릭터 데이터에 매칭되는 제2 애니메이션을 선택하는 단계; 및
상기 구문 데이터에 따른 제스처와 상기 캐릭터 데이터에 따른 얼굴 표정을 각각 제1 및 제2 애니메이션에 블렌딩하는 단계;를 포함하는 것을 특징으로 하는, 캐릭터의 동작과 감정을 표현하는 애니메이션의 생성 방법.
As a method of generating animation expressing the motion and emotion of a character,
converting a voice signal including an arbitrary sentence into text data and parsing the text data to generate syntax data including the sentence;
generating character data including characteristics of a character from the voice signal;
selecting a first animation matching the syntax data from among a plurality of gesture animations;
selecting a second animation matching the character data from among a plurality of facial animations; and
Blending a gesture according to the syntax data and a facial expression according to the character data into first and second animations, respectively.
KR1020220021056A 2022-02-17 2022-02-17 System for expressing act and emotion of character based on sound and facial expression KR20230123809A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220021056A KR20230123809A (en) 2022-02-17 2022-02-17 System for expressing act and emotion of character based on sound and facial expression

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220021056A KR20230123809A (en) 2022-02-17 2022-02-17 System for expressing act and emotion of character based on sound and facial expression

Publications (1)

Publication Number Publication Date
KR20230123809A true KR20230123809A (en) 2023-08-24

Family

ID=87841415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220021056A KR20230123809A (en) 2022-02-17 2022-02-17 System for expressing act and emotion of character based on sound and facial expression

Country Status (1)

Country Link
KR (1) KR20230123809A (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060031449A (en) 2004-10-08 2006-04-12 비쥬텍쓰리디(주) Voice-based automatic lip-synchronization animation apparatus, voice-based automatic lip-synchronization animation method, and storage medium
KR20060054678A (en) 2004-11-15 2006-05-23 김경희 Apparatus and method for implementing character video synchronized with sound

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060031449A (en) 2004-10-08 2006-04-12 비쥬텍쓰리디(주) Voice-based automatic lip-synchronization animation apparatus, voice-based automatic lip-synchronization animation method, and storage medium
KR20060054678A (en) 2004-11-15 2006-05-23 김경희 Apparatus and method for implementing character video synchronized with sound

Similar Documents

Publication Publication Date Title
KR102368300B1 (en) System for expressing act and emotion of character based on sound and facial expression
US11997423B1 (en) Altering undesirable communication data for communication sessions
CN107153496B (en) Method and device for inputting emoticons
US20210201886A1 (en) Method and device for dialogue with virtual object, client end, and storage medium
US20180077095A1 (en) Augmentation of Communications with Emotional Data
US7039676B1 (en) Using video image analysis to automatically transmit gestures over a network in a chat or instant messaging session
US20140281975A1 (en) System for adaptive selection and presentation of context-based media in communications
KR102210775B1 (en) Using the ability to speak as a human interactive proof
KR100948600B1 (en) System and method for integrating gesture and voice
KR102488530B1 (en) Method and apparatus for generating video
US11272137B1 (en) Editing text in video captions
US11328711B2 (en) User adaptive conversation apparatus and method based on monitoring of emotional and ethical states
US10388325B1 (en) Non-disruptive NUI command
US11076091B1 (en) Image capturing assistant
CN110826637A (en) Emotion recognition method, system and computer-readable storage medium
JP2022020659A (en) Method and system for recognizing feeling during conversation, and utilizing recognized feeling
KR101748372B1 (en) Face recognition service system, method and apparatus for face recognition service thereof of
CN105592169B (en) Terminal identification method and device
US11715330B2 (en) Liveness detection in an interactive video session
KR20230123809A (en) System for expressing act and emotion of character based on sound and facial expression
US20210166685A1 (en) Speech processing apparatus and speech processing method
CN107092818A (en) The implementation method and device of vivo identification
Mun et al. A smart speaker performance measurement tool
US11150923B2 (en) Electronic apparatus and method for providing manual thereof
KR20220034396A (en) Device, method and computer program for generating face video