KR102215824B1 - 시각 및 텍스트 정보를 포함하는 다이어그램의 분석 방법 및 장치 - Google Patents

시각 및 텍스트 정보를 포함하는 다이어그램의 분석 방법 및 장치 Download PDF

Info

Publication number
KR102215824B1
KR102215824B1 KR1020180146584A KR20180146584A KR102215824B1 KR 102215824 B1 KR102215824 B1 KR 102215824B1 KR 1020180146584 A KR1020180146584 A KR 1020180146584A KR 20180146584 A KR20180146584 A KR 20180146584A KR 102215824 B1 KR102215824 B1 KR 102215824B1
Authority
KR
South Korea
Prior art keywords
objects
information
diagram
relationship
representing
Prior art date
Application number
KR1020180146584A
Other languages
English (en)
Other versions
KR20200061154A (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 KR1020180146584A priority Critical patent/KR102215824B1/ko
Publication of KR20200061154A publication Critical patent/KR20200061154A/ko
Application granted granted Critical
Publication of KR102215824B1 publication Critical patent/KR102215824B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/40Image enhancement or restoration using histogram techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

시각 정보 및 텍스트 정보를 포함하는 다이어그램의 분석 방법에서, 다이어그램에 포함되는 n개의 객체(object)들을 검출한다. n개의 객체들에 대한 복수의 특성(feature)들을 획득한다. n개의 객체들의 관계(relationship) 정보를 저장하고 업데이트하는 동적 인접 텐서 메모리(dynamic adjacency tensor memory) 및 복수의 특성들을 이용하여, n개의 객체들의 연결 여부를 판단한다. 판단 결과에 기초하여, n개의 객체들을 노드(node)들로 나타내고 n개의 객체들의 연결 상태를 에지(edge)들로 나타내며 다이어그램에 대응하는 관계 그래프를 획득한다. n개의 객체들 중 제1 객체와 제2 객체의 연결 여부를 판단하는데 있어서, 제1 객체 및 제2 객체와 이미 연결되어 있는 객체들에 대한 정보만을 이용한다.

Description

시각 및 텍스트 정보를 포함하는 다이어그램의 분석 방법 및 장치{METHOD AND APPARATUS OF ANALYZING DIAGRAM CONTAINING VISUAL AND TEXTUAL INFORMATION}
본 발명은 영상 분석/인식에 관한 것으로서, 더욱 상세하게는 시각 및 텍스트 정보를 포함하는 다이어그램의 분석 방법 및 상기 분석 방법을 수행하는 장치에 관한 것이다.
인공 신경망(artificial neural network; ANN)이란 연결 선으로 연결된 많은 수의 인공 뉴런들을 사용하여 생물학적인 시스템의 계산 능력을 모방하는 소프트웨어나 하드웨어로 구현된 연산 모델을 나타낸다. 인공 신경망에서는 생물학적인 뉴런의 기능을 단순화시킨 인공 뉴런을 사용하게 된다. 그리고 연결 강도를 갖는 연결 선을 통해 상호 연결시켜 인간의 인지 작용이나 학습 과정을 수행하게 된다. 최근에는 인공 신경망에 기초한 딥 러닝(deep learning) 기술이 연구되고 있다.
한편, 일반적인 정보 검색 시스템은 정보나 데이터를 수집하거나 축적하고 있어, 사용자는 정보 검색 시스템을 이용하여 원하는 정보나 데이터를 획득할 수 있다. 최근에는 일반적인 텍스트를 이용한 정보 획득뿐만 아니라 영상을 이용하여 정보를 획득하기 위한 기술이 딥 러닝에 기초하여 연구되고 있다. 특히 시각 및 텍스트 정보를 모두 포함하는 다이어그램의 경우, 영상만을 포함하는 영상 기반의 데이터 또는 텍스트만을 포함하는 텍스트 기반의 데이터와 비교하여 보다 많은 정보를 포함하고 있으며, 레이아웃의 복합성(multi-modality) 및 임의성(arbitrariness) 때문에 분석 및 정보 획득이 어려울 수 있어, 이를 효과적으로 분석하기 어렵다는 문제가 있었다.
본 발명의 일 목적은 시각 및 텍스트 정보를 포함하는 다이어그램을 분석하여 다이어그램 내의 정보를 정확하고 효과적으로 획득할 수 있는 방법을 제공하는 것이다.
본 발명의 다른 목적은 시각 및 텍스트 정보를 포함하는 다이어그램을 분석하여 다이어그램 내의 정보를 정확하고 효과적으로 획득할 수 있는 장치를 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 시각 정보 및 텍스트 정보를 포함하는 다이어그램의 분석 방법에서, 상기 다이어그램에 포함되는 n(n은 2 이상의 자연수)개의 객체(object)들을 검출한다. 상기 n개의 객체들에 대한 복수의 특성(feature)들을 획득한다. 상기 n개의 객체들의 관계(relationship) 정보를 저장하고 업데이트하는 동적 인접 텐서 메모리(dynamic adjacency tensor memory) 및 상기 복수의 특성들을 이용하여, 상기 n개의 객체들의 연결 여부를 판단한다. 상기 판단 결과에 기초하여, 상기 n개의 객체들을 노드(node)들로 나타내고 상기 n개의 객체들의 연결 상태를 에지(edge)들로 나타내며 상기 다이어그램에 대응하는 관계 그래프를 획득한다. 상기 n개의 객체들 중 제1 객체와 제2 객체의 연결 여부를 판단하는데 있어서, 상기 제1 객체와 이미 연결되어 있는 객체들에 대한 정보 및 상기 제2 객체와 이미 연결되어 있는 객체들에 대한 정보만을 이용한다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 다이어그램 분석 장치는 입력 버퍼, 적어도 하나의 프로세싱 소자 및 출력 버퍼를 포함한다. 상기 입력 버퍼는 시각 정보 및 텍스트 정보를 포함하는 다이어그램에 대한 입력 데이터를 수신한다. 상기 적어도 하나의 프로세싱 소자는 상기 다이어그램에 포함되는 n(n은 2 이상의 자연수)개의 객체(object)들을 검출하고, 상기 n개의 객체들에 대한 복수의 특성(feature)들을 획득하고, 상기 n개의 객체들의 관계(relationship) 정보를 저장하고 업데이트하는 동적 인접 텐서 메모리(dynamic adjacency tensor memory) 및 상기 복수의 특성들을 이용하여 상기 n개의 객체들의 연결 여부를 판단하며, 상기 판단 결과에 기초하여 상기 n개의 객체들을 노드(node)들로 나타내고 상기 n개의 객체들의 연결 상태를 에지(edge)들로 나타내며 상기 다이어그램에 대응하는 관계 그래프를 획득한다. 상기 출력 버퍼는 상기 관계 그래프에 대한 출력 데이터를 저장한다.
상기와 같은 본 발명의 실시예들에 따른 다이어그램의 분석 방법 및 장치에서는, 다이어그램에 포함되는 객체들을 검출하고 이들 각각의 연결 여부를 판단하며, 객체들의 연결 여부 판단 시에 객체들의 관계 정보를 실시간으로 저장하고 업데이트하는 동적 인접 텐서 메모리를 이용하며 대상 객체들과 이미 연결되어 있는 객체들에 대한 정보만을 이용할 수 있다. 따라서, 다이어그램에 대응하는 관계 그래프를 정확하고 효율적으로 획득할 수 있고, 판단 순서에 상관 없이 항상 동일한 관계 그래프를 획득할 수 있으며, 이를 기초로 다이어그램 내의 정보를 정확하고 효과적으로 파악할 수 있다.
도 1은 본 발명의 실시예들에 따른 다이어그램의 분석 방법을 나타내는 순서도이다.
도 2는 본 발명의 실시예들에 따른 다이어그램의 분석 장치를 나타내는 블록도이다.
도 3a 및 3b는 본 발명의 실시예들에 따른 다이어그램의 분석 방법 및 장치에 의해 이용 및 생성되는 다이어그램 및 관계 그래프의 일 예를 나타내는 도면들이다.
도 4는 본 발명의 실시예들에 따른 다이어그램의 분석 방법 및 장치에 의해 구현되는 통합 다이어그램 분석 네트워크 시스템을 나타내는 블록도이다.
도 5a, 5b 및 5c는 본 발명의 실시예들에 따른 다이어그램의 분석 장치에 포함되는 신경망 모델의 예를 나타내는 도면들이다.
도 6은 도 1의 방법에 포함되는 복수의 특성들을 획득하는 단계의 일 예를 나타내는 순서도이다.
도 7은 도 1의 방법에 포함되는 n개의 객체들의 연결 여부를 판단하는 단계의 일 예를 나타내는 순서도이다.
도 8, 9, 10 및 11은 도 7의 n개의 객체들의 연결 여부를 판단하는 동작을 설명하기 위한 도면들이다.
도 12a 및 12b는 본 발명의 실시예들에 따른 다이어그램의 분석 방법 및 장치의 성능을 설명하기 위한 도면들이다.
도 13은 본 발명의 실시예들에 따른 다이어그램의 분석 장치를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
한편, 어떤 실시예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 다이어그램의 분석 방법을 나타내는 순서도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 다이어그램의 분석 방법은 적어도 하나의 프로세싱 소자(processing element; PE)를 포함하는 분석 장치 및/또는 통합 다이어그램 분석 네트워크(unified diagram parsing network; UDPnet) 시스템에 의해 수행 또는 실행된다. 상기 분석 장치 및 상기 통합 다이어그램 분석 네트워크 시스템의 구체적인 구성에 대해서는 도 2 및 4 등을 참조하여 후술하도록 한다.
본 발명의 실시예들에 따른 다이어그램의 분석 방법에서, 시각(visual) 정보 및 텍스트(textual) 정보를 포함하는 다이어그램에 대한 입력 데이터를 수신한다(단계 S100).
언어 기반의 지식과 다르게, 상기 다이어그램은 문자들 및 그림들과 그들의 관계(예를 들어, 화살표)를 보다 간결하게 표현할 수 있다. 예를 들어, 상기 다이어그램은 다양한 타입의 주제들, 그림들, 문자들 및 레이아웃들을 포함할 수 있다. 예를 들어, 도 3a를 참조하여 후술하는 것처럼, 정글에서의 먹이사슬, 나방의 생애 등과 같은 복잡한 개념을 한 장의 다이어그램으로 나타낼 수 있다.
상기 다이어그램에 포함되는 n(n은 2 이상의 자연수)개의 객체(object)들을 검출한다(단계 S200). 예를 들어, 상기 n개의 객체들은 각각 상기 시각 정보를 나타내는 제1 종류(class), 상기 텍스트 정보를 나타내는 제2 종류, 화살표 머리(arrow head)를 나타내는 제3 종류 및 화살표 꼬리(arrow tail)를 나타내는 제4 종류 중 하나로 구분될 수 있다.
상기 n개의 객체들에 대한 복수의 특성(feature)들을 획득한다(단계 S300). 예를 들어, 상기 복수의 특성들은 상기 n개의 객체들 각각과 관련된 로컬 특성(local feature)들 및 상기 다이어그램 전체와 관련된 글로벌 특성(global feature)을 포함할 수 있다.
일 실시예에서, 단계 S200 및 S300은 상기 분석 장치 및 상기 통합 다이어그램 분석 네트워크 시스템에 포함되는 객체 검출부 또는 객체 검출 네트워크에 의해 수행될 수 있다. 상기 객체 검출부 또는 객체 검출 네트워크에 대해서는 도 2 및 4 등을 참조하여 후술하도록 한다.
동적 인접 텐서 메모리(dynamic adjacency tensor memory, DATM) 및 상기 복수의 특성들을 이용하여, 상기 n개의 객체들의 연결 여부를 판단한다(단계 S400). 상기 동적 인접 텐서 메모리는 상기 n개의 객체들의 관계(relationship) 정보를 저장하고 이를 실시간으로(real-time 또는 runtime) 업데이트한다. 상기 동적 인접 텐서 메모리에 대해서는 도 9 등을 참조하여 후술하도록 한다.
상기 n개의 객체들의 연결 여부를 판단하는데 있어서, 상기 n개의 객체들 중 두 개가 직접적으로 연결되는지 판단하며, 이러한 판단 동작은 모든 객체들에 대해 수행된다. 예를 들어, 제1 객체와 나머지 제2 내지 제n 객체들 각각이 직접적으로 연결되는지 판단하고, 제2 객체와 나머지 제1 및 제3 내지 제n 객체들 각각이 직접적으로 연결되는지 판단하며, 제n 객체와 나머지 제1 내지 제(n-1) 객체들 각각이 직접적으로 연결되는지 판단할 수 있다.
상기 n개의 객체들 중 제1 객체와 제2 객체의 연결 여부를 판단하는데 있어서, 상기 제1 객체와 이미 연결되어 있는 객체들에 대한 정보 및 상기 제2 객체와 이미 연결되어 있는 객체들에 대한 정보만을 이용한다. 도 8 및 9 등을 참조하여 후술하는 것처럼, 단지 특징들을 순차적으로 전달하는 대신에, 본 발명에서는 인접 에지(edge)들로부터의 메시지(message)들을 모두 종합하고(aggregate) 이에 기초하여 연결 여부를 판단하며, 따라서 객체들의 연결 여부를 보다 정확하고 효과적으로 검증할 수 있다.
단계 S400의 상기 판단 결과에 기초하여, 상기 다이어그램에 대응하는 관계 그래프(relationship graph)를 획득한다(단계 S500). 상기 관계 그래프 내에서 상기 n개의 객체들은 노드(node)들로 나타내고 상기 n개의 객체들의 연결 상태는 에지(edge)들로 나타낸다. 예를 들어, 도 3b를 참조하여 후술하는 것처럼, 도 3a의 다이어그램에 대응하는 관계 그래프를 획득할 수 있다.
일 실시예에서, 단계 S400 및 S500은 상기 분석 장치 및 상기 통합 다이어그램 분석 네트워크 시스템에 포함되는 그래프 생성부 또는 그래프 생성 네트워크에 의해 수행될 수 있다. 상기 그래프 생성부 또는 그래프 생성 네트워크에 대해서는 도 2 및 9 등을 참조하여 후술하도록 한다.
도 2는 본 발명의 실시예들에 따른 다이어그램의 분석 장치를 나타내는 블록도이다.
도 2를 참조하면, 분석 장치(100)는 입력 버퍼(110), 적어도 하나의 프로세싱 소자(120) 및 출력 버퍼(130)를 포함한다. 분석 장치(100)는 파라미터 버퍼(140) 및 메모리(150)를 더 포함할 수 있다.
입력 버퍼(110)는 시각 정보 및 텍스트 정보를 포함하는 다이어그램에 대한 입력 데이터(DIMG)를 수신한다. 예를 들어, 입력 버퍼(110)는 적어도 하나의 프레임 버퍼를 포함할 수 있다.
프로세싱 소자(120)는 본 발명의 실시예들에 따른 다이어그램의 분석 방법을 수행한다. 구체적으로, 프로세싱 소자(120)는 상기 다이어그램에 포함되는 n개의 객체들을 검출하고, 상기 n개의 객체들에 대한 복수의 특성들을 획득하고, 상기 n개의 객체들의 관계 정보를 저장하고 업데이트하는 동적 인접 텐서 메모리(DATM) 및 상기 복수의 특성들을 이용하여 상기 n개의 객체들의 연결 여부를 판단하며, 상기 판단 결과에 기초하여 상기 n개의 객체들을 노드들로 나타내고 상기 n개의 객체들의 연결 상태를 에지들로 나타내며 상기 다이어그램에 대응하는 관계 그래프를 획득한다.
프로세싱 소자(120)는 객체 검출부(121) 및 그래프 생성부(123)를 포함할 수 있다. 객체 검출부(121)에 의해 상기 n개의 객체들이 검출되고 상기 복수의 특성들이 획득될 수 있다. 그래프 생성부(123)에 의해 상기 n개의 객체들의 연결 여부가 판단되고 상기 관계 그래프가 획득될 수 있다. 실시예에 따라서, 객체 검출부(121) 및 그래프 생성부(123)는 하드웨어적으로 구분될 수도 있고, 소프트웨어적으로 구분될 수도 있다.
일 실시예에서, 영상의 한 종류인 상기 다이어그램에서 상기 n개의 객체들을 효과적으로 검출할 수 있도록, 객체 검출부(121)는 컨볼루션 신경망(convolutional neural network, CNN) 기반으로 구현된 시스템일 수 있다. CNN에 대해서는 도 5b를 참조하여 후술하도록 한다.
일 실시예에서, 상기 다이어그램 내의 상기 n개의 객체들의 연결 여부를 순차적으로 그리고 효과적으로 판단할 수 있도록, 그래프 생성부(123)는 회귀 신경망(recurrent neural network, RNN) 기반으로 구현된 시스템이고 적어도 하나의 게이트 회귀 유닛(gated recurrent unit, GRU) 셀을 포함할 수 있다. RNN 및 GRU에 대해서는 도 5c 및 9를 참조하여 후술하도록 한다.
일 실시예에서, 프로세싱 소자(120)는 상술한 복수의 연산들을 수행하기 위해 중앙 처리 장치(central processing unit; CPU), 그래픽 처리 장치(graphic processing unit; GPU), 신경 처리 장치(neural processing unit; NPU), 디지털 신호 프로세서(digital signal processor; DSP), 영상 신호 프로세서(image signal processor; ISP) 등과 같은 다양한 처리 장치들 중 적어도 하나를 포함하여 구현될 수 있다. 실시예에 따라서, 프로세싱 소자(120)는 상술한 처리 장치들 중 동일한 종류의(homogeneous) 처리 장치들을 복수 개 포함하거나, 서로 다른 종류의(heterogeneous) 처리 장치들을 복수 개 포함하여 구현될 수 있다.
일 실시예에서, 프로세싱 소자(120)는 상술한 복수의 연산들을 병렬 처리하기 위해 복수의 프로세서 코어(processor core)들을 포함하여 구현될 수 있다.
출력 버퍼(130)는 상기 분석 결과로서 상기 관계 그래프에 대한 출력 데이터(RG)를 저장 및 출력한다. 예를 들어, 출력 버퍼(130)는 적어도 하나의 레지스터를 포함할 수 있다.
파라미터 버퍼(140)는 프로세싱 소자(120)가 상술한 복수의 연산들을 수행하는데 이용되는 복수의 파라미터들 및/또는 복수의 하이퍼 파라미터(hyper parameter)들을 저장할 수 있다. 파라미터 버퍼(140)는 학습 과정에 의해 학습된 파라미터들을 저장할 수도 있다.
메모리(150)는 프로세싱 소자(120)에 의해 처리되었거나 처리될 예정인 데이터들을 임시로 또는 지속적으로 저장할 수 있다. 예를 들어, 메모리(150)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 휘발성 메모리, 및 플래시 메모리(flash memory), PRAM(phase change random access memory), RRAM(resistance random access memory), NFGM(nano floating gate memory), PoRAM(polymer random access memory), MRAM(magnetic random access memory), FRAM(ferroelectric random access memory) 등과 같은 비휘발성 메모리 중 적어도 하나를 포함할 수 있다. 실시예에 따라서, 메모리(150)는 SSD(solid state drive), eMMC(embedded multimedia card), UFS(universal flash storage) 등과 같은 대용량 저장 장치의 형태로 구현될 수도 있다.
메모리(150)는 동적 인접 텐서 메모리(DATM)를 포함할 수 있다. 예를 들어, 동적 인접 텐서 메모리(DATM)는 상기 n개의 객체들의 관계 정보를 3차원 매트릭스의 형태로 저장할 수 있다.
도시하지는 않았으나, 분석 장치(100)는 구성요소들의 전반적인 동작을 제어하는 제어부, 특정 작업의 할당을 관리하는 작업 관리자 등을 더 포함할 수 있다. 실시예에 따라서, 파라미터 버퍼(140) 및 메모리(150)는 하나로 통합되어 구현될 수도 있다.
도 3a 및 3b는 본 발명의 실시예들에 의해 이용 및 생성되는 다이어그램 및 관계 그래프의 일 예를 나타내는 도면들이다.
도 3a를 참조하면, 본 발명의 실시예들에 따른 분석 방법에서 이용되고 분석 장치에 입력되는 다이어그램의 일 예를 도시하고 있다. 도 3a는 정글에서의 먹이사슬을 나타내는 다이어그램을 도시하고 있다.
도 3a에 도시된 것처럼, 다이어그램은 문자들 및 그림들과 그들의 관계를 포함할 수 있다. 예를 들어, 도 3a의 다이어그램은 사자(Lion), 자칼(Jackal), 솔개(Kite), 살쾡이(Wildcat), 염소(Goat), 뱀(Snake), 올빼미(Owl), 토끼(Rabbit), 쥐(Mouse), 녹색 식물(Green Plant)과 같은 문자들, 상술한 문자들에 대응하는 그림들, 및 이들의 먹이사슬 관계를 나타내는 화살표들을 포함하고 있다. 인간의 통찰력으로는 도 3a의 다이어그램으로부터 다양한 정보들을 한 번에 획득할 수 있으나, 하나의 문장 또는 하나의 단순한 이미지로는 도 3a의 다이어그램에 포함된 모든 정보들을 표현하기 어려울 수 있다.
도 3b를 참조하면, 본 발명의 실시예들에 따른 분석 방법에서 생성되고 분석 장치에서 출력되는 관계 그래프의 일 예를 도시하고 있다. 도 3b는 도 3a의 다이어그램에 대응하는 관계 그래프를 도시하고 있다.
도 3b에 도시된 것처럼, 관계 그래프는 복수의 객체들을 나타내는 복수의 노드들 및 객체들의 연결 상태를 나타내는 복수의 에지들을 포함할 수 있다. 예를 들어, 도 3b의 관계 그래프는 문자들에 대응하는 객체들을 초록색(또는 연두색) 노드들로 나타내고, 그림들에 대응하는 객체들을 보라색 노드들로 나타내고, 화살표들에 대응하는 객체들을 빨간색 노드들로 나타내며, 객체들의 연결 상태를 파란색 에지들로 나타내고 있다. 도 1을 참조하여 상술한 것처럼 다이어그램의 분석 시에는 하나의 화살표에 포함되는 화살표 머리 및 꼬리를 별개의 객체로 구분하였으나, 이는 객체들의 연결 상태의 방향성을 파악하기 위한 목적이므로, 도 3b에서는 화살표 머리 및 꼬리를 구분하지 않고 하나의 화살표를 하나의 객체로 표시하고 있다.
도 3b의 관계 그래프를 이용하여 도 3a의 다이어그램에서 객체들의 연결 관계를 보다 정확하고 효과적으로 파악할 수 있다.
도 4는 본 발명의 실시예들에 따른 다이어그램의 분석 방법 및 장치에 의해 구현되는 통합 다이어그램 분석 네트워크 시스템을 나타내는 블록도이다.
도 4를 참조하면, 통합 다이어그램 분석 네트워크 시스템은 크게 두 개의 브랜치(branch) 또는 네트워크로 구성될 수 있다. 하나는 도 2의 객체 검출부(121)에 대응하는 검출 브랜치(도 4의 "a) Detection Branch") 또는 객체 검출 네트워크이고, 다른 하나는 도 2의 그래프 생성부(123)에 대응하는 그래프 생성 브랜치(도 4의 "b) Graph Generation Branch") 또는 그래프 생성 네트워크일 수 있다.
상기 검출 브랜치에서는 다이어그램 내의 객체들의 세트인
Figure 112018117300971-pat00001
를 검출할 수 있다. 고양이, 개 등과 같은 고전적인 객체 타입을 검출하는 대신에, 본 발명에서는 다이어그램의 분석에 적합한 네 개의 종류들인 블롭(blob)(즉, 시각 정보를 포함하는 각각의 객체), 텍스트, 화살표 머리 및 화살표 꼬리로 객체들을 정의할 수 있다. 예를 들어, 객체 oi는 <위치(location), 종류(class)>와 같이 정의할 수 있다.
일 실시예에서, 상기 검출 브랜치 또는 상기 객체 검출 네트워크는 CNN 기반으로 구현된 SSD(single shot multibox detector)일 수 있다.
상기 검출 브랜치에서 상기 그래프 생성 브랜치로 진행하기 이전에, 객체 복사 동작(도 4의 "Duplicate")을 수행하여 객체들의 쌍들을 획득하고 이를 이용할 수 있다. 상기 객체 복사 동작에 대해서는 도 6을 참조하여 후술하도록 한다.
상기 그래프 생성 브랜치에서는 객체들의 관계들인
Figure 112018117300971-pat00002
을 생성할 수 있다. 본 발명에서는 로컬 특성들(f(l)) 및 글로벌 특성(f(g))을 이용하여 객체들의 관계를 생성할 수 있다. 예를 들어, 관계 rj는 <oi, oj>의 형태로 정의할 수 있다.
일 실시예에서, 상기 그래프 생성 브랜치 또는 네트워크는 RNN 기반으로 구현되고 GRU 및 DATM을 이용하여 구현된 DGGN(dynamic graph generation network)일 수 있으며, 이에 대해서는 도 9 등을 참조하여 후술하도록 한다.
일 실시예에서, 상기 객체 검출 네트워크 및 상기 그래프 생성 네트워크는 엔드-투-엔드(end-to-end) 방식의 멀티태스크 러닝(multi-task learning) 방식에 의해 실질적으로 동시에 최적화될 수 있다.
도 5a, 5b 및 5c는 본 발명의 실시예들에 따른 다이어그램의 분석 장치에 포함되는 신경망 모델의 예를 나타내는 도면들이다.
도 5a를 참조하면, 일반적인 신경망의 네트워크 구조는 입력 레이어(IL), 복수의 히든 레이어들(HL1, HL2, ..., HLn) 및 출력 레이어(OL)를 포함할 수 있다.
입력 레이어(IL)는 i(i는 자연수)개의 입력 노드들(x1, x2, ..., xi)을 포함할 수 있고, 길이가 i인 벡터 입력 데이터(IDAT)가 각 입력 노드에 입력될 수 있다.
복수의 히든 레이어들(HL1, HL2, ..., HLn)은 n(n은 자연수)개의 히든 레이어들을 포함하며, 히든 노드들(h1 1, h1 2, h1 3, ..., h1 m, h2 1, h2 2, h2 3, ..., h2 m, hn 1, hn 2, hn 3, ..., hn m)을 포함할 수 있다. 예를 들어, 히든 레이어(HL1)는 m(m은 자연수)개의 히든 노드들(h1 1, h1 2, h1 3, ..., h1 m)을 포함할 수 있고, 히든 레이어(HL2)는 m개의 히든 노드들(h2 1, h2 2, h2 3, ..., h2 m)을 포함할 수 있으며, 히든 레이어(HLn)는 m개의 히든 노드들(hn 1, hn 2, hn 3, ..., hn m)을 포함할 수 있다.
출력 레이어(OL)는 분류할 클래스에 대응하는 j(j는 자연수)개의 출력 노드들(y1, y2, ..., yj)을 포함할 수 있고, 입력 데이터(IDAT)에 대하여 각 클래스 별로 결과(예를 들어, 점수 또는 class score)를 출력할 수 있다. 출력 레이어(240)는 fully connected 레이어라고 부를 수 있으며, 예를 들어 입력 데이터(IDAT)가 자동차에 대응할 확률을 수치로 나타낼 수 있다.
도 5a에 도시된 네트워크 구조는, 두 개의 노드들 사이에 직선으로 도시된 노드들 간의 연결(branch)과, 도시되지는 않았지만 각 연결에서 사용되는 가중치(weight)를 포함할 수 있다. 이 때, 하나의 레이어 내의 노드들 간에는 연결이 되지 않을 수 있고, 서로 다른 레이어들에 포함되는 노드들은 완전하게 혹은 부분적으로 연결될 수 있다.
도 5a의 각 노드(예를 들어, h1 1)는 이전 노드(예를 들어, x1)의 출력을 입력 받아 연산할 수 있고, 연산 결과를 이후 노드(예를 들어, h2 1)에 출력할 수 있다. 이 때, 각 노드는 입력된 값을 특정 함수, 예를 들어 비선형 함수에 적용하여 출력할 값을 연산할 수 있다.
일반적으로 신경망의 네트워크 구조는 미리 결정되어 있으며, 노드들 간의 연결에 따른 가중치들은 이미 어떤 클래스에 속할지 정답이 알려진 데이터를 이용하여 적절한 값을 산정하게 된다. 이와 같이 이미 정답이 알려진 데이터들을 "학습 데이터"라고 하고, 가중치를 결정하는 과정을 "학습"이라고 한다. 또한, 독립적으로 학습이 가능한 구조와 가중치의 묶음을 "모델"이라고 가정하고, 가중치가 결정된 모델이 입력 데이터가 어느 클래스에 속할지를 예측하여 그 예측값을 출력하는 것을 "테스트" 과정이라고 한다.
한편, 도 5a에 도시된 일반적인 신경망은 각 노드(예를 들어, h1 1)가 앞쪽 레이어(previous layer)(예를 들어, IL)의 모든 노드들(예를 들어, x1, x2, ..., xi)과 연결되어 있어, 입력 데이터(IDAT)가 영상(또는 음성)인 경우에 영상의 크기가 증가할수록 필요한 가중치의 개수가 기하급수적으로 증가하며, 따라서 영상을 다루기에 적절하지 않을 수 있다. 이에 따라, 신경망에 필터 기술을 병합하여, 신경망이 2차원 영상을 잘 습득할 수 있도록 구현된 컨볼루션(convolutional) 신경망이 연구되고 있다.
도 5b를 참조하면, 컨볼루션 신경망의 네트워크 구조는 복수의 레이어들(CONV1, RELU1, CONV2, RELU2, POOL1, CONV3, RELU3, CONV4, RELU4, POOL2, CONV5, RELU5, CONV6, RELU6, POOL3, FC)을 포함할 수 있다.
일반적인 신경망과 다르게, 컨볼루션 신경망의 각 레이어는 가로(또는 폭, width), 세로(또는 높이, height), 깊이(depth)의 3개의 차원을 가질 수 있다. 이에 따라, 각 레이어에 입력되는 데이터 또한 가로, 세로, 깊이의 3개의 차원을 가지는 볼륨 데이터일 수 있다. 예를 들어, 도 5b에서 입력 영상이 가로 32, 세로 32의 크기를 가지고 세 개의 컬러 채널(R, G, B)을 가지는 경우에, 상기 입력 영상에 대응하는 입력 데이터(IDAT)는 32*32*3의 크기를 가질 수 있다. 도 5b의 입력 데이터(IDAT)는 입력 볼륨 데이터 또는 입력 액티베이션 볼륨(activation volume)이라 부를 수 있다.
컨볼루션 레이어들(CONV1, CONV2, CONV3, CONV4, CONV5, CONV6)은 입력에 대한 컨볼루션 연산을 수행할 수 있다. 영상 처리에서 컨볼루션이란 가중치를 갖는 마스크를 이용하여 데이터를 처리하는 것을 의미할 수 있으며, 입력 값과 마스크의 가중치를 곱한 후에 그 합을 출력 값으로 정하는 것을 나타낼 수 있다. 이 때, 마스크를 필터(filter), 윈도우(window) 또는 커널(kernel)이라고 부를 수 있다.
구체적으로, 각 컨볼루션 레이어의 파라미터들은 일련의 학습 가능한 필터들로 이루어져 있을 수 있다. 각 필터는 가로/세로 차원으로는 각 레이어의 전체 크기보다 작지만 깊이 차원으로는 각 레이어의 전체 깊이를 아우를 수 있다. 예를 들어, 각 필터를 입력 볼륨의 가로/세로 차원으로 슬라이딩(정확히는 convolve) 시키며 필터와 입력의 요소들 사이의 내적 연산(dot product)을 수행하여 2차원의 액티베이션 맵(activation map)을 생성할 수 있고, 이러한 액티베이션 맵을 깊이 차원을 따라 쌓아서 출력 볼륨을 생성할 수 있다. 예를 들어, 컨볼루션 레이어(CONV1)가 32*32*3의 크기의 입력 볼륨 데이터(IDAT)에 네 개의 필터들을 제로 패딩(zero-padding)과 함께 적용하면, 컨볼루션 레이어(CONV1)의 출력 볼륨은 32*32*12의 크기를 가질 수 있다 (즉, 깊이 증가).
RELU 레이어들(RELU1, RELU2, RELU3, RELU4, RELU5, RELU6)은 입력에 대한 정정 선형 유닛(rectified linear unit) 연산을 수행할 수 있다. 예를 들어, 정정 선형 유닛 연산은 max(0, x)와 같이 음수에 대해서만 0으로 처리하는 함수를 나타낼 수 있다. 예를 들어, RELU 레이어(RELU1)가 컨볼루션 레이어(CONV1)로부터 제공된 32*32*12의 크기의 입력 볼륨에 정정 선형 유닛 연산을 수행하면, RELU 레이어(RELU1)의 출력 볼륨은 32*32*12의 크기를 가질 수 있다 (즉, 볼륨 유지).
풀링 레이어들(POOL1, POOL2, POOL3)은 입력 볼륨의 가로/세로 차원에 대해 다운 샘플링을 수행할 수 있다. 예를 들어, 2*2 필터를 적용하는 경우에 2*2 영역의 네 개의 입력들을 하나의 출력으로 변환할 수 있다. 구체적으로, 2*2 최대 값 풀링과 같이 2*2 영역의 네 개의 입력들 중 최대 값을 선택하거나, 2*2 평균 값 풀링과 같이 2*2 영역의 네 개의 입력들의 평균 값을 연산할 수 있다. 예를 들어, 풀링 레이어(POOL1)가 32*32*12의 크기의 입력 볼륨에 2*2 필터를 적용하면, 풀링 레이어(POOL1)의 출력 볼륨은 16*16*12의 크기를 가질 수 있다 (즉, 가로/세로 감소, 깊이 유지, 볼륨 감소).
일반적으로 컨볼루션 신경망에서는 하나의 컨볼루션 레이어(예를 들어, CONV1)와 하나의 RELU 레이어(예를 들어, RELU1)가 한 쌍을 형성할 수 있고, 컨볼루션/RELU 레이어들의 쌍이 반복 배치될 수 있으며, 컨볼루션/RELU 레이어들의 쌍이 반복 배치되는 중간 중간에 풀링 레이어를 삽입함으로써, 영상을 줄여나가면서 영상의 특징을 추출할 수 있다.
출력 레이어 또는 fully connected 레이어(FC)는 입력 볼륨 데이터(IDAT)에 대하여 각 클래스 별로 결과를 출력할 수 있다. 예를 들어, 컨볼루션 및 서브 샘플링을 반복 수행함에 따라 2차원 영상에 대응하는 입력 볼륨 데이터(IDAT)가 1차원 행렬(또는 벡터)로 변환될 수 있다. 예를 들어, fully connected 레이어(FC)는 입력 볼륨 데이터(IDAT)가 자동차(CAR), 트럭(TRUCK), 비행기(AIRPLANE), 배(SHIP), 말(HORSE)에 대응할 확률을 수치로 나타낼 수 있다.
한편, 도시하지는 않았으나, 컨볼루션 신경망에 포함되는 레이어들의 종류 및 개수는 실시예에 따라서 다양하게 변경될 수 있다. 또한, 도시하지는 않았으나, 실시예에 따라서 컨볼루션 신경망은 예측된 결과인 점수(score) 값을 확률 값으로 변환하는 Softmax 레이어, 바이어스(bias)를 추가하는 Bias add 레이어 등을 더 포함할 수 있다.
일 실시예에서, 도 2의 객체 검출부(121) 및 도 4의 상기 검출 브랜치 또는 상기 객체 검출 네트워크가 도 5b에 도시된 컨볼루션 신경망을 이용하여 구현될 수 있다.
한편, 도 5a 및 5b 등에 도시된 신경망 구조에서는 모든 입력과 출력이 각각 독립적이라고 가정하였지만, 많은 경우에 이는 옳지 않은 방법일 수 있다. 예를 들어, 문장에서 다음에 나올 단어를 추측하고 싶다면 이전에 나온 단어들을 아는 것이 큰 도움이 될 것이다. 따라서, 동일한 태스크를 한 시퀀스의 모든 요소마다 적용하고, 출력 결과는 이전의 계산 결과에 영향을 받는 회귀적인(recurrent) 특성을 갖도록 구현된 회귀 신경망이 연구되고 있다.
도 5c를 참조하면, 회귀 신경망의 네트워크 구조는 도 5c의 좌측에 도시된 특정 노드(N) 또는 셀을 이용한 반복 구조를 포함할 수 있다.
도 5c의 우측에 도시된 구조는 좌측에 도시된 회귀 신경망의 반복적인 연결이 펼쳐진(UNFOLD) 것을 나타내며, 회귀 신경망을 "펼친다"는 것은 네트워크를 모든 노드들(NA, NB, NC)을 포함하는 전체 시퀀스에 대해 도시한 것일 수 있다. 예를 들어, 관심 있는 시퀀스 정보가 3개의 단어로 이루어진 문장이라면, 회귀 신경망은 한 단어당 하나의 계층(layer)씩 (recurrent 연결이 없는, 또는 사이클이 없는) 3-layer 신경망 구조로 펼쳐질 수 있다.
회귀 신경망에서, X는 회귀 신경망의 입력값을 나타낸다. 예를 들어, Xt는 시간 스텝(time step) t에서의 입력값이며, Xt-1 및 Xt+1 역시 각각 시간 스텝 t-1 및 t+1에서의 입력값일 수 있다.
회귀 신경망에서, S는 히든 상태(hidden state)를 나타낸다. 예를 들어, St는 시간 스텝 t에서의 히든 상태이며, St-1 및 St+1도 역시 각각 시간 스텝 t-1 및 t+1에서의 히든 상태일 수 있다. 히든 상태는 이전 시간 스텝의 히든 상태 값과 현재 시간 스텝의 입력값에 의해 계산될 수 있다. 예를 들어, St=f(UXt+WSt-1)일 수 있고, 이 때 비선형 함수 f는 tanh나 ReLU가 사용될 수 있으며, 최초의 히든 상태를 계산하기 위한 S-1은 보통 0으로 초기화시킬 수 있다.
회귀 신경망에서, O는 시간 스텝 t에서의 출력값을 나타낸다. 예를 들어, Ot는 시간 스텝 t에서의 출력값이며, Ot-1 및 Ot+1 역시 각각 시간 스텝 t-1 및 t+1에서의 출력값일 수 있다. 예를 들어, 문장에서 다음 단어를 추측하고 싶다면 단어 수만큼의 차원의 확률 벡터가 될 것이다. 예를 들어, Ot=softmax(VSt)일 수 있다.
회귀 신경망에서, 히든 상태는 네트워크의 "메모리" 부분일 수 있다. 다시 말하면, 회귀 신경망은 현재까지 계산된 결과에 대한 "메모리" 정보를 갖고 있다고 볼 수 있다. St는 과거의 시간 스텝들에서 일어난 일들에 대한 정보를 전부 담고 있고, 출력값 Ot는 오로지 현재 시간 스텝 t의 메모리에만 의존할 수 있다. 또한, 각 계층마다의 파라미터 값들이 전부 다른 기존의 신경망 구조와 달리, 회귀 신경망은 모든 시간 스텝에 대해 파라미터 값(도 5c의 U, V, W)을 전부 공유하고 있다. 이는 회귀 신경망이 각 스텝마다 입력값만 다를 뿐 거의 똑같은 계산을 하고 있음을 나타내며, 학습해야 하는 파라미터 수를 감소시킬 수 있다.
일 실시예에서, 도 2의 그래프 생성부(123) 및 도 4의 상기 그래프 생성 브랜치 또는 네트워크가 도 5c에 도시된 컨볼루션 신경망을 이용하여 구현될 수 있다. 이 때, 도 7을 참조하여 후술하는 것처럼, 본 발명에서는 하나의 다이어그램에 포함되는 n2개의 관계 후보들 모두에 대한 연결 여부를 순차적으로 판단하므로, 시간 스텝 t는 실제 시간과 관련된 정보라기 보다는, 제1 내지 제n2 관계 후보들에 대한 판단 순서(즉, n2개 중에서 몇 번째로 연결 상태를 판단하고 있는지)와 관련된 정보일 수 있다.
도 6은 도 1의 방법에 포함되는 복수의 특성들을 획득하는 단계의 일 예를 나타내는 순서도이다.
도 1 및 6을 참조하면, 상기 복수의 특성들을 획득하는데 있어서(단계 S300), 상기 n개의 객체들 각각을 상기 n개의 객체들에 대응시킨 n2개의 객체 쌍들을 n2개의 관계 후보(relationship candidate)들로 설정하고(단계 S310), 상기 n2개의 관계 후보에 대한 n2개의 로컬 특성(local feature)들을 획득하며(단계 S320), 상기 다이어그램의 레이아웃(layout) 및 상기 n개의 객체들 모두의 공간 정보에 기초하여 글로벌 특성(global feature)을 획득할 수 있다(단계 S330). 단계 S310이 도 4의 상기 객체 복사 동작에 대응할 수 있다.
본 발명에서, 다이어그램 내의 객체들에 대한 관계 매칭은 그래프 추론(graph inference)을 이용하여 꼭지점들의 쌍(a pair of vertices) 사이에 에지의 존재를 예측하여 수행될 수 있다. 상술한 것처럼, 관계 그래프에서의 노드들 및 에지들은 각각 다이어그램에서의 객체들 및 객체 쌍들(paired objects)의 관계에 대응할 수 있다. 따라서, 그래프는 하기의 [수학식 1]과 같이 양분 그래프(bipartite graph)로 도시될 수 있다.
[수학식 1]
Figure 112018117300971-pat00003
상기의 [수학식 1]에서,
Figure 112018117300971-pat00004
Figure 112018117300971-pat00005
Figure 112018117300971-pat00006
인 분리 꼭지점 쌍들(paired disjoint vertices)의 세트를 나타내고, E는 노드들
Figure 112018117300971-pat00007
Figure 112018117300971-pat00008
의 쌍을 각각 연결하는 그래프의 에지들을 나타낼 수 있다. 양분 그래프를 구성하기 위해, 검출된 객체 O를 Ox 및 Oy로 복사하고(duplicate) 두 세트들이 서로 분리된 것으로 가정한다. 그리고 노드들
Figure 112018117300971-pat00009
Figure 112018117300971-pat00010
사이에 에지가 존재하는지를 예측할 수 있다. 이러한 과정이 도 6의 단계 S310, 즉 상기 객체 복사 동작에 대응할 수 있다.
노드들 사이의 연결은 그들의 공간적 관계(spatial relationship) 및 각각의 객체 종류(object class)에 대한 신뢰 점수(confidence score)에 의해 결정될 수 있다. 상기 신뢰 점수는 도 4의 상기 검출 브랜치 또는 상기 객체 검출 네트워크에 의해 제공될 수 있다.
다이어그램 내에는 형상(shape) 및 텍스처(texture)를 일반화하기 어려운 다양한 종류의 객체들이 존재할 수 있으므로, 본 발명에서는 ROI(region of interest) 풀링(pooling)으로부터의 컨볼루션 특성들을 이용하지 않았다. 대신에, 본 발명에서는 객체 ox에 대한 특성 fx를 정의하였으며, 특성
Figure 112018117300971-pat00011
는 위치(x_min, y_min, x_max, y_max), 중심점(x_center, y_center), 폭(width), 높이(height) 및 신뢰 점수들을 포함할 수 있다. 상기 위치 및 상기 중심점은 각각 4개 및 2개의 변수들을 포함하고, 상기 신뢰 점수들은 객체 ox가 블롭, 텍스트, 화살표 머리, 화살표 꼬리 및 그 밖의 객체일 확률을 나타내는 5개의 변수들을 포함하므로, 특성 fx는 총 13개의 변수들을 포함할 수 있다. 따라서, 두 개의 객체들인 ox 및 oy 사이의 관계를 로컬 특성
Figure 112018117300971-pat00012
으로 나타낼 수 있으며, 특성 벡터 f(l)이 RNN 계층의 입력이 될 수 있다. 이러한 과정이 도 6의 단계 S320, 즉 상기 로컬 특성 획득 동작에 대응할 수 있다.
다시 말하면, 도 6의 단계 S320에서 획득되는 상기 n2개의 로컬 특성들 중 상기 제1 객체 및 상기 제2 객체를 포함하는 제1 객체 쌍에 대한 제1 로컬 특성은, 상기 제1 객체 및 상기 제2 객체의 위치, 중심점, 폭, 높이 및 신뢰 점수에 대한 정보를 포함할 수 있다.
또한, 다이어그램의 레이아웃 및 모든 객체들의 공간 정보를 추출하기 위해, 글로벌 특성 f(g)를 RNN 계층의 입력으로 이용할 수 있다. 글로벌 특성
Figure 112018117300971-pat00013
는 첫 번째 브랜치인 상기 검출 브랜치 내의 백본 네트워크(backbone network)의 conv-7 계층의 컨볼루션 특성(256*1*1)과 다이어그램의 이진 마스크(binary mask) 특성(128*1)의 합으로 구성될 수 있다. conv-7 특성과 히든 유닛(hidden unit)의 차원을 일치시키기 위해 마지막 단계에서 fully connected 계층을 이용할 수 있다. 마스크 특성과 관련하여,
Figure 112018117300971-pat00014
차원의 이진 마스크 맵을 4 계층의(4 layered) 컨볼루션 및 최대값 풀링(max pooling)에 통과시켜 히든 유닛의 차원과 일치시킬 수 있다. nh 및 nw는 영상(즉, 다이어그램)의 폭 및 높이이고, nc는 객체 종류의 개수일 수 있다. 이러한 과정이 도 6의 단계 S330, 즉 상기 글로벌 특성 획득 동작에 대응할 수 있다.
도 7은 도 1의 방법에 포함되는 n개의 객체들의 연결 여부를 판단하는 단계의 일 예를 나타내는 순서도이다. 도 8, 9, 10 및 11은 도 7의 n개의 객체들의 연결 여부를 판단하는 동작을 설명하기 위한 도면들이다.
도 1 및 7을 참조하면, 상기 n개의 객체들의 연결 여부를 판단하는데 있어서(단계 S400), 상기 n개의 객체들 중 상기 제1 객체 및 상기 제2 객체의 연결 여부를 판단하는 예를 도시하고 있다.
구체적으로, 상기 n개의 객체들의 관계 정보는 3차원 매트릭스의 형태로 동적 인접 텐서 메모리(도 2의 DATM)에 저장되어 있을 수 있다. 상기 3차원 매트릭스로부터 상기 제1 객체에 대한 복수의 제1 원소(element)들 및 상기 제2 객체에 대한 복수의 제2 원소들을 추출하고(단계 S410), 상기 복수의 제1 원소들 및 상기 복수의 제2 원소들을 기초로 가중 평균 풀링(weighted mean pool) 연산을 수행하여, 이전 히든 상태(previous hidden state)를 획득하며(단계 S420), 상기 이전 히든 상태에 기초하여 상기 제1 객체와 상기 제2 객체의 연결이 유효한지 판단하는 제1 판단 동작을 수행할 수 있다(단계 S430). 또한, 상기 제1 판단 동작을 수행한 이후에, 상기 3차원 매트릭스 내의 상기 복수의 제1 원소들 및 상기 복수의 제2 원소들을 업데이트할 수 있다(단계 S440). 단계 S410 및 S420을 검색(retrieve) 동작이라 하고, 단계 S440을 업데이트(update) 동작이라 할 수 있다.
도 7에서는 상기 제1 객체 및 상기 제2 객체를 포함하는 상기 제1 객체 쌍에 대한 연결 여부를 판단하는 것만을 도시하였으나, 도 6의 단계 S310에서 설정된 상기 n2개의 관계 후보들(즉, 상기 n2개의 객체 쌍들) 모두에 대해 단계 S410, S420, S430 및 S440과 유사한 동작이 반복적으로 수행되어 모든 객체 쌍들에 대한 연결 여부를 순차적으로 판단할 수 있다.
본 발명에서, 로컬 특성 벡터
Figure 112018117300971-pat00015
는 노드들
Figure 112018117300971-pat00016
Figure 112018117300971-pat00017
사이의 연결 정보를 포함할 수 있다. 이하에서는 두 개의 인덱스들인 i와 j를 대신하여 하나의 인덱스인 t를 사용함으로써, 로컬 특성 벡터를
Figure 112018117300971-pat00018
와 같이 간단하게 표현하도록 한다.
도 8을 참조하면, 종래 기술의 하나인 바닐라(vanilla) RNN에서 연결 벡터(connection vector)가 순차적으로 입력되어 RNN을 트레이닝 하는 것을 도시하고 있다. 바닐라 RNN은 내부 셀(또는 노드)로서 GRU를 이용하는 점에서 본 발명과 유사한 부분이 있으나, 벡터
Figure 112018117300971-pat00019
가 확률적 기울기 트레이닝(stochastic gradient training) 내에서 랜덤하게 섞이기(randomly shuffled) 때문에, 입력
Figure 112018117300971-pat00020
이 다음 입력
Figure 112018117300971-pat00021
과 연관되어 있음이 보장되지 않는 문제가 있었다. 또한, 본 발명에서는 양분 그래프 추론을 정의한 반면, 바닐라 RNN에서는 그래프 구조를 캡쳐하지(capture) 못하고 다음 유닛으로 전파하지(propagate) 못하는 문제가 있었다. 다시 말하면, 바닐라 RNN에서는 랜덤하게 선택된 다음 셀로만 정보가 순차적으로 전달되는 문제가 있었다.
도 9를 참조하면, 본 발명에서는 GRU를 기본 모델로서 포함하는 DGGN을 이용하여 상기 그래프 생성 브랜치 또는 네트워크를 구현한다.
도 9에 도시된 본 발명의 실시예들에 따라 이전 상태를 다음 단계에 전파하는 방식은 도 8에 도시된 바닐라 RNN에서의 방식과 완전히 다를 수 있다. 구체적으로, 바닐라 RNN에서는 단지 특성들을 순차적으로 전달할 뿐이지만, 본 발명에서는 인접 에지들(adjacent edges)로부터의 메시지들을 종합할 수 있다(aggregate). 인접 에지들로부터의 메시지들을 종합하기 위해, DGGN은 온라인 방식(online manner)에서 그래프 구조를 설립할 수 있는 동적 프로그래밍 방식(dynamic programming scheme)을 요구할 수 있다.
또한 본 발명에서, 그래프의 알려진 구조(known structure)를 통해 메시지를 전파하는데 주로 이용되고 있는 그래프 이론(graph theory)의 인접 매트릭스(adjacency matrix)를 이용할 수 있다. 다만, 본 발명에서 인접 매트릭스는 알려져 있지 않고 추정되어야(estimated) 하므로, 노드들 사이의 연결 정보를 포함하는 동적 메모리 성분(dynamic memory component)을 적용할 수 있다.
구체적으로, 2차원의 인접 매트릭스를 3차원의 메모리인 동적 인접 텐서 메모리로 확장할 수 있다. 도 9에서 n*n*(m+1) 형태의 3차원 블록(또는 매트릭스)으로 도시된 동적 인접 텐서 메모리
Figure 112018117300971-pat00022
는 인접 매트릭스
Figure 112018117300971-pat00023
와 대응하는 히든 유닛 H의 접합(concatenation)으로 정의되며, 히든 유닛 H의 (i,j) 원소인 hi,j는 노드들 oi 및 oj 사이의 연결과 관련된 GRU의 m차원 히든 벡터일 수 있다. 인접 매트릭스 A는 직접 그래프(directed graph)에서 n개의 노드들 사이의 연결 상태를 나타내며, 인접 매트릭스의 각 셀은 대응하는 노드 쌍이 직접 연결되는지 만을 나타낼 수 있다. 텐서 D를 이용하여 도 10 및 11을 참조하여 후술할 검색 동작 및 업데이트 동작을 수행함으로써, 인접 에지들로부터의 메시지들을 종합하고 관계 그래프를 생성할 수 있다.
도 9에서는 DGGN이 복수의 GRU들 및 복수의 동적 인접 텐서 메모리들을 포함하는 것처럼 도시하였으나, 이는 도 5c의 우측에 도시된 구조와 유사하게 DGGN을 펼친 구조를 나타낸 것이며, 실제로 DGGN은 도 5c의 좌측에 도시된 구조와 유사하게 하나의 GRU 및 하나의 동적 인접 텐서 메모리를 포함하여 구현될 수 있다.
도 10을 참조하면, 도 9의 DGGN에서 검색 동작이 수행되는 일 예를 도시하고 있다. 과거의 메시지들(past messages)이 인접 에지들로부터 전달되며, 특히 객체들의 인덱스들에서 추출된 매트릭스(extracted matrix at indexes of objects)를 이용하여 가중 평균 풀링 연산을 수행할 수 있다.
구체적으로, 도 10의 "1) Message Propagation"으로 도시된 것처럼, 객체들 oi 및 oj 사이의 연결 여부를 판단하기 위해, 인접 에지들을 통해 전파된 메시지들을 수집하여 이전 히든 상태의 추정값
Figure 112018117300971-pat00024
을 획득할 수 있다. 구체적으로, 갈색으로 표시된 객체 oi와 이미 연결되어 있는 에지들(즉, 이미 연결되어 있는 다른 객체들)로부터 정보를 수집하고, 파란색으로 표시된 객체 oj와 이미 연결되어 있는 에지들(즉, 이미 연결되어 있는 다른 객체들)로부터 정보를 수집하며, 이에 기초하여 이전 히든 상태를 추정할 수 있다. 이 때, 객체들 oi 및 oj와 연결되어 있지 않은 에지들 및 객체들로부터는 정보를 수집하지 않을 수 있다.
도 10의 "2) Weighted Mean Pool"로 도시된 것처럼, 에지의 존재 확률만큼 가중치를 두어(weighted by the probability of the existence of an edge) 객체들 oi 및 oj의 인접 벡터들의 평균값을 취할 수 있다. 구체적으로, 노드들 i 및 j에 대한 연결을 나타내는 입력 벡터
Figure 112018117300971-pat00025
에 대한 히든 유닛
Figure 112018117300971-pat00026
를 하기의 [수학식 2]와 같이 추출할 수 있다. 다시 말하면, 동적 인접 텐서 메모리에서 갈색으로 표시된 객체 oi에 대한 원소들 및 파란색으로 표시된 객체 oj에 대한 원소들을 추출하고, 하기의 [수학식 2]를 이용하여 이전 히든 상태의 추정값을 획득할 수 있다.
[수학식 2]
Figure 112018117300971-pat00027
상기의 [수학식 2]에서, ai,j는 인접 매트릭스 A의 (i,j) 원소를 나타내며, 이는 스칼라 값일 수 있다.
Figure 112018117300971-pat00028
는 텐서 H의 (i,j) 위치에 저장된 히든 유닛이며, 이는 벡터일 수 있다. 확률 ai,j는 메시지들을 종합하기 위한 가중치의 역할을 하며, 이는 보다 믿을만한(credible) 인접 에지들이 보다 믿을만한 메시지들을 전달한다는 원칙 또는 철학을 나타낼 수 있다. 또한, GRU 계층에 전달하기 이전에, 글로벌 특성 f(g)를 합산하여 다이어그램의 글로벌 형상을 반영할 수 있다.
도 11을 참조하면, 도 9의 DGGN에서 업데이트 동작이 수행되는 일 예를 도시하고 있다. 추론된 정보(inferred information)를 입력 객체들의 인덱스들에서 접합된 벡터(a concatenated vector at indexes of input objects)와 함께 동적 인접 텐서 메모리에 저장할 수 있다.
구체적으로, GRU 셀로부터의 출력 at 및 히든 상태 ht를 접합한 (m+1) 길이의 벡터를 이용하여 셀 Dij를 [수학식 3] 내지 [수학식 8]과 같이 업데이트할 수 있다.
[수학식 3]
Figure 112018117300971-pat00029
[수학식 4]
Figure 112018117300971-pat00030
[수학식 5]
Figure 112018117300971-pat00031
[수학식 6]
Figure 112018117300971-pat00032
[수학식 7]
Figure 112018117300971-pat00033
[수학식 8]
Figure 112018117300971-pat00034
[수학식 3] 등에서,
Figure 112018117300971-pat00035
는 시그모이드(sigmoid) 함수를 나타낸다. 히든 상태
Figure 112018117300971-pat00036
를 획득하기 위해, 벡터
Figure 112018117300971-pat00037
Figure 112018117300971-pat00038
이 각각 표준 GRU의 이전 히든 상태 및 입력 벡터로 이용될 수 있다. 게이트 zt를 업데이트 하는 것은 GRU 셀 내의 이전 정보
Figure 112018117300971-pat00039
의 유입(influx)을 조절하는 역할일 수 있다. 이진 출력 at는 fully connected layer 이후에 획득될 수 있다. [수학식 7] 및 [수학식 8]이 상기 업데이트 동작과 관련된 핵심적인 특징을 나타낼 수 있다.
도 9 내지 11을 참조하여 상술한 본 발명의 실시예들에 따른 다이어그램의 분석 장치에 포함되는 DGGN의 동작의 일 예를 다음과 같이 설명할 수 있다.
상기 객체 검출 네트워크로부터 5개의 객체들 및 이와 관련된 특성들이 제공되는 것으로 가정한다. 가장 먼저 제1 및 제2 객체들의 연결 여부를 판단하는 제1 판단 동작을 수행하는 경우에, 이는 최초 판단 동작으로 상기 제1 및 제2 객체들이 연결되어 있는 다른 객체들(또는 에지들)이 존재하지 않으므로, 정보 전파 없이(즉, 최초 이전 히든 상태=0) 상기 제1 판단 동작을 수행할 수 있다. 상기 제1 판단 동작의 결과 상기 제1 및 제2 객체들은 제1 에지를 통해 서로 연결된 것으로 판단될 수 있다.
일 실시예에서, 상기 제1 판단 동작 이후에 제1 및 제3 객체들의 연결 여부를 판단하는 제2 판단 동작을 수행할 수 있다. 이 때, 도 10을 참조하여 상술한 것처럼, 상기 제1 객체와 연결된 상기 제2 객체(또는 상기 제1 에지)로부터 전파된 정보를 이용하여 이전 히든 상태를 획득하여 상기 제2 판단 동작을 수행할 수 있다.
다른 실시예에서, 상기 제1 판단 동작 이후에 제3 및 제4 객체들의 연결 여부를 판단하는 제3 판단 동작 및 제2 및 제3 객체들의 연결 여부를 판단하는 제4 판단 동작을 순차적으로 수행할 수 있다. 이 때, 상기 제3 및 제4 객체들이 연결되어 있는 다른 객체들(또는 에지들)이 존재하지 않으므로, 정보 전파 없이 상기 제3 판단 동작을 수행하며, 상기 제3 판단 동작의 결과 상기 제3 및 제4 객체들은 제2 에지를 통해 서로 연결된 것으로 판단될 수 있다. 이후에, 도 10을 참조하여 상술한 것처럼, 상기 제1 객체와 연결된 상기 제2 객체(또는 상기 제1 에지)로부터 전파된 정보 및 상기 제3 객체와 연결된 상기 제4 객체(또는 상기 제2 에지)로부터 전파된 정보를 이용하여 이전 히든 상태를 획득하여 상기 제4 판단 동작을 수행할 수 있다.
상술한 제2, 제3 및 제4 판단 동작 시에 대상 객체들과 연결되지 않은 객체(예를 들어, 제5 객체)에 대한 정보는 전혀 고려하지 않을 수 있다. 또한, 상술한 각각의 판단 동작 이후에는 도 11을 참조하여 상술한 업데이트 동작이 수행될 수 있다.
상술한 방식으로 5개의 객체들 각각과 나머지 객체들의 연결 여부를 모두 판단하여, 도 3b에 예시된 것과 같은 관계 그래프를 획득할 수 있다. 본 발명의 실시예들에 따라 동적 인접 텐서 메모리로부터 대상 객체들과 관련된 정보만을 추출하여 연결 여부를 판단함으로써, 판단의 정확성 및 효율성이 증가할 뿐만 아니라 모든 객체 쌍들(즉, 모든 관계 후보들)을 어떠한 순서로 판단하더라도 동일한 결과물을 획득할 수 있다.
도 12a 및 12b는 본 발명의 실시예들에 따른 다이어그램의 분석 방법 및 장치의 성능을 설명하기 위한 도면들이다.
도 12a를 참조하면, 여러 개의 다이어그램들 각각에 대해 본 발명의 실시예들에 따른 도 9의 DGGN과 종래 기술에 따른 도 8의 바닐라 RNN을 적용한 분석 결과를 나타낸다. 본 발명의 실시예들에 따른 DGGN을 적용한 경우에 분석 결과가 보다 정확함을 확인할 수 있다.
도 12b를 참조하면, fully connected layer를 적용한 경우, 종래 기술에 따른 도 8의 바닐라 RNN을 적용한 경우, 본 발명의 실시예들에 따른 DGGN에서 글로벌 특성을 제외한 경우, 가중 평균 풀링 연산을 제외한 경우, ROI 풀링 특성을 이용한 경우, 및 상술한 조건 없이 본 발명의 실시예들에 따른 DGGN을 적용한 경우에 분석 성능을 나타낸다. 숫자가 높을수록 성능이 우수함을 나타내며, 본 발명의 실시예들에 따른 DGGN을 적용한 경우에 가장 우수한 성능을 가짐을 확인할 수 있다.
도 13은 본 발명의 실시예들에 따른 다이어그램의 분석 장치를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 13을 참조하면, 컴퓨팅 시스템(1000)은 프로세서(1010) 및 다이어그램 분석 장치(100)를 포함한다. 컴퓨팅 시스템(1000)은 통신(connectivity)부(1020), 저장부(1030), 사용자 인터페이스(1050) 및 전원 공급부(1060)를 더 포함할 수 있다.
프로세서(1010)는 특정 계산들 또는 태스크들과 같은 다양한 컴퓨팅 기능들을 실행할 수 있다. 예를 들어, 프로세서(1010)는 CPU, 마이크로프로세서, AP(application processor) 등과 같은 임의의 프로세서일 수 있다. 프로세서(1010)는 컴퓨팅 시스템(1000)을 구동하기 위한 운영 체제(operating system; OS)를 실행할 수 있고, 인터넷 브라우저, 게임, 동영상, 카메라 등을 제공하는 다양한 어플리케이션들을 실행할 수 있다.
다이어그램 분석 장치(100)는 프로세서(1010)에 의해 제어된다. 다이어그램 분석 장치(100)는 도 2의 분석 장치(100)일 수 있으며, 도 1 내지 12를 참조하여 상술한 방식에 기초하여 동작하고 통합 다이어그램 분석 네트워크 시스템을 형성할 수 있다. 실시예에 따라서, 분석 장치(100)의 일부는 프로세서(1010) 및/또는 저장부(1030)에 포함될 수 있다.
통신부(1020)는 외부 장치와 통신을 수행할 수 있다. 예를 들어, 통신부(1020)는 범용 직렬 버스(Universal Serial Bus; USB) 통신, 이더넷(Ethernet) 통신, 근거리 무선 통신(Near Field Communication; NFC), 무선 식별(Radio Frequency Identification; RFID) 통신, 이동 통신(Mobile Telecommunication), 메모리 카드 통신 등을 수행할 수 있다.
저장부(1030)는 프로세서(1010)에 의해 처리되는 데이터를 저장하거나, 동작 메모리(working memory)로서 작동할 수 있다. 저장부(1030)는 컴퓨팅 시스템(1000)을 부팅하기 위한 부트 이미지(boot image), 컴퓨팅 시스템(1000)을 구동하기 위한 상기 운영 체제와 관련된 파일 시스템(file system), 컴퓨팅 시스템(1000)과 연결되는 외부 장치와 관련된 장치 드라이버(device driver), 컴퓨팅 시스템(1000)에서 실행되는 상기 어플리케이션 등을 저장할 수 있다. 예를 들어, 저장부(1030)는 DRAM, SRAM 등과 같은 적어도 하나의 휘발성 메모리를 포함할 수도 있고, EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시 메모리, PRAM, RRAM, NFGM, PoRAM, MRAM, FRAM 등과 같은 적어도 하나의 비휘발성 메모리를 포함할 수도 있다.
사용자 인터페이스(1050)는 키패드, 버튼, 마이크, 터치 스크린 등과 같은 하나 이상의 입력 장치, 및/또는 스피커, 디스플레이 장치 등과 같은 하나 이상의 출력 장치를 포함할 수 있다. 전원 공급부(1060)는 컴퓨팅 시스템(1000)의 동작 전압을 공급할 수 있다.
일 실시예에서, 컴퓨팅 시스템(1000)은 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular), 스마트 폰(smart phone), MP3 플레이어, PDA(personal digital assistant), PMP(portable multimedia player), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(internet of things) 기기, IoE(internet of everything) 기기, e-북(e-book), VR(virtual reality) 기기, AR(augmented reality) 기기 등과 같은 임의의 전자 기기 또는 휴대용 기기일 수 있다.
본 발명의 실시예들에 따른 다이어그램의 분석 방법, 장치 및/또는 시스템은, 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
또한, 본 발명의 실시예들에 따른 다이어그램의 분석 방법, 장치 및/또는 시스템은, 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드 디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다.
따라서, 본 발명의 실시예들에 따른 다이어그램의 분석 방법, 장치 및/또는 시스템은, 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 마더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.
여기서, 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및 (또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.
또한, 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.
그리고, 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.
본 발명의 실시예들은 다이어그램 분석을 수행하는 임의의 전자 장치 및 시스템에 유용하게 이용될 수 있다. 예를 들어, 본 발명의 실시예들은 컴퓨터, 노트북, 핸드폰, 스마트 폰, MP3 플레이어, PDA, PMP, 디지털 TV, 디지털 카메라, 포터블 게임 콘솔, 네비게이션 기기, 웨어러블 기기, IoT 기기, IoE 기기, e-북, VR 기기, AR 기기 등과 같은 전자 기기에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 시각 정보 및 텍스트 정보를 포함하는 다이어그램의 분석 방법으로서,
    상기 다이어그램에 포함되는 n(n은 2 이상의 자연수)개의 객체(object)들을 검출하는 단계;
    상기 n개의 객체들에 대한 복수의 특성(feature)들을 획득하는 단계;
    상기 n개의 객체들의 관계(relationship) 정보를 저장하고 업데이트하는 동적 인접 텐서 메모리(dynamic adjacency tensor memory) 및 상기 복수의 특성들을 이용하여, 상기 n개의 객체들의 연결 여부를 판단하는 단계; 및
    상기 판단 결과에 기초하여, 상기 n개의 객체들을 노드(node)들로 나타내고 상기 n개의 객체들의 연결 상태를 에지(edge)들로 나타내며 상기 다이어그램에 대응하는 관계 그래프를 획득하는 단계를 포함하고,
    상기 n개의 객체들 중 제1 객체와 제2 객체의 연결 여부를 판단하는데 있어서, 상기 제1 객체와 이미 연결되어 있는 객체들에 대한 정보 및 상기 제2 객체와 이미 연결되어 있는 객체들에 대한 정보만을 이용하되, 상기 제1 객체와 연결되어 있지 않은 객체 및 상기 제2 객체와 연결되어 있지 않은 객체에 대한 정보는 이용하지 않고,
    상기 다이어그램에 포함되는 n개의 객체들의 각각은 상기 시각 정보로서 이미지를 나타내는 제1 종류(class), 상기 텍스트 정보를 나타내는 제2 종류, 상기 n개의 객체들 중 2개를 연결하는 화살표의 머리(arrow head)를 나타내는 제3 종류 및 상기 n개의 객체들 중 2개를 연결하는 화살표의 화살표 꼬리(arrow tail)를 나타내는 제4 종류 중 하나로 구분되고,
    상기 다이어그램에 대응하여 획득되는 관계 그래프는 상기 n개의 객체들의 각각을 노드로 나타내고 상기 n개의 객체들 간의 연결 상태를 에지로 나타내되, 상기 제1 종류에 해당하는 객체; 상기 제2 종류에 해당하는 객체; 상기 제3 종류에 해당하는 객체 및 상기 제4 종류에 해당하는 객체가 구성하는 화살표를 나타내는 객체; 및 상기 연결 상태를 나타내는 에지를 각각 상이한 색상으로 표시하는 다이어그램의 분석 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 복수의 특성들을 획득하는 단계는,
    상기 n개의 객체들 각각을 상기 n개의 객체들에 대응시킨 n2개의 객체 쌍들을 n2개의 관계 후보(relationship candidate)들로 설정하는 단계;
    상기 n2개의 관계 후보에 대한 n2개의 로컬 특성(local feature)들을 획득하는 단계; 및
    상기 다이어그램의 레이아웃(layout) 및 상기 n개의 객체들 모두의 공간 정보에 기초하여 글로벌 특성(global feature)을 획득하는 단계를 포함하는 것을 특징으로 하는 다이어그램의 분석 방법.
  4. 제 3 항에 있어서,
    상기 n2개의 로컬 특성들 중 상기 제1 객체 및 상기 제2 객체를 포함하는 제1 객체 쌍에 대한 제1 로컬 특성은, 상기 제1 객체 및 상기 제2 객체의 위치, 중심점, 폭, 높이 및 신뢰 점수(confidence score)에 대한 정보를 포함하는 것을 특징으로 하는 다이어그램의 분석 방법.
  5. 제 1 항에 있어서,
    상기 n개의 객체들의 관계 정보는 3차원 매트릭스의 형태로 상기 동적 인접 텐서 메모리에 저장되고,
    상기 n개의 객체들의 연결 여부를 판단하는 단계는,
    상기 3차원 매트릭스로부터 상기 제1 객체에 대한 복수의 제1 원소(element)들 및 상기 제2 객체에 대한 복수의 제2 원소들을 추출하는 단계;
    상기 복수의 제1 원소들 및 상기 복수의 제2 원소들을 기초로 가중 평균 풀링(weighted mean pool) 연산을 수행하여, 이전 히든 상태(previous hidden state)를 획득하는 단계; 및
    상기 이전 히든 상태에 기초하여 상기 제1 객체와 상기 제2 객체의 연결이 유효한지 판단하는 제1 판단 동작을 수행하는 단계를 포함하는 것을 특징으로 하는 다이어그램의 분석 방법.
  6. 제 5 항에 있어서,
    상기 n개의 객체들의 연결 여부를 판단하는 단계는,
    상기 제1 판단 동작을 수행한 이후에, 상기 3차원 매트릭스 내의 상기 복수의 제1 원소들 및 상기 복수의 제2 원소들을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 다이어그램의 분석 방법.
  7. 시각 정보 및 텍스트 정보를 포함하는 다이어그램에 대한 입력 데이터를 수신하는 입력 버퍼;
    상기 다이어그램에 포함되는 n(n은 2 이상의 자연수)개의 객체(object)들을 검출하고, 상기 n개의 객체들에 대한 복수의 특성(feature)들을 획득하고, 상기 n개의 객체들의 관계(relationship) 정보를 저장하고 업데이트하는 동적 인접 텐서 메모리(dynamic adjacency tensor memory) 및 상기 복수의 특성들을 이용하여 상기 n개의 객체들의 연결 여부를 판단하며, 상기 판단 결과에 기초하여 상기 n개의 객체들을 노드(node)들로 나타내고 상기 n개의 객체들의 연결 상태를 에지(edge)들로 나타내며 상기 다이어그램에 대응하는 관계 그래프를 획득하는 적어도 하나의 프로세싱 소자; 및
    상기 관계 그래프에 대한 출력 데이터를 저장하는 출력 버퍼를 포함하고,
    상기 프로세싱 소자는, 상기 n개의 객체들 중 제1 객체와 제2 객체의 연결 여부를 판단하는데 있어서, 상기 제1 객체와 이미 연결되어 있는 객체들에 대한 정보 및 상기 제2 객체와 이미 연결되어 있는 객체들에 대한 정보만을 이용하되, 상기 제1 객체와 연결되어 있지 않은 객체 및 상기 제2 객체와 연결되어 있지 않은 객체에 대한 정보는 이용하지 않고,
    상기 다이어그램에 포함되는 n개의 객체들의 각각은 상기 시각 정보로서 이미지를 나타내는 제1 종류(class), 상기 텍스트 정보를 나타내는 제2 종류, 상기 n개의 객체들 중 2개를 연결하는 화살표의 머리(arrow head)를 나타내는 제3 종류 및 상기 n개의 객체들 중 2개를 연결하는 화살표의 화살표 꼬리(arrow tail)를 나타내는 제4 종류 중 하나로 구분되고,
    상기 다이어그램에 대응하여 획득되는 관계 그래프는 상기 n개의 객체들의 각각을 노드로 나타내고 상기 n개의 객체들 간의 연결 상태를 에지로 나타내되, 상기 제1 종류에 해당하는 객체; 상기 제2 종류에 해당하는 객체; 상기 제3 종류에 해당하는 객체 및 상기 제4 종류에 해당하는 객체가 구성하는 화살표를 나타내는 객체; 및 상기 연결 상태를 나타내는 에지를 각각 상이한 색상으로 표시하는 다이어그램 분석 장치.
  8. 제 1 항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능한 기록매체.
  9. 다이어그램 분석 장치에 의해 수행되며, 제 1 항에 기재된 방법을 수행하기 위해 기록매체에 저장된 컴퓨터 프로그램.
  10. 제 7 항의 다이어그램 분석 장치를 포함하는 컴퓨팅 시스템.
KR1020180146584A 2018-11-23 2018-11-23 시각 및 텍스트 정보를 포함하는 다이어그램의 분석 방법 및 장치 KR102215824B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180146584A KR102215824B1 (ko) 2018-11-23 2018-11-23 시각 및 텍스트 정보를 포함하는 다이어그램의 분석 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180146584A KR102215824B1 (ko) 2018-11-23 2018-11-23 시각 및 텍스트 정보를 포함하는 다이어그램의 분석 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200061154A KR20200061154A (ko) 2020-06-02
KR102215824B1 true KR102215824B1 (ko) 2021-02-16

Family

ID=71090750

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180146584A KR102215824B1 (ko) 2018-11-23 2018-11-23 시각 및 텍스트 정보를 포함하는 다이어그램의 분석 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102215824B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102243125B1 (ko) * 2020-07-31 2021-04-22 주식회사 웨이센 신경망 모델을 이용한 영상의 복합 특성 분류 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108388923A (zh) * 2018-03-08 2018-08-10 深圳市唯特视科技有限公司 一种基于对象检测器和递归神经网络的统一图解析网络

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3611061B2 (ja) * 1996-02-05 2005-01-19 本田技研工業株式会社 図形作成装置
US10643067B2 (en) * 2015-10-19 2020-05-05 Myscript System and method of handwriting recognition in diagrams

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108388923A (zh) * 2018-03-08 2018-08-10 深圳市唯特视科技有限公司 一种基于对象检测器和递归神经网络的统一图解析网络

Also Published As

Publication number Publication date
KR20200061154A (ko) 2020-06-02

Similar Documents

Publication Publication Date Title
US20210406609A1 (en) Meta-learning for multi-task learning for neural networks
WO2021190451A1 (zh) 训练图像处理模型的方法和装置
US20210397876A1 (en) Similarity propagation for one-shot and few-shot image segmentation
CN112183577A (zh) 一种半监督学习模型的训练方法、图像处理方法及设备
WO2021218517A1 (zh) 获取神经网络模型的方法、图像处理方法及装置
CN109559300A (zh) 图像处理方法、电子设备及计算机可读存储介质
KR102635777B1 (ko) 분자 결합 부위를 검출하기 위한 방법 및 장치, 전자 디바이스 및 저장 매체
CN112308115B (zh) 一种多标签图像深度学习分类方法及设备
WO2022007867A1 (zh) 神经网络的构建方法和装置
CN111368656A (zh) 一种视频内容描述方法和视频内容描述装置
CN112215332A (zh) 神经网络结构的搜索方法、图像处理方法和装置
CN111340190A (zh) 构建网络结构的方法与装置、及图像生成方法与装置
CN113626612A (zh) 一种基于知识图谱推理的预测方法和系统
US20230004816A1 (en) Method of optimizing neural network model and neural network model processing system performing the same
CN113642400A (zh) 基于2s-agcn的图卷积动作识别方法、装置及设备
KR102215824B1 (ko) 시각 및 텍스트 정보를 포함하는 다이어그램의 분석 방법 및 장치
Sikka Elements of Deep Learning for Computer Vision: Explore Deep Neural Network Architectures, PyTorch, Object Detection Algorithms, and Computer Vision Applications for Python Coders (English Edition)
CN116386148B (zh) 基于知识图谱引导的小样本动作识别方法及系统
US20220164639A1 (en) A system for mapping a neural network architecture onto a computing core and a method of mapping a neural network architecture onto a computing core
CN111931841A (zh) 基于深度学习的树状处理方法、终端、芯片及存储介质
CN112052865A (zh) 用于生成神经网络模型的方法和装置
WO2022127603A1 (zh) 一种模型处理方法及相关装置
CN115033700A (zh) 基于相互学习网络的跨领域情感分析方法、装置以及设备
CN110721471B (zh) 一种虚拟应用对象输出方法、装置以及计算机存储介质
Chander Deep learning network: deep neural networks

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
N231 Notification of change of applicant
GRNT Written decision to grant