KR102420465B1 - 슈퍼 해상도 딥 콘볼루션 뉴럴 네트워크 설계 시스템 및 방법 - Google Patents
슈퍼 해상도 딥 콘볼루션 뉴럴 네트워크 설계 시스템 및 방법 Download PDFInfo
- Publication number
- KR102420465B1 KR102420465B1 KR1020170136301A KR20170136301A KR102420465B1 KR 102420465 B1 KR102420465 B1 KR 102420465B1 KR 1020170136301 A KR1020170136301 A KR 1020170136301A KR 20170136301 A KR20170136301 A KR 20170136301A KR 102420465 B1 KR102420465 B1 KR 102420465B1
- Authority
- KR
- South Korea
- Prior art keywords
- convolutional neural
- neural network
- cascade
- training
- layers
- Prior art date
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 221
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000012549 training Methods 0.000 claims abstract description 147
- 230000008569 process Effects 0.000 claims abstract description 29
- 238000009966 trimming Methods 0.000 claims description 74
- 238000012804 iterative process Methods 0.000 claims description 10
- 238000012360 testing method Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 238000004519 manufacturing process Methods 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000003384 imaging method Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 5
- 101100365548 Caenorhabditis elegans set-14 gene Proteins 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000010339 dilation Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 208000037909 invasive meningococcal disease Diseases 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 239000013585 weight reducing agent Substances 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4053—Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4046—Scaling of whole images or parts thereof, e.g. expanding or contracting 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
콘볼루션 뉴럴 네트워크 생성 방법이 제공된다. 상기 콘볼루션 뉴럴 네트워크 생성 방법은 세개 이상의 레이어를 갖는 콘볼루션 뉴럴 네트워크(CNN: Convolutional Neural Network)를 훈련하고, 훈련된 콘볼루션 뉴럴 네트워크에 캐스케이드(cascade) 훈련을 수행하여, 훈련 에러가 문턱값(threshold) 미만이 될 때까지 훈련된 콘볼루션 뉴럴 네트워크에 하나 이상의 중간 레이어(intermediate layer)를 삽입하는 것을 포함하되, 캐스케이드 훈련은 하나 이상의 스테이지(stage)의 반복 과정을 포함하고, 캐스케이드 훈련 반복 과정의 각각의 스테이지는, 현재의 콘볼루션 뉴럴 네트워크를 훈련하고, 훈련 에러가 수렴하는 중인지 결정하고, 훈련 에러가 수렴하는 중이면, 현재의 콘볼루션 뉴럴 네트워크에 각각의 중간 레이어의 가중치가 미리 결정된 값으로 세팅된 중간 레이어를 미리 설정한 개수만큼 삽입하고, 캐스케이드 훈련 반복 과정의 새로운 스테이지를 시작하는 것을 포함한다.
Description
본 발명은 일반적으로 이미지 슈퍼 해상도(super resolution)에 관한 것이고, 특히 캐스케이드 네트워크 훈련(cascade network training), 캐스케이드 네트워크 트리밍(cascade network trimming), 및 확장 콘볼루션(dilated colvolution)에 의한 효율적인 슈퍼 해상도 딥 콘볼루션 뉴럴 네트워크를 설계하는 시스템 및 방법에 관한 것이다.
슈퍼 해상도 이미징 기술은 저해상도(LR: Low Resolution) 이미지에서 고해상도(HR: High Resolution) 이미지를 생성할 수 있다. 슈퍼 해상도(SR: Super Resolution)는 감시(surveillance) 및 안면/홍채 인식에서 의료 이미지 처리에 이르기까지 광범위한 적용 범위를 가질 수 있다. 뿐만 아니라, 슈퍼 해상도 이미징 기술은 이미지 및 비디오의 해상도를 직접 개선할 수 있다. 슈퍼 해상도 이미징을 수행하기 위해 많은 알고리즘/시스템이 제안되었다.
예를 들어, 보간(interpolation)으로부터 슈퍼 해상도 이미징을 수행하기 위한 알고리즘/시스템은 [Li, Xin and Orchard, Michael, New edge-directed interpolation. IEEE Transactions on Image Processing (TIP), vol. 10, issue 10, pp. 1521-1527 (Oct. 2001)]를 참조한다. 또한, 예를 들어, 윤곽 특징(contour feature)으로부터 슈퍼 해상도 이미징을 수행하기 위한 알고리즘/시스템은 [Tai, Yu-Wing; Liu, Shuaicheng; Brown, Michael; and Lin, Stephen, Super resolution using edge prior and single image detail synthesis. 2010 IEEE Int'l Conference on Computer Vision and Pattern Recognition (CVPR), pp. 2400-2407]를 참조한다. 또한, 예를 들어, 사전 통계적 이미지(statistical image prior)에서 슈퍼 해상도 이미징을 수행하기 위한 알고리즘/시스템은 [Kim, Kwang In and Kwon, Younghee. Single-image super-resolution using sparse regression and natural image prior. IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), vol. 32, no. 6, pp. 1127-1133 (Jan. 2010)]를 참조한다. 또한, 예를 들어, 이웃 삽입(neighbor embedding)과 같은 패치 사전으로부터 학습하는 예제 기반의 방법에서 슈퍼 해상도 이미징을 수행하기 위한 알고리즘/시스템은 [Chang, Hong; Yeung, Dit-Yan; and Xiong, Yimin, Super-resolution through neighbor embedding, 2004 CVPR, pp. 275-282]를 참조한다. 또한, 예를 들어, 스파스 코딩(sparse coding)에서 슈퍼 해상도 이미징을 수행하기 위한 알고리즘/시스템은 [Yang, Jianchao; Wright, John; Huang, Thomas; and Ma, Yi, Image super-resolution via sparse representation. IEEE TIP, vol. 19, no. 11, pp. 2861-2873 (Nov. 2010)]를 참조한다.
최근에는, 콘볼루션 뉴럴 네트워크(CNN: Convolutional neural network)는 슈퍼 해상도의 정확도(accuracy)에 있어서 많은 개선을 제공하였다. 예를 들어, [Dong, Chao; Loy, Chen Change; He, Kaiming; and Tang, Xiaoou, Learning a deep convolutional network for image super-resolution, 2014 European Conference on Computer Vision (ECCV), pp. 184-199 (이후, "Dong et al. 2014"로 표기)]를 참조한다. 때때로 SRCNN으로 지칭되는 슈퍼 해상도 콘볼루션 네트워크는 작은 구조(예를 들어, 3개의 레이어 및/또는 작은 컨텍스트(context) 수신 영역)에 의해, 그 정확도가가 제한될 수 있다. 이에, 연구자들은 SRCNN의 크기를 증가시키는 것을 제안하였지만, 대부분의 제안은 많은 수의 파라미터들을 사용하므로, 이러한 SRCNN은 실시간으로 실행될 수 없다. 크기가 큰 네트워크 때문에, 적절한 학습 설정(즉, 학습률(learning rate)), 가중치 초기화, 및 가중치 감소를 추측하기가 매우 어려울 수 있다. 결과적으로, 훈련이 전혀 수렴하지 않거나 국소 최저치(local minimum)로 떨어질 수 있다.
본 발명은 적어도 본 명세서에 기술된 문제점들 및/또는 단점들을 해결하고, 적어도 이하에서 설명되는 이점들을 제공할 수 있다.
본 발명이 해결하고자 하는 기술적 과제는 콘볼루션 뉴럴 네트워크 생성 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 콘볼루션 뉴럴 네트워크 생성 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 칩셋 제조 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 콘볼루션 뉴럴 네트워크 장치를 테스트하는 방법을 제공하는 것이다.
그러나, 본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 콘볼루션 뉴럴 네트워크 생성 방법은, 세개 이상의 레이어를 갖는 콘볼루션 뉴럴 네트워크(CNN: Convolutional Neural Network)를 훈련하고, 훈련된 콘볼루션 뉴럴 네트워크에 캐스케이드(cascade) 훈련을 수행하여, 훈련 에러가 문턱값(threshold) 미만이 될 때까지 훈련된 콘볼루션 뉴럴 네트워크에 하나 이상의 중간 레이어(intermediate layer)를 삽입하는 것을 포함하되, 캐스케이드 훈련은 하나 이상의 스테이지(stage)의 반복 과정을 포함하고, 캐스케이드 훈련 반복 과정의 각각의 스테이지는, 현재의 콘볼루션 뉴럴 네트워크를 훈련하고, 훈련 에러가 수렴하는 중인지 결정하고, 훈련 에러가 수렴하는 중이면, 현재의 콘볼루션 뉴럴 네트워크에 각각의 중간 레이어의 가중치가 미리 결정된 값으로 세팅된 중간 레이어를 미리 설정한 개수만큼 삽입하고, 캐스케이드 훈련 반복 과정의 새로운 스테이지를 시작하는 것을 포함한다.
상기 기술적 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 콘볼루션 뉴럴 네트워크 생성 방법은, 세개 이상의 레이어를 갖는 콘볼루션 뉴럴 네트워크(CNN: Convolutional Neural Network)를 훈련하고, 훈련된 콘볼루션 뉴럴 네트워크의 캐스케이드 네트워크 트리밍(cascade network trimming)을 수행하는 것을 포함하되, 캐스케이드 네트워크 트리밍은 하나 이상의 스테이지(stage)의 반복 과정을 포함하고, 캐스케이드 네트워크 트리밍 반복 과정의 각각의 스테이지는, 하나 이상의 중간 레이어에서 필터의 면적을 감소시킴으로써, 현재의 콘볼루션 뉴럴 네트워크의 레이어를 설정된 개수만큼 트리밍하고, 훈련 에러가 수렴하는 중인지 여부를 결정하고, 훈련 에러가 수렴하는 중이면, 현재의 콘볼루션 뉴럴 네트워크의 모든 레이어가 트리밍되었는지 여부를 결정하고, 현재의 콘볼루션 뉴럴 네트워크의 모든 레이어가 트리밍된 경우, 현재의 콘볼루션 뉴럴 네트워크를 네트워크 트리밍된 콘볼루션 뉴럴 네트워크로 출력하고, 현재의 콘볼루션 뉴럴 네트워크의 모든 레이어가 트리밍되지 않은 경우, 캐스케이드 네트워크 트리밍 반복 과정의 새로운 스테이지를 시작하는 것을 포함한다.
상기 기술적 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 콘볼루션 뉴럴 네트워크 생성 장치는, 하나 이상의 비일시적 컴퓨터 판독가능한 매체, 및 적어도 하나의 프로세서를 포함하되, 적어도 하나의 프로세서는, 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령을 실행할 때, 세개 이상의 레이어를 갖는 콘볼루션 뉴럴 네트워크를 훈련하고, 훈련된 콘볼루션 뉴럴 네트워크에 캐스케이드 훈련을 수행하여, 훈련 에러가 문턱값 미만이 될 때까지 하나 이상의 중간 레이어를 삽입하고, 캐스케이드 훈련으로부터의 콘볼루션 네트워크 출력의 네트워크 트리밍을 수행한다.
상기 기술적 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 칩셋 제조 방법은, 적어도 하나의 프로세서는, 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령을 실행할 때, 세개 이상의 레이어를 갖는 콘볼루션 뉴럴 네트워크를 훈련하고, 훈련된 콘볼루션 뉴럴 네트워크에 캐스케이드 훈련을 수행하여, 훈련 에러가 문턱값 미만이 될 때까지 하나 이상의 중간 레이어를 삽입하고, 캐스케이드 훈련으로부터의 콘볼루션 네트워크 출력의 네트워크 트리밍을 수행하고, 하나 이상의 비일시적 컴퓨터 판독가능한 매체는, 명령을 저장한다.
상기 기술적 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 콘볼루션 뉴럴 네트워크 장치의 테스트 방법은, 콘볼루션 뉴럴 네트워크 생성 장치가 적어도 하나의 프로세서를 포함하는지 테스트하고, 콘볼루션 뉴럴 네트워크 생성 장치가 하나 이상의 비일시적 컴퓨터 판독가능한 매체를 포함하는지 테스트하는 것을 포함하되, 적어도 하나의 프로세서는, 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령을 실행할 때, 세개 이상의 레이어를 갖는 콘볼루션 뉴럴 네트워크를 훈련하고, 훈련된 콘볼루션 뉴럴 네트워크에 캐스케이드 훈련을 수행하여, 훈련 에러가 문턱값 미만이 될 때까지 하나 이상의 중간 레이어를 삽입하고, 캐스케이드 훈련으로부터의 콘볼루션 네트워크 출력의 네트워크 트리밍을 수행하고, 하나 이상의 비일시적 컴퓨터 판독가능한 매체는, 명령을 저장한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 몇몇 실시예에 따른 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)를 구성하는 방법을 설명하기 위한 예시적인 블록도이다.
도 2는 몇몇 실시예에 따른 캐스케이드 훈련을 설명하기 위한 예시적인 순서도이다.
도 3a 및 도 3b는 몇몇 실시예에 따른 캐스케이드 훈련과 종래의 훈련 방법과의 몇몇 차이점을 설명하기 위한 예시적인 도면이다.
도 4는 몇몇 실시예에 따른 캐스케이드 훈련 후 콘볼루션 뉴럴 네트워크(CNN)를 시작 및 종료하는 것을 설명하기 위한 도면이다.
도 5는 몇몇 실시예에 따른 캐스케이드 네트워크 트리밍을 설명하기 위한 예시적인 순서도이다.
도 6a 및 도 6b는 몇몇 실시예에 따른 네트워크 트리밍 방법들 사이의 차이점을 설명하기 위한 예시적인 도면이다.
도 7은 몇몇 실시예에 따른 필터 트리밍을 설명하기 위한 예시적인 도면이다.
도 8a 및 도 8b는 몇몇 실시예에 따른 확장 콘볼루션과 종래의 콘볼루션의 차이점을 설명하기 위한 예시적인 도면이다.
도 9는 몇몇 실시예에 따른 장치를 설명하기 위한 예시적인 도면이다.
도 10은 몇몇 실시예에 따른 장치의 제조 방법 및 테스트 방법을 설명하기 위한 예시적인 순서도이다.
도 11은 몇몇 실시예에 따른 캐스케이드 훈련된 콘볼루션 뉴럴 네트워크(CNN) 대 캐스케이드 훈련되지 않은 콘볼루션 뉴럴 네트워크(CNN)의 수렴 속도를 나타내는 예시적인 도면이다.
도 2는 몇몇 실시예에 따른 캐스케이드 훈련을 설명하기 위한 예시적인 순서도이다.
도 3a 및 도 3b는 몇몇 실시예에 따른 캐스케이드 훈련과 종래의 훈련 방법과의 몇몇 차이점을 설명하기 위한 예시적인 도면이다.
도 4는 몇몇 실시예에 따른 캐스케이드 훈련 후 콘볼루션 뉴럴 네트워크(CNN)를 시작 및 종료하는 것을 설명하기 위한 도면이다.
도 5는 몇몇 실시예에 따른 캐스케이드 네트워크 트리밍을 설명하기 위한 예시적인 순서도이다.
도 6a 및 도 6b는 몇몇 실시예에 따른 네트워크 트리밍 방법들 사이의 차이점을 설명하기 위한 예시적인 도면이다.
도 7은 몇몇 실시예에 따른 필터 트리밍을 설명하기 위한 예시적인 도면이다.
도 8a 및 도 8b는 몇몇 실시예에 따른 확장 콘볼루션과 종래의 콘볼루션의 차이점을 설명하기 위한 예시적인 도면이다.
도 9는 몇몇 실시예에 따른 장치를 설명하기 위한 예시적인 도면이다.
도 10은 몇몇 실시예에 따른 장치의 제조 방법 및 테스트 방법을 설명하기 위한 예시적인 순서도이다.
도 11은 몇몇 실시예에 따른 캐스케이드 훈련된 콘볼루션 뉴럴 네트워크(CNN) 대 캐스케이드 훈련되지 않은 콘볼루션 뉴럴 네트워크(CNN)의 수렴 속도를 나타내는 예시적인 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자나 구성요소는 본 발명의 기술적 사상 내에서 제2 소자나 구성요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서, 슈퍼 해상도 콘볼루션 뉴럴 네트워크(SRCNN)를 생성하기 위해 새로운 접근법이 제공될 수 있다. 보다 정확하게는, 슈퍼 해상도 콘볼루션 뉴럴 네트워크(SRCNN)을 생성하기 위한 몇가지 새로운 기술들이 제공될 수 있다. 본 명세서에서, "캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN: Cascade Trained Super Resolution Convolutional Neural Network)"라는 용어는 이하에서 개시하는 모든 새로운 기술 또는 새로운 기술들 중 하나 이상을 지칭할 수 있다. 자율 가중치 초기화(unsupervised weight initialization)로 처음부터 모든 레이어를 훈련하는 현존하는 접근법들과 달리, 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)는 작은 네트워크(예를 들어, 3개의 레이어)로 훈련을 시작할 수 있다. 현재 네트워크가 훈련 에러를 적절히 감소시킬 수 없는 경우, 새로운 레이어가 네트워크에 점진적으로 삽입될 수 있다.
이러한 "캐스케이드 훈련" 전략을 사용하면, 더 많은 레이어들이 사용될 수록, 수렴이 더 쉬워지고 정확도가가 지속적으로 향상될 수 있다. 그러나, 깊이(depth)가 증가하더라도, 새로운 레이어의 특성으로 인해, 상대적인 네트워크 복잡도(complexity)가 증가하지 않을 수 있다. 조금 더 구체적으로, 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)의 새로운 레이어들의 모든 가중치는 무작위로 초기화되고, 학습률은 고정될 수 있다. 이는 파라미터를 조정하는데 많은 시간과 자원이 소요되는 접근법에 비해 많은 이점이 있을 수 있다. 후술할 13개의 레이어를 갖는 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)를 예로 들면, 정확도는 최신의 슈퍼 해상도(SR) 네트워크와 견줄 수 있는 반면, 처리 속도는 5배 이상 빠르고 사용하는 파라미터의 개수는 슈퍼 해상도(SR) 네트워크의 1/5배만 사용할 수 있다.
본 명세서에서, 저장 영역과 계산 복잡도를 감소시킴으로써 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)를 더 개선할 수 있는 "캐스케이드 네트워크 트리밍(cascade network trimming)"이 개시된다. 뿐만 아니라, 슈퍼 해상도 콘볼루션 뉴럴 네트워크(SRCNN)의 효율을 개선하기 위해, 종래의 콘볼루션 계산을 수행하는 대신 "확장 콘볼루션(dilated convolution)"을 이용하여, 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN) 모델의 복잡도를 더 감소시킬 수 있다.
이하에서, 다음 순서로 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)의 방식/특징에 대해 설명한다.
I. 캐스케이드 훈련(Cascade training)
II. 캐스케이드 네트워크 트리밍(Cascade network trimming)
III. 확장 콘볼루션(Dilated convolution)
이러한 세가지 방법/기술들은 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)에서 논의되었지만, 본 발명의 기술 분야에서 통상의 지식을 가진자는 각각의 방법/기술들의 일부 또는 전부는 다른 슈퍼 해상도(SR) 방식 또는 콘볼루션 뉴럴 네트워크(CNN)에 적용할 수 있다.
도 1은 몇몇 실시예에 따른 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)를 구성하는 방법을 설명하기 위한 예시적인 블록도이다.
도 1을 참조하면, 훈련 세트가 준비될 수 있다. 훈련 세트는 저해상도(LR) 이미지에서 고해상도(HR) 이미지를 생성할 때 사용하기 위한, 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)가 학습하는 모델일 수 있다. 즉, 훈련 세트는, 저해상도(LR) 이미지와 이와 대응되는 고해상도(HR) 이미지의 세트일 수 있다(110).
각각의 저해상도(LR) 이미지는 바이 큐빅 업샘플링(bicubic upsampling)되고, 저해상도(LR)/고해상도(HR) 패치는 훈련을 위한 준비 과정에서 잘라질(cropped) 수 있다(120). 예를 들어, [Dong et al. 2014 and Dong, Chao; Loy, Chen Change; He, Kaiming; and Tang, Xiaoou, Image super-resolution using deep convolutional networks, IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), vol. 38, no. 2, pp. 295-307 (Feb. 2016) (이후, "Dong et al. 2016a"로 표기)]를 참조한다.
본 발명의 기술 분야에서 통상의 지식을 가진자가 이해할 수 있는 바와 같이, 훈련 전 준비(pre-training preparation)는 다양한 방식에 의해 준비될 수 있다. 몇몇 실시예에서, 훈련 전 준비로서 바이 큐빅 업샘플링 및 저해상도(LR)/고해상도(HR) 패치를 이용하였으나, 본 발명은 이에 제한되지 않는다.
캐스케이드 훈련이 수행되고(130), 케스케이드 네트워크 트리밍이 수행되면(140), 훈련 과정은 완료되고, 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)은 실제 생활에서 이용할 수 있다(150). 몇몇 실시예에 따른 케스케이드 훈련, 케스케이드 네트워크 트리밍에 관한 상세한 설명은 아래에서 설명한다.
비록 도 1에서는, 캐스케이드 훈련과 캐스케이드 네트워크 트리밍이 분리되고 별개의 스테이지/단계로 수행되는 것으로 도시되고 이에 따라 설명하였으나, 몇몇 실시예에서 이러한 스테이지/단계들은 중첩되어 구현될 수 있다. 다시 말해서, 캐스케이드 훈련과 캐스케이드 네트워크 트리밍은 동시에 수행되거나, 동일한 스테이지/단계에서 수행될 수 있다.
I. 캐스케이드 훈련(cascade training)
도 2는 몇몇 실시예에 따른 캐스케이드 훈련을 설명하기 위한 예시적인 순서도이다.
도 2를 참조하면, 훈련 과정이 시작된다(205).
훈련은 스테이지 i =1에서 시작된다(210).
최초 네트워크는 b 개의 레이어로 시작하고, 훈련 에러가 수렴하거나(220) 훈련 에러가 문턱값보다 큰(250) 각각의 스테이지마다 c 개의 레이어가 추가될 수 있다. 그러므로, 각각의 스테이지 i 에서, c*( i -1)+b개의 레이어를 갖는 콘볼루션 뉴럴 네트워크(CNN)가 훈련될 수 있다. 다시 말해서, 스테이지 i =1일 때, b개의 레이어를 갖는 콘볼루션 뉴럴 네트워크(CNN)가 훈련될 수 있다. 스테이지 i =1 이후에는, 캐스케이드 훈련은 필요시 b 개의 레이어에 중간 레이어를 삽입할 수 있다. 구체적으로, 캐스케이드 훈련은 필요시 b 개의 레이어에 한번에 c 개의 레이어를 추가할 수 있다.
네트워크가 수렴을 시작하는지 여부를 결정한다(220). 예를 들어, 훈련 에러가 특정 양만큼씩 감소하는 것이 중단되었는지 여부를 결정할 수 있다.
만약 네트워크가 수렴을 시작하였으면, c개의 중간 레이어가 추가될 수 있다(230).
그리고, 다음 반복이 시작될 수 있다( i = i +1, 240). 이러한 반복 과정 동안, 중간 레이어들이 다른 레이어들의 가중치 행렬 크기에 영향을 미치지 않으므로, 새로운 레이어들은 임의의 가중치로 설정될 수 있다. 실제로 기존의 모든 레이어들은 이전의 가중치 행렬이 전달될 수 있다. 콘볼루션 뉴럴 네트워크(CNN)을 점점 더 깊게 만드는 이 캐스케이드 훈련 반복 과정은 훈련 에러가 문턱값보다 작아질 때까지 반복될 수 있다(250).
이후, 콘볼루션 뉴럴 네트워크(CNN) 모델은 출력될 수 있다(255).
도 3a 및 도 3b는 몇몇 실시예에 따른 캐스케이드 훈련과 종래의 훈련 방법과의 몇몇 차이점을 설명하기 위한 예시적인 도면이다.
도 3a에는 도 2의 순서도의 예시가 도시되었다. 도 3a에서 가장 위쪽 (310)에서 보여지는 바와 같이, 훈련될 최초 콘볼루션 뉴럴 네트워크(CNN)를 의미하는 레이어 개수 b 는 3일 수 있다. 또한, 각 스테이지에서 추가되는 레이어의 개수 c 는 1일 수 있다. 각각의 새로운 레이어는 가중치가 무작위로 설정될 수 있다. 반면, 각각의 이미 존재하던 레이어들은 이전의 스테이지로부터 각각의 이미 존재하던 레이어들의 가중치들이 전달될 수 있다. 매 스테이지에서 새롭게 삽입되는 중간 레이어들로 인해, 콘볼루션 뉴럴 네트워크(CNN)는 점점 깊어질 수 있다. 각각의 스테이지에서, 더 깊어진 콘볼루션 뉴럴 네트워크(CNN)는 다시 훈련될 수 있다. 대부분의 가중치들은 이전 스테이지에서 물려받기 때문에, 계속되는 재-훈련은, 심지어 고정 학습율(fixed learning rate)을 이용하더라도 상대적으로 쉬울 수 있다.
그러나, 도 3b에 보여지는 바와 같이, 종래의 방법은 동시에 조정되어야 하는 "완전한" 레이어 세트로 시작한다. 도 3b에 보여지는 바와 같이, 동시에 모든 레이어들을 훈련하는 것은 도 3a의 방식에 비해 매우 복잡하여, 수렴이 느릴 수 있다. 캐스케이드 훈련은 얕은 네트워크를 수렴할 때까지 훈련할 수 있다. 이어서, 이전에 훈련된 레이어는 보존하는 반면, 점진적으로 무작위의 가중치를 갖는 레이어를 삽입하여 깊은 네트워크를 생성할 수 있다. 이어서, 깊은 네트워크가 수렴할 때까지 전체 네트워크를 훈련할 수 있다. 게다가, 캐스케이드 훈련은 간단하게 학습율을 고정할 수 있다. 또한, 캐스케이드 훈련은 무작위의 값을 갖는 새로운 레이어를 생성할 수 있다.
도 4는 몇몇 실시예에 따른 캐스케이드 훈련 후 콘볼루션 뉴럴 네트워크(CNN)를 시작 및 종료하는 것을 설명하기 위한 도면이다.
x 는 보간된(interpolated) 저해상도(LR) 이미지를 나타내고, y 는 이와 매칭되는 고해상도(HR) 이미지를 나타낸다. N 세트의 샘플을 갖는 훈련 세트 {( x i , y i ), i = 1, ..., N }가 주어지면, 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)의 목표는 고해상도(HR) 출력 = g(x)을 예측하는 모델 g 를 학습하는 것이다. 훈련하는 동안, 훈련 세트에서 평균 제곱 에러(MSE: Mean Square Error) 가 최소화될 수 있다.
도 4의 (A)에서, 캐스케이드 훈련은 3개의 레이어 모델에서 시작할 수 있다( b =3). 첫번째 레이어(410)는 64개의 9×9 필터로 구성될 수 있다. 두번째 레이어(413)와 세번째 레이어(415)는 32개의 5×5 필터로 구성될 수 있다. (새로운 레이어의) 모든 가중치는 s = 0.001를 갖는 가우시안 함수(Gaussian function)로 무작위하게 초기화 될 수 있다. 모든 콘볼루션은 스트라이드 1(stride 1)을 가질 수 있다. "스트라이드(stride)"는 콘볼루션 레이어의 하이퍼 파라미터(hyperparameter) 중 하나이며, 영역 면적(너비와 높이) 주변의 깊이 열(depth column)을 할당하는 방법을 제어할 수 있다. 달리 말하면, 스트라이드는 필터가 입력 볼륨(input volume) 주변에서 콘볼루션 하는 방식을 나타낼 수 있다. "스트라이드 1(stride 1)"은 필터가 입력 볼륨 주변에서 한번에 하나의 픽셀(pixel)을 콘볼루션하는 것일 수 있다. "스트라이드 2(stride 2)"는 필터가 입력 볼륨 주변에서 한번에 두개의 픽셀을 콘볼루션하는 것일 수 있다. 예를 들어, ["Convolutional neural network," downloaded on June 5, 2017 from Wikipedia at https://en.wikipedia.org/wiki/Convolutional_neural_network; "A Beginner's Guide to Understanding Convolutional Networks - Part 2," downloaded on June 5, 2017 from https://adeshpande3.github.io/A-Beginner%27s-Guide-To-Understanding-Convolutional-Neural-Networks-Part-2/]의 정의를 참조한다.
다시 도 4의 (A)를 참조하면, 현재 스테이지의 평균 제곱 에러(MSE)가 현저히 감소하는 것을 멈추었을 때, 예를 들어, 한 시점에서 에러가 3% 미만으로 감소하면, 훈련은 다음 스테이지로 진행할 수 있다. 예를 들어, 도 2의 단계 220을 참조한다. 몇몇 실시예에서, 훈련되는 속도를 증가시키기 위해, 각 스테이지에서 두개의 새로운 레이어가 네트워크로 삽입될 수 있다. 즉, 도 2의 단계 230에서 c =2일 수 있다. 그러므로, 도 4의 (A)에 도시된 바와 같이, 훈련은 3개의 레이어에서 시작하여, 5개의 레이어, 7개의 레이어, ... , 5개의 스테이지가 진행된 후 결국 13개의 레이어에 도달할 수 있다. 각각의 새로운 레이어는 32개의 3×3필터로 구성될 수 있다. 이 크기는 콘볼루션 뉴럴 네트워크(CNN)가 점점 깊어지고 있는 중에도 소규모 네트워크를 보장할 수 있다. 새로운 중간 레이어들은 마지막 32개의 5×5필터 바로 앞에 삽입될 수 있다. 현재 진행 중인 스테이지에서, 기존에 존재하는 레이어들의 가중치는 이전의 스테이지에서 물려받은 것일 수 있다. 2개의 새로운 레이어들의 가중치는 항상 무작위(s = 0.001인 가우시안 분포)로 초기화될 수 있다. 새로운 콘볼루션 레이어는 특징 맵(feature map)의 크기를 감소시킬 것이기 때문에, 2개의 픽셀은 각각의 모든 새로운 중간 3×3 레이어에서 제로 패딩(zero-padding)될 수 있다. 결과적으로, 캐스케이드 훈련에서 모든 스테이지들은 동일한 크기의 출력을 가질 수 있으므로, 훈련 세트들이 공유될 수 있다.
네트워크가 깊어짐에 따라, 종래의 훈련 방법은 수렴하기가 점점 더 어려워진다. 예를 들어, [Dong et al. 2016a]의 슈퍼 해상도 콘볼루션 뉴럴 네트워크(SRCNN)는 레이어가 3개를 초과하는 경우, 뛰어난 성능을 보이는데 실패하였다. [Kim, Jiwon; Lee, Jung Kwon; and Lee, Kyoung Mu, Accurate image super-resolution using very deep convolutional networks, 2016 CVPR, pp. 1646-1654 (이후, "VDSR"로 표기)]에서는, 높은 초기 학습율이 조정되고, 점차적으로 감소하였다. 그러나, 매우 다양한 학습 세트(예를 들어, 160,000개의 이미지로부터 3천만개 이상의 패치)를 사용하면, 높은 학습율이 제대로 작동하지 않는다. 이러한 문제의 잠재적 이유는 높은 학습율은 그레디언트 손실/폭발(vanishing/exploding gradients)을 야기하기 때문이다.
캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)에서, 각 스테이지에서 소수의 가중치만 무작위로 초기화되어 수렴이 상대적으로 쉬울 수 있다. 감소 없이 고정 학습율 0.0001을 유지하는 것도, 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)의 모든 레이어들에 대해 가능할 수 있다. 훈련을 가속화하기 위해서, 첫번째 스테이지의 학습율만 변화시킬 수 있다. 예를 들어, 첫번째 스테이지의 학습율을 0.001로 설정할 수 있다. 실험/시뮬레이션 결과에서, 도 4의 (B)에서의 13개의 레이어 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)는, [VDSR or Kim, Jiwon; Lee, Jung Kwon; and Lee, Kyoung Mu, Deeply-recursive convolutional network for image super-resolution, 2016 CVPR, pp. 1637-1645(이후, "DRCN"로 표기)]와 같은 다른 네트워크와 비교하여 훨씬 적은 파라미터를 이용할지라도, 이미 최신 기술의 정확도에 도달하였다. 이와는 대조적으로, 비록 실험 결과 네트워크가 허용 가능한 에러로 수렴하지 못할 수도 있지만, 파라미터들을 조정하는데 있어서, 무작위로 초기화된 깊은 네트워크의 직접적인 훈련은 최적의 수렴을 위해 많은 노력이 필요할 수 있다.
아래의 표 1에서 볼 수 있듯이, 두개의 이미지 품질 메트릭(quality metric), 즉, 피크 신호 대 노이즈 비율(PSNR: Peak Signal to Noise Ratio) 및 구조 유사도(SSIM: structure similarity measure)이 측정될 때, 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)는 더 나은 품질과 더 빠른 속도에 도달하는 것을 알 수 있다. 게다가, 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)는 VDSR과 DRCN에 비해 더 세부적인 복구가 가능할 수 있다.
콘볼루션 뉴럴 네트워크(CNN)에 L 개의 레이어가 주어지면, i 번째 레이어는 개의 입력 채널, 개의 콘볼루션 커널(convolution kernel), 및 개의 필터를 갖는 것을 가정한다. i번째 레이어의 파라미터의 개수는 이다. 이 계산에서 바이어스(bias) 항은 무시된다. 그러면, 파라미터의 전체 개수는 이다. 그러므로, 예를 들어, 각 레이어가 64개 필터, 32개 필터, 1개의 필터인 3개의 레이어를 갖는 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)에서,이므로, 파라미터의 전체 개수는 이다.
피크 신호 대 노이즈 비(PSNR)/구조 유사도(SSIM)은 이미지 재구성 퀄리티를 측정하는데 이용될 수 있다. 피크 신호 대 노이즈 비(PSNR)은 이미지 픽셀의 최대 가능 출력과 충실도(fidelity)에 영향을 주는 손상 노이즈 사이의 비율이다. 으로 계산되고, 여기에서 평균 제곱 에러(MSE)는 실측 자료(ground truth)와 재구성된 이미지(SR 출력) 간에 계산된다. 더 큰 피크 신호 대 노이즈 비(PSNR)을 가질 수록 더 좋은 이미지 퀄리티를 갖는다. 피크 신호 대 노이즈 비(PSNR)의 최대값은 무한대이다. 예를 들어, ["Peak signal-to-noise ratio," downloaded on June 27, 2017 from Wikipedia at https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio]의 정의를 참조한다.
구조 유사도(SSIM)는 휘도 마스킹(luminance masking)과 대비 마스킹(contrast masking)을 통합하는 동안의 이미지 저하를 구조 정보의 저하로서 인식하는 인식 기반 모델이다. 구조 유사도(SSIM)는 인간의 시각과 피크 신호 대 노이즈 비(PSNR)보다 더 일치한다. 구조 유사도(SSIM)는 로 계산될 수 있다. 여기에서, x 는 재구성된 이미지, y 는 레퍼런스 이미지(실측 자료), 는 평균, 는 분산, 는 x 와 y 사이의 공분산, , 및 이다. 구조 유사도(SSIM)는 [0,1]사이에 배치된다. x 가 y 의 완벽한 복사본이라면, 구조 유사도(SSIM)는 1이 된다. 예를 들어, ["Structural Similarity," downloaded on June 27, 2017 from Wikipedia at https://en.wikipedia.org/wiki/Structural_similarity]의 정의를 참조한다.
파라미터의 개수 | PSNR | SSIM | 이미지 당 시간(초) | |
VDSR | >600,000 | 29.77 | 0.8314 | 0.17 |
DRCN | >1,000,000 | 29.76 | 0.8311 | 4.19 |
13-layer Cascade Trained ( only ) SRCNN | ~150,000 | 29.91 | 0.8324 | 0.03 |
Cascade trimmed 13-layer CT-SRCNN | ~120,000 | 29.91 | 0.8322 | 0.02 |
II. 캐스케이드 네트워크 트리밍(cascade network trimming)
대부분의 뉴럴 네트워크는 여분(redundancy)을 가질 수 있다. 이러한 여분을 제거하면, 효율이 명백히 개선될 수 있다. 몇몇 실시예에 따르면, 많은 수의 필터 및/또는 가중치들이, 정확도에 있어서 작은 영향을 끼치는 특정 레이어들로부터 제거될 수 있다.
이러한 기술/접근법(캐스케이드 네트워크 트리밍)은 위에서 언급한 캐스케이드 훈련에서 이용되거나, 캐스케이드 훈련과 독립적으로 이용될 수 있다. 수용할만한 정확도가나 성능을 갖는 딥 콘볼루션 뉴럴 네트워크가 주어지면, 동일한 네트워크 깊이를 유지하고 정확도를 저하시키지 않으면서, 네트워크 크기, 계산 복잡도(computational complexity), 및/또는 처리 시간을 줄이기 위한 기술/접근법이 필요하다.
캐스케이드 훈련과 유사하게, 캐스케이드 네트워크 트리밍은 반복 과정(iterative process)을 포함할 수 있다. 각각의 스테이지에서, 필터는 d 개의 레이어에서만 트리밍될 수 있다. 예를 들어, 스테이지 i 에서, L 개의 레이어를 갖는 네트워크에 대해 ( L -( i -1) d -1)번째 레이어에서 ( L - id )번째 레이어까지 트리밍될 수 있다. 예를 들어, 13개의 레이어를 갖는 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)에서 d =2 개의 레이어를 트리밍할 때, 첫번째 스테이지 i =1에서, 12번째 및 11번째 레이어가 트리밍되고 미세 조정(fine-tuning)될 수 있다. 수렴하면, 두번째 스테이지 i =2가 시작되고, 9번째 및 10번째 레이어가 트리밍될 수 있다. 이러한 절차는 모든 레이어들이 트리밍될 때까지 반복될 수 있다. 비록 상기 절차에서는 13번째 레이어가 무시된 것으로 설명하였지만, 본 발명이 이에 제한되는 것은 아니다. 예를 들어, 상기 절차는 첫번째 스테이지에서 12번째 및 13번째 레이어가 트리밍되고, 두번째 스테이지에서 10번째 및 11번째 레이어가 트리밍될 수 있다.
도 5는 몇몇 실시예에 따른 캐스케이드 네트워크 트리밍을 설명하기 위한 예시적인 순서도이다.
L 개의 레이어를 갖는 훈련된 콘볼루션 뉴럴 네트워크(CNN)에서 트리밍 과정이 시작될 수 있다(505).
스테이지 i =1에서 트리밍이 시작될 수 있다(510). 위에서 언급하였듯이, 하나의 스테이지에서는, 콘볼루션 뉴럴 네트워크(CNN)의 전체 N 개의 레이어 중 d 개의 레이어만 트리밍될 수 있다. 그러므로, ( L -( i -1) d -1)번째 레이어에서 ( L - id )번째 레이어가 스테이지 i 에서 트리밍될 수 있다(510).
미세 조정이 수행될 수 있다(520).
훈련 에러가 특정 양만큼씩 감소하는 것이 중단되었는지 여부를 결정할 수 있다(530).
만약 훈련 에러가 특정 양만큼씩 감소하는 것이 중단되면, 스테이지의 전체 개수와 스테이지당 트리밍되는 레이어의 개수의 곱이 전체 레이어의 개수보다 크거나 같은지 여부를 결정할 수 있다. 즉, id>=L 인지 여부를 결정할 수 있다(540).
만약 훈련 에러가 특정 양만큼씩 감소하는 것이 중단되지 않으면, 다시 미세 조정하는 단계(520)로 돌아갈 수 있다.
만약 스테이지의 전체 개수와 스테이지당 트리밍되는 레이어의 개수의 곱이 전체 레이어의 개수보다 크거나 같은 것으로 결정되면, 즉 "(id>=L)"이면, 과정은 종료되고, 트리밍된 콘볼루션 뉴럴 네트워크(CNN) 모델은 출력될 수 있다(565). 만약 스테이지의 전체 개수와 스테이지당 트리밍되는 레이어의 개수의 곱이 전체 레이어의 개수보다 작은 것으로 결정되면, 즉 "(id<L)"이면, 본 과정은 다음 스테이지로 넘어간다(550).
도 6a 및 도 6b는 몇몇 실시예에 따른 네트워크 트리밍 방법들 사이의 차이점을 설명하기 위한 예시적인 도면이다.
도 6a에서, 몇몇 실시예에 따르면, 스테이지당 콘볼루션 뉴럴 네트워크(CNN)의 하나의 레이어가 트리밍되고, 각 스테이지 사이에서 미세 조정이 수행될 수 있다. 반면, 도 6b에서, 몇몇 실시예에 따르면, 콘볼루션 뉴럴 네트워크(CNN)의 모든 레이어가 동시에 트리밍되고, 미세 조정될 수 있다. 도 6b에서의 동시에 모든 레이어들을 트리밍하고 미세 조정하는 것은 도 6a에서의 방식보다 훨씬 더 복잡할 수 있다.
캐스케이드 네트워크 트리밍은 레이어에서 전체 필터들을 트리밍하여 수행될 수 있다. 손실된 정확도를 복구하기 위해 수렴할때까지, 트리밍은 레이어별로 수행될 수 있고, 각각의 레이어나 레이어 그룹을 트리밍한 후에 미세 조정이 수행될 수 있다.
도 7은 몇몇 실시예에 따른 필터 트리밍을 설명하기 위한 예시적인 도면이다.
도 7에 도시된 바와 같이, 일단 필터가 트리밍되면, 인접한 레이어들에도 영향을 끼칠 수 있다. 도 7에서 필터(710, 점선 블록)가 i 번째 레이어에서 트리밍될 수 있다. n i = n i -1 -1일 때, i +1 번째 레이어에 있는 일부 가중치(720, 필터 안의 점선)도 역시 트리밍될 수 있다. 따라서, i 번째 레이어에 있는 필터를 트리밍하는 것은 i 번째 레이어와 i +1 번째 레이어 둘다 계산상의 비용을 감소시킬 수 있다. 콘볼루션 뉴럴 네트워크(CNN)에서, i +1 번째 레이어의 입력 채널의 개수는 i 번째 레이어의 필터(출력 채널)의 개수와 동일할 수 있다.
도 7에서, 트리밍하기 전, n i = 4개의 필터와 n i -1 = 5 개의 입력채널을 갖는 i 번째 레이어, 및 n i +1 =10 개의 필터와 n i = 4 개의 입력 채널을 갖는 i +1 번째 레이어가 존재한다고 가정한다. 만약 필터(710)가 i 번째 레이어에서 트리밍되면, 트리밍된 n i 는 3으로 감소할 수 있다. 그리고, n i +1 는 여전히 10일 수 있다. i +1 번째 레이어에 있는 부분(720)은 트리밍된 가중치일 수 있다. 그리고 이는 곱셈에 대응되는 부분일 수 있다. 앞서 언급했듯이, i 번째 레이어에서 의 곱셈이 존재할 수 있고, i +1 번째 레이어에서 의 곱셈이 존재할 수 있다. n i 가 감소되기 때문에, i 번째 레이어와 i +1 번째 레이어 모두에서 곱셈의 결과는 감소될 수 있다.
어떤 필터가 트리밍될지 결정하기 위해 적절한 기준(criteria)이 이용될 수 있다. 몇몇 실시예에서 상대적 중요도(relative importance)의 측정이 이용될 수 있다. 조금 더 구체적으로, i 번째 레이어에 있는 j 번째 필터의 상대적 중요도 는 수학식 1에 나타나는 바와 같이 j 번째 필터의 모든 가중치의 제곱합일 수 있다. 여기에서 는 i 번째 레이어에 있는 j 번째 필터의 가중치 행렬이다.
[수학식 1]
따라서, 가장 작은 를 갖는 필터가 제거될 수 있다. 위에서 언급하였듯이, 필터(710)가 i 번째 레이어에서 트리밍되면, i +1 번째 레이어에 있는 일부 가중치(720) 또한 트리밍되어 i +1 번째 레이어에 있는 가중치는 가 될 수 있다. 그러므로, 를 계산할 때, 트리밍되지 않은 가중치 ("독립적인 가중치"로도 지칭될 수 있음) 가 수학식 3에서 이용되거나, 트리밍된 가중치 가 수학식 2에서 이용될 수 있다.
[수학식 2]
아래의 알고리즘은 레이어에서 필터를 트리밍하는 반복 과정에 대한 높은 수준의 설명을 제공한다.
[필터를 트리밍하기 위한 알고리즘]
다른 비율/문턱값을 갖는 및 으로, 서로 다른 트리밍된 모델들이 생성될 수 있다. 필터 트리밍이 인접한 레이어들에 영향을 끼칠 수 있기 때문에, 미세 조정은 필터 트리밍이 이용되는 대부분의 경우에서 정확도를 복구하기 위해 필요할 수 있다. 이와는 대조적으로, 가중치 프루닝(pruning)은 상대적으로 더 작은 영향을 끼칠 수 있다. 적절한 트리밍 비율(예를 들어, 0.2 미만)을 가지면, 미세 조정 없이도 정확도가 많이 감소되지 않을 수 있다.
III. 확장 콘볼루션(Dilated convolution)
확장 콘볼루션(dilated convolution, a` trous convolution)은 원래 파형 요소(wavelet) 분해를 위해 발전된 콘볼루션의 유형이다. 예를 들어, [Holschneider, M.; Kronland-Martinet, R.; Morlet, J.; and Tchamitchian, Ph., A Real-Time Algorithm for Signal Analysis with the Help of the Wavelet Transform in Wavelets: Time-Frequency Methods and Phase Space, J.M. Combes et al., eds., pp. 286-297 (1987)]를 참조한다. 그러나, 특히 복잡한 특징들을 얻기 위해 의미론적 분할(semantic segmentation)에 적용되었다. 예를 들어, [Yu, Fisher and Koltun, Vladlen, Multi-scale context aggregation by dilated convolutions, 2016 Int'l Conference on Learning Representations (ICLR) (hereinafter, "Yu et al. 2016")]를 참조한다.
풀링(pooling) 없이 콘볼루션 레이어들로 구성된 순수한 콘볼루션 네트워크에서, 특징 맵들은 입력에서 인접한 픽셀들을 콘볼루션하여 생성될 수 있기 때문에, 유닛의 수신 필드(receptive field)는 레이어별로 선형적으로만 성장할 수 있다. 수신 필드를 증가시키기 위한 실현 가능한 방법들은 더 큰 영역에서 입력 픽셀들을 콘볼루션하는 것이다. 이는 종래의 콘볼루션을 위해 기존의 밀집 커널(dense kernel)을 사용하는 것 대신, 확장 콘볼루션에서 '확장 커널(dilation kernel)을 사용하는 것과 유사할 수 있다.
는 이산 함수, 는 콘볼루션 커널, 및 확장 콘볼루션 는 아래의 수학식 3에 의해 정의된 바와 같이, 전형적인 콘볼루션의 일반화된 버전이라고 가정하면, 종래의 콘볼루션은 단순한 1-확장 콘볼루션일 수 있다(즉, d=1일 때). 여기에서, 는 확장 계수(dilation factor)이다.
[수학식 3]
콘볼루션 뉴럴 네트워크(CNN)에서 확장 콘볼루션을 적용하는 것의 한가지 이점은, 도 8a 및 도 8b에서 설명되는 바와 같이, 확장 버전은 더 큰 수신 필드를 갖는다는 점이다. 확장 콘볼루션 필터(dilated convolutional filter)는 오리지널 필터(original filter)를 업샘플링(upsampling)함으로써 얻을 수 있다. 즉, 오리지널 필터의 구성 요소(element) 사이에 0을 삽입함으로써 얻을 수 있다. 그러므로, 설계에 의해 확장된 필터는 0 구성 요소의 구조화된 패턴을 가질 수 있다. 0 요소가 무작위 패턴 및 위치를 갖는 가중치 프루닝(pruning)과 비교하면, 확장 필터는 0 가중치에 대한 구조화된 패턴을 가질 수 있고, 하드웨어(hardware)와 소프트웨어(software)에서의 계산 복잡도를 감소시키는데 훨씬 더 유용할 수 있다. 그러므로, 슈퍼 해상도(SR)의 경우, 몇몇 실시예에 따르면, 동일한 수신 필드를 갖는 비-확장 필터와 비교하여 계산 복잡도를 감소시키기 위해, 동일한 수신 필드를 유지하는 대신 이를 이용함으로써, 확장 필터는 종래의 사용 방식과는 다르게 배치될 수 있다.
도 8a 및 도 8b는 몇몇 실시예에 따른 확장 콘볼루션과 종래의 콘볼루션의 차이점을 설명하기 위한 예시적인 도면이다.
도 8b에서 종래의 콘볼루션이 스트라이드 2(stride 2)로 수행되는 반면, 도 8a에서는 스트라이드 1(stride 1)로 (곱셈-누적이 매 2픽셀마다 적용되는)2-확장 콘볼루션이 수행된다. 비록 도 8a 및 도 8b에서 (확장 버전에 대한 패딩을 갖는)동일한 특징 맵 크기를 갖지만, 2-확장 특징맵의 수신 필드는 종래의 수신 필드보다 더 크다. 콘볼루션 뉴럴 네트워크(CNN)에서, 입력 및 출력은 2D 특징맵이므로, 도 8a 또는 도 8b는 x-방향 또는 y-방향으로만 존재할 수 있다.
도 8b는 커널 크기가 3, 스트라이드 2(stride 2)인 종래의 콘볼루션의 예시이다. 여기에서, 입력은 7 개의 픽셀 신호(7개의 원으로 도시됨)이다. 도 8b에서, 인접한 3개의 픽셀은 모두 커널과 콘볼루션되고(연결 선으로 도시됨), 특징맵의 출력(사각형)을 생성할 수 있다. 먼저, 첫번째 픽셀에서 세번째 픽셀(사선이 그어진 원)이 커널과 콘볼루션되고, 특징맵의 첫번째 출력(사선이 그어진 사각형)이 생성된다. 다음 콘볼루션은 스트라이드가 2이기 때문에, 세번째에서 다섯번째 픽셀이 커널과 콘볼루션된다. 결국, 특징 맵의 출력은 3개의 구성요소와 수신 필드 3으로 구성될 수 있다.
반면, 도 8a는 커널 크기 3 및 스트라이드 1을 갖는 2-확장 콘볼루션의 예시이다. d -확장 콘볼루션에서, 콘볼루션은 매 d 픽셀마다 적용될 수 있다. 예를 들어, 2-확장 콘볼루션에서, 콘볼루션은 매 2픽셀마다 적용될 수 있다. 따라서, 특징 맵의 첫번째 출력(사선이 그어진 사각형)은 1번째, 3번째, 및 5번째 픽셀과 3x3 커널을 콘볼루션하여 생성될 수 있다. 다음 출력은 2번째, 4번째, 및 6번째 픽셀을 콘볼루션하여 생성될 수 있다.
몇몇 실시예에 따르면, 콘볼루션 뉴럴 네트워크(CNN)의 모든 레이어가 스트라이드 1을 갖는 콘볼루션에서, 확장 콘볼루션은 다른 방식으로 적용될 수 있다. 스트라이드 1을 갖는 콘볼루션 커널이 주어지면, 결과 특징 맵의 수신 필드는 이다. 만약, 2-확장 콘볼루션이 이용되면, 결과 특징 맵의 수신 필드는 일 수 있다. 예를 들어, 도 4에서 콘볼루션 커널을 갖는 1-확장 레이어(410)와 콘볼루션 커널을 갖는 1-확장 레이어(413)는, 각각 콘볼루션 커널을 갖는 2-확장 레이어와 콘볼루션 커널을 갖는 2-확장 레이어로 대체될 수 있다. 결과적으로, 네트워크는 동일한 크기의 수신 필드를 갖지만, 커널 크기가 작기 때문에 더 적은 파라미터를 가질 수 있다.
따라서, 몇몇 실시예에서, 콘볼루션 커널을 갖는 하나의 1-확장 레이어와 콘볼루션 커널을 갖는 두개의 1-확장 레이어는, 미세 조정을 수행하기 전에, 콘볼루션 커널을 갖는 하나의 2-확장 레이어와 콘볼루션 커널을 갖는 두개의 2-확장 레이어로 대체될 수 있다. [Yu et al. 2016]와는 달리, 본 발명의 몇몇 실시예에 따른 확장된 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(dilated CT-SRCNN)는 확장 레이어에 제로 패딩이 필요하지 않을 수 있다.
앞서 언급한 바와 같이, 많은 연구자들은 슈퍼 해상도 콘볼루션 뉴럴 네트워크(SRCNN)의 정확도와 효율을 증가시키기 위해, 예를 들어, 더 많은 레이어를 사용하거나(VDSR), 깊게 반복되는 구조를 사용하는(DRCN) 등, 많은 시도를 하고 있다. 다른 연구자들은 더 복잡한 네트워크를 이용하는 것을 제안하기도 한다. 예를 들어, [Wang, Zhaowen; Liu, Ding; Yang, Jianchao; Han, Wei; and Huang, Thomas, Deep networks for image super-resolution with sparse prior, 2015 IEEE Int'l Conference on Computer Vision (ICCV), pp. 370-378]는 학습된 반복 수축 및 문턱 알고리즘(learned iterative shrinkage and thresholding algorithm)에 기반한 피드-포워드 네트워크(feed-forward network) 이전의 스파스 표현(sparse representation)을 통합하였다.
VDSR은 레이어 수를 20 개로 늘리고 작은 필터를 사용하고 기울기를 조절할 수 있는 높은 학습 속도를 사용한다. 동일한 그룹은 또한 DRCN에서 반복-감독(recursive-supervision)과 스킵-커넥션(skip-connection)을 사용하여 깊은 반복 콘볼루션 뉴럴 네트워크(deep recursive CNN)를 설계하였다. [Dahl, Ryan; Norouzi, Mohammad; and Shlens, Jonathon, Pixel Recursive Super Resolution, arXiv 1702.00783 [22 Mar 2017]]를 참조한다.
다른 연구자들은 훈련 에러에 대한 평균 제곱 에러(MSE) 대신, 자연스러운 텍스처(texture)와 인간의 시각에 더 가까운 인식 손실(perception loss)를 이용하는 것을 선호한다. [Sonderby, Casper; Caballero, Jose; Theis, Lucas; Shi, Wenzhe; and Husza'r, Ferenc, Amortised MAP Inference for Image Super-resolution, arXiv 1610.04490 [21 Feb 2017]]는 콘볼루션 뉴럴 네트워크(CNN)를 직접 이용하여 MAP 추정이 계산된, 상각된 MAP 추정에 대한 방법을 소개하였다. [Johnson, Justin; Alahi, Alexandre; and Fei-Fei, Li, Perceptual losses for real-time style transfer and super-resolution, 2016 ECCV, pp. 694-711]는 이미지 변환 작업을 위한 피드-포워드 네트워크 학습을 위한 인식 손실 함수의 사용을 제안하였다. [Ledig, Christian, et al., Photo-realistic single image super-resolution using a generative adversarial network, arXiv 1609.04802 [13 Apr 2017]]는 ResNet을 사용하여, 자연스러운 텍스처와 유사한 이미지를 얻기 위해, SRGAN(Super Resolution Adversarial Network)을 제안하였다.
그러나, 위에서 언급한 이러한 작업들이 슈퍼 해상도(SR) 시스템의 정확도를 증가시키더라도, 증가된 정확도는 더 많은 레이어, 파라미터, 및/또는 더 어려윤 하이퍼 파라미터 튜닝 절차가 요구된다. 다시 말해서, 정확도의 향상의 이점은 복잡도의 극단적인 증가때문에 상쇄될 수 있다.
다른 연구자들은, 저해상도(LR) 영역에서 특징 맵들을 추출하고, 업스케일링 필터를 이용하여 훈련하는 것을 통해, 효율의 증가에 초점을 맞추었다. [Shi, Wenzhe, et al., Real-time Single Image and Video Super-Resolution Using an Efficient sub-pixel convolutional neural network, 2016 CVPR, pp. 1874-1883]는 저해상도(LR) 특성 맵을 고해상도(HR)출력으로 업스케일링하는 업스케일링 필터 어레이가 학습된 효율적인 서브 픽셀 콘볼루션 레이어를 소개한다. [Dong, Chao; Loy, Chen Change; and Tang, Xiaoou, Accelerating the super-resolution convolutional neural network. 2016 ECCV, pp. 391-407(이후, "Dong et al. 2016b"로 표기)]는 작은 필터, 디콘볼루션(deconvolution) 레이어, 및 특징 영역 축소(feature space shrinkage)를 통해 슈퍼 해상도 콘볼루션 뉴럴 네트워크(SRCNN)를 재설계하여, 정확도의 손실 없이 속도를 가속화하였다.
그러나, 업스케일링 레이어의 사용으로 인해, 이 네트워크의 패치 크기와 컨텍스트 수신 필드는 상대적으로 작다. 결과적으로, 업샘플된 저해상도(LR) 영역에서 특징 맵을 추출하는 것과 비교하여, 정확도는 상대적으로 작다.
반면, 본 명세서에 개시된 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)는, 더 깊어질 수 있고, 따라서 파라미터의 큰 조정없이도 고정확도(high accuracy)를 달성할 수 있다. 본 명세서에 게재된 최신의 선행 기술들과 비교해 보았을 때, 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)의 네트워크 크기는 훨씬 더 작다. 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)는 단일 GPU에서 해상도 720 × 480를 갖는 비디오의 20~25 프레임/초로 처리할 수 있다. 이러한 효과는 네트워크 트리밍과 확장 콘볼루션으로 인해 더 강화될 수 있다.
본 명세서에서, 정확도와 효율 모두 갖는, 슈퍼 해상도에 관한 딥 콘볼루션 뉴럴 네트워크(CNN)를 훈련하는 캐스케이드 훈련 방법이 설명된다. 캐스케이드 훈련은 네트워크가 상대적으로 작은 크기로 지속적으로 더 깊어지는 것을 보장할 수 있다. 몇몇 실시예에 따른 네트워크 트리밍 및 확장 콘볼루션은 네트워크 복잡도를 더 감소시킬 수 있다. 이미지와 비디오 데이터 세트의 벤치마크 실험 결과는 본 발명의 몇몇 실시예에 따른 방법이 최신의 다른 기술들과 비교하여, 성능 측면에서 경쟁적이고, 속도 측면에서 훨씬 더 빠른 속도를 갖는 것을 보여줄 수 있다.
본 명세서에서, 슈퍼 해상도(SR) 이미지의 프레임워크가 설명되었지만, 이러한 기술들은 노이즈 제거(denosing) 또는 이미지 복원(image restoration)과 같은 임의의 유형의 목적을 위해, 임의의 유형의 콘볼루션 뉴럴 네트워크(CNN)에 일반화될 수 있다.
도 9는 몇몇 실시예에 따른 장치를 설명하기 위한 예시적인 도면이다.
장치(900)는 적어도 하나의 프로세서(910)와 하나 이상의 비일시적 컴퓨터 판독가능한 매체(920)를 포함할 수 있다. 적어도 하나의 프로세서(910)는, 하나 이상의 비일시적 컴퓨터 판독가능한 매체(920)에 저장된 명령들을 실행할 때, 3개 이상의 레이어를 갖는 콘볼루션 뉴럴 네트워크(CNN)를 훈련하는 다음의 단계를 수행할 수 있다; 훈련된 콘볼루션 뉴럴 네트워크(CNN)에 훈련 에러가 문턱값 미만이 될 때까지 하나 이상의 중간 레이어를 삽입하는 캐스케이드 훈련을 수행하고, 캐스케이드 훈련으로부터 콘볼루션 뉴럴 네트워크(CNN) 출력의 네트워크 트리밍을 수행한다. 게다가, 하나 이상의 비일시적 컴퓨터 판독가능한 매체(920)는 적어도 하나의 프로세서(910)가 상기 단계를 수행하도록 하는 명령어를 저장할 수 있다.
도 10은 몇몇 실시예에 따른 장치의 제조 방법 및 테스트 방법을 설명하기 위한 예시적인 순서도이다.
장치(이 경우, 칩셋)가 적어도 하나의 프로세서와 하나 이상의 비일시적 컴퓨터 판독가능한 매체를 포함하여 제조된다. 적어도 하나의 프로세서는, 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령들을 실행할 때, 3개 이상의 레이어를 갖는 콘볼루션 뉴럴 네트워크(CNN)를 훈련하는 다음의 단계를 수행할 수 있다; 훈련된 콘볼루션 뉴럴 네트워크(CNN)에 훈련 에러가 문턱값 미만이 될 때까지 하나 이상의 중간 레이어를 삽입하는 캐스케이드 훈련을 수행하고, 캐스케이드 훈련으로부터 콘볼루션 뉴럴 네트워크(CNN) 출력의 네트워크 트리밍을 수행한다. 게다가, 하나 이상의 비일시적 컴퓨터 판독가능한 매체는 적어도 하나의 프로세서가 상기 단계를 수행하도록 하는 명령어를 저장할 수 있다(1050).
장치(이 경우, 칩셋)가 테스트된다(1060). 테스트(1060)는 장치가 적어도 하나의 프로세서를 갖는지 여부를 테스트하고, 장치가 하나 이상의 비일시적 컴퓨터 판독가능한 매체를 갖는지 여부를 테스트하는 것을 포함한다. 상기 적어도 하나의 프로세서는, 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령들을 실행할 때, 3개 이상의 레이어를 갖는 콘볼루션 뉴럴 네트워크(CNN)를 훈련하는 다음의 단계를 수행할 수 있다; 훈련된 콘볼루션 뉴럴 네트워크(CNN)에 훈련 에러가 문턱값 미만이 될 때까지 하나 이상의 중간 레이어를 삽입하는 캐스케이드 훈련을 수행하고, 캐스케이드 훈련으로부터 콘볼루션 뉴럴 네트워크(CNN) 출력의 네트워크 트리밍을 수행한다. 게다가, 상기 하나 이상의 비일시적 컴퓨터 판독가능한 매체는 적어도 하나의 프로세서가 상기 단계를 수행하도록 하는 명령어를 저장할 수 있다.
본 발명에 따른 몇몇 실시예와 관련하여, 통상의 지식을 가진 자라면 이해할 수 있듯이, 상술한 단계들 및/또는 동작들은 특정 실시예 및/또는 구현에 따라, 상이한 에포크들(epochs) 등에 대해 다른 순서 또는 병렬로, 또는 동시에 발생할 수있다. 상이한 실시예들은 다른 순서 또는 상이한 방법 또는 수단에 의해 동작을 수행 할 수있다. 통상의 지식을 가진 자가 이해할 수있는 바와 같이, 일부 도면은 수행된 동작의 간략화된 표현이고, 본 명세서의 설명은 개요를 간략화한 것이며, 실제 구현은 훨씬 더 복잡하고, 더 많은 단계 및/또는 구성요소를 요구하며, 또한 특정 구현의 요구 사항에 따라 달라진다. 표현을 단순화 한 것은, 통상의 지식을 가진자가 이러한 도면들을 알고 이해할 수 있고, 본 설명에 관련이 없거나 및/또는 도움이 되지 않기 때문에, 다른 필수 단계를 나타내지 않은 것이다.
이와 유사하게, 일부 도면들은 단지 관련 구성요소만 보여주는 간략화된 블록도이고, 이러한 관련 구성요소들 중 일부는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자들에게 잘 알려진 바와 같이, 실제 하드웨어 보다 해당 분야에서 잘 알려진 기능 및/또는 구동을 표현할 뿐이다. 이러한 경우에, 구성요소/모듈들의 일부/전부는 다양한 방법 및/또는 조합으로 실행되거나 공급될 수 있고, 부분적으로 펌웨어 및/또는 하드웨어로 실행되거나 공급될 수 있다. 이는 적어도 하나 이상의, 응용 주문형 집적 회로(application-specific integrated circuits; ASICs), 표준 집적 회로(standard integrated circuits), 마이크로컨트롤러(microcontrollers) 및/또는 임베디드 컨트롤러(embedded controllers)들을 포함하는 적절한 명령들을 수행하는 컨트롤러, 필드 프로그래머블 게이트 어레이(field-programmable gate arrays; FPGAs), 컴플랙스 프로그래머블 논리 디바이스(complex programmable logic devices; CPLDs), 및 이와 비슷한 구성요소/모듈과 같은 펌웨어 및/또는 하드웨어를 포함할 수 있으나, 이에 한정되지 않는다. 또한 이 시스템 구성요소들 및/또는 데이터 구조들의 전부/일부는, 컴퓨터 판독 가능한 매체 및/또는 하나 이상의 관련된 컴퓨팅 시스템 또는 장치들을 적어도 설명된 기술들의 일부를 수행하게 하기 위해 실행하거나 달리 사용하거나 제공하도록 가능하게 하거나 설정하기 위하여, 컨텐츠로(예컨대, 실행 가능하거나 다른 기계 판독가능한 소프트웨어 명령어 또는 구조화된 데이터) 비일시성의 컴퓨터 판독 가능한 매체에(예컨대, 하드디스크, 메모리, 컴퓨터 네트워크, 셀룰러 무선 네트워크 또는 다른 데이터 전송 매체, DVD 또는 플래쉬 메모리 장치 같은, 적절한 드라이브나 적절한 연결을 통해 판독되는 휴대용 매체) 저장될 수 있다.
하나 이상의 프로세서, 단순한 마이크로 컨트롤러, 컨트롤러, 및 그러한 것들은, 단독이든 혹은 다중 처리 장치이든, 본 발명의 실시예를 구현하기 위하여 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들의 시퀀스(sequence)를 실행하기 위해 사용될 수 있다. 일부 실시예에서, 하드-와이어드 회로(hard-wired circuitry)가 소프트웨어 명령어들 대신에 또는 소프트웨어 명령어들과 조합되어 사용될 수 있다. 그러므로 본 발명의 실시예들은 임의의 하드웨어 회로, 펌웨어, 및/또는 소프트웨어의 특정 조합에 한정되지 않는다.
본 명세서에서 사용된 "컴퓨터 판독가능한 매체"의 용어는 프로세서에 실행을 위해 제공될 수 있는 명령들을 저장하는 임의의 매체를 지칭한다. 그러한 매체는 비휘발성 매체 또는 휘발성의 매체를 포함할 수 있으나 이에 한정되지는 않는, 다양한 형태로 존재할 수 있다. 비일시성의 컴퓨터 판독 가능한 매체의 일반적인 형태는 예컨대, 플로피 디스크(floppy disk), 플렉서블 디스크(flexible disk), 하드 디스크(hard disk), 마그네틱 테이프(magnetic tape) 또는 임의의 다른 마그네틱 매체, CD-ROM, 임의의 다른 광학적 매체, 펀치 카드(punch card), 페이퍼 테이프(paper tape), 임의의 다른 홀 패턴을 가진 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, 임의의 다른 메모리 칩(memory chip) 또는 카트리지(cartridge), 또는 프로세서에 의해 실행될 수 있는 명령들을 저장 할 수 있는 임의의 다른 매체가 존재할 수 있다.
본 발명의 몇몇 실시예는 적어도 부분적으로 휴대용 장치(portable device)에서 실행될 수 있다. 여기에서 사용된 "휴대용 장치" 및/또는 "모바일 장치"는, 무선 신호들을 수신할 수 있는 능력을 가지고 있는, 임의의 휴대가능한 또는 이동가능한 전자장치를 지칭한다. 이는 멀티미디어 플레이어(multimedia player), 통신 장치(communication device), 컴퓨팅 장치(computing device), 또는 네비게이팅 장치(navigating device) 등을 포함할 수 있으나, 이에 한정되지는 않는다. 그러므로, 모바일 장치는 사용자 단말(user equipment; UE), 랩탑(laptop), 태블릿 컴퓨터(tablet computer), PDA(Portable Digital Assistant), mp3 플레이어(mp3 player), 핸드헬드 PC(handheld PC), IMD(Instant Messaging Device), 셀룰러 전화기(cellular telephone), GNSS 수신기(Global Navigational Satellite System receiver), 시계(watch), 또는 인간이 입을 수 있거나 옮길 수 있는 임의의 이러한 장치들을 포함할 수 있다. 그러나 이에 한정되지는 않는다.
본 발명의 몇몇 실시예는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자들이 이해하고 있듯이, 마이크로 칩(microchip), 실리콘 칩(silicon chip), 컴퓨터 칩(computer chip), 또는 단지 칩(chip)으로도 불리우는 집적 회로(integrated circuit; IC)에서 실행될 수 있다. 예컨대, 이러한 IC는 브로드밴드(broadband) 및/또는 베이스밴드(baseband) 모뎀 칩(modem chip)일 수 있다.
이상 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
부록: 실험 검증(Experimental Validation)
A. 캐스케이드 훈련(cascade traning)
PSNR | SSIM | |
CT-SRCNN 5-layer | 29.44 | 0.8232 |
Non-CT-SRCNN 5-layer | 29.56 | 0.8258 |
CT-SRCNN 7-layer | 29.50 | 0.8245 |
Non-CT-SRCNN 7-layer | 29.71 | 0.8287 |
CT-SRCNN 9--layer | 29.52 | 0.8250 |
Non-CT-SRCNN 9-layer | 29.75 | 0.8299 |
CT-SRCNN 13-layer | 29.56 | 0.8265 |
Non-CT-SRCNN 13-layer | 29.91 | 0.8324 |
표 2에서, 몇몇 실시예에 따른 캐스케이드 훈련된 콘볼루션 뉴럴 네트워크(CNN)의 PSNR/SSIM은 VDSR에서 비감독 가중치 초기화된 캐스케이드 훈련되지 않은 콘볼루션 뉴럴 네트워크(CNN)와 비교된다. 동일한 네트워크 구조를 사용하면, 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)의 PSNR/SSIM이 캐스케이드 훈련되지 않은 것보다 훨씬 우수하다는 것을 알 수 있다.
도 11은 몇몇 실시예에 따른 캐스케이드 훈련된 콘볼루션 뉴럴 네트워크(CNN) 대 캐스케이드 훈련되지 않은 콘볼루션 뉴럴 네트워크(CNN)의 수렴 속도를 나타내는 예시적인 도면이다. 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)는 캐스케이드 훈련되지 않은 슈퍼 해상도 콘볼루션 뉴럴 네트워크(non CT-SRCNN)에 비해 더 빨리 수렴하는 것을 알 수 있다. 이는 캐스케이드 네트워크 훈련이 슈퍼 해상도 콘볼루션 뉴럴 네트워크(SRCNN)를 점점 더 깊게 훈련한다는 것을 나타낸다. 캐스케이드 네트워크 훈련은 종래의 훈련에 비해 정확도와 수렴 속도 모두 더 나은 성능을 가지고 있다.
표 3에서, 본 발명의 몇몇 실시예에 따른 CT-SRCNN-13의 파라미터 개수, PSNR, SSIM 및 이미지당 시간은 종래의 스케일 3의 슈퍼 해상도(SR) 네트워크와 비교된다.
Number of Parameters | Set 14 PSNR | Set 14 SSIM | Time per image (in seconds) | |
VDSR | >600,000 | 29.77 | 0.8314 | 0.17 |
DRCN | >1,000,000 | 29.76 | 0.8311 | 4.19 |
13-layer CT-SRCNN-13 | ~150,000 | 29.91 | 0.8324 | 0.03 |
B. 캐스케이드 네트워크 트리밍
표 4는 캐스케이드 트리밍된 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)(13개 레이어 중 4개가 트리밍됨)이 캐스케이드 트리밍되지 않은 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)와 유사한 성능을 달성하지만, 네트워크 크기가 20% 감소하는 것을 알 수 있다. 본 발명의 몇몇 실시예에 따른 캐스케이드 네트워크 트리밍은 다른 네트워크, 예를 들어, FSRCNN에도 적용될 수 있다([Dong et al. 2016b] 참조). 이 네트워크는 7개의 콘볼루션 레이어와 하나의 디콘볼루션(deconvolution) 레이어로 구성된다. 본 발명의 몇몇 실시예에 따른 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)를 트리밍하는 것과 마찬가지로, FSRCNN의 2개의 레이어도 각 스테이지에서 트리밍될 수 있다. 표 4는 본 발명의 몇몇 실시예에 따른 네트워크 캐스케이드 트리밍이 FSRCNN에도 효과적이라는 것을 나타낸다.
Number of Parameters | PSNR | SSIM | Time per image (in seconds) | |
CT-SRCNN 13 layer, no trimming |
~150,000 | 29.91 | 0.8324 | 0.03 |
Cascade trimmed 13-layer CT-SRCNN, trim 4 layers | ~120,000 | 29.91 | 0.8322 | 0.02 |
FSRCNN 8 layer, no trimming |
~12,000 | 29.52 | 0.8246 | 0.009 |
Cascade trimmed FSRCNN 8 layer, trim 2 layers | ~8,500 | 29.51 | 0.8244 | 0.008 |
Cascade trimmed FSRCNN 8 layer, trim 4 layers | ~6,800 | 29.35 | 0.8228 | 0.007 |
Cascade trimmed FSRCNN 8 layer, trim 6 layers | ~4,900 | 29.35 | 0.8208 | 0.006 |
Cascade trimmed FSRCNN 8 layer, trim 8 layers | ~3,400 | 29.22 | 0.8189 | 0.005 |
FSRCNN official lite version | ~3,900 | 29.17 | 0.8175 | 0.006 |
트리밍 속도와 정확도 사이에는 트레이드 오프(trade-off)가 존재한다. 2개의 레이어(7번째 및 8번째)만 트리밍되면, 정확도 손실이 거의 발생하지 않으며, 파라미터의 30%가 제거된다. 만약 8개의 레이어 모두 트리밍되면(캐스케이드 트리밍된 FSRCNN의 8개의 레이어 중, 8개의 레이어 트리밍), 정확도는 공식 모델과 비교하여 훨씬 작고, 네트워크 크기는 작다(3900개 파라미터에 비해, 3400개).
C. 확장 콘볼루션(dilated convolution)
표 5는 확장 13 레이어 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)의 실험 결과를 보여준다. 확장은 첫번째 9x9 레이어, 두번째 5x5 레이어, 및 마지막 5x5 레이어에 적용된다. 대신 각각 5x5, 3x3, 및 3x3 2-확장 콘볼루션 레이어가 이용된다. 확장된 버전의 캐스케이드 훈련된 슈퍼 해상도 콘볼루션 뉴럴 네트워크(CT-SRCNN)는 확장되지 않은 버전과 유사한 PSNR/SSIM을 얻을 수 있지만, 네트워크 크기는 줄어드는 것을 볼 수 있다.
Number of Parameters | PSNR | SSIM | Time per image (in seconds) | |
CT-SRCNN 13 layer | ~150,000 | 29.91 | 0.8324 | 0.03 |
Dilated CT-SRCNN 13 layer | ~110,000 | 29.90 | 0.8324 | 0.02 |
910 : 프로세서 920 : 비일시성의 컴퓨터 판독 가능한 매체
Claims (20)
- 세개 이상의 레이어를 갖는 콘볼루션 뉴럴 네트워크(CNN: Convolutional Neural Network)를 훈련하고,
상기 훈련된 콘볼루션 뉴럴 네트워크에 캐스케이드(cascade) 훈련을 수행하여, 훈련 에러가 문턱값(threshold) 미만이 될 때까지 상기 훈련된 콘볼루션 뉴럴 네트워크에 하나 이상의 중간 레이어(intermediate layer)를 삽입하는 것을 포함하되,
상기 캐스케이드 훈련은 하나 이상의 스테이지(stage)의 반복 과정을 포함하고,
상기 캐스케이드 훈련 반복 과정의 각각의 스테이지는,
현재의 콘볼루션 뉴럴 네트워크를 훈련하고,
상기 훈련 에러가 수렴하는 중인지 결정하고,
상기 훈련 에러가 수렴하는 중이면, 상기 현재의 콘볼루션 뉴럴 네트워크에 상기 각각의 중간 레이어의 가중치가 미리 결정된 값으로 세팅된 상기 중간 레이어를 미리 설정한 개수만큼 삽입하고,
캐스케이드 훈련 반복 과정의 새로운 스테이지를 시작하는 것을 포함하는 콘볼루션 뉴럴 네트워크 생성 방법. - 제 1항에 있어서,
상기 캐스케이드 훈련 반복 과정의 각각의 스테이지는,
상기 훈련 에러가 수렴하는 중이 아니면, 상기 훈련 에러가 상기 문턱값 미만인지 여부를 결정하고,
상기 훈련 에러가 상기 문턱값 미만이면, 현재의 콘볼루션 뉴럴 네트워크를 캐스케이드 훈련된 콘볼루션 뉴럴 네트워크로 출력하고,
상기 훈련 에러가 상기 문턱값 이상이면, 캐스케이드 훈련 반복 과정의 새로운 스테이지를 시작하는 것을 더 포함하는 콘볼루션 뉴럴 네트워크 생성 방법. - 제 2항에 있어서,
상기 각각의 중간 레이어의 가중치는 평균이 0이고, 표준 편차가 σ 인 가우시안 분포(Gaussian distribution)를 갖도록 무작위로 초기화되는 콘볼루션 뉴럴 네트워크 생성 방법. - 제 1항에 있어서,
상기 콘볼루션 뉴럴 네트워크는 이미지 처리나 비디오 처리 중 적어도 하나에 대한 슈퍼 해상도 콘볼루션 뉴럴 네트워크(SRCNN: super-resolution CNN)인 콘볼루션 뉴럴 네트워크 생성 방법. - 제 1항에 있어서,
상기 캐스케이드 훈련 후에 캐스케이드 네트워크 트리밍(trimming)을 수행하는 것을 더 포함하는 콘볼루션 뉴럴 네트워크 생성 방법. - 제 5항에 있어서,
상기 캐스케이드 네트워크 트리밍은 하나 이상의 스테이지의 반복 과정을 포함하고,
상기 캐스케이드 네트워크 트리밍 반복 과정의 각각의 스테이지는,
하나 이상의 중간 레이어에서 필터의 면적을 감소시킴으로써, 상기 현재의 콘볼루션 뉴럴 네트워크의 레이어를 설정된 개수만큼 트리밍하고,
상기 훈련 에러가 수렴하는 중인지 여부를 결정하고,
상기 훈련 에러가 수렴하는 중이면, 상기 현재의 콘볼루션 뉴럴 네트워크의 모든 레이어가 트리밍되었는지 여부를 결정하고,
상기 현재의 콘볼루션 뉴럴 네트워크의 모든 레이어가 트리밍된 경우, 상기 현재의 콘볼루션 뉴럴 네트워크를 상기 네트워크 트리밍된 콘볼루션 뉴럴 네트워크로 출력하고,
상기 현재의 콘볼루션 뉴럴 네트워크의 모든 레이어가 트리밍되지 않은 경우, 캐스케이드 네트워크 트리밍 반복 과정의 새로운 스테이지를 시작하는 것을 포함하는 콘볼루션 뉴럴 네트워크 생성 방법. - 제 6항에 있어서,
상기 캐스케이드 네트워크 트리밍 반복 과정은,
상기 훈련 에러가 수렴하는 중이 아니면, 상기 훈련 에러가 마지막으로 수렴된 캐스케이드 트리밍 반복 과정의 스테이지에서의 상기 콘볼루션 뉴럴 네트워크를 출력하는 것을 더 포함하는 콘볼루션 뉴럴 네트워크 생성 방법. - 제 1항에 있어서,
상기 캐스케이드 훈련은 확장 콘볼루션 필터(dilated convolutional filter)를 이용하여 수행되는 콘볼루션 뉴럴 네트워크 생성 방법. - 세개 이상의 레이어를 갖는 콘볼루션 뉴럴 네트워크(CNN: Convolutional Neural Network)를 훈련하고,
상기 훈련된 콘볼루션 뉴럴 네트워크의 캐스케이드 네트워크 트리밍(cascade network trimming)을 수행하는 것을 포함하되,
상기 캐스케이드 네트워크 트리밍은 하나 이상의 스테이지(stage)의 반복 과정을 포함하고,
상기 캐스케이드 네트워크 트리밍 반복 과정의 각각의 스테이지는, 하나 이상의 중간 레이어에서 필터의 면적을 감소시킴으로써, 현재의 콘볼루션 뉴럴 네트워크의 레이어를 설정된 개수만큼 트리밍하고,
훈련 에러가 수렴하는 중인지 여부를 결정하고,
상기 훈련 에러가 수렴하는 중이면, 상기 현재의 콘볼루션 뉴럴 네트워크의 모든 레이어가 트리밍되었는지 여부를 결정하고,
상기 현재의 콘볼루션 뉴럴 네트워크의 모든 레이어가 트리밍된 경우, 상기 현재의 콘볼루션 뉴럴 네트워크를 상기 네트워크 트리밍된 콘볼루션 뉴럴 네트워크로 출력하고,
상기 현재의 콘볼루션 뉴럴 네트워크의 모든 레이어가 트리밍되지 않은 경우, 상기 캐스케이드 네트워크 트리밍 반복 과정의 새로운 스테이지를 시작하는 것을 포함하는 콘볼루션 뉴럴 네트워크 생성 방법. - 제 9항에 있어서,
상기 캐스케이드 네트워크 트리밍 반복 과정은,
상기 훈련 에러가 수렴하는 중이 아니면, 상기 훈련 에러가 마지막으로 수렴된 캐스케이드 트리밍 반복 과정의 스테이지에서의 상기 콘볼루션 뉴럴 네트워크를 출력하는 것을 더 포함하는 콘볼루션 뉴럴 네트워크 생성 방법. - 제 9항에 있어서,
상기 캐스케이드 네트워크 트리밍 반복 과정의 각각의 스테이지는,
상기 훈련 에러가 수렴하는 중인지 여부를 결정하기 전 미세 조정(fine-tuning)하는 것을 더 포함하는 콘볼루션 뉴럴 네트워크 생성 방법. - 제 9항에 있어서,
상기 현재의 콘볼루션 뉴럴 네트워크의 레이어를 설정된 개수만큼 트리밍하는 것은,
각 레이어에 대해, 특정 기준(criteria)를 만족하지 않는 필터를 트리밍하는 것인 콘볼루션 뉴럴 네트워크 생성 방법. - 제 12항에 있어서,
상기 특정 기준은 상대적 중요도(relative importance)를 측정하는 것을 포함하는 콘볼루션 뉴럴 네트워크 생성 방법. - 제 9항에 있어서,
상기 캐스케이드 네트워크 트리밍 전에 캐스케이드 훈련을 수행하는 것을 더 포함하는 콘볼루션 뉴럴 네트워크 생성 방법. - 제 14항에 있어서,
상기 캐스케이드 훈련은 하나 이상의 스테이지의 반복 과정을 포함하고,
상기 캐스케이드 훈련 반복 과정의 각각의 스테이지는,
현재의 콘볼루션 뉴럴 네트워크를 훈련하고,
상기 훈련 에러가 수렴하는 중인지 결정하고,
상기 훈련 에러가 수렴하는 중이면, 상기 현재의 콘볼루션 뉴럴 네트워크에 상기 각각의 중간 레이어의 가중치가 미리 결정된 값으로 세팅된 상기 중간 레이어를 미리 설정한 개수만큼 삽입하고,
캐스케이드 훈련 반복 과정의 새로운 스테이지를 시작하는 것을 포함하는 콘볼루션 뉴럴 네트워크 생성 방법. - 하나 이상의 비일시적 컴퓨터 판독가능한 매체; 및
적어도 하나의 프로세서를 포함하되,
상기 적어도 하나의 프로세서는, 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령을 실행할 때,
세개 이상의 레이어를 갖는 콘볼루션 뉴럴 네트워크를 훈련하고,
상기 훈련된 콘볼루션 뉴럴 네트워크에 캐스케이드 훈련을 수행하여, 훈련 에러가 문턱값 미만이 될 때까지 하나 이상의 중간 레이어를 삽입하고,
상기 캐스케이드 훈련으로부터의 상기 콘볼루션 뉴럴 네트워크 출력의 캐스케이드 네트워크 트리밍을 수행하는 콘볼루션 뉴럴 네트워크 생성 장치. - 제 16항에 있어서,
상기 캐스케이드 훈련은 하나 이상의 스테이지(stage)의 반복 과정을 포함하고,
상기 캐스케이드 훈련 반복 과정의 각각의 스테이지는,
현재의 콘볼루션 뉴럴 네트워크를 훈련하고,
상기 훈련 에러가 수렴하는 중인지 결정하고,
상기 훈련 에러가 수렴하는 중이면, 상기 현재의 콘볼루션 뉴럴 네트워크에 상기 각각의 중간 레이어의 가중치가 미리 결정된 값으로 세팅된 상기 중간 레이어를 미리 설정한 개수만큼 삽입하고,
캐스케이드 훈련 반복 과정의 새로운 스테이지를 시작하는 것을 포함하는 콘볼루션 뉴럴 네트워크 생성 장치. - 제 17항에 있어서,
상기 캐스케이드 네트워크 트리밍은 하나 이상의 스테이지의 반복 과정을 포함하고,
상기 캐스케이드 네트워크 트리밍 반복 과정의 각각의 스테이지는,
하나 이상의 중간 레이어에서 필터의 면적을 감소시킴으로써, 상기 현재의 콘볼루션 뉴럴 네트워크의 레이어를 설정된 개수만큼 트리밍하고,
상기 훈련 에러가 수렴하는 중인지 여부를 결정하고,
상기 훈련 에러가 수렴하는 중이면, 상기 현재의 콘볼루션 뉴럴 네트워크의 모든 레이어가 트리밍되었는지 여부를 결정하고,
상기 현재의 콘볼루션 뉴럴 네트워크의 모든 레이어가 트리밍된 경우, 상기 현재의 콘볼루션 뉴럴 네트워크를 상기 네트워크 트리밍된 콘볼루션 뉴럴 네트워크로 출력하고,
상기 현재의 콘볼루션 뉴럴 네트워크의 모든 레이어가 트리밍되지 않은 경우, 캐스케이드 네트워크 트리밍 반복 과정의 새로운 스테이지를 시작하는 것을 포함하는 콘볼루션 뉴럴 네트워크 생성 장치. - 적어도 하나의 프로세서와 하나 이상의 비일시적 컴퓨터 판독가능한 매체를 포함하는 칩셋 제조 방법으로서,
상기 적어도 하나의 프로세서는, 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령을 실행할 때,
세개 이상의 레이어를 갖는 콘볼루션 뉴럴 네트워크를 훈련하고,
상기 훈련된 콘볼루션 뉴럴 네트워크에 캐스케이드 훈련을 수행하여, 훈련 에러가 문턱값 미만이 될 때까지 하나 이상의 중간 레이어를 삽입하고,
상기 캐스케이드 훈련으로부터의 상기 콘볼루션 뉴럴 네트워크 출력의 네트워크 트리밍을 수행하고,
상기 하나 이상의 비일시적 컴퓨터 판독가능한 매체는, 상기 명령을 저장하는 칩셋 제조 방법. - 콘볼루션 뉴럴 네트워크 생성 장치가 적어도 하나의 프로세서를 포함하는지 테스트하고,
콘볼루션 뉴럴 네트워크 생성 장치가 하나 이상의 비일시적 컴퓨터 판독가능한 매체를 포함하는지 테스트하는 것을 포함하되,
상기 적어도 하나의 프로세서는, 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령을 실행할 때,
세개 이상의 레이어를 갖는 콘볼루션 뉴럴 네트워크를 훈련하고,
상기 훈련된 콘볼루션 뉴럴 네트워크에 캐스케이드 훈련을 수행하여, 훈련 에러가 문턱값 미만이 될 때까지 하나 이상의 중간 레이어를 삽입하고,
상기 캐스케이드 훈련으로부터의 상기 콘볼루션 뉴럴 네트워크 출력의 네트워크 트리밍을 수행하고,
상기 하나 이상의 비일시적 컴퓨터 판독가능한 매체는, 상기 명령을 저장하는 콘볼루션 뉴럴 네트워크 생성 장치의 테스트 방법.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762471816P | 2017-03-15 | 2017-03-15 | |
US62/471,816 | 2017-03-15 | ||
US15/655,557 | 2017-07-20 | ||
US15/655,557 US10803378B2 (en) | 2017-03-15 | 2017-07-20 | System and method for designing efficient super resolution deep convolutional neural networks by cascade network training, cascade network trimming, and dilated convolutions |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180105556A KR20180105556A (ko) | 2018-09-28 |
KR102420465B1 true KR102420465B1 (ko) | 2022-07-13 |
Family
ID=63520141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170136301A KR102420465B1 (ko) | 2017-03-15 | 2017-10-20 | 슈퍼 해상도 딥 콘볼루션 뉴럴 네트워크 설계 시스템 및 방법 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10803378B2 (ko) |
KR (1) | KR102420465B1 (ko) |
CN (1) | CN108629736A (ko) |
TW (1) | TWI748041B (ko) |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10489887B2 (en) | 2017-04-10 | 2019-11-26 | Samsung Electronics Co., Ltd. | System and method for deep learning image super resolution |
CN106886801B (zh) | 2017-04-14 | 2021-12-17 | 北京图森智途科技有限公司 | 一种图像语义分割方法及装置 |
CN107169927B (zh) * | 2017-05-08 | 2020-03-24 | 京东方科技集团股份有限公司 | 一种图像处理系统、方法及显示装置 |
US11580376B2 (en) | 2017-06-09 | 2023-02-14 | Korea Advanced Institute Of Science And Technology | Electronic apparatus and method for optimizing trained model |
KR102139729B1 (ko) * | 2017-06-09 | 2020-07-31 | 한국과학기술원 | 전자 장치 및 학습 모델의 재학습 방법 |
CN109426858B (zh) * | 2017-08-29 | 2021-04-06 | 京东方科技集团股份有限公司 | 神经网络、训练方法、图像处理方法及图像处理装置 |
US11250329B2 (en) | 2017-10-26 | 2022-02-15 | Nvidia Corporation | Progressive modification of generative adversarial neural networks |
US11263525B2 (en) * | 2017-10-26 | 2022-03-01 | Nvidia Corporation | Progressive modification of neural networks |
US11875260B2 (en) * | 2018-02-13 | 2024-01-16 | Adobe Inc. | Reducing architectural complexity of convolutional neural networks via channel pruning |
CN109389556B (zh) * | 2018-09-21 | 2023-03-21 | 五邑大学 | 一种多尺度空洞卷积神经网络超分辨率重构方法及装置 |
CN111046710A (zh) * | 2018-10-11 | 2020-04-21 | 顾泽苍 | 一种导入sdl模型的图像抽出的方法 |
CN109325928A (zh) * | 2018-10-12 | 2019-02-12 | 北京奇艺世纪科技有限公司 | 一种图像重建方法、装置及设备 |
CN109615059B (zh) * | 2018-11-06 | 2020-12-25 | 海南大学 | 一种卷积神经网络中边缘填充和滤波器膨胀运算方法及系统 |
GB2579040A (en) * | 2018-11-15 | 2020-06-10 | Camlin Tech Limited | Apparatus and method for creating and training artificial neural networks |
CN109636721B (zh) * | 2018-11-29 | 2023-06-23 | 武汉大学 | 基于对抗学习和注意力机制的视频超分辨率方法 |
CN109635812B (zh) * | 2018-11-29 | 2019-11-08 | 中国科学院空间应用工程与技术中心 | 图像的实例分割方法及装置 |
CN109785249A (zh) * | 2018-12-22 | 2019-05-21 | 昆明理工大学 | 一种基于持续性记忆密集网络的图像高效去噪方法 |
CN109858613B (zh) * | 2019-01-22 | 2021-02-19 | 鹏城实验室 | 一种深度神经网络的压缩方法、系统及终端设备 |
CN109859106B (zh) * | 2019-01-28 | 2022-07-05 | 桂林电子科技大学 | 一种基于自注意力的高阶融合网络的图像超分辨率重建方法 |
US10762393B2 (en) * | 2019-01-31 | 2020-09-01 | StradVision, Inc. | Learning method and learning device for learning automatic labeling device capable of auto-labeling image of base vehicle using images of nearby vehicles, and testing method and testing device using the same |
CN109949224B (zh) * | 2019-02-26 | 2023-06-30 | 北京悦图遥感科技发展有限公司 | 一种基于深度学习的联级超分辨率重建的方法及装置 |
US11475308B2 (en) * | 2019-03-15 | 2022-10-18 | Samsung Electronics Co., Ltd. | Jointly pruning and quantizing deep neural networks |
CN110009568A (zh) * | 2019-04-10 | 2019-07-12 | 大连民族大学 | 满文图像超分辨率重建的生成器构建方法 |
CN109991602A (zh) * | 2019-04-10 | 2019-07-09 | 中国人民解放军国防科技大学 | 基于深度残差网络的isar图像分辨率增强方法 |
US11461640B2 (en) | 2019-04-18 | 2022-10-04 | International Business Machines Corporation | Mitigation of conductance drift in neural network resistive processing units |
WO2020216804A1 (en) * | 2019-04-23 | 2020-10-29 | L'oréal Sa | Convolution neural network based landmark tracker |
CN109996085B (zh) * | 2019-04-30 | 2021-05-14 | 北京金山云网络技术有限公司 | 模型训练方法、图像处理方法、装置及电子设备 |
CN110136062B (zh) * | 2019-05-10 | 2020-11-03 | 武汉大学 | 一种联合语义分割的超分辨率重建方法 |
CN112308200B (zh) * | 2019-07-30 | 2024-04-26 | 华为技术有限公司 | 神经网络的搜索方法及装置 |
CN110599452B (zh) * | 2019-08-07 | 2022-02-22 | 全球能源互联网研究院有限公司 | 锈迹检测系统、方法、计算机设备及可读存储介质 |
KR20210050684A (ko) | 2019-10-29 | 2021-05-10 | 에스케이하이닉스 주식회사 | 이미지 처리 시스템 |
US11488007B2 (en) | 2019-12-06 | 2022-11-01 | International Business Machines Corporation | Building of custom convolution filter for a neural network using an automated evolutionary process |
CN111178499B (zh) * | 2019-12-10 | 2022-06-07 | 西安交通大学 | 一种基于生成对抗网络改进的医学图像超分辨率方法 |
CN111079698A (zh) * | 2019-12-30 | 2020-04-28 | 杭州小马智趣科技有限公司 | 一种七巧板玩具识别的方法和装置 |
CN111461990B (zh) * | 2020-04-03 | 2022-03-18 | 华中科技大学 | 一种基于深度学习分步实现超分辨成像的方法 |
KR102393629B1 (ko) | 2020-04-29 | 2022-05-02 | 연세대학교 산학협력단 | 다중 디콘볼루션 레이어를 갖는 인공 신경망을 이용하는 이미지 업스케일링 장치 및 이의 디콘볼루션 레이어 다중화 방법 |
CN111767799A (zh) * | 2020-06-01 | 2020-10-13 | 重庆大学 | 一种改进的Faster R-CNN隧道环境下行人目标检测算法 |
CN111696043A (zh) * | 2020-06-10 | 2020-09-22 | 上海理工大学 | 一种三维fsrcnn的高光谱图像超分辨率重建算法 |
CN111932456B (zh) * | 2020-07-31 | 2023-05-16 | 浙江师范大学 | 一种基于生成对抗网络的单幅图像超分辨率重建方法 |
US11908103B2 (en) * | 2020-08-14 | 2024-02-20 | Tencent America LLC | Multi-scale-factor image super resolution with micro-structured masks |
US11842260B2 (en) * | 2020-09-25 | 2023-12-12 | International Business Machines Corporation | Incremental and decentralized model pruning in federated machine learning |
CN112257528B (zh) * | 2020-10-12 | 2023-07-18 | 南京工业大学 | 一种基于小波变换和密集连接扩张卷积神经网络的风电齿轮箱故障诊断方法 |
CN112669216B (zh) * | 2021-01-05 | 2022-04-22 | 华南理工大学 | 一种基于联邦学习的并行空洞新结构的超分辨率重构网络 |
CN112767280B (zh) * | 2021-02-01 | 2022-06-14 | 福州大学 | 一种基于循环迭代机制的单幅图像雨滴去除方法 |
KR20220129995A (ko) | 2021-03-17 | 2022-09-26 | 주식회사 에스아이에이 | 딥러닝 기반 초해상도 이미징 방법 |
CN113189879B (zh) * | 2021-05-10 | 2022-07-15 | 中国科学技术大学 | 控制策略的确定方法及装置、存储介质及电子设备 |
TWI769820B (zh) * | 2021-05-19 | 2022-07-01 | 鴻海精密工業股份有限公司 | 生成對抗網路優化方法及電子設備 |
CN113743591B (zh) * | 2021-09-14 | 2023-12-26 | 北京邮电大学 | 一种自动化剪枝卷积神经网络的方法及其系统 |
WO2023104158A1 (en) * | 2021-12-09 | 2023-06-15 | Dolby Laboratories Licensing Corporation | Method for neural network training with multiple supervisors |
CN114626952A (zh) * | 2022-01-28 | 2022-06-14 | 海南大学 | 一种新颖的鱼体形态学特征精准测量方法 |
WO2023220892A1 (en) * | 2022-05-16 | 2023-11-23 | Intel Corporation | Expanded neural network training layers for convolution |
KR102624934B1 (ko) * | 2022-05-18 | 2024-01-15 | 국민대학교산학협력단 | 딥러닝 모델 구축의 효율성 향상을 위한 이미지 초해상화 기반 선택적 레이블링 장치 및 방법 |
CN115993611B (zh) * | 2023-03-22 | 2023-06-20 | 清华大学 | 一种基于瞬态信号超分辨网络的非视域成像方法及装置 |
CN116859830B (zh) * | 2023-03-27 | 2024-01-26 | 福建天甫电子材料有限公司 | 用于电子级氟化铵生产的生产管理控制系统 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7499588B2 (en) | 2004-05-20 | 2009-03-03 | Microsoft Corporation | Low resolution OCR for camera acquired documents |
US20070112701A1 (en) * | 2005-08-15 | 2007-05-17 | Microsoft Corporation | Optimization of cascaded classifiers |
DE102007001026B4 (de) | 2007-01-02 | 2008-09-04 | Siemens Ag | Verfahren zur rechnergestützten Steuerung und/oder Regelung eines technischen Systems |
US9613450B2 (en) * | 2011-05-03 | 2017-04-04 | Microsoft Technology Licensing, Llc | Photo-realistic synthesis of three dimensional animation with facial features synchronized with speech |
CN102722712B (zh) | 2012-01-02 | 2014-04-16 | 西安电子科技大学 | 基于连续度的多尺度高分辨图像目标检测方法 |
CN103679185B (zh) * | 2012-08-31 | 2017-06-16 | 富士通株式会社 | 卷积神经网络分类器系统、其训练方法、分类方法和用途 |
CN103279933B (zh) | 2013-06-07 | 2016-10-26 | 重庆大学 | 一种基于双层模型的单幅图像超分辨率重建方法 |
EP3017403A2 (en) * | 2013-07-01 | 2016-05-11 | Agent Video Intelligence Ltd. | System and method for abnormality detection |
US9730643B2 (en) * | 2013-10-17 | 2017-08-15 | Siemens Healthcare Gmbh | Method and system for anatomical object detection using marginal space deep neural networks |
JP6236296B2 (ja) | 2013-11-14 | 2017-11-22 | 株式会社デンソーアイティーラボラトリ | 学習装置、学習プログラム、及び学習方法 |
DE102015002367A1 (de) * | 2014-03-02 | 2015-09-03 | Gabriele Trinkel | Sichere Übertragung von Daten und Skalierung, Regelung zur Überlastabwehr in der Cloud und Cloud Computing |
US9405960B2 (en) | 2014-06-17 | 2016-08-02 | Beijing Kuangshi Technology Co., Ltd. | Face hallucination using convolutional neural networks |
US10223635B2 (en) * | 2015-01-22 | 2019-03-05 | Qualcomm Incorporated | Model compression and fine-tuning |
EP3136293A1 (en) * | 2015-08-28 | 2017-03-01 | Thomson Licensing | Method and device for processing an image of pixels, corresponding computer program product and computer readable medium |
CN108475415B (zh) * | 2015-12-21 | 2022-05-27 | 商汤集团有限公司 | 用于图像处理的方法和系统 |
CN106204467B (zh) * | 2016-06-27 | 2021-07-09 | 深圳市未来媒体技术研究院 | 一种基于级联残差神经网络的图像去噪方法 |
CN106228512A (zh) * | 2016-07-19 | 2016-12-14 | 北京工业大学 | 基于学习率自适应的卷积神经网络图像超分辨率重建方法 |
CN106204499B (zh) | 2016-07-26 | 2019-05-24 | 厦门大学 | 基于卷积神经网络的单幅图像去雨方法 |
US20180101750A1 (en) * | 2016-10-11 | 2018-04-12 | Xerox Corporation | License plate recognition with low-rank, shared character classifiers |
US10685285B2 (en) * | 2016-11-23 | 2020-06-16 | Microsoft Technology Licensing, Llc | Mirror deep neural networks that regularize to linear networks |
US20180260695A1 (en) * | 2017-03-07 | 2018-09-13 | Qualcomm Incorporated | Neural network compression via weak supervision |
US10147193B2 (en) * | 2017-03-10 | 2018-12-04 | TuSimple | System and method for semantic segmentation using hybrid dilated convolution (HDC) |
-
2017
- 2017-07-20 US US15/655,557 patent/US10803378B2/en active Active
- 2017-10-20 KR KR1020170136301A patent/KR102420465B1/ko active IP Right Grant
-
2018
- 2018-01-23 TW TW107102265A patent/TWI748041B/zh active
- 2018-03-15 CN CN201810213560.3A patent/CN108629736A/zh active Pending
-
2020
- 2020-08-31 US US17/007,739 patent/US11900234B2/en active Active
Non-Patent Citations (1)
Title |
---|
김성민 등., 샘플 제거 방식의 Cascade AdaBoost를 사용한 주차장 내 차량 인식 기법, 대한전자공학회 학술대회 , 757-758pages (2011. 6.) |
Also Published As
Publication number | Publication date |
---|---|
CN108629736A (zh) | 2018-10-09 |
US11900234B2 (en) | 2024-02-13 |
US20180268284A1 (en) | 2018-09-20 |
TW201835817A (zh) | 2018-10-01 |
TWI748041B (zh) | 2021-12-01 |
US20200401870A1 (en) | 2020-12-24 |
KR20180105556A (ko) | 2018-09-28 |
US10803378B2 (en) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102420465B1 (ko) | 슈퍼 해상도 딥 콘볼루션 뉴럴 네트워크 설계 시스템 및 방법 | |
US11354577B2 (en) | System and method for designing efficient super resolution deep convolutional neural networks by cascade network training, cascade network trimming, and dilated convolutions | |
US11790489B2 (en) | Systems and method of training networks for real-world super resolution with unknown degradations | |
US11403838B2 (en) | Image processing method, apparatus, equipment, and storage medium to obtain target image features | |
CN109522874B (zh) | 人体动作识别方法、装置、终端设备及存储介质 | |
CN111968123B (zh) | 一种半监督视频目标分割方法 | |
Ren et al. | Partial deconvolution with inaccurate blur kernel | |
KR20190039383A (ko) | 이미지 세그멘테이션을 위한 학습 방법 및 학습 장치, 그리고 이를 이용한 이미지 세그멘테이션 방법 및 이미지 세그멘테이션 장치 | |
CN111723915B (zh) | 一种基于深度卷积神经网络的目标检测方法 | |
KR20180117017A (ko) | 컨벌루션 뉴럴 네트워크의 계산 복잡성을 감소시키기 위한 방법 및 시스템 | |
CN111507409B (zh) | 一种基于深度多视角学习的高光谱影像分类方法及装置 | |
CN110648292A (zh) | 一种基于深度卷积网络的高噪声图像去噪方法 | |
CN113129212B (zh) | 图像超分辨率重建方法、装置、终端设备及存储介质 | |
CN111161217B (zh) | 基于Conv-LSTM多尺度特征融合的模糊检测方法 | |
CN110348453B (zh) | 一种基于级联的物体检测方法及系统、存储介质及终端 | |
Uddin et al. | A perceptually inspired new blind image denoising method using $ L_ {1} $ and perceptual loss | |
Wu et al. | Lightweight asymmetric convolutional distillation network for single image super-resolution | |
CN110120009B (zh) | 基于显著物体检测和深度估计算法的背景虚化实现方法 | |
Xu et al. | Dual-branch deep image prior for image denoising | |
Ren et al. | CNF+ CT: Context network fusion of cascade-trained convolutional neural networks for image super-resolution | |
TW202139070A (zh) | 訓練網路的方法及設備 | |
CN113762506A (zh) | 一种深度学习模型剪枝方法及系统 | |
CN114399453B (zh) | 一种基于生成对抗网络的人脸表情合成方法 | |
KR102203337B1 (ko) | 가지친 l1 페널티를 통한 최대우도 추정 장치 및 방법 | |
TWI818491B (zh) | 用於優化圖像之方法及系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |