有没有办法启动 Tesseract-OCR 或其他引擎来提高对某些单词/形状的敏感性?启动是人类可以提高对某些刺激的敏感性的一种方式,我不确定 OCR 是否会做同样的事情。我知道 facebook/instagram 之类的应用程序可以增加对某些帖子的敏感度或对某些帐户的行为,如果该帐户过去曾表现出这种行为
问问题
103 次
2 回答
0
用户过去可以指定一个user-words
文件,但该功能似乎在最新版本的 Tesseract 中不起作用,除了可能在旧模式下。
于 2019-06-21T21:52:19.083 回答
0
用户词文件开始工作有点挑剔。
这是我用来让它工作的代码的简化版本
#include <tesseract/genericvector.h>
.
.
.
const char* TESSDATA = "C:/Tesseract/tessdata/";
void TryTess() {
tesseract::TessBaseAPI* api = new tesseract::TessBaseAPI();
GenericVector<STRING> pars_vec;
pars_vec.push_back("load_system_dawg");
pars_vec.push_back("load_freq_dawg");
pars_vec.push_back("load_punc_dawg");
pars_vec.push_back("load_number_dawg");
pars_vec.push_back("load_unambig_dawg");
pars_vec.push_back("load_bigram_dawg");
//pars_vec.push_back("load_fixed_length_dawgs");
pars_vec.push_back("language_model_penalty_non_dict_word");
pars_vec.push_back("user_words_suffix");
pars_vec.push_back("user_patterns_suffix");
GenericVector<STRING> pars_values;
pars_values.push_back("0");
pars_values.push_back("0");
pars_values.push_back("0");
pars_values.push_back("0");
pars_values.push_back("0");
pars_values.push_back("0");
//pars_values.push_back("F");
pars_values.push_back("9999999999999999");
pars_values.push_back("user-words");
pars_values.push_back("user-patterns");
api->Init(TESSDATA, "eng", OEM_DEFAULT, NULL, 0, &pars_vec, &pars_values, false);
/// Some image preprocessing to improve detection
char* out = api->GetUTF8Text();
std::cout << "Result: " << out;
api->End();
delete[] out;
}
确保您已配置 TESSDATA 路径。我能找到的最好的几个资源是Here 和here。
主要的问题是不知道该 genericvector.h 类在哪里,因为 tesseract 的 Init 方法需要该类(似乎没有任何转换方法)。由于必须在初始化之前传入用户字文件,这是我能找到的唯一方法。即使从配置文件中读取也必须在初始化后完成,这会阻止您使用用户字
祝你好运!
于 2019-06-24T12:18:15.273 回答