Livro: Raspberry Pi Computer Vision Programming

Raspberry Pi Computer Vision Programming

A editora britânica PacktPub está com o tema "Maker" para a presente semana em sua iniciativa de 1 livro de graça por dia. Vários dos livros best-sellers do mesmo tema também serão vendidos com 50% de desconto, com preços em dólar. Na página Free Learning o anúncio mostrado  na Figura 1 aparece em destaque, anunciando a semana especial! No presente dia o livro vai de encontro à nossa formidável Raspberry Pi, juntamente com um tema pelo qual tenho um apreço muito especial, que é a Visão Computacional, com o anúncio da obra Raspberry Pi Computer Vision Programming, de Ashwin Pajankar, disponibilizada de graça por 24 horas.

 

Raspberry Pi Computer Vision Programming
Figura 1- Maker Week 2015 da Editora PacktPub.

 

O livro Raspberry Pi Computer Vision Programming (Programação de Visão Computacional na Raspberry Pi) ficará de graça na atual data do dia 13/12/2015. Na editora este livro custa 19,99 dólares. Aproveite para pegá-lo de graça! Lembramos que após esse período o livro voltará a ser pago!

 

Para obter o livro gratuito do dia, primeiro é preciso ser cadastrado na editora PacktPub, o que é feito de graça. Segundo, é preciso acessar o link do Free Learning da PacktPub, que disponibiliza um livro de graça pelo intervalo de 24 horas. Só, e somente só pelo link do Free Learning é que você poderá baixar o seu livro de graça do dia!!! Se você for ao link do livro, ele será pago!

 

Acessando o Free Learning no intervalo do dia 13/12/2015 até o encerramento do relógio de contagem, será visto no centro da página um conteúdo tal como mostrado na Figura 2 adiante. É destacado em vermelho um relógio com o tempo restante em que o livro permanecerá de graça. Já na parte esquerda do painel central é exibida a capa do livro. No centro do painel e logo abaixo do campo de tempo em vermelho, é apresentada em inglês uma breve descrição do livro.

 

Cadastrado e autenticado/logado no PacktPub, basta clicar no botão azul Claim Your Free eBook para carregar o livro em seu acervo pessoal - My Books em sua conta no PacktPub. Simples, rápido e fácil!

 

packtpub free: Raspberry Pi Computer Vision Programming
Figura 2 - Painel para obtenção do livro de graça do dia.

 

 

Livro no Painel do Usuário

 

Tendo sido o livro carregado em seu acervo pessoal, é então possível visualizá-lo em uma ampla variedade de formatos digitais, compreendendo formatos tais como PDF, ePub, Mobi (utilizado nos leitores Kindle). É possível também ler o livro diretamente no navegador por meio da opção Read Online. Pelo fato de o livro trabalhar com conteúdo técnico e desenvolvimento de códigos de programa, é fornecido um arquivo compactado que contém os códigos-fonte trabalhados/desenvolvidos nas atividades apresentadas no livro. O arquivo de código-fonte pode ser baixado pela opção Code Files. Veja abaixo na Figura 3 como fica o livro no painel do usuário.

 

user panel - Raspberry Pi Computer Vision Programming
Figura 3 - Livro no painel do usuário com destaque para elementos de download, leitura e códigos.

 

 

O Livro "Raspberry Pi Computer Vision Programming"

 

Escrito por Ashwin Pajankar, posso começar este simples resumo indicando que é um livro mandatório para estudantes de visão computacional e sistemas embarcados. O autor não se prende só a detalhes de software, e nem se atém somente a formulações matemáticas dos processos de visão computacional apresentados. Muito pelo contrário, de uma maneira elegante e tranquila, facilmente compreensível, o autor apresenta tanto formulações matemáticas quanto exemplos bem elaborados de códigos em Python para a compreensão dos processos realizados, contando inclusive com a apresentação visual dos resultados.

 

O que eu tenho a dizer é que este livro é ouro para os estudantes de Visão Computacional e Robótica, pois demonstra a sinergia entre a matemática e o código empregado. Ao contrário do que é visto em muitos exemplos achados na internet, o autor não joga um código, mostra o resultado, e pronto. Não. Ele explica sucintamente cada detalhe dos tipos de dados empregados, dos tipos de parâmetros utilizados, e da sequência de operações necessárias para o uso das funções e rotinas de Visão Computacional apresentadas em cada sequência de elaborações desenvolvidas ao longo de seus capítulos. Sem mais, nem menos, é um ótimo livro. Com os conceitos aprendidos neste livro, você pode desde fazer uma simples brincadeira com Chroma Key, até mesmo usar para fazer uma aplicação comercial. Recomendo!

 

packt-pub-free-raspberry-computer-vision-programming-cover
Figura 4 - Capa do livro "Raspberry Pi Computer Vision Programming"

 

 

Sumário do Livro

 

