zoukankan      html  css  js  c++  java
  • opencv3——ANN算法的使用

    最近刚转用opencv3,使用ANN算法时遇到了一些问题,记录下来。

    训练神经网络的代码如下:

    //创建ANN
    Ptr<ANN_MLP> bp = ANN_MLP::create();

    设置层数时,要注意:例子的数量要和标签的数量相同

    第一项为图片的像素数,最后一项为训练的种类数

    //设置层数
     Mat layerSizes = (Mat_<int>(1, 4) << image_rows*image_cols, int(image_rows*image_cols / 2), int(image_rows*image_cols / 2), class_num);
     bp->setLayerSizes(layerSizes);
    bp->setActivationFunction(ANN_MLP::SIGMOID_SYM, 1, 1);
    
    void setActivationFunction(int _activ_func, double _f_param1, double _f_param2 );
    
     
    
    
    bp->setTermCriteria(TermCriteria(TermCriteria::MAX_ITER + TermCriteria::EPS, 300, FLT_EPSILON));
     bp->setTrainMethod(ANN_MLP::BACKPROP, 0.001);
     Ptr<TrainData> tData = TrainData::create(DataMat, ROW_SAMPLE, labelsMat);
     bp->train(tData);
    float response = ann->predict(testMat);
    //加载分类器时,使用以下任意一个即可
    Ptr<ANN_MLP> bp = StatModel::load<ANN_MLP>("*.xml");
    Ptr<ANN_MLP> bp = ANN_MLP::load<ANN_MLP>("*.xml");
    Ptr<ANN_MLP> bp = Algorithm::load<ANN_MLP>("*.xml");

    不知道为什么,我使用opencv3的ANN算法 跟opencv2中的算法识别结果差距很大(2识别结果大致正确,3识别结果完全不对),参数完全相同时结果差距也很大,不知道要怎样解决。

  • 相关阅读:
    java ssh整合报错:java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
    Ubuntu16.04安装搜狗输入法后有黑边问题的解决方法
    socket
    vim编辑器的使用
    linux用户和群组
    bash shell
    [LightOJ 1128]Greatest Parent
    [Luogu P4180][BJWC 2010]严格次小生成树
    函数、方法区别
    有关_meta内容(持续更新)
  • 原文地址:https://www.cnblogs.com/farewell-farewell/p/6219689.html
Copyright © 2011-2022 走看看