KR102213385B1 - 비디오 캡션 생성장치 및 방법 - Google Patents

비디오 캡션 생성장치 및 방법 Download PDF

Info

Publication number
KR102213385B1
KR102213385B1 KR1020190144855A KR20190144855A KR102213385B1 KR 102213385 B1 KR102213385 B1 KR 102213385B1 KR 1020190144855 A KR1020190144855 A KR 1020190144855A KR 20190144855 A KR20190144855 A KR 20190144855A KR 102213385 B1 KR102213385 B1 KR 102213385B1
Authority
KR
South Korea
Prior art keywords
video
embedding
category
vector
category information
Prior art date
Application number
KR1020190144855A
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 KR1020190144855A priority Critical patent/KR102213385B1/ko
Priority to PCT/KR2019/017428 priority patent/WO2021095979A1/ko
Priority to US17/773,194 priority patent/US20220375221A1/en
Application granted granted Critical
Publication of KR102213385B1 publication Critical patent/KR102213385B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/488Data services, e.g. news ticker
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/41Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234336Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by media transcoding, e.g. video is transformed into a slideshow of still pictures or audio is converted into text
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26603Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for automatically generating descriptors from content, e.g. when it is not made available by its provider, using content analysis techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/488Data services, e.g. news ticker
    • H04N21/4884Data services, e.g. news ticker for displaying subtitles

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Engineering & Computer Science (AREA)

Abstract

본 발명은 입력으로 사용되는 비디오에 대해 설명하는 자연어 문장을 생성하는 비디오 캡션 생성장치 및 방법에 관한 것이다. 본 발명은 비디오 임베딩 및 카테고리 정보 임베딩을 진행하는 임베딩부와, 상기 임베딩된 비디오 벡터와 카테고리 벡터를 이용하여 자질을 선택하는 스택 임베딩 인코더 블록부, 상기 스택 임베딩 인코더의 결과를 전달받고 비디오와 카테고리 정보에 대한 유사도 매트릭스와 자질 매트릭스를 생성하여 최종 인코딩 결과물을 제공하는 비디오-카테고리 어텐션부, 및 상기 최종 인코딩 결과물을 이용하여 문장을 생성하는 문장 생성부를 포함하여 구성된다.

Description

