Robô de reconhecimento óptico de caracteres – (Parte 12/12)

Robô de reconhecimento óptico de caracteres – (Parte 12/12)

Este artigo fornece instruções passo a passo para fazer um robô capaz de converter imagens em um formato processável por computador, na forma de texto simples usando Raspberry Pi e um servidor de webcam onde podemos transmitir vídeo ao vivo em uma rede local. Um pacote de software usado neste tutorial para interface de câmera é o Motion, que é um software de código aberto com diversas opções de configuração que podem ser alteradas de acordo com nossas necessidades. Aqui as configurações devem ser feitas para que seja possível criar uma webcam remota que rode em Raspberry Pi, que permitirá a visualização de qualquer computador da rede local para o controle do robô em áreas fora da linha de visão. Instruções passo a passo para o reconhecimento óptico de caracteres são discutidas abaixo.

Robô de reconhecimento óptico de caracteres usando protótipo Raspberry pi

Pré-requisitos e equipamentos:

Você precisará do seguinte:

  1. Um Raspberry Pi Modelo B ou superior.

  2. Um adaptador USB WiFi (Edimax – adaptador nano USB sem fio 802.11b/g/n é usado aqui).

  3. Uma webcam USB com microfone / microfone USB (a Logitech USB Webcam é usada aqui).

  4. Acessórios robóticos (rodas, motores, chassis e circuitos de acionamento de motores)

  5. Um cartão SD atualizado com o sistema operacional Raspbian (aqui está um guia se você precisar)

  6. Acesso ao Raspberry através de teclado e monitor ou remotamente.

Neste projeto, nosso objetivo final é encontrar e resolver os diferentes requisitos na construção de um robô controlado pela web que reconheça e converta mensagens de texto colocadas no mundo real em arquivos de texto legíveis por computador. Nosso objetivo é integrar as técnicas apropriadas para explicar e provar tal capacidade, usando suas capacidades limitadas de hardware e software e não desenvolver novos algoritmos de reconhecimento de caracteres ou hardware para fazer isso. O objetivo do nosso trabalho é fornecer a um robô móvel controlado pela internet a capacidade de ler caracteres na imagem e distribuir sequências de caracteres. Nossa abordagem requer as seguintes técnicas:

  1. Controle web da interface do usuário para movimento robótico – Utilizando scripts PHP e Java.

  2. Servidor de webcam para transmissão ao vivo dos vídeos – Usando o pacote Motion Software.

  3. Controle de instantâneo da câmera – usando script python.

  4. Reconhecimento óptico de caracteres para conversão de imagem em texto.

Controle web da interface do usuário para movimentos robóticos:

A interface do usuário para o controle dos motores que controlam o movimento do robô é feita utilizando a mesma técnica utilizada na automação residencial utilizando Raspberry Pi. Java script é usado na criação da interface gráfica do usuário e PHP usado para comunicação entre a GUI e o GPIO do Raspberry Pi. Todos os detalhes técnicos incluídos nisso são bem discutidos naquele artigo.

GUI da interface de controle da Web no Raspberry pi usando Java script e php

Figura 2: GUI da interface de controle da Web no Raspberry Pi usando Java Script e PHP

A imagem acima é a GUI da interface de controle web, possui 4 blocos que são bloco de controle, bloco de transmissão ao vivo, bloco de saída de texto e bloco de imagem capturada. O bloco de controle inclui quatro interruptores de direção e um interruptor de parada. O bloco de transmissão ao vivo é usado para conduzir o robô em áreas fora da linha de visão. A última imagem capturada é mostrada no próximo bloco. E finalmente a saída de texto, que pode ser usada digitalmente, é fornecida no último bloco.

Servidor de webcam para transmissão ao vivo dos vídeos:

A criação de um servidor de transmissão ao vivo com Raspberry Pi é discutida detalhadamente no artigo anterior. Aqui temos que incluir esse servidor com a interface recém-criada para o robô. Isso pode ser feito incluindo a url do vídeo no arquivo index.php que é criado para o servidor explicado no artigo anterior.

