神經網路識別車牌字元

2021-07-03 15:54:44 字數 2360 閱讀 8646

opencv高階之路:神經網路識別車牌字元寫過有關用神經網路識別車牌字元的文章,但無奈只給出了樣本,沒有具體的**,在這裡補足這個遺憾。

opencv環境配置請參考

以下是**:

#include "mrdir.h"

const char*mlpmodel="ann.xml";

//中國車牌

const char strcharacters = ;

void calcgradientfeat(const mat& imgsrc, vector& feat)

, , };

mat y_mask = mat(3, 3, cv_32f, mask) / 8;

mat x_mask = y_mask.t(); // 轉置

mat sobelx, sobely;

filter2d(image, sobelx, cv_32f, x_mask);

filter2d(image, sobely, cv_32f, y_mask);

sobelx = abs(sobelx);

sobely = abs(sobely);

float totlevaluex = summatvalue(sobelx);

float totlevaluey = summatvalue(sobely);

// 將影象劃分為4*2共8個格仔,計算每個格仔裡灰度值總和的百分比

for (int i = 0; i < image.rows; i = i + 4)

} }

float summatvalue(const mat& image)

for (int i = 0; i < r; i++)

} return sumvalue;

}void getfilefromdir(const char *directorypath,vector&vfiles)

while (bresult)

}void readsample(const char *directorypath,mat &samples,mat &labels)

}cout<<"good,reading characters finished!"layersizes.push_back(train.cols); // input layer

layersizes.push_back(train.cols+trainlabel.cols);// hidden layer has neurons

layersizes.push_back(trainlabel.cols); // output layer

// activate function

int activatefunc = cvann_mlp::sigmoid_sym;

double alpha = 1;

double beta = 1;

// create the network

neuralnetworks.create(cv::mat(layersizes), activatefunc, alpha, beta);

// training params

cvann_mlp_trainparams trainparams;

trainparams.train_method = cvann_mlp_trainparams::backprop;

trainparams.bp_dw_scale = 0.0001;

trainparams.bp_moment_scale = 0;

// iteration number

cvtermcriteria termcrlt;

termcrlt.type = cv_termcrit_iter | cv_termcrit_eps;

termcrlt.epsilon = 0.0001f;

termcrlt.max_iter = 1000;

trainparams.term_crit = termcrlt;

// training the networks

cout<<"starting mlp training"<(total);

point maxloc;

minmaxloc(nearest, null, null, null, &maxloc);

char ret=maxloc.x;

//char label=testlabel.at(total,0);

char label=0;

for(int i=0;i<34;i++)

}if(ret==label)

right++;

else

error++;

total++;

}cout<<"precision"<

Python keras神經網路識別mnist

上次用matlab寫過乙個識別mnist的神經網路,位址在 這次又用keras做了乙個差不多的,畢竟,現在最流行的專案都是python做的,我也跟一下潮流 資料是從本地解析好的影象和標籤載入的。神經網路有兩個隱含層,都有512個節點。import numpy as np from keras.pre...

Python keras神經網路識別mnist

上次用matlab寫過乙個識別mnist的神經網路,位址在 這次又用keras做了乙個差不多的,畢竟,現在最流行的專案都是python做的,我也跟一下潮流 資料是從本地解析好的影象和標籤載入的。神經網路有兩個隱含層,都有512個節點。import numpy as np from keras.pre...

Python keras神經網路識別mnist

上次用matlab寫過乙個識別mnist的神經網路,位址在 這次又用keras做了乙個差不多的,畢竟,現在最流行的專案都是python做的,我也跟一下潮流 資料是從本地解析好的影象和標籤載入的。神經網路有兩個隱含層,都有512個節點。import numpy as np from keras.pre...