OCRobot - um robot controlado por cartões de texto
Enviado: 16 mai 2017, 07:37
A ideia para este robot surgiu há uns dias no trabalho, um consultor residente da área de Redes de vez em quando discute comigo ideias para na empresa dele poder utilizar Raspberry Pi e em poucos minutos de Google mostrei-lhe como fazer OCR em linha de comando, com um exemplo concreto e tudo. De repente fez-se luz: se consigo fazer isto da linha de comando consigo fazer também no EV3, só... um ... pouquinho... mais... lento.
Os primeiros ensaios foram com uma webcam moderna (uma Logitech c270) mas para os puristas troquei por uma LEGOcam, funciona quase tão bem. Só tive de mudar a disposição original porque o cabo gigantesco da LEGOcam fazia o OCRobot tombar.

Fisicamente o OCRobot é apenas um Riley Rover com uma LEGOcam e um sensor de toque. A LEGOcam está montada sobre uma estrutura que recebe "cartridges" com amostras de texto, que podem ser manuscritas desde que "em letra de imprensa".
O OCRobot corre ev3dev (linux) e de momento a programação limita-se a um script de bash que pode correr em qualquer linux, inclusive num Raspberry Pi (pelo que, se montarmos o OCRobot com um BrickPi em vez de um EV3, funciona MUITO MAIS RÁPIDO).
O script aguarda que se carregue no sensor, acende as luzes Power Functions, tira uma foto (fswebcam), processa a foto (ImageMagick e textclean, um script para ImagicMagick orientado para OCR) e depois converte para texto (tesseract-ocr). Pelo meio vai ainda dizendo em voz alta certas banalidades (espeak) para evitar adormecermos de tédio.
O tesseract-ocr é um projecto de Optical Character Recognition que recentemente recebeu atenção da Google - se costumam usar o OCR do Google Docs estão a usar o tesseract na cloud.
Os primeiros ensaios foram com uma webcam moderna (uma Logitech c270) mas para os puristas troquei por uma LEGOcam, funciona quase tão bem. Só tive de mudar a disposição original porque o cabo gigantesco da LEGOcam fazia o OCRobot tombar.
Fisicamente o OCRobot é apenas um Riley Rover com uma LEGOcam e um sensor de toque. A LEGOcam está montada sobre uma estrutura que recebe "cartridges" com amostras de texto, que podem ser manuscritas desde que "em letra de imprensa".
O OCRobot corre ev3dev (linux) e de momento a programação limita-se a um script de bash que pode correr em qualquer linux, inclusive num Raspberry Pi (pelo que, se montarmos o OCRobot com um BrickPi em vez de um EV3, funciona MUITO MAIS RÁPIDO).
O script aguarda que se carregue no sensor, acende as luzes Power Functions, tira uma foto (fswebcam), processa a foto (ImageMagick e textclean, um script para ImagicMagick orientado para OCR) e depois converte para texto (tesseract-ocr). Pelo meio vai ainda dizendo em voz alta certas banalidades (espeak) para evitar adormecermos de tédio.
O tesseract-ocr é um projecto de Optical Character Recognition que recentemente recebeu atenção da Google - se costumam usar o OCR do Google Docs estão a usar o tesseract na cloud.