Rearrange chars reflaction.

v1.6alpha
Micooz 10 years ago
parent 36921a421f
commit 530676df52

@ -1,36 +1,62 @@
#ifndef EASYPR_TRAIN_TRAIN_H_
#define EASYPR_TRAIN_TRAIN_H_
namespace easypr{
static const char *kDefaultSvmPath = "resources/model/svm.xml";
static const char *kDefaultAnnPath = "resources/model/ann.xml";
static const int kPredictSize = 10;
static const char * kChinese[] = {
"zh_cuan" /* 川 */, "zh_e" /* 鄂 */, "zh_gan" /* 赣*/,
"zh_gan1" /*甘*/, "zh_gui" /* 贵 */, "zh_gui1" /* 桂 */,
"zh_hei" /* 黑 */, "zh_hu" /* 沪 */, "zh_ji" /* 冀 */,
"zh_jin" /* 津 */, "zh_jing" /* 京 */, "zh_jl" /* 吉 */,
"zh_liao" /* 辽 */, "zh_lu" /* 鲁 */, "zh_meng" /* 蒙 */,
"zh_min" /* 闽 */, "zh_ning" /* 宁 */, "zh_qing" /* 青 */,
"zh_qiong" /* 琼 */, "zh_shan" /* 陕 */, "zh_su" /* 苏 */,
"zh_sx" /* 晋 */, "zh_wan" /* 皖 */, "zh_xiang" /* 湘 */,
"zh_xin" /* 新 */, "zh_yu" /* 豫 */, "zh_yu1" /* 渝 */,
"zh_yue" /* 粤 */, "zh_yun" /* 云 */, "zh_zang" /* 藏 */,
"zh_zhe" /* 浙 */
};
static const char kCharacters[] = {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', /* 没有I */
'J', 'K', 'L', 'M', 'N', /* 没有O */ 'P', 'Q',
'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
};
namespace easypr {
static const char* kDefaultSvmPath = "resources/model/svm.xml";
static const char* kDefaultAnnPath = "resources/model/ann.xml";
static const int kPredictSize = 10;
static const char *kChars[] = {
"0", "1", "2",
"3", "4", "5",
"6", "7", "8",
"9",
/* 10 */
"A", "B", "C",
"D", "E", "F",
"G", "H", /* {"I", "I"} */
"J", "K", "L",
"M", "N", /* {"O", "O"} */
"P", "Q", "R",
"S", "T", "U",
"V", "W", "X",
"Y", "Z",
/* 24 */
"zh_cuan" , "zh_e" , "zh_gan" ,
"zh_gan1" , "zh_gui" , "zh_gui1" ,
"zh_hei" , "zh_hu" , "zh_ji" ,
"zh_jin" , "zh_jing" , "zh_jl" ,
"zh_liao" , "zh_lu" , "zh_meng" ,
"zh_min" , "zh_ning" , "zh_qing" ,
"zh_qiong", "zh_shan" , "zh_su" ,
"zh_sx" , "zh_wan" , "zh_xiang",
"zh_xin" , "zh_yu" , "zh_yu1" ,
"zh_yue" , "zh_yun" , "zh_zang" ,
"zh_zhe"
/* 31 */
};
static const std::map<const char*, const char*> kCharsMap = {
{"zh_cuan" , ""}, {"zh_e" , ""}, {"zh_gan" , ""},
{"zh_gan1" , ""}, {"zh_gui" , ""}, {"zh_gui1" , ""},
{"zh_hei" , ""}, {"zh_hu" , ""}, {"zh_ji" , ""},
{"zh_jin" , ""}, {"zh_jing" , ""}, {"zh_jl" , ""},
{"zh_liao" , ""}, {"zh_lu" , ""}, {"zh_meng" , ""},
{"zh_min" , ""}, {"zh_ning" , ""}, {"zh_qing" , ""},
{"zh_qiong", ""}, {"zh_shan" , ""}, {"zh_su" , ""},
{"zh_sx" , ""}, {"zh_wan" , ""}, {"zh_xiang", ""},
{"zh_xin" , ""}, {"zh_yu" , ""}, {"zh_yu1" , ""},
{"zh_yue" , ""}, {"zh_yun" , ""}, {"zh_zang" , ""},
{"zh_zhe" , ""}
/* 31 */
};
static const int kCharsTotalNumber = 65;
static bool debug = false;
}
#endif // EASYPR_TRAIN_TRAIN_H_

@ -2,26 +2,23 @@
#define EASYPR_TRAIN_ANNTRAIN_H_
#include <opencv2/opencv.hpp>
#include "easypr/core/core_func.h"
#include "easypr/util/util.h"
namespace easypr{
class AnnTrain{
public:
explicit AnnTrain(const char* chars_folder, const char* zhchars_folder, const char* xml);
explicit AnnTrain(const char* chars_folder, const char* xml);
void train(const int & neurons = 40);
private:
void getTrainData();
void test();
private:
cv::Ptr<cv::ml::TrainData> train_data();
cv::Ptr<cv::ml::ANN_MLP> ann_;
cv::Ptr<cv::ml::TrainData> train_data_;
const char* ann_xml_;
const char* chars_folder_;
const char* zhchars_folder_;
};
}

@ -6,6 +6,8 @@
#include <fstream>
#include <list>
using namespace std;
namespace easypr {
namespace demo {

Loading…
Cancel
Save