KR102504007B1 - 분할 이미지를 통해 컨텍스트 벡터를 생성하는 컨텍스트 벡터 추출 모듈 및 이의 동작 방법 - Google Patents

분할 이미지를 통해 컨텍스트 벡터를 생성하는 컨텍스트 벡터 추출 모듈 및 이의 동작 방법 Download PDF

Info

Publication number
KR102504007B1
KR102504007B1 KR1020220113497A KR20220113497A KR102504007B1 KR 102504007 B1 KR102504007 B1 KR 102504007B1 KR 1020220113497 A KR1020220113497 A KR 1020220113497A KR 20220113497 A KR20220113497 A KR 20220113497A KR 102504007 B1 KR102504007 B1 KR 102504007B1
Authority
KR
South Korea
Prior art keywords
context
vectors
vector
image
context vector
Prior art date
Application number
KR1020220113497A
Other languages
English (en)
Inventor
박세직
이용균
Original Assignee
(주)내스타일
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)내스타일 filed Critical (주)내스타일
Priority to KR1020220113497A priority Critical patent/KR102504007B1/ko
Application granted granted Critical
Publication of KR102504007B1 publication Critical patent/KR102504007B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 개시의 기술적 사상에 따른 컨텍스트 벡터 추출 모듈은, 쿼리 이미지를 수신하고, 상기 쿼리 이미지를 제1 크기를 갖는 복수의 제1 파티션 이미지들로 분할하고, 상기 쿼리 이미지를 상기 제1 크기보다 작은 제2 크기를 갖는 복수의 제2 파티션 이미지들로 분할하는 분할 이미지 생성 모듈, 상기 제1 크기를 갖는 상기 복수의 제1 파티션 이미지들 및 상기 제2 크기를 갖는 상기 복수의 제2 파티션 이미지들을 상기 쿼리 이미지와 동일한 크기로 변환하는 이미지 보간 모듈, 상기 쿼리 이미지에 상응하는 전체 컨텍스트 벡터를 생성하고, 상기 복수의 제1 파티션 이미지들에 상응하는 제1 컨텍스트 벡터들을 생성하고, 상기 복수의 제2 파티션 이미지들에 상응하는 제2 컨텍스트 벡터들을 생성하는 이미지 인코딩 모듈, 및 상기 제1 컨텍스트 벡터들 및 상기 제2 컨텍스트 벡터들 중 임계 값보다 작은 유사도를 갖는 적어도 하나 이상의 벡터를 마스킹하는 컨텍스트 벡터 튜닝 모듈을 포함할 수 있다.

Description