비디오 캡션 생성장치 및 방법{Video caption generation apparatus and mehtod thereof}
본 발명은 비디오 캡션 생성장치에 관한 것으로, 특히 콘볼루션(convolution)과 어텐션 메커니즘(attention mechanism)을 이용하여 입력으로 사용되는 비디오에 대해 설명하는 자연어 문장을 생성하는 비디오 캡션 생성장치 및 방법에 관한 것이다.
비디오 캡션 생성은 입력으로 사용되는 비디오 내용을 설명하는 자연어 문장을 생성하는 작업이라 할 수 있다. 이러한 비디오 캡션 생성은 일반적으로 2가지 과정을 거쳐 문장을 생성한다.
첫 번째 과정은 입력 비디오로부터 특징을 추출하는 과정이다. 상기 특징 추출 과정에는 비디오를 1초당 n개의 프레임 이미지로 생성하여 특징을 추출하는 과정과 이를 이용하여 자질(feature)로 생성하는 과정을 포함한다. 두 번째 과정은 추출한 특징을 이용하여 문장을 생성하는 과정이다. 그리고 이러한 과정에 따라 비디오 캡션을 생성하기 위해서는 각 프레임(frame)으로 분할한 후 콘볼루션 뉴럴 네트워크(CNN: Convolution Neural Network)을 이용하여 특징을 추출한다.
그런데 상기 콘볼루션 뉴럴 네트워크(Convolution Neural Network)을 이용한 2D CNN 방법은 단일 이미지에만 적용되고 비디오와 같은 시간 정보를 사용할 수 없다. 이를 해결하기 위해 3D CNN이 제안된 바 있다.
상기 3D CNN은 연속 프레임에 대한 정보를 가질 수 있으며 시간 정보를 인코딩하는 학습이 가능하다. 그러나 상기 3D CNN은 자연어 문장을 출력함에 있어 복잡한 처리과정이 필요하고 그만큼 시간이 많이 소모되었다. 즉 3D CNN 방법은 학습속도가 느리고 비용 소모가 많이 발생하며, 아울러 은닉층이 깊은 네트워크는 학습하기가 어려웠다.
따라서 본 발명의 목적은 상기한 문제점을 해결하기 위한 것으로, 종래 3D CNN에 비해 간단하게 비디오에 대해 설명하는 자연어 문장을 생성할 수 있는 비디오 캡션 생성장치 및 방법을 제공하는 것이다. 즉 종래 3D CNN과 같은 복잡한 방법을 사용하지 않고서도 비디오 캡션을 생성하기 위함이다.
그리고 본 발명의 자연어 문장의 생성은 콘볼루션(convolution)과 어텐션 메커니즘(attention mechanism)을 이용하고 있다.
아울러 이러한 본 발명은 비디오 캡션를 생성하는 것 이외에도 비쥬얼 QA와같은 분야에도 적용할 수 있도록 하는 것이다.
이와 같은 목적을 달성하기 위한 본 발명은, 비디오 임베딩 및 카테고리 정보 임베딩을 진행하는 임베딩부; 상기 임베딩된 비디오 벡터와 카테고리 벡터를 이용하여 자질을 선택하는 스택 임베딩 인코더 블록부; 상기 스택 임베딩 인코더의 결과를 전달받고 비디오와 카테고리 정보에 대한 유사도 매트릭스와 자질 매트릭스를 생성하여 최종 인코딩 결과물을 제공하는 비디오-카테고리 어텐션부; 상기 최종 인코딩 결과물을 이용하여 문장을 생성하는 문장 생성부를 포함하는 비디오 캡션 생성장치를 제공한다.
상기 임베딩부는, 입력 비디오 신호를 n개의 이미지로 생성하고 콘볼루션을 통해 프레임 벡터를 생성한다.
상기 카테고리 정보 임베딩은, 단어 임베딩과 문자 임베딩을 이용하여 분산 표현으로 생성된다.
상기 스택 임베딩 인코더 블록부는, 포지션 인코딩, 레이어 정규화, 분리 가능한 깊이별 콘볼루션 층, 셀프 어텐션, 순방향 층(FeedForward layer)를 포함한다.
상기 비디오-카테고리 어텐션부는, 비디오 벡터와 카테고리 정보 벡터를 이용하여 유사도 매트릭스(S), 정규화한 유사도 매트릭스(S'), 비디오-카테고리 유사도 매트릭스(V2C), 카테고리-비디오 유사도 매트릭스(C2V)를 계산한다.
상기 디코더 모듈은, 상기 인코더 모듈의 결과 벡터와 마지막으로 출력된 단어로부터 다음 단어를 예측하는 과정을 반복하여 캡션을 생성한다.
본 발명의 다른 특징에 따르면, 입력 비디오의 프레임 처리 및 카테고리 정보의 임베딩을 생성하는 임베딩 단계; 임베딩된 비디오 벡터와 카테고리 벡터를 이용하여 유용한 자질을 선택하는 스택 임베딩 인코더 단계; 상기 선택된 자질 정보를 이용하여 비디오와 카테고리 정보에 대한 유사 매트릭스와 자질 매트릭스를 생성하는 비디오-카테고리 정보 어텐션 단계; 비디오 벡터와 카테고리 벡터를 직접 연산에 추가하여 최종적으로 인코더 결과를 생성하는 셀프 어텐션 단계; 및 상기 생성된 인코더 결과를 이용하여 문장을 생성하는 디코더 단계를 포함하는 비디오 캡션 생성방법을 제공한다.
상기 스택 임베딩 인코더 단계는, 비디오 범주 정보 내 등장하는 프레임 또는 단어 위치에 따라 가중치를 적용하는 포지션 인코딩(Position Encoding) 단계; 각 은닉 상태(hidden state)의 분포를 정규화해주고 빠른 학습이 가능하도록 레이어 정규화(Layer Normalization)을 진행하는 단계; 각 설정한 층수만큼 반복하는 분리 가능한 깊이별 콘볼루션 단계; 각 입력으로 들어오는 비디오와 범주 정보에 대해 자기 자신을 잘 표현할 수 있는 비디오와 카테고리 정보 쌍을 찾아 임베딩을 생성하는 셀프 어텐션 단계; 및 각 헤드가 생성한 셀프 어텐션이 치우치지 않도록 균등하게 섞는 순방향 층(FeedForward layer) 수행단계를 포함한다.
상기 비디오-카테고리 정보 어텐션 단계는, 비디오(
Figure 112019116354587-pat00001
)와 카테고리 정보(
Figure 112019116354587-pat00002
)를 이용하여 유사도 매트릭스(
Figure 112019116354587-pat00003
)를 구하는 단계; 상기 유사도 매트릭스(
Figure 112019116354587-pat00004
)를 이용하여 각 행에 대해 소프트 멕스를 취한 정규화한 유사도 매트릭스(
Figure 112019116354587-pat00005
)를 구하는 단계; 상기 정규화한 유사도 매트릭스(
Figure 112019116354587-pat00006
)와 카테고리 정보 벡터를 이용하여 비디오-카테고리 유사도(
Figure 112019116354587-pat00007
)를 계산하는 단계; 및 상기 유사도 매트릭스(
Figure 112019116354587-pat00008
), 정규화한 유사도 매트릭스(
Figure 112019116354587-pat00009
), 비디오 벡터(V)를 이용하여 카테고리-비디오 유사도(
Figure 112019116354587-pat00010
)를 계산하는 단계를 포함하여 수행된다.
이상과 같은 본 발명의 비디오 캡션 생성장치 및 방법에 따르면, 3D CNN과 같은 복잡한 처리를 하지 않고 콘볼루션(Convolution)과 어텐션 메커니즘(Attention Mechanism)을 이용하여 입력으로 사용되는 비디오를 설명하는 비디오 캡션(자연어 문장)을 생성할 수 있다.
따라서 종래보다 덜 번거로울 뿐만 아니라 학습 속도를 빠르게 할 수 있으며, 비용도 절감되는 효과가 있다.
도 1은 본 발명의 바람직한 실시 예에 따른 비디오 캡션 생성장치를 보인 블록 구성도
도 2는 본 발명의 바람직한 실시 예에 따른 비디오 캡션 생성방법을 설명하는 흐름도
도 3은 도 2의 스택 임베딩 인코더 과정의 상세 흐름도
도 4는 도 2의 비디오-카테고리 어텐션 과정에서 매트릭스를 구하는 것을 보인 상세 흐름도
본 발명의 목적 및 효과, 그리고 그것들을 달성하기 위한 기술적 구성들은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다.
그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하에서는 도면에 도시한 실시 예에 기초하면서 본 발명에 대하여 더욱 상세하게 설명하기로 한다.
도 1은 본 발명의 바람직한 실시 예에 따른 비디오 캡션 생성장치를 보인 구성도이다.
본 실시 예의 비디오 캡션 생성장치(10)는, 인코더 모듈(100)과 디코더 모듈(200)을 포함한다. 인코더 모듈(100)은 임베딩부(Embedding)(110), 스택 임베딩 인코더 블록부(stack embedding encoder block)(120), 비디오-카테고리 어텐션부(130), 셀프 어텐션부(140)를 포함한다. 그리고 디코더 모듈(200)은 인코더 모듈의 결과를 이용하여 문장을 생성하는 모듈이다.
각 구성을 구체적으로 살펴보기로 한다.
임베딩부(110)는 비디오와 그 비디오에 사용할 카테고리 정보를 이용하여 비디오를 프레임으로 처리하는 것으로, 즉 비디오 임베딩과 카테고리 정보 임베딩을 수행하는 구성이라 할 수 있다. 상기 비디오 임베딩은, 입력으로 들어오는 비디오 신호에 대해 n개의 이미지로 생성하는 프레임 분할 단계를 수행한 후, 콘볼루션을 통해 프레임 벡터를 생성하는 기능을 수행한다. 상기 콘볼루션은 미리 학습된 이미지 넷(ImageNet)의 네트워크 결과를 사용한다.
본 실시 예에서 상기 카테고리 정보 임베딩은 단어 임베딩과 문자 임베딩을 이용하여 분산 표현(distributed representation)으로 생성된다. 상기 단어 임베딩과 문자 임베딩은 랜덤으로 설정한 후 학습에 따라 임베딩의 값이 학습되도록 할 수 있으며, 실시 예에서는 학습된 단어 및 문자 임베딩을 사용하게 된다.
본 실시 예에 따르면 단어 임베딩은 학습 시 역전파(back-propagation)을 통해 학습되지 않도록 설정한다. 그리고 문자 임베딩은 역전파를 통해 학습이 되도록 설정하고 CNN과 max-over-time-pooling을 거쳐 벡터를 생성하고 하이웨이 네트워크(Highway Network)를 통해 생성된 결과 벡터와 단어 벡터를 연결하여 사용한다. 상기 max-over-time-pooling은 CNN이 필터 개수만큼 자질 맵(eature map)이 생성되고, 각 filter별로 가장 중요한 특성을 추출한다. 그리고 하이웨이 네트워크는 네트워크 내 어떤 레이어를 통과할 때 해당 레이어에서 수행되어야 하는 선형 연산과 활성화(activation) 같은 연산을 거치치 않기 때문에 빠른 학습을 얻을 수 있다.
스택 임베딩 인코더 블록부(120)는 실시 예에서 총 5단계를 수행한다. 5단계는, ⅰ. 포지션 인코딩, ⅱ. 레이어 정규화(layer normalization), ⅲ. 분리 가능한 깊이별 콘볼루션(Depthwise separable convolution layer), ⅳ.셀프 어텐션, ⅴ. 순방향 층(FeedFordward layer)를 포함하는 단계이고, 여기서 상기 레이어 정규화 및 분리가능한 깊이별 콘볼루션 과정은 사용자가 설정해준 값만큼 반복하게 된다. 이와같은 스택 임베딩 인코더 블록부의 기능은 아래에서 상세하게 설명할 것이다.
비디오-카테고리 어텐션부(130)는 비디오 벡터와 카테고리 정보 벡터를 이용하여 4개의 매트릭스를 구하고, 최종 인코딩 결과물을 생성하는 역할을 한다.
본 실시 예에서, 상기 비디오-카테고리 어텐션부(130)에는 셀프 어텐션부(140)가 더 연결될 수 있다. 이 경우 셀프 어텐션부(140)가 상기 스택 임베딩 인코더 블록부(120)가 소정 횟수 반복하여 나온 출력 벡터를 이용하여 최종 인코딩 결과물을 생성할 것이다. 즉 비디오 벡터와 카테고리 벡터를 직접 연산에 추가하여 최종적으로 인코더 결과를 생성하는 것이라 할 수 있다.
상기 매트릭스 4개는, 유사도 매트릭스(S), 정규화한 유사도 매트릭스(S'), 비디오-카테고리 유사도(V2C), 카테고리-비디오 유사도(C2V)를 말하며, 이러한 과정은 아래에서 상세하게 설명하기로 한다.
한편, 디코더 모듈(200)은 상기 인코더 모듈(100)의 결과 벡터를 이용하여 실제 문장을 생성하는 모듈이다. 즉 인코더의 결과 벡터(
Figure 112019116354587-pat00011
)와 마지막으로 출력된 단어(
Figure 112019116354587-pat00012
)로부터 다음 단어(
Figure 112019116354587-pat00013
)를 예측하고, 이를 반복적으로 진행하여 비디오에 대한 캡션을 생성한다.
이러한 디코더 모듈(200)은 인코더의 결과 벡터를 이용하여 디코더 모듈(200)의 초기 상태로 설정하기도 한다.
다음에는 이와 같이 구성된 비디오 캡션 생성장치를 이용하여 비디오 캡션을 생성하는 방법에 대해 살펴보기로 한다.
먼저 도 2에 도시된 바와 같이 임베딩부(110)가 임베딩 과정(s100)을 수행하게 된다. 임베딩 과정(s100)은 비디오 임베딩과 카테고리 정보 임베딩을 수행하는 것으로서, 비디오 임베딩은 입력되는 비디오에 대해 프레임 분할작업을 통해 n개의 이미지로 생성한 다음, 콘볼루션을 통해 프레임 벡터를 생성하는 과정을 말한다. 그리고 카테고리 정보 임베딩은 단어 임베딩과 문자 임베딩을 이용하여 분산표현으로 생성된다. 즉 비디오를 벡터로 표현하고 카테고리 정보를 단어 임베딩을 통해 벡터를 생성하여 동시에 입력받는 것이다.
한편, 카테고리 정보 임베딩 시, 단어 임베딩은 역전파(back-propagation)를 통해 학습되지 않도록 설정한다. 반면 문자 임베딩은 역전파를 통해 학습이 되도록 설정한다. 문자 임베딩은 CNN과 max-over-time-pooling을 거쳐 벡터를 생성하고 하이웨이 네트워크(Highway Network)를 통해 생성된 결과 벡터와 단어 벡터를 연결하여 사용한다. 상기 max-over-time-pooling은 CNN이 필터 개수만큼 feature map이 생성되고, 각 filter별로 가장 중요한 특성을 추출한다. 하이웨이 네트워크는 네트워크 내 어떤 레이어를 통과할 때 해당 레이어에서 수행되어야 하는 선형 연산과 활성화(activation) 같은 연산을 거치치 않기 때문에 빠른 학습을 얻을 수 있다. 따라서 본 발명에서는 학습된 단어 및 문자 임베딩을 사용한다.
이러한 임베딩 과정이 완료되면 스택 임베딩 인코더 블록부(120)가 임베딩 된 비디오 벡터와 카테고리 벡터를 이용하여 유용한 자질을 선택하는 스택 임베딩 인코더 과정(s200)을 수행한다. 본 실시 예에서 이러한 스택 임베딩 인코더 과정(s200)은 총 5단계로 이루어진다.
상기 스택 임베딩 인코더 과정(s200)은 도 3을 참고하여 설명한다. 참고로 도 3의 도면에서 '
Figure 112019116354587-pat00014
'는 입력으로 사용했던 벡터와 출력으로 나온 벡터의 연산을 의미한다.
첫 번째로, 포지션 인코딩(Position Encoding)을 수행하여 비디오 카테고리 내 등장하는 프레임 또는 단어 위치에 따라 가중치를 적용한다(s210). 이는 상기 비디오 및 카테고리 정보에 위치 정보가 포함되어 있지 않기 때문에 위치 정보를 이용할 수 있도록 삼각 함수 중 sine, cosine 함수를 통해 위치 정보를 추가하는 과정을 의미한다.
두 번째로, 각 은닉상태(hidden state)의 분포를 정규화해주고 기울기(gradient) 값이 안정적인 값을 가지도록 하여 빠른 속도로 학습할 수 있도록 레이어 정규화(Layer Normalization)을 진행한다(s220).
세 번째로, 분리 가능한 깊이별 콘볼루션(Depthwise convolution Network)을 수행한다(s230). 분리 가능한 콘볼루션은 각 설정한 층 수만큼 반복되어 진행되며, 이러한 콘볼루션은 각 채널마다 독립적으로 콘볼루션을 실행하는 깊이별 콘볼루션(Depthwise convolution)과 1D CNN으로 여러 개의 채널을 하나의 새로운 채널로 합치는 위치별 콘볼루션(Pointwise convolution)을 결합한 것을 말한다.
이처럼 2단계로 진행되는 분리 가능한 깊이별 콘볼루션은 일반 콘볼루션 네트워크에 비해 상대적으로 연산량이 적기 때문에 학습속도가 빨라질 것이다. 이후 레이어 정규화를 다시 진행한다(s240).
그리고 본 실시 예에서 상기 두 번째인 레이어 정규화 및 세 번째인 분리 가능한 깊이별 콘볼루션 과정은 사용자가 셋팅한 설정값만큼 반복하게 된다.
네 번째는, 셀프 어텐션 과정이다(s250). 이는 각 입력으로 들어오는 비디오와 카테고리 정보에 대해 자기 자신을 잘 표현할 수 있는 비디오와 카테고리 정보를 찾아 이를 이용하여 임베딩을 생성하는 것을 말한다. 실시 예에서, 이러한 셀프 어텐션은 스케일드 닷-프로덕트 어텐션(Scaled dot-product attention)과 멀티-헤드 어텐션(multi-head attention)인 두 가지 어텐션을 적용한다. 스케일드 닷-프로덕트 어텐션은 입력으로 들어오는 비디오와 카테고리 정보 사이를 내적하여 어텐션을 소프트맥스(softmax)를 통해 구한 것을 통해 다시 비디오와 카테고리 정보를 내적하여 중요한 부분을 찾는 것이 목적이다. 그리고 멀티-헤드 어텐션은 벡터의 열(row)를 기준으로 전체 차원의 헤드 수만큼 나누어 어텐션을 적용한 후 추후에 어텐션을 합치는 과정을 진행한다. 이후 레이어 정규화를 다시 수행한다(s260).
다섯 번째는, 각 헤드가 만들어낸 셀프 어텐션이 치우치지 않도록 균등하게 섞는 역할을 하는 순방향(Feed Forward Layer)층을 수행한다(s270). 즉, 각 헤드가 자신의 관점으로만 입력에 대해 셀프 어텐션을 하면 각 헤드에 따라 어텐션이 치우치기 때문이다.
이와 같은 5단계를 통해 스택 임베딩 인코더 과정(s200)이 수행된 다음에는 다시 도 2와 같이 최종 인코딩 결과물을 생성하기 위하여 비디오-카테고리 어텐셔 과정(s300)이 수행된다.
이러한 과정은 비디오-카테고리 어텐션부(130)가 비디오 벡터와 카테고리 정보 벡터를 이용하여 총 4개의 매트릭스를 구하여 연결함으로써 가능하고, 상기 4개 벡터는 유사도 매트릭스(S), 정규화한 유사도 매트릭스(S'), 비디오-카테고리 유사도(V2C), 카테고리-비디오 유사도(C2V)를 말한다.
상기 매트릭스를 구하는 과정은 도 4를 참고한다.
먼저 비디오(V)와 카테고리 정보(C)를 이용하여 유사도 매트릭스(S)를 구한다. 그리고 상기 유사도 매트릭스(S)를 이용하여 각 행에 대해 소프트맥스(softmax)를 취하여 정규화한 유사도 매트릭스(S')를 구한다.
다음에는 상기 정규화한 유사도 매트릭스(S')와 카테고리 정보 벡터를 이용하여 비디오-카테고리 유사도(V2C)를 계산하고, 다시 유사도 매트릭스(S), 정규화한 유사도 매트릭스(S'), 비디오 벡터(V)를 이용하여 상기 카테고리-비디오 유사도(C2V)를 구한다.
이후 도 2와 같이 스택 임베딩 인코더 블록을 3번 반복하여 나온 출력 벡터에 셀프 어텐션 과정(s400)을 수행하여 최종 인코딩 결과물(Vencoder)을 생성한다.
상기와 같이 인코더 모듈(100)에 의해 최종 인코딩 결과물이 생성된 다음에는 디코더 모듈(200)이 상기 인코더 모듈(100)의 결과 벡터를 이용하여 실제 문장을 생성하게 된다(s500). 문장 생성은, 상기 인코더의 결과 벡터를 디코더 모듈(200)의 초기 상태로 설정하고, 인코더의 결과 벡터(Vencoder)와 마지막으로 출력된 단어(yt - 1)로부터 다음 단어(yt)를 예측하고, 이러한 예측을 반복적으로 진행하여 비디오에 대한 캡션을 생성한다.
다음에는 본 발명의 비디오 캡션 생성장치의 실험 결과를 다른 방법들과 비교하여 살펴보기로 한다. 실험에는 마이크로소프트사에서 2017년 공개한 MSR-VTT 데이터 셋을 이용하였고, 한국어 번역 작업을 통해 한국어 데이터 셋을 구축한 후 실험을 진행하였다.
다음 [표 1]은 MSR-VTT 데이터 셋 내의 비디오와 레퍼런스에 대한 통계로서, 하나의 클립에 대해 20개의 레퍼런스가 존재한다.
비디오 수 클립 수 총 레퍼런스 수
공식 데이터 7,180 10,000 200,000
수집 데이터 5,706 7,825 156,500
한국어 번역 작업 후 형태소 분석을 통해 품사를 제거한 후 사용하였으며, 캡션 내 형태소 갯수를 최대 15개로 설정하였고 형태소 갯수가 15개 이상인 캡션을 제외하였다. 다음 표 2는 실험 데이터 정보이다.
코퍼스 분류 비디오 수 레퍼런스 수
학습 코퍼스 6,329 70,527
검증 코퍼스 713 9,087
평가 코퍼스 783 9,661
총합 7,825 89,275
본 발명에 다른 캡션 생성 모델과 비교되는 기본 모델은 "2D CNN + LSTM" 모델을 사용하였다. 즉, 동일하게 100개의 키 프레임을 임의 추출하고 InceptionV3 의 결과물을 LSTM을 거쳐 128차원의 인코더 벡터를 생성한다. LSTM의 초기 상태로 설정하고 비디오에 대한 캡션을 생성한다. 단어 임베딩만 사용했으며 단어 임베딩의 차원은 128차원이다. 이 기본 모델은 학습 데이터를 3,500개를 사용하였으며 평가 데이터는 동일하다.
실험은 비디오 프레임을 임의로 100개를 추출하여 표 3의 실험 파라미터에 따라 진행하였고, 실험 결과는 표 4에 나타냈다.
파라미터 분류 설정 값
비디오 프레임 수 100
비디오 임베딩 차원 2,048
단어 임베딩 차원 300
문자 임베딩 차원 200
Dropout 0.1
학습률 0.001
사용한 헤드 수 2
분류 B@1 B@2 B@3 B@4 ROUGE_L CIDEr
기본 모델
(전체 형태소)
0.631 0.323 0.198 0.121
제안 모델
(형태소 15개 이하)
0.640 0.490 0.392 0.313 0.500 0.237
제안 모델
(전체 형태소)
0.663 0.506 0.404 0.321 0.494 0.116
실험 결과에 따르면, 본 발명의 실시 예에서 비디오를 설명하는 문장을 잘 생성한 경우는, 부가적 수식을 통해 새로운 단어가 생성된 경우, 영상에 대해 더 포괄적으로 설명해주는 행위를 생성한 경우, 복합 컨텍스트의 영상에서 단일 컨텍스트를 찾아 문장을 생성한 경우이고, 문장의 생성이 잘되지 않은 경우는 비디오를 잘못 인식한 경우, 사전 내 존재하지 않은 단어가 많이 발생한 경우이다.
본 발명과 상기 기본 모델의 결과를 비교하면, 기본 모델이 사전 내 존재하지 않은 단어를 많이 생성했으며 어두운 화면이나 장면의 변화에 대해 인식률이 낮은 경향을 보였다. 반면 본 발명의 제안 모델은 상기 기본 모델에 비해 사전 내 존재하지 않은 단어를 적게 출력하며 복합 컨텍스트에 대한 출력 또한 비교적 잘된 것으로 나타났다.
그리고 본 발명의 제안모델이 3D CNN과 같이 추가 정보를 이용하지 않아도 좋은 성능을 얻을 수 있었고, 2D CNN과 멀티 헤드 셀프 어텐션을 이용함으로써 비디오를 표현하기 위한 자질을 생성하는데 도움이 되었음을 알 수 있었다.
이상과 같이 본 발명의 도시된 실시 예를 참고하여 설명하고 있으나, 이는 예시적인 것들에 불과하며, 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자라면 본 발명의 요지 및 범위에 벗어나지 않으면서도 다양한 변형, 변경 및 균등한 타 실시 예들이 가능하다는 것을 명백하게 알 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 청구범위의 기술적인 사상에 의해 정해져야 할 것이다.
100: 인코더 모듈
110: 임베딩부
120: 스택 임베딩 인코더 블록부
130: 비디오 카테고리 어텐션부
140: 셀프 어텐션부
200: 디코더 모듈

Claims (9)

  1. 비디오 임베딩 및 카테고리 정보 임베딩을 진행하는 임베딩부;
    상기 임베딩된 비디오 벡터와 카테고리 벡터를 이용하여 자질을 선택하는 스택 임베딩 인코더 블록부;
    상기 스택 임베딩 인코더의 결과를 전달받고 비디오와 카테고리 정보에 대한 유사도 매트릭스와 자질 매트릭스를 생성하여 최종 인코딩 결과물을 제공하는 비디오-카테고리 어텐션부; 및
    상기 최종 인코딩 결과물을 이용하여 문장을 생성하는 디코더 모듈을 포함하며,
    상기 스택 임베딩 인코더 블록부는,
    비디오 범주 정보 내 등장하는 프레임 또는 단어 위치에 따라 가중치를 적용하는 포지션 인코딩(Position Encoding); 각각 은닉 상태(hidden state)의 분포를 정규화해주고 빠른 학습이 가능하도록 레이어 정규화, 각각 설정한 층수만큼 반복하는 분리 가능한 깊이별 콘볼루션 층, 각각 입력으로 들어오는 비디오와 범주 정보에 대해 자기 자신을 잘 표현할 수 있는 비디오와 카테고리 정보 쌍을 찾아 임베딩을 생성하는 셀프 어텐션, 각각의 헤드가 생성한 셀프 어텐션이 치우치지 않도록 균등하게 섞는 순방향 층(FeedForward layer)을 포함하며,
    상기 포지션 인코딩, 레이어 정규화, 분리 가능한 깊이별 콘볼루션 층, 셀프 어텐션, 순방향 층이 순서대로 진행되는 비디오 캡션 생성장치.
  2. 제 1 항에 있어서,
    상기 임베딩부는,
    입력 비디오 신호를 n개의 이미지로 생성하고 콘볼루션을 통해 프레임 벡터를 생성하는 비디오 캡션 생성장치.
  3. 제 1 항에 있어서,
    상기 카테고리 정보 임베딩은,
    단어 임베딩과 문자 임베딩을 이용하여 분산 표현으로 생성되는 비디오 캡션 생성장치.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 비디오-카테고리 어텐션부는,
    비디오 벡터와 카테고리 정보 벡터를 이용하여 유사도 매트릭스(S), 정규화한 유사도 매트릭스(S'), 비디오-카테고리 유사도 매트릭스(V2C), 카테고리-비디오 유사도 매트릭스(C2V)를 계산하는 비디오 캡션 생성장치.
  6. 제 1 항에 있어서,
    상기 디코더 모듈은,
    인코더 모듈의 결과 벡터와 마지막으로 출력된 단어로부터 다음 단어를 예측하는 과정을 반복하여 캡션을 생성하는 비디오 캡션 생성장치.
  7. 입력 비디오의 프레임 처리 및 카테고리 정보의 임베딩을 생성하는 임베딩 단계;
    임베딩된 비디오 벡터와 카테고리 벡터를 이용하여 유용한 자질을 선택하는 스택 임베딩 인코더 단계;
    상기 선택된 자질 정보를 이용하여 비디오와 카테고리 정보에 대한 유사 매트릭스와 자질 매트릭스를 생성하는 비디오-카테고리 정보 어텐션 단계;
    비디오 벡터와 카테고리 벡터를 직접 연산에 추가하여 최종적으로 인코더 결과를 생성하는 셀프 어텐션 단계; 및
    상기 생성된 인코더 결과를 이용하여 문장을 생성하는 디코더 단계를 포함하고,
    상기 스택 임베딩 인코더 단계는,
    비디오 범주 정보 내 등장하는 프레임 또는 단어 위치에 따라 가중치를 적용하는 포지션 인코딩(Position Encoding) 단계;
    각각 은닉 상태(hidden state)의 분포를 정규화해주고 빠른 학습이 가능하도록 레이어 정규화(Layer Normalization)을 진행하는 단계;
    각각 설정한 층수만큼 반복하는 분리 가능한 깊이별 콘볼루션 단계;
    각각 입력으로 들어오는 비디오와 범주 정보에 대해 자기 자신을 잘 표현할 수 있는 비디오와 카테고리 정보 쌍을 찾아 임베딩을 생성하는 셀프 어텐션 단계; 및
    각각의 헤드가 생성한 셀프 어텐션이 치우치지 않도록 균등하게 섞는 순방향 층(FeedForward layer) 수행단계가 순서대로 수행되는 비디오 캡션 생성방법.
  8. 삭제
  9. 제 7 항에 있어서,
    상기 비디오-카테고리 정보 어텐션 단계는,
    비디오(
    Figure 112019116354587-pat00015
    )와 카테고리 정보(
    Figure 112019116354587-pat00016
    )를 이용하여 유사도 매트릭스(
    Figure 112019116354587-pat00017
    )를 구하는 단계;
    상기 유사도 매트릭스(
    Figure 112019116354587-pat00018
    )를 이용하여 각 행에 대해 소프트 멕스를 취한 정규화한 유사도 매트릭스(
    Figure 112019116354587-pat00019
    )를 구하는 단계;
    상기 정규화한 유사도 매트릭스(
    Figure 112019116354587-pat00020
    )와 카테고리 정보 벡터를 이용하여 비디오-카테고리 유사도(
    Figure 112019116354587-pat00021
    )를 계산하는 단계; 및
    상기 유사도 매트릭스(
    Figure 112019116354587-pat00022
    ), 정규화한 유사도 매트릭스(
    Figure 112019116354587-pat00023
    ), 비디오 벡터(V)를 이용하여 카테고리-비디오 유사도(
    Figure 112019116354587-pat00024
    )를 계산하는 단계를 포함하는 비디오 캡션 생성방법.
KR1020190144855A 2019-11-13 2019-11-13 비디오 캡션 생성장치 및 방법 KR102213385B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190144855A KR102213385B1 (ko) 2019-11-13 2019-11-13 비디오 캡션 생성장치 및 방법
PCT/KR2019/017428 WO2021095979A1 (ko) 2019-11-13 2019-12-11 비디오 캡션 생성장치 및 방법
US17/773,194 US20220375221A1 (en) 2019-11-13 2019-12-11 Video caption generating apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190144855A KR102213385B1 (ko) 2019-11-13 2019-11-13 비디오 캡션 생성장치 및 방법

Publications (1)

Publication Number Publication Date
KR102213385B1 true KR102213385B1 (ko) 2021-02-05

Family

ID=74558845

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190144855A KR102213385B1 (ko) 2019-11-13 2019-11-13 비디오 캡션 생성장치 및 방법

Country Status (3)

Country Link
US (1) US20220375221A1 (ko)
KR (1) KR102213385B1 (ko)
WO (1) WO2021095979A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023229094A1 (ko) * 2022-05-27 2023-11-30 주식회사 엔씨소프트 행동 예측 방법 및 장치

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113611289B (zh) * 2021-08-06 2024-06-18 上海汽车集团股份有限公司 一种语音识别方法和装置
CN116310984B (zh) * 2023-03-13 2024-01-30 中国科学院微电子研究所 基于Token采样的多模态视频字幕生成方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10395118B2 (en) * 2015-10-29 2019-08-27 Baidu Usa Llc Systems and methods for video paragraph captioning using hierarchical recurrent neural networks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ILING WU 등, Learning Fragment Self-Attention Embeddings for Image-Text Matching, MM '19: Proceedings of the 27th ACM International Conference on Multimedia, pp. 2088-2096, 2019.10.21* *
LUOWEI ZHOU 등, End-to-End Dense Video Captioning with Masked Transformer, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 8739-8748, 2018.06.22* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023229094A1 (ko) * 2022-05-27 2023-11-30 주식회사 엔씨소프트 행동 예측 방법 및 장치

Also Published As

Publication number Publication date
WO2021095979A1 (ko) 2021-05-20
US20220375221A1 (en) 2022-11-24

Similar Documents

Publication Publication Date Title
KR102213385B1 (ko) 비디오 캡션 생성장치 및 방법
CN110750959B (zh) 文本信息处理的方法、模型训练的方法以及相关装置
CN111191078A (zh) 基于视频信息处理模型的视频信息处理方法及装置
CN106997387A (zh) 基于文本‑图像匹配的多模态自动文摘方法
CN107480132A (zh) 一种基于图像内容的古诗词生成方法
CN110414009B (zh) 基于BiLSTM-CNN的英缅双语平行句对抽取方法及装置
CN111985243B (zh) 情感模型的训练方法、情感分析方法、装置及存储介质
CN110826298B (zh) 一种智能辅助定密系统中使用的语句编码方法
CN107679070A (zh) 一种智能阅读推荐方法与装置、电子设备
CN110750998A (zh) 一种文本输出方法、装置、计算机设备和存储介质
CN104700410B (zh) 基于协同过滤的教学视频标注方法
Pande et al. Development and deployment of a generative model-based framework for text to photorealistic image generation
CN114742047A (zh) 基于最大概率填充和多头注意力机制的文本情感识别方法
CN117557683A (zh) 一种新型的文本和语义分割图共同驱动的图像生成方法
CN114048282A (zh) 一种基于文本树局部匹配的图文跨模态检索方法及系统
Chharia et al. Deep recurrent architecture based scene description generator for visually impaired
CN110610006B (zh) 基于笔画和字形的形态学双通道中文词嵌入方法
CN116932736A (zh) 一种基于用户需求结合倒排表的专利推荐方法
CN114944002B (zh) 文本描述辅助的姿势感知的人脸表情识别方法
CN116821324A (zh) 模型训练方法、装置、电子设备及存储介质
Dilawari et al. Neural attention model for abstractive text summarization using linguistic feature space
CN113687830B (zh) 可视化界面生成方法、系统及计算机存储介质
CN113158735A (zh) 一种基于图神经网络的密集事件描述方法
Alabduljabbar et al. Image Captioning based on Feature Refinement and Reflective Decoding
Elbarougy et al. Continuous audiovisual emotion recognition using feature selection and lstm

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant