반응형

머신러닝 6

[PRML] 1장 소개

패턴인식과 머신러닝을 공부하고 내용을 정리한 포스팅입니다. 1. 소개 위 그림과 같은 손글씨로 쓰인 숫자를 인식하는 예시를 살펴보겠습니다. 각 숫자는 28 x 28 픽셀 이미지이며, 따라서 784개의 실수로 구성된 벡터로 표현될 수 있습니다. 이런 벡터 X를 입력값으로 받았을 때 숫자 0~9 중 하나의 값을 올바르게 출력하는 기계를 만드는 것입니다. 머신 러닝을 적용하면 좋은 결과를 얻을 수 있습니다. 머신 러닝 : N개의 숫자들 {$x_1, ... , x_N$}을 훈련 집합(training set)으로 활용해서 변경 가능한 모델의 매개변수들을 조절하는 방법 훈련 집합(training set) : 손글씨 숫자 데이터 N개, {$x_1, ... , x_N$} 표적 벡터(target vector) : 훈련 ..

[OpenCV 딥러닝] OpenCV에서 제공하는 DNN 모듈로 GoogLeNet 모델을 실행하여 영상 인식하기 - cv2.dnn.readNet

GoogLeNet 영상 인식 저번 포스팅에서는 CNN 모델을 OpenCV DNN 모듈로 실행하는 것을 해보았습니다. 이번에는 OpenCV DNN 모듈을 이용해서 GoogLeNet 모델을 실행하는 것을 해보겠습니다. OpenCV에서는 GoogLeNet 모델을 학습을 시키는 것이 아니라 미리 학습해둔 파일을 받아와서 추론을 진행할 수 있습니다. 학습이 어떻게 진행되었는지를 알아야 DNN 모듈에 적절한 입력값을 설정할 수 있습니다. GoogLeNet의 입력 : 224x224, BGR 컬러 영상, 평균 값 = (104,117,123) GoogLeNet의 출력 : 1x1000 행렬, 1000개 클래스에 대한 확률값 미리 학습된 GoogLeNet 학습 모델 및 구성 파일 다운로드 Model Zoo에서 미리 학습되어..

[OpenCV 머신러닝] OpenCV에서 k-means 알고리즘 사용하기 - cv2.kmeans

OpenCV에서 제공하는 함수를 이용하여 k-means 알고리즘을 이용하는 방법에 대해 공부해보겠습니다. k-평균(k-means) 알고리즘 k-means 알고리즘은 주어진 데이터를 k 개의 구역으로 나누는 군집화(clustering) 알고리즘입니다. 비지도 학습이며 데이터를 무작정 입력으로 주고 임의의 기준으로 나눠주는 형태로 동작하는 알고리즘 입니다. k는 군집 갯수를 의미하여 사용자가 지정해줘야 하는 파라미터입니다. k-means 알고리즘 동작 순서 1. 임의의 k개 중심을 선정합니다. (초기치 중심을 설정해줘야 합니다) 랜덤하게 각 샘플의 중심이라고 간주할 위치를 임의로 선택합니다. 초기 중심점을 어떻게 선정하냐에 따라 결과값이 달라지게 됩니다. 2. 모든 데이터에 대하여 가장 가까운 중심을 선택하..

[OpenCV 머신러닝] OpenCV에서 HOG 알고리즘을 이용한 SVM 필기체 숫자 인식

HOG & SVM 필기체 숫자 인식 픽셀값을 이용하여 SVM을 학습시키는 것보다 HOG 알고리즘으로 추출한 특징 벡터를 이용하여 SVM을 학습시키는 것이 정확도가 더 뛰어납니다. 이번 포스팅에서는 HOG 특징 벡터를 이용한 SVM 학습 방법에 대해 알아보고 필기체 숫자를 인식해 보겠습니다. 필기체 숫자 데이터 필기체 숫자 데이터는 OpenCV 깃허브에서 제공하는 숫자 데이터를 이용했습니다. opencv/opencv Open Source Computer Vision Library. Contribute to opencv/opencv development by creating an account on GitHub. github.com 데이터에는 20X20 숫자 영상이 가로 100개, 세로 50개 총 5000개..

[OpenCV 머신러닝] OpenCV로 k 최근접 이웃 알고리즘(KNN) 구현하기 - cv2.ml.KNearest_create

k 최근접 이웃 알고리즘 - KNN, k-Nearest Neighbor k 최근접 이웃 알고리즘은 특징 공간에서 테스트 데이터와 가장 가까이 있는 k개의 학습 데이터를 찾아 분류 또는 회귀를 수행하는 지도 학습 알고리즘의 하나입니다. 학습 데이터가 녹색이라고 가정하였을 때 원래 데이터(파랑색, 빨강색)중 가장 가까지 있는 데이터의 클래스를 부여합니다. 위 사진에서 녹색 데이터는 빨강색 데이터와 가까이 있지만 빨강색 데이터라고 판단하기에는 애매합니다. 이처럼 잘못 분류될 가능성이 있는데 이를 해결하기 위해 가장 가까이 있는 것을 k개 찾습니다. 선별한 k개 데이터에서 파랑색, 빨강색 데이터 개수를 세어 더 많이 선별된 데이터의 클래스를 부여하게 됩니다. 예를 들어 5개 데이터를 선별했을 때 3개가 파랑색,..

[OpenCV 머신러닝] OpenCV 머신러닝 클래스 - 객체 생성, 학습, 추론 - create, train, predict

OpenCV 머신 러닝 클래스 OpenCV에서 머신러닝과 관련된 클래스를 제공하고 있습니다. OpenCV 머신 러닝 클래스 설명 클래스 이름 설명 ANN_MLP 인공 신경망(artificial neural network) 다층 퍼셉트론(multi-layer perceptron) 입니다. 여러 개의 은닉층을 포함한 신경망을 학습시킬 수 있고, 입력 데이터에 대한 결과를 예측할 수 있습니다. DTrees 이진 의사 결정 트리(decision trees)알고리즘입니다. DTrees 클래스는 부스팅 알고리즘은 구현한 ml::Boost 클래스와 랜덤 트리(random tree) 알고리즘을 구현한 ml::RTree 클래스의 부모 클래스 역할을 합니다. Boost 부스팅(boostring) 알고리즘입니다. 다수의 약..

반응형