基于opencv-ANN的水果识别模型训练

本文介绍了如何使用OpenCV库训练一个基于多层感知器(ANN_MLP)的机器视觉模型,用于识别苹果、香蕉等五种水果。步骤包括简化训练样本、生成训练数据、设置参数并训练模型,最终实现100%的预测准确率,并详细讲解了关键步骤和注意事项。

机器视觉---ANN

 

目录

机器视觉---ANN

前言

一、简化训练样本

二、生成训练数据

1.读取样本

2.读取标签

三、训练模型

1、转换数据集

2、创建模型

3、设置参数

4、训练模型

5、测试模型

6、保存模型

7、测试保存的模型

总结



前言

本文通过opencv提供的ANN-MLP训练水果识别模型,样本为苹果、香蕉、梨、葡萄、橙,训练集为5种水果各100个样本(共500个),测试集为每类水果10个样本(共50个)。


一、简化训练样本

原样本为尺寸不一的图片,大部分图片的宽高比例范围在3:2~2:1,为将图片拉成同等长度的向量,生成训练集时将读取的图片统一为3:2的宽高比例,本文样本宽高选取45:30。(src原图像为灰度图片)

void MainWindow::FruitAnnPrePro(cv::Mat &src, cv::Mat &dst)
{
    using namespace cv;
    src.convertTo(src,CV_32FC1);
    cv::resize(src,src,Size(45,30));
    dst.push_back(src.reshape(0,1));
}

二、生成训练数据

1.读取样本

样本存储在5个文件夹下,先将文件夹名称和文件名称以字符串数组形式保存,以便逐项读取。读取后将经预处理函数简化并拉成长度为45*30=1350的行向量,然后将向量压入trainData中形成符合要求的训练集。

代码如下(示例):

 

    string fruits[5] = {"apple","banana","grape","pear","orange"};
    string path = "/home/ghoson-x/Downloads/fruits/";//样本所在文件夹
    string * filePath = new string;
    filePath->append(path).append(fruits[i]).append("/");//i文件夹序号,对应文件夹名
    for(int j=0;j<100;++j){
    string * imagePath = new string;               imagePath->append(filePath->data(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值