OpenCV 神经网络

OpenCV的神经网络使用(CvANN_MLP)


概要

首先,我们应该知道在OpenCV中已经有了很多的分类和回归算法。其中,在ml模块中我们可以使用OpenCV自带的神经网络算法CvANN_MLP。神经网络的具体实现我就不详细介绍了,在这里我们主要是介绍CvANN_MLP的定义及如何调用。

原文参考:http://blog.csdn.net/qq_15947787/article/category/6115133/2http://blog.csdn.net/xiaowei_cqu/article/details/9027617http://www.cnblogs.com/farewell-farewell/p/6027888.html

ANN – Artificial Neural Networks 人工神经网络
MLP – Multi-layer perceptrons 多重感知器

其实,CvANN_MLP的最重要三个调用函数是 creat()、train() 和 predict();

定义人工神经网络
    CvANN_MLP bp; 
    // Set up BPNetwork's parameters
    CvANN_MLP_TrainParams params;
    params.train_method=CvANN_MLP_TrainParams::BACKPROP;
    params.bp_dw_scale=0.1;
    params.bp_moment_scale=0.1;
    //params.train_method=CvANN_MLP_TrainParams::RPROP;
    //params.rp_dw0 = 0.1; 
    //params.rp_dw_plus = 1.2; 
    //params.rp_dw_minus = 0.5;
    //params.rp_dw_min = FLT_EPSILON; 
    //params.rp_dw_max = 50.;

在这里,我们可以很清楚地了解到OpenCV实现神经网络主要使用两种训练方法: BACKPROP 与 RPROP

创建分类器,设置网络层数
  Mat layerSizes=(Mat_<int>(1,5) << 5,2,2,2,5);
  //create第二个参数可以设置每个神经节点的激活函数,默认为    CvANN_MLP::SIGMOID_SYM,即Sigmoid函数
  //同时提供的其他激活函数有Gauss(CvANN_mlp::GAUSSIAN)和阶跃函数   (CvANN_MLP::IDENTITY)。
  bp.create(layerSizes,CvANN_MLP::SIGMOID_SYM);   //CvANN_MLP::SIGMOID_SYM  

layerSizes设置了有5层的网络结构:输入层,三个隐含层,输出层。输入层和输出层节点数均为5,中间隐含层每层有两个节点。

create第二个参数可以设置每个神经节点的激活函数,默认为CvANN_MLP::SIGMOID_SYM,即Sigmoid函数,同时提供的其他激活函数有Gauss和阶跃函数。

训练数据
    // Set up training data
    float labels[3][5] = {
  {
  0,0,0,0,0},{
  1,1,1,1,1},{
  0,0,0,0,0}};
    Mat labelsMat(3, 5, CV_32FC1, labels);
    float trainingData[3][5] = { {
  1,2,3,4,5},{
  111,112,113,114,115}, {
  21,22,23,24,25} };
    Mat trainingDataMat(3, 5, CV_32FC1, trainingData);
    Mat layerSizes=(Mat_<int>(1,5) << 5,2,2,2,5);

    CvANN_MLP_TrainParams params;  
    params.train_method=CvANN_MLP_TrainParams::BACKPROP;  //(Back Propagation,BP)反向传播算法
    params.bp_dw_scale=0.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值