분할 이미지를 통해 컨텍스트 벡터를 생성하는 컨텍스트 벡터 추출 모듈 및 이의 동작 방법{CONTEXT VECTOR EXTRACTING MODULE GENERATING CONTEXT VECTOR FROM PARTITIONED IMAGE AND OPERATING METHOD THEREOF}
본 발명은 뉴럴 네트워크에 관한 것으로, 더욱 상세하게는 분할 이미지를 통해 컨텍스트 벡터를 생성하는 컨텍스트 벡터 추출 모듈 및 이의 동작 방법에 관한 것이다.
최근 카메라를 포함하는 모바일 기기의 확장 및 카메라 기술의 발전에 따라 획득할 수 있는 영상의 화질이 크게 향상되고 있다. 한편, 기술의 발전에도 불구하고 어두운 저녁의 CCTV 영상이나, 화질이 떨어지는 이미지 내에 객체를 식별하지 못하는 경우도 흔하게 발생하고 있는 것이 현실이다.
이에 더하여, 카메라 기반의 자율주행 기술이 개발 및 발전됨에 따라 컴퓨터 비전(computer vision) 분야의 성장이 매우 빠르다. 컴퓨터 비전은 사람의 시각과 관련한 시스템 구조를 모방하여 컴퓨터가 카메라와 동영상에서 딥 러닝 모델을 사용하여 디지털 이미지 내에서 객체를 정확하게 식별하고 분류하는 학습을 수행하고, 식별된 객체에 대한 데이터 처리를 수행하는 것이다. 컴퓨터 비전의 발전과 더불어, 딥 러닝에 기반한 디지털 이미지 또는 영상의 화질을 개선하기 위한 여러 논의가 대두되고 있다.
본 발명의 목적은, 쿼리 이미지가 다양한 크기로 분할된 파티션 이미지의 컨텍스트 벡터를 생성하고, 유사도에 기반하여 마스킹 되는 벡터를 식별하는 컨텍스트 벡터 추출 모듈 및 이의 동작 방법을 제공하는 것이다.
본 개시의 기술적 사상에 따른 컨텍스트 벡터 추출 모듈은, 쿼리 이미지를 수신하고, 상기 쿼리 이미지를 제1 크기를 갖는 복수의 제1 파티션 이미지들로 분할하고, 상기 쿼리 이미지를 상기 제1 크기보다 작은 제2 크기를 갖는 복수의 제2 파티션 이미지들로 분할하는 분할 이미지 생성 모듈, 상기 제1 크기를 갖는 상기 복수의 제1 파티션 이미지들 및 상기 제2 크기를 갖는 상기 복수의 제2 파티션 이미지들을 상기 쿼리 이미지와 동일한 크기로 변환하는 이미지 보간 모듈, 상기 쿼리 이미지에 상응하는 전체 컨텍스트 벡터를 생성하고, 상기 복수의 제1 파티션 이미지들에 상응하는 제1 컨텍스트 벡터들을 생성하고, 상기 복수의 제2 파티션 이미지들에 상응하는 제2 컨텍스트 벡터들을 생성하는 이미지 인코딩 모듈을 포함할 수 있다.
일 실시예에서, 상기 컨텍스트 벡터 추출 모듈은 상기 제1 컨텍스트 벡터들 및 상기 제2 컨텍스트 벡터들 중 임계 값보다 작은 유사도를 갖는 적어도 하나 이상의 벡터를 마스킹하는 컨텍스트 벡터 튜닝 모듈을 더 포함할 수 있다.
일 실시예에서, 상기 컨텍스트 벡터 추출 모듈은, 상기 제1 컨텍스트 벡터들 각각에 대하여, 상기 전체 컨텍스트 벡터 및 이웃하는 벡터들과의 유사도를 계산하고, 상기 계산된 유사도가 상기 임계 값보다 작은 벡터를 마스킹할 수 있다.
일 실시예에서, 상기 컨텍스트 벡터 추출 모듈은, 상기 제2 컨텍스트 벡터들 각각에 대하여, 상기 전체 컨텍스트 벡터, 상기 제1 컨텍스트 벡터들 및 이웃하는 벡터들과의 유사도를 계산하고, 상기 계산된 유사도가 상기 임계 값보다 작은 벡터를 마스킹할 수 있다.
일 실시예에서, 상기 컨텍스트 벡터 추출 모듈은, 텍스트 입력을 수신하고, 상기 텍스트 입력을 컨텍스트 벡터로 변환하기 위한 텍스트 인코딩 모듈을 더 포함하고, 상기 마스킹된 적어도 하나 이상의 벡터에 상응하는 영역을 묘사하기 위한 텍스트 입력 또는 상기 마스킹된 적어도 하나 이상의 벡터에 상응하는 영역과 유사한 이미지 입력을 수신하고, 상기 이미지 입력 또는 상기 텍스트 입력에 상응하는 컨텍스트 벡터를 생성하고, 상기 컨텍스트 벡터 튜닝 모듈은, 상기 생성된 컨텍스트 벡터를 상기 마스킹된 적어도 하나 이상의 벡터와 치환할 수 있다.
본 개시의 기술적 사상에 따른 컨텍스트 벡터 추출 모듈의 동작 방법은, 쿼리 이미지를 수신하고, 상기 쿼리 이미지에 상응하는 전체 컨텍스트 벡터를 생성하는 동작과, 상기 쿼리 이미지를 제1 크기를 갖는 복수의 제1 파티션 이미지들로 분할하는 동작과, 상기 쿼리 이미지를 상기 제1 크기보다 작은 제2 크기를 갖는 복수의 제2 파티션 이미지들로 분할하는 동작과, 상기 제1 크기를 갖는 상기 복수의 제1 파티션 이미지들 및 상기 제2 크기를 갖는 상기 복수의 제2 파티션 이미지들을 상기 쿼리 이미지와 동일한 크기로 변환하는 동작과, 상기 복수의 제1 파티션 이미지들에 상응하는 제1 컨텍스트 벡터들 및 상기 복수의 제2 파티션 이미지들에 상응하는 제2 컨텍스트 벡터들을 생성하는 동작을 포함할 수 있다.
일 실시예에서, 상기 동작 방법은 상기 제1 컨텍스트 벡터들 및 상기 제2 컨텍스트 벡터들 중 임계 값보다 작은 유사도를 갖는 적어도 하나 이상의 벡터를 마스킹하는 동작을 더 포함할 수 있다.
일 실시예에서, 동작 방법은 상기 제1 컨텍스트 벡터들 각각에 대하여, 상기 전체 컨텍스트 벡터 및 이웃하는 벡터들과의 유사도를 계산하는 동작 및 상기 계산된 유사도가 상기 임계 값보다 작은 벡터를 마스킹하는 동작을 더 포함할 수 있다.
일 실시예에서, 상기 동작 방법은 상기 제2 컨텍스트 벡터들 각각에 대하여, 상기 전체 컨텍스트 벡터, 상기 제1 컨텍스트 벡터들 및 이웃하는 벡터들과의 유사도를 계산하는 동작 및 상기 계산된 유사도가 상기 임계 값보다 작은 벡터를 마스킹하는 동작을 더 포함할 수 있다.
본 발명의 기술적 사상에 따르면, 컨텍스트 벡터를 생성할 때 전체 쿼리 이미지에 대한 컨텍스트 벡터 뿐만 아니라 쿼리 이미지를 분할한 분할 이미지에 대한 파티션 컨텍스트 벡터를 함께 생성함으로써 컨텍스트 벡터를 활용하여 후처리를 수행할 때 활용성이 증대될 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치의 블록도이다.
도 2는 뉴럴 네트워크의 연산 처리를 설명하기 위한 도면이다.
도 3은 본 개시의 예시적인 실시예들에 따른 컨텍스트 벡터 추출 모듈의 블록도이다.
도 4는 본 개시의 예시적인 실시예들에 따른 도 3의 인코더의 세부 블록도이다.
도 5는 본 개시의 예시적인 실시예들에 따른 분할 이미지 생성 모듈의 출력들을 도시한다.
도 6은 본 개시의 예시적인 실시예들에 따른 컨텍스트 벡터를 생성하는 예를 도시한다.
도 7은 본 개시의 예시적인 실시예들에 따른 컨텍스트 벡터를 튜닝하는 예를 도시한다.
도 8은 본 개시의 예시적인 실시예들에 따른 뉴럴 네트워크 장치의 동작 방법을 나타내는 순서도이다.
도 9는 본 개시의 예시적인 실시예들에 따른 뉴럴 네트워크 장치의 동작 방법을 나타내는 순서도이다.
도 10은 본 개시의 예시적인 실시예들에 따른 마스킹된 컨텍스트 벡터를 사용자 입력의 컨텍스트 벡터로 치환하는 예를 도시한다.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
본 개시에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
어느 하나의 실시예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성 요소는, 다른 실시예에서 동일한 명칭을 사용하여 설명될 수 있다. 반대되는 기재가 없는 이상, 어느 하나의 실시예에 기재된 설명은 다른 실시예에도 적용될 수 있으며, 중복되는 범위 또는 당해 기술 분야에 속한 통상의 기술자가 자명하게 이해할 수 있는 범위 내에서 구체적인 설명은 생략될 수 있다.
이하, 본 발명의 바람직한 실시예 및 첨부한 도면을 참조하여 본 발명에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치(10)의 블록도이다.
도 1을 참조하면, 뉴럴 네트워크 장치(10)는 프로세서(100), RAM(200), 및 스토리지(300) 및 카메라(400)를 포함할 수 있다.
뉴럴 네트워크 장치(10)는 입력 데이터를 분석하여 유효한 정보를 추출하고, 추출된 정보를 기초로 출력 데이터를 생성할 수 있다. 상기 입력 데이터는, 다양한 객체들을 포함하는 쿼리 이미지일 수 있고, 상기 출력 데이터는 개선된 화질의 쿼리 이미지일 수 있다.
뉴럴 네트워크 장치(10)는 PC(personal computer), IoT(Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 휴대용 전자 기기는, 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블(wearable) 기기 등과 같은 다양한 장치에 구비될 수 있다.
다양한 실시예들에 따라, 프로세서(100)는 학습 이미지에 기반하여 뉴럴 네트워크를 학습시키고, 학습된 뉴럴 네트워크를 이용하여 쿼리 이미지에 대한 화질 개선을 수행하는 등, 뉴럴 네트워크 장치(10)를 제어할 수 있다.
다양한 실시예들에 따라, 프로세서(100)는 CPU(110), 및 NPU(120)를 포함할 수 있고, 도시되지 않았지만 GPU를 포함할 수 있다. CPU(110)는 뉴럴 네트워크 장치(10)의 전반적인 동작을 제어할 수 있다. CPU(110)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. CPU(110)는 스토리지(300)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예를 들어, CPU(110)는 스토리지(300)에 저장된 프로그램들 및/또는 모듈들을 실행함으로써, NPU(120)의 기능을 제어할 수 있다.
다양한 실시예들에 따라, NPU(120)는 뉴럴 네트워크를 생성하거나, 뉴럴 네트워크를 훈련(train) 또는 학습(learn)하거나, 훈련 데이터를 기초로 연산을 수행하고, 수행 결과를 기초로 정보 신호(information signal)를 생성하거나, 뉴럴 네트워크를 재훈련(retrain)할 수 있다.
다양한 실시예들에 따라, 뉴럴 네트워크의 모델들은 GoogleNet, AlexNet, VGG Network 등과 같은 CNN(Convolution Neural Network), R-CNN(Region with Convolution Neural Network), RPN(Region Proposal Network), RNN(Recurrent Neural Network), S-DNN(Stacking-based deep Neural Network), S-SDNN(State-Space Dynamic Neural Network), Deconvolution Network, DBN(Deep Belief Network), RBM(Restricted Boltzman Machine), Fully Convolutional Network, LSTM(Long Short-Term Memory) Network, Classification Network 등 다양한 종류의 모델들을 포함할 수 있으며, 전술한 모델들로 제한되는 것은 아니다.
다양한 실시예들에 따라, NPU(120)는 뉴럴 네트워크의 모델들에 대응되는 프로그램들을 저장하기 위한 별도의 메모리를 포함할 수도 있다. NPU(120)는 뉴럴 네트워크를 구동하기 위하여 요구되는 많은 연산을 처리하기 위한 별도의 IP(intellectual property) 블록들을 더 포함할 수도 있다. 예를 들어, 별도의 IP 블록들은 GPU(graphical processing unit) 또는 특정 연산을 빠르게 수행하기 위한 가속기(accelerator)를 더 포함할 수도 있다.
다양한 실시예들에 따라, RAM(200)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예를 들어, RAM(200)은 스토리지(300)에 저장된 프로그램들 및/또는 데이터를, CPU(110)의 제어 또는 부팅 코드에 따라 일시적으로 로드(load)할 수 있다. 예컨대, RAM(200)은 DRAM(Dynamic RAM), SRAM(Static RAM), SDRAM(Synchronous DRAM)을 포함할 수 있다.
스토리지(300)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 예를 들어, 스토리지(300)는 비휘발성 메모리에 상응할 수 있다. 예를 들어, 스토리지(300)는 ROM(Read Only Memory), 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등을 포함할 수 있다. 일 실시예에 따라, 스토리지(300)는 HDD(Hard Disk Drive), SSD(Solid State Drive) 등으로 구현될 수 있다.
도 2는 뉴럴 네트워크의 연산 처리를 설명하기 위한 도면이다.
도 2를 참고하면, 뉴럴 네트워크(NN)는 복수의 레이어들(L1 내지 Ln)을 포함할 수 있다. 복수의 레이어들(L1 내지 Ln) 각각은 선형 레이어 또는 비선형 레이어일 수 있으며, 실시예에 따라, 적어도 하나의 선형 레이어 및 적어도 하나의 비선형 레이어가 결합되어 하나의 레이어로 지칭될 수도 있다. 예를 들어, 선형 레이어는 컨볼루션 레이어(convolution), 풀리 커넥티드(fully connected) 레이어를 포함할 수 있으며, 비선형 레이어는 샘플링(sampling) 레이어, 풀링(pooling) 레이어, 활성(activation) 레이어를 포함할 수 있다.
일 실시예에 따라, 제1 레이어(L1)는 컨볼루션 레이어이고, 제2 레이어(L2)는 샘플링 레이어일 수 있다. 뉴럴 네트워크는 활성(activation) 레이어를 더 포함할 수 있으며, 다른 종류의 연산을 수행하는 적어도 하나의 레이어를 더 포함할 수 있다.
복수의 레이어들 각각은 입력되는 이미지 데이터 또는 이전 레이어에서 생성된 입력 피처맵(input feature map)을 수신하고, 입력 피처맵을 연산하여 출력 피처맵을 생성할 수 있다. 이때, 피처맵은 입력 데이터의 다양한 특징이 표현된 데이터를 의미할 수 있다.
피처맵들(FM1, FM2, FM3)은 예컨대 2차원 매트릭스 또는 3차원 매트릭스 형태를 가질 수 있다. 피처맵들(FM1, FM2, FM3)은 너비(Width)(또는 칼럼이라고 함), 높이(Height)(또는 로우라고 함) 및 깊이(Depth)를 가지며, 이는 좌표 상의 x축, y축 및 z축에 각각 대응할 수 있다. 이때, 깊이(Depth)는 채널(Channel)의 개수로 지칭될 수 있다.
제1 레이어(L1)는 제1 피처맵(FM1)을 웨이트맵(WM)과 컨볼루션하여 제2 피처맵(FM2)을 생성할 수 있다. 웨이트맵(WM)은 제1 피처맵(FM1)을 필터링할 수 있으며, 필터 또는 커널로 지칭될 수 있다. 예컨대, 웨이트맵(WM)의 깊이, 즉 채널 개수는 제1 피처맵(FM1)의 깊이, 즉 채널 개수와 동일하며, 웨이트맵(WM)과 제1 피처맵(FM1)의 동일한 채널끼리 컨볼루션될 수 있다. 웨이트맵(WM)은 제1 피처맵(FM1)을 슬라이딩 윈도우로 하여 횡단하는 방식으로 쉬프트된다. 쉬프트되는 양은 "스트라이드(stride) 길이" 또는 "스트라이드"로 지칭될 수 있다. 각 쉬프트 동안, 웨이트맵(WM)에 포함되는 웨이트들 각각이 제1 피처맵(FM1)과 중첩된 영역에서의 모든 피처 값과 곱해지고 더해질 수 있다. 제1 피처맵(FM1)과 웨이트맵(WM)이 컨볼루션 됨에 따라, 제2 피처맵(FM2)의 하나의 채널이 생성될 수 있다.
도 2에는 하나의 웨이트맵(WM)이 표시되었으나, 실질적으로는 복수개의 웨이트맵이 제1 피처맵(FM1)과 컨볼루션 되어, 제2 피처맵(FM2)의 복수개의 채널이 생성될 수 있다. 다시 말해, 제2 피처맵(FM2)의 채널의 수는 웨이트맵의 개수에 대응할 수 있다.
제2 레이어(L2)는 제2 피처맵(FM2)의 공간적 크기(spatial size)를 변경함으로써, 제3 피처맵(FM3)을 생성할 수 있다. 일 예로, 제2 레이어(L2)는 샘플링 레이어일 수 있다. 제2 레이어(L2)는 업-샘플링 또는 다운-샘플링을 수행할 수 있으며, 제2 레이어(L2)는 제2 피처맵(FM2)에 포함된 데이터들 중 일부를 선별할 수 있다. 예컨대, 2 차원의 윈도우(WD)가 윈도우(WD)의 사이즈(예컨대, 4 * 4 행렬) 단위로 제2 피처맵(FM2) 상에서 쉬프트되고, 윈도우(WD)와 중첩되는 영역에서 특정 위치(예컨대, 1행 1열)의 값을 선택할 수 있다. 제2 레이어(L2)는 선택된 데이터를 제3 피처맵(FM3)의 데이터로서 출력할 수 있다. 다른 예로, 제2 레이어(L2)는 풀링 레이어일 수 있다. 이 경우, 제2 레이어(L2)는 제2 피처맵(FM2)에서 윈도우(WD)와 중첩되는 영역의 피처 값들의 최대 값(max pooling) 또는 피처 값들의 평균 값(average pooling)을 선택할 수 있다. 제2 레이어(L2)는 선택된 데이터를 제3 피처맵(FM3)의 데이터로서 출력할 수 있다.
이에 따라, 제2 피처맵(FM2)으로부터 공간적 사이즈가 변경된 제3 피처맵(FM3)이 생성될 수 있다. 제3 피처맵(FM3)의 채널과 제2 피처맵(FM2)의 채널 개수는 동일할 수 있다. 한편, 본 개시의 예시적인 실시예에 따르면, 풀링 레이어보다 샘플링 레이어의 연산 속도가 빠를 수 있고, 샘플링 레이어는 출력 이미지의 퀄리티(예컨대, PSNR(Peak Signal to Noise Ratio) 측면에서)를 개선할 수 있다. 예컨대, 풀링 레이어에 의한 연산은, 최대 값 또는 평균 값을 산출하여야 하므로 샘플링 레이어에 의한 연산보다 연산 시간이 더 오래 걸릴 수 있다.
실시예에 따라, 제2 레이어(L2)는 샘플링 레이어 또는 풀링 레이어에 한정되지 않는다. 즉, 제2 레이어(L2)는 제1 레이어(L1)와 유사한 컨볼루션 레이어가 될 수 있다. 제2 레이어(L2)는 제2 피처맵(FM2)을 웨이트맵과 컨볼루션하여 제3 피처맵(FM3)을 생성할 수 있다. 이 경우, 제2 레이어(L2)에서 컨볼루션 연산을 수행한 웨이트맵은 제1 레이어(L1)에서 컨볼루션 연산을 수행한 웨이트맵(WM)과 다를 수 있다.
제1 레이어(L1) 및 제2 레이어(L2)를 포함한 복수의 레이어들을 거쳐 제N 레이어에서 제N 피처맵을 생성할 수 있다. 제N 피처맵은 출력 데이터가 출력되는 뉴럴 네트워크(NN)의 백 엔드(back end)에 위치한 복원 레이어(reconstruction layer)에 입력될 수 있다. 복원 레이어는 제N 피처맵을 기반으로 출력 이미지를 생성할 수 있다. 또한, 복원 레이어는 제N 피처맵 뿐만 아니라, 제1 피처맵(FM1) 및 제2 피처맵(FM2) 등 복수의 피처맵들을 수신하고, 복수의 피처맵들에 기초하여 출력 이미지를 생성할 수 있다.
제3 레이어(L3)는 제3 피처맵(FM3)의 피처들을 조합하여 피처 벡터(FV) 또는 컨텍스트 벡터를 생성할 수 있다. 예컨대, 입력 데이터는 이미지 또는 동영상 프레임의 데이터일 수 있다. 이 경우, 제3 레이어(L3)는 제2 레이어(L2)로부터 제공되는 제3 피처맵(FM3)을 기초로 피처 벡터(FV) 또는 컨텍스트 벡터를 추출할 수 있다.
도 3은 본 개시의 예시적인 실시예들에 따른 컨텍스트 벡터 추출 모듈(300)의 블록도이다.
도 3을 참조하면, 컨텍스트 벡터 추출 모듈(300)은 인코더(310) 및 디코더(320)를 포함할 수 있다. 컨텍스트 벡터 추출 모듈(300)은 도 1의 CPU(110) 또는 NPU(120)의 적어도 일부 구성일 수 있다.
일 실시예에 따라 컨텍스트 벡터 추출 모듈(300)은 이하에서 설명되는 인코더(310) 및 디코더(320)와 별도로 존재하는 하나 이상의 레이어에 의해 제공되거나 생성될 수도 있다.
컨텍스트 벡터 추출 모듈(300)은 뉴럴 네트워크(NN) 중 피드포워드 신경망(feedforward neural network), 순환 신경망(recurrent neural network)에 기반할 수 있다. 예를 들어, 컨텍스트 벡터 추출 모듈(300)은 시퀀스-투-시퀀스(sequence-to-sequence) 모델을 포함할 수 있다.
인코더(310)는 사용자 입력에 상응하는 소스 시퀀스의 정보를 인코딩할 수 있다. 인코더(310)는 순환 신경망(recurrent neural network)에 기반할 수 있다. 예를 들어, 인코더(310)는 LSTM(long short-term memory) 또는 GRU(gated recurrent unit)을 포함할 수 있다.
인코더(310)는 소스 시퀀스들을 순차적으로 입력 받고, 모든 소스 시퀀스들을 압축하여 컨텍스트 벡터를 생성할 수 있다. 시퀀스-투-시퀀스의 특성상, 입력 데이터의 길이가 길어질수록(쿼리 이미지의 크기가 클수록) 초반에 위치한 벡터들의 비중이 약해질 수 있다. 이를 해결하기 위하여 인코더(310)는 어텐션(attention) 메커니즘 기반의 시퀀스-투-시퀀스 모델에 기반할 수 있다. 상기 어텐션 메커니즘은 은닉 상태에 가중치를 곱하여 가장 중요한 벡터에 집중하기 위한 메커니즘이다. 인코더(310)는 입력 데이터에 상응하는 쿼리 이미지를 RNN 셀에 입력할 수 있다. 인코더(310)의 RNN 셀 각각은 이전의 RNN 셀의 출력으로서 은닉 상태 및 각 시점의 입력 데이터를 입력 받아 현재의 은닉 상태를 출력할 수 있다. 인코더(810)는 마지막 RNN 셀의 은닉 상태를 컨텍스트 벡터로서 출력할 수 있다. 디코더(320)는 인코더(310)로부터 컨텍스트 벡터를 수신하여 타겟 시퀀스를 출력할 수 있다. 예를 들어, 타겟 시퀀스는 화질이 개선된 쿼리 이미지일 수 있다.
도 4는 본 개시의 예시적인 실시예들에 따른 도 3의 인코더(310)의 세부 블록도이다.
도 4를 참조하면, 인코더(310)는 분할 이미지 생성 모듈(410), 이미지 보간 모듈(420),이미지 인코딩 모듈(430), 텍스트 인코딩 모듈(440), 및 컨텍스트 벡터 튜닝 모듈(450)을 포함할 수 있다.
분할 이미지 생성 모듈(410)은 입력된 쿼리 이미지에 기반하여 복수의 파티션 이미지들을 생성할 수 있다. 분할 이미지 생성 모듈(410)은 상기 쿼리 이미지를 미리 결정된 개수의 파티션 이미지들로 분할할 수도 있고, 바운딩 박스에 기반하여 파티션 이미지들을 분할할 수도 있다. 즉, 분할 이미지 생성 모듈(410)은 쿼리 이미지를 다양한 크기의 이미지 패치들로 분할할 수 있다.
일 실시예에 따라, 도 5를 함께 참조하면, 분할 이미지 생성 모듈(410)은 쿼리 이미지(510)를 수신하고, 쿼리 이미지(510)를 미리 결정된 개수의 파티션 이미지들로 분할할 수 있다. 예를 들어, 분할 이미지 생성 모듈(410)은 쿼리 이미지(510)를 9개의 제1 파티션 이미지들로 분할할 수 있다. 이를 위하여, 분할 이미지 생성 모듈(410)은 쿼리 이미지(510)의 X축, Y축을 동일한 간격으로 3등분하여 제1 파티션 이미지들을 생성할 수 있다. 분할 이미지 생성 모듈(410)이 쿼리 이미지를 분할하여 미리 결정된 개수만큼 파티션 이미지들을 생성하는 경우, 상기 생성된 파티션 이미지들 각각은 동일한 크기일 수 있다.
일 실시예에 따라, 도 5를 함께 참조하면, 분할 이미지 생성 모듈(410)은 복수의 바운딩 박스들을 획득할 수 있다. 복수의 바운딩 박스들 각각은, 객체 인식 결과, 식별된 객체들 각각을 최소한 영역으로 포함하는 사각형(복수의 점선 사각형)을 지칭할 수 있다. 분할 이미지 생성 모듈(410)은 쿼리 이미지(510) 내에 복수의 바운딩 박스들 중 쿼리 이미지(510)를 분할함으로써 절단되는 바운딩 박스의 개수를 최소화하는 방향으로 제1 파티션 이미지들을 생성할 수 있다. 도 5를 함께 참조하면, 분할 이미지 생성 모듈(410)은 쿼리 이미지(510)를 4개의 제1 파티션 이미지들로 분할할 수 있다. 쿼리 이미지(510)를 동일한 크기의 제1 파티션 이미지들로 분할하는 경우, 오른쪽 하단(3,3)의 제1 파티션 이미지의 사람 객체는 중앙 하단(3,2)의 제1 파티션 이미지와 오른쪽 하단(3,3)의 제1 파티션 이미지에 나누어져 포함될 수 있다. 바운딩 박스에 기반하여 제1 파티션 이미지들을 생성하는 경우, 분할 이미지 생성 모듈(410)은 X축을 기준으로 바운딩 박스들이 집중되어 있는 왼쪽 영역((1,1), (2,1), (3,1))과 오른쪽 영역((1,2), (2,2), (3,2))으로 분할할 수 있다. 또한 분할 이미지 생성 모듈(410)은 Y축을 기준으로 바운딩 박스들이 집중되어 있는 상단 영역((1,1), (1,2))과 하단 영역((2,1), (2,2))으로 분할할 수 있다.
이미지 보간 모듈(420)은 파티션 이미지들에 대한 보간을 수행할 수 있다. 상기 보간은, 영상 신호를 변환할 때(예를 들어, 확대) 기존의 픽셀 정보를 이용하여 픽셀 홀의 값을 연산하는 것을 의미한다. 예를 들어, 이미지 보간 모듈(420)은 가장 가까운 픽셀 값을 이용하여 픽셀 홀을 계산하는 최근접 보간법(Nearest Neighbor Interpolation), 인접한 4개 픽셀 값과 거리비를 사용하는 양선형 보간법(First Order Interpolation), 인접한 16개의 픽셀 값과 거리에 따른 가중치의 곱을 사용하는 바이큐빅 보간법(Bicubic Interpolation) 등을 이용할 수 있다. 예를 들어, 도 5를 함께 참조하면, 9개로 분할된 제1 파티션 이미지들 각각의 크기는 쿼리 이미지(510)의 크기의 1/9일 수 있다. 이미지 보간 모듈(420)은 쿼리 이미지(510)와 동일한 크기로 복수의 제1 파티션 이미지들 각각을 확대할 수 있다.
이미지 인코딩 모듈(430)은 입력 시퀀스에 상응하는 입력 이미지를 입력 받아 컨텍스트 벡터를 생성할 수 있다. 예를 들어, 이미지 인코딩 모듈(430)은 ResNet의 컨볼루션 신경망 또는 시퀀스-투-시퀀스 모델의 트랜스포머(예를 들어, 비전 트랜스포머(ViT))에 기반할 수 있다. 상기 컨텍스트 벡터는, 입력 이미지의 상황 정보와 입력 이미지에 포함되는 객체 정보를 반영하여 생성되는 벡터일 수 있다. 텍스트 인코딩 모듈(440)은 입력 시퀀스에 상응하는 입력 텍스트를 입력 받아, 컨텍스트 벡터를 생성할 수 있다. 예를 들어, 텍스트 인코딩 모듈(440)은 트랜스포머에 기반할 수 있다.
컨텍스트 벡터 튜닝 모듈(450)은 여러 컨텍스트 벡터들 간에 유사도를 판단하여 임계 값 이하의 유사도를 갖는 임의의 컨텍스트 벡터를 마스킹할 수 있다. 상기 유사도는 코사인 유사도에 기반할 수 있다. 예를 들어, 쿼리 이미지(510)의 화질 개선에 불필요한 컨텍스트 벡터를 마스킹함으로써 화질 개선에 필요한 컨텍스트 벡터의 비중을 높게 설정할 수 있다. 또한, 일 실시예에서, 컨텍스트 벡터 튜닝 모듈(450)은 여러 컨텍스트 벡터들 간의 유사도를 기초로 컨텍스트 벡터 추출 모듈(300)로 하여금 컨텍스트 벡터들 간의 의미가 일관성이 있도록(예를 들면, 여러 컨텍스트 벡터들 간의 유사도가 높도록) 학습시킬 수 있다.
일 실시예에 따라, 컨텍스트 벡터 튜닝 모듈(450)은 파티션 이미지들에 기반하여 생성된 컨텍스트 벡터의 마스킹 여부를 판단할 수 있다. 도 5를 함께 참조하면, 컨텍스트 벡터 튜닝 모듈(450)은 9개로 분할된 제1 파티션 이미지들이 변환된 컨텍스트 벡터들에 대하여 마스킹 여부를 판단할 수 있다. 예를 들어, 컨텍스트 벡터 튜닝 모듈(450)은 왼쪽 상단 (1,1)의 컨텍스트 벡터에 대하여 마스킹 여부를 판단할 수 있다. 이 때, 컨텍스트 벡터 튜닝 모듈(450)은 상위 벡터인 쿼리 이미지(510)에 상응하는 전체 컨텍스트 벡터 및 인접한 컨텍스트 벡터들(예를 들어, (1,2)의 제1 파티션 이미지에 상응하는 컨텍스트 벡터, (2,1)의 제1 파티션 이미지에 상응하는 컨텍스트 벡터 등등)과의 유사도를 비교하여 마스킹 여부를 결정할 수 있다. 컨텍스트 벡터 튜닝 모듈(450)에 관한 구체적인 설명은 후술하기로 한다.
도 6은 본 개시의 예시적인 실시예들에 따른 컨텍스트 벡터를 생성하는 예를 도시한다.
도 6을 참조하면, 이미지 인코딩 모듈(430)은 복수의 이미지 인코더들을 포함할 수 있다. 이미지 인코더들의 개수는 쿼리 이미지(510)를 다양한 크기의 파티션 이미지들로 분할하는 것에 기반할 수 있다. 예를 들어, 도 6을 함께 참조하면, 분할 이미지 생성 모듈(410)은 쿼리 이미지(510)를 수신하고, 9개 크기의 제1 파티션 이미지들로 분할할 수 있다. 분할 이미지 생성 모듈(410)은 쿼리 이미지(510)를 9개의 동일한 크기의 제1 파티션 이미지들로 분할할 수 있고, 36개의 동일한 크기의 제2 파티션 이미지들로 분할할 수 있다. 이 때, 이미지 인코딩 모듈(430)은 제1 이미지 인코더(431) 내지 제3 이미지 인코더(433)를 포함할 수 있다. 다만, 본 개시는 이에 제한되지 않으며, 쿼리 이미지(510)를 분할하는 다양한 크기에 따라 N개(여기서, N은 4 이상의 자연수)의 이미지 인코더들을 포함할 수 있다.
제1 이미지 인코더(431)는 쿼리 이미지(510) 전체를 수신하여 전체 컨텍스트 벡터(whole image context vector)를 추출할 수 있다. 제2 이미지 인코더(432)는 쿼리 이미지(510)가 분할된 9개의 제1 파티션 이미지들 각각에 대하여 제1 컨텍스트 벡터(middle image context vector)들을 추출할 수 있다. 이 때, 분할된 9개의 파티션 이미지들의 크기는 쿼리 이미지(510)의 1/9이지만, 이미지 보간 모듈(420)에 의해 쿼리 이미지(510)와 동일한 크기로 확대된 이미지가 제2 이미지 인코더(432)로 입력될 수 있다. 따라서, 분할된 9개의 파티션 이미지들 각각에 대하여 추출된 복수의 제1 컨텍스트 벡터들 각각의 크기는 제1 이미지 인코더(431)의 출력인 전체 컨텍스트 벡터와 동일할 수 있다.
제3 이미지 인코더(433)는 쿼리 이미지(510)가 분할된 36개의 제2 파티션 이미지들 각각에 대하여 제2 컨텍스트 벡터들(small image context vector)을 추출할 수 있다. 이 때, 분할된 36개의 파티션 이미지들의 크기는 쿼리 이미지(510)의 1/36이지만, 이미지 보간 모듈(420)에 의해 쿼리 이미지(510)와 동일한 크기로 확대된 이미지가 제3 이미지 인코더(433)로 입력될 수 있다. 따라서, 분할된 36개의 파티션 이미지들 각각에 대하여 추출된 복수의 제2 컨텍스트 벡터들의 크기는 제1 이미지 인코더(431)의 출력인 전체 컨텍스트 벡터의 크기와 동일할 수 있다.
전술한 실시예에서, 분할 이미지 생성 모듈(410)은 쿼리 이미지(510)를 동일한 크기의 9개, 36개의 파티션 이미지들로 분할하는 것으로 도시되었으나, 이에 제한되는 것은 아니다. 다양한 실시예들에 따라, 분할 이미지 생성 모듈(410)은 쿼리 이미지(510)를 동일한 크기의 N2개(여기서, N은 자연수)의 파티션 이미지들로 분할할 수 있다.
또한 전술한 실시예에서, 분할 이미지 생성 모듈(410)은 쿼리 이미지(510)를 9개, 36개의 두 종류의 파티션 이미지로 분할하는 것으로 도시되었으나, 이에 제한되는 것은 아니다. 다양한 실시예들에 따라, 분할 이미지 생성 모듈(410)은 한 종류 이상의 파티션 이미지로 분할할 수 있다.
도 7은 본 개시의 예시적인 실시예들에 따른 컨텍스트 벡터를 튜닝하는 예를 도시한다.
도 7을 참조하면, 컨텍스트 벡터 튜닝 모듈(450)은 복수의 컨텍스트 벡터들을 수신할 수 있다. 예를 들어, 컨텍스트 벡터 튜닝 모듈(450)은 제1 이미지 인코더(431)로부터 쿼리 이미지(510)에 상응하는 전체 컨텍스트 벡터를 수신할 수 있다. 컨텍스트 벡터 튜닝 모듈(450)은 제2 이미지 인코더(432)로부터 복수의 제1 파티션 이미지들에 상응하는 복수의 제1 컨텍스트 벡터들을 수신할 수 있다. 컨텍스트 벡터 튜닝 모듈(450)은 제3 이미지 인코더(433)로부터 복수의 제2 파티션 이미지들에 상응하는 복수의 제2 컨텍스트 벡터들을 수신할 수 있다.
컨텍스트 벡터 튜닝 모듈(450)은 복수의 제1 컨텍스트 벡터들 및 복수의 제2 컨텍스트 벡터들 각각에 대하여 마스킹 여부를 결정할 수 있다. 구체적으로, 컨텍스트 벡터 튜닝 모듈(450)은 상위 벡터 및 이웃 벡터와의 유사도 계산에 기반하여 마스킹 여부를 결정할 수 있다. 이 때, 상위 벡터는 더욱 큰 크기의 파티션 이미지의 컨텍스트 벡터를 지칭할 수 있다. 예를 들어, 9개로 분할된 제1 파티션 이미지들에 상응하는 제1 컨텍스트 벡터들의 상위 벡터는, 쿼리 이미지(510)에 상응하는 전체 컨텍스트 벡터일 수 있다. 36개로 분할된 제2 파티션 이미지들에 상응하는 제2 컨텍스트 벡터들의 상위 벡터는, 쿼리 이미지(510)에 상응하는 전체 컨텍스트 벡터 및 제2 파티션 이미지들보다 크기가 큰 제1 파티션 이미지들에 상응하는 제1 컨텍스트 벡터들일 수 있다.
일 예로, 컨텍스트 벡터 튜닝 모듈(450)은 상위 벡터에 상응하는 전체 컨텍스트 벡터와의 유사도에 기반하여 복수의 제1 컨텍스트 벡터들 각각에 대한 마스킹 여부를 결정할 수 있다. 예를 들어, 전체 컨텍스트 벡터는 "해변", "사람들", "맑음"과 같은 컨텍스트 정보를 포함할 수 있다. 제1 컨텍스트 벡터(710)의 컨텍스트 정보는 "번개", "흐림"인 경우, 상기 전체 컨텍스트 벡터가 포함하는 컨텍스트 정보와 제1 컨텍스트 벡터(710)의 컨텍스트 정보의 유사도는 낮게 측정될 수 있다.
다른 예로, 컨텍스트 벡터 튜닝 모듈(450)은 상위 벡터에 상응하는 전체 컨텍스트 벡터 및 복수의 제1 컨텍스트 벡터들과의 유사도에 기반하여 복수의 제2 컨텍스트 벡터들 각각에 대한 마스킹 여부를 결정할 수 있다. 예를 들어, 제2 컨텍스트 벡터들(720) 각각은 이웃하는 제2 컨텍스트 벡터들과의 유사도가 임계 값보다 낮거나, 상위 벡터인 제1 컨텍스트 벡터들과의 유사도 및 전체 컨텍스트 벡터와의 유사도가 임계 값보다 낮을 수 있다.
다양한 실시예들에 따라, 컨텍스트 벡터 튜닝 모듈(450)은 상위 벡터 및 이웃 벡터와의 유사도에 기반하여 마스킹 여부를 결정할 때, 각각 가중치를 다르게 설정할 수 있다. 쿼리 이미지(510)의 전체적인 문맥과 일치하는 영역에 대한 화질 개선이 중요한 경우, 상위 벡터와의 유사도에 더 높은 가중치를 설정할 수 있다. 쿼리 이미지(510)의 전체적인 문맥보다는 이웃하는 영역과 문맥이 일치하는 영역에 대한 화질 개선이 중요한 경우, 이웃 벡터와의 유사도에 더 높은 가중치를 설정할 수 있다.
도 8은 본 개시의 예시적인 실시예들에 따른 뉴럴 네트워크 장치(10)의 동작 방법을 나타내는 순서도이다.
도 8을 참조하면, 동작 S810에서, 뉴럴 네트워크 장치(10)는 쿼리 이미지를 복수의 제1 이미지들, 복수의 제2 이미지들로 분할할 수 있다. 예를 들어, 뉴럴 네트워크 장치(10)는 쿼리 이미지를 수신하고, 상기 쿼리 이미지를 분할 이미지 생성 모듈(410)에게 전달할 수 있다. 상기 복수의 제1 이미지들은 동일한 크기에 따라 9개로 분할된 제1 파티션 이미지들일 수 있다. 상기 복수의 제2 이미지들은 동일한 크기에 따라 36개로 분할된 제2 파티션 이미지들일 수 있다.
동작 S820에서, 뉴럴 네트워크 장치(10)는 쿼리 이미지에 대한 전체 컨텍스트 벡터를 추출할 수 있다. 뉴럴 네트워크 장치(10)는 쿼리 이미지를 이미지 인코딩 모듈(430)의 입력으로 전달할 수 있고, 출력에 상응하는 전체 컨텍스트 벡터를 획득할 수 있다. 상기 전체 컨텍스트 벡터는, 쿼리 이미지에 포함되는 객체들의 전체적인 문맥에 관한 정보를 포함할 수 있다.
동작 S830에서, 뉴럴 네트워크 장치(10)는 복수의 제1 이미지들에 대한 제1 컨텍스트 벡터들을 추출할 수 있다. 뉴럴 네트워크 장치(10)는 쿼리 이미지를 동일한 크기의 제1 파티션 이미지들로 분할할 수 있다. 뉴럴 네트워크 장치(10)는 이미지 보간 모듈(420)을 통해 상기 제1 파티션 이미지들 각각을 쿼리 이미지의 크기와 동일하게 확대할 수 있다. 뉴럴 네트워크 장치(10)는 상기 확대된 제1 파티션 이미지들을 이미지 인코딩 모듈(430)의 입력으로 각각 전달할 수 있고, 출력에 상응하는 제1 컨텍스트 벡터들을 획득할 수 있다. 획득된 제1 컨텍스트 벡터들 각각의 크기는 전체 컨텍스트 벡터와 동일할 수 있다. 상기 제1 컨텍스트 벡터들 각각은, 쿼리 이미지 내에서 동일한 크기로 분할된 제1 파티션 이미지들에 상응하는 영역 내에 포함되는 객체들의 전체적인 문맥에 관한 정보를 포함할 수 있다.
동작 S840에서, 뉴럴 네트워크 장치(10)는 복수의 제2 이미지들에 대한 제2 컨텍스트 벡터들을 추출할 수 있다. 뉴럴 네트워크 장치(10)는 쿼리 이미지를 동일한 크기의 제2 파티션 이미지들로 분할할 수 있다. 제2 파티션 이미지들의 크기는, 제1 파티션 이미지들의 크기보다 작을 수 있다. 뉴럴 네트워크 장치(10)는 이미지 보간 모듈(420)을 통해 상기 제2 파티션 이미지들 각각을 쿼리 이미지의 크기와 동일하게 확대할 수 있다. 뉴럴 네트워크 장치(10)는 상기 확대된 제2 파티션 이미지들을 이미지 인코딩 모듈(430)의 입력으로 각각 전달할 수 있고, 출력에 상응하는 제2 컨텍스트 벡터들을 획득할 수 있다. 획득된 제2 컨텍스트 벡터들 각각의 크기는 전체 컨텍스트 벡터와 동일할 수 있다. 상기 제2 컨텍스트 벡터들 각각은, 쿼리 이미지 내에서 동일한 크기로 분할된 제2 파티션 이미지들에 상응하는 영역 내에 포함되는 객체들의 전체적인 문맥에 관한 정보를 포함할 수 있다.
전술한 실시예에서, 뉴럴 네트워크 장치(10)는 전체 컨텍스트 벡터, 제1 컨텍스트 벡터들, 및 제2 컨텍스트 벡터들을 순차적으로 획득하는 것으로 도시되었으나, 이에 제한되는 것은 아니다. 다양한 실시예들에 따라, 이미지 인코딩 모듈(430)은 복수의 이미지 인코더들을 포함할 수 있고, 동작 S820 내지 동작 S840은 병렬적으로 수행될 수 있다. 예를 들어, 이미지 인코딩 모듈(430)의 제1 이미지 인코더(431)는 쿼리 이미지에 대한 컨텍스트 벡터의 추출을, 제2 이미지 인코더(432)는 제1 파티션 이미지들에 대한 제1 컨텍스트 벡터들의 추출을, 제3 이미지 인코더(433)는 제2 파티션 이미지들에 대한 제2 컨텍스트 벡터들의 추출을 병렬적으로 수행할 수 있다.
동작 S850에서, 뉴럴 네트워크 장치(10)는 제1 컨텍스트 벡터들 각각에 대한 유사도 비교를 수행하고, 제1 컨텍스트 벡터들 중 임계 값 이하의 유사도를 갖는 벡터를 마스킹할 수 있다. 컨텍스트 벡터 튜닝 모듈(450)은 제1 컨텍스트 벡터들 각각에 대한 유사도 추정을 순차적으로 수행할 수 있다. 컨텍스트 벡터 튜닝 모듈(450)은 제1 컨텍스트 벡터들 중 하나의 벡터를 선택하고, 상기 선택된 벡터와 이웃하는 제1 컨텍스트 벡터들 및 상위 벡터의 전체 컨텍스트 벡터에 기반하여 유사도를 추정할 수 있다. 컨텍스트 벡터 튜닝 모듈(450)은 임계 값 이하의 유사도를 갖는 벡터에 대한 마스킹을 수행할 수 있다.
동작 S860에서, 뉴럴 네트워크 장치(10)는 제2 컨텍스트 벡터들 각각에 대한 유사도 비교를 수행하고, 제2 컨텍스트 벡터들 중 임계 값 이하의 유사도를 갖는 벡터를 마스킹할 수 있다. 컨텍스트 벡터 튜닝 모듈(450)은 제2 컨텍스트 벡터들 중 하나의 벡터를 선택하고, 상기 선택된 벡터와 이웃하는 제2 컨텍스트 벡터들 및 상위 벡터에 상응하는 전체 컨텍스트 벡터 및 제1 컨텍스트 벡터에 기반하여 유사도를 추정할 수 있다. 컨텍스트 벡터 튜닝 모듈(450)은 임계 값 이하의 유사도를 갖는 벡터에 대한 마스킹을 수행할 수 있다.
도 9는 본 개시의 예시적인 실시예들에 따른 뉴럴 네트워크 장치(10)의 동작 방법을 나타내는 순서도이다.
도 9를 참조하면, 동작 S910에서 뉴럴 네트워크 장치(10)는 마스킹 영역에 대한 추가 이미지 또는 추가 텍스트를 포함하는 사용자 입력을 수신할 수 있다. 뉴럴 네트워크 장치(10)는 제1 컨텍스트 벡터들 중 마스킹 처리된 적어도 하나 이상의 벡터를 식별하거나, 제2 컨텍스트 벡터들 중 마스킹 처리된 적어도 하나의 벡터를 식별할 수 있다. 뉴럴 네트워크 장치(10)는 상기 마스킹 처리된 벡터에 상응하는 영역에 대한 추가 정보를 사용자에게 요청할 수 있다. 예를 들어, 뉴럴 네트워크 장치(10)는 상기 마스킹 처리된 벡터에 상응하는 영역을 지시하기 위한 인디케이터와 상기 영역에 대한 추가적인 텍스트 또는 이미지를 요청하는 시각적 알림을 디스플레이(미도시)를 통해 표시할 수 있다. 예를 들어, 뉴럴 네트워크 장치(10)는 마스킹된 제1 컨텍스트 벡터(710)에 상응하는 영역을 묘사하는 추가 텍스트 또는 유사한 추가 이미지를 수신할 수 있다.
동작 S920에서, 뉴럴 네트워크 장치(10)는 사용자 입력에 상응하는 컨텍스트 벡터를 생성할 수 있다. 예를 들어, 도 10을 함께 참조하면, 뉴럴 네트워크 장치(10)는 추가 텍스트를 수신하고, 텍스트 인코더(440)를 통해 컨텍스트 벡터를 생성할 수 있다. 뉴럴 네트워크 장치(10)는 추가 이미지를 수신하고, 이미지 인코더(434)를 통해 컨텍스트 벡터를 생성할 수 있다.
동작 S930에서, 뉴럴 네트워크 장치(10)는 마스킹 처리된 컨텍스트 벡터를 사용자 입력에 상응하는 컨텍스트 벡터로 치환할 수 있다. 도 10을 함께 참조하면, 뉴럴 네트워크 장치(10)는 마스킹된 제1 컨텍스트 벡터(710)를 상기 동작 S920에서 생성된 컨텍스트 벡터로 치환할 수 있다. 즉, 유사도가 임계 값보다 작아서 마스킹된 컨텍스트 벡터를 사용자가 입력한 텍스트 또는 이미지에 기반하여 생성된 컨텍스트 벡터로 치환함으로써 쿼리 이미지의 화질을 더욱 개선할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (9)

  1. 컨텍스트 벡터 추출 모듈에 있어서,
    쿼리 이미지를 수신하고, 상기 쿼리 이미지를 제1 크기를 갖는 복수의 제1 파티션 이미지들로 분할하고, 상기 쿼리 이미지를 상기 제1 크기보다 작은 제2 크기를 갖는 복수의 제2 파티션 이미지들로 분할하는 분할 이미지 생성 모듈;
    상기 제1 크기를 갖는 상기 복수의 제1 파티션 이미지들 및 상기 제2 크기를 갖는 상기 복수의 제2 파티션 이미지들을 상기 쿼리 이미지와 동일한 크기로 변환하는 이미지 보간 모듈;
    상기 쿼리 이미지에 상응하는 전체 컨텍스트 벡터를 생성하고, 상기 쿼리 이미지와 동일한 크기로 변환된 상기 복수의 제1 파티션 이미지들에 상응하는 제1 컨텍스트 벡터들을 생성하고, 상기 쿼리 이미지와 동일한 크기로 변환된 상기 복수의 제2 파티션 이미지들에 상응하는 제2 컨텍스트 벡터들을 생성하는 이미지 인코딩 모듈; 및
    상기 제1 컨텍스트 벡터들 및 상기 제2 컨텍스트 벡터들 각각에 대한 전체 컨텍스트 벡터 및 이웃하는 벡터들과의 유사도에 있어서, 상기 제1 컨텍스트 벡터들 및 상기 제2 컨텍스트 벡터들 중 임계 값보다 작은 유사도를 갖는 적어도 하나 이상의 벡터를 마스킹하는 컨텍스트 벡터 튜닝 모듈;을 포함하고,
    상기 컨텍스트 벡터 튜닝 모듈은,
    상기 제1 컨텍스트 벡터들 각각에 대하여, 상기 전체 컨텍스트 벡터 및 이웃하는 벡터들과의 유사도를 계산하고,
    상기 계산된 유사도가 상기 임계 값보다 작은 벡터를 마스킹하는, 컨텍스트 벡터 추출 모듈.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 컨텍스트 벡터 튜닝 모듈은,
    상기 제2 컨텍스트 벡터들 각각에 대하여, 상기 전체 컨텍스트 벡터, 상기 제1 컨텍스트 벡터들 및 이웃하는 벡터들과의 유사도를 계산하고,
    상기 계산된 유사도가 상기 임계 값보다 작은 벡터를 마스킹하는, 컨텍스트 벡터 추출 모듈.
  5. 제1항에 있어서,
    상기 컨텍스트 벡터 추출 모듈은,
    텍스트 입력을 수신하고, 상기 텍스트 입력을 컨텍스트 벡터로 변환하기 위한 텍스트 인코딩 모듈을 더 포함하고,
    상기 마스킹된 적어도 하나 이상의 벡터에 상응하는 영역을 묘사하기 위한 텍스트 입력 또는 상기 마스킹된 적어도 하나 이상의 벡터에 상응하는 영역과 유사한 이미지 입력을 수신하고, 상기 이미지 입력 또는 상기 텍스트 입력에 상응하는 컨텍스트 벡터를 생성하고,
    상기 컨텍스트 벡터 튜닝 모듈은,
    상기 생성된 컨텍스트 벡터를 상기 마스킹된 적어도 하나 이상의 벡터와 치환하는, 컨텍스트 벡터 추출 모듈.
  6. 컨텍스트 벡터 추출 모듈의 동작 방법에 있어서,
    쿼리 이미지를 수신하고, 상기 쿼리 이미지에 상응하는 전체 컨텍스트 벡터를 생성하는 동작;
    상기 쿼리 이미지를 제1 크기를 갖는 복수의 제1 파티션 이미지들로 분할하는 동작;
    상기 쿼리 이미지를 상기 제1 크기보다 작은 제2 크기를 갖는 복수의 제2 파티션 이미지들로 분할하는 동작;
    상기 제1 크기를 갖는 상기 복수의 제1 파티션 이미지들 및 상기 제2 크기를 갖는 상기 복수의 제2 파티션 이미지들을 상기 쿼리 이미지와 동일한 크기로 변환하는 동작;
    상기 쿼리 이미지와 동일한 크기로 변환된 상기 복수의 제1 파티션 이미지들에 상응하는 제1 컨텍스트 벡터들 및 상기 쿼리 이미지와 동일한 크기로 변환된 상기 복수의 제2 파티션 이미지들에 상응하는 제2 컨텍스트 벡터들을 생성하는 동작; 및
    상기 제1 컨텍스트 벡터들 및 상기 제2 컨텍스트 벡터들 각각에 대한 전체 컨텍스트 벡터 및 이웃하는 벡터들과의 유사도에 있어서, 상기 제1 컨텍스트 벡터들 및 상기 제2 컨텍스트 벡터들 중 임계 값보다 작은 유사도를 갖는 적어도 하나 이상의 벡터를 마스킹하는 동작;을 포함하고,
    상기 적어도 하나 이상의 벡터를 마스킹하는 동작은,
    상기 제1 컨텍스트 벡터들 각각에 대하여, 상기 전체 컨텍스트 벡터 및 이웃하는 벡터들과의 유사도를 계산하는 동작; 및
    상기 계산된 유사도가 상기 임계 값보다 작은 벡터를 마스킹하는 동작;을 포함하는 컨텍스트 추출 모듈의 동작 방법.
  7. 삭제
  8. 삭제
  9. 제6항에 있어서,
    상기 적어도 하나 이상의 벡터를 마스킹하는 동작은,
    상기 제2 컨텍스트 벡터들 각각에 대하여, 상기 전체 컨텍스트 벡터, 상기 제1 컨텍스트 벡터들 및 이웃하는 벡터들과의 유사도를 계산하는 동작; 및
    상기 계산된 유사도가 상기 임계 값보다 작은 벡터를 마스킹하는 동작;을 더 포함하는 컨텍스트 추출 모듈의 동작 방법.

KR1020220113497A 2022-09-07 2022-09-07 분할 이미지를 통해 컨텍스트 벡터를 생성하는 컨텍스트 벡터 추출 모듈 및 이의 동작 방법 KR102504007B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220113497A KR102504007B1 (ko) 2022-09-07 2022-09-07 분할 이미지를 통해 컨텍스트 벡터를 생성하는 컨텍스트 벡터 추출 모듈 및 이의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220113497A KR102504007B1 (ko) 2022-09-07 2022-09-07 분할 이미지를 통해 컨텍스트 벡터를 생성하는 컨텍스트 벡터 추출 모듈 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR102504007B1 true KR102504007B1 (ko) 2023-02-27

Family

ID=85329613

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220113497A KR102504007B1 (ko) 2022-09-07 2022-09-07 분할 이미지를 통해 컨텍스트 벡터를 생성하는 컨텍스트 벡터 추출 모듈 및 이의 동작 방법

Country Status (1)

Country Link
KR (1) KR102504007B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101914208B1 (ko) * 2017-09-08 2018-11-02 한국과학기술연구원 피라미드 구조 기반 기계 학습을 이용한 객체 인식 장치 및 방법
CN113901904A (zh) * 2021-09-29 2022-01-07 北京百度网讯科技有限公司 图像处理方法、人脸识别模型训练方法、装置及设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101914208B1 (ko) * 2017-09-08 2018-11-02 한국과학기술연구원 피라미드 구조 기반 기계 학습을 이용한 객체 인식 장치 및 방법
CN113901904A (zh) * 2021-09-29 2022-01-07 北京百度网讯科技有限公司 图像处理方法、人脸识别模型训练方法、装置及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Junjie Ke et al., "MUSIQ: Multi-scale Image Quality Transformer,"arXiv:2108.05997v1 [cs.CV] 12 Aug 2021 (2021.08.12.)* *
Youngwan Lee et al., "MPViT : Multi-Path Vision Transformer for Dense Prediction," arXiv:2112.11010v2 [cs.CV] 27 Dec 2021 (2021.12.27.)* *

Similar Documents

Publication Publication Date Title
CN108615036B (zh) 一种基于卷积注意力网络的自然场景文本识别方法
WO2020238560A1 (zh) 视频目标跟踪方法、装置、计算机设备及存储介质
US11200424B2 (en) Space-time memory network for locating target object in video content
AU2019268184B2 (en) Precise and robust camera calibration
WO2016054779A1 (en) Spatial pyramid pooling networks for image processing
US20210141826A1 (en) Shape-based graphics search
US20230042221A1 (en) Modifying digital images utilizing a language guided image editing model
CN113674146A (zh) 图像超分辨率
CN113869138A (zh) 多尺度目标检测方法、装置及计算机可读存储介质
US20230153965A1 (en) Image processing method and related device
CN112101344B (zh) 一种视频文本跟踪方法及装置
CN110881109A (zh) 用于增强现实应用的视频中的实时叠加放置
JP7085600B2 (ja) 画像間の類似度を利用した類似領域強調方法およびシステム
EP4222700A1 (en) Sparse optical flow estimation
CN117078790A (zh) 图像生成方法、装置、计算机设备和存储介质
CN115147606A (zh) 医学图像的分割方法、装置、计算机设备和存储介质
CN114565768A (zh) 图像分割方法及装置
KR102504007B1 (ko) 분할 이미지를 통해 컨텍스트 벡터를 생성하는 컨텍스트 벡터 추출 모듈 및 이의 동작 방법
KR102485872B1 (ko) 컨텍스트 벡터를 활용하여 이미지 화질을 개선시키는 이미지 화질 개선 방법 및 이를 수행하는 이미지 화질 개선 모듈
US8948512B2 (en) Methods, systems, and media for image processing using hierarchical expansion
US20230196093A1 (en) Neural network processing
CN113807354B (zh) 图像语义分割方法、装置、设备和存储介质
WO2021179117A1 (zh) 神经网络通道数搜索方法和装置
KR102647615B1 (ko) 유사도를 기초로 선택된 레퍼런스 프레임을 이용하여 그레이 스케일 비디오를 컬러링하는 비디오 컬러링 방법 및 이를 수행하는 비디오 컬러링 시스템
JP7427120B2 (ja) 特徴画像の処理方法、装置及び記憶媒体