机器视觉---ANN
目录
前言
本文通过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(

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

被折叠的 条评论
为什么被折叠?



