- Machine Learning for OpenCV
- Michael Beyeler
- 415字
- 2021-07-02 19:47:21
Having a look at supervised learning in OpenCV
Knowing how supervised learning works is pretty if we can't put it into practice. Thankfully, OpenCV provides a pretty straightforward interface for all its statistical learning models, which includes all supervised learning models.
In OpenCV, every machine learning model derives from the cv::ml::StatModel base class. This is fancy talk for saying that if we want to be a machine learning model in OpenCV, we have to provide all the functionality that StatModel tells us to. This includes a method to train the model (called train) and a method to measure the performance of the model (called calcError).
Thanks to this organization of the software, setting up a machine learning model in OpenCV always follows the same logic:
- Initialization: We call the model by name to create an empty instance of the model.
- Set parameters: If the model needs some parameters, we can set them via setter methods, which can be different for every model. For example, in order for a k-NN algorithm to work, we need to specify its open parameter, k (as we will find out later).
- Train the model: Every model must provide a method called train, used to fit the model to some data.
- Predict new labels: Every model must provide a method called predict, used to predict the labels of new data.
- Score the model: Every model must provide a method called calcError, used to measure performance. This calculation might be different for every model.
As we will make the occasional use of scikit-learn to implement some machine learning algorithms that OpenCV does not provide, it is worth pointing out that learning algorithms in scikit-learn follow an almost identical logic. The most notable difference is that scikit-learn sets all the required model parameters in the initialization step. In addition, it calls the training function fit instead of train, and the scoring function score instead of calcError.
- .NET之美:.NET關(guān)鍵技術(shù)深入解析
- Beginning C++ Game Programming
- Power Up Your PowToon Studio Project
- C#程序設(shè)計教程
- 從0到1:HTML+CSS快速上手
- 假如C語言是我發(fā)明的:講給孩子聽的大師編程課
- Windows Forensics Cookbook
- KnockoutJS Starter
- The Complete Coding Interview Guide in Java
- Spring Boot企業(yè)級項(xiàng)目開發(fā)實(shí)戰(zhàn)
- Mastering Linux Security and Hardening
- 新一代SDN:VMware NSX 網(wǎng)絡(luò)原理與實(shí)踐
- 鴻蒙OS應(yīng)用編程實(shí)戰(zhàn)
- Flink技術(shù)內(nèi)幕:架構(gòu)設(shè)計與實(shí)現(xiàn)原理
- Learning Android Application Testing