2012-01-18 21 views
13

Vui lòng xem ảnh chụp màn hình bên dưới và xem bạn có thể cho tôi biết lý do tại sao điều này không hoạt động. Các ví dụ trên trang tham chiếu cho TextRecognize trông khá ấn tượng, tôi không nghĩ rằng việc nhận ra các chữ cái đơn như thế này sẽ là một vấn đề. Tôi đã thử thay đổi kích thước các chữ cái cũng như có hình ảnh sắc nét.TextRecognize của Mathematica không tối đa

Để thuận tiện trong trường hợp bạn muốn tự mình thử, tôi đã bao gồm hình ảnh mà tôi sử dụng ở cuối bài đăng này. Bạn cũng có thể tìm thấy nhiều hơn thế này bằng cách tìm kiếm "Wordfeud" trong Tìm kiếm hình ảnh của Google.

Mathematica screenshot

Wordfeud board

+0

Bạn có thể đặt câu hỏi * rõ ràng hơn trong mô tả của mình không? (BTW Tôi đã thử nó một lần, và tôi đồng ý, nó không phải là rất tốt. Tôi không bận tâm nhiều để làm cho nó hoạt động. Có lẽ nó thú vị để lưu ý nó sử dụng [Teserract] (http://code.google.com/p/ tesseract-ocr /)) – Szabolcs

+1

Tôi nghĩ Calle muốn kiểm tra xem chức năng nhận dạng văn bản có hạn chế như anh nghi ngờ không. Nếu không, anh ta đã làm gì sai? Nếu vậy, nội dung cần được quét với tỷ lệ truy cập cao là gì? – DavidC

+0

bạn có thể muốn bắt đầu với hình ảnh có độ phân giải cao, 'TextRecognize' không nhận ra văn bản dưới ngưỡng nhất định –

Trả lời

14

Câu hỏi rất mát mẻ!

TextRecognize sử dụng chẩn đoán để nhận dạng toàn bộ từ từ tiếng Anh. Đây là các Gotcha mà làm cho nhận chữ đơn rất khó

Hãy xem xét các dòng sau tư tưởng:

s = Import["http://i.stack.imgur.com/JHYuh.png"]; 
p = ImagePartition[s, 32] 

Bây giờ chọn chữ để tạo thành 'EXIT' từ tiếng Anh:

x = {p[[1, 13]], p[[6, 6]], p[[3, 13]], p[[1, 12]]} 

Bây giờ làm sạch những hình ảnh này một chút, như vậy:

d = ImageAssemble[ Map[ImageTake[#, {3, 27}, {2, 20}] &, x ]]; 

Rồi này trả về chuỗi "EXIT":

TextRecognize[d] 

Mathematica graphics

+0

Điểm tốt về mma tìm cách nhận ra các từ thực tế (theo mặc định, bằng tiếng Anh) thay vì chữ riêng. Đó là lý do tại sao tôi tìm kiếm một câu đố ô chữ tiếng Anh; Tôi cũng muốn có hình ảnh B & W. Có vẻ như mma có nhiều khả năng nhận ra một chuỗi các chữ cái cách nhau rộng rãi như một từ khi nền không làm sao lãng nó. – DavidC

+0

Cảm ơn cả hai vì câu trả lời của bạn. Tôi nên lưu ý cho bất kỳ ai truy cập trang này trong tương lai rằng trang tham chiếu có ví dụ hoạt động trong đó các chữ cái được sắp xếp ngẫu nhiên. Vì vậy, điều này không làm việc là một sự kết hợp của hai câu trả lời hàng đầu. ImageCorrelate, được đề xuất trong câu trả lời thứ ba, tạo ra kết quả vững chắc. –

+1

Đề xuất tính năng: sẽ hữu ích khi có tùy chọn tắt chỉnh sửa chính tả và một tùy chọn khác để hạn chế tập ký tự được nhận dạng (mà tôi tin Tesseract, phần cuối của 'TextRecognize', có thể đã làm). Điều này sẽ làm cho [đọc dữ liệu số] (http://mathematica.stackexchange.com/q/18683/12) dễ dàng hơn nhiều. – Szabolcs

5

Tôi nghĩ chất lượng của hình ảnh của bạn có thể ảnh hưởng. Binarizing hình ảnh của bạn đã không giúp đỡ: công nhận là zilch. Tôi cũng đã thử một hình ảnh đen trắng rất rõ ràng về giải pháp câu đố ô chữ. (xem bên dưới) Một lần nữa, không có gì được nhận ra dù ở định dạng thông thường hay được binarized.

crossword solution

Vì vậy, tôi loại bỏ các nền đen chỉ để lại các chữ cái và khung màu đen mỏng của họ. Một lần nữa, sự công nhận là khoảng 0%.

Khi tôi xóa khung hình xung quanh một số chữ cái VÀ binarized hình ảnh, những phần duy nhất có thể nhận ra được là những khu vực không có gì khác ngoài chữ cái. (Xem bên dưới) Thông báo

crossword 2

trong đầu ra dưới đây, ANTS, lốp xe, và TEXAS được xác định một cách chính xác (cũng như vec tơ), nhưng chỉ là về không có gì khác.

Cũng lưu ý rằng, mặc dù các chuỗi được đặt cách nhau rộng rãi, mma diễn giải chúng dưới dạng từ, chứ không phải là các chữ cái riêng biệt. Lưu ý "TEXAS" thay vì "T E X A S".

TextRecognize[[email protected]] 

(* output *) 
ANTS FFWWW FEEWF 
E R o If IU I? 
E A FI5F WWWFF 5 
5552? L E F F 
T s E NTT BT| 
[email protected];EE F 
5 W E ; OCS 
FOFT W W R AL%AE 
A TT I T ? _ 
i [email protected]'NF WG%S W 
A A EW F I i 
SWWTW W ALTFCWD N 
H A V 5 A F F 
PLATT EWWLIGHT 
W N E T 
HE TIRES C 
TEXAS VECTORS 

Tôi không có đủ kiên nhẫn để làm sạch hoàn toàn hình ảnh. Nó sẽ nhanh hơn nhiều để gõ lại văn bản bằng tay.

Kết luận: Không sử dụng tính năng nhận dạng văn bản trong mma trừ khi bạn có văn bản hoàn toàn rõ ràng dựa trên nền màu trắng, sáng, màu trắng thích hợp hơn.

Kết quả cũng khác nhau tùy thuộc vào định dạng tệp được sử dụng. Tránh .pdf hoàn toàn.



Sửa

acl bắt và cố gắng để nhận ra 5 dòng cuối cùng (trên Edit). Kết quả của ông (trong một bình luận dưới đây): chủ yếu là vô nghĩa.

Tôi đã quyết định làm như vậy. Nhưng kể từ khi Prashant cảnh báo rằng kích thước văn bản tạo ra sự khác biệt, tôi đã phóng to trước để văn bản xuất hiện (với mắt tôi) khoảng 20 pica. Dưới đây là hình ảnh của văn bản tôi đã quét và TextRecognize d.


text2


Dưới đây là kết quả của một unbinarized TextRecognize (ít mà kích thước lớn):

Gliii. Q lk-ii`t`*¥ if EY £\[CloseCurlyDoubleQuote]1\[Euro]'EE \ 
Di'¥C~E\"P ITF SKI' T»f}!E'!',IL:?E\[CloseCurlyDoubleQuote] I 2 VEEE5\ 
\[CloseCurlyQuote] LEP \"- \"VE 
1. ur e=\\..r.1.»».»\\\\ rw r 1»»\\|a'*r | r .fm -»'-an \ 
\[OpenCurlyQuote] -.-rr -_.»~|-.'i~-.w~,.-- nv n.w~»-\ 
\[OpenCurlyDoubleQuote]~" 

Bây giờ, đây là kết quả cho TextRecognize của hình ảnh binarized. Hình ảnh gốc là một .png từ Jing.

I didn't have the patience to completely clean up the image. It would \ 
have been much faster to retype the 
text by hand. 
Conclusion: Don't use text recognition in mma unless you have \ 
absolutely clear text against an even- 
colored, bright, preferrably white, background. 
The results also varied depending on the file format used. Avoid .pdf \ 
altogether. 
+0

Vì vậy, tôi đã chụp một ảnh chụp màn hình (png) của 5 dòng cuối cùng của bài đăng của bạn và cố gắng để có được mma nhận ra nó. Nó cho biết: "" | người đàn ông \ [OpenCurlyQuote] \\ có pamence \\ e cump \\ e \\ e \\ y dean up \ mức lương. nweme đã được nhiều | ae \\ er \\ e refype the \\ e><\\ ny mane. cenememn: Sử dụng tối đa \\ e><\\ reeegnmen m mme umess yeu có \ ahsu \\ u \\ e \\ ye \\ ear \\ e><\\ agamm một thậm chí- cmured, nngm, prelerramy wrme, naexgreune. Các resmls mee vanee eepenemg en me lurmat ueee. Avme .pdf \ auegemer. "" – acl

+0

(+1 cho nỗ lực bằng cách này) – acl

+0

@acl Thử 'Binarize'ing hình ảnh trước khi cố gắng nhận ra văn bản và xem điều đó có hữu ích không. – DavidC

10

Đây là cách tiếp cận hoàn toàn khác với việc sử dụng TextRecognize, vì vậy tôi đăng bài này dưới dạng câu trả lời riêng. Nó sử dụng cùng một kỹ thuật nhận dạng hình ảnh từ How do I find Waldo with Mathematica.

tiên nhận được câu đố:

wordfeud = Import["http://i.stack.imgur.com/JHYuh.png"] 

Mathematica graphics

Và sau đó nhận được các mảnh của câu đố:

Grid[pieces = ImagePartition[s, 32]] 

Mathematica graphics

Hãy quan tâm đến các thư điện tử:

LetterE = pieces[[4, 3]] 

Mathematica graphics

Lấy hình ảnh tương quan:

correlation = 
ImageCorrelate[wordfeud, Binarize[LetterE], 
NormalizedSquaredEuclideanDistance] 

Mathematica graphics

Và làm nổi bật các trận đấu:

positions = Dilation[ColorNegate[Binarize[correlation, .1]], DiskMatrix[20]]; 
found = ImageMultiply[wordfeud, ImageAdd[ColorConvert[positions, "GrayLevel"], .5]] 

Mathematica graphics

Như trước đây, điều này đòi hỏi một chút điều chỉnh về binarizing hình ảnh tương quan, nhưng khác hơn rằng điều này sẽ giúp xác định bit và miếng của câu đố này.

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