KR20210072504A - 뉴럴 네트워크 시스템 및 이의 동작 방법 - Google Patents
뉴럴 네트워크 시스템 및 이의 동작 방법 Download PDFInfo
- Publication number
- KR20210072504A KR20210072504A KR1020190162881A KR20190162881A KR20210072504A KR 20210072504 A KR20210072504 A KR 20210072504A KR 1020190162881 A KR1020190162881 A KR 1020190162881A KR 20190162881 A KR20190162881 A KR 20190162881A KR 20210072504 A KR20210072504 A KR 20210072504A
- Authority
- KR
- South Korea
- Prior art keywords
- resource
- candidates
- data processing
- candidate
- object candidates
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/255—Detecting or recognising potential candidate objects based on visual cues, e.g. shapes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30248—Vehicle exterior or interior
- G06T2207/30252—Vehicle exterior; Vicinity of vehicle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/10—Recognition assisted with metadata
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Medical Informatics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
Abstract
본 개시의 기술적 사상에 따른 뉴럴 네트워크 시스템은, 제1 이미지를 분석함으로써 제1 이미지에 포함된 복수의 객체 후보들을 검출하고, 제1 이미지를 기초로 복수의 객체 후보들의 메타 데이터를 생성하고, 메타 데이터를 기초로 복수의 객체 후보들의 데이터 처리 순서를 설정하는 프로세서 및 복수의 객체 후보들의 데이터 처리를 수행하는 리소스를 포함하고, 프로세서는, 설정한 순서에 따라, 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 리소스에 순차적으로 제공하고, 리소스는, 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 수신한 순서에 따라, 복수의 객체 후보들의 데이터 처리를 순차적으로 수행할 수 있다.
Description
본 개시의 기술적 사상은 뉴럴 네트워크 시스템 및 이의 동작 방법에 관한 것으로서, 구체적으로 이미지 내 포함된 객체 후보들의 데이터 처리를 객체 단위로 수행하는 뉴럴 네트워크 시스템 및 이의 동작 방법에 관한 것이다.
인공 신경망(artificial neural network; ANN)은 생물학적 뇌를 모델링한 컴퓨터 과학적 아키텍쳐(computational architecture)를 참조한다. 인공 신경망에 기초하여 딥러닝(deep learning) 또는 기계 학습(machine learning) 등이 구현될 수 있다. 최근 인공 신경망을 이용하여 처리해야 할 연산이 비약적으로 증가함에 따라, 인공 신경망을 이용한 연산 처리를 효율적으로 수행하기 위한 필요성이 요구되고 있다.
본 개시의 기술적 사상은 이미지에 포함된 복수의 객체 후보들의 메타 데이터를 기초로 순서를 설정하고, 설정한 순서에 따라 복수의 객체 후보들 각각에 대한 객체 인식 및 객체 인식 결과에 대응하는 태스크를 객체 단위로 수행함으로써, 연속적인 객체 인식 동작들에 의한 병목 현상을 방지할 수 있고, 중요도가 높은 객체 후보에 대한 데이터 처리를 우선적으로 처리할 수 있는 뉴럴 네트워크 시스템 및 이의 동작 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 뉴럴 네트워크 시스템은, 제1 이미지를 분석함으로써 제1 이미지에 포함된 복수의 객체 후보들을 검출하고, 제1 이미지를 기초로 복수의 객체 후보들의 메타 데이터를 생성하고, 메타 데이터를 기초로 복수의 객체 후보들의 데이터 처리 순서를 설정하는 프로세서 및 복수의 객체 후보들의 데이터 처리를 수행하는 리소스를 포함하고, 프로세서는, 설정한 순서에 따라, 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 리소스에 순차적으로 제공하고, 리소스는, 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 수신한 순서에 따라, 복수의 객체 후보들의 데이터 처리를 순차적으로 수행할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 뉴럴 네트워크 시스템의 동작 방법은, 제1 이미지에 포함된 복수의 객체 후보들을 검출하는 단계, 복수의 객체 후보들 중 제1 객체 후보에 대한 제1 객체 인식을 수행하는 단계, 제1 객체 인식 결과에 대응하는 제1 태스크를 수행하는 단계, 제1 태스크가 완료되면, 복수의 객체 후보들 중 제2 객체 후보에 대한 제2 객체 인식을 수행하는 단계 및 제2 객체 인식 결과에 대응하는 제2 태스크를 수행하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 전자 장치는, 연산을 수행하는 리소스, 전자 장치의 주변의 데이터를 획득하고, 획득한 데이터를 이미지 형태로 변환함으로써 제1 이미지를 출력하는 센서, 제1 이미지 내 복수의 객체 후보들을 검출하는 객체 후보 검출기 및 제1 이미지를 기초로 복수의 객체 후보들의 메타 데이터를 생성하고, 메타 데이터를 기초로 복수의 객체 후보들 중 객체 인식을 수행할 객체 후보를 선택하는 태스크 매니저를 포함하는 프로그램 정보를 저장하는 메모리, 프로그램 정보를 기초로 제1 객체 후보를 선택하고, 제1 객체 후보에 대한 정보를 리소스에 제공하는 프로세서를 포함하고, 리소스는, 수신한 제1 객체 후보에 대한 정보를 기초로 제1 객체 후보에 대한 제1 객체 인식을 수행하고, 제1 객체 인식 결과에 대응하는 제1 태스크를 수행할 수 있다.
본 개시의 예시적 실시예에 따른 뉴럴 네트워크 시스템 및 이의 동작 방법에 의하면, 이미지에 포함된 복수의 객체 후보들의 우선 순위에 따라 순서를 설정하고, 설정한 순서에 따라 복수의 객체 후보들 각각에 대한 객체 인식 및 객체 인식 결과에 대응하는 태스크를 객체 단위로 수행할 수 있으므로, 연속적인 객체 인식 동작들에 의한 병목 현상을 방지할 수 있고, 중요도가 높은 객체 후보에 대한 데이터 처리를 우선적으로 처리할 수 있다.
도 1은 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템을 나타내는 블록도이다.
도 2는 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템을 상세하게 나타내는 도면이다.
도 3은 본 개시의 일 실시예에 따른 객체 인식 방법을 나타내는 개념도이다.
도 4는 본 개시의 일 실시예에 따른 객체 후보의 메타 데이터를 나타내는 도면이다.
도 5는 본 개시의 일 실시예에 따른 이미지에 포함된 복수의 객체 후보들을 나타내는 도면이다.
도 6은 본 개시의 일 실시예에 따른 순서 테이블을 생성하는 방법을 나타내는 개념도이다.
도 7은 본 개시의 일 실시예에 따른 순서 테이블을 생성하는 방법을 나타내는 개념도이다.
도 8은 본 개시의 일 실시예에 따른 모델 프로세서 및 리소스의 동작의 일 예를 나타내는 흐름도이다.
도 9는 본 개시의 일 실시예에 따른 모델 프로세서 및 리소스의 동작의 일 예를 나타내는 흐름도이다.
도 10은 본 개시의 일 실시예에 따른 순서 테이블을 생성하는 방법을 나타내는 개념도이다.
도 11은 본 개시의 일 실시예에 따른 모델 프로세서 및 리소스의 동작의 일 예를 나타내는 흐름도이다.
도 12는 본 개시의 일 실시예에 따른 모델 프로세서 및 리소스의 동작의 일 예를 나타내는 흐름도이다.
도 13은 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템을 나타내는 블록도이다
도 14는 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템을 나타내는 블록도이다.
도 15는 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템의 동작 방법을 나타내는 흐름도이다.
도 16은 본 개시의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
도 17은 본 개시의 일 실시예에 따른 자율 주행 장치를 나타내는 블록도이다.
도 2는 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템을 상세하게 나타내는 도면이다.
도 3은 본 개시의 일 실시예에 따른 객체 인식 방법을 나타내는 개념도이다.
도 4는 본 개시의 일 실시예에 따른 객체 후보의 메타 데이터를 나타내는 도면이다.
도 5는 본 개시의 일 실시예에 따른 이미지에 포함된 복수의 객체 후보들을 나타내는 도면이다.
도 6은 본 개시의 일 실시예에 따른 순서 테이블을 생성하는 방법을 나타내는 개념도이다.
도 7은 본 개시의 일 실시예에 따른 순서 테이블을 생성하는 방법을 나타내는 개념도이다.
도 8은 본 개시의 일 실시예에 따른 모델 프로세서 및 리소스의 동작의 일 예를 나타내는 흐름도이다.
도 9는 본 개시의 일 실시예에 따른 모델 프로세서 및 리소스의 동작의 일 예를 나타내는 흐름도이다.
도 10은 본 개시의 일 실시예에 따른 순서 테이블을 생성하는 방법을 나타내는 개념도이다.
도 11은 본 개시의 일 실시예에 따른 모델 프로세서 및 리소스의 동작의 일 예를 나타내는 흐름도이다.
도 12는 본 개시의 일 실시예에 따른 모델 프로세서 및 리소스의 동작의 일 예를 나타내는 흐름도이다.
도 13은 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템을 나타내는 블록도이다
도 14는 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템을 나타내는 블록도이다.
도 15는 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템의 동작 방법을 나타내는 흐름도이다.
도 16은 본 개시의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
도 17은 본 개시의 일 실시예에 따른 자율 주행 장치를 나타내는 블록도이다.
도 1은 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템을 나타내는 블록도이다. 도 1을 참조하면, 뉴럴 네트워크 시스템(10)은 모델 프로세서(100) 및 리소스(200)를 포함할 수 있다. 또한, 모델 프로세서(100)는 객체 후보 검출기(110) 및 태스크 매니저(120)를 포함할 수 있다.
뉴럴 네트워크 시스템(10)은 다양한 뉴럴 네트워크를 기초로 뉴럴 네트워크 기반 뉴럴 태스크들을 수행할 수 있다. 뉴럴 네트워크는 GoogLeNet, AlexNet, ResNet, VGG Network 등과 같은 CNN (Convolution Neural Network), R-CNN (Region with Convolution Neural Network), fast R-CNN, 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, GAN (Generative Adversarial Network), IV3 (Inception V3), Classification Network 등 다양한 종류의 뉴럴 네트워크 모델들을 포함할 수 있으나 이에 제한되지 않는다. 또한, 하나의 태스크를 수행하는 뉴럴 네트워크는 서브 뉴럴 네트워크들을 포함할 수 있으며, 서브 뉴럴 네트워크들은 동종 또는 이종의 뉴럴 네트워크 모델로 구현될 수 있다.
뉴럴 네트워크 시스템(10)은 외부로부터 이미지(IMG)를 수신하고, 수신한 이미지(IMG)에 대한 데이터 처리를 수행할 수 있다. 일 실시예에서, 뉴럴 네트워크 시스템(10)은 뉴럴 네트워크 모델을 이용하여 수신한 이미지(IMG)에 대한 데이터 처리를 수행할 수 있다. 일 실시예에서, 뉴럴 네트워크 시스템(10)은 RPN, R-CNN 또는 fast R-CNN 등의 뉴럴 네트워크 모델을 이용하여, 수신한 이미지(IMG)에 포함된 복수의 객체 후보들을 검출하고, 복수의 객체 후보들에 대한 객체 인식을 수행하고, 인식 결과에 대응하는 태스크를 수행할 수 있다.
모델 프로세서(100)는 객체 후보 검출기(110) 및 태스크 매니저(120)를 포함할 수 있다. 모델 프로세서(100)에 포함된 각각의 구성들은 소프트웨어로 구현될 수 있고, EDEN(Evolutinary Deep Network) 등의 신경망 플랫폼으로 구현될 수 있다. 또 다른 예시에서, 모델 프로세서(100)에 포함되는 구성들은 전자 회로와 같은 하드웨어로 구현될 수 있다. 일 예시에서 모델 프로세서(100)는 뉴럴 네트워크의 프레임 워크(Framework)로 구현될 수 있다.
객체 후보 검출기(110)는 외부로부터 이미지(IMG)를 수신하고, 수신한 이미지(IMG)를 분석함으로써 이미지(IMG)에 포함된 복수의 객체 후보들을 검출할 수 있다. 객체 후보는 이미지(IMG) 내 관심 객체가 존재할 확률이 높은 영역을 의미할 수 있다. 객체 후보는 관심 영역(Region of Interest, RoI)으로 지칭할 수 있다. 일 실시예에서, 객체 후보 검출기(110)는 RPN 등의 뉴럴 네트워크 모델을 이용하여 이미지(IMG)에 포함된 복수의 객체 후보들을 검출할 수 있다. 객체 후보 검출기(110)는 검출한 복수의 객체 후보들을 태스크 매니저(120)에 제공할 수 있다.
본 개시의 기술적 사상에 따른 태스크 매니저(120)는 복수의 객체 후보들을 수신하고, 복수의 객체 후보들에 대한 데이터 처리 순서를 설정할 수 있다. 일 실시예에서, 태스크 매니저(120)는 복수의 객체 후보들의 우선 순위에 따라, 복수의 객체 후보들에 대한 데이터 처리 순서를 설정할 수 있다. 그리고 태스크 매니저(120)는 설정한 순서에 따라 복수의 객체 후보들의 데이터 처리에 사용되는 정보(Info_OC)를 리소스(200)에 제공할 수 있다. 예를 들어, 태스크 매니저(120)는 이미지(IMG)의 복수의 객체 후보들 중 앞선 순서인 제1 객체 후보의 데이터 처리에 사용되는 정보를 리소스(200)에 제공하고, 리소스(200)로부터 제1 객체 후보에 대한 태스크의 수행 완료를 나타내는 응답 신호를 수신하면, 다음 순서인 제2 객체 후보의 데이터 처리에 사용되는 정보를 리소스(200)에 제공할 수 있다.
리소스(200)는 태스크 매니저(120)로부터 수신한 데이터를 기초로 연산을 수행할 수 있는 연산 리소스를 포함할 수 있다. 예를 들어, 리소스(200)는 CPU(Central Processing Unit), Graphic Processing Unit(GPU), AP(Application Processor), DSP(Digital Signal Processor), FPGA(Field-Programmable Gate Array), NPU(Neural network Processing unit), ECU(Electronic Control Unit), ISP(Image Signal Processor) 등 다양한 연산 처리 장치들을 포함할 수 있다. 한편, 리소스(200)는 복수의 연산 리소스들로 구성될 수 있으며, 실시예에 따라 복수의 동종 또는 이종 연산 리소스들로 구성될 수 있다. 예를 들어, 리소스(200)는 NPU인 제1 리소스(미도시)와 제2 리소스(미도시)를 포함하거나, NPU인 제1 리소스(미도시)와 GPU인 제2 리소스(미도시)를 포함할 수 있다.
본 개시의 기술적 사상에 따른 리소스(200)는 태스크 매니저(120)로부터 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 수신한 순서에 따라, 복수의 객체 후보들에 대한 데이터 처리를 수행할 수 있다. 일 실시예에서, 리소스(200)는 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 수신한 순서에 따라, 복수의 객체 후보들에 대한 객체 인식을 수행하고, 객체 인식 결과에 대응하는 태스크를 수행할 수 있다. 한편, 본 개시는 이에 한정되지 않고, 상기 데이터 처리는 객체 인식 외에 별도의 연산을 수행할 수 있고, 하나의 연산으로 구성되거나, 3개 이상의 연산으로 구성될 수 있다.
본 개시의 기술적 사상에 따른 리소스(200)는 복수의 객체 후보들에 대한 데이터 처리를 객체 후보 단위로 수행할 수 있다. 구체적으로, 복수의 객체 후보들이 존재하고, 하나의 객체 후보에 대한 데이터 처리에 필요한 연산 동작이 복수인 경우, 리소스(200)는 하나의 객체 후보에 대한 연산 동작들을 모두 수행한 후, 다음 객체 후보에 대한 연산 동작들을 수행할 수 있다. 예를 들어, 태스크 매니저(120)로부터 제1 객체 후보의 데이터 처리에 사용되는 정보를 먼저 수신하고, 이후에 제2 객체 후보의 데이터 처리에 사용되는 정보를 수신한 경우, 제1 객체 후보에 대한 제1 객체 인식을 수행하고, 제1 객체 인식 결과에 대응하는 제1 태스크를 수행한 후, 제2 객체 후보에 대한 제2 객체 인식을 수행하고, 제2 객체 인식에 대응하는 제2 태스크를 수행할 수 있다.
본 개시의 기술적 사상에 따른 뉴럴 네트워크 시스템(10)은 이미지에 포함된 복수의 객체 후보들의 우선 순위에 따라 순서를 설정하고, 설정한 순서에 따라 복수의 객체 후보들에 대한 객체 인식 및 객체 인식 결과에 대응하는 태스크를 객체 단위로 수행함으로써, 연속적인 객체 인식 동작들에 의한 병목 현상을 방지할 수 있고, 중요도가 높은 객체 후보에 대한 데이터 처리를 우선적으로 처리할 수 있다.
도 2는 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템을 상세하게 나타내는 도면이다. 상세하게는, 도 2는 도 1의 뉴럴 네트워크 시스템(10)을 상세하게 나타내는 도면이다.
도 2를 참조하면, 뉴럴 네트워크 시스템(10)은 모델 프로세서(100) 및 리소스(200)를 포함할 수 있고, 객체 후보 검출기(110)는 피처맵 생성기(111) 및 관심 영역 검출기(112)를 포함할 수 있고, 태스크 매니저(120)는 메타 데이터 생성기(121) 및 태스크 스케줄러(122)를 포함할 수 있다.
피처맵 생성기(111)는 외부로부터 수신한 이미지(IMG)를 이용하여 피처맵(feature map)(FM)을 생성할 수 있다. 일 실시예에서, 피처맵 생성기(111)는 외부로부터 수신한 이미지(IMG)를 이용하여 컨볼루션(convolution) 연산을 수행함으로써, 이미지(IMG)의 특징을 나타내는 피처맵(FM)을 생성할 수 있다. 한편, 본 개시는 이에 한정되지 않으며, 피처맵 생성기(111)는 별도의 연산을 통해 피처맵(FM)을 생성할 수 있다. 피처맵 생성기(111)는 생성한 피처맵(FM)을 관심 영역 검출기(112)에 제공할 수 있다.
관심 영역 검출기(112)는 피처맵 생성기(111)로부터 수신한 피처맵(FM)을 분석함으로써 관심 객체가 존재할 확률이 높은 영역인 관심 영역(즉, 객체 후보)을 검출할 수 있다. 일 실시예에서, 관심 영역 검출기(112)는 RPN 모델을 이용하여 복수의 관심 영역들(즉, 복수의 객체 후보들(OC1~OCn))을 검출할 수 있다. 한편, 본 개시는 이에 한정되지 않으며, 관심 영역 검출기(112)는 별도의 모델을 이용하여 복수의 관심 영역들을 검출할 수 있다. 관심 영역 검출기(112)는 검출한 복수의 객체 후보들(OC1~OCn)을 태스크 매니저(120)에 제공할 수 있다. 또한, 관심 영역 검출기(112)는 실시예에 따라, 입력된 이미지(IMG)를 복수의 객체 후보들(OC1~OCn)과 함께 태스크 매니저(120)에 제공할 수 있다.
태스크 매니저(120)는 객체 후보 검출기(110)로부터 복수의 객체 후보들(OC1~OCn)을 수신하고, 입력된 이미지(IMG)를 기초로 복수의 객체 후보들의 메타 데이터(MD1~MDn)를 생성하고, 생성한 메타 데이터(MD1~MDn)를 기초로 복수의 객체 후보들에 대한 데이터 처리 순서를 설정할 수 있다.
구체적으로, 메타 데이터 생성기(121)는 객체 후보 검출기(110)로부터 복수의 객체 후보들(OC1~OCn)을 수신하고, 이미지(IMG) 및 수신한 복수의 객체 후보들(OC1~OCn)을 이용하여 복수의 객체 후보들(OC1~OCn) 각각에 대응하는 메타 데이터(MD1~MDn)를 생성할 수 있다. 메타 데이터는 복수의 객체 후보들 각각의 사이즈(size), 이미지(IMG) 내 위치, 좌상단(top-left) 좌표, 우하단(bottom-right) 좌표, 기설정된 좌표 또는 영역으로부터의 거리(distance), 깊이(depth) 등에 대한 정보를 포함할 수 있다. 한편, 본 개시는 이에 한정되지 않으며, 메타 데이터의 종류는 상술한 정보들 외에도 추가적인 정보를 포함할 수 있다. 메타 데이터 생성기(121)는 생성한 메타 데이터(MD1~MDn)를 태스크 스케줄러(122)에 제공할 수 있다.
그리고 태스크 스케줄러(122)는 메타 데이터 생성기(121)로부터 복수의 객체 후보들(OC1~OCn)의 메타 데이터(MD1~MDn)를 수신하고, 메타 데이터(MD1~MDn)를 기초로 복수의 객체 후보들에 대한 데이터 처리 순서를 설정할 수 있다. 일 실시예에서, 태스크 스케줄러(122)는 메타 데이터(MD1~MDn)를 이용하여 복수의 객체 후보들의 중요도를 나타내는 스코어(score)를 산출하고, 산출한 스코어를 이용하여 복수의 객체 후보들에 대한 데이터 처리 순서를 설정할 수 있다.
그리고 태스크 스케줄러(122)는 설정한 순서에 따라 복수의 객체 후보들의 데이터 처리에 사용되는 정보(Info_OC1~Info_OCn)를 리소스(200)에 제공할 수 있다. 일 실시예에서, 복수의 객체 후보들의 데이터 처리에 사용되는 정보(Info_OC1~Info_OCn)는 복수의 객체 후보들(OC1~OCn) 및 메타 데이터(MD1~MDn)를 포함할 수 있다. 즉, 태스크 스케줄러(122)는 관심 영역 검출기(112)에서 검출된 관심 영역들과 관심 영역들의 메타 데이터를 리소스(200)에 제공할 수 있다.
리소스(200)는 복수의 객체 후보들의 데이터 처리에 사용되는 정보(Info_OC1~Info_OCn)를 수신한 순서에 따라, 복수의 객체 후보들(OC1~OCn) 각각에 대하여, 객체 인식을 수행하고, 객체 인식 결과에 대응하는 태스크를 수행할 수 있다. 객체 인식 결과에 대응하는 태스크는, 하나 이상의 태스크로 구성될 수 있으며, 뉴럴 네트워크 시스템이 구비되는 장치의 종류 또는 용도, 사용자, 설계자 또는 제조사의 설정 등에 따라 다양하게 설정될 수 있다. 예를 들어, 뉴럴 네트워크 시스템(10)이 자율 주행 차량에 구비되고, 인식된 객체가 '자동차'인 경우, 리소스(200)는 '자동차'에 대응하는 태스크로서, 인식된 '자동차'와 자율 주행 차량 간의 거리를 계산하는 동작, 계산한 거리를 이용하여 자율 주행 차량의 속도를 제어하기 위한 제어 명령을 생성하는 동작 등을 수행할 수 있다.
도 3은 본 개시의 일 실시예에 따른 객체 인식 방법을 나타내는 개념도이다. 상세하게는, 도 3은 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템의 객체 인식 방법을 나타내는 개념도이다.
도 1 내지 도 3을 참조하면, 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템의 모델 프로세서(100)는 입력된 이미지(IMG)를 분석함으로써 복수의 객체 후보들을 검출할 수 있다. 객체 후보를 검출하는 방법은 도 1 및 도 2에서 전술한 방법과 동일할 수 있으므로 중복된 설명은 생략한다. 그리고 모델 프로세서(100)는 검출한 복수의 객체 후보들의 메타 데이터를 생성하고, 생성한 메타 데이터를 기초로 객체 후보들에 대한 데이터 처리 순서를 설정할 수 있다.
그리고 모델 프로세서(100)는 설정한 순서에 따라 복수의 객체 후보들의 데이터 처리에 사용되는 정보(Info_OC1~Info_OCn)를 순차적으로 리소스(200)에 제공할 수 있다. 예를 들어, 도 3을 참조하면, 모델 프로세서(100)는 이미지(IMG)의 복수의 객체 후보들 중 앞선 순서인 제1 객체 후보에 대한 정보(Info_OC1)를 리소스(200)에 제공하고, 리소스(200)로부터 제1 객체 후보에 대한 태스크의 수행 완료를 나타내는 응답 신호(response)를 수신하면, 다음 순서인 제2 객체 후보에 대한 정보(Info_OC2)를 리소스(200)에 제공할 수 있다.
리소스(200)는 모델 프로세서(100)로부터 복수의 객체 후보들의 데이터 처리에 사용되는 정보(Info_OC1~Info_OCn)를 수신하고, 복수의 객체 후보들의 데이터 처리에 사용되는 정보(Info_OC1 ~ Info_OCn)를 수신한 순서에 따라, 복수의 객체 후보들에 대한 데이터 처리를 수행할 수 있다. 예를 들어, 도 3을 참조하면, 리소스(200)는 제1 객체 후보에 대한 정보(Info_OC1)를 수신하면, 제1 객체 후보(OC1)에 대한 제1 객체 인식(OR1)을 수행하고, 제1 객체 인식(OR1) 결과에 대응하는 제1 태스크(T1)를 수행할 수 있다. 그리고 리소스(200)는 제2 객체 후보에 대한 정보(Info_OC2)를 수신하면, 제2 객체 후보(OC2)에 대한 제2 객체 인식(OR2)을 수행하고, 제2 객체 인식(OR2) 결과에 대응하는 제2 태스크(T2)를 수행할 수 있다. 이와 같이 리소스(200)는 나머지 객체 후보들(~OCn)에 대해서도 동일하게 객체 인식(~ORn)을 수행한 후 객체 인식 결과에 대응하는 태스크(~Tn)를 수행할 수 있다.
한편, 종래의 방식에 따른 뉴럴 네트워크 시스템의 모델 프로세서(100)는 입력된 이미지(IMG)를 분석함으로써 복수의 객체 후보들을 검출하고, 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 리소스(200)에 제공할 수 있다. 그리고 리소스(200)는 모델 프로세서(100)로부터 수신한 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 기초로 복수의 객체 후보들에 대한 객체 인식을 모두 수행한 후, 객체 인식 결과에 대응하는 태스크들을 수행할 수 있다. 예를 들어, 도 3을 참조하면, 리소스(200)는 복수의 객체 후보들(OC1~OCn)에 대한 객체 인식들(OR1~ORn)을 모두 수행한 후에야, 객체 인식 결과들에 대응하는 태스크들(T1~Tn)을 수행할 수 있다.
즉, 종래의 방식에 따른 뉴럴 네트워크 시스템은 프레임(frame) 단위로 객체 인식을 수행할 수 있다. 따라서, 뉴럴 네트워크 시스템이 객체 인식 결과에 대응하는 태스크를 시작하기까지 걸리는 시간은 이미지(IMG)에 포함된 객체(또는, 객체 후보)의 개수에 비례하여 증가할 수 있다.
최근에는 이미지에 대한 객체 인식을 활용하는 기술들이 증가하고 있으며, 객체 인식을 수행하고자 하는 이미지의 개수뿐만 아니라, 이미지에서 인식하고자 하는 관심 객체의 종류와 개수도 증가하고 있다. 따라서, 종래의 방식에 따른 뉴럴 네트워크 시스템을 이용하는 경우, 이미지에 대한 객체 인식을 수행하는데 소요되는 시간이 길어짐(즉, 객체 인식에 의한 병목 현상이 발생함)에 따라, 객체 인식의 결과에 대응하는 태스크를 시작하는 시점이 늦어지는 문제점이 발생하였다. 특히, 자율 주행 차량의 주변의 객체들을 인식한 결과를 기초로 차량을 제어하는 자율 주행 기술과 같이, 객체 인식을 이용한 세밀한 제어를 요하는 기술에서, 상기 문제점이 부각되었다.
한편, 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템은 객체(Object) 단위로 객체 인식을 수행할 수 있다. 이에 따라, 뉴럴 네트워크 시스템이 객체 인식 결과에 대응하는 태스크를 시작하기까지 소요되는 시간(도 3을 참조하면, t1)은, 나머지 객체 후보들에 대한 객체 인식(OR2~ORn)을 수행하는데 소요되는 시간을 포함하지 않는다. 따라서, 객체 인식 결과에 대응하는 태스크를 시작하기까지 소요되는 시간(t1)은 종래의 방식에 따른 뉴럴 시스템의 방식에서 소요되는 시간보다 적을 수 있다.
따라서, 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템을 이용하는 경우, 프레임 단위의 객체 인식에 의한 병목 현상을 방지할 수 있고, 객체 인식에 대응하는 태스크를 시작하는 시점을 앞당길 수 있고, 중요도가 높은 객체 후보에 대한 데이터 처리를 우선적으로 수행할 수 있다. 이에 따라, 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템은 객체 인식을 이용한 세분화된(fine-grained) 제어를 수행할 수 있다.
도 4는 본 개시의 일 실시예에 따른 객체 후보의 메타 데이터를 나타내는 도면이다. 상세하게는, 도 4는 도 2의 태스크 매니저(120)가 생성한 객체 후보의 메타 데이터를 나타내는 도면이다.
도 2 및 도 4를 참조하면, 태스크 매니저(120)는 객체 후보 검출기(도 2, 110)로부터 복수의 객체 후보들(OC1~OCn)을 수신하고, 복수의 객체 후보들(OC1~OCn)에 대한 메타 데이터 테이블(MT)을 생성할 수 있다. 메타 데이터 테이블(MT)은 복수의 객체 후보들(OC1~OCn)의 메타 데이터(MD1~MDn)로 구성될 수 있다. 메타 데이터(MD1~MDn)는 복수의 객체 후보들(OC1~OCn)의 명칭(또는 번호, 인덱스)과 벡터 형식으로 기재된 각종 정보들을 포함할 수 있다. 예를 들어, 메타 데이터(MD1~MDn)는 복수의 객체 후보들(OC1~OCn) 각각의 사이즈(size), 이미지(IMG) 내 위치, 좌상단(top-left) 좌표, 우하단(bottom-right) 좌표, 기설정된 좌표 또는 영역으로부터의 거리(distance), 깊이(depth) 등에 대한 정보를 포함할 수 있다. 한편, 본 개시는 이에 한정되지 않으며, 메타 데이터의 종류는 상술한 정보들 외에도 추가적인 정보를 포함할 수 있다. 예를 들어, 도 4에서는 도시되지 않았으나, 메타 데이터(MD1~MDn)는 이전 프레임의 이미지에서 인식된 객체들 중 현재 프레임의 이미지의 객체 후보에 대응하는 객체의 메타 데이터를 추가적으로 포함할 수 있다.
태스크 매니저(120)는 메타 데이터 테이블(MT)을 생성하고, 생성한 메타 데이터 테이블(MT)을 모델 프로세서(100) 내에 포함된 메모리(미도시) 영역에 저장하거나, 태스크 매니저(120)가 접근할 수 있는 외부의 메모리(미도시) 영역에 저장할 수 있다.
이하에서는, 도 5 내지 도 7을 참조하여 모델 프로세서(100)가 생성한 메타 데이터 테이블(MT)을 이용하여 복수의 객체 후보들에 대한 데이터 처리 순서를 설정하는 방법을 설명한다.
도 5는 본 개시의 일 실시예에 따른 이미지에 포함된 복수의 객체 후보들을 나타내는 도면이다. 도 5를 참조하면, 이미지(IMG)는 자율 주행 차량에 부착된 카메라로 촬영한 자율 주행 차량의 전경이다.
도 1, 도 2 및 도 5를 참조하면, 객체 후보 검출기(110)는 이미지(IMG)를 수신하고, 수신한 이미지(IMG)를 분석함으로써 이미지(IMG)에 포함된 복수의 객체 후보들을 검출할 수 있다. 예를 들어, 도 5를 참조하면, 객체 후보 검출기(110)는 RPN 등의 뉴럴 네트워크 모델을 이용하여 이미지(IMG)에 포함된 6개의 객체 후보들(OC1~OC6)을 검출할 수 있다. 객체 후보 검출기(110)는 검출한 객체 후보들(OC1 ~ OC6)을 태스크 매니저(120)에 제공할 수 있다.
도 6은 본 개시의 일 실시예에 따른 순서 테이블을 생성하는 방법을 나타내는 개념도이다. 도 1, 도 2, 도 4 내지 도 6을 참조하면, 태스크 매니저(120)의 메타 데이터 생성기(121)는 객체 후보 검출기(110)로부터 복수의 객체 후보들을 수신하고, 수신한 복수의 객체 후보들에 대한 메타 데이터 테이블(MT)을 생성할 수 있다. 그리고 메타 데이터 생성기(121)는 생성한 메타 데이터 테이블(MT)을 태스크 스케줄러(122)에게 제공할 수 있다.
본 개시의 기술적 사상에 따른 태스크 스케줄러(122)는 메타 데이터 테이블(MT)을 이용하여 복수의 객체 후보들의 스코어 테이블(ST)을 생성할 수 있다. 스코어 테이블(ST)은 복수의 객체 후보들 각각의 명칭(또는 번호, 인덱스)과 복수의 객체 후보들 각각의 중요도를 나타내는 스코어를 포함할 수 있다. 일 실시예에서, 태스크 스케줄러(122)는 다수의 입력들, 다수의 가중치들(weights)을 이용하여 구현되는 함수에 메타 데이터를 구성하는 정보들을 입력함으로써 복수의 객체 후보들의 스코어들을 산출할 수 있다. 예를 들어, 태스크 스케줄러(122)는 아래와 같은 함수를 이용하여 복수의 객체 후보들 각각의 스코어를 계산할 수 있다.
Score = k1 * 1/|거리| +k2 * 사이즈
(k1은 거리에 대한 가중치, k2는 사이즈에 대한 가중치)
한편, 메타 데이터를 이용하여 스코어를 계산하는 함수는 상술한 예에 한하지 않으며, 다양한 형태로 구현될 수 있다. 예를 들어, 도 5를 참조하면, 가장 높은 스코어를 갖는 객체 후보는 기설정된 좌표(가령, 자율 주행 차량의 시점에 대응하는 좌표)와 가까운 거리에 위치하고, 사이즈가 큰 객체 후보(OC6)일 수 있다. 또한, 가장 낮은 스코어를 갖는 객체 후보는 기설정된 좌표와 가장 먼 거리에 위치하고 사이즈가 작은 객체 후보(OC3)일 수 있다.
본 개시의 기술적 사상에 따른 태스크 스케줄러(122)는 생성한 스코어 테이블(ST)을 이용하여 순서 테이블(OT)을 생성할 수 있다. 일 실시예에서, 태스크 스케줄러(122)는 스코어 테이블(ST)에 포함된 복수의 객체 후보들의 스코어들을 내림차순으로 정렬함으로써, 복수의 객체 후보들에 대한 데이터 처리 순서를 나타내는 순서 테이블(OT)을 생성할 수 있다. 예를 들어, 도 6을 참조하면, 태스크 스케줄러(122)는 스코어 테이블(ST)을 이용하여 가장 높은 스코어를 갖는 객체 후보(OC6)부터 가장 낮은 스코어를 갖는 객체 후보(OC3)까지의 순서를 나타내는 순서 테이블(OT)을 생성할 수 있다.
그리고 태스크 스케줄러(122)는 생성한 순서 테이블(OT)을 이용하여 복수의 객체 후보들에 대한 정보를 순차적으로 리소스(200)에 제공할 수 있다. 예를 들어, 도 6을 참조하면, 태스크 스케줄러(122)는 순서 테이블(OT)을 이용하여 가장 앞선 순서인 객체 후보(OC6)를 확인하고, 확인한 객체 후보(OC6)에 대한 정보를 리소스(200)에 제공할 수 있다. 그리고 태스크 스케줄러(122)는 순서 테이블(OT)을 이용하여 다음 순서인 객체 후보(OC1)를 확인하고, 확인한 객체 후보(OC1)에 대한 정보를 리소스(200)에 제공할 수 있다. 그리고 태스크 스케줄러(122)는 나머지 객체 후보들에 대해서도 전술한 동작을 반복할 수 있다.
한편, 변형 가능한 실시예에 따르면, 태스크 스케줄러(122)는 복수의 객체 후보들에 대한 정보와 함께 순서 테이블(OT)을 리소스(200)에 제공할 수 있다. 리소스(200)는 수신한 순서 테이블(OT)을 이용하여 가장 앞선 순서의 객체 후보에 대한 객체 인식을 수행하고, 객체 인식 결과에 대응하는 태스크를 수행할 수 있다. 그리고 리소스(200)는 순서 테이블(OT)을 이용하여 다음 순서의 객체 후보에 대한 객체 인식을 수행하고, 객체 인식 결과에 대응하는 태스크를 수행할 수 있다.
예를 들어, 도 6을 참조하면, 리소스(200)는 순서 테이블(OT)을 이용하여 가장 앞선 순서인 객체 후보(OC6)에 대한 객체 인식을 수행하고, 객체 인식 결과에 대응하는 태스크를 수행할 수 있다. 그리고 리소스(200)는 순서 테이블(OT)을 이용하여 다음 순서인 객체 후보(OC1)에 대한 객체 인식을 수행하고, 객체 인식 결과에 대응하는 태스크를 수행할 수 있다. 그리고 리소스(200)는 나머지 객체 후보들에 대해서도 전술한 동작을 반복할 수 있다.
한편, 도 6을 도시하고 설명함에 있어서, 태스크 스케줄러(122)가 순서 테이블(OT)을 생성하는 것으로 도시하고 설명했지만, 태스크 스케줄러(122)는 복수의 객체 후보들의 데이터 처리 순서를 나타내는 연결 리스트(Linked List), 탐색 트리(Search Tree) 또는 FIFO(First In First Out)를 생성하도록 구현될 수 있다.
도 7은 본 개시의 일 실시예에 따른 순서 테이블을 생성하는 방법을 나타내는 개념도이다. 상세하게는, 도 7은 도 6의 변형 가능한 실시예를 나타내는 개념도이다.
도 1, 도 2, 도 4 내지 도 7을 참조하면, 태스크 스케줄러(122)는 스코어 테이블(ST)을 이용하여 순서 테이블(OT)을 생성할 때, 제1 임계값 미만의 스코어를 갖는 객체 후보를 제외한 나머지 객체 후보들만으로 순서를 설정할 수 있다. 제1 임계값은 객체 인식을 수행할 필요가 있는 것으로 판단되는 스코어의 최저값을 의미할 수 있다.
예를 들어, 도 7의 실시예에서 제1 임계값은 50일 수 있다. 태스크 스케줄러(122)는 스코어 테이블(ST)에서 제1 임계값(50) 미만의 스코어를 갖는 객체 후보(OC3)를 확인하고, 확인한 객체 후보(OC3)를 제외한 나머지 객체 후보들(OC1, OC2, OC4 내지 OC6)의 스코어들을 내림차순으로 정렬함으로써 순서 테이블(OT)을 생성할 수 있다. 그리고 태스크 스케줄러(122)는 생성한 순서 테이블(OT)을 이용하여 복수의 객체 후보들에 대한 정보를 리소스(200)에 제공할 수 있다.
본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템은 객체 인식이 불필요한 것으로 판단되는 객체 후보를 제외하고, 나머지 객체 후보들에 대해서만 객체 인식을 수행함으로써, 연산량을 줄이고 연산 속도를 증가시킬 수 있다.
도 8은 본 개시의 일 실시예에 따른 모델 프로세서 및 리소스의 동작의 일 예를 나타내는 흐름도이다. 상세하게는, 도 1 또는 도 2의 모델 프로세서(100) 및 리소스(200)의 동작의 일 예를 나타내는 흐름도이다.
도 8을 참조하면, 객체 후보 검출기(110)는 입력된 이미지를 분석함으로써 복수의 객체 후보들(OC1~OCn)을 검출할 수 있다(S110). 그리고 객체 후보 검출기(110)는 검출한 복수의 객체 후보들(OC1~OCn)을 태스크 매니저(120)에 제공할 수 있다(S115). 실시예에 따라, 객체 후보 검출기(110)는 입력된 이미지를 복수의 객체 후보들(OC1~OCn)과 함께 태스크 매니저(120)에 제공할 수 있다.
태스크 매니저(120)는 수신한 복수의 객체 후보들(OC1~OCn)의 메타 데이터를 생성할 수 있다(S120). 그리고 태스크 매니저(120)는 생성한 메타 데이터를 이용하여 복수의 객체 후보들(OC1~OCn)에 대한 데이터 처리 순서를 설정할 수 있다(S125). 일 실시예에서, 태스크 매니저(120)는 도 6에서 전술한 바와 같이, 메타 데이터를 이용하여 복수의 객체 후보들(OC1~OCn) 각각의 중요도를 나타내는 스코어를 산출하고, 산출한 스코어를 이용하여 순서 테이블(OT)을 생성할 수 있다.
일 실시예에서, 태스크 매니저(120)는 도 7에서 전술한 바와 같이, 산출한 스코어 중 제1 임계값 미만인 스코어를 갖는 객체 후보를 제외한 나머지 객체 후보들만을 이용하여 순서 테이블(OT)을 생성할 수 있다. 그리고 태스크 매니저(120)는 설정한 순서에 따라, 제1 객체 후보의 데이터 처리에 사용되는 정보(Info_OC1)를 리소스(200)에 제공할 수 있다(S130). 일 실시예에서, 태스크 매니저(120)는 생성한 순서 테이블(OT)에서 설정된 순서를 확인하고, 확인한 순서에 따라 제1 객체 후보의 데이터 처리에 사용되는 정보(Info_OC1)를 리소스(200)에 제공할 수 있다. 실시예에 따라, 태스크 매니저(120)는 입력된 이미지를 제1 객체 후보의 데이터 처리에 사용되는 정보(Info_OC1)와 함께 리소스(200)에 제공할 수 있다.
리소스(200)는 수신한 제1 객체 후보의 데이터 처리에 사용되는 정보(Info_OC1)를 이용하여 제1 객체 인식을 수행할 수 있다(S135). 그리고 리소스(200)는 제1 객체 인식에 대응하는 제1 태스크를 수행할 수 있다(S140). 그리고 리소스(200)는 제1 태스크를 완료함을 나타내는 응답 신호를 태스크 매니저(120)에 전송할 수 있다(S145).
태스크 매니저(120)는 리소스(200)로부터 응답 신호를 수신하면, 설정한 순서에 따라, 제1 객체 후보의 다음 순서로 제2 객체 후보를 확인하고, 제2 객체 후보의 데이터 처리에 사용되는 정보(Info_OC2)를 리소스(200)에 제공할 수 있다(S150).
리소스(200)는 수신한 제2 객체 후보의 데이터 처리에 사용되는 정보(Info_OC2)를 이용하여 제2 객체 인식을 수행할 수 있다(S155). 그리고 리소스(200)는 제2 객체 인식에 대응하는 제2 태스크를 수행할 수 있다(S160). 그리고 리소스(200)는 제2 태스크를 완료함을 나타내는 응답 신호를 태스크 매니저(120)에 전송할 수 있다(S165).
태스크 매니저(120)와 리소스(200)는 전술한 객체 후보의 데이터 처리에 사용되는 정보를 제공하는 동작, 객체 인식을 수행하는 동작, 객체 인식 결과에 대응하는 태스크를 수행하는 동작 및 태스크 완료를 나타내는 응답 신호를 전송하는 동작을 나머지 객체 후보들에 대해서도 반복적으로 수행할 수 있다(S170 내지 S185).
도 9는 본 개시의 일 실시예에 따른 모델 프로세서 및 리소스의 동작의 일 예를 나타내는 흐름도이다. 상세하게는, 도 9는 도 8의 변형 가능한 실시예에 대한 도면이다. 도 9의 S210 내지 S220의 단계는, 도 8의 S110 내지 S120 단계와 실질적으로 동일할 수 있으므로, 중복된 설명은 생략한다.
태스크 매니저(120)는 메타 데이터를 이용하여 복수의 객체 후보들(OC1~OCn)에 대한 데이터 처리 순서를 나타내는 순서 테이블(OT)을 생성할 수 있다(S225). 일 실시예에서, 태스크 매니저(120)는 도 6에서 전술한 바와 같이, 메타 데이터를 이용하여 복수의 객체 후보들(OC1~OCn) 각각의 중요도를 나타내는 스코어를 산출하고, 산출한 스코어를 이용하여 순서 테이블(OT)을 생성할 수 있다. 일 실시예에서, 태스크 매니저(120)는 도 7에서 전술한 바와 같이, 산출한 스코어 중 제1 임계값 미만인 스코어를 갖는 객체 후보를 제외한 나머지 객체 후보들만을 이용하여 순서 테이블(OT)을 생성할 수 있다. 그리고 태스크 매니저(120)는 생성한 순서 테이블(OT)과 복수의 객체 후보들의 데이터 처리에 사용되는 정보(Info_OC1~ Info_OCn)를 리소스(200)에 제공할 수 있다(S230).
리소스(200)는 수신한 순서 테이블(OT)을 이용하여 순서를 확인하고, 확인한 수서에 따라 객체 후보별로 객체 인식과 객체 인식 결과에 대응하는 태스크를 수행할 수 있다. 즉, 리소스(200)는 가장 앞선 순서인 제1 객체 후보에 대한 객체 인식을 수행하고(S235), 제1 객체 후보에 대한 객체 인식 결과에 대응하는 태스크를 수행할 수 있다(S240). 그리고 리소스(200)는 다음 순서인 제2 객체 후보에 대한 객체 인식을 수행하고(S245), 제2 객체 후보에 대한 객체 인식 결과에 대응하는 태스크를 수행할 수 있다(S250). 리소스(200)는 전술한 객체 인식 동작 및 객체 인식 결과에 대응하는 태스크를 수행하는 동작을 나머지 객체 후보들에 대해서도 반복적으로 수행할 수 있다(S255 및 S260). 그리고 리소스(200)는 복수의 객체 후보들(OC1~OCn)에 대응하는 태스크들을 완료함을 나타내는 응답 신호를 태스크 매니저(120)에 전송할 수 있다(S265).
한편, 도 9를 도시하고 설명함에 있어서, 태스크 매니저(120)가 객체 후보의 데이터 처리에 사용되는 정보를 리소스에 전송할 때, 하나의 객체 후보에 대한 정보만을 리소스에 전송하는 것으로 도시하고 설명하였지만, 태스크 매니저(120)는 둘 이상의 기설정된 개수의 객체 후보들의 데이터 처리에 사용되는 정보를 리소스(200)에 전송하고, 리소스(200)는 수신한 정보를 이용하여 객체 후보들에 대한 객체 인식 동작들을 수행하고, 객체 인식 결과들에 대응하는 태스크들을 수행하는 방식으로도 구현될 수 있다.
도 10은 본 개시의 일 실시예에 따른 순서 테이블을 생성하는 방법을 나타내는 개념도이다. 상세하게는, 도 10은 도 6의 변형 가능한 실시예를 나타내는 개념도이다.
도 10을 참조하면, 본 개시의 기술적 사상에 따른 태스크 스케줄러(122)는 메타 데이터 테이블(MT)을 이용하여 복수의 객체 후보들의 스코어 테이블(ST)을 생성하고, 스코어 테이블(ST)을 이용하여 제2 임계값을 초과하는 스코어를 갖는 객체 후보를 확인할 수 있다. 제2 임계값은 객체 인식을 수행할 필요성이 매우 높은 것으로 판단되는 스코어를 의미할 수 있다. 제2 임계값을 초과하는 스코어를 갖는 객체 후보는 관심 객체에 해당할 가능성이 높으며, 뉴럴 네트워크 시스템이 적용된 장치의 제어에 중요한 기준이 될 수 있다.
만약 제2 임계값을 초과하는 스코어를 갖는 객체 후보가 존재하지 않음을 확인한 경우, 태스크 스케줄러(122)는 도 6에서 전술한 바와 같이 스코어들을 내림차순으로 정렬함으로써, 순서 테이블(OT)을 생성할 수 있다.
반면, 제2 임계값을 초과하는 스코어를 갖는 객체 후보가 존재함을 확인한 경우, 태스크 스케줄러(122)는 확인한 객체 후보의 데이터 처리에 사용되는 정보를 즉시 리소스(200)에 제공할 수 있다. 그리고 리소스(200)는 수신한 객체 후보의 데이터 처리에 사용되는 정보를 이용하여, 상기 확인한 객체 후보에 대한 객체 인식과 객체 인식 결과에 대응하는 태스크를 수행할 수 있다.
예를 들어, 도 10의 실시예에서 제2 임계값은 90일 수 있다. 태스크 스케줄러(122)는 스코어 테이블(ST)에서 제2 임계값(90)을 초과하는 스코어를 갖는 객체 후보(OC6)를 확인하고, 확인한 객체 후보(OC6)의 데이터 처리에 사용되는 정보(Info_OC6)를 즉시 리소스(200)에 제공할 수 있다. 그리고 리소스(200)는 수신한 정보(Info_OC6)를 이용하여 객체 후보(OC6)에 대한 객체 인식과 객체 인식 결과에 대응하는 태스크를 수행할 수 있다.
태스크 스케줄러(122)는 제2 임계값을 초과하는 스코어를 갖는 객체 후보에 대한 정보를 리소스(200)에 제공한 후, 나머지 객체 후보들에 대한 스코어들을 이용하여 순서 테이블(OT)을 생성할 수 있다. 예를 들어, 도 10을 참조하면, 태스크 스케줄러(122)는 나머지 객체 후보들(OC1 내지 OC5)에 대한 스코어들을 이용하여 순서 테이블(OT)을 생성할 수 있다.
그리고 태스크 스케줄러(122)는 생성한 순서 테이블(OT)을 이용하여 나머지 객체 후보들(OC1 내지 OC5)의 데이터 처리에 사용되는 정보(Info_OC1 내지 Info_OC6)를 순차적으로 리소스(200)에 제공할 수 있다. 그리고 리소스(200)는 정보(Info_OC1 내지 Info_OC6)를 수신한 순서에 따라 나머지 객체 후보들(OC1 내지 OC5)에 대한 객체 인식과 객체 인식 결과에 대응하는 태스크를 수행할 수 있다.
한편, 변형 가능한 실시예에 따르면, 태스크 스케줄러(122)는 나머지 객체 후보들(OC1 내지 OC5)의 데이터 처리에 사용되는 정보(Info_OC1 내지 Info_OC6)와 함께 순서 테이블(OT)을 리소스(200)에 제공할 수 있다. 리소스(200)는 수신한 순서 테이블(OT)을 이용하여 나머지 객체 후보들(OC1 내지 OC5)에 대한 객체 인식과 객체 인식 결과에 대응하는 태스크를 수행할 수 있다.
본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템은 객체 인식을 수행할 필요성이 매우 높은 것으로 판단되는 객체 후보가 확인되면 즉시 확인된 객체 후보에 대한 객체 인식과 객체 인식 결과에 대응하는 태스크를 수행함으로써, 본 뉴럴 네트워크 시스템이 적용된 장치에 대한 세분화된(fine-grained) 제어를 수행할 수 있다.
도 11은 본 개시의 일 실시예에 따른 모델 프로세서 및 리소스의 동작의 일 예를 나타내는 흐름도이다. 상세하게는, 도 11은 도 8의 변형 가능한 실시예에 대한 도면이다. 도 11의 S310 내지 S320의 단계는, 도 8의 S110 내지 S120 단계와 실질적으로 동일할 수 있으므로, 중복된 설명은 생략한다.
태스크 매니저(120)는 메타 데이터를 이용하여 복수의 객체 후보들(OC1~OCn) 각각의 중요도를 나타내는 스코어들을 산출할 수 있다(S325). 그리고 태스크 매니저(120)는 도 10에서 전술한 바와 같이, 산출한 스코어들 중에서 제2 임계값을 초과하는 스코어를 갖는 객체 후보를 확인할 수 있다. 만약 제2 임계값을 초과하는 스코어를 갖는 제1 객체 후보를 확인하면, 제1 객체 후보의 데이터 처리에 사용되는 정보(Info_OC1)를 리소스(200)에 제공할 수 있다(S330).
그리고 리소스(200)는 수신한 제1 객체 후보의 데이터 처리에 사용되는 정보(Info_OC1)를 이용하여 제1 객체 인식을 수행할 수 있다(S335). 그리고 리소스(200)는 제1 객체 인식에 대응하는 제1 태스크를 수행할 수 있다(S340). 그리고 리소스(200)는 제1 태스크를 완료함을 나타내는 응답 신호를 태스크 매니저(120)에 전송할 수 있다(S350).
태스크 매니저(120)는 제1 객체 후보의 데이터 처리에 사용되는 정보(Info_OC1)를 리소스(200)에 제공한 후, 나머지 객체 후보들의 스코어들을 이용하여 나머지 객체 후보들에 대한 데이터 처리 순서를 설정할 수 있다(S345). 그리고 태스크 매니저(120)는 리소스(200)로부터 응답 신호를 수신하면, 생성한 순서 테이블(OT)과 나머지 객체 후보들의 데이터 처리에 사용되는 정보(Info_OC2~Info_OCn)를 리소스(200)에 제공할 수 있다(S350).
리소스(200)는 수신한 순서 테이블(OT)을 이용하여 순서를 확인하고, 확인한 순서에 따라 객체 후보별로 객체 인식과 객체 인식 결과에 대응하는 태스크를 수행할 수 있다(S360 내지 S375). 그리고 리소스(200)는 태스크들을 완료함을 나타내는 응답 신호를 태스크 매니저(120)에 전송할 수 있다(S380).
한편, 변형 가능한 실시예에서, 태스크 매니저(120)는 설정한 순서에 따라 나머지 객체 후보들의 데이터 처리에 사용되는 정보(Info_OC2~Info_OCn)를 순차적으로 리소스(200)에 제공할 수 있다. 그리고 리소스(200)는 나머지 객체 후보들의 데이터 처리에 사용되는 정보(Info_OC2~Info_OCn)를 수신한 순서에 따라, 객체 인식 및 객체 인식 결과에 대응하는 태스크를 수행할 수 있다.
도 12는 본 개시의 일 실시예에 따른 모델 프로세서 및 리소스의 동작의 일 예를 나타내는 흐름도이다. 상세하게는, 도 12는 도 8의 변형 가능한 실시예에 대한 도면이다.
객체 후보 검출기(110)는 입력된 이미지를 분석함으로써 객체 후보들을 검출할 수 있다. 본 개시의 일 실시예에 따른 객체 후보 검출기(110)는 입력된 이미지를 분석하여 각 객체 후보를 검출할 때마다 태스크 매니저(120)에 객체 후보를 전송하도록 구현될 수 있다. 이에 대한 구체적인 동작을 이하에서 설명한다.
도 12를 참조하면, 객체 후보 검출기(110)는 입력된 이미지를 분석하여 제1 객체 후보(OC1)를 검출할 수 있다(S410). 그리고 객체 후보 검출기(110)는 검출한 제1 객체 후보(OC1)를 태스크 매니저(120)에 전송할 수 있다(S415).
그리고 태스크 매니저(120)는 수신한 제1 객체 후보(OC1)에 대한 메타 데이터를 생성할 수 있다(S420). 그리고 태스크 매니저(120)는 생성한 메타 데이터를 기초로 제1 객체 후보(OC1)의 중요도를 나타내는 스코어를 산출할 수 있다(S425). 그리고 태스크 매니저(120)는 산출한 스코어가 제1 임계값을 초과하는지 확인할 수 있다. 제1 임계값은 객체 인식을 수행할 필요가 있는 것으로 판단되는 스코어의 최저값을 의미할 수 있다. 만약 제1 객체 후보(OC1)의 스코어가 제1 임계값을 초과하면, 태스크 매니저(120)는 제1 객체 후보(OC1)의 데이터 처리에 사용되는 정보(Info_OC1)를 리소스(200)에 전송할 수 있다(S430).
리소스(200)는 수신한 제1 객체 후보(OC1)의 데이터 처리에 사용되는 정보를 기초로 제1 객체 인식을 수행할 수 있다(S435). 그리고 리소스(200)는 제1 객체 인식 결과에 대응하는 제1 태스크를 수행할 수 있다(S440).
객체 후보 검출기(110)는 제1 객체 후보(OC1)를 태스크 매니저(120)에 전송한 후, 연속적으로 이미지를 분석함으로써, 다음 객체 후보인 제2 객체 후보(OC2)를 검출할 수 있다(S445). 그리고 객체 후보 검출기(110)는 검출한 제2 객체 후보(OC2)를 태스크 매니저(120)에 전송할 수 있다(S450).
그리고 태스크 매니저(120)는 수신한 제2 객체 후보(OC2)에 대한 메타 데이터를 생성할 수 있다(S455). 그리고 태스크 매니저(120)는 생성한 메타 데이터를 기초로 제2 객체 후보(OC2)의 중요도를 나타내는 스코어를 산출할 수 있다(S460). 그리고 태스크 매니저(120)는 산출한 스코어가 제2 임계값을 초과하는지 확인할 수 있다. 만약 제2 객체 후보(OC2)의 스코어가 제1 임계값을 초과하면, 태스크 매니저(120)는 제2 객체 후보(OC2)의 데이터 처리에 사용되는 정보(Info_OC2)를 리소스(200)에 전송할 수 있다(S465).
리소스(200)는 수신한 제2 객체 후보(OC2)의 데이터 처리에 사용되는 정보를 기초로 제2 객체 인식을 수행할 수 있다(S470). 그리고 리소스(200)는 제2 객체 인식 결과에 대응하는 제2 태스크를 수행할 수 있다(S475).
객체 후보 검출기(110), 태스크 매니저(120) 및 리소스(200)는 나머지 객체 후보들에 대해서도 전술한 일련의 동작들을 반복적으로 수행할 수 있다(S480 내지 S510).
본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템은 객체 후보 검출기(110), 태스크 매니저(120) 및 리소스(200)가 병렬적으로 연산을 수행하므로, 입력된 이미지에 대한 데이터 처리 속도가 증가할 수 있다.
도 13은 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템을 나타내는 블록도이다. 상세하게는, 도 13은 도 1의 뉴럴 네트워크 시스템(10)의 변형 가능한 실시예를 나타내는 블록도이다.
도 13을 참조하면, 뉴럴 네트워크 시스템(20)은 모델 프로세서(300) 및 리소스(400)를 포함할 수 있고, 모델 프로세서(300)는 객체 후보 검출기(310) 및 태스크 매니저(320)를 포함할 수 있고, 리소스(400)는 제1 태스크 모듈(410) 및 제2 태스크 모듈(420)을 포함할 수 있다. 제1 태스크 모듈(410) 및 제2 태스크 모듈(420)은 각각 객체 인식을 수행하고, 객체 인식 결과에 대응하는 태스크를 수행할 수 있다. 예를 들어, 제1 태스크 모듈(410) 및 제2 태스크 모듈(420)은 각각 GoogLeNet, AlexNet, ResNet, VGG Network 등과 같은 CNN, R-CNN, fast R-CNN, RPN, RNN, S-DNN, S-SDNN, Deconvolution Network, DBN, RBM, Fully Convolutional Network, LSTM Network, GAN, IV3, Classification Network 등 다양한 종류의 뉴럴 네트워크 모델을 이용할 수 있다.
모델 프로세서(300)가 입력된 이미지(IMG)를 분석함으로써 복수의 객체 후보들을 검출하고, 복수의 객체 후보들의 메타 데이터를 생성하고, 메타 데이터를 기초로 복수의 객체 후보들에 대한 데이터 처리 순서를 설정하는 일련의 동작들은 전술한 실시예와 동일 또는 유사할 수 있으므로, 중복된 설명은 생략한다.
본 개시의 일 실시예에 따른 모델 프로세서(300)의 태스크 매니저(320)는, 메타 데이터를 이용하여 복수의 객체 후보들을 제1 태스크 모듈(410) 또는 제2 태스크 모듈(420)에 할당할 수 있다.
일 실시예에서, 태스크 매니저(320)는 복수의 객체 후보들 각각에 대한 데이터 처리에 대하여, 메타 데이터를 이용하여 제1 태스크 모듈(410) 및 제2 태스크 모듈(420) 중 보다 적합한 모듈(예를 들어, 데이터 처리 시 연산량을 감소시킬 수 있거나, 연산 속도를 증가시킬 수 있거나, 전력 소비를 줄일 수 있는 모듈)을 판단할 수 있다. 그리고 태스크 매니저(320)는 판단 결과를 기초로 복수의 객체 후보들과 제1 태스크 모듈(410) 및 제2 태스크 모듈(420)을 매칭할 수 있다.
예를 들어, 태스크 매니저(320)는 사이즈가 작은 제1 객체 후보를 IV3 모델을 이용하는 제1 태스크 모듈(410)에 할당하고, 사이즈가 큰 제2 객체 후보를 Resnet 모델을 이용하는 제2 태스크 모듈(420)에 할당할 수 있다. 한편, 본 개시는 상술한 예에 한하지 않으며, 다양한 방식에 따라 복수의 객체 후보들을 제1 태스크 모듈(410) 및 제2 태스크 모듈(420)에 할당할 수 있다.
그리고 모델 프로세서(300)는 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 설정된 순서에 따라 할당된 모듈에 전송할 수 있다. 예를 들어, 도 13을 참조하면, 제1 객체 후보(OC1)가 제1 태스크 모듈(410)에 할당되고, 제2 객체 후보(OC2)가 제2 태스크 모듈(420)에 할당된 경우, 모델 프로세서(300)는 제1 객체 후보의 데이터 처리에 사용되는 정보(Info_OC1)를 제1 태스크 모듈(410)에 전송하고, 제2 객체 후보의 데이터 처리에 사용되는 정보(Info_OC2)를 제2 태스크 모듈(420)에 전송할 수 있다.
그리고 제1 태스크 모듈(410) 및 제2 태스크 모듈(420) 각각은 수신한 정보를 이용하여 객체 인식 및 객체 인식의 결과에 대응하는 태스크를 수행할 수 있다.
한편, 도 13에서, 리소스(400)가 제1 태스크 모듈(410) 및 제2 태스크 모듈(420)만을 포함하는 것으로 도시하고 설명했지만, 리소스(400)는 3개 이상의 태스크 모듈을 구비하도록 구현될 수 있다.
이와 같이, 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템은, 메타 데이터를 기초로 복수의 객체 후보들과 복수의 태스크 모듈들을 매칭함으로써, 효율적인 연산 처리를 수행할 수 있다.
도 14는 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템을 나타내는 블록도이다. 상세하게는, 도 14는 도 1의 뉴럴 네트워크 시스템(10)의 변형 가능한 실시예를 나타내는 블록도이다.
도 14를 참조하면, 뉴럴 네트워크 시스템(30)은 모델 프로세서(500), 제1 리소스(600_1) 및 제2 리소스(600_2)를 포함할 수 있고, 모델 프로세서(500)는 객체 후보 검출기(510) 및 태스크 매니저(520)를 포함할 수 있다. 제1 리소스(600_1) 및 제2 리소스(600_2)는 각각 객체 인식을 수행하고, 객체 인식 결과에 대응하는 태스크를 수행할 수 있는 연산 리소스를 포함할 수 있다. 예를 들어, 제1 리소스(600_1) 및 제2 리소스(600_2)는 각각 CPU, GPU, AP, DSP, FPGA, NPU, ECU, ISP 등 다양한 연산 처리 장치들을 포함할 수 있다.
모델 프로세서(500)가 입력된 이미지(IMG)를 분석함으로써 복수의 객체 후보들을 검출하고, 복수의 객체 후보들의 메타 데이터를 생성하고, 메타 데이터를 기초로 복수의 객체 후보들에 대한 데이터 처리 순서를 설정하는 일련의 동작들은 전술한 실시예와 동일 또는 유사할 수 있으므로, 중복된 설명은 생략한다.
본 개시의 일 실시예에 따른 모델 프로세서(500)의 태스크 매니저(520)는, 메타 데이터를 이용하여 복수의 객체 후보들을 제1 리소스(600_1) 또는 제2 리소스(600_2)에 할당할 수 있다.
일 실시예에서, 태스크 매니저(520)는 복수의 객체 후보들 각각에 대한 데이터 처리에 대하여, 메타 데이터를 이용하여 제1 리소스(600_1) 및 제2 리소스(600_2) 중 보다 적합한 리소스(예를 들어, 태스크 수행 시 연산량을 감소시킬 수 있거나, 연산 속도를 증가시킬 수 있거나, 전력 소비를 줄일 수 있는 리소스)를 판단할 수 있다. 그리고 태스크 매니저(520)는 판단 결과를 기초로 복수의 객체 후보들과 제1 리소스(600_1) 및 제2 리소스(600_2)를 매칭할 수 있다.
예를 들어, 태스크 매니저(520)는 32배수의 NxN의 크기를 갖는 제1 객체 후보는 NPU인 제1 리소스(600_1)에 할당하고, 그 외의 크기를 갖는 객체 후보들은 CPU 또는 GPU인 제2 리소스(600_2)에 할당할 수 있다. 한편, 본 개시는 상술한 예에 한하지 않으며, 다양한 방식에 따라 복수의 객체 후보들을 제1 리소스(600_1) 및 제2 리소스(600_2)에 할당할 수 있다.
변형 가능한 실시예에 따르면, 태스크 매니저(520)는 제1 리소스(600_1) 및 제2 리소스(600_2) 각각의 동작 상태를 추가적으로 고려하여, 복수의 객체 후보들을 제1 리소스(600_1) 및 제2 리소스(600_2)에 할당할 수 있다. 동작 상태에 대한 정보는, 리소스의 데이터 처리 진행 여부, 데이터 처리 대상에 대한 정보, 진행 중인 데이터 처리에 대한 정보 등 다양한 정보를 포함할 수 있다.
일 실시예에서, 태스크 매니저(520)는 제1 리소스(600_1) 및 제2 리소스(600_2)로부터 동작 상태에 대한 정보를 수신하고, 동작 상태에 대한 정보와 복수의 객체 후보들의 메타 데이터를 고려하여, 복수의 객체 후보들을 제1 리소스(600_1) 및 제2 리소스(600_2)에 할당할 수 있다. 예를 들어, 태스크 매니저(520)는 동작 상태에 대한 정보를 기초로, 제1 리소스(600_1)가 대기 상태에 있고, 제2 리소스(600_2)가 데이터 처리를 진행 중인 것을 확인하면, 앞선 순서의 객체 후보를 제1 리소스(600_1)에 할당할 수 있다. 한편, 본 개시의 기술적 사상에 따른 뉴럴 네트워크 시스템의 동작 상태에 대한 정보를 기초로 복수의 객체 후보들을 복수의 리소스들에 할당하는 방법은 상술한 예에 한하지 않는다.
그리고 모델 프로세서(500)는 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 설정된 순서에 따라 할당된 리소스에 전송할 수 있다. 예를 들어, 도 14를 참조하면, 제1 객체 후보(OC1)가 제1 리소스(600_1)에 할당되고, 제2 객체 후보(OC2)가 제2 리소스(600_2)에 할당된 경우, 모델 프로세서(500)는 제1 객체 후보의 데이터 처리에 사용되는 정보(Info_OC1)를 제1 리소스(600_1)에 전송하고, 제2 객체 후보의 데이터 처리에 사용되는 정보(Info_OC2)를 제2 리소스(600_2)에 전송할 수 있다.
그리고 제1 리소스(600_1) 및 제2 리소스(600_2) 각각은 수신한 정보를 이용하여 객체 인식 및 객체 인식의 결과에 대응하는 태스크를 수행할 수 있다.
한편, 도 14에서, 뉴럴 네트워크 시스템(30)이 제1 리소스(600_1) 및 제2 리소스(600_2)만을 포함하는 것으로 도시하고 설명했지만, 3개 이상의 리소스들을 구비하도록 구현될 수 있다.
이와 같이, 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템은, 메타 데이터를 기초로, 또는, 메타 데이터와 복수의 리소스들의 동작 상태를 기초로, 복수의 객체 후보들과 복수의 리소스들을 매칭할 수 있다. 이에 따라, 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템은 연산량을 줄이고, 연산 속도를 증가시키고, 전력 소비를 줄임으로써 효율적인 연산 처리를 수행할 수 있다.
도 15는 본 개시의 일 실시예에 따른 뉴럴 네트워크 시스템의 동작 방법을 나타내는 흐름도이다. 상세하게는, 본 실시예에 따른 뉴럴 네트워크 시스템의 동작 방법은 도 1, 도 2, 도 13 및 도 14의 뉴럴 네트워크 시스템(10, 20, 30)에서 시계열적으로 수행되는 단계들을 포함할 수 있다.
도 15를 참조하면, 뉴럴 네트워크 시스템은 제1 이미지에 포함된 복수의 객체 후보들을 검출할 수 있다(S610). 객체 후보는 제1 이미지 내 관심 객체가 존재할 확률이 높은 영역을 의미할 수 있다. 객체 후보는 관심 영역(Region of Interest, RoI)으로 지칭할 수 있다. 일 실시예에서, 뉴럴 네트워크 시스템은 RPN과 같은 뉴럴 네트워크 모델을 이용하여 제1 이미지에 포함된 복수의 객체 후보들을 검출할 수 있다.
뉴럴 네트워크 시스템은 복수의 객체 후보들 중 제1 객체 후보에 대한 제1 객체 인식을 수행할 수 있다(S620). 일 실시예에서, 뉴럴 네트워크 시스템은 메타 데이터를 이용하여 복수의 객체 후보들에 대한 데이터 처리 순서를 설정하고, 설정한 순서를 기초로 선택한 제1 객체 후보에 대해 제1 객체 인식을 수행할 수 있다.
구체적으로, 먼저 뉴럴 네트워크 시스템은, 제1 이미지를 기초로 복수의 객체 후보들의 메타 데이터를 생성할 수 있다. 메타 데이터는 복수의 객체 후보들 각각의 사이즈(size), 이미지 내 위치, 좌상단(top-left) 좌표, 우하단(bottom-right) 좌표, 기설정된 좌표 또는 영역으로부터의 거리(distance), 깊이(depth) 등에 대한 정보를 포함할 수 있다. 한편, 본 개시는 이에 한정되지 않으며, 메타 데이터의 종류는 상술한 정보들 외에도 추가적인 정보를 포함할 수 있다.
그리고 뉴럴 네트워크 시스템은 생성한 메타 데이터를 기초로 복수의 객체 후보들 각각의 중요도를 나타내는 스코어들을 산출하고, 산출한 스코어들을 내림차순으로 정렬함으로써, 복수의 객체 후보들에 대한 데이터 처리 순서를 설정할 수 있다. 그리고 뉴럴 네트워크 시스템은 설정한 순서에서 가장 앞선 순서인 제1 객체 후보를 확인하고, 확인한 제1 객체 후보에 대해서 제1 객체 인식을 수행할 수 있다.
그리고 뉴럴 네트워크 시스템은 제1 객체 인식 결과에 대응하는 제1 태스크를 수행할 수 있다(S630). 예를 들어, 뉴럴 네트워크 시스템이 자율 주행 차량에 적용되고, 제1 객체 후보가 자동차로 인식된 경우, 뉴럴 네트워크 시스템은 인식된 자동차에 대응하는 태스크로, 인식된 자동차 및 자율 주행 차량 간의 거리를 산출하는 동작을 수행할 수 있다.
그리고 뉴럴 네트워크 시스템은 제1 태스크가 완료되면 제2 객체 후보에 대한 제2 객체 인식을 수행할 수 있다(S640). 일 실시예에서, 뉴럴 네트워크 시스템은 설정한 순서에서, 제1 객체 후보의 다음 순서인 제2 객체 후보에 대해서 제2 객체 인식을 수행할 수 있다. 그리고 뉴럴 네트워크 시스템은 제2 객체 인식 결과에 대응하는 제2 태스크를 수행할 수 있다(S650).
뉴럴 네트워크 시스템은 나머지 객체 후보들에 대해서 전술한 객체 인식 동작 및 객체 인식 결과에 대응하는 태스크의 수행 동작을 반복적으로 수행할 수 있다.
본 개시의 기술적 사상에 따른 뉴럴 네트워크 시스템의 동작 방법은, 이미지에 포함된 복수의 객체 후보들에 대하여, 객체 단위로 객체 인식과 객체 인식 결과에 대응하는 태스크를 수행함으로써, 연속적인 객체 인식 동작들에 의한 병목 현상을 방지할 수 있고, 중요도가 높은 객체 후보에 대한 데이터 처리를 우선적으로 처리할 수 있다.
도 16은 본 개시의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
도 16을 참조하면, 전자 장치(1000)는 프로세서(1010), RAM(Random Access Memory)(1020), 모델 프로세서(1030), 메모리(1040), 센서(1050) 및 리소스(1060)를 포함할 수 있고, 전자 장치(1000)의 구성들은 버스(1070)를 통해 서로 통신 가능하게 연결될 수 있다. 이때, 모델 프로세서(1030)는 전술한 실시예들의 모델 프로세서(100, 300, 500)에 대응할 수 있고, 리소스(1060)는 전술한 실시예들의 리소스(200, 400, 600_1, 600_2)에 대응할 수 있다. 일부 실시예들에서, 모델 프로세서(1030) 및 리소스(1060)는 도 1 내지 도 15를 참조하여 상술된 실시예들을 이용하여 구현될 수 있다.
전자 장치(1000)는 신경망을 기초로 입력 데이터를 실시간으로 분석하여 유효한 정보를 추출하고, 추출된 정보를 기초로 상황 판단을 하거나 또는 전자 장치(1000)가 탑재되는 전자 디바이스의 구성들을 제어할 수 있다. 예를 들어, 전자 장치(1000)는 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 로봇 장치, 스마트 TV, 스마트폰, 의료 디바이스, 모바일 디바이스, 영상 표시 디바이스, 계측 디바이스, IoT 디바이스 등에 적용될 수 있으며, 이 외에도 다양한 종류의 전자 디바이스들 중 적어도 하나에 탑재될 수 있다.
프로세서(1010)는 전자 장치(1000)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(1010)는 RAM(1020)에 저장된 프로그램들을 실행함으로써, 모델 프로세서(1030)의 기능을 제어할 수 있다. RAM(1020)은 프로그램들, 데이터, 어플리케이션(Application) 또는 명령들(instructions)을 일시적으로 저장할 수 있다.
센서(1050)는 전자 장치(1000)의 외부로부터 신호(예를 들어, 영상 신호, 음성 신호, 자기 신호, 생체 신호, 터치 신호 등)를 센싱 또는 수신하고, 이를 데이터로 변환할 수 있다. 본 개시의 일 실시예에 따르면, 센서(1050)는 전자 장치(1000)의 주변의 영상 신호를 수신하고, 이를 이미지 형태의 데이터로 변환하는 이미지 센서를 포함할 수 있다. 또한, 전자 장치(1000)는 복수개의 센서(1050)를 포함할 수 있다.
모델 프로세서(1030)는 리소스(1060)를 제어함으로써 신경망의 연산을 수행하고, 수행 결과를 기초로 정보 신호를 생성할 수 있다. 일 예시에서, 모델 프로세서(1030)는 시스템 메모리(예를 들면, ROM(Read-Only Memory)에 저장된 소프트웨어로 구현될 수 있고, 프로세서(1010)의 제어에 기초하여 동작할 수 있다. 메모리(1040)는 데이터를 저장하기 위한 저장 장소로서, 예를 들어 모델 프로세서(1030) 및 리소스(1060)의 연산 수행 과정에서 생성된 각종 데이터를 저장할 수 있다.
본 개시의 일 실시예에 따르면, 모델 프로세서(1030)는 센서(1050)로부터 이미지를 수신하고, 수신한 이미지에 포함된 복수의 객체 후보들을 검출할 수 있다. 그리고 모델 프로세서(1030)는 검출한 복수의 객체 후보들에 대한 메타 데이터를 생성하고, 생성한 메타 데이터를 기초로 복수의 객체 후보들에 대한 데이터 처리 순서를 설정할 수 있다. 그리고 모델 프로세서(1030)는 설정한 순서에 따라 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 리소스(1060)에 순차적으로 제공할 수 있다.
리소스(1060)는 신경망을 기초로 하는 다수의 연산을 수행하기 위한 연산 리소스 또는 외부 장치와 통신할 수 있는 다양한 유선 또는 무선 인터페이스로 구현되는 통신 리소스를 포함할 수 있다. 본 개시의 일 실시예에 따르면, 리소스(1060)는 모델 프로세서(1030)로부터 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 수신한 순서에 따라, 객체 단위로 복수의 객체 후보들에 대한 데이터 처리를 순차적으로 수행할 수 있다. 본 개시의 일 실시예에 따르면, 리소스(1060)는 복수의 리소스들을 포함할 수 있으며, 복수의 리소스들은 동종 또는 이종의 리소스일 수 있다.
이에 따라, 본 개시의 기술적 사상에 따른 전자 장치(1000)는 중요도가 높은 것으로 판단되는 객체 후보에 대한 데이터 처리를 우선적으로 처리함으로써, 객체 인식 기술을 이용한 세분화된(fine-grained) 제어를 수행할 수 있다.
도 17은 본 개시의 일 실시예에 따른 자율 주행 장치를 나타내는 블록도이다.
도 17을 참조하면, 자율 주행 장치(2000)는 프로세서(2010), RAM(2020), 모델 프로세서(2030), 메모리(2040), 센서(2050), 리소스(2060), 구동부(2070) 및 통신 인터페이스(2080)를 포함할 수 있고, 자율 주행 장치(2000)의 구성들은 버스(2090)를 통해 서로 통신 가능하게 연결될 수 있다. 이때, 모델 프로세서(2030)는 전술한 실시예들의 모델 프로세서(100, 300, 500, 1030)에 대응할 수 있고, 리소스(2060)는 전술한 실시예들의 리소스(200, 400, 600_1, 600_2, 1060)에 대응할 수 있다. 일부 실시예들에서, 모델 프로세서(2030) 및 리소스(2060)는 도 1 내지 도 16을 참조하여 상술된 실시예들을 이용하여 구현될 수 있다.
자율 주행 장치(2000)는 신경망을 기초로 자율 주행 차량의 주변 환경의 데이터를 실시간으로 분석하여 상황 판단 및 차량 운행 제어 등을 수행할 수 있다.
프로세서(2010)는 자율 주행 장치(2000)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(2010)는 RAM(2020)에 저장된 프로그램들을 실행함으로써, 모델 프로세서(2030)의 기능을 제어할 수 있다. RAM(2020)은 프로그램들, 데이터, 어플리케이션(Application) 또는 명령들(instructions)을 일시적으로 저장할 수 있다.
센서(2050)는 자율 주행 장치(2000)의 주변 환경에 관한 영상 신호를 수신하고, 이를 이미지로 출력하는 다수의 센서들을 포함할 수 있다. 예를 들어, 센서(2050)는 CCD(Charge Coupled Device), CMOS(Complementary Metal Oxide Semiconductor)와 같은 이미지 센서(2051), LiDAR(Light Detection And Ranging) 센서(2052), Radar(Radio Detecting And Ranging) 센서(2053), 뎁스 카메라(Depth Camera)(2054) 등을 포함할 수 있다. 한편, 본 개시는 이에 한정되지 않으며, 초음파 센서(미도시), 적외선 센서(미도시) 등을 포함할 수 있다.
모델 프로세서(2030)는 리소스(2060)를 제어함으로써 신경망의 연산을 수행하고, 수행 결과를 기초로 정보 신호를 생성할 수 있다. 메모리(2040)는 데이터를 저장하기 위한 저장 장소로서, 예를 들어 모델 프로세서(2030) 및 리소스(2060)의 연산 수행 과정에서 생성된 각종 데이터를 저장할 수 있다.
본 개시의 일 실시예에 따르면, 모델 프로세서(2030)는 센서(2050)로부터 자율 주행 차량 장치(2000)의 주변 환경을 촬영한 이미지를 수신하고, 수신한 이미지에 포함된 복수의 객체 후보들을 검출할 수 있다. 그리고 모델 프로세서(2030)는 검출한 복수의 객체 후보들에 대한 메타 데이터를 생성하고, 생성한 메타 데이터를 기초로 복수의 객체 후보들에 대한 데이터 처리 순서를 설정할 수 있다. 그리고 모델 프로세서(2030)는 설정한 순서에 따라 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 리소스(2060)에 순차적으로 제공할 수 있다.
리소스(2060)는 신경망을 기초로 하는 다수의 연산을 수행하기 위한 연산 리소스 또는 외부 장치와 통신할 수 있는 다양한 유선 또는 무선 인터페이스로 구현되는 통신 리소스를 포함할 수 있다. 본 개시의 일 실시예에 따르면, 리소스(2060)는 모델 프로세서(2030)로부터 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 수신한 순서에 따라, 객체 단위로 복수의 객체 후보들에 대한 데이터 처리를 순차적으로 수행할 수 있다. 본 개시의 일 실시예에 따르면, 리소스(2060)는 복수의 리소스들을 포함할 수 있으며, 복수의 리소스들은 동종 또는 이종의 리소스일 수 있다.
구동부(2070)는 자율 주행 장치(2000)를 구동시키기 위한 구성으로, 엔진 및 모터(2071), 조향부(2072) 및 브레이크부(2073)를 포함할 수 있다. 일 실시예에서, 구동부(2070)는 프로세서(2010)의 제어에 따라 엔진 및 모터(2071), 조향부(2072) 및 브레이크부(2073)를 이용하여 자율 주행 장치(2000)의 추진, 제동, 속력, 방향 등을 조정할 수 있다.
통신 인터페이스(2080)는 외부 장치와 유선 또는 무선 통신 방식을 이용하여 통신을 수행할 수 있다. 예를 들어, 통신 인터페이스(2080)는 이더넷(Ethernet)과 같은 유선 통신 방식으로 통신을 수행하거나, 와이파이(Wi-Fi) 또는 블루투스(Bluetooth) 등과 같은 무선 통신 방식으로 통신을 수행할 수 있다.
프로세서(2010)는 리소스(2060)가 데이터 처리를 수행함에 따라 생성된 정보를 이용하여 자율 주행 장치(2000)를 제어하기 위한 제어 명령을 생성할 수 있다. 예를 들어, 리소스(2060)가 센서(2050)로부터 출력된 이미지에 포함된 객체로 불을 인식하고, 불에 대응하는 태스크로서 긴급 신고 전화번호인 119에 대한 정보를 생성할 수 있다. 그리고, 프로세서(2010)는 긴급 신호 전화번호 119로 전화를 걸도록 통신 인터페이스(2080)를 제어할 수 있다. 또 다른 예로, 리소스(2060)는 불을 인식하고, 불에 대응하는 태스크로 자율 주행 장치(2000)의 주행 루트를 변경하는 태스크를 수행할 수 있다. 그리고, 프로세서(2010)는 변경된 자율 주행에 따라 주행하도록 구동부(2070)를 제어할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (10)
- 제1 이미지를 분석함으로써 상기 제1 이미지에 포함된 복수의 객체 후보들을 검출하고, 상기 제1 이미지를 기초로 상기 복수의 객체 후보들의 메타 데이터를 생성하고, 상기 메타 데이터를 기초로 상기 복수의 객체 후보들의 데이터 처리 순서를 설정하는 프로세서; 및
상기 복수의 객체 후보들의 데이터 처리를 수행하는 리소스;를 포함하고,
상기 프로세서는,
상기 설정한 순서에 따라, 상기 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 상기 리소스에 순차적으로 제공하고,
상기 리소스는,
상기 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 수신한 순서에 따라, 상기 복수의 객체 후보들의 데이터 처리를 순차적으로 수행하는 것을 특징으로 하는 뉴럴 네트워크 시스템. - 제1항에 있어서,
상기 리소스는,
제1 객체 후보에 대한 제1 객체 인식을 수행하고, 상기 제1 객체 인식 결과에 대응하는 제1 태스크를 수행하고,
상기 제1 태스크가 완료되면 다음 순서인 제2 객체 후보에 대한 제2 객체 인식을 수행하고, 상기 제2 객체 인식 결과에 대응하는 제2 태스크를 수행하는 것을 특징으로 하는 뉴럴 네트워크 시스템. - 제1항에 있어서,
상기 프로세서는,
상기 메타 데이터를 기초로 상기 복수의 객체 후보들의 중요도를 나타내는 스코어(score)들을 산출하고, 상기 산출한 스코어들을 이용하여 상기 복수의 객체 후보들의 데이터 처리 순서를 설정하는 것을 특징으로 하는 뉴럴 네트워크 시스템. - 제3항에 있어서,
상기 프로세서는,
제1 임계값을 초과하는 스코어를 갖는 객체 후보를 확인하면, 상기 확인한 객체 후보의 데이터 처리에 사용되는 정보를 즉시 상기 리소스에 제공하는 것을 특징으로 하는 뉴럴 네트워크 시스템. - 제3항에 있어서,
상기 프로세서는,
제2 임계값 미만인 스코어를 갖는 객체 후보를 확인하면, 상기 확인한 객체 후보를 제외한 나머지 객체 후보들의 데이터 처리 순서를 설정하는 것을 특징으로 하는 뉴럴 네트워크 시스템. - 제1항에 있어서,
상기 메타 데이터는,
상기 복수의 객체 후보들 각각의 사이즈(size), 상기 제1 이미지 내 위치, 좌상단(top-left) 좌표, 우하단(bottom-right) 좌표, 기설정된 좌표로부터의 거리(distance), 깊이(depth) 중 적어도 하나를 포함하는 것을 특징으로 하는 뉴럴 네트워크 시스템. - 제1항에 있어서,
상기 리소스는,
복수의 리소스들을 포함하고,
상기 프로세서는,
상기 복수의 객체 후보들의 메타 데이터를 기초로, 상기 복수의 객체 후보들과 상기 복수의 리소스들을 매칭하고, 상기 매칭 결과에 따라 상기 복수의 객체 후보들의 데이터 처리에 사용되는 정보를 상기 복수의 리소스들에 제공하는 것을 특징으로 하는 뉴럴 네트워크 시스템. - 제1 이미지를 처리하는 뉴럴 네트워크 시스템의 동작 방법에 있어서,
상기 제1 이미지에 포함된 복수의 객체 후보들을 검출하는 단계;
상기 복수의 객체 후보들 중 제1 객체 후보에 대한 제1 객체 인식을 수행하는 단계;
상기 제1 객체 인식 결과에 대응하는 제1 태스크를 수행하는 단계;
상기 제1 태스크가 완료되면, 상기 복수의 객체 후보들 중 제2 객체 후보에 대한 제2 객체 인식을 수행하는 단계; 및
상기 제2 객체 인식 결과에 대응하는 제2 태스크를 수행하는 단계;를 포함하는 동작 방법. - 제8항에 있어서,
상기 제1 이미지를 기초로 상기 복수의 객체 후보들에 대한 메타 데이터를 생성하는 단계;
상기 메타 데이터를 기초로 상기 복수의 객체 후보들 중 상기 제1 객체 후보를 선택하는 단계; 및
상기 메타 데이터를 기초로 상기 제1 객체 후보를 제외한 나머지 객체 후보들 중 제2 객체 후보를 선택하는 단계;를 더 포함하는 동작 방법. - 전자 장치에 있어서,
연산을 수행하는 리소스;
상기 전자 장치의 주변의 데이터를 획득하고, 상기 획득한 데이터를 이미지 형태로 변환함으로써 제1 이미지를 출력하는 센서;
상기 제1 이미지 내 복수의 객체 후보들을 검출하는 객체 후보 검출기 및 상기 제1 이미지를 기초로 상기 복수의 객체 후보들의 메타 데이터를 생성하고, 상기 메타 데이터를 기초로 상기 복수의 객체 후보들 중 객체 인식을 수행할 객체 후보를 선택하는 태스크 매니저를 포함하는 프로그램 정보를 저장하는 메모리;
상기 프로그램 정보를 기초로 제1 객체 후보를 선택하고, 상기 제1 객체 후보에 대한 정보를 상기 리소스에 제공하는 프로세서;를 포함하고,
상기 리소스는,
상기 수신한 제1 객체 후보에 대한 정보를 기초로 상기 제1 객체 후보에 대한 제1 객체 인식을 수행하고, 상기 제1 객체 인식 결과에 대응하는 제1 태스크를 수행하는 전자 장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190162881A KR20210072504A (ko) | 2019-12-09 | 2019-12-09 | 뉴럴 네트워크 시스템 및 이의 동작 방법 |
US17/031,039 US11893766B2 (en) | 2019-12-09 | 2020-09-24 | Neural network system and operating method thereof |
CN202011373071.8A CN113032114A (zh) | 2019-12-09 | 2020-11-30 | 一种神经网络***及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190162881A KR20210072504A (ko) | 2019-12-09 | 2019-12-09 | 뉴럴 네트워크 시스템 및 이의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210072504A true KR20210072504A (ko) | 2021-06-17 |
Family
ID=76209028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190162881A KR20210072504A (ko) | 2019-12-09 | 2019-12-09 | 뉴럴 네트워크 시스템 및 이의 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11893766B2 (ko) |
KR (1) | KR20210072504A (ko) |
CN (1) | CN113032114A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114529825A (zh) * | 2022-04-24 | 2022-05-24 | 城云科技(中国)有限公司 | 用于消防通道占用目标检测的目标检测模型、方法及应用 |
CN114544172A (zh) * | 2022-01-19 | 2022-05-27 | 武汉理工大学 | 基于深度置信网络的旋转机械故障诊断方法、***及介质 |
CN114756037A (zh) * | 2022-03-18 | 2022-07-15 | 广东汇星光电科技有限公司 | 一种基于神经网络图像识别的无人机***及控制方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116127345B (zh) * | 2022-12-23 | 2023-11-14 | 北京科技大学 | 基于深度聚类生成对抗网络的转炉炼钢工艺模式设计方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139999B2 (en) | 1999-08-31 | 2006-11-21 | Accenture Llp | Development architecture framework |
BRPI0401465A (pt) | 2004-04-20 | 2006-02-21 | Embria Informatica Ltda | sistema para administrar interações entre usuários e aplicações de software em um ambiente web |
US7865888B1 (en) | 2004-12-21 | 2011-01-04 | Zenprise, Inc. | Systems and methods for gathering deployment state for automated management of software application deployments |
EP2269371B1 (en) | 2008-03-20 | 2018-01-31 | Institut für Rundfunktechnik GmbH | A method of adapting video images to small screen sizes |
EP2890149A1 (en) | 2008-09-16 | 2015-07-01 | Intel Corporation | Systems and methods for video/multimedia rendering, composition, and user-interactivity |
US9152707B2 (en) | 2010-01-04 | 2015-10-06 | Martin Libich | System and method for creating and providing media objects in a navigable environment |
KR101240469B1 (ko) | 2010-11-23 | 2013-03-11 | 현대모비스 주식회사 | 객체 인식 시스템, 차량용 장애물 인식 시스템 및 차량용 장애물 인식 방법 |
US9049259B2 (en) | 2011-05-03 | 2015-06-02 | Onepatont Software Limited | System and method for dynamically providing visual action or activity news feed |
US9021355B2 (en) | 2011-09-08 | 2015-04-28 | Imagine Communications Corp. | Graphical user interface to facilitate managing media operations |
US9122711B1 (en) | 2012-05-24 | 2015-09-01 | Symantec Corporation | Simplified system backup protection and recovery |
US9672431B2 (en) | 2012-11-09 | 2017-06-06 | Analog Devices Global | Object detection |
JP6005837B2 (ja) | 2013-02-27 | 2016-10-12 | 株式会社日立製作所 | 画像解析装置、画像解析システム、画像解析方法 |
US9922124B2 (en) | 2016-01-29 | 2018-03-20 | Yogesh Rathod | Enable user to establish request data specific connections with other users of network(s) for communication, participation and collaboration |
US9292756B2 (en) | 2013-12-10 | 2016-03-22 | Dropbox, Inc. | Systems and methods for automated image cropping |
US10346465B2 (en) | 2013-12-20 | 2019-07-09 | Qualcomm Incorporated | Systems, methods, and apparatus for digital composition and/or retrieval |
KR102592076B1 (ko) | 2015-12-14 | 2023-10-19 | 삼성전자주식회사 | 딥러닝 기반 영상 처리 장치 및 방법, 학습 장치 |
US9858496B2 (en) | 2016-01-20 | 2018-01-02 | Microsoft Technology Licensing, Llc | Object detection and classification in images |
US9671777B1 (en) | 2016-06-21 | 2017-06-06 | TruPhysics GmbH | Training robots to execute actions in physics-based virtual environment |
KR101916347B1 (ko) | 2017-10-13 | 2018-11-08 | 주식회사 수아랩 | 딥러닝 기반 이미지 비교 장치, 방법 및 컴퓨터 판독가능매체에 저장된 컴퓨터 프로그램 |
-
2019
- 2019-12-09 KR KR1020190162881A patent/KR20210072504A/ko active Search and Examination
-
2020
- 2020-09-24 US US17/031,039 patent/US11893766B2/en active Active
- 2020-11-30 CN CN202011373071.8A patent/CN113032114A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114544172A (zh) * | 2022-01-19 | 2022-05-27 | 武汉理工大学 | 基于深度置信网络的旋转机械故障诊断方法、***及介质 |
CN114756037A (zh) * | 2022-03-18 | 2022-07-15 | 广东汇星光电科技有限公司 | 一种基于神经网络图像识别的无人机***及控制方法 |
CN114529825A (zh) * | 2022-04-24 | 2022-05-24 | 城云科技(中国)有限公司 | 用于消防通道占用目标检测的目标检测模型、方法及应用 |
CN114529825B (zh) * | 2022-04-24 | 2022-07-22 | 城云科技(中国)有限公司 | 用于消防通道占用目标检测的目标检测模型、方法及应用 |
Also Published As
Publication number | Publication date |
---|---|
US20210174116A1 (en) | 2021-06-10 |
CN113032114A (zh) | 2021-06-25 |
US11893766B2 (en) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20210072504A (ko) | 뉴럴 네트워크 시스템 및 이의 동작 방법 | |
CN109478239B (zh) | 检测图像中的对象的方法和对象检测*** | |
US11200467B2 (en) | Artificial intelligence apparatus and method for recognizing object included in image data | |
US11126833B2 (en) | Artificial intelligence apparatus for recognizing user from image data and method for the same | |
JP6453025B2 (ja) | ランダムフォレストモデルを用いた、リアルタイムの多クラス運転者動作認識 | |
CN108388879B (zh) | 目标的检测方法、装置和存储介质 | |
US20200042832A1 (en) | Artificial intelligence apparatus and method for updating artificial intelligence model | |
CN110880034B (zh) | 使用卷积神经网络的计算装置及其操作方法 | |
CN113762252A (zh) | 无人机智能跟随目标确定方法、无人机和遥控器 | |
US10776941B2 (en) | Optimized neural network structure | |
US20190385614A1 (en) | Artificial intelligence apparatus and method for recognizing utterance voice of user | |
KR102490916B1 (ko) | 전자 장치, 이의 제어 방법 및 비일시적인 컴퓨터 판독가능 기록매체 | |
US11507825B2 (en) | AI apparatus and method for managing operation of artificial intelligence system | |
US20200114925A1 (en) | Interaction device, interaction method, and program | |
EP4047561A1 (en) | Method for recognizing an emotion of a driver, apparatus, device, medium and vehicle | |
US11769047B2 (en) | Artificial intelligence apparatus using a plurality of output layers and method for same | |
US11270700B2 (en) | Artificial intelligence device and method for recognizing speech with multiple languages | |
CN112884900A (zh) | 无人机的降落定位方法、装置、存储介质及无人机机巢 | |
US11322134B2 (en) | Artificial intelligence device and operating method thereof | |
WO2021248857A1 (zh) | 一种障碍物属性判别方法、***及智能机器人 | |
US20210174079A1 (en) | Method and apparatus for object recognition | |
CN115903773A (zh) | 移动体控制装置、移动体、学习装置及方法、及存储介质 | |
CN116702918A (zh) | 一种联邦学习方法以及相关设备 | |
US11464380B2 (en) | Artificial intelligence cleaner and operating method thereof | |
CN112951216A (zh) | 一种车载语音处理方法及车载信息娱乐*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |