no image
[Paper Review] BAM(Bottleneck Attention Module), CBAM(Convolutional-BAM)
BAM 및 CBAM 개요 Self-Attention 의 대표적인 네트워크인 BAM(Bottleneck Attention Module) 및 CBAM(Convolutional-BAM) 모듈을 잠깐 설명하도록 하겠다. 일단 두 모듈 모두 3D Attention Map 을 Channel-wise / Spatial-wise 로 분해하여 계산한다. 연산 및 파라미터 오버헤드는 1~2% 수준으로 매우 미미한 편이라고 한다. 이 두 모듈 모두 아주 단순한 pooling 및 convolution 으로 이루어져있다. BAM (Bottleneck Attention Module) 위와 같이 BAM 은 각 네트워크의 bottleneck 에 위치하게 된다. 여기서의 bottleneck 은 spatial pooling 이 이루어지..
2020.10.10
no image
[Dataset] 이미지 인식에 유용한 데이터셋 정리 (2020.09.14)
[Object Detection] [Object Classfication] [Image Segmentation] - ADE20K ADE20K dataset Database --> Full Dataset Full-sized images and segmentations Scene Parsing Benchmark Scene parsing data and part segmentation data derived from ADE20K dataset could be download from MIT Scene Parsing Benchmark. Training set All images are fully annotated groups.csail.mit.edu [Scene Recognition] - IndoorCVPR09..
2020.09.14
no image
[Dataset] MCL DATASETFOR VIDEO SALIENCY DETECTION
Background Subtraction 시도할 때 사용할 좋은 데이터세트 같고, 데이터도 바로 다운로드 받을 수 있어서 접근성 좋다. This dataset is used in S.-H. Lee, J.-H. Kim, K. P. Choi, J.-Y. Sim, and C.-S. Kim, "Video saliency detection based on spatiotemporal feature learning," submitted to Proc. IEEE ICIP 2014. Video sequences have the resolution of 480 x 270 and consist of around 800 frames. The binary ground-truth maps are manually obtained ..
2020.09.11
no image
[Deep Learning] 딥러닝에서 학습 시 학습률과 배치 크기 문제
학습률 (Learning Rate) 학습률은 아주 중요한 하이퍼파라미터이며, 일반적으로 최적의 학습률은 최대 학습률의 절반 정도라고 한다. 좋은 학습률을 찾는 한 가지 방법은 매우 낮은 학습률 (예를 들면 10^-5) 에서 시작해서 점진적으로 매우 큰 학습률 (예를 들면 10)까지 수백 번 반복하여 모델을 훈련하는 것이다. 반복마다 일정한 값을 학습률에 곱한다. 로그 스케일로 조정된 학습률을 사용하여 학습률에 대한 손실을 그래프로 그리면 처음에 손실이 줄어드는 것이 보인다. 하지만 잠시 후 학습률이 커지면 손실이 다시 커진다. 최적의 학습률은 손실이 다시 상승하는 지점보다 조금 아래에 있을 것이다. 일반적으로 상승점보다 약 10배 낮은 지점이라고 한다. 그 다음 모델을 다시 초기화하고 앞에서 찾은 학습률..
2020.06.22
no image
[Paper Review] CBAM : Convolutional Block Attention Module
CBAM 논문을 살펴보았다. 저자가 한국인이라서 그런지 몰라도 논문 이름부터 시작해서 논문이 잘 읽히는 편이었고, 이미 저자가 논문을 정리해 놓은 자료도 있어서 이해하기 수월했다. CBAM 논문은 BAM(Bottleneck Attention Module) 에 이어 나온 논문이다. 두 논문 모두 CNN의 성능 향상을 위한 Self-attention Module 을 제안하고 있다. 여기서는 CBAM 의 내용을 주로 다루기로 한다. CNN 계열에서 Attention 개념은 주로 Image Captuioning 처럼 multi-modal 간의 관계를 이용한 feature selection 에서 많이 사용되었다고 한다. Attention 이라는 것 자체가 어떠한 특성에 대하여 "집중"하는 것인데, Image Cl..
2020.06.07
no image
[Deep Learning] Activation Function : Swish vs Mish
활성화 함수(Activation Function)는 입력을 받아 활성, 비활성을 결정하는데 사용되는 함수이다. 어떤 활성화 함수를 사용하느냐에 따라 그 출력 값이 달라지기 때문에 적절한 활성화 함수를 사용하는 것이 매우 중요하다. 보통 어떠한 임계 값을 기준으로 활성화 되거나 혹은 비활성화 되는 형태를 가진다. 기존 활성화 함수들 Swish Swish 는 매우 깊은 신경망에서 ReLU 보다 높은 정확도를 달성한다고 한다. 또한 모든 배치 크기에 대해 Swish 는 ReLU 를 능가하며, 모든 x < 0 에 대해 함수를 감소시키거나 증가시키지 않는다고 한다. Mish 와 마찬가지로 bounded below, unbounded above 특징을 가진다. Mish Mish 는 그래프가 무한대로 뻗어나가기 때문..
2020.06.07
no image
[Deep Learning] MediaPipe
MediaPipe Github : https://github.com/google/mediapipe google/mediapipe MediaPipe is the simplest way for researchers and developers to build world-class ML solutions and applications for mobile, edge, cloud and the web. - google/mediapipe github.com MediaPipe Document : https://mediapipe.readthedocs.io/en/latest/ MediaPipe — MediaPipe v0.5 documentation Alpha Disclaimer MediaPipe is currently i..
2020.06.03
no image
[Deep Learning] 딥러닝에서 사용되는 다양한 Convolution 기법들
기존 2차원 컨볼루션은 세가지 문제점이 존재한다. Expensive Cost Dead Channels Low Correlation between channels 또한, 영상 내의 객체에 대한 정확한 판단을 위해서는 Contextual Information 이 중요하다. 가령, 객체 주변의 배경은 어떠한 환경인지, 객체 주변의 다른 객체들은 어떤 종류인지 등. Object Detection 이나 Object Segmentation 에서는 충분한 Contextual Information을 확보하기 위해 상대적으로 넓은 Receptive Field 를 고려할 필요가 있다. 일반적으로 CNN에서 Receptive Field 를 확장하기 위해서는 커널 크기를 확장한다던지, 더 많은 컨볼루션 레이어를 쌓는 방법을 ..
2020.05.18
no image
[Deep Learning] Batch Normalization (배치 정규화)
사람은 역시 기본에 충실해야 하므로 ... 딥러닝의 기본중 기본인 배치 정규화(Batch Normalization)에 대해서 정리하고자 한다. 배치 정규화 (Batch Normalization) 란? 배치 정규화는 2015년 arXiv에 발표된 후 ICML 2015에 게재된 아래 논문에서 나온 개념이다. Batch Normalization: Accelerating Deep Network Training b y Reducing Internal Covariate Shift https://arxiv.org/pdf/1502.03167.pdf Gradient Vanishing / Exploding 문제 신경망에서 학습시 Gradient 기반의 방법들은 파라미터 값의 작은 변화가 신경망 출력에 얼마나 영향을 미칠 ..
2020.05.16
[Deep Learning] 커널의 의미
각기 다른 개념에서 사용하는 커널의 의미는 다음과 같다. 커널 PCA와 서포트 벡터 머신(SVM)에서의 커널 비선형 함수 MeanShift 알고리즘에서의 커널 샘플의 영향 범위 신경망에서의 커널 가중치 참고자료 : 파이썬을 활용한 머신러닝 쿡북 (한빛미디어)
2019.10.05
no image
[Machine Vision] 머신비전 기술분석
머신비전 기술이란? 비전 센서를 이용한 검사/가공 장비들에 대한 자동화를 실현하는 기술이다. 최근 동향을 살펴보면 검사 대상이 소형화되고 내부 패턴이 복잡해지면서 고도의 영상처리 기술을 필요로 하고, 생산성 향상을 위한 고속처리 기술 또한 요구됨 기술적인 측면에서 알고리즘의 정확도 문제로 인해 완전 자동화는 힘들고 마지막 단계에서 검출된 결함들을 작업자가 한 번 더 확인하는 경우가 많아, 이러한 기술적인 한계를 극복하기 위해서는 빅데이터 기반의 딥러닝 기술을 활용해 검사 장비가 시간이 지남에 따라 자가 학습해 점점 정확도가 좋아지도록 해야 한다. 머신비전(machine vision) 시스템의 목표 머신비전의 목표는 영상으로부터 실제의 모델을 추출하는 것이다. 머신비전 시스템은 전경의 2 차원 투영(pro..
2018.11.09
no image
[Deep Learning] CNN(Convolutional Neural Network)
1. CNN, Convolutional Neural Network 개념 Convolutional Neural Network(이하 ConvNet)은 합성곱(Convolution) 연산을 사용하는 인공 신경망의 한 종류이다. ConvNet과 일반적인 신경망의 가장 큰 차이점은 ConvNet은 입력 데이터가 이미지라는 것이다. 이미지는 다음과 같이 행렬 형태로 이루어져있으며 또한, 이미지는 Width x Height x Depth 형태로 이루어져있다. 숫자 32가 의미하는 바는 픽셀 수를 뜻한다. 또한 ConvNet의 가장 큰 특징은 일반적인 신경망 앞에 여러 합성곱 계층을 붙인 형태로 이루어진다. (1). 특징 추출(Feature Extraction)(2). 분류(Calssification) 다음 그림과 같..
2018.11.01