KR102588452B1 - 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템 및 그 방법 - Google Patents

딥러닝 영상 분석을 위한 영상 데이터 전달 시스템 및 그 방법 Download PDF

Info

Publication number
KR102588452B1
KR102588452B1 KR1020210128083A KR20210128083A KR102588452B1 KR 102588452 B1 KR102588452 B1 KR 102588452B1 KR 1020210128083 A KR1020210128083 A KR 1020210128083A KR 20210128083 A KR20210128083 A KR 20210128083A KR 102588452 B1 KR102588452 B1 KR 102588452B1
Authority
KR
South Korea
Prior art keywords
batch
size
buffer
data
duplicate
Prior art date
Application number
KR1020210128083A
Other languages
English (en)
Other versions
KR20220125660A (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 주식회사 핀텔
Publication of KR20220125660A publication Critical patent/KR20220125660A/ko
Application granted granted Critical
Publication of KR102588452B1 publication Critical patent/KR102588452B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Neurology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Abstract

본 발명은 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템 및 그 방법에 관한 것으로, 해결하고자 하는 과제는 입력 데이터를 나눈 배치(batch)의 크기를 시간에 따라 변동하는 버퍼의 크기에 적합하도록 조절하여 데이터 큐(data queue)를 생성하여 입력 데이터를 딥러닝 영상 분석기로 전달하는 버퍼 단에서 발생할 수 있는 병목 현상을 방지함으로써 전체적인 딥러닝 분석 속도를 개선하며 GPU 자원에 대한 사용 효율성을 높이는데 있다.
일례로, 시간에 따라 변동되는 버퍼의 크기를 검출하는 버퍼 크기 검출부; 및 딥러닝 영상 분석을 위한 입력 데이터를 다수의 배치(batch)로 나누어 다수의 배치로 이루어진 데이터 큐를 생성하되, 상기 버퍼 크기 검출부를 통해 검출되는 버퍼의 크기에 따라 상기 배치의 크기를 조절하여 데이터 큐를 생성하는 데이터 큐 생성부를 포함하는 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템을 개시한다.

Description

딥러닝 영상 분석을 위한 영상 데이터 전달 시스템 및 그 방법{SYSTEM FOR DELIVERING IMAGE DATA FOR DEEP LEARNING IMAGE ANALYSIS AND METHOD THEREOF}
본 발명의 실시예는 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템 및 그 방법에 관한 것이다.
4차 산업 혁명이 진행되면서 사물 인터넷(Internet of Things), 모바일(Mobile), 클라우드(Cloud), 빅데이터(Big Data) 및 인공지능(Artificial Intelligence)과 관련된 기술이 계속적으로 발전하고 있다. 인공 지능을 구현하기 위해 머신 러닝(Machine Learning)과 딥러닝(Deep Learning)과 같은 기술이 개발되었다.
머신 러닝과 딥러닝은 수신된 입력을 연산 또는 분류하여 출력을 생성하는 점에서 유사하지만, 머신 러닝은 인간이 입력한 알고리즘을 통해 데이터를 분석 및 추론하는데 비해, 딥러닝은 인공 신경망(Deep Neural Network)을 통해 데이터를 분석 및 추론할 수 있다.
이러한 딥러닝 영상 분석을 위해 다양한 영상 데이터가 입력되는데, 이러한 입력 데이터는 동일한 크기의 배치(batch)(학습 및 분석 시 1회에 처리하는 데이터 패킷)로 나누어진 후, 버퍼(buffer)를 통해 딥러닝 영상 분석기로 전달된다.
이때, 버퍼의 크기에 따라 동일한 시간 동안 처리할 수 있는 데이터의 크기가 달라지며 버퍼의 크기 또한 시간에 따라 변동하게 된다. 즉, 배치의 크기는 일정하지만 버퍼의 크기는 시간에 따라 변동하기 때문에 배치의 크기가 클 경우에는 버퍼에서 병목 현상이 발생하여 딥러닝 분석의 지연을 발생시키는 문제가 발생할 수 있다.
공개특허공보 제10-2015-0053702호(공개일자: 2015년05월18일) 공개특허공보 제10-2016-0033505호(공개일자: 2016년03월28일)
본 발명의 실시예는, 입력 데이터를 나눈 배치(batch)의 크기를 시간에 따라 변동하는 버퍼의 크기에 적합하도록 조절하여 데이터 큐(data queue)를 생성하여 입력 데이터를 딥러닝 영상 분석기로 전달하는 버퍼 단에서 발생할 수 있는 병목 현상을 방지함으로써 전체적인 딥러닝 분석 속도를 개선시킬 수 있으며, GPU 자원에 대한 사용 효율성을 높일 수 있는 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템 및 그 방법을 제공한다.
본 발명의 실시예에 따른 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템은, 시간에 따라 변동되는 버퍼의 크기를 검출하는 버퍼 크기 검출부; 및 입력되는 순서대로 입력 데이터에 포함된 영상 프레임을 데이터 큐에 나열하고, 해당 영상 프레임의 개수에 맞게 배치(batch)를 생성하여 다수의 배치로 구성된 데이터 큐를 생성하되, 상기 버퍼 크기 검출부를 통해 검출되는 버퍼의 크기에 따라 상기 버퍼가 수용할 수 있는 영상 프레임의 최대 개수에 맞게 상기 배치의 크기를 조절하여 데이터 큐를 생성하는 데이터 큐 생성부를 포함한다.
또한, 상기 데이터 큐 생성부는, 상기 데이터 큐에 포함된 배치의 크기가 상기 버퍼 크기 검출부를 통해 검출되는 버퍼의 최대 크기를 초과하는 경우 해당 배치의 크기를 버퍼의 최대 크기 이하로 조절하면서 발생된 잔여 영상 프레임에 맞는 별도의 배치를 생성할 수 있다.
또한, 상기 데이터 큐 생성부로부터 배치를 각각 전달 받되, 전달 받은 시간 순서대로 딥러닝 영상 분석기에 전달하는 버퍼를 포함하는 버퍼부를 더 포함할 수 있다.
또한, 상기 데이터 큐 생성부는, 상기 데이터 큐에 포함된 상기 다수의 배치를 상기 버퍼부에 순차적으로 전달할 수 있다.
또한, 상기 데이터 큐 생성부에서 생성되는 배치의 크기와 해당 배치에 포함된 데이터를 검사하여 동일한 데이터를 포함하면서 일정한 크기의 중복 배치를 검출하는 중복 배치 검출부; 상기 중복 배치 검출부를 통해 검출되는 배치의 검출 횟수가 미리 설정된 기준 값 이상인 경우 검출된 해당 배치를 중복 배치로 설정하는 중복 배치 설정부; 상기 중복 배치 설정부를 통해 설정된 상기 중복 배치의 크기와 동일한 임시 버퍼를 할당하고, 할당된 상기 임시 버퍼에 상기 중복 배치를 저장하는 임시 버퍼 메모리부; 및 상기 데이터 큐 생성부에서 생성되는 배치의 크기와 해당 배치에 포함된 데이터를 모니터링하여 상기 중복 배치와 동일한 데이터를 포함하면서 동일한 크기의 배치가 검출되는 경우, 검출된 해당 배치가 상기 데이터 큐 생성부에서 상기 버퍼부로 전달되는 순번을 각각 획득하고, 상기 임시 버퍼 메모리부에 저장된 상기 중복 배치를 해당 순번에 딥러닝 영상 분석기로 제공하는 중복 배치 제공부를 포함할 수 있다.
또한, 상기 중복 배치 제공부는, 상기 임시 버퍼 메모리부에 저장된 중복 배치와 동일한 신규 배치가 상기 데이터 큐 생성부에서 삭제되도록 제어할 수 있다.
본 발명의 다른 실시예에 따른 딥러닝 영상 분석을 위한 영상 데이터 전달 방법은, 버퍼 크기 검출부가, 시간에 따라 변동되는 버퍼의 크기를 검출하는 버퍼 크기 검출 단계; 및 데이터 큐 생성부가, 입력되는 순서대로 입력 데이터에 포함된 영상 프레임을 데이터 큐에 나열하고, 해당 영상 프레임의 개수에 맞게 배치(batch)를 생성하여 다수의 배치로 구성된 데이터 큐를 생성하되, 상기 버퍼 크기 검출 단계를 통해 검출되는 버퍼의 크기에 따라 상기 버퍼가 수용할 수 있는 영상 프레임의 최대 개수에 맞게 상기 배치의 크기를 조절하여 데이터 큐를 생성하는 데이터 큐 생성 단계를 포함한다.
또한, 상기 데이터 큐 생성 단계는, 상기 데이터 큐에 포함된 배치의 크기가 상기 버퍼 크기 검출부를 통해 검출되는 버퍼의 최대 크기를 초과하는 경우 해당 배치의 크기를 버퍼의 최대 크기 이하로 조절하면서 발생된 잔여 영상 프레임에 맞는 별도의 배치를 생성할 수 있다.
또한, 버퍼부가, 상기 데이터 큐 생성부로부터 배치를 각각 전달 받되, 전달 받은 시간 순서대로 딥러닝 영상 분석기에 전달하는 버퍼 실행 단계를 더 포함할 수 있다.
또한, 상기 데이터 큐 생성 단계에서는, 상기 데이터 큐에 포함된 상기 다수의 배치를 상기 버퍼부 순차적으로 전달할 수 있다.
또한, 배치 검출부가, 상기 데이터 큐 생성부에서 생성되는 배치의 크기와 해당 배치에 포함된 데이터를 검사하여 동일한 데이터를 포함하면서 일정한 크기의 중복 배치를 검출하는 중복 배치 검출 단계; 중복 배치 설정부가, 상기 중복 배치 검출부를 통해 검출되는 배치의 검출 횟수가 미리 설정된 기준 값 이상인 경우 검출된 해당 배치를 중복 배치로 설정하는 중복 배치 설정 단계; 저장하는 임시 버퍼 메모리부가, 상기 배치 설정부를 통해 설정된 상기 중복 배치의 크기와 동일한 임시 버퍼를 할당하고, 할당된 상기 임시 버퍼에 상기 중복 배치를 임시 버퍼 실행 단계; 및 중복 배치 제공부가, 상기 데이터 큐 생성부에서 생성되는 배치의 크기와 해당 배치에 포함된 데이터를 모니터링하여 상기 중복 배치와 동일한 데이터를 포함하면서 동일한 크기의 배치가 검출되는 경우, 검출된 해당 배치가 상기 데이터 큐 생성부에서 상기 버퍼부로 전달되는 순번을 각각 획득하고, 상기 임시 버퍼 메모리부에 저장된 상기 중복 배치를 해당 순번에 딥러닝 영상 분석기로 직접 제공하는 중복 배치 제공 단계를 포함할 수 있다.
또한, 상기 중복 배치 제공 단계에서는, 상기 중복 배치 제공부가, 상기 임시 버퍼 메모리부에 저장된 중복 배치와 동일한 신규 배치가 상기 데이터 큐 생성부에서 삭제되도록 제어할 수 있다.
본 발명에 따르면, 입력 데이터를 나눈 배치(batch)의 크기를 시간에 따라 변동하는 버퍼의 크기에 적합하도록 조절하여 데이터 큐(data queue)를 생성하여 입력 데이터를 딥러닝 영상 분석기로 전달하는 버퍼 단에서 발생할 수 있는 병목 현상을 방지함으로써 전체적인 딥러닝 분석 속도를 개선시킬 수 있으며, GPU 자원에 대한 사용 효율성을 높일 수 있는 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템 및 그 방법을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템의 전체 구성을 나타낸 블록도이다.
도 2 및 도 3은 본 발명의 실시예에 따른 영상 데이터 전달 시스템을 통한 영상 데이터를 딥러닝 영상 분석기로 제공하는 방법을 설명하기 위해 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 영상 데이터 전달 시스템을 통한 영상 데이터를 딥러닝 영상 분석기로 제공하는 다른 방법을 설명하기 위해 나타낸 도면이다.
도 5 내지 도 7은 본 발명의 실시예에 따른 임시 버퍼를 이용한 중복 배치를 딥러닝 영상 분석기로 제공하는 방법을 설명하기 위해 나타낸 도면이다.
도 8은 본 발명의 다른 실시예에 따른 딥러닝 영상 분석을 위한 영상 데이터 전달 방법을 나타낸 흐름도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 검출 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나 이상의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 발명의 일 실시예에 따른 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템의 전체 구성을 나타낸 블록도이고, 도 2 및 도 3은 본 발명의 실시예에 따른 영상 데이터 전달 시스템을 통한 영상 데이터를 딥러닝 영상 분석기로 제공하는 방법을 설명하기 위해 나타낸 도면이고, 도 4는 본 발명의 실시예에 따른 영상 데이터 전달 시스템을 통한 영상 데이터를 딥러닝 영상 분석기로 제공하는 다른 방법을 설명하기 위해 나타낸 도면이며, 도 5 내지 도 6은 본 발명의 실시예에 따른 임시 버퍼를 이용한 중복 배치를 딥러닝 영상 분석기로 제공하는 방법을 설명하기 위해 나타낸 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템(1000)은 버퍼 크기 검출부(100), 데이터 큐 생성부(200), 버퍼부(300), 중복 배치 검출부(400), 중복 배치 설정부(500), 임시 버퍼 메모리부(600) 및 중복 배치 제공부(700) 중 적어도 하나를 포함할 수 있다.
상기 버퍼 크기 검출부(100)는 시간에 따라 변동되는 버퍼의 크기를 검출할 수 있다. 버퍼는, 하나의 장치에서 다른 장치로 데이터를 전송할 경우에 양자 간의 데이터의 전송속도나 처리속도의 차를 보상하여 양호하게 결합할 목적으로 사용하는 기억영역을 버퍼 또는 버퍼 영역이라고 한다. 보통 중앙처리장치와 단말이나 다른 입출력장치 사이의 데이터 송수신에는 입출력 영역으로서 버퍼를 필요로 하며, 중앙처리장치와 주기억장치의 사이에 고속으로 동작하는 소용량의 버퍼 메모리(로컬 메모리)를 설치하여 처리 속도를 향상시킬 수 있다. 본 실시예에서는 딥러닝 학습 또는 분석을 위한 입력 데이터(영상 프레임)를 딥러닝 영상 분석기로 전달하는 역할을 할 수 있다. 이러한 버퍼의 크기는 가용 GPU 메모리와 네트워크 모델의 옵션을 바탕으로 자동 계산되며, 시간에 따라 그 크기(버퍼 크기)가 변동되기 때문에, 버퍼 크기 검출부(100)에서 실시간 변화하는 버퍼의 크기를 검출하여 데이터 큐 생성부(200)로 제공할 수 있다.
상기 데이터 큐 생성부(200)는 입력되는 순서대로 입력 데이터에 포함된 영상 프레임을 데이터 큐에 나열하고, 해당 영상 프레임의 개수에 맞게 배치(batch)를 생성하여 다수의 배치로 구성된 데이터 큐를 생성하되, 버퍼 크기 검출부(100)를 통해 검출되는 버퍼의 크기에 따라 해당 버퍼가 수용할 수 있는 영상 프레임의 최대 개수에 맞게 배치의 크기를 조절하여 데이터 큐를 생성할 수 있다.
예를 들어, 입력 데이터 내 영상 프레임의 개수가 3개이면, 이미지 3장짜리의 배치(Batch)를 생성하여, 해당 배치 크기에 최적화시킨 후 딥러닝 영상 분석기(10)에 전달하여 해당 영상에 대한 분석을 진행할 수 있도록 한다.
상기 데이터 큐 생성부(200)는, 데이터 큐에 포함된 배치의 크기가 버퍼 크기 검출부(100)를 통해 검출되는 버퍼의 최대 크기 이하이면, 생성된 배치 그대로 딥러닝 영상 분석기(10)에 전달하여 해당 영상에 대한 분석을 진행할 수 있도록 하되, 데이터 큐에 포함된 배치의 크기가 버퍼 크기 검출부(100)를 통해 검출되는 버퍼의 최대 크기를 초과하는 경우 해당 배치의 크기를 버퍼의 최대 크기 이하로 조절하면서 발생된 잔여 영상 프레임에 맞는 별도의 배치를 생성할 수 있다.
예를 들어, 버퍼의 최대 크기가 4인 상황에서 데이터 큐 내 배치의 크기가 1, 2, 3, 또는 4까지는 해당 크기의 배치를 각각 그대로 전달할 수 있으며, 이때 데이터 큐 내 잔여 이미지의 크기는 0이되며, 버퍼의 최대 크기가 4인 상황에서 데이터 큐 내 배치의 크기가 5인 경우 크기가 4까지의 배치와 잔여 이미지의 크기 1을 나누고(배치가 4와 1의 크기로 둘로 나누어짐), 크기 4인 배치를 전달할 수 있으며, 배치의 크기가 6인 경우 크기가 4까지의 배치와 잔여 이미지의 크기 2를 나누고(배치가 4와 2의 크기로 둘로 나누어짐), 크기 4인 배치를 전달할 수 있다.
또한, 데이터 큐 생성부(200)는, 딥러닝 영상 분석을 위한 입력 데이터를 다수의 배치(batch)로 나누어 다수의 배치로 이루어진 데이터 큐를 생성하되, 상기 버퍼 크기 검출부(100)를 통해 검출되는 버퍼의 크기에 따라 버퍼에 입력될 배치의 크기를 조절하여 배치들로 이루어지는 데이터 큐를 생성할 수 있다. 여기서, 배치는 학습 및 분석 시 1회에 처리하는 데이터 패킷을 의미한다. 이러한 데이터 큐 생성부(200)는 기존의 데이터 큐 생성 방식과 달리 일정한 크기의 배치를 생성하는 것이 아니라 배치를 임시 저장할 버퍼의 변동되는 크기에 따라 처리가 가능한 크기의 배치로 각각 나누어 데이터 큐를 생성함으로써, 버퍼에서 발생되는 병목 현상을 방지할 수 있으며, 이러한 병목 현상에 의해 발생되는 GPU 자원 효율성을 높이고 전체적인 딥러닝 분석 속도를 향상시킬 수 있다.
<표 1>
상기의 표 1은 본 실시예에 따른 데이터 큐 생성 방식을 통해 생성된 배치(batch) 수에 따른 딥러닝 분석 속도를 나타낸 것으로, 이러한 방법을 통해 기존 방식과 대비하여 GPU의 사용 효율을 평균적으로 17% 이상 증가(78%->95%)시킬 수 있으며, GPU의 사용 효율성 증가에 따라 동일 시간 동안 분석 가능한 영상 프레임 수를 증가시킴으로써 평균적으로 동일 자원 대비 1.5배 이상의 높은 fps를 확보할 수 있다.
상기 데이터 큐 생성부(200)는, 데이터 큐에 포함되는 다수의 배치를 버퍼부(300)에 순차적으로 전달할 수 있다. 예를 들어, 도 4에 도시된 바와 같이 입력 데이터를 배치 1, 배치 2, 배치 3, 배치 4, ... , 배치 n으로 나눈 경우, 나눈 순서대로 버퍼부(300)에 전달할 순번(①, ②, ③, ④, ... , ⓝ)을 설정하고, 설정된 순번에 따라 배치 1, 배치 2, 배치 3, 배치 4, 배치 5, 배치 6 순으로 각 배치의 데이터를 버퍼부(300)에 전달할 수 있다.
상기 버퍼부(300)는, 데이터 큐 생성부(200)로부터 배치를 각각 전달 받되, 전달 받은 시간 순서대로 딥러닝 영상 분석기(10)에 전달할 수 있다. 예를 들어, 도 4에 도시된 바와 같이 배치 1(①), 배치 2(②), 배치 3(③), 배치 4(④), ... , 배치 n(ⓝ) 순으로 버퍼부(300)에 입력된 후 딥러닝 영상 분석기(10)로 전달될 수 있으며, 각 배치의 크기는 각각 입력되는 버퍼의 처리 가능한 크기에 맞게 조절된 상태일 수 있다.
상기 중복 배치 검출부(400)는, 데이터 큐 생성부(200)에서 생성되는 배치의 크기와 해당 배치에 포함된 데이터를 검사하여 동일한 데이터를 포함하면서 일정한 크기의 중복 배치를 검출할 수 있다. 즉, 데이터 큐를 생성하는 과정에서 각 배치의 크기와 해당 배치에 포함된 데이터를 검사하여 반복되는 크기의 데이터를 갖는 배치를 검출할 수 있다.
상기 중복 배치 설정부(500)는, 중복 배치 검출부(400)를 통해 검출되는 배치의 검출 횟수가 미리 설정된 기준 값 이상인 경우 검출된 해당 배치를 중복 배치로 설정할 수 있다. 예를 들어, 도 5에 도시된 바와 같이 배치 1, 배치 2, 배치 3, 배치 4, ..., 배치 n까지 버퍼에 입력된 후 딥러닝 영상 분석기(10)로 전달되고 있고, 배치 1과 동일한 크기를 가지면서 동일한 데이터를 갖는 배치는 총 4회 검출되고, 배치 2와 동일한 크기를 가지면서 동일한 데이터를 갖는 배치는 총 55회 검출되고, 배치 3과 동일한 크기를 가지면서 동일한 데이터를 갖는 배치는 총 6회 검출되고, 배치 4와 동일한 크기를 가지면서 동일한 데이터를 갖는 배치는 총 7회 검출되고, 배치 n과 동일한 크기를 가지면서 동일한 데이터를 갖는 배치는 총 3회 검출된 경우, 각 배치의 검출 횟수 K 중 기준 값 R을 초과하는 배치 2가 중복 배치로서 검출될 수 있다. 이렇게 검출된 배치 2는 중복 배치로서 설정될 수 있으며, 이러한 중복 배치는 일정 조건을 충족하는 배치이면 다수 개가 각각 설정될 수 있다.
상기 임시 버퍼 메모리부(600)는, 중복 배치 설정부(500)를 통해 설정된 중복 배치의 크기와 동일한 임시 버퍼를 할당하고, 할당된 임시 버퍼에 중복 배치를 저장할 수 있다. 이러한 임시 버퍼 메모리부(600)는 버퍼부(500)를 위한 메모리 공간으로부터 임시로 할당된 버퍼 메모리로서 해당 임시 버퍼 메모리부(600)의 크기 또한, 가용 GPU 메모리와 네트워크 모델의 옵션을 바탕으로 자동 계산될 수 있다.
상기 중복 배치 제공부(700)는, 데이터 큐 생성부(200)에서 생성되는 배치의 크기와 해당 배치에 포함된 데이터를 모니터링하여 중복 배치와 동일한 데이터를 포함하면서 동일한 크기의 배치가 검출되는 경우, 검출된 해당 배치가 데이터 큐 생성부(200)에서 버퍼부(300)로 전달되는 순번을 각각 획득하고, 임시 버퍼 메모리부(600)에 저장된 중복 배치를 해당 순번에 딥러닝 영상 분석기(10)로 직접 제공할 수 있다.
예를 들어, 임시 버퍼 메모리부(600)에 중복 배치가 설정 저장(중복 배치(또는 버퍼)의 크기, 데이터 내용도 함께 저장됨)된 후, 도 6에 도시된 바와 같이 중복 배치 제공부(700)를 통해 데이터 큐 생성부(200)에서 생성되는 각각의 배치의 크기와 각 배치에 포함된 데이터를 모니터링하여, 중복 배치의 크기와 데이터가 동일한 신규 생성된 배치를 찾고, 해당 신규 생성 배치의 순번 즉 버퍼부(700)에 전달되는 순번 정보를 획득할 수 있다. 이때, 중복 배치 제공부(700)는 임시 버퍼 메모리부(600)에 저장된 배치와 동일한 신규 배치가 데이터 큐 생성부(200)에서 삭제되도록 제어할 수 있다.
이와 같이 중복 배치 제공부(700)가 자신이 저장하고 있는 중복 배치와 동일한 데이터 큐 생성부(200)에서 생성된 신규 배치를 삭제하는 이유는, 데이터 큐 생성부(200)에서 생성된 신규 배치를 버퍼부(300)로 전달하고, 버퍼부(300)에서 다시 딥러닝 영상 분석기(10)로 전달하는 프로세스를 생략하고, 임시 버퍼 메모리부(600)에서 딥러닝 영상 분석기(10)로 해당 중복 배치를 직접 제공하기 위해서이다.
이에, 중복 배치 제공부(700)는 도 7에 도시된 바와 같이 자신이 저장하고 있는 중복 배치와 동일한 크기와 데이터의 배치가 데이터 큐 생성부(200)에서 생성되었음을 확인하면, 생성된 신규 배치의 순번을 획득한 후 해당 순번 시 데이터 큐 생성부(200)에서 버퍼부(300) 그리고 버퍼부(300)에서 딥러닝 영상 분석기(10)로 데이터 패킷이 전달되는 과정 없이, 임시 버퍼 메모리부(600)에서 딥러닝 영상 분석기(10)로 직접 해당 배치(중복 배치)를 전달(입력)할 수 있다. 이에 따라, 빈번히 전달되는 데이터 패킷을 전달하는 과정을 생략하고 임시 버퍼에서 직접 입력함으로써 데이터 처리 속도를 향상시킬 수 있다.
도 6은 본 발명의 다른 실시예에 따른 딥러닝 영상 분석을 위한 영상 데이터 전달 방법을 나타낸 흐름도이다.
도 6을 참조하면, 본 발명의 다른 실시예에 따른 딥러닝 영상 분석을 위한 영상 데이터 전달 방법(S1000)은 버퍼 크기 검출 단계(S100), 데이터 큐 생성 단계(S200), 버퍼 실행 단계(S300), 중복 배치 검출 단계(S400), 중복 배치 설정 단계(S500), 임시 버퍼 실행 단계(S600) 및 중복 배치 제공 단계(S700) 중 적어도 하나를 포함할 수 있다.
상기 버퍼 크기 검출 단계(S100)에서는 버퍼 크리 검출부(100)를 이용하여, 시간에 따라 변동되는 버퍼의 크기를 검출할 수 있다. 버퍼는, 하나의 장치에서 다른 장치로 데이터를 전송할 경우에 양자 간의 데이터의 전송속도나 처리속도의 차를 보상하여 양호하게 결합할 목적으로 사용하는 기억영역을 버퍼 또는 버퍼 영역이라고 한다. 보통 중앙처리장치와 단말이나 다른 입출력장치 사이의 데이터 송수신에는 입출력 영역으로서 버퍼를 필요로 하며, 중앙처리장치와 주기억장치의 사이에 고속으로 동작하는 소용량의 버퍼 메모리(로컬 메모리)를 설치하여 처리 속도를 향상시킬 수 있다. 본 실시예에서는 딥러닝 학습 또는 분석을 위한 입력 데이터(영상 프레임)를 딥러닝 영상 분석기로 전달하는 역할을 할 수 있다. 이러한 버퍼의 크기는 가용 GPU 메모리와 네트워크 모델의 옵션을 바탕으로 자동 계산되며, 시간에 따라 그 크기(버퍼 크기)가 변동되기 때문에, 버퍼 크기 검출 단계(S100)에서 실시간 변화하는 버퍼의 크기를 검출하여 데이터 큐 생성부(200)로 제공할 수 있다.
상기 데이터 큐 생성 단계(S200)에서는, 입력되는 순서대로 입력 데이터에 포함된 영상 프레임을 데이터 큐에 나열하고, 해당 영상 프레임의 개수에 맞게 배치(batch)를 생성하여 다수의 배치로 구성된 데이터 큐를 생성하되, 버퍼 크기 검출 단계(S100)를 통해 검출되는 버퍼의 크기에 따라 상기 버퍼가 수용할 수 있는 영상 프레임의 최대 개수에 맞게 배치의 크기를 조절하여 데이터 큐를 생성할 수 있다.
예를 들어, 입력 데이터 내 영상 프레임의 개수가 3개이면, 이미지 3장짜리의 배치(Batch)를 생성하여, 해당 배치 크기에 최적화시킨 후 딥러닝 영상 분석기(10)에 전달하여 해당 영상에 대한 분석을 진행할 수 있도록 한다.
상기 데이터 큐 생성 단계(S200)는, 데이터 큐에 포함된 배치의 크기가 버퍼 크기 검출 단계(S100)를 통해 검출되는 버퍼의 최대 크기 이하이면, 생성된 배치 그대로 딥러닝 영상 분석기(10)에 전달하여 해당 영상에 대한 분석을 진행할 수 있도록 하되, 데이터 큐에 포함된 배치의 크기가 버퍼 크기 검출 단계(S100)를 통해 검출되는 버퍼의 최대 크기를 초과하는 경우 해당 배치의 크기를 버퍼의 최대 크기 이하로 조절하면서 발생된 잔여 영상 프레임에 맞는 별도의 배치를 생성할 수 있다.
예를 들어, 버퍼의 최대 크기가 4인 상황에서 데이터 큐 내 배치의 크기가 1, 2, 3, 또는 4까지는 해당 크기의 배치를 각각 그대로 전달할 수 있으며, 이때 데이터 큐 내 잔여 이미지의 크기는 0이되며, 버퍼의 최대 크기가 4인 상황에서 데이터 큐 내 배치의 크기가 5인 경우 크기가 4까지의 배치와 잔여 이미지의 크기 1을 나누고(배치가 4와 1의 크기로 둘로 나누어짐), 크기 4인 배치를 전달할 수 있으며, 배치의 크기가 6인 경우 크기가 4까지의 배치와 잔여 이미지의 크기 2를 나누고(배치가 4와 2의 크기로 둘로 나누어짐), 크기 4인 배치를 전달할 수 있다.
또한, 데이터 큐 생성 단계(S200)에서는, 딥러닝 영상 분석을 위한 입력 데이터를 다수의 배치(batch)로 나누어 다수의 배치로 이루어진 데이터 큐를 생성하되, 상기 버퍼 크기 검출 단계(S100)를 통해 검출되는 버퍼의 크기에 따라 버퍼에 입력될 배치의 크기를 조절하여 배치들로 이루어지는 데이터 큐를 생성할 수 있다. 여기서, 배치는 학습 및 분석 시 1회에 처리하는 데이터 패킷을 의미한다. 이러한 데이터 큐 생성 단계(S200)는 기존의 데이터 큐 생성 방식과 달리 일정한 크기의 배치를 생성하는 것이 아니라 배치를 임시 저장할 버퍼의 변동되는 크기에 따라 처리가 가능한 크기의 배치로 각각 나누어 데이터 큐를 생성함으로써, 버퍼에서 발생되는 병목 현상을 방지할 수 있으며, 이러한 병목 현상에 의해 발생되는 GPU 자원 효율성을 높이고 전체적인 딥러닝 분석 속도를 향상시킬 수 있다.
<표 2>
상기의 표 2는 본 실시예에 따른 데이터 큐 생성 방식을 통해 생성된 배치(batch) 수에 따른 딥러닝 분석 속도를 나타낸 것으로, 이러한 방법을 통해 기존 방식과 대비하여 GPU의 사용 효율을 평균적으로 17% 이상 증가(78%->95%)시킬 수 있으며, GPU의 사용 효율성 증가에 따라 동일 시간 동안 분석 가능한 영상 프레임 수를 증가시킴으로써 평균적으로 동일 자원 대비 1.5배 이상의 높은 fps를 확보할 수 있다.
상기 데이터 큐 생성 단계(S200)에서는, 데이터 큐에 포함되는 다수의 배치를 버퍼부(300)에 순차적으로 전달할 수 있다. 예를 들어, 도 4에 도시된 바와 같이 입력 데이터를 배치 1, 배치 2, 배치 3, 배치 4, ... , 배치 n으로 나눈 경우, 나눈 순서대로 버퍼 실행 단계(S300)에 전달할 순번(①, ②, ③, ④, ... , ⓝ)을 설정하고, 설정된 순번에 따라 배치 1, 배치 2, 배치 3, 배치 4, 배치 5, 배치 6 순으로 각 배치의 데이터를 버퍼 실행 단계(S300)에 전달할 수 있다.
상기 버퍼 실행 단계(S300)에서는, 데이터 큐 생성부(200)로부터 배치를 각각 전달 받되, 전달 받은 시간 순서대로 딥러닝 영상 분석기(10)에 전달할 수 있다. 예를 들어, 도 4에 도시된 바와 같이 배치 1(①), 배치 2(②), 배치 3(③), 배치 4(④), ... , 배치 n(ⓝ) 순으로 버퍼 실행 단계(S300)에 입력된 후 딥러닝 영상 분석기(10)로 전달될 수 있으며, 각 배치의 크기는 각각 입력되는 버퍼의 처리 가능한 크기에 맞게 조절된 상태일 수 있다.
상기 중복 배치 검출 단계(S400)에서는, 데이터 큐 생성부(200)에서 생성되는 배치의 크기와 해당 배치에 포함된 데이터를 검사하여 동일한 데이터를 포함하면서 일정한 크기의 중복 배치를 검출할 수 있다. 즉, 데이터 큐를 생성하는 과정에서 각 배치의 크기와 해당 배치에 포함된 데이터를 검사하여 반복되는 크기의 데이터를 갖는 배치를 검출할 수 있다.
상기 중복 배치 설정 단계(S500)는, 중복 배치 검출 단계(S400)를 통해 검출되는 배치의 검출 횟수가 미리 설정된 기준 값 이상인 경우 검출된 해당 배치를 중복 배치로 설정할 수 있다. 예를 들어, 도 5에 도시된 바와 같이 배치 1, 배치 2, 배치 3, 배치 4, ..., 배치 n까지 버퍼에 입력된 후 딥러닝 영상 분석기(10)로 전달되고 있고, 배치 1과 동일한 크기를 가지면서 동일한 데이터를 갖는 배치는 총 4회 검출되고, 배치 2와 동일한 크기를 가지면서 동일한 데이터를 갖는 배치는 총 55회 검출되고, 배치 3과 동일한 크기를 가지면서 동일한 데이터를 갖는 배치는 총 6회 검출되고, 배치 4와 동일한 크기를 가지면서 동일한 데이터를 갖는 배치는 총 7회 검출되고, 배치 n과 동일한 크기를 가지면서 동일한 데이터를 갖는 배치는 총 3회 검출된 경우, 각 배치의 검출 횟수 K 중 기준 값 R을 초과하는 배치 2가 중복 배치로서 검출될 수 있다. 이렇게 검출된 배치 2는 중복 배치로서 설정될 수 있으며, 이러한 중복 배치는 일정 조건을 충족하는 배치이면 다수 개가 각각 설정될 수 있다.
상기 임시 버퍼 실행 단계(S600)에서는, 중복 배치 설정 단계(S500)를 통해 설정된 중복 배치의 크기와 동일한 임시 버퍼를 할당하고, 할당된 임시 버퍼에 중복 배치를 저장할 수 있다. 이러한 임시 버퍼 실행 단계(S600)에서는 버퍼부(500)를 위한 메모리 공간으로부터 임시로 버퍼 메모리를 할당할 수 있다. 이러한 해당 임시 버퍼 메모리부(600)의 크기 또한, 가용 GPU 메모리와 네트워크 모델의 옵션을 바탕으로 자동 계산될 수 있다.
상기 중복 배치 제공 단계(S700)에서는, 데이터 큐 생성부(200)에서 생성되는 배치의 크기와 해당 배치에 포함된 데이터를 모니터링하여 중복 배치와 동일한 데이터를 포함하면서 동일한 크기의 배치가 검출되는 경우, 검출된 해당 배치가 데이터 큐 생성부(200)에서 버퍼부(300)로 전달되는 순번을 각각 획득하고, 임시 버퍼 메모리부(600)에 저장된 중복 배치를 해당 순번에 딥러닝 영상 분석기(10)로 직접 제공할 수 있다.
예를 들어, 임시 버퍼 메모리부(600)에 중복 배치가 설정 저장(중복 배치(또는 버퍼)의 크기, 데이터 내용도 함께 저장됨)된 후, 도 6에 도시된 바와 같이 중복 배치 제공부(700)를 통해 데이터 큐 생성부(200)에서 생성되는 각각의 배치의 크기와 각 배치에 포함된 데이터를 모니터링하여, 중복 배치의 크기와 데이터가 동일한 신규 생성된 배치를 찾고, 해당 신규 생성 배치의 순번 즉 버퍼부(700)에 전달되는 순번 정보를 획득할 수 있다. 이때, 중복 배치 제공부(700)는 임시 버퍼 메모리부(600)에 저장된 배치와 동일한 신규 배치가 데이터 큐 생성부(200)에서 삭제되도록 제어할 수 있다.
이와 같이 중복 배치 제공부(700)가 자신이 저장하고 있는 중복 배치와 동일한 데이터 큐 생성부(200)에서 생성된 신규 배치를 삭제하는 이유는, 데이터 큐 생성부(200)에서 생성된 신규 배치를 버퍼부(300)로 전달하고, 버퍼부(300)에서 다시 딥러닝 영상 분석기(10)로 전달하는 프로세스를 생략하고, 임시 버퍼 메모리부(600)에서 딥러닝 영상 분석기(10)로 해당 중복 배치를 직접 제공하기 위해서이다.
이에, 중복 배치 제공부(700)는 도 7에 도시된 바와 같이 자신이 저장하고 있는 중복 배치와 동일한 크기와 데이터의 배치가 데이터 큐 생성부(200)에서 생성되었음을 확인하면, 생성된 신규 배치의 순번을 획득한 후 해당 순번 시 데이터 큐 생성부(200)에서 버퍼부(300) 그리고 버퍼부(300)에서 딥러닝 영상 분석기(10)로 데이터 패킷이 전달되는 과정 없이, 임시 버퍼 메모리부(600)에서 딥러닝 영상 분석기(10)로 직접 해당 배치(중복 배치)를 전달(입력)할 수 있다. 이에 따라, 빈번히 전달되는 데이터 패킷을 전달하는 과정을 생략하고 임시 버퍼에서 직접 입력함으로써 데이터 처리 속도를 향상시킬 수 있다.
이상에서 설명한 것은 본 발명에 의한 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템 및 그 방법을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 바와 같이 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.
1000: 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템
100: 버퍼 크기 검출부
200: 데이터 큐 생성부
300: 버퍼부
400: 중복 배치 검출부
500: 중복 배치 설정부
600: 임시 버퍼 메모리부
700: 중복 배치 제공부
10: 딥러닝 영상 분석기
S1000: 딥러닝 영상 분석을 위한 영상 데이터 전달 방법
S100: 버퍼 크기 검출 단계
S200: 데이터 큐 생성 단계
S300: 버퍼 실행 단계
S400: 중복 배치 검출 단계
S500: 중복 배치 설정 단계
S600: 임시 버퍼 실행 단계
S700: 중복 배치 제공 단계

Claims (8)

  1. 시간에 따라 변동되는 버퍼의 크기를 검출하는 버퍼 크기 검출부;
    입력되는 순서대로 입력 데이터에 포함된 영상 프레임을 데이터 큐에 나열하고, 해당 영상 프레임의 개수에 맞게 배치(batch)를 생성하여 다수의 배치로 구성된 데이터 큐를 생성하되, 상기 버퍼 크기 검출부를 통해 검출되는 버퍼의 크기에 따라 상기 버퍼가 수용할 수 있는 영상 프레임의 최대 개수에 맞게 상기 배치의 크기를 조절하여 데이터 큐를 생성하는 데이터 큐 생성부;
    상기 데이터 큐 생성부로부터 배치를 각각 전달 받되, 전달 받은 시간 순서대로 딥러닝 영상 분석기에 전달하는 버퍼를 포함하는 버퍼부;
    상기 데이터 큐 생성부에서 생성되는 배치의 크기와 해당 배치에 포함된 데이터를 검사하여 동일한 데이터를 포함하면서 일정한 크기의 중복 배치를 검출하는 중복 배치 검출부;
    상기 중복 배치 검출부를 통해 검출되는 배치의 검출 횟수가 미리 설정된 기준 값 이상인 경우 검출된 해당 배치를 중복 배치로 설정하는 중복 배치 설정부;
    상기 중복 배치 설정부를 통해 설정된 상기 중복 배치의 크기와 동일한 임시 버퍼를 할당하고, 할당된 상기 임시 버퍼에 상기 중복 배치를 저장하는 임시 버퍼 메모리부; 및
    상기 데이터 큐 생성부에서 생성되는 배치의 크기와 해당 배치에 포함된 데이터를 모니터링하여 상기 중복 배치와 동일한 데이터를 포함하면서 동일한 크기의 배치가 검출되는 경우, 검출된 해당 배치가 상기 데이터 큐 생성부에서 상기 버퍼부로 전달되는 순번을 각각 획득하고, 상기 임시 버퍼 메모리부에 저장된 상기 중복 배치를 해당 순번에 딥러닝 영상 분석기로 제공하는 중복 배치 제공부를 포함하는 것을 특징으로 하는 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템.
  2. 제1 항에 있어서,
    상기 데이터 큐 생성부는,
    상기 데이터 큐에 포함된 배치의 크기가 상기 버퍼 크기 검출부를 통해 검출되는 버퍼의 최대 크기를 초과하는 경우 해당 배치의 크기를 버퍼의 최대 크기 이하로 조절하면서 발생된 잔여 영상 프레임에 맞는 별도의 배치를 생성하는 것을 특징으로 하는 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템.
  3. 삭제
  4. 제1 항에 있어서,
    상기 데이터 큐 생성부는,
    상기 데이터 큐에 포함된 상기 다수의 배치를 상기 버퍼부에 순차적으로 전달하는 것을 특징으로 하는 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템.
  5. 버퍼 크기 검출부가, 시간에 따라 변동되는 버퍼의 크기를 검출하는 버퍼 크기 검출 단계;
    데이터 큐 생성부가, 입력되는 순서대로 입력 데이터에 포함된 영상 프레임을 데이터 큐에 나열하고, 해당 영상 프레임의 개수에 맞게 배치(batch)를 생성하여 다수의 배치로 구성된 데이터 큐를 생성하되, 상기 버퍼 크기 검출 단계를 통해 검출되는 버퍼의 크기에 따라 상기 버퍼가 수용할 수 있는 영상 프레임의 최대 개수에 맞게 상기 배치의 크기를 조절하여 데이터 큐를 생성하는 데이터 큐 생성 단계;
    버퍼부가, 상기 데이터 큐 생성부로부터 배치를 각각 전달 받되, 전달 받은 시간 순서대로 딥러닝 영상 분석기에 전달하는 버퍼 실행 단계;
    배치 검출부가, 상기 데이터 큐 생성부에서 생성되는 배치의 크기와 해당 배치에 포함된 데이터를 검사하여 동일한 데이터를 포함하면서 일정한 크기의 중복 배치를 검출하는 중복 배치 검출 단계;
    중복 배치 설정부가, 상기 중복 배치 검출부를 통해 검출되는 배치의 검출 횟수가 미리 설정된 기준 값 이상인 경우 검출된 해당 배치를 중복 배치로 설정하는 중복 배치 설정 단계;
    임시 버퍼 메모리부가, 상기 배치 설정부를 통해 설정된 상기 중복 배치의 크기와 동일한 임시 버퍼를 할당하고, 할당된 상기 임시 버퍼에 상기 중복 배치를 임시 버퍼 실행 단계; 및
    중복 배치 제공부가, 상기 데이터 큐 생성부에서 생성되는 배치의 크기와 해당 배치에 포함된 데이터를 모니터링하여 상기 중복 배치와 동일한 데이터를 포함하면서 동일한 크기의 배치가 검출되는 경우, 검출된 해당 배치가 상기 데이터 큐 생성부에서 상기 버퍼부로 전달되는 순번을 각각 획득하고, 상기 임시 버퍼 메모리부에 저장된 상기 중복 배치를 해당 순번에 딥러닝 영상 분석기로 직접 제공하는 중복 배치 제공 단계를 포함하는 것을 특징으로 하는 딥러닝 영상 분석을 위한 영상 데이터 전달 방법.
  6. 제5 항에 있어서,
    상기 데이터 큐 생성 단계는,
    상기 데이터 큐에 포함된 배치의 크기가 상기 버퍼 크기 검출부를 통해 검출되는 버퍼의 최대 크기를 초과하는 경우 해당 배치의 크기를 버퍼의 최대 크기 이하로 조절하면서 발생된 잔여 영상 프레임에 맞는 별도의 배치를 생성하는 것을 특징으로 하는 딥러닝 영상 분석을 위한 영상 데이터 전달 방법.
  7. 삭제
  8. 제5 항에 있어서,
    상기 데이터 큐 생성 단계에서는,
    상기 데이터 큐에 포함된 상기 다수의 배치를 상기 버퍼부에 순차적으로 전달하는 것을 특징으로 하는 딥러닝 영상 분석을 위한 영상 데이터 전달 방법.
KR1020210128083A 2021-03-05 2021-09-28 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템 및 그 방법 KR102588452B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210029435 2021-03-05
KR20210029435 2021-03-05

Publications (2)

Publication Number Publication Date
KR20220125660A KR20220125660A (ko) 2022-09-14
KR102588452B1 true KR102588452B1 (ko) 2023-10-12

Family

ID=83279233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210128083A KR102588452B1 (ko) 2021-03-05 2021-09-28 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102588452B1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590133B2 (en) * 1998-02-24 2009-09-15 Canon Kabushiki Kaisha Data communication system, data communication method, and data communication apparatus
JP2008109637A (ja) * 2006-09-25 2008-05-08 Toshiba Corp 動画像符号化装置及びその方法
US9727611B2 (en) 2013-11-08 2017-08-08 Samsung Electronics Co., Ltd. Hybrid buffer management scheme for immutable pages
KR20160033505A (ko) 2014-09-18 2016-03-28 한국전자통신연구원 원격 메모리 제공 시스템 및 원격 메모리 제공을 위한 임시페이지 풀 운영 방법
KR20200084449A (ko) * 2018-12-26 2020-07-13 삼성전자주식회사 청소 로봇 및 그의 태스크 수행 방법

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Koichi Shirahata et al.,(2018.04.26.) 1부.*
미국공개특허 제2020-0084449호(2020.03.12.) 1부.*
일본공개특허 제2008-109637호(2008.05.08.) 1부.*
한국공개특허 제10-1999-0072918호(1999.09.27.) 1부.*

Also Published As

Publication number Publication date
KR20220125660A (ko) 2022-09-14

Similar Documents

Publication Publication Date Title
JP7118209B2 (ja) 輻輳制御方法、装置及びシステム並びにコンピュータ記憶媒体
CN110933178B (zh) 调整集群系统内的节点配置的方法及服务器
CN105376317A (zh) 负载均衡的控制方法及装置
CN111147538B (zh) 服务功能链路径选择方法与系统
US20160246538A1 (en) Data transfer method and data transfer program
WO2022139150A1 (ko) 클라우드 기반 동영상 분산 렌더링 시스템 및 이의 오토 스케일링 방법
CN104283643A (zh) 报文限速方法和装置
JP2021077129A (ja) 情報処理システム、モデルの制御方法及び記憶媒体
CN114844918A (zh) 基于物联网传输平台的数据传输处理方法和系统
KR102588452B1 (ko) 딥러닝 영상 분석을 위한 영상 데이터 전달 시스템 및 그 방법
CN108512761B (zh) 文件传输调度方法、管理平台、请求平台以及存储介质
CN113986811A (zh) 一种高性能内核态网络数据包加速方法
CN104184729A (zh) 一种报文处理方法和装置
KR101612312B1 (ko) 데이터 처리속도 증가장치 및 그 방법
CN110808917A (zh) 多链路聚合数据重传方法及发送设备
CN113055493B (zh) 数据包处理方法、装置、系统、调度设备和存储介质
CN112800604B (zh) 应用于工业检测的仿真方法、装置、设备及存储介质
CN112866276B (zh) 一种基于拟态服务功能构架的主次重置判决系统
CN113867946A (zh) 访问资源的方法、装置、存储介质及电子设备
US20170331894A1 (en) Slave device control method
CN113055199B (zh) 网关访问方法、装置及网关设备
CN112311943B (zh) 一种数据扫描优化方法、装置、系统及相关组件
CN113438274A (zh) 数据传输方法、装置、计算机设备及可读存储介质
CN111836020A (zh) 监控系统中的码流传输方法、装置及存储介质
CN109254833B (zh) 图片分析方法、装置及系统、计算机设备

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right