15.1.2 OpenCV 머신 러닝 클래스
OpenCV는 다양한 머신 러닝 알고리즘을 클래스로 구현하여 제공합니다. OpenCV에서 제공하는 머신 러닝 클래스는 주로 ml 모듈에 포함되어 있고, cv::ml::StatModel 추상 클래스를 상속받아 만들어집니다.1 StatModel 클래스 이름은 통계적 모델(statistical model)을 의미합니다. StatModel 추상 클래스를 상속받아 만들어진 머신 러닝 알고리즘 구현 클래스를 그림 15-3에 나타냈습니다. StatModel 클래스는 머신 러닝 알고리즘을 학습시키는 StatModel::train() 멤버 함수와 학습된 모델을 이용하여 테스트 데이터에 대한 결과를 예측하는 StatModel::predict() 멤버 함수를 가지고 있습니다. StatModel 클래스를 상속받아 만든 머신 러닝 구현 클래스는 각각의 머신 러닝 알고리즘에 해당하는 train()과 predict() 기능을 재정의하고 있으며, 몇몇 클래스는 자신만의 학습 및 예측을 위한 멤버 함수를 따로 제공하기도 합니다.
▲ 그림 15-3 OpenCV 머신 러닝 클래스
1 이 절에서 나오는 StatModel을 포함한 다수의 머신 러닝 클래스는 cv::ml 네임스페이스에 정의되어 있습니다. 다만 이 책에서는 표기를 간략하게 하기 위해 많은 경우 본문에서 cv::ml 네임스페이스 표기를 생략하겠습니다.