Instalando o mecanismo de reconhecimento óptico de caracteres (OCR):Disha Karnataki

O mecanismo OCR converte o arquivo de imagem que capturamos em tempo real em um arquivo de texto. Estamos usando o Tesseract OCR Engine. É compatível com Raspberry Pi e não requer conexão online para converter imagens em texto.

Primeiro, instale o tesseract digite o seguinte comando:

sudo apt-get install tesseract-ocr

A seguir, teste o mecanismo de OCR.

Selecione uma boa imagem que contenha um pedaço de texto e teste o tesseract seguindo o comando:

imagem tesseract.jpg o

Onde image.jpg é a imagem tirada pela câmera Raspberry Pi para fins de teste e o é o arquivo no qual o texto de saída será salvo em formato de texto, o Tesseract o tornará o.txt, portanto não há necessidade de adicionar a extensão. Agora é preciso esperar alguns minutos, o OCR consome muito poder de processamento. Quando terminar o processamento, abra o.txt. Se o OCR não detectou nenhum texto, tente girar a imagem e executar o tesseract novamente.

Configurando código python para funções de OCR:

OCR inclui uma série de etapas que devem ser executadas uma a uma o que dificulta a codificação PHP, por isso estamos escolhendo o script python com um servidor web que é capaz de realizar todas as funções com um clique no servidor web PHP. O script Python pode ser escrito para lidar com comandos do sistema e ler a saída do shell pela função do sistema importando a biblioteca do sistema operacional. Copie a pasta de codificação camera_python para a pasta inicial do Raspberry Pi e execute o comando usando o seguinte comando. (Certifique-se de que a câmera esteja conectada à porta USB do Raspberry Pi. Este script python inclui as seguintes ações.

  • Parada do serviço de movimento (transmissão ao vivo).

  • Tirando um instantâneo.

  • Executando mecanismo de OCR.

  • Iniciando o serviço de movimento.

Como nosso servidor Apache será iniciado automaticamente após cada reinicialização. O trabalho pendente é iniciar automaticamente o script python após cada reinicialização. Fazer com que o script python seja executado na inicialização é bem explicado neste artigo.

Fazendo tudo junto:

PASSO 1:Cada parte distinta do robô está concluída, é hora de integrá-las para funcionar como uma parte inteira. Primeiro é iniciar o servidor Apache, discutido em artigos anteriores. Baixe os arquivos de codificação OCR_Robo, extraia e coloque-os na pasta do servidor web apache que é /var/www e verifique a disponibilidade do servidor web. Nota: Existem diferentes técnicas discutidas nos artigos anteriores para saber o endereço IP. Percorra cada linha de todos os arquivos de codificação e faça alterações no campo do endereço IP para o seu próprio endereço IP.

Arquivos de codificação OCR_Robo

Fig. 3: Arquivos de codificação OCR_Robo

PASSO 2: Baixe os arquivos de codificação Camera_python e coloque-os na pasta inicial do Raspberry Pi. Crie um arquivo chamado launcher.sh usando o seguinte comando.

Sudo nano launcher.sh

E insira o seguinte código conforme mostrado na imagem:

#!/bin/sh

cd /

cd home/pi/camera_python

sudo python câmera.py

cd /

E torná-lo executável e capaz de iniciar na inicialização seguindo os passos dados no artigo anterior.

ETAPA 3: Faça as conexões de acordo com o diagrama de circuito. Optoacopladores são usados ​​para proteger o Raspberry Pi contra riscos de sobretensão.

Agora o robô que pode ser controlado por interfaces web e capaz de reconhecimento óptico de caracteres está pronto.

Diagramas de circuito

Diagrama de Circuito-Robô de Reconhecimento de Caracteres Ópticos

Vídeo do projeto

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.