Nesta semana fiz uma integração do Alfresco com o Software de OCR Open Source Tesseract.
Minha Infra era Alfresco 5.0 + CentOS 6 + Tesseract 3.02
Escrevi alguns passos a serem realizados para isso funcionar bem!
Primeiramente instale o Tesseract na sua versão de Linux!
No meu Caso era CentOs e segui este passo a passo aqui :
https://alantamproject.wordpress.com/2015/05/12/centos-install-tesseract-ocr/comment-page-1/#comment-1
Para quem usa Ubuntu esta mais fácil : sudo apt-get install tesseract-ocr-por
no pacote e pronto!
Após instalar o tesseract caso queira reconhecer caracteres da lingua portuguesa pode instalar um pacote criado por um professor Thadeu
http://profs.if.uff.br/tjpp/blog/entradas/brazilian-portuguese-oficialmente-suportado-no-tesseract-ocr
é só copiar no diretório usr/local/share/tessdata após instalado!
Alterações no Alfresco que devem ser implementadas :
- Crie um arquivo no diretório de extensões do Alfresco com o nome ocr-transform-context.xml em /tomcat/shared/classes/alfresco/extension com o conteúdo deste arquivo:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="transformer.worker.ocr.tiff" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker"> <property name="mimetypeService"> <ref bean="mimetypeService"/> </property> <property name="checkCommand"> <bean class="org.alfresco.util.exec.RuntimeExec"> <property name="commandsAndArguments"> <map> <entry key=".*"> <list> <value>/opt/alfresco/ocr</value> </list> </entry> </map> </property> <property name="errorCodes"> <value>2</value> </property> </bean> </property> <property name="transformCommand"> <bean class="org.alfresco.util.exec.RuntimeExec"> <property name="commandsAndArguments"> <map> <entry key=".*"> <list> <value>/opt/alfresco/ocr</value> <value>${source}</value> <value>${target}</value> </list> </entry> </map> </property> <property name="errorCodes"> <value>1,2</value> </property> </bean> </property> <property name="explicitTransformations"> <list> <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails"> <property name="sourceMimetype"><value>image/tiff</value></property> <property name="targetMimetype"><value>text/plain</value></property> </bean> </list> </property> </bean> <bean id="transformer.ocr.tiff" class="org.alfresco.repo.content.transform.ProxyContentTransformer" parent="baseContentTransformer"> <property name="worker"> <ref bean="transformer.worker.ocr.tiff"/> </property> </bean> </beans>
Adicione um shell script para fazer a manipulação doArquivo via Sistema Operacional/Tesseract , o mesmo deve ser adicionado em /opt/alfresco com o nome ocr ( sem extensão mesmo ) , com o conteúdo abaixo, ( ATENÇÂO !para o português mude a opção eng para por na penúltima linha)
#!/bin/bash # save arguments to variables SOURCE=$1 TARGET=$2 TMPDIR=/tmp FILENAME=`basename $SOURCE` OCRFILE=$FILENAME.tif # to see what happens #echo "from $SOURCE to $TARGET" >>/tmp/ocrtransform.log cp -f $SOURCE $TMPDIR/$OCRFILE # call tesseract and redirect output to $TARGET tesseract $TMPDIR/$OCRFILE ${TARGET%\.*} -l eng rm -f $TMPDIR/$OCRFILE |
Agora e só reiniciar o Alfresco e fazer upload de um arquivo TIF , depois procurar por um texto contido no arquivo TIF! Este tutorial com um pouco de conhecimento em Alfresco e XML e Tesseract Isso pode ser adaptado para outros tipos de arquivos, espero tem ajudado!
Referências: http://www.cnblogs.com/tyshan/p/4867949.html
http://profs.if.uff.br/tjpp/blog/entradas/brazilian-portuguese-oficialmente-suportado-no-tesseract-ocr
Oi Marcio,
Preciso criar uma aplicação web com tesseract, consegue me ajudar ?
maxx_redes@yahoo.com.br
Olá podemos sim ,
Envia sua necessidade para que possamos elaborar um orçamento se for muito complexo podemos marcar uma reunião online para levantamento de escopo.
mandei email em PVT
Grato
Alguma chance disso funcionar com PDFs em formato de imagem em alta resolução?
Acredito que customizando o Scripi do tesseract sim , tem que adaptar mas para o alfresco deve ser igual, o caminho e ver se o tesseract tem suporte para PDF -> Img
Grande Márcio,
Aproveitando o post sobre Alfresco, poderia me indicar algum módulo para cadastro de usuários com CAPTCHA?
Olá Bruce , Não conheço nenhum do proprio alfresco ( add-ons) mas pode tecnicamente adaptar qualquer um alterando a tela de login do alfresco implementando qualquer captcha. A pagina de login e um JSP/HTML com chamada oara um serviço de autenticação. Pode bloquear o botão de login antes do preenchimento do captcha.
Olá será que funcionaria com Windows?
Da forma como esta não , devera ser alterado e adaptado para windows ! pois o script e Shell ( apesar de algumas versões de windows recentes ter suporte a shell ) o tesseract pode ser compilado para windows tambem! https://github.com/tesseract-ocr/tesseract/wiki uma opção e usar o Cygwin que teoricamente funcionaria.
Pesquisando por aí, achei seu blog com o artigo sobre o Tesseract.
Estou trabalhando num projeto para digitalização de documentos médicos que apresentam erros em alguns termos. Acho que a solução seria adionar alguns termos ao dicionário, mas não encontro como fazer.
Tem alguma dica?!