python分类识别_Python构建图像分类识别器的方法

Python构建图像分类识别器的方法

发布时间:2020-10-13 08:52:46

来源:脚本之家

阅读:83

作者:AI专家

机器学习用在图像识别是非常有趣的话题。

我们可以利用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 sklearn import preprocessing

try:

import cPickle as pickle #python 2

except ImportError as e:

import pickle #python 3

def load_training_data(input_folder):

training_data = []

if not os.path.isdir(input_folder):

raise IOError("The folder " + input_folder + " doesn't exist")

for root, dirs, files in os.walk(input_folder):

for filename in (x for x in files if x.endswith('.jpg')):

filepath = os.path.join(root, filename)

print(filepath)

object_class = filepath.split('\\')[-2]

print("object_class",object_class)

training_data.append({'object_class': object_class, 'image_path': filepath})

return training_data

class StarFeatureDetector(object):

def __init__(self):

self.detector = cv2.xfeatures2d.StarDetector_create()

def detect(self, img):

return self.detector.detect(img)

class FeatureBuilder(object):

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值