[Image Processing] Computer Vision 분류
컴퓨터 비전 분류 체계 하위 레벨 이미지 프로세싱과 피처 추출 컴퓨터 비전, 정규화, 연결주의, 형태론, 스케일-공간, 개념적 그룹화, 파형요소, 컬러, 센서, 광학, 레이저, 레이더 이미지 프로세싱, 복원, 개선, 필터, 이미지와 비디오 코딩 엣지 탐색과 분석, 라인, 세그먼트, 커브, 코너, 허프 변환 2D 피처 분석, 추출과 재현, 형상, 골조, 텍스쳐 2D 구역 세분화 기술, 스네이크, 활성 회곽선 이미지의 3D 재구성 X의 3D 형태, 쉐이딩, 텍스쳐, 레이저, 구조화된 빛, 포커스, 라인 드로잉 스테레오 : 2개 이상의 뷰를 통한 3차원 묘사, 양안으로 보는 시야, 3안으로 보는 시야 3D 사물 묘사와 계산 테크닉, 표면, 변형, 뷰 생성, 비디오 콘퍼런스 사물인식 등록, 포인트를 사용한 매칭..
2018.07.22
[Machine Vision] 머신비전이란
머신 비전 (Machine Vision) 이란? 기계에 인간이 가지고 있는 시각과 판단 기능을 부여 한 것으로 사람이 인지하고 판단하는 기능을 하드웨어와 소프트웨어의 시스템이 대신 처리하는 기술이다. 머신비전은 카메라, 영상보드, 광학기기, 영상처리 소프트웨어 등을 이용하여 수행하며, 산업 분야에서의 머신 비전 기술을 이용한 적용 예시는 다음과 같다. 제품의 표면 마무리 검사 물리적 결함 검출 컨베이어의 물체 수 파악 섬유 제품의 검사 색상 검사 인쇄회로기판(PCD) 검사 포토마스크 반도체 제조 결함 여/부 확인 로봇 유도 크기 및 모양 확인 부품 누락 여부 검사 올바른 장착 배치 현미경으로 볼 정도로 미세한 부품의 완성도 확인 일련번호 판독 머신비전은 각종 산업 분야가 "자동화"로 전환되면서 반도체 업..
2018.02.11
[Deep Learning] 손글씨 인식 (MNIST)
참고자료 : 신경망 첫걸음 (한빛미디어) 딥러닝에서의 Hello World는 손글씨 숫자 이미지를 인식하는 것이다. MNIST 데이터셋 MNIST 데이터셋은 훈련용 55000개 및 테스트용 1만개로 이루어진 손글씨 숫자의 흑백 이미지 데이터이다. 이 데이터는 http://yann.lecun.com/exdb/mnist 에서 다운 받을 수 있다. 이미지를 다루는 경우에 데이터 전처리나 포매팅이 중요하지만, 이는 시간이 많이 걸리는 부분이다. 그러므로 이 데이터셋은 딥러닝을 시작하기에 안성맞춤이라고 한다. 이 흑백 이미지는 가로세로 비율은 그대로 유지하고 20x20 픽셀로 정규화 되어있다. 정규화 알고리즘 (가장 낮은 것에 맞춰 전체 이미지 해상도를 감소)에는 앤티에일리어싱 처리가 되어 이들 이미지에는 회색 ..
2017.08.25
no image
[Deep Learning] 회귀분석 (Regression) 과 경사하강법 (Gradient Descent)
참고자료 1 : medium.com/mathpresso참고자료 2 : http://gdyoon.tistory.com/9참고자료 3 : 텐서플로 첫걸음 (한빛미디어) 1. 회귀분석 (Regression) Pose Estimation에 대한 자료를 찾다보면 Keypoints detection에서 heatmap을 이용한 포즈추정시 Regression 이라는 개념이 많이 등장한다. 사실 이 개념은 머신러닝에서 나오는 개념이며, 이번 기회에 정리해보도록 한다. 회귀분석이란 주어진 데이터가 어떤 함수로부터 생성되었는가를 알아보는 '함수 관계'를 추측하는 것이다. 즉, 훈련 데이터세트 (X, Y) 로 부터 학습알고리즘을 이용하여 가설을 생성하고, 생성된 가설에 데이터를 입력하여 예측 값 데이터를 얻는 것이다. 이러한..
2017.08.25
[Deep Learning] pre-training 과 fine-tuning (파인튜닝)
Pre Training 이란? 선행학습(pre-training) 사전훈련(pre-training) 전처리과정(pre-training) 이라고도 하는데, 이는 Multi Layered Perceptron (MLP)에서 Weight와 Bias를 잘 초기화 시키는 방법이다. 이러한 Pre-training을 통해서 효과적으로 layer를 쌓아서 여러개의 hidden layer도 효율적으로 훈련 할 수 있다. 또한, 이는 unsupervised learning이 가능하기 때문에(물론 이러한 가중치와 편향 초기화가 끝나면 레이블 된 데이터로 supervised learning 해야 한다 -> fine tuning) 레이블 되지 않은 큰 데이터를 넣어 훈련 시킬 수 있다는 점을 장점으로 들 수 있다. 또한 Drop-..
2017.08.17
[Deep Learning] end-to-end trainable neural network
논문을 읽다가 이해가 안되던 end-to-end trainable neural network 의 의미를 알아보도록 하자. 모델의 모든 매개변수가 하나의 손실함수에 대해 동시에 훈련되는 경로가 가능한 네트워크로써 역전파 알고리즘 (Backpropagation Algorithm) 과 함께 최적화 될 수 있다는 의미이다. 예를들어 인코더(언어의 입력을 벡터로)와 디코더(벡터의 입력을 언어로)에서 모두가 동시에 학습되는 기계 번역 문제에서 효과적으로 적용 될 수 있다. 즉, 신경망은 한쪽 끝에서 입력을 받아들이고 다른 쪽 끝에서 출력을 생성하는데, 입력 및 출력을 직접 고려하여 네트워크 가중치를 최적화 하는 학습을 종단 간 학습(End-to-end Learning) 이라고 한다. Convolutional neu..
2017.08.04
no image
[Deep Learning] 7. 2층 신경망 구현하기
출처 : 밑바닥 부터 시작하는 딥러닝 (한빛미디어) 신경망 학습이 이루어지는 순서는 다음과 같다. 전제 신경망에는 적응 가능한 가중치와 편향이 있고, 이 가중치와 편향을 훈련 데이터에 적응하도록 조정하는 과정을 "학습" 이라고 한다. 신경망 학습은 아래와 같이 4단계로 수행하게 된다. 1단계 미니배치 훈련 데이터 중 일부를 무작위로 가져온 뒤 미니배치의 손실 함수 값을 줄이는 과정을 거친다. 2단계 기울기 산출 미니배치의 손실 함수 값을 줄이기 위해 각 가중치 매개변수의 기울기를 구한다. 기울기는 손실함수의 값을 가장 작게 하는 방향을 제시하게 된다. 3단계 매개변수 갱신 가중치 매개변수를 기울기 방향으로 아주 조금 갱신한다. 4단계 반복 1~3 단계를 반복한다. 이는 6절에서 다루었던 경사 하강법을 이..
2017.07.17
no image
[Deep Learning] 6. 경사하강법 (Gradient Method)
참고자료 1 : 밑바닥부터 시작하는 딥러닝 (한빛미디어) 1. 경사법(경사하강법, Gradient Method) 기계학습 문제 대부분은 학습단게에서 최적의 매개변수를 찾아낸다. 신경망 역시 최적의 매개변수(가중치와 편향)를 학습 시에 찾아야 한다. 여기에서 최적이란 손실 함수가 최솟값이 될 때의 매개변수 값이다. 매개변수 공간이 광대하여 어디가 최솟값이 되는 곳인지를 알아내기가 쉽지 않다. 이런 상황에서 기울기를 잘 이용해 함수의 최솟값을 찾으려는 것이 경사법이다. 여기서 주의할점은 각 지점에서 함수의 값을 낮추는 방안을 제시하는 지표가 기울기라는 것이다. 그러나 기울기가 가리키는 곳에 정말 함수의 최솟값이 있는지, 즉 그쪽이 정말로 나아갈 방향인지는 보장할 수 없다. 함수가 극솟값, 최솟값, 또 안장점..
2017.07.14
[Deep Learning] 5. 마코프 의사결정 과정 (Markov decision process, MDP)
출처 1 : http://rfriend.tistory.com/184출처 2 : http://secom.hanbat.ac.kr/or/chapter1/right04.html출처 3 : https://brunch.co.kr/@kakao-it/73 먼저 마코프 의사결정 과정을 살펴보기에 앞서, 이 개념이 왜 딥러닝에서 필요한지 알 필요가 있다. 예를 들어 자율주행 자동차에 들어갈 알고리즘을 만든다고 치자. 이 때 가장 중요한 문제 중 하나는 확률계(Stochastic System)에서 순차적 의사결정(Sequential Decision) 문제를 푸는 것이다. 자동차를 제어할 때 빗길이라던지 비포장 도로 등의 원인으로 인해 우리가 원치 않는대로 움직일 수 있다. 이 때 예상과 일치하지 않는 상황을 확률계라 한다...
2017.07.05
no image
[Deep Learning] 4. 신경망 학습 (손실함수, 미니배치)
이전 Deep Learning 포스팅 [Deep Learning] 1. 단층 퍼셉트론과 다층 퍼셉트론 [Deep Learning] 2. 신경망 (Sigmoid, ReLU) [Deep Learning] 3. 출력층 (항등함수, 소프트맥스함수) 저번 포스팅에서는 출력층의 항등함수를 이용하여 회귀, 소프트맥스함수를 이용하여 분류하는 문제를 다루었다. 이번 포스팅에서는 신경망 학습 이라는 주제를 다룰 것이다. 학습이란 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 뜻한다. 이러한 신경망이 학습할 수 있도록 해주는 지표인 손실함수를 소개한다. 손실함수의 결과값을 가장 작게 만드는 가중치 매개변수를 찾는 것이 학습의 목표이다. 이번 장에서는 손실 함수의 값을 가급적 작게 만드는 기법으로 함수의..
2017.06.12
no image
[Deep Learning] 3. 출력층 (항등함수, 소프트맥스함수)
이전 Deep Learning 포스팅 [Deep Learning] 1. 단층 퍼셉트론과 다층 퍼셉트론 [Deep Learning] 2. 신경망 (Sigmoid, ReLU) 기계학습 문제는 분류(Classification)와 회귀(Regression)로 나눌 수 있다. 분류는 데이터가 어느 클래스에 속하느냐의 문제이고, 회귀는 입력 데이터에서 연속적인 수치를 예측하는 문제이다. 이렇듯, 신경망의 출력층에서는 항등함수와 소프트맥스 함수를 이용하여 출력 값을 얻을 수 있다. 이는 분류와 회귀에 있어서 중요한 역할을 수행하게 된다. 또한, 기계학습의 문제풀이는 학습과 추론(Inference)의 두 단계를 거쳐 이뤄진다. 학습단계에서 모델을 학습하고, 추론 단계에서 앞서 학습 된 모델로 미지의 데이터에 대해서 추..
2017.06.12
no image
[Deep Learning] 2. 신경망 (Sigmoid, ReLU)
[Deep Learning] 1. 단층 퍼셉트론과 다층 퍼셉트론 단층 퍼셉트론과 다층 퍼셉트론에서 매개변수로 가중치와 편향 값을 사용자가 임의로 조정 하였는데, 신경망 개념을 도입한다면 이를 자동으로 학습하여 적절한 값을 대입 할 수 있다. 또한 신경망에는 입력 데이터가 무엇인지 식별하는 처리 과정도 포함된다. 1. 신경망의 개념 신경망에는 입력층, 은닉층, 출력층 으로 나누어진다. 은닉층의 뉴런은 사람의 눈에 보이지 않는다. 또한 이러한 신경망을 2층 신경망이라고 한다. (가중치를 갖는 층은 2개 뿐이기 때문에) (그림 1) 신경망 구조 2. 퍼셉트론 복습 신경망의 신호 전달 방법을 보기전에 퍼셉트론을 복습해 보자면 퍼셉트론은 다음과 같이 구성되어 있었다. x1과 x2의 두 신호를 입력 받아 y를 출력..
2017.05.26