KR20190134272A - 영상 처리를 위한 네트워크 조정 방법 및 장치 - Google Patents
영상 처리를 위한 네트워크 조정 방법 및 장치 Download PDFInfo
- Publication number
- KR20190134272A KR20190134272A KR1020180059717A KR20180059717A KR20190134272A KR 20190134272 A KR20190134272 A KR 20190134272A KR 1020180059717 A KR1020180059717 A KR 1020180059717A KR 20180059717 A KR20180059717 A KR 20180059717A KR 20190134272 A KR20190134272 A KR 20190134272A
- Authority
- KR
- South Korea
- Prior art keywords
- image
- neural network
- class
- loss
- verification
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012545 processing Methods 0.000 title description 6
- 238000013528 artificial neural network Methods 0.000 claims abstract description 129
- 238000012795 verification Methods 0.000 claims abstract description 80
- 230000008569 process Effects 0.000 claims description 8
- 238000011176 pooling Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 238000012549 training Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 244000068988 Glycine max Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
Images
Classifications
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G06K9/00718—
-
- 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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- 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/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/41—Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/1916—Validation; Performance evaluation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/19173—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/192—Recognition using electronic means using simultaneous comparisons or correlations of the image signals with a plurality of references
- G06V30/194—References adjustable by an adaptive method, e.g. learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Biodiversity & Conservation Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
입력 영상의 장면을 적어도 하나의 클래스로 구분하기 위해 이용되는 뉴럴 네트워크(Neural Network)를 조정하기 위한 방법 및 장치가 제공된다. 뉴럴 네트워크를 조정하기 위해, 입력 영상에 기초하여 생성된 클래스 영상과 미리 설정된 검증 클래스 영상 간의 로스를 계산하고, 로스에 기초하여 뉴럴 네트워크를 조정한다.
Description
아래의 실시예들은 영상 처리를 위한 네트워크를 조정하기 위한 방법 및 장치에 관한 것으로, 보다 상세하게는 로스의 역 전파를 통해 네트워크를 조정하는 방법 및 장치에 관한 것이다.
분류(classification) 기술이란 영상에서 특정한 오브젝트가 있는지를 확인하는 기술을 의미한다. 검출(detection) 기술은 분류 기술과는 다르게 특정 오브젝트가 있는지 여부만을 확인하는 것이 아니라, 특정 오브젝트의 위치 정보를 포함한다. 이에 따라, 영상 내에 오브젝트 및 장면 등이 포함된 경우, 영상 내의 오브젝트 및 장면을 확인하고 그 위치를 검출하기 위해서는 검출 기술이 이용된다.
검출 기술을 이용하는 장면 검출(scene segmentation)은 영상 내의 픽셀이 어떠한 클래스(class)에 포함되는지를 검출하는 기술이다. 예를 들어, 픽셀이 차에 속하는지 또는 도로에 속하는지가 검출될 수 있다. 검출된 영상 내의 장면 및 오브젝트의 위치는 다양한 분야에서 이용될 수 있다.
일 측면에 따른, 입력 영상의 장면을 적어도 하나의 클래스로 구분하기 위해 이용되는 뉴럴 네트워크(Neural Network) 조정하는 방법은, 입력 영상에 콘볼루션 네트워크를 적용함으로써 상기 입력 영상의 크기보다 작은 크기를 갖는 특징 영상을 생성하는 단계, 상기 특징 영상이 나타내는 적어도 하나의 클래스(class)를 결정하는 단계, 상기 특징 영상에 디콘볼루션 네트워크를 적용함으로써 상기 입력 영상의 크기에 대응하는 크기를 갖는 클래스 영상을 생성하는 단계, 상기 입력 영상에 대해 미리 설정된 검증 클래스 영상을 이용하여 상기 클래스 영상의 로스(loss)를 계산하는 단계, 및 상기 로스에 기초하여 상기 뉴럴 네트워크를 조정하는 단계를 포함하고, 상기 뉴럴 네트워크는 상기 콘볼루션 네트워크 및 상기 디콘볼루션 네트워크를 포함한다.
상기 로스에 기초하여 상기 뉴럴 네트워크를 조정하는 단계는, 상기 검증 클래스 영상 및 상기 클래스 영상 간의 메인 로스(main lose)를 계산하는 단계, 상기 검증 클래스 영상 및 상기 특징 영상에 기초하여 보조 로스(auxiliary loss)를 계산하는 단계, 및 상기 메인 로스 및 상기 보조 로스에 기초하여 상기 뉴럴 네트워크를 조정하는 단계를 포함할 수 있다.
상기 검증 클래스 영상 및 상기 특징 영상에 기초하여 보조 로스를 계산하는 단계는, 상기 검증 클래스 영상의 크기를 상기 특징 영상의 크기에 대응하도록 축소함으로써 축소 검증 클래스 영상을 생성하는 단계, 상기 특징 영상에 대한 보조 클래스 영상을 생성하는 단계, 및 상기 축소 검증 클래스 영상 및 상기 보조 클래스 영상에 기초하여 상기 보조 로스를 계산하는 단계를 포함할 수 있다.
상기 검증 클래스 영상의 크기를 상기 특징 영상의 크기에 대응하도록 축소함으로써 축소 검증 클래스 영상을 생성하는 단계는, 상기 검증 클래스 영상을 미리 설정된 크기의 복수의 블록들로 분할하는 단계, 타겟 블록에 대한 대표 클래스를 결정하는 단계, 및 상기 대표 클래스에 기초하여 상기 축소 검증 클래스 영상을 생성하는 단계를 포함할 수 있다.
상기 타겟 블록에 대한 대표 클래스를 결정하는 단계는, 상기 타겟 블록 내의 최빈 클래스(mode class)를 상기 대표 클래스로 결정하는 단계를 포함할 수 있다.
상기 뉴럴 네트워크는 차량에 탑재된 카메라에 의해 촬영된 영상을 처리하기 위해 이용될 수 있다.
상기 뉴럴 네트워크 조정 방법은, 상기 계산된 로스가 미리 설정된 임계값 미만인 경우 상기 뉴럴 네트워크의 조정을 중단하는 단계를 더 포함할 수 있다.
다른 일 측면에 따른, 입력 영상의 장면을 적어도 하나의 클래스로 분할하기 위해 이용되는 뉴럴 네트워크(Neural Network) 조정하는 뉴럴 네트워크 조정 장치는, 뉴럴 네트워크를 조정하는 프로그램이 기록된 메모리, 및 상기 프로그램을 수행하는 프로세서를 포함하고, 상기 프로그램은, 입력 영상에 콘볼루션 네트워크를 적용함으로써 상기 입력 영상의 크기보다 작은 크기를 갖는 특징 영상을 생성하는 단계, 상기 특징 영상이 나타내는 적어도 하나의 클래스(class)를 결정하는 단계, 상기 특징 영상에 디콘볼루션 네트워크를 적용함으로써 상기 입력 영상의 크기에 대응하는 크기를 갖는 클래스 영상을 생성하는 단계, 상기 입력 영상에 대해 미리 설정된 검증 클래스 영상을 이용하여 상기 클래스 영상의 로스(loss)를 계산하는 단계, 및 상기 로스에 기초하여 상기 뉴럴 네트워크를 조정하는 단계를 수행하고, 상기 뉴럴 네트워크는 상기 콘볼루션 네트워크 및 상기 디콘볼루션 네트워크를 포함한다.
상기 로스에 기초하여 상기 뉴럴 네트워크를 조정하는 단계는, 상기 검증 클래스 영상 및 상기 클래스 영상 간의 메인 로스(main lose)를 계산하는 단계, 상기 검증 클래스 영상 및 상기 특징 영상에 기초하여 보조 로스(auxiliary loss)를 계산하는 단계, 및 상기 메인 로스 및 상기 보조 로스에 기초하여 상기 뉴럴 네트워크를 조정하는 단계를 포함할 수 있다.
상기 검증 클래스 영상 및 상기 특징 영상에 기초하여 보조 로스를 계산하는 단계는, 상기 검증 클래스 영상의 크기를 상기 특징 영상의 크기에 대응하도록 축소함으로써 축소 검증 클래스 영상을 생성하는 단계, 상기 특징 영상에 대한 보조 클래스 영상을 생성하는 단계, 및 상기 축소 검증 클래스 영상 및 상기 보조 클래스 영상에 기초하여 상기 보조 로스를 계산하는 단계를 포함할 수 있다.
상기 검증 클래스 영상의 크기를 상기 특징 영상의 크기에 대응하도록 축소함으로써 축소 검증 클래스 영상을 생성하는 단계는, 상기 검증 클래스 영상을 미리 설정된 크기의 복수의 블록들로 분할하는 단계, 타겟 블록에 대한 대표 클래스를 결정하는 단계, 및 상기 대표 클래스에 기초하여 상기 축소 검증 클래스 영상을 생성하는 단계를 포함할 수 있다.
상기 타겟 블록에 대한 대표 클래스를 결정하는 단계는, 상기 타겟 블록 내의 최빈 클래스(mode class)를 상기 대표 클래스로 결정하는 단계를 포함할 수 있다.
상기 뉴럴 네트워크는 차량에 탑재된 카메라에 의해 촬영된 영상을 처리하기 위해 이용될 수 있다.
상기 프로그램은, 상기 계산된 로스가 미리 설정된 임계값 미만인 경우 상기 뉴럴 네트워크의 조정을 중단하는 단계를 더 수행할 수 있다.
도 1은 일 예에 따른 입력 영상에 기초하여 생성된 클래스 영상을 도시한다.
도 2는 일 예에 따른 클래스 영상을 생성하기 위한 네트워크의 전체 구조를 도시한다.
도 3은 일 실시예에 따른 뉴럴 네트워크 조정 장치의 구성도이다.
도 4는 일 실시예에 따른 뉴럴 네트워크 조정 방법의 흐름도이다.
도 5는 일 예에 따른 콘볼루션 네트워크의 구조를 도시한다.
도 6은 일 예에 따른 콘볼루션 레이어 및 풀링 레이어를 포함하는 뉴럴 네트워크의 구조를 도시한다.
도 7은 일 예에 따른 뉴럴 네트워크를 조정하는 방법의 흐름도이다.
도 8은 일 예에 따른 보조 로스를 계산하는 방법의 흐름도이다.
도 9는 일 예에 따른 메인 로스 및 보조 로스에 기초하여 뉴럴 네트워크를 조정하는 방법을 도시한다.
도 10은 일 예에 따른 축소 검증 클래스 영상을 생성하는 방법을 도시한다.
도 11은 일 예에 따른 축소 검증 클래스 영상을 도시한다.
도 12는 일 예에 따른 뉴럴 네트워크를 조정하는 방법들에 따라 측정된 로스를 도시한다.
도 2는 일 예에 따른 클래스 영상을 생성하기 위한 네트워크의 전체 구조를 도시한다.
도 3은 일 실시예에 따른 뉴럴 네트워크 조정 장치의 구성도이다.
도 4는 일 실시예에 따른 뉴럴 네트워크 조정 방법의 흐름도이다.
도 5는 일 예에 따른 콘볼루션 네트워크의 구조를 도시한다.
도 6은 일 예에 따른 콘볼루션 레이어 및 풀링 레이어를 포함하는 뉴럴 네트워크의 구조를 도시한다.
도 7은 일 예에 따른 뉴럴 네트워크를 조정하는 방법의 흐름도이다.
도 8은 일 예에 따른 보조 로스를 계산하는 방법의 흐름도이다.
도 9는 일 예에 따른 메인 로스 및 보조 로스에 기초하여 뉴럴 네트워크를 조정하는 방법을 도시한다.
도 10은 일 예에 따른 축소 검증 클래스 영상을 생성하는 방법을 도시한다.
도 11은 일 예에 따른 축소 검증 클래스 영상을 도시한다.
도 12는 일 예에 따른 뉴럴 네트워크를 조정하는 방법들에 따라 측정된 로스를 도시한다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 예에 따른 입력 영상에 기초하여 생성된 클래스 영상을 도시한다.
최근 차량의 운전자를 보조하기 위한 다양한 영상 처리 방법들이 개발되고 있다. 일 측면에 따르면, 차량이 자율 주행 차량인 경우, 차량의 카메라를 이용하여 촬영된 영상(100)이 차량의 자율 주행 경로를 생성하기 위해 이용될 수 있다. 자율 주행 경로를 생성하기 위해서는 영상(100) 내에 나타나는 장면 및 오브젝트가 구분되어야 한다.
차량 내에 설치된 전자 장치(110)는 입력된 영상(100) 자체를 이용하여 영상(100)의 특징을 바로 검출할 수 없다. 전자 장치(110)는 영상(100)이 나타내는 정보 또는 특징을 검출하기 위해 네트워크를 이용할 수 있다. 예를 들어, 네트워크는 다수의 입력들을 수신하고, 각각의 입력에 대해 할당된 가중치에 기초하여 결과를 출력할 수 있다. 입력에 대해 할당된 가중치가 변화하는 경우, 그 결과도 달라진다. 네트워크는 뉴럴 네트워크(neural network)일 수 있으나, 기재된 실시예로 한정되지 않는다.
도 1에 도시된 일 예에서, 하늘, 지면, 도로 및 차량이 나타난 영상(100)이 전자 장치(110)에 입력된 경우, 전자 장치(110)는 결과로서 클래스 영상(120)을 출력한다. 전자 장치(110)는 영상(100) 내에 포함된 하늘, 지면, 및 도로를 장면으로 검출하고, 차량을 오브젝트로 검출할 수 있다. 검출된 장면 및 오브젝트는 각각에 대응하는 클래스로 정의될 수 있다. 전자 장치(110)는 검출된 하늘, 지면, 도로, 및 차량을 각각의 영역으로 나누고, 나누어진 영역들이 구분되어 나타나도록 클래스 영상(120)을 출력할 수 있다. 제1 영역(121)은 하늘에 대응하고, 제2 영역(122)는 지면에 대응하며, 제3 영역(123)은 도로에 대응하고, 제4 영역(124)은 차량에 대응한다.
사용자는 영상(100)에 의해 출력되는 클래스 영상(120)이 실제의 결과와 유사해지도록 전자 장치(110)에 적용된 네트워크를 훈련시킬 수 있다. 예를 들어, 네트워크는 뉴럴 네트워크일 수 있다. 네트워크가 역 전파(back propagation)를 통해 훈련될 수 있다. 예를 들어, 네트워크가 노드들을 통해 연결된 복수의 레이어들을 포함하는 경우, 각각의 노드에 할당된 가중치가 변경됨으로써 네트워크가 훈련될 수 있다. 예를 들어, 비용 함수(cost function)가 정의된 경우, 경사 하강(gradient-descent) 방법이 비용 함수의 최소 값을 찾기 위해 이용될 수 있으나, 기재된 실시예로 한정되지 않는다.
도 2는 일 예에 따른 클래스 영상을 생성하기 위한 네트워크의 전체 구조를 도시한다.
입력 영상(210)이 네트워크에 입력된 경우, 출력으로서 클래스 영상(240)이 생성될 수 있다. 클래스 영상(240)은 분류된 클래스가 다른 영역과 구분되도록 출력될 수 있다. 예를 들어, 네트워크는 뉴럴 네트워크일 수 있다. 뉴럴 네트워크는 FCN(Fully Convolutional Network)를 포함할 수 있으나, 기재된 실시예로 한정되지 않는다. 뉴럴 네트워크는 입력 영상(210)의 장면을 적어도 하나의 클래스로 분류하기 위해 이용될 수 있다. 즉, 뉴럴 네트워크는 장면 검출(scene segmentation)을 위해 이용될 수 있다. 장면을 검출하기 위해, 뉴럴 네트워크는 입력 영상(210)의 특징을 추출하는 특징 추출부 및 클래스 영상을 생성하는 복원부를 포함할 수 있다.
입력 영상(210)에 기초하여 제1 특징 영상(220)이 생성될 수 있고, 제1 특징 영상(220)에 기초하여 최종 특징 영상(230)이 생성될 수 있다. 최종 특징 영상(230)이 완전 연결된 레이어들(Fully Connected Layers)로 입력될 수 있고, 최종 특징 영상(230)이 나타내는 적어도 하나의 클래스가 결과로서 출력될 수 있다.
최종 특징 영상(230)에 기초하여 클래스 영상(240)이 생성될 수 있다. 클래스 영상(240)의 크기는 입력 영상(210)의 크기에 대응할 수 있다. 클래스 영상(240)의 픽셀은 동일 좌표에 위치하는 입력 영상(210)의 픽셀에 대응한다. 즉, 클래스 영상(240)의 제1 픽셀은 동일 좌표에 위치하는 입력 영상(210)의 제1 픽셀의 클래스를 나타낸다.
클래스 영상(240)에 나타난 클래스의 구분이 실제의 구분을 잘 나타내지 못하는 경우, 사용자는 뉴럴 네트워크를 훈련시킬 수 있다. 예를 들어, 사용자는 Ground Truth 값을 훈련 장치에 제공하고, 훈련 장치는 뉴럴 네트워크 통해 출력된 결과가 제공된 Ground Truth 값을 추종하도록 뉴럴 네트워크를 훈련시킬 수 있다. 실제적으로, 뉴럴 네트워크를 훈련시킨다는 것은, 뉴럴 네트워크를 구성하는 레이어 및 노드에 할당된 값을 조정하는 것일 수 있다.
아래에서, 도 3 내지 도 12를 참조하여 뉴럴 네트워크를 조정하는 방법이 상세히 설명된다.
도 3은 일 실시예에 따른 뉴럴 네트워크 조정 장치의 구성도이다.
뉴럴 네트워크 조정 장치(300)는 통신부(310), 프로세서(320), 및 메모리(330)를 포함한다. 예를 들어, 뉴럴 네트워크 조정 장치(300)는 전자 장치인 서버일 수도 있고, 모바일 장치일 수도 있으나, 뉴럴 네트워크 조정 장치(300)의 종류 및 기능에 대해 기재된 실시예로 한정되지 않는다. 뉴럴 네트워크 조정 장치(300)는 도 2를 참조하여 전술된 훈련 장치일 수 있다.
통신부(310)는 프로세서(320), 및 메모리(330)와 연결되어 데이터를 송수신한다. 통신부(310)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다.
통신부(310)는 뉴럴 네트워크 조정 장치(300) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신부(310)는 내부 버스(internal bus) 및 외부 버스(external bus)를 포함할 수 있다. 다른 예로, 통신부(310)는 뉴럴 네트워크 조정 장치(300)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(310)는 인터페이스(interface)일 수 있다. 통신부(310)는 외부의 장치로부터 데이터를 수신하여, 프로세서(320) 및 메모리(330)에 데이터를 전송할 수 있다.
프로세서(320)는 통신부(310)가 수신한 데이터 및 메모리(330)에 저장된 데이터를 처리한다. "프로세서"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
프로세서(320)는 메모리(예를 들어, 메모리(330))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(320)에 의해 유발된 인스트럭션들을 실행한다.
메모리(330)는 통신부(310)가 수신한 데이터 및 프로세서(320)가 처리한 데이터를 저장한다. 예를 들어, 메모리(330)는 프로그램을 저장할 수 있다. 저장되는 프로그램은 뉴럴 네트워크를 조정할 수 있도록 코딩되어 프로세서(320)에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다.
일 측면에 따르면, 메모리(330)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.
메모리(330)는 뉴럴 네트워크 조정 장치(300)를 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 뉴럴 네트워크 조정 장치(300)를 동작 시키는 명령어 세트는 프로세서(320)에 의해 실행된다.
통신부(310), 프로세서(320), 및 메모리(330)에 대해, 아래에서 도 4 내지 도 12를 참조하여 상세히 설명된다.
도 4는 일 실시예에 따른 뉴럴 네트워크 조정 방법의 흐름도이다.
아래의 단계들(410 내지 470)은 도 3을 참조하여 전술된 뉴럴 네트워크 조정 장치(300)에 의해 수행된다. 뉴럴 네트워크는 콘볼루션 네트워크 및 디콘볼루션 네트워크를 포함한다. 예를 들어, 콘볼루션 네트워크는 도 2를 참조하여 전술된 특징 추출부일 수 있고, 디콘볼루션 네트워크는 도 2를 참조하여 전술된 복원부일 수 있다. 콘볼루션 네트워크와 디콘볼루션 네트워크는 서로 대칭일 수 있으나, 이에 한정되지 않는다.
단계(410)에서, 뉴럴 네트워크 조정 장치(300)는 입력 영상을 수신한다. 예를 들어, 사용자는 훈련에 이용되는 샘플 영상을 입력 영상으로서 뉴럴 네트워크 조정 장치(300)에 입력할 수 있다.
단계(420)에서, 뉴럴 네트워크 조정 장치(300)는 입력 영상에 콘볼루션 네트워크를 적용함으로써 특징 영상(feature image)을 생성한다. 예를 들어, 뉴럴 네트워크 조정 장치(300)는 콘볼루션 레이어를 이용하여 특징 영상을 생성할 수 있다. 콘볼루션 레이어가 복수인 경우, 복수 개의 특징 영상들이 생성될 수 있다. 예를 들어, R 채널, G 채널, 및 B 채널 각각에 대한 특징 영상들이 생성될 수 있다. 특징 영상은 도 2를 참조하여 전술된 제1 특징 영상(220) 또는 최종 특징 영상(230)일 수 있다.
입력 영상 내의 특정 오브젝트 및 특정 장면을 검출하는 것은, 특정 오브젝트 및 특정 장면이 존재 하는지 여부만을 결정하는 것뿐만 아니라, 특정 오브젝트 및 특정 장면이 존재하는 위치도 결정해야 한다. 이에 따라, 생성되는 특징 영상은 바운딩 박스(bounding box)라고 불리는 사각형의 영역을 통해 특정 오브젝트 및 특정 장면에 대한 위치 정보까지 포함한다. 위치 정보는 특징 영상의 픽셀이 입력 영상의 어느 픽셀들로부터 유래하였는지를 포함할 수 있다.
특징 영상을 생성하는 방법에 대해, 아래에서 도 5 및 6을 참조하여 상세히 설명된다.
단계(430)에서, 뉴럴 네트워크 조정 장치(300)는 특징 영상이 나타내는 적어도 하나의 클래스를 결정한다. 예를 들어, 뉴럴 네트워크 조정 장치(300)는 소프트맥스(softmax)를 통해 특징 영상이 나타내는 클래스를 결정할 수 있다.
뉴럴 네트워크 조정 장치(300)는 결정된 클래스에 대한 위치 정보를 바운딩 박스를 통해 결정할 수 있다. 예를 들어, 뉴럴 네트워크 조정 장치(300)는 바운딩 박스 리그레서(bounding box regressor)를 통해 클래스에 대한 위치 정보를 결정할 수 있다.
단계(440)에서, 뉴럴 네트워크 조정 장치(300)는 특징 영상에 디콘볼루션 네트워크를 적용함으로써 클래스 영상을 생성한다. 예를 들어, 디콘볼루션 네트워크는 디콘볼루션 필터(deconvolution filter)를 이용하여 클래스 영상을 생성할 수 있다. 생성된 클래스 영상의 크기는 입력 영상의 크기와 대응할 수 있다.
단계(450)에서, 뉴럴 네트워크 조정 장치(300)는 입력 영상에 대해 미리 설정된 검증 클래스 영상을 이용하여 클래스 영상의 로스(loss)를 계산한다. 검증 클래스 영상은 입력 영상의 클래스를 ground truth 값으로 표현한 영상일 수 있다. 즉, 검증 클래스 영상은 참조 값일 수 있다. 클래스 영상의 로스는 클래스 영상이 얼마나 검증 클래스 영상과 차이가 있는지를 수치적으로 나타내는 값일 수 있다. 오차가 작을수록 로스가 작아진다. 로스는 클래스 영상의 각 픽셀 마다 계산된 차이의 합으로 계산될 수 있다.
단계(460)에서, 뉴럴 네트워크 조정 장치(300)는 계산된 로스가 미리 설정된 임계 값 미만인지 여부를 결정한다. 로스가 임계 값 미만인 경우, 뉴럴 네트워크의 조정이 종료될 수 있다.
일 측면에 따르면, 뉴럴 네트워크 조정 횟수가 미리 설정된 임계 값을 초과하는 경우, 뉴럴 네트워크의 조정이 종료될 수 있다.
단계(470)에서, 뉴럴 네트워크 조정 장치(300)는 로스에 기초하여 뉴럴 네트워크를 조정한다. 콘볼루션 네트워크 및 디콘볼루션 네트워크 중 적어도 하나가 조정될 수 있다. 예를 들어, 네트워크의 조정은 네트워크를 연결하는 노드의 가중치를 변경하는 것일 수 있다. 다른 예로, 네트워크의 조정은 콘볼루션 필터 및 디콘볼루션 필터의 가중치를 변경하는 것일 수 있다.
예를 들어, 조정이 완료된 뉴럴 네트워크는 차량에 탑재된 카메라에 의해 촬영된 영상을 처리하기 위해 이용될 수 있다. 상기의 차량은 자율 주행 차량이고, 차량은 자율 주행 경로를 생성하기 위해 뉴럴 네트워크를 이용할 수 있다.
뉴럴 네트워크를 조정하는 방법에 대해, 아래에서 도 7 내지 11을 참조하여 상세히 설명된다.
도 5는 일 예에 따른 콘볼루션 네트워크의 구조를 도시한다.
일 측면에 따르면, 콘볼루션 네트워크는 콘볼루션 뉴럴 네트워크(Convolutional Neural Network: CNN)일 수 있다. CNN은 영상 처리를 위해 고안된 특수한 연결구조를 가진 멀티 레이어 뉴럴 네트워크이다.
콘볼루션 네트워크는 특징 추출부(500) 및 완전 연결된 레이어들(Fully Connected Layers)(510)을 포함한다. 특징 추출부(500)는 복수의 특징 추출부들(501 내지 503)을 포함하고, 복수의 특징 추출부들(501 내지 503)은 완전 연결된 레이어들(Fully Connected Layers)(510)과 연결된다. 특징 추출부(500)에 포함되는 복수의 특징 추출부들(501 내지 503)의 개수는 입력 영상의 크기에 따라 달라질 수 있다. 특징 추출부들(501 내지 503)에 대한 상세한 설명은 도 6을 참조하여 상세히 설명된다.
도 6은 일 예에 따른 콘볼루션 레이어 및 풀링 레이어를 포함하는 뉴럴 네트워크의 구조를 도시한다.
제1 특징 추출부(501)는 콘볼루션 레이어(convolution layer)(601) 및 풀링 레이어(subsampling layer)(602)를 포함할 수 있다.
콘볼루션 레이어(601)는 입력 영상에 대해 다양한 콘볼루션 커널(kernel)을 적용하여 특징 맵(feature map)을 생성할 수 있다. 콘볼루션 레이어(601)는 특징을 추출하는 콘볼루션 필터 및 콘볼루션 필터의 값을 비선형(non-linear) 값으로 변환하는 액티베이션 함수(activation function)를 포함할 수 있다.
일 측면에 따르면, 복수의 특징 추출부들(501 내지 503) 내에 포함된 콘볼루션 레이어 각각은 특정 목적을 위해 설계될 수 있다. 예를 들어, 콘볼루션 레이어(601)는 미리 정해진 에지를 필터링 할 수 있다. 콘볼루션 레이어(601)에 포함된 콘볼루션 필터의 개수에 따라 콘볼루션 필터의 개수만큼 복수의 특징 맵들이 생성될 수 있다.
풀링 레이어(602)는 생성된 특징 맵의 해상도를 감소시킴으로써 특징 영상을 생성한다. 예를 들어, 풀링 레이어는 풀링(e.g. 맥스 풀링, 평균 풀링 등)을 통해 특징 맵의 해상도를 감소시킬 수 있다.
콘볼루션 레이어(601) 및 풀링 레이어(602) 사이의 노드들은 부분적으로 연결되고, 연결 가중치가 노드들 간에 공유될 수 있다.
제2 특징 추출부(502)에 포함된 콘볼루션 레이어의 필터는 제1 특징 추출부(501)에 포함된 콘볼루션 레이어(601)의 콘볼루션 필터에 비해 복잡한 에지를 필터링 할 수 있다. 제2 특징 추출부(502)에 포함된 풀링 레이어는 풀링을 통하여, 제2 특징 추출부(502)의 콘볼루션 레이어에 의해 필터링된 특징 영상으로부터 대표 값을 추출할 수 있다.
완전 연결된 레이어들(Fully Connected Layers)(510)은 특징 영상이 나타내는 적어도 하나의 클래스를 인식하는 인식부일 수 있다. 완전 연결 레이어들(Fully Connected Layers)(510)에 포함된 노드들은 완전 연결되고, 노드의 연결 가중치가 개별적으로 설정될 수 있다.
완전 연결된 레이어들(Fully Connected Layers)(510)은 특징 추출부(500)에 포함된 레이어의 모든 노드들에 대응하는 값들에 기초하여 특징 벡터를 생성할 수 있다. 특징 벡터는 클래스일 수 있다.
도 5 및 6을 참조하여 전술된 레이어의 구성, 활성화 모델, 및 관련 알고리즘은 데이터의 종류 및 실시 목적에 따라 다양하게 변경될 수 있다.
도 7은 일 예에 따른 뉴럴 네트워크를 조정하는 방법의 흐름도이다.
도 4를 참조하여 전술된 단계(470)은 아래의 단계들(710 내지 730)을 포함한다.
단계(710)에서, 뉴럴 네트워크 조정 장치(300)는 검증 클래스 영상 및 클래스 영상 간의 메인 로스(main loss)를 계산한다. 메인 로스 만을 역 전파하여 뉴럴 네트워크를 조정하는 경우, 뉴럴 네트워크의 구조가 깊기 때문에 입력 단에 가까운 콘볼루션 네트워크까지 로스가 잘 전달되지 않을 수 있다. 로스 전달의 효율성을 증가시키기 위해, 콘볼루션 네트워크에 직접적으로 로스를 제공하는 방법이 이용될 수 있다.
단계(720)에서, 뉴럴 네트워크 조정 장치(300)는 검증 클래스 영상 및 특징 영상에 기초하여 보조 로스(auxiliary loss)를 계산한다. 보조 로스는 콘볼루션 네트워크에 직접적으로 제공되는 로스일 수 있다.
특징 영상은 콘볼루션 네트워크에 의해 생성된 영상이므로, 검증 클래스 영상의 크기와 특징 영상의 크기가 서로 대응되지 않는다. 또한, 특징 영상은 특징 맵에 관한 영상이고, 검증 클래스 영상은 클래스를 나타내고 있는 영상이므로 영상들이 나타내는 정보의 도메인이 일치하지 않는다. 보조 로스를 계산하기 위해 영상들 간의 도메인을 서로 일치시키는 과정이 요구된다. 상기의 과정에 대해, 아래에서 도 8 내지 11을 참조하여 상세히 설명된다.
단계(730)에서, 뉴럴 네트워크 조정 장치(300)는 메인 로스 및 보조 로스에 기초하여 뉴럴 네트워크를 조정한다.
로스는 역 전파 방법을 통해 디콘볼루션 레이어들, 완전 연결된 레이어들(Fully Connected Layers)(510), 및 콘볼루션 레이어들로 역 전파될 수 있다. 역 전파된 로스에 기초하여, 디콘볼루션 레이어들, 완전 연결된 레이어들(Fully Connected Layers)(510) 및 콘볼루션 레이어들 내의 연결 가중치들이 조정될 수 있다.
뉴럴 네트워크 조정 장치(300)는 출력 단으로부터 입력 단으로 메인 로스를 역 전파하고, 콘볼루션 네트워크로부터 보조 로스를 역 전파할 수 있다. 로스를 감소시키는 방향으로 뉴럴 네트워크가 조정될 수 있다. 예를 들어, 콘볼루션 네트워크 및 디콘볼루션 네트워크를 구성하는 레이어들을 연결하는 노드들의 가중치가 변경됨으로써 뉴럴 네트워크가 조정될 수 있다. 다른 예로, 콘볼루션 필터 및 디콘볼루션 필터를 구성하는 가중치가 조정될 수 있다.
도 8은 일 예에 따른 보조 로스를 계산하는 방법의 흐름도이다.
도 7을 참조하여 전술된 단계(720)는 아래의 단계들(810 내지 830)을 포함한다.
단계(810)에서, 뉴럴 네트워크 조정 장치(300)는 검증 클래스 영상의 크기를 특징 영상의 크기에 대응하도록 축소함으로써 축소 검증 클래스 영상을 생성한다. 뉴럴 네트워크 조정 장치(300)는 풀링 또는 샘플링을 이용하여 축소 검증 클래스 영상을 생성할 수 있다.
일 측면에 따르면, 검증 클래스 영상의 크기가 720 x 480이고, 축소 검증 클래스 영상의 크기가 180 x 120일 수 있다. 검증 클래스 영상의 4개 픽셀들이 이용되어 축소 검증 클래스 영상의 1개의 픽셀(타겟 픽셀)이 결정될 수 있다. 예를 들어, 인접한 4개 픽셀들이 블록을 형성하는 경우, 블록의 좌측 상단에 위치한 픽셀이 타겟 픽셀로 결정될 수 있다(균일한 샘플링(uniform sampling)). 다른 예로, 4개 픽셀들이 나타내는 클래스들 중 최빈 클래스(mode class)가 타겟 픽셀의 클래스로 결정될 수 있다.
단계(820)에서, 뉴럴 네트워크 조정 장치(300)는 특징 영상에 대한 보조 클래스 영상을 생성한다. 특징 영상은 특징 맵에 관한 영상이고, 축소 검증 클래스 영상은 클래스를 나타내고 있는 영상이므로 영상들이 나타내는 정보의 도메인이 일치하지 않는다. 도메인을 서로 일치시키기 위해 특징 영상을 이용하여 보조 클래스 영상이 생성된다. 예를 들어, 필터를 이용하여 특징 영상이 보조 클래스 영상으로 변환될 수 있다.
단계(830)에서, 뉴럴 네트워크 조정 장치(300)는 축소 검증 클래스 영상 및 보조 클래스 영상에 기초하여 보조 로스를 계산한다.
도 9는 일 예에 따른 메인 로스 및 보조 로스에 기초하여 뉴럴 네트워크를 조정하는 방법을 도시한다.
뉴럴 네트워크는 입력 영상(210)에 기초하여 클래스 영상(240)을 생성한다. 입력 영상(210)에 대해 검증 클래스 영상(910)이 미리 설정된다. 검증 클래스 영상(910)은 입력 영상(210)의 클래스를 ground truth 값으로 표현한 영상이다. 검증 클래스 영상(910) 및 클래스 영상(240) 간의 차이가 메인 로스(911)로 계산된다. 축소 검증 클래스 영상(920) 및 특징 영상(220)에 기초하여 생성된 보조 클래스 영상 간의 차이가 보조 로스(921)로 계산된다. 보조 로스(921)의 개수는 콘볼루션 네트워크에 포함된 콘볼루션 레이어들의 개수에 대응할 수 있다. 메인 로스(911) 및 보조 로스(921)가 역 전파됨으로써 뉴럴 네트워크가 조정된다.
도 10은 일 예에 따른 축소 검증 클래스 영상을 생성하는 방법을 도시한다.
도 8을 참조하여 전술된 단계(810)는 아래의 단계들(1010 내지 1030)을 포함한다.
단계(1010)에서, 뉴럴 네트워크 조정 장치(300)는 검증 클래스 영상을 미리 설정된 크기의 복수의 블록들로 분할한다. 블록의 크기는 특징 영상에 따라 변화할 수 있다. 예를 들어, 특징 영상이 작을수록 블록의 크기가 커질 수 있다.
단계(1020)에서, 뉴럴 네트워크 조정 장치(300)는 타겟 블록에 대한 대표 클래스를 결정한다. 타겟 블록에 포함된 픽셀들이 나타내는 클래스들 중 최빈 클래스(mode class)가 결정될 수 있고, 타겟 블록 내의 최빈 클래스가 대표 클래스로 결정된다.
단계(1030)에서, 뉴럴 네트워크 조정 장치(300)는 대표 클래스에 기초하여 축소 검증 클래스 영상을 생성한다.
도 11은 일 예에 따른 축소 검증 클래스 영상을 도시한다.
검증 클래스 영상(910)이 복수의 블록들로 분할된다. 예를 들어, 생성될 축소 검증 클래스 영상(1110)의 크기가 검증 클래스 영상(910)의 크기에 비해 1/16인 경우, 검증 클래스 영상(910)의 16개의 픽셀들이 하나의 블록에 포함될 수 있다.
타겟 블록(1100)은 제1 클래스(1101)를 나타내는 픽셀들, 제2 클래스(1102)를 나타내는 픽셀들, 및 제3 클래스(1103)를 나타내는 픽셀들을 포함한다. 제2 클래스(1102)를 나타내는 픽셀들의 개수가 가장 많으므로, 제2 클래스(1102)가 대표 클래스로 결정된다.
검증 클래스 영상(910)의 타겟 블록(1100)에 대응하는 축소 검증 클래스 영상(1110)의 픽셀(1111)이 제2 클래스(1102)로 결정된다.
도 12는 일 예에 따른 뉴럴 네트워크를 조정하는 방법들에 따라 측정된 로스를 도시한다.
도시된 결과에 따르면, 기존 풀링(conventional pooling)(예를 들어, 맥스 풀링 또는 균일한 샘플링)을 이용하여 축소 검증 클래스 영상을 생성하여 뉴럴 네트워크를 조정하는 방법이 최빈 풀링(mode pooing)을 이용하여 축소 검증 클래스 영상을 생성하여 뉴럴 네트워크를 조정하는 방법 보다 더 빨리 로스를 줄일 수 있음을 알 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
300: 뉴럴 네트워크 조정 장치
310: 통신부
320: 프로세서
330: 메모리
310: 통신부
320: 프로세서
330: 메모리
Claims (15)
- 입력 영상의 장면을 적어도 하나의 클래스로 구분하기 위해 이용되는 뉴럴 네트워크(Neural Network)를 조정하는 방법에 있어서,
입력 영상에 콘볼루션 네트워크를 적용함으로써 상기 입력 영상의 크기보다 작은 크기를 갖는 특징 영상을 생성하는 단계;
상기 특징 영상이 나타내는 적어도 하나의 클래스(class)를 결정하는 단계;
상기 특징 영상에 디콘볼루션 네트워크를 적용함으로써 상기 입력 영상의 크기에 대응하는 크기를 갖는 클래스 영상을 생성하는 단계;
상기 입력 영상에 대해 미리 설정된 검증 클래스 영상을 이용하여 상기 클래스 영상의 로스(loss)를 계산하는 단계; 및
상기 로스에 기초하여 상기 뉴럴 네트워크를 조정하는 단계
를 포함하고,
상기 뉴럴 네트워크는 상기 콘볼루션 네트워크 및 상기 디콘볼루션 네트워크를 포함하는,
뉴럴 네트워크 조정 방법.
- 제1항에 있어서,
상기 로스에 기초하여 상기 뉴럴 네트워크를 조정하는 단계는,
상기 검증 클래스 영상 및 상기 클래스 영상 간의 메인 로스(main lose)를 계산하는 단계;
상기 검증 클래스 영상 및 상기 특징 영상에 기초하여 보조 로스(auxiliary loss)를 계산하는 단계; 및
상기 메인 로스 및 상기 보조 로스에 기초하여 상기 뉴럴 네트워크를 조정하는 단계
를 포함하는,
뉴럴 네트워크 조정 방법.
- 제2항에 있어서,
상기 검증 클래스 영상 및 상기 특징 영상에 기초하여 보조 로스를 계산하는 단계는,
상기 검증 클래스 영상의 크기를 상기 특징 영상의 크기에 대응하도록 축소함으로써 축소 검증 클래스 영상을 생성하는 단계;
상기 특징 영상에 대한 보조 클래스 영상을 생성하는 단계; 및
상기 축소 검증 클래스 영상 및 상기 보조 클래스 영상에 기초하여 상기 보조 로스를 계산하는 단계
를 포함하는,
뉴럴 네트워크 조정 방법.
- 제3항에 있어서,
상기 검증 클래스 영상의 크기를 상기 특징 영상의 크기에 대응하도록 축소함으로써 축소 검증 클래스 영상을 생성하는 단계는,
상기 검증 클래스 영상을 미리 설정된 크기의 복수의 블록들로 분할하는 단계;
타겟 블록에 대한 대표 클래스를 결정하는 단계; 및
상기 대표 클래스에 기초하여 상기 축소 검증 클래스 영상을 생성하는 단계
를 포함하는,
뉴럴 네트워크 조정 방법.
- 제4항에 있어서,
상기 타겟 블록에 대한 대표 클래스를 결정하는 단계는,
상기 타겟 블록 내의 최빈 클래스(mode class)를 상기 대표 클래스로 결정하는 단계
를 포함하는,
뉴럴 네트워크 조정 방법.
- 제1항에 있어서,
상기 뉴럴 네트워크는 차량에 탑재된 카메라에 의해 촬영된 영상을 처리하기 위해 이용되는,
뉴럴 네트워크 조정 방법.
- 제1항에 있어서,
상기 계산된 로스가 미리 설정된 임계값 미만인 경우 상기 뉴럴 네트워크의 조정을 중단하는 단계
를 더 포함하는,
뉴럴 네트워크 조정 방법.
- 제1항 내지 제7항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
- 입력 영상의 장면을 적어도 하나의 클래스로 분할하기 위해 이용되는 뉴럴 네트워크(Neural Network)를 조정하는 뉴럴 네트워크 조정 장치는,
뉴럴 네트워크를 조정하는 프로그램이 기록된 메모리; 및
상기 프로그램을 수행하는 프로세서
를 포함하고,
상기 프로그램은,
입력 영상에 콘볼루션 네트워크를 적용함으로써 상기 입력 영상의 크기보다 작은 크기를 갖는 특징 영상을 생성하는 단계;
상기 특징 영상이 나타내는 적어도 하나의 클래스(class)를 결정하는 단계;
상기 특징 영상에 디콘볼루션 네트워크를 적용함으로써 상기 입력 영상의 크기에 대응하는 크기를 갖는 클래스 영상을 생성하는 단계;
상기 입력 영상에 대해 미리 설정된 검증 클래스 영상을 이용하여 상기 클래스 영상의 로스(loss)를 계산하는 단계; 및
상기 로스에 기초하여 상기 뉴럴 네트워크를 조정하는 단계
를 수행하고,
상기 뉴럴 네트워크는 상기 콘볼루션 네트워크 및 상기 디콘볼루션 네트워크를 포함하는,
뉴럴 네트워크 조정 장치.
- 제9항에 있어서,
상기 로스에 기초하여 상기 뉴럴 네트워크를 조정하는 단계는,
상기 검증 클래스 영상 및 상기 클래스 영상 간의 메인 로스(main lose)를 계산하는 단계;
상기 검증 클래스 영상 및 상기 특징 영상에 기초하여 보조 로스(auxiliary loss)를 계산하는 단계; 및
상기 메인 로스 및 상기 보조 로스에 기초하여 상기 뉴럴 네트워크를 조정하는 단계
를 포함하는,
뉴럴 네트워크 조정 장치.
- 제10항에 있어서,
상기 검증 클래스 영상 및 상기 특징 영상에 기초하여 보조 로스를 계산하는 단계는,
상기 검증 클래스 영상의 크기를 상기 특징 영상의 크기에 대응하도록 축소함으로써 축소 검증 클래스 영상을 생성하는 단계;
상기 특징 영상에 대한 보조 클래스 영상을 생성하는 단계; 및
상기 축소 검증 클래스 영상 및 상기 보조 클래스 영상에 기초하여 상기 보조 로스를 계산하는 단계
를 포함하는,
뉴럴 네트워크 조정 장치.
- 제11항에 있어서,
상기 검증 클래스 영상의 크기를 상기 특징 영상의 크기에 대응하도록 축소함으로써 축소 검증 클래스 영상을 생성하는 단계는,
상기 검증 클래스 영상을 미리 설정된 크기의 복수의 블록들로 분할하는 단계;
타겟 블록에 대한 대표 클래스를 결정하는 단계; 및
상기 대표 클래스에 기초하여 상기 축소 검증 클래스 영상을 생성하는 단계
를 포함하는,
뉴럴 네트워크 조정 장치.
- 제12항에 있어서,
상기 타겟 블록에 대한 대표 클래스를 결정하는 단계는,
상기 타겟 블록 내의 최빈 클래스(mode class)를 상기 대표 클래스로 결정하는 단계
를 포함하는,
뉴럴 네트워크 조정 장치.
- 제9항에 있어서,
상기 뉴럴 네트워크는 차량에 탑재된 카메라에 의해 촬영된 영상을 처리하기 위해 이용되는,
뉴럴 네트워크 조정 장치.
- 제9항에 있어서,
상기 프로그램은,
상기 계산된 로스가 미리 설정된 임계값 미만인 경우 상기 뉴럴 네트워크의 조정을 중단하는 단계
를 더 수행하는,
뉴럴 네트워크 조정 장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180059717A KR102718664B1 (ko) | 2018-05-25 | 영상 처리를 위한 네트워크 조정 방법 및 장치 | |
US16/416,898 US11087185B2 (en) | 2018-05-25 | 2019-05-20 | Image processing method and apparatus with neural network adjustment |
US17/368,917 US11636698B2 (en) | 2018-05-25 | 2021-07-07 | Image processing method and apparatus with neural network adjustment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180059717A KR102718664B1 (ko) | 2018-05-25 | 영상 처리를 위한 네트워크 조정 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190134272A true KR20190134272A (ko) | 2019-12-04 |
KR102718664B1 KR102718664B1 (ko) | 2024-10-18 |
Family
ID=
Also Published As
Publication number | Publication date |
---|---|
US20190362200A1 (en) | 2019-11-28 |
US11087185B2 (en) | 2021-08-10 |
US20210334609A1 (en) | 2021-10-28 |
US11636698B2 (en) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109886997B (zh) | 基于目标检测的识别框确定方法、装置及终端设备 | |
KR102463175B1 (ko) | 객체 인식 방법 및 장치 | |
KR102696652B1 (ko) | 스테레오 매칭 방법 및 영상 처리 장치 | |
US10810745B2 (en) | Method and apparatus with image segmentation | |
US10402680B2 (en) | Methods and apparatus for image salient object detection | |
JP6897335B2 (ja) | 学習プログラム、学習方法および物体検知装置 | |
CN109791695B (zh) | 基于图像块的运动向量确定所述块的方差 | |
KR102476022B1 (ko) | 얼굴검출 방법 및 그 장치 | |
EP4252148A1 (en) | Lane line detection method based on deep learning, and apparatus | |
KR20170091496A (ko) | 양안 시차 영상의 처리 방법 및 장치 | |
CN110751040B (zh) | 一种三维物体的检测方法和装置、电子设备、存储介质 | |
US11195083B2 (en) | Object detection system and object detection method | |
KR20180109658A (ko) | 영상 처리 방법과 장치 | |
KR101833943B1 (ko) | 동영상의 주요 장면을 추출 및 탐색하는 방법 및 시스템 | |
CN113112525A (zh) | 目标跟踪方法、网络模型及其训练方法、设备和介质 | |
CN110853085A (zh) | 基于语义slam的建图方法和装置及电子设备 | |
CN111435457B (zh) | 对传感器获取的采集进行分类的方法 | |
CN113139567A (zh) | 信息处理装置及其控制方法、车辆、记录介质、信息处理服务器、信息处理方法 | |
KR101592087B1 (ko) | 배경 영상의 위치를 이용한 관심맵 생성 방법 및 이를 기록한 기록 매체 | |
KR20210109327A (ko) | 인공신경망의 학습 방법 및 장치 | |
KR20190134272A (ko) | 영상 처리를 위한 네트워크 조정 방법 및 장치 | |
CN116343143A (zh) | 目标检测方法、存储介质、路侧设备及自动驾驶系统 | |
CN107967691B (zh) | 一种视觉里程计算方法和装置 | |
KR102718664B1 (ko) | 영상 처리를 위한 네트워크 조정 방법 및 장치 | |
CN109961083B (zh) | 用于将卷积神经网络应用于图像的方法和图像处理实体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |