机器学习用在图像识别是非常有趣的话题。
我们可以利用OpenCV强大的功能结合机器学习算法实现图像识别系统。
首先,输入若干图像,加入分类标记。利用向量量化方法将特征点进行聚类,并得出中心点,这些中心点就是视觉码本的元素。
其次,利用图像分类器将图像分到已知的类别中,ERF(极端随机森林)算法非常流行,因为ERF具有较快的速度和比较精确的准确度。我们利用决策树进行正确决策。
最后,利用训练好的ERF模型后,创建目标识别器,可以识别未知图像的内容。
当然,这只是雏形,存在很多问题:
界面不友好。
准确率如何保证,如何调整超参数,只有认真研究算法机理,才能真正清除内部实现机制后给予改进。
下面,上代码:
import os
import sys
import argparse
import json
import cv2
import numpy as np
from sklearn.cluster import KMeans
# from star_detector import StarFeatureDetector
from sklearn.ensemble import ExtraTreesClassifier
from sk