2016-07-02 25 views
5

Tôi có nhóm các hình ảnh rất nhỏ (w: 70-100; h: 12-20), như hình dưới đây: Tesseract OCR-(3.02) chính xác nhận dạng và tốc độ

enter image description here

Trong những hình ảnh không có gì nhưng biệt danh của thành viên trong nhóm. Tôi muốn đọc văn bản từ những hình ảnh đơn giản, tất cả đều có một nền tảng, chỉ có nickname khác nhau. Vì vậy, những gì tôi đã thực hiện với hình ảnh đó:

enter image description here

Tôi đang sử dụng mã dưới đây để có được văn bản từ hình ảnh thứ hai:

tesseract::TessBaseAPI ocr; 
ocr.Init(NULL, "eng"); 
PIX* pix = pixRead("D:\\image.png"); 
ocr.SetImage(pix); 
std::string result = ocr.GetUTF8Text(); 

tôi có 2 vấn đề với điều đó :

  1. ocr.GetUTF8Text(); đang hoạt động chậm: 650-750ms. Hình ảnh nhỏ, tại sao nó hoạt động quá lâu?
  2. Từ hình trên tôi nhận được kết quả như: "iwillkillsm", "iwillkillsel" vv. Hình ảnh đó rất đơn giản và tôi tin rằng rất kinh nghiệm tesseract có thể nhận ra nó với độ chính xác 100%.

    Tôi nên làm gì với hình ảnh/mã hoặc tôi nên đọc (và ở đâu) về tesseract-ocr (điều gì đó về tốc độ văn bản và nhận dạng chất lượng) để giải quyết những vấn đề đó?
+1

Tôi có may mắn nhất với tesseract khi tôi tăng kích thước của hình ảnh một cách đáng kể. – nlloyd

+0

@nlloyd Sau khi tăng kích thước, tôi có một số kết quả tốt hơn (tốc độ & độ chính xác), cảm ơn bạn! Nhưng tôi phải hỏi: liệu có ổn không, sau khi thay đổi kích thước, tôi có một số điểm ảnh màu xám hoặc gần như đen trong hình ảnh? Tình huống đó giúp tesseract hay không? –

+0

có vẻ ổn với tôi. tôi luôn làm cho hình ảnh lớn hơn trước khi cho chúng ăn tesseract; có một giới hạn về mức độ lớn mà bạn có thể tạo ra trước khi bạn bắt đầu nhận được kết quả tồi tệ hơn tuy nhiên :) – nlloyd

Trả lời

2

Nghe có vẻ kỳ quặc, nhưng tôi luôn có may mắn nhất với tesseract khi tôi tăng kích thước của hình ảnh. Hình ảnh sẽ trông "tệ hơn" với tôi nhưng tesseract nhanh hơn và có độ chính xác tốt hơn nhiều.

Có giới hạn về mức độ lớn của hình ảnh trước khi bạn bắt đầu nhận được kết quả tồi tệ hơn tuy nhiên :) Tôi nghĩ rằng tôi nhớ chụp 600px trong quá khứ. Bạn sẽ phải chơi với nó mặc dù.

+1

Đối với tôi, nó mất ~ 70-80ms để đổi kích thước hình ảnh thành ~ 1000x230 giá trị (bây giờ là giá trị tốt nhất cho tôi). Sau khi công nhận đó hoạt động theo cách tốt hơn và thời gian xử lý 'ocr.GetUTF8Text()' giảm từ 650-750ms xuống 200-350ms. Nó vẫn không phải là tốt nhất, nhưng câu trả lời đó đã giúp rất nhiều anyway. –

Các vấn đề liên quan