반응형

Image processing 60

RANSAC(Random Sample Consensus)

RANSAC이란? 관측된 데이터들에 대하여 근사 모델(Fitting Model)의 파라미터를 추정하는 방법 중 하나이며, 무작위로 샘플 데이터를 뽑은 다음 최대로 일치하는 모델을 선택하기 때문에 노이즈 or 이상치(Outlier)에 영향을 덜 받는 방법이다. 그러나, 임의의 데이터를 선택하기 때문에 같은 데이터임에도 결과가 매번 달라질수 있으며 Outlier의 분포가 일정한 구조를 갖게 되면 Outlier에 근사할 수 있다. RANSAC 알고리즘 N : 반복횟수, t = 모델과의 거리 임계값, max_point = inlier 데이터 max_point = 0, 모델 파라미터에 근사한 데이터들의 수를 초기화 관측된 데이터 안에서 무작위로 세점을 뽑는다. 세 점을 이용하여 근사한 모델 f(x)을 구한다. 구..

Albumentations 이미지 Augmentation API 소개

이미지 증강방법은 딥러닝이나 컴퓨터 비전에서 학습된 모델의 퀄리티를 향상하기 위해 사용되는 방법이며, 기존 학습데이터를 이용하여 새로운 데이터를 생성하는 목적을 가지고 있다. Pytorch, Tensorflow등 다양한 프레임워크에서 사용 가능하며 pixel-level transforms, spatial-level transforms 등의 70개 연산을 지원한다. 또한, 데이터 타입(RGB-images, grayscale images, multispectral image, segmentation masks, bounding boxes, and keypoints)등 에서 이용 가능한다. Semantic segmentation on the Inria dataset Medical imaging Object d..

[Part 3] Image Segmentation Using Deep Learning, A survey

Written by Shervin Minaee, Yuri Boykov, Fatih Porikli, Antonio Plaza, Nasser Kehtarnavaz, and Demetri Terzopoulos Fully convolutional networks Convolutional models with graphical models Encoder-decoder based models Multi-scale and pyramid network based models R-CNN based models(for instance segmentation) Dilated convolutional models and DeepLab family Recurrent neural network based models Attent..

[Part 2] Image Segmentation Using Deep Learning, A survey

Written by Shervin Minaee, Yuri Boykov, Fatih Porikli, Antonio Plaza, Nasser Kehtarnavaz, and Demetri Terzopoulos Fully convolutional networks Convolutional models with graphical models Encoder-decoder based models Multi-scale and pyramid network based models R-CNN based models(for instance segmentation) Dilated convolutional models and DeepLab family Recurrent neural network based models Attent..

[Part 1] Image Segmentation Using Deep Learning, A survey

Written by Shervin Minaee, Yuri Boykov, Fatih Porikli, Antonio Plaza, Nasser Kehtarnavaz, and Demetri Terzopoulos 논문에서 다루고자 하는 카테고리는 아래와 같으며, 3회에 걸쳐 리뷰해볼까 합니다. Fully convolutional networks Convolutional models with graphical models Encoder-decoder based models Multi-scale and pyramid network based models R-CNN based models(for instance segmentation) Dilated convolutional models and DeepLab famil..

Metrics for segmentation Models

서로 다른 Segmentation 모델들에 대해 성능 비교하기 위해서는 benchmark 데이터 셋에 대한 평가지표가 필요하며, 가장 많이 쓰이는 merics들을 정리해보고자 한다. Pixel accuracy Mean Pixel Accuracy(MPA) Intersection over Union(IoU) Mean-IoU Precision/Recall/F1 score Dice coefficient Pixel accuracy : 분할된 픽셀 수(classified)를 전체 픽셀 수로 나눈다. K+1개의 클래스(K는 foreground class - 분할하고자 하는 물체의 수, 1은 background-배경)라고 할때, 수식은 다음과 같다. $ PA = \frac{\sum_{i=0}^{K}p_{ii}}{\su..

[Pytorch] torch.backends.cudnn.benchmark do?

torch.backends.cudnn.benchmark 코드는 True와 False로 설정할 수 있다. 이 코드의 역할은 다음과 같다. 내장된 cudnn 자동 튜너를 활성화하여, 하드웨어에 맞게 사용할 최상의 알고리즘(텐서 크기나 conv 연산에 맞게?)을 찾는다. 입력 이미지 크기가 자주 변하지 않는다면, 초기 시간이 소요되지만 일반적으로 더 빠른 런타임의 효과를 볼 수 있다. 그러나, 입력 이미지 크기가 반복될 때마다 변경된다면 런타임성능이 오히려 저하될 수 있다. https://discuss.pytorch.org/t/what-does-torch-backends-cudnn-benchmark-do/5936/7 What does torch.backends.cudnn.benchmark do? Does it..

[2020] RONELD : Robust Neural Network Output Enhancement for Active Lane Detection

Written by Zhe Ming Chng, Joseph Mun Hung Lew, Jimmy Addison Lee [Abstract] 정확한 차선탐지는 자율주행에서 중요한 Task이며, 최근 많은 방법들에서 Tusimple, CuLane와 같은 데이터 셋을 학습하여 사용한다. 각각의 학습데이터를 이용한 방법들은 좋은 정확도를 보이지만, 학습하지 않은(보지 않은) 데이터에 대하여 Performance가 상당히 떨어진다. 본 논문에서는 real-time Robust neural network output enhancement for active lane detection (RONELD) 방법으로 딥러닝 확률 결과 맵으로부터 active lanes들에 대해 식별, 추적, 최적화하였다. 우리는 먼저, 확률 결..

ERFNet : Efficient Residual Fatorized ConvNet for Real-time Semantic Segmentation

Written by Romera, Jose M. Alvarez, Luis M. Bergasa and Roberto Arroyo [Abstract] 지능형 차량의 인식 요구사항을 통합된 방식으로 해결하는 것은 어려운 Task에 속한다. Deep Neural Network는 픽셀 수준에서 이미지의 여러 개체 범주를 분류하기 위해 End-to-End 학습을 수행하기 때문에 적합하다. 그러나, 고품질 성능, 제한된 리소스 간의 trade-off를 지키는 좋은 접근 방식이 존재하지 않기 때문에 실제 차량에서의 적용이 제한된다. 본 논문에서는 정확도 높은 실시간 딥 아키텍쳐를 제안한다. 우리는 뛰어난 정확도를 유지하기 위해 Residual connection과 factorized convolutions를 사용한 새..

RESA : Recurrent Feature-Shift Aggregator for Lane Detection

Written by Tu Zheng, Hao Fang, Yi Zhang, Wenjian Tang, Zheng Yang, HaiFeng Liu, Deng Cai Abstract Lane detection은 자율주행 분야에서 매우 중요한 Tasks 중 하나로, 복잡한 환경(Severe occlusion, ambiguous lanes, etc. )과 background에 비하여 드문 차선 픽셀등으로 인해 어려움을 겪고 있다. 따라서, 일반적인 CNN(Convolution Neural Network)방법으로는 lane feature를 얻기 힘들다. 본 논문에서는 일반적인 CNN을 통해 차선의 풍부한 특징들을 추출하고, 새로운 REcurrent Feature-Shift Aggregator(RESA)모듈을 이용하였..

[2018] Towards End-to-End Lane Detection: an Instance Segmentation Approach

Written by Davy Neven, Bert De Brabandere, Stamatios Georgoulis, Marc Proesmans, Luc Van Gool [Abstract] 현대의 접근 방식은 큰 Receptive Field로 인해 이미지에 차선 표시가 없는 경우에도 픽셀 단위 차선 분할을 위해 학습된 딥러닝 모델을 활용합니다. 이러한 장점들에도 불구하고, ego-lane과 같이 사전 정의된 차선이나 고정된 숫자의 차선들을 탐지하는 것에 제한된다. 본 논문에서는 이러한 문제를 보완하고자 각 레인에 대한 instance 분할 문제로 탐지해야 함을 제안하였다. End-to-End 방식을 사용하였으며 원영상에 탐지된 차선을 맞추기 전, 분할된 차선 인스턴스를 매개 변수 화하기 위해 고정된 "bi..

[2015] Flattened Convolutional Neural Networks for Feedforward Acceleration

Written by Jonghoon Jin, Aysegul Dundar & Eugenio Culurciello [Introduction] 빠른 Feed Forward 실행을 위해 설계된 평면화 된 컨볼루션 신경망을 제시하고자 한다. Parameter들의 중복성, 특히 컨볼루션 신경망에서 컨볼루션 필터의 가중치에 대해 광범위하게 연구되었으며 학습 후 필터의 Low rank 기반을 구성하기 위해 다양한 방법들이 제안되었다. 본 논문에서는 3D 공간에서 모든 방향에 걸쳐 연속적인 1차원 필터로 구성된 평면화된 네트워크를 학습시켜 기존 컨볼루션과 비슷한 성능을 얻었다. 기존 필터의 중복된(redundancy) 계산을 줄였고, 학습과정에서 3D 필터들을 1D 필터들의 연속된 3번 계산으로 달성할 수 있었다. (l..

[2016] ENet : A Deep Neural Network Architecture for Real-Time Semantic Segmentation

[Abstract] pixel-wise Segmentation in real time에서 큰 숫자의 floating point operation은 단점으로 여겨지며, 긴~ run-times로 인해 작동능력을 방해한다. 본 논문에서는 낮은 latency 연산으로 구성된 새로운 딥 뉴럴 네트워크 구조를 제안하였다. E-Net은 기존 대비 18배 이상 빠르며 75배 보다 적은 FLOPS, 79배 적은 파라미터 값을 가지고, 기존 모델에 비해 더 나은 정확도를 보이고 있다. CamVid, Cityscapes, Sun 데이터 셋에서 좋은 성능을 보였으며, 정확도와 네트워크 처리 속도 사이의 Trade-off가 존재한다. 우리는 임베디드 시스템에서 제안된 아키텍처의 성능측정을 제시하고, ENet을 더 빠르게 만들 ..

[2018] Bag of Tricks for Image Classification with Convolutional Neural Networks(part 2)

[Training Refinement] Cosine Learning Rate Decay 학습률에 대한 조정은 중요하다. 본 논문에서는 꾸준히 초기 학습률을 줄이는 전략을 사용하였다. 대부분의 논문에서 사용하는 전략은 기하급수적으로(exponentially) 감소시키는 전략을 많이 사용한다. He et al.은 30 epochs마다 0.1 rate를 감소시켰으며 "step decay"라고 부른다. Szegedy et al.은 2에폭마다 0.94를 감소시켰다. 이와 대조적으로 Loshchilov et al.은 cosine annealing strategy를 사용하였다. 단순한 version은 초기 값을 cosine 함수에 따라서 0으로 감소시키는 것이다. warm up 전략을 무시하고 전체 배치 수 t에서 ..

[2018] Bag of Tricks for Image Classification with Convolutional Neural Networks(Part 1)

Written by Tong He, Zhi Zhang, Hang Zhang, Zhongyue Zhang Junyuan Xie, Mu Li [Abstract] 최근 image classification 분야에서는 Data augmentations and optimization methods와 같은 학습 성능 개선 방안들이 발전하고 있다. 본 논문에서는 성능을 개선시키는 다양한 기법들에 대한 시험을 수행하였고, 최종 모델 정확도에 미치는 영향을 경험적으로 평가하였다. 이러한 개선사항들을 통해 ImageNet에서 ResNet-50의 Top-1 검증 정확도를 75.3%에서 79.29%로 높였다. 또한 Image Segmentation 정확도가 향상되면, 객체 탐지 및 Semantic segmentation과 같..

[2018] ICNet for Real-Time Semantic Segmentation on High-Resolution Images

Written by Hengsuang Zhao, Xiaojuan Qi, Xiaoyong Shen, Jianping Shi, Jiaya Jia Abstract Real-time Segmentation 분야에서는 픽셀단위 라벨 추론에 대한 계산량을 줄이는데 있어, 어려움을 가지고 있다. 계층 단위 Multi-Resolution 브랜치들을 이용하여 적절한 label guidance 방법을 수행하였으며, 이미지 해상도에 따른 다양한 정보들을 Cascaded Fusion 하였다. 제안하는 방법은Cityscapes, CamVid, COCO-Stuff 등에서 빠른 속도와 high quality segmentation 결과를 보이고 있다. Introduction CNN-based Semantic Segmentation..

numpy.testing.assert_allclose

numpy.testing.assert_allclose(actual, desired, rtol=1e-07, atol = 0, equal_nan = True, err_msg='', verbose=True) actual과 desired에 비교하고자 하는 값을 넣고, actual값과 desired값이 atol+rtol * abs(desired) 값의 범위를 넘어가면 에러 메세지를 일으킴. *딥러닝 모델의 추론값을 서로 비교할 때 사용해도 좋음 참고자료 https://numpy.org/doc/stable/reference/generated/numpy.testing.assert_allclose.html https://jangjy.tistory.com/360?category=870456

Depth-wise Separable Convolution

기존 컨볼루션 연산은 두가지 분리 가능한 컨볼루션으로 나눌수 있다. 이러한 Separable 연산은 MobileNet이나 Xception 등에서 사용된다. Spatial Separable Convolution, Depth-wise Separable Convolution Spatial Separable Convolution(Depthwise) : 하나의 컨볼루션 연산을 공간적으로 나눈 방법이다. 예를 들어 3x3 컨볼루션 연산은 9 곱셈으로 한번의 컨볼루션 연산을 수행하는 대신, 동일한 효과를 얻기 위해 3x1, 1x3 곱셉으로 두번의 컨볼루션을 수행합니다. 곱셈이 적을수록 계산 복잡성이 줄어들고 수행 속도가 더 빠르다. 연산량의 비교 필터의 크기 : K, 입력의 채널 수 : C, 결과 채널 수 : M 기..

[2018] Pelee: Real-Time Object Detection System On Mobile Devices

Written by Robert J. Wang, Xiang Li & Charles X. Ling Git : https://github.com/Robert-JunWang/Pelee [Abstract] 컨볼루션 신경망이 제한된 Computing Power나 메모리 Resource를 가진 모바일 디바이스에서 동작하기 위해서는 효율적인 모델 디자인이 필요하다. 이에 MobileNet, SuffleNet, MobileNetV2과 같은 형태의 방법들이 제안되었으며, 대부분의 모델들은 효율적인 구현이 부족한 Depthwise separable convolution에 크게 의존하고 있었다. 우리는 기존의 컨볼루션 대신, 효율적인 구조의 PeleeNet를 제안하였다. 우리는 ImageNet ILSVRC 2012 데이터 ..

model.eval()과 with torch.no_grad()

pytorch 프레임워크에서 Train을 하거나 evaluation or Test를 수행할 때 자주 사용하게 되며, 함수간의 차이가 존재한다.혼동하기 쉬우니 구분해서 사용하기 바랍니다. model.eval() will notify all your layers that you are in eval mode, that way, batchnorm or dropout layers will work in eval mode instead of training mode. torch.no_grad() impacts the autograd engine and deactivate it. It will reduce memory usage and speed up computations but you won’t be able ..

반응형