< 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 |