[Object Detection] Multiple Object Detector
나중에 detector 를 파이썬으로 구현하고자 할 때 좋은 자료가 될듯 관련논문 1은 딥러닝을 구현하여 heatmap 을 생성해 object detection을 수행하는 논문이고, 관련논문 2도 딥러닝을 기반으로 bounding box 를 추출하는 과정을 수행한다. 관련논문 3은 구글에서 수행했던 논문인데, image cropping 부터 시작해서 human pose estimation 을 수행한다. 다음은 관련논문 1의 Git 이다. https://github.com/google/multibox google/multibox Contribute to google/multibox development by creating an account on GitHub. github.com 관련 논문 1 : Sca..
2017.08.31
[Deep Learning] 손글씨 인식 (MNIST)
참고자료 : 신경망 첫걸음 (한빛미디어) 딥러닝에서의 Hello World는 손글씨 숫자 이미지를 인식하는 것이다. MNIST 데이터셋 MNIST 데이터셋은 훈련용 55000개 및 테스트용 1만개로 이루어진 손글씨 숫자의 흑백 이미지 데이터이다. 이 데이터는 http://yann.lecun.com/exdb/mnist 에서 다운 받을 수 있다. 이미지를 다루는 경우에 데이터 전처리나 포매팅이 중요하지만, 이는 시간이 많이 걸리는 부분이다. 그러므로 이 데이터셋은 딥러닝을 시작하기에 안성맞춤이라고 한다. 이 흑백 이미지는 가로세로 비율은 그대로 유지하고 20x20 픽셀로 정규화 되어있다. 정규화 알고리즘 (가장 낮은 것에 맞춰 전체 이미지 해상도를 감소)에는 앤티에일리어싱 처리가 되어 이들 이미지에는 회색 ..
2017.08.25
no image
[Pose Estimation] Pose Estimation & Heatmap 관련 Git & 논문
Pose Estimation 관련 Git DeeperCut Part Detectors :: https://github.com/eldar/deepcut-cnn (Caffe) 관련 논문 : [1] DeeperCut: A Deeper, Stronger, and Faster Multi-Person Pose Estimation Model [2] DeepCut: Joint Subset Partition and Labeling for Multi Person Pose Estimation DeepPose (Stg-1) on TensorFlow :: https://github.com/asanakoy/deeppose_tf asanakoy/deeppose_tf DeepPose implementation on TensorFlo..
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
[Tensorflow] 선형회귀분석
참고자료 : 텐서플로 첫걸음 2장 1. 변수 간의 관계에 대한 모델 선형회귀분석(Linear Regression)은 변수들 사이의 관계를 분석하는 데 사용하는 통계학적 방법이다. 선형회귀분석은 독립변수 X, 상수항 b, 종속변수 y 사이의 관계를 모델링하는 방법이다. 두 변수 사이의 관계일 경우 단순회귀라고 하며 여러개의 변수를 다루는 다중회귀도 있다. 텐서플로우를 이용하여 y = W * x + b 형태의 간단한 선형회귀분석 모델을 만들어볼 수 있다. 먼저 2차원 좌표계에 데이터를 생성하고 샘플 데이터에 들어맞는 최적의 직선을 텐서플로우를 이용하여 찾을 수 있다. import numpy as np num_points = 1000 vectors_set = [] for i in range(num_points..
2017.08.22
no image
[Tensorflow] 윈도우 아나콘다 가상환경 설정하기 (matplotlib.externals 에러 해결법)
참고자료 1 : http://wandlab.blogspot.kr/2016/11/python3-anaconda3.html참고자료 2 : https://gzupark.github.io/articles/Why-Anaconda-How-to-control-Anaconda/ 아나콘다 가상환경 설정하기 1. conda create -n 가상환경이름 단순히 가상환경의 이름으로 가상환경이 생성된다. 2. conda create -n 가상환경이름 python=3.x 가상환경의 이름으로 python 3.x 버전을 사용 가능하게 환경이 생성된다. 3. conda create -n 가상환경이름 python=3.x 패키지명 ex : conda create -n tensorflow python=3.5 anaconda anacond..
2017.08.22
[Tensorflow] pip 명령어
1. 패키지 검색pip search 키워드 2. 패키지 설치pip install 패키지 3. 패키지 삭제pip uninstall 4. 패키지 업데이트pip install --upgrade 패키지 5. 설치된 패키지 확인pip show 패키지 6. 설치된 전체 패키지 확인pip list
2017.08.21
[Tensorflow] _getfullpathname: embedded null character
_getfullpathname: embedded null character 에러 시 C:\Anaconda3\lib\site-packages\matplotlib\font_manager.py 위치에 있는 font_manager.py 파일을 아래와 같이 변경 try: for j in range(winreg.QueryInfoKey(local)[1]): try: key, direc, any = winreg.EnumValue( local, j) if not is_string_like(direc): continue if not os.path.dirname(direc): direc = os.path.join(directory, direc) # direc = os.path.abspath(direc).lower() # i..
2017.08.21
[Tensorflow] 텐서플로우 수학함수, 행렬 연산 함수
참고자료 : 텐서플로 첫걸음 [한빛미디어] 텐서플로우 자주쓰는 수학함수 함수 설명 tf.add 덧셈 tf.sub 뺄셈 tf.mul 곱셈 tf.div 나눗셈의 몫 tf.mod 나눗셈의 나머지 tf.abs 절댓값을 리턴 tf.neg 음수를 리턴 tf.sign 부호를 리턴 (음수는 -1, 양수는 1, 0은 0) tf.inv 역수를 리턴 (예: 3의 역수는 1/3) tf.square 제곱을 계산 tf.round 반올림 값을 리턴 tf.sqrt 제곱근을 계산 tf.pow 거듭제곱 값을 계산 tf.exp 지수 값을 계산 tf.log 로그 값을 계산 tf.maximum 최댓값을 리턴 tf.minimum 최솟값을 리턴 tf.cos 코사인 함수 값을 계산 tf.sin 사인 함수 값을 계산 텐서플로우 자주쓰는 행렬 연산 ..
2017.08.21
[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
[OpenCV] 동영상 저장 및 파일명 지정 (to_string)
오랜만에 올리는 OpenCV 포스팅 사실 기록용이다 동영상 저장 및 파일명 지정하기 (video(1), video(2), ...) 소스코드는 일부 입니다. VideoWriter leftWriter, rightWriter; int codec = CV_FOURCC('P', 'I', 'M', '1'); // select desired codec (must be available at runtime) double fps = cam.camera_capture[0]->get(CAP_PROP_FPS); // frame rate of the created video stream //cout
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