Resulta que investigando para mejorar el producto de IFScore, que es una suite financiera, quiero automatizar la adquicisión de ciertos datos, es decir, quiero hacer reconocimiento de caracteres ópticos, y realmente para linux hay de dos sopas, OCRAD de GNU y TESSERACT de Google...
Round 1: Instalación.
Cuando me puse a instalar el OCRAD en mi opensuse 12.3, le dí cliketeclick y zaz! a bajar 925 paquetes y el tesseract solo baja 4...
Round 2: Con una imágen tomada con el cel (Galaxy S3)
Esta es la imagen utilizada como original, tomada con un Galaxy S3.
El ocrad usa imágenes pnm en escala de grises, entoces utilizamos la línea de comandos:
djpeg -greyscale -pnm 20130829_200939.jpg | ocrad
Y este es el resultado, bastante pobre por cierto.
djpeg -greyscale -pnm 20130829_200939.jpg | ocrad
__...__P__. . '..' __. ,? _ `'- ._ . ..` _r '-
_ _' , ._ _ . _. _ .. ____ _ _ � . . _ _T ._ :__.;__ . ' _
__..-.r._/.__..'_ .. __ _ _ _ . _: _,.!_, _.___\___ ., j____'_i'_! _ .
' , .! ._.- _ ` ,____ ..., r . . '. . : ._ __ .-._ ._i ___.'_!.
_ ^'
_.._P. __ . _ . . . ... _, . ._ `i __'.!.
_r.._.._.__...L_: . . . . _ ' . _ _. ... .-: ._.
. _ \r , , n . . _ _. ; . '`.___'. i!____�.___
_.:.:_._-t, __ _ . . . . .. .,_ .,. .! _ _ _ _
_ .r . / _ +_ ? , . _ _. _ ..i __'`__i i '? .
_ \ _ ..
\ `. ' . _ . r . . _ , :' ____ _j..! _' ! .
2/ _ _. . ,�. | l '_ _?. .
_ . ,__ _ . , ' . , . . , . . '^ __ _
. _. .__ _| _ . .. _ _. h. ._rf . .7 . '_ .: '
. \ .. n.. ._ .. . , _ _
. ` ._.. . , _? _ . ' . ~ .. - . . . . ..
_. .
_ _ .__? _
\ .
_ , . .
_ . \._ _: __.
. ' .. _ , .: ' .
_ ' _ __._. .
. _ _
\ _ .
. . : _.`..,
_. . _. :_ ?
_ . :. _ _ |
... . ' _:.. .
. _ .
_ . .
r _ .. . _
n L __
? . _ .._. , _
._ . .: . ,t .,'
_ .. . _,
_ . - .
_. . . : . __ .
_ , ._ ,,_ .
L.Gb. l M r V . !i ,___. '
IC. # rlea Q lnez er nlco_ ._.. ______ '
._. . . . ;.___`:i__ '
_S \ . ,_,r_`__-.. _
_. _.i_,_i__ . :_.
r_. . . . .___�_ Y_
. _ , , _,. �_ _
, _ ; . ,ij. tr..h__ .__..
. . \,_ _!_.S____ '
? _
. _ ________. _
..!`__. ____,j - .
_ . _ _ . _j! ',,__ r
_!_ _. .__.___ ,
. . . '_ _i _____.. .
, , _ _ .
. _ _' '.. . .: ___!___ _. . .
_- _ _ _'_____i._ S.'_. . .
_ . . .
_nYX_h_#4_d2|nt|OC__._._._. ...... "._ '_. _ :__.__ . ' : !
. . . ._' ! _- . _ r . .
_.j___TH|||___. r : _i n_ ._
._|:__YaCaX_. ?. ..__ __ ...
_ . . . _. .._', .`..,'_. .__
. .,_ , . .. _ ,._ ___ .., _ _
...._Z_nJ_|O__.|*.__'.i !_i_?_,.
___. :_ _ . . . . . . .'_ ':_+ !.?.
:.T__3__|_9|_. _ .._ __. .'i_ __':_..
_ ! , _ . , ,_ |
_. , _ __ _ _ .r,
:';".\ ` . . . ___.'. , . _ \+!,
� , _. | . . _ . ___.. . _. '
_�__. . _^_i �._. _ _.,._ _
, n..%____ , _ . ' .'�. __ . .. .
._,__.__! _ . . . ._i, _ _ ? . '
_)____:.`' '. .,. .
. . rf__ _ _ . , . , . . . . _
___._. __. _?____. .._____ . ._.?_._�%.__. . . ` `< . _ _._.__ . .....__ : ._, . _.. .. , , __ _ . ' .' . ' .._ i. m__! _!_t_ _._._.
' _ ' `' . .i.`___ m__ . ______ y�_ | _ . . __; .' . . . L' . _._ _ :. . . _ , . . , .n ._ .,
: . _ _ , ._. . . . .. ,: . . ,. . \ , . , _ ,.. ? . - , . . , _ . _ ;_
___:_ri'_?:_ _ _.'.!__l _ _ !___:__ ___ .. " .._r. . _._.�_." ?..." ,.,� ...'._ .. ,_ ' ' ' . : _ . \_.. _.. ..___`; _i... '_ .!:!i'_.!____
. ___ '_ ._�..r`_.?__ ._.._.._hj_'.. . . . . .__ :__?. _. :_..=_, , , _.__ \ _. , ,.,.:_%!! ... _.. ,!_ .j___?
_ . ___ ,2' _ \_, . ._ _ ,. _ . _ ' . __ ?. '... r . _ __.: ._�='___.i'. ` . _ .._ ._ _ .._: . r_`i_.?_ _ �_j. _ ,__..j____�.__` .
_ ! . _ . ., . . _ . , , . . _ , , . _ . _ , . ,_ .
. ' . .` . _' __!___'__ . . ,?_j ? .._ __. __ ?.'__ ' .. ,__._ .?...._ ._`i: j , ..` _ .-r._. ._' .. _! ._ . .. ._..'.. _ '_.=__` .. ;_... . ...___, _ ,.
, _ . ' \ _! '_ i _j. D_`:r __ _ _. .i??-_. :_ `' _ ?.. . . ._ . _. ' __.. i ._ + :' .� _:. _%._! _._.._.:_____,_ __n_
_ _ _ ,___ . . _,__ i, .._� ' ,:� k;. . ' r_. . .. ! `..'_. ,_'j .' _ . ... ,,_ . :....` ...'_.'._`._.. . _._... .'._ . .. __ _ _ _ . _ . .\
', . ,. , |, ` _ _ _ '.'_ \ \. _. ._._|_ ____ _W"
. , :_ ,,.. , .. . '._ . ._ .,_ T �.,_ _ _ . . . _ . . .. _ . _ . . _. _ , . . ,.
_ i_ ^ _ . _, i :_____i ___i.i.:'!_ . _._.._..!_ _i _`! . . _. .. _ _ .`_ . . ,_`_ _. _' .. '.:.. . ._._' :. _ ._?__.__._.. r rt i., \_._____'i _ .
.W_� _ . _ _ _..i _.: ' . '... _.. _? . .. . . . _ . . . . . . _ _ . , . _
. ' ____� . _ _ . _ | ._ %, !i.__. __'___ _ . '. _ . . ` . .. ? ' . _ ' '.. _. . . .. '._ . :_ . '._' r.. : _.. ' : M. .&.______
_ _
.._. . ' . ._ _. ! .. i _ - _ . . . ' . ` ' ' ._. .. _*. .; . |_ !__
_ . ._ _ _j_ _ _'. _ _ . . . \_ _ _ . ., _ _ _ ._
Ahora probamos con el tesseract, que si acepta el jpeg como entrada, con el comando:
tesseract 20130829_200939.jpg out; cat out.txt
Y el resultado es impresionante, por cierto
tesseract 20130829_200939.jpg out; cat out.txt
Tesseract Open Source OCR Engine v3.02.02 with Leptonica
Lic. Gabriela Martinez Verénica.
DIRECTOR COMERCIAL
Av. Xéchifl # 4262 Int. 10 Ce|. 333080807944.
Prados Tepeyac Nextel: 1659 3730
Zapopan, Jai. l.D. 92‘14“'30436
Tel. Of. 3121-9991 gabrielamtzéflhotmaflcomf
Yr’
Round 3: Con una imágen tomada con la camara Lumix DMC-FX35
Wow, ¿verdad?, ok... supongamos que es por que la cámara del S3 es mala... entoces tomamos la foto con una Lumix de 10Mpx que toma unas fotos maravillosas, esta es la foto utilizada:
djpeg -greyscale -pnm P1080712.JPG | ocrad
.. _ ._' � , . i_. __ ,_.___L_,___!._ � . '
_ ._ . ' ._ _._..| | _. _�___-_i__-
____l. _ .i.' .. ,! _ .. . _ r" ..! ?___ _.!._ �___
, _ . _ ' ' , _; _ , .
.._.._.m' | 'n_ .. !_ �._' _ ;.. . _ . _ _. '^. , ... __ : � :
| h _ ' -. = :_ . _ . . _ _ ' _ __ . %. ; . .` | - __._._ .. ,: . ; . -
_ _ . !i. .. . _ _. . _'`_' , ' _ . .". . . _. ._ . , , _.'_ ?. .j,i__.__ S?. |_ _
, . . . '___._ .._ ' r _ . ___ _. _ ? : ._, ?-: . ...___?
- _ .. _ .._- :_!� _.i _ ^ ." . _ ' ' . . _ . . _ _
... _ _ _ _ , . ! . ._ . ,_ n " _ _ _ _ . . - -
. \ .,- ' _ : . . .. - `
: -. . _ _ - . . _ . = . _ _ | _: _�t
- ; . T - | _ -| _ . . .i_-
| . - : L
. . .? r ' _ _
. \ . . '
, . . . _!.
- . .! ._: _, . .! . ._| .
. . . _..\ _
_ _
. . ` _ .|
- ' .|
_ !/|
_ . __ _?
| _ :.
, ._ __: _
_ -. �._ | .
_.| _ !:___ �_
. . __ ' _! .
tlE_ Cge__r___le_3 M_.__'2fr____ dBt�nlco, .. _.._. . ....: :__.____:___
l _ ( _ _ � t e ,_ |_ _ _ _ M _ y _. _r.f l n t . _.._ ., ._:: :-.:._!__:_
. : . . ' = . ...__| i
. . , - .!_ ... . : ._.
- ' ' , __ � : .�
_ _ _ . _ ' .
- ., _
_ _ . . . | _ . _
- . . . _ . � ___._._ _.
...! . . . . . . != : .�:___;_
___�_.__p _ n *___ tnt_ _O e.__ 23a`_'nsb_ ,' _. _ _"._._..._-__�____
_:___ #.nt.|_ _d_Q __OO . , _ :_... __:.__._
____.'- :___r;_.:.% .' .... . _ | o Qa* _ *P$g__t , _ .. _ ��!-.___
_. .._j '.._ _'..:._'__..___| _'_ | qoarfolam_d_.hol_#i__. .,... r . .... ___'`_ M ;'.._______
�i_._ ______________.__:�:., __ ._._ _: :. . . ?. . _ . . - _ __ ____________ '! . ..%'.� _�-.._ '__'_' ' '' . "
..?...�_ . _ . .__/i__C ,_. _,,
,, , _. .___._, r,;;_.___ � ! ,._!_ _ __,_ i . _.. _ |_... , . , _
__., ._,'______ '__.._: ___________:__';__,;_, ._"'_"j .i.. ._. . .
rf
_,_i '_ ?.'! %_ . ... . "________rt____. .
_. ., r__.___ ? . ?.-._ _____`_:_? _
. '.i____ _ . . _| __ . , ____ ' _,:,,, _, , . , . , _, _ _ . _
Y con tesseract, el resultado es:
tesseract P1080712.JPG out; cat out.txt
Tesseract Open Source OCR Engine v3.02.02 with Leptonica
Llc::. (+i}c3ti)r|;3|c1 M(JlHf1(‘3l Vcfarénlco.
limit I: ah? i € JMl H(.JAl
Col. 333-606-79¢64
Noxm: 1659 3730
I.D.92"I4"‘30436 ~
aabrlolamtzéflhotmcfinom
KO, fatality y todo lo demas: Conclusión.
Conclusión, los MPX de la cámara, no tienen un efecto tanto como la nitidez. El S3 toma una mejor foto y tiene mejores filtros que la cámara P&S. El OCRAD no solo es málo, es malísimo y no sirve, el tesseract es mucho más facil de que funcione.