Resultados: Scanner de baixíssimo custo

Baseado no protótipo desenvolvido, começamos uma nova rodada de testes para averiguar a qualidade de captura. A nossa meta, desde o início, foi conseguir scanner um livro comum com qualidade de captura (no meio, definimos que algo acima de 90% seria um bom critério), capturando um tamanho máximo de folha A4. Lembramos – isso é um projeto que levou a um protótipo. As variáveis são várias (iluminação, tipo de livro/página, entre outros. Você precisará testar, brincar e calibrar seu scanner para atingir um nível de qualidade que seja aceitável para você!

Material

Para esse teste, usamos o livro que ganhei da autora e colega Maria Renata Duran que recentemente lançou um livro pela Editora UNESP, disponível para download.

Os testes foram feitos em condições que consideramos reais, porém menos que ideais para captura:

O scanner foi posto em uma sala de escritório, com uma lâmpada fluorescente no teto, dessas comuns que custam pouco e duram muito. O scanner foi montado com um pequeno apetrecho para uma lâmpada fluorecente de baixa potência (15W) que foi posicionada logo atrás e acima da câmera.

O livro foi colocado na base. O nosso scanner contem um espaçamento, feito para acomodar a lombar de um livro um pouco mais grosso. Nesse caso, como se trata de um livro pequeno, coloquei uma pasta (em “V”) por trás para que ele ficasse bem acomodado. Por cima do livro, usamos uma placa de vidro comum, para “achatar” a imagem.

Utilizamos, propositalmente, uma câmera simples, portátil e bem antiga, uma Canon SD4000 IS, que tem um sensor pequeno, equivalente aos modelos de câmera simples que se encontra em qualquer loja.

Software

Usamos o software livre de reconhecimento de caractéres (OCR) chamado Tesseract. Ele está disponível para várias plataformas e contém um dicionário já pronto, em português.  É possível usar uma interface (GUI, veja no site) para o Tessaract, mas nos nossos testes usamos a linha de comando, que nos dá maior flexibilidade. Nos testes usamos o Tesseract 3.02.02. É fácil instalá-lo em Linux, baixando somente o pacote, que também automaticamente instala as dependências (como Leptonica). No MAC, utilize o MacPorts, ou o Brew (que usamos aqui) para fazer o mesmo. Instale o pacote da língua portuguesa disponível na página de download (para referência, o nome do arquivo é algo como tesseract-ocr-3.02.por.tar.gz). Uma vez expandido o arquivo (nome deve ser algo como por.traineddata) deve ser colocado no diretório /share/tessdata.

A estrutura básica de comando do Tesseract é a seguinte:

tesseract imagem-original arquivo-texto

Nós utilizamos alguns comandos adicionais, que resultaram em:

tesseract imagem-original.jpg output -l por -psm 1

  • “output” é o nome do arquivo (que o Tessaract nomeia automaticamente com extensão .txt);
  • “-l por” sinaliza que a língua que vamos usar é o português;
  • “-psm1” significa que queremos que o software detecte a orientação da página automaticamente – importante porque as imagens saem do scanner na horizontal (leia mais sobre os comandos aqui)

Em modo mais avançado, com vários JPG (imagens) scaneadas, você pode utilizar um loop para fazer o OCR em todas:

for i in *.jpg ; do tesseract $i  nome+texto -l por -psm 1;  done;

Para compilar o livro final, usamos um script customizado, feito em bash para linux. É só colocar os arquivos de imagem em dois diretórios (par e impar) e rodar e o programa (sh ocr.sh) – o programa faz o resto. É claro, vale repetir, que o resultado final precisa sempre ser limpo pelo usuário.

Resultados

Fizemos 8 rodadas de testes, eliminando problemas e identificando as melhores configurações. Usando os termos acima, capturamos uma página do livro e comparamos o resultado com o atingido por um scan tradicional, feito em scanner CanoScan 9000F em 150dpi (mais próximo do atingido pela câmera) e na resolução mais desejável de 300dpi.

Conferimos os resultados comparando o texto, removendo os espaçamento de final de linha com o Diffchecker, atingindo a seguinda diferença:

Diferenças entre Scanner de baixo custo e Scanner de mesa
Diferenças entre Scanner de baixo custo e Scanner de mesa

Como pode-se notar, ambos apresentam um único erro (se você não baixou o livro original, pode baixá-lo e confira a página 58) na citação do Southey. Mas a diferença da qualidade de captura é de 1 único caractér!

Vale a pena?

Mas se deu igual, porque fazê-lo com o Scanner de baixíssimo custo? A primeira razão está no nome. Os materiais são fáceis de achar, custam no máixmo R$20, e você pode fazer você mesmo . Você não danifica o livro, esmagando e comprimindo a lombar no scanner tradicional. A velocidade de captura (calculamos uma página a cada 5 segundos) é muito maior do que é possível num scanner tradicional. Outras razões, abundantes, você encontra no site do DIY.

O processo de captura (OCR) permite que o livro seja mais acessível – fica mais fácil distribuí-lo por conta do tamanho (é só texto); permite leitura por software dedicado (como leitura de áudio para cegos); facilita a transformação para padrões abertos (como ePUB, e formatos padrão como PDF), entre outras vantagens. Mas, como todo processo de captura, é necessário que você faça uma “limpeza” dos dados antes de entregá-lo no formato final. O a imagem capturada pelo scanner de baixo custo tem maiores problemas com espaçamento entre linhas/parágrafos. Isso é facilmente eliminável com software (já em desenvolvimento). No final das contas, sempre (com o scanner de mesa ou qualquer outro) faz-se necessário um pente fino e ajuste no texto. Isso pode ser feito de forma colaborativa. Uma sugestão: que tal botar tudo numa wiki e chamar uma comunidade de interessados para ajudar?

Considerações e dicas

  • Não há (como havíamos constatado nos testes iniciais) diferença de qualidade de captura entre  a lâmpada fluorescente e a incandescente (testamos novamente com 40W e 15W respectivamente).
  • Tendo somente um spot (uma origem de luz direta), posicioná-la de maneira centralizada, logo atrás da câmera, melhora a qualidade de captura.
  • Verifique que câmera está o mais paralelo possível da área de captura, o que diminui muito a distorção e facilita a captura. Isso é particularmente importante se você obtiver resultados ruins nas “pontas” das páginas.
  • Quantidade de zoom (nos testes, 6mm/mais aberto ou 8mm/mais fechado) não altera a qualidade de captura, contanto que mantenha-se um nível razoável de densidade (nesse caso, 180dpi; o que é considerado baixo pelo Tesseract). Ou seja, não recomandamos que você capture com uma grande angular que cause grande distorção (um “arredondamento” da imagem), mas não se preocupe em dar um “zoom” para captura somente a página completa.
  • Tratar imagem convertendo para preto e branco ou tons de cinza, e/ou alterar contraste, antes de enviar a imagem ao Tesseract não melhora a qualidade do OCR.
  • Tirar imagem em preto e branco/tons de cinza na câmera não melhora qualidade do OCR.
  • Rotacionar a imagem anteriormente não melhora o OCR o comando adicional (-psm 1) no Tesseract dá resultados idênticos, via software.
  • O uso de um timer para evitar trepidações e diminuir as sombras (de você mesmo tirando a foto) não tende a melhorar o resultado do OCR. Isso é devido, em grande parte, ao fato de que o parafuso que usamos providencia ótima estabilidade, e a câmera, mesmo que simples que usamos, tem algum tipo de estabilização.
  • Nossos testes sempre foram feitos pensando em iluminação com duas lâmpadas, ajudando maximizar a distribuições de luz, evitando reflexos. Isso continua sendo importante, dependendo da mídia a ser scaneada (fotos, revistas com capa brilhante, entre outros), mas no caso de uma página de livro, não o foi.

2 comentários

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *