컴퓨터 비전(OpenCV) 스터디

230626-230702 스터디

2023. 6. 29. 14:07

 

< OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 > 교재 15장 공부

 

 

- 15장 머신 러닝

15.1 머신 러닝과 OpenCV

<머신 러닝 개요>

- 머신 러닝

주어진 데이터를 분석하여 규칙성, 패턴 등을 찾고, 이를 이용하여 의미 있는 정보를 추출하는 과정

- 지도학습 

정답을 알고 있는 데이터를 이용하여 학습을 진행하는 방식

회귀, 분류에 주로 사용됨

- 비지도학습

훈련 데이터의 정답에 대한 정보 없이 오로지 데이터 자체만을 이용하는 학습 방식

주로 군집화에 사용됨

 

<OpenCV 머신 러닝 클래스>

- OpenCV에서 제공하는 머신 러닝 클래스는 주로 ml 모듈에 포함됨

cv::ml::StatModel 추상 클래스

 

15.2 k 최근접 이웃

<k 최근접 이웃 알고리즘>

- k 최근접 이웃(kNN, k-Nearest Neighbor) 알고리즘

특징 공간에서 테스트 데이터와 가장 가까운 k개의 훈련 데이터를 찾고, k개의 훈련 데이터 중에서 가장 많은 클래스를 테스트 데이터의 클래스로 지정

- 최선의 k 값을 결정하는 것은 주어진 데이터에 의존적, k 값이 어느 정도 이상으로 커질 경우 오히려 분류 및 회귀 성능이 떨어질 수 있음

 

<KNearest 클래스 사용하기>

- OpenCV에서 k 최근접 이웃 알고리즘은 KNearest 클래스에 구현됨

- kNN 알고리즘을 이용한 2차원 점 분류 예제 코드 실행 결과

k 값이 증가함에 따라 잡음 또는 이상치에 해당하는 훈련 데이터 영향이 줄어드는 것으로 생각할 수 있음

 

<kNN을 이용한 필기체 숫자 인식>

- 0부터 9까지의 필기체 숫자가 쓰여진 영상을 kNN 알고리즘으로 학습시켜 숫자를 인식하는 예제 프로그램 

 

15.3 서포트 벡터 머신

<서포트 벡터 머신 알고리즘>

- 서포트 벡터 머신

기본적으로 두 개의 클래스로 구성된 데이터를 가장 여유 있게 분리하는 초평면(hyperplane)을 찾는 머신 러닝 알고리즘

 

<SVM 클래스 사용하기>

- OpenCV에서 SVM 알고리즘은 같은 이름의 SVM 클래스에 구현됨

- SVM 알고리즘을 이용한 2차원 점 분류 예제 코드 실행 결과

 

<HOG & SVM 필기체 숫자 인식>

- SVM 알고리즘을 이용하여 필기체 숫자 인식 프로그램

- 필기체 숫자 영상에서 HOG 특징 벡터를 추출하려면 HOGDescriptor 클래스를 사용

- 사용자가 마우스로 쓴 필기체 숫자를 인식하는 svmdigits 예제 프로그램 소스 코드 실행 결과

 

 

 

 

 

'컴퓨터 비전(OpenCV) 스터디' 카테고리의 다른 글

230626-230702 스터디  (0) 2023.07.03
230626-230702 스터디  (0) 2023.06.28
230619-25 스터디  (0) 2023.06.22
230619-25 스터디  (0) 2023.06.22
230612-18 스터디  (0) 2023.06.18