关于手写识别的几个问题
Posted
技术标签:
【中文标题】关于手写识别的几个问题【英文标题】:A few questions about handwriting recognition 【发布时间】:2011-11-02 21:06:05 【问题描述】:您是否建议 zinnia 进行手写识别? 我搜索并找到了一些图书馆,但其中一些需要针对每个不同人的手写进行培训。百日草是否需要针对每种不同的手写体进行培训? 我阅读了它的网站,但找不到。
我还需要一个 C++ 库,我可以找到一些可以使用 C 或 Java 访问的库。
还有一个问题,文档中没有答案:
character->add(0, 51, 29);
上面定义了什么,51和29是什么。
我可以将百日草用于像英语这样的拉丁字母吗,我在谷歌上看到的只有日语用法示例。 这是 zinnia 网站上的示例代码:
#include <iostream>
#include "zinnia.h"
int main(int argc, char **argv)
zinnia::Recognizer *recognizer = zinnia::Recognizer::create();
if (!recognizer->open("/usr/local/lib/zinnia/model/tomoe/handwriting-ja.model"))
std::cerr << recognizer->what() << std::endl;
return -1;
zinnia::Character *character = zinnia::Character::create();
character->clear();
character->set_width(300);
character->set_height(300);
character->add(0, 51, 29);
character->add(0, 117, 41);
character->add(1, 99, 65);
character->add(1, 219, 77);
character->add(2, 27, 131);
character->add(2, 261, 131);
character->add(3, 129, 17);
character->add(3, 57, 203);
character->add(4, 111, 71);
character->add(4, 219, 173);
character->add(5, 81, 161);
character->add(5, 93, 281);
character->add(6, 99, 167);
character->add(6, 207, 167);
character->add(6, 189, 245);
character->add(7, 99, 227);
character->add(7, 189, 227);
character->add(8, 111, 257);
character->add(8, 189, 245);
zinnia::Result *result = recognizer->classify(*character, 10);
if (!result)
std::cerr << recognizer->what() << std::endl;
return -1;
for (size_t i = 0; i < result->size(); ++i)
std::cout << result->value(i) << "\t" << result->score(i) << std::endl;
delete result;
delete character;
delete recognizer;
return 0;
谢谢。
【问题讨论】:
【参考方案1】:Zinnia 通常不需要个人培训。但是,它对于具有更多笔划的字符表现更好,因此将它用于基于拉丁字母的字母可能不会给您最好的结果。它还依赖于正确的笔顺,所以如果你用一种写“A”的方式训练它,而使用它的人用另一种方式写它,它可能不会被识别。
add()
的参数是点数,x,y。它具有 Perl、Ruby 和 Python 的绑定以及本机 C/C++ 接口。编写 JNI 包装器很简单,因此也可以从 Java 中使用。
我相信样本训练集包含拉丁字母和数字,因此您可以删除所有日文字符并对其进行训练以进行测试。 (使用更小的模型文件会更快)。
【讨论】:
谢谢回复,你知道CellWriter吗?它在其网站上说必须为每个使用应用程序的人进行培训。是否可以使用通用数据集对其进行训练并使用? 对不起,我没试过。我猜这取决于它使用的算法。以上是关于关于手写识别的几个问题的主要内容,如果未能解决你的问题,请参考以下文章
PyQt5/pyqt4 是不是已经支持带有手写识别的 QtVirtualKeyboard?