fbpx
Tesseract OCR + ASP.NET Core
Publicado em: terça-feira, 5 de maio de 2020

Esse projeto nasceu de uma iniciativa de combate a SPAM. Spammers no telegram usam novas táticas todos os dias e corrida de gato-e-rato nos faz usar tecnologia para sanar e bloquear as iniciativas desses spammers.

Eu particularmente sou extremamente ativo no telegram, e lidero alguns vários grupos. Nesses grupos temos problemas com SPAM. São em geral bots que querem falar dos mesmos assuntos: Bitcoin, Ethereum, Elon Musk… enfim SPAM. Poderia ser dinheiro grátis, mas em um grupo de tecnologia, é bobagem por estar fora do contexto do grupo.

Nessa corrida contra a nova tática, descobrimos palavras-chave a serem bloqueadas. URL’s, e muito mais. Agora eles estão usando novas táticas e nós precisamos reagir. Agora a moda é enviar imagens e links do Youtube. E é sobre imagens que vamos falar hoje.

Tesseract

Tesseract é um software de reconhecimento ótico de caracteres de código aberto (Licença Apache 2.0)[1], originalmente desenvolvido pela Hewlett-Packard e foi por um tempo mantido pelo Google; atualmente o projeto está hospedado no GitHub (fonte Wikipedia).

API .NET Core

Tesseract é utilizado via linha de comando. Você envia 2 parâmetros: O path de uma imagem e um path de output e ele faz a mágica dele.

Nós precisávamos transformar em uma Web API. Isso é útil para poder reaproveitar essa API em outros contextos.

Docker

A mágica dos containers faz com que só precisemos de 1 linha de código para instalar o binário em nossa imagem. Uma vez feito isso, estamos prontos para realizar sua chamada via linha de comando (dinamicamente pela aplicação web).

Antes

...
EXPOSE 80


FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
...

Depois

...
EXPOSE 80
RUN apt update && apt install tesseract-ocr libtesseract-dev -y

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
...

https://github.com/luizcarlosfaria/OcrApi/blob/master/TesseractApi/Dockerfile#L6

O primeiro passo foi avaliar a forma de uso. Depois entender como instalar. E fiz isso em um container, live. Ao lado do que estava fazendo, fui criando o DockerFile do projeto. Uma vez ok, comecei a colocar uma API por cima e assim começamos a testar integrado ao telegram.

Embora não tenha tido muito sucesso na tarefa de lidar com o evento de envio de foto com nodered,. Subi um outro projeto de bot que estou criando e demos vida com ele. Ficou muito legal.

Confira o projeto no github https://github.com/luizcarlosfaria/OcrApi

Conclusão

Não precisa ser extremamente complexo.

Não precisa ser extremamente sofisticado.

As vezes o simples e óbvio é o caminho mais eficiente e eficaz.

Docker ajuda pois estamos falando de binários específicos, que podemos empacotar junto com nossas aplicações. A próxima demanda é obter os metadados do youtube.

Lives

Todo esse rolê foi narrado em 2 lives no mesmo dia. Eu precisei interromper a live por conta da aula da turma do Docker Definitivo.

0 comentários

Enviar um comentário

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

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

[docker de a a z]

Lives

Fique de olho nas lives

Fique de olho nas lives no meu canal do Youtube, no Canal .NET e nos Grupos do Facebook e Instagram.

Aceleradores

Existem diversas formas de viabilizar o suporte ao teu projeto. Seja com os treinamentos, consultoria, mentorias em grupo.