Veja adiante um resumo do que é apresentado em cada capítulo do livro.

 

Capítulo 1 - Introdução a Visão Computacional e Raspberry Pi. O capítulo introdutório é reservado à apresentação da Raspberry Pi e orientações quanto ao setup inicial do cartão de memória com o sistema Raspbian, tendo como referencial de operação o modelo Raspberry Pi B+. Finalizado o setup de sistema, são passadas instruções para instalação da biblioteca OpenCV com Python, e o autor finaliza o capítulo fundamentando uma sequência de primeiros passos com uma biblioteca para Python muito útil para uma série de procedimentos matemáticos, a NumPy.

 

Capítulo 2 - Trabalhando com Imagens, Webcam e GUI.  Este capítulo inicia com uma sequência de instruções sobre a execução de programas em Python na Raspberry Pi, para logo em seguida apresentar formas de trabalhar com imagens usando OpenCV com Python, e como exibir imagens e detalhes usando matplotlib, uma outra biblioteca Python usada para exibição gráfica de dados. Na continuidade do capítulo, o autor aprofunda em peculiaridades de OpenCV e NumPy que permitem fazer o desenho de formas geométricas na imagem, além de demonstrar como implementar barras de rolagem para a modificação de parâmetros a serem trabalhados na imagem em exibição na janela. A última parte do capítulo é reservada para tratar exclusivamente de webcam, començando com conceitos inicias de conexão, dispositivo, depois demonstra como usar de algumas para fazer a gravação de imagens e vídeo, e por fim demonstra como usar OpenCV para ler a câmera e gravar arquivos de vídeo, tanto usando câmera USB quanto a Pi Camera Module.

 

Capítulo 3 - Introdução Básica a Processamento de Imagens.  Este capítulo é uma espécie de aquecimento quanto aos conceitos de processamento de imagens usando Python e OpenCV. O autor começa por apresentar formas de ler informações de imagem, para depois mostrar como fazer operações aritméticas capazes de mudar propriedades de uma imagem, tal como alteração de brilho e até mesmo sobreposição de uma imagem com outra. No andamento do capítulo o autor também demonstra como trabalhar com os canais de cor de uma imagem, e finaliza com a realização de algumas operações lógicas (not, and, or, xor) sobre imagens. Em todos os exemplos, o autor faz uso de MatPlotLib para demonstrar o resultado das operações.

 

Capítulo 4 - Colorspaces, Transformações e Thresholds. O capítulo começa apresentando diferentes colorspaces, tais como BGR, RGB, HSV e Grayscale, e como Python pode ser usado para mudar o colorspace de uma imagem. O conceito não é pra menos, pois logo em seguida o autor demonstra como fazer uso de componentes de cor para rastrear objetos de uma dada cor na imagem. Na sequência, o autor mostra como fazer transformações tais como escala, translação, rotação e afim sobre imagens. No fim do capítulo, o autor aborda o conceito de "thresholding" (limiarização), demonstrando as várias formas possíveis de se realizar a operação com Python, e seus resultados também. As saídas das operações são apresentadas com o uso de MatPlotLib.

 

Capítulo 5 - Vamos fazer algum ruído. Este capítulo é voltado para os conceitos de ruídos e técnicas de filtragem de ruídos, de modo que o autor inicia apresentando os conceitos de ruído e demonstra a aplicação do ruído "sal-e-pimenta" (salt-and-pepper) numa imagem. Depois, são apresentados conceitos de kernel e filtros passa-baixas para remoção de ruído, contando com formulação matemática, exemplos em Python com exibição via MatPlotLib.

 

Capítulo 6 - Detecção de bordas, círculos e linhas. Indo mais adiante em técnicas de filtragem, o autor agora apresenta o uso de filtros passa-alta com a finalidade de destacar bordas em uma imagem, abordando os filtros Laplaciano, Sobel e Scharr, e na sequência apresenta as características e a aplicação do Detector de Bordas Canny. E para detectar com maior afinco círculos e linhas, são apresentadas as técnicas Hough Circle e Hough Line. Todas as técnicas contam com explicações sobre funções, parâmetros, sequência lógica de operação, dentre outros, com exemplos em Python e demonstração de funcionamento.

 

Capítulo 7 - Recuperação de Imagens, Quantização e Mapa de Profundidade. Se no capítulo 5 foi introduzido o conceito de ruído, que normalmente "distorce" uma imagem, agora é tratado o conceito reverso, que é o de recuperação das propriedades originais da imagem. Na continuidade o autor demonstra conceitos e aplicações de segmentação de imagens, uma técnica muito útil que auxilia na identificação de objetos ou partes diferentes na imagem. O capítulo é bem encerrado com a demonstração do conceito de mapa de profundidade de uma imagem, tomando por base duas imagens em uma aplicação de visão estéreo (uso de 2 câmeras - esquerda e direita).

 

Capítulo 8 - Histogramas, Contornos, Transformações morfológicas.  Este capítulo fornece mais uma sequência de fundamentos em técnicas de visão computacional e processamento de imagens, por começar conceituando e demonstrando o uso de Histogramas para analisar as propriedades de uma imagem, tais como pixels em cada nível de cinza e até mesmo pixels em cada intensidade/canal de cor. No andamento do capítulo o autor também apresenta o uso de Contornos para detectar regiões com um mesmo padrão (cor) numa imagem, e também fala sobre transformações morfológicas tais como erosão e dilatação. O final deste capítulo merece um destaque especial, pois o autor demonstra uma simples, porém muito valiosa técnica para avaliar o desempenho de algoritmos com visão computacional usando OpenCV e Python. Isso é importante para você saber se seu algoritmo está demorando muito tempo para ser executado, algo que auxilia muito no processo de reavaliar a sequência de operações e tentar otimizar o programa como um todo.

 

Capítulo 9 - Aplicações reais de Visão Computacional. Este capítulo usa toda a base fundamentada nos capítulos anteriores para demonstrar cenários reais de aplicação dos conceitos de visão computacional. De início, o autor já apresenta como fazer o reconhecimento de código de barras por imagem. Na sequência, também demonstra como fazer o reconhecimento e rastreamento de um objeto por imagem, tomando por base uma mão humana. E de maneira fantástica, finaliza com exemplo de aplicação da técnica Chroma Key, em que você pode substituir uma cor do cenário por outra coisa qualquer, inclusive uma outra imagem de fundo.

 

Capítulo 10 - Introdução a SimpleCV. Destacando algumas das complexidades enfrentadas quanto ao uso de Python com OpenCV para a manipulação de imagens e realização de processos específicos, o autor apresenta então a biblioteca SimpleCV, mostrando como fazer sua instalação na Raspberry Pi, e demonstrando uma série de exemplos elaborados em capítulos anteriores, mas agora feitos usando SimpleCV, de modo a fazer o leitor perceber a grande "simplicidade" obtida com o uso da biblioteca com relação aos outros exemplos.

 

A Raspberry Pi é cada vez mais empregada em projetos acadêmicos, e até mesmo profissionais. Se você é um curioso de plantão em computação embarcada, precisa também saber que Visão Computacional é uma área em crescente ascensão.  Sabe o motivo? É porque esta área permite fazer com que as "coisas" enxerguem. Usando de conceitos de Visão Computacional, você pode controlar uma televisão com seus gestos, e seu computador pode ser destravado só de ver que você está em frente à tela, dentre as muitas aplicações possíveis e imagináveis. E este livro é a receita do bolo que irá alimentar as bases para você ser capaz de desenvolver tais aplicações.

 

E então? Gostou? Vá logo baixar o seu, antes que o tempo acabe!

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

André Curvello
Graduado em Engenharia de Computação com ênfase em Sistemas Embarcados pela USP, campus São Carlos, possui MBA em gestão de TI pela UNIFRAN e Mestrado em Ciências pela EESC-USP. Atua como Team Leader na PST Electronics - Pósitron, sendo também professor de pós-graduação e instrutor de cursos na área de sistemas embarcados. Como hobby, gosta de programar tudo que pode ser programado, escovando bits sempre ao lado de um bom café. Gosta de compartilhar seu conhecimento por meio de palestras, e publicando artigos como colaborador dos sites Embarcados e FilipeFlop. Em 2018 foi premiado como Microsoft Most Valuable Professional em Azure IoT pela Microsoft.

10
Deixe um comentário

avatar
 
4 Comment threads
6 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
5 Comment authors
VictorAmorim FranciscoAndre TenorioVinicius MacielPedro Henrique Bonifácio Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Victor
Visitante
Victor

Poderia enviar o livro no email: [email protected]

Amorim Francisco
Visitante
Amorim Aldimiro Orim

André poderias também me enviar o livro? esse é o meu e-mail:[email protected]

Pedro Henrique Bonifácio
Visitante
Pedro Henrique Bonifácio

André, você poderia me enviar o livro?

Vinicius Maciel
Visitante
vinifr

Caramba! Também queria esse 😀

Andre Tenorio
Visitante
( André Tenório )

Opa... mando tbm! rsrs... só mandar o contato Vinicius!

Vinicius Maciel
Visitante
vinifr

[email protected] ... Valeu André!

Andre Tenorio
Visitante
( André Tenório )

Ta na mão meu amigo! Bom divertimento!!!!

Andre Tenorio
Visitante
( André Tenório )

Ta na mão meu amigo! Bom divertimento!!! 🙂

Andre Tenorio
Visitante
( André Tenório )

Opa Pedro!! Posso sim!!! Manda o contato ai! 🙂

Andre Tenorio
Visitante
( André Tenório )

Baixando, mais um para coleção! 🙂 e de quebra treinando o inglês!