2011-08-24 7 views
1

필기 인식에 대해 초속 사용에 대해 조언합니까? 일부 도서관을 검색하고 찾았지만 일부는 다른 사람의 손으로 쓰는 데 필요한 교육을 필요로합니다. 초속은 각기 다른 손으로 쓰는 데 필요한 교육입니까? 사이트를 읽었지만 찾을 수 없습니다.필기 인식에 관한 몇 가지 질문

또한 C++에서 라이브러리가 필요합니다. 일부는 C 또는 Java를 사용하여 액세스 할 수 있습니다.

하나 더 질문은, 문서에 아무 대답이 없다 : 51, 29

무엇인지,

character->add(0, 51, 29); 

선 위에 정의 된 것 그리고 내가 영어 같은 라틴 알파벳에 대한 꽃송이를 사용할 수 있습니다, 나는 구글에서만 일본어 사용 예제를 보았다.

#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에서도 사용할 수 있습니다.

샘플 트레이닝 세트는 라틴 문자와 숫자로되어 있기 때문에 모든 일본어 문자를 제거하고 테스트를 수행하기 위해 교육 할 수 있습니다. (더 작은 모델 파일을 사용하면 훨씬 빨라집니다).

+0

답장을 보내 주셔서 감사합니다. CellWriter에 대해 알고 계시나요? 그것의 위치에 신청을 사용하는 각 개인을 위해 훈련되어야한다 말한다. 보편적 인 데이터 세트를 사용하여 교육하고 사용하는 것이 가능합니까? – merveotesi

+0

죄송합니다. 시도하지는 않았습니다. 그것은 사용하는 알고리즘에 달려 있다고 생각합니다. –

관련 문제