August 29, 2023

#161 - Chat with Renan Wille

 (English version at the bottom)

Tive o prazer de bater um papo com Renan Wille, engenheiro eletricista e especialista em visão computacional. Durante nossa conversa, discutimos sua trajetória profissional e alguns dos projetos nos quais ele trabalhou, além dos desafios em desenvolver soluções de visão computacional.

Nos primeiros anos da sua trajetória universitária, Renan logo percebeu haver duas vertentes principais na engenharia elétrica: energia de potência e telecomunicações. Entretanto, nenhuma dessas duas opções realmente capturava seu interesse. Devido a influências familiares, Renan cresceu imerso no mundo da fotografia profissional, desenvolvendo um profundo interesse pela técnica e pela física por trás dessa arte. Além disso, as tecnologias, e mais especificamente a computação, também despertavam sua curiosidade. Ao unir esses dois campos, fotografia e computação, Renan encontrou sua verdadeira paixão: a visão computacional. Ele teve a oportunidade de explorar esse campo pela primeira vez durante um projeto de iniciação científica em 2010.

O projeto orientado pela Doutora Giselle L. Ferrari teve duração de dois anos e tinha como objetivo desenvolver um pupilômetro para uso biomédico. Esse sistema englobava tanto a parte física, ou seja o hardware e a eletrônica, quanto o software embarcado e tinha como finalidade medir como a pupila dos olhos se dilatava em resposta à luminosidade de um flash de luz. Para realizá-lo, foi utilizado um flash de luz do tipo LED para estimular o olho, enquanto uma câmera de vídeo capturava a reação da pupila.

A gravação em vídeo começava dois segundos antes do flash, o qual durava dez milissegundos, e continuava até três segundos após o flash. Com o auxílio de um algoritmo personalizado, o sistema analisava automaticamente os dados coletados. Ele calculava o tempo de resposta e a demora até que a pupila começasse a se contrair, a demora até que a pupila atingisse sua máxima constrição e a amplitude do reflexo pupilar. Esse projeto foi apresentado em seminários técnicos e recebeu reconhecimentos, incluindo o prêmio de primeiro lugar em eventos de iniciação científica. Um dos maiores desafios encontrados ao longo do desenvolvimento do projeto foi realizar o desenvolvimento do sistema completo, desde a concepção eletrônica até o software embarcado que processa as imagens para obter as curvas de resposta da pupila.

No meio da faculdade, Renan teve outra grande oportunidade: ele foi aceito para participar de um programa de graduação sanduíche, que significava passar cerca de um ano e meio estudando em uma instituição de ensino na França com um estágio e bolsa de estudos. Além de aprender mais sobre a nova cultura e aprimorar seu conhecimento da nova língua, essa experiência também trouxe avanços significativos em sua formação técnica. As abordagens mais práticas do ensino foram particularmente valiosas. Renan teve a chance de frequentar aulas em laboratórios equipados com tecnologia de ponta. Essa imersão permitiu que ele compreendesse de maneira mais profunda alguns conceitos importantes da engenharia eletrônica, como, por exemplo, a transmissão de ondas eletromagnéticas.

Após voltar ao Brasil, Renan concluiu sua graduação e logo entrou no mercado de trabalho. Após um primeiro estágio em outra empresa, Renan ingressou na empresa onde está trabalhando até hoje. Essa empresa desenvolve, entre outros, dispositivos especiais para captura, processamento e identificação de imagens de placas veiculares usando reconhecimento óptico de caracteres. Essa também é uma área de aplicação do campo de visão computacional.

É importante destacar que Renan se formou em 2014, ou seja, durante os primeiros anos da revolução e disseminação dos modelos de aprendizado de máquina (AI). Em 2012, por exemplo, o artigo AlexNet marcou um avanço significativo nas capacidades de reconhecimento de imagem por meio de redes neurais convolucionais. Além disso, duas das bibliotecas mais populares especializadas em resolver problemas de visão computacional, a TensorFlow e o PyTorch, foram lançadas em 2015 e 2016, respectivamente. Antes dessas inovações, era comum recorrer a abordagens mais tradicionais para abordar tais problemas.

Um exemplo prático dos desafios que Renan enfrentou antes dessa revolução foi o uso extensivo da técnica de vetorização nas operações matemáticas dos seus modelos. Isso visava acelerar o processamento e permitir que a CPU realizasse cálculos em paralelo, reduzindo o número de instruções necessárias. Esse enfoque era especialmente relevante para operações que envolviam multiplicações de matrizes, onde a vetorização podia melhorar significativamente a eficiência do processamento nesse tipo de hardware.

Atualmente, Renan está focado em criar soluções de software robustas, principalmente para aplicações de visão computacional envolvendo a identificação de placas veiculares. Para atingir esse objetivo, ele valoriza a aplicação de abordagens de desenvolvimento de software modernas, como a implementação de um pipeline de Integração Contínua (CI). Essa abordagem proporciona a confiança de que qualquer alteração realizada no código-fonte cumprirá todas as funções planejadas e não causará problemas indesejados nos sistemas em produção. Algumas dicas que ele recomenda para criar um processo CI que seja robusto são: trazer todo o processo de geração do software para dentro do CI, ou seja desde a construção até os testes; incluir vários testes para os problemas encontrados no dia a dia que foram corrigidos, para evitar que ocorram novamente, utilizar solicitações de pull (pull request) e testar os códigos antes mesmo da entrada deles no repositório final e adicionar ferramentas automáticas para testar padronização nos códigos.

O campo das aplicações de visão computacional está em constante expansão, com um crescimento significativo e oportunidades incríveis em áreas como robótica e veículos autônomos. Com suas ricas experiências e conhecimentos teóricos e práticos nesse domínio, Renan está, sem dúvida, bem posicionado para causar um impacto significativo e contribuir para os avanços contínuos nesse setor em evolução.

-----

I had the pleasure of chatting with Renan Wille, an electrical engineer and computer vision specialist. During our conversation, we discussed his professional career and some of the projects he has worked on, as well as the challenges of developing computer vision solutions.


At the beginning of his university studies, Renan soon realized that there were two main branches of electrical engineering: power energy and telecommunications. However, neither of these really caught his interest. Due to family influences, Renan grew up immersed in the world of professional photography, developing a deep interest in the technique and physics behind this art. In addition, technology, and more specifically computing, also piqued his curiosity. By uniting these two fields, photography and computing, Renan found his true passion: computer vision. He had the opportunity to explore this field for the first time during a scientific initiation project in 2010.


The project, supervised by Dr. Giselle L. Ferrari, lasted two years and aimed to develop a pupilometer for biomedical use. This system included both the physical part, i.e. the hardware and electronics, and the embedded software, and its purpose was to measure how the pupil of the eye dilated in response to the brightness of a flash of light. To do this, an LED flash light was used to stimulate the eye, while a video camera captured the reaction of the pupil.


The video recording started two seconds before the flash, which lasted ten milliseconds, and continued until three seconds after the flash. With the help of a custom algorithm, the system automatically analyzed the data collected. It calculated the response time and the delay until the pupil began to contract, the delay until the pupil reached its maximum constriction and the amplitude of the pupillary reflex. This project has been presented at technical seminars and has received recognition, including a first place award at scientific initiation events. One of the biggest challenges encountered during the development of the project was developing the complete system, from the electronic design to the embedded software that processes the images to obtain the pupil response curves.


Halfway through college, Renan had another great opportunity: he was accepted to take part in a sandwich graduation program, which meant spending around a year and a half studying at a technical institution in France with an internship and scholarship. Besides gaining a deeper understanding of the new culture and enhancing his proficiency in the new language, this experience also led to substantial progress in his technical education. The more practical approaches to teaching were particularly valuable. Renan had the chance to attend classes in laboratories equipped with state-of-the-art technology. This immersion allowed him to gain a deeper understanding of some important electronic engineering concepts, such as the transmission of electromagnetic waves.


After returning to Brazil, Renan finished his degree and soon entered the job market. After a first internship at another company, Renan joined the company where he is still working today. This company develops, among other things, special devices for capturing, processing and identifying license plate images using optical character recognition. This is also an area of application in the field of computer vision.


It's important to note that Renan graduated in 2014, i.e. during the early years of the revolution and spread of machine learning models. In 2012, for example, the AlexNet scientific paper marked a significant advance in the image recognition capabilities of convolutional neural networks. In addition, two of the most popular libraries specializing in solving computer vision problems, TensorFlow and PyTorch, were released in 2015 and 2016, respectively. Before these innovations, it was common to use more traditional approaches to tackle such problems.


A practical example of the challenges Renan faced before this revolution was the extensive use of the vectorization technique in the mathematical operations of his models. This aimed to speed up processing and allow the CPU to perform calculations in parallel, reducing the number of instructions required. This approach was especially relevant for operations involving matrix multiplications, where vectorization could significantly improve processing efficiency on this type of hardware.


Renan is currently focused on creating robust software solutions, mainly for computer vision applications involving license plate identification. To achieve this goal, he values the application of modern software development approaches, such as the implementation of a Continuous Integration (CI) pipeline. This approach provides confidence that any changes made to the source code will meet all the planned functions and will not cause unwanted issues in the systems in production. Some of the tips he recommends for creating a robust CI process are: bring the entire software generation process into the CI, from construction to testing; include several tests for problems encountered on a day-to-day basis that have been corrected, to prevent them from occurring again; use pull requests and test the code before it enters the final repository; and add automatic tools to test for code standardization.


The field of computer vision applications is constantly expanding, with significant growth and incredible opportunities in areas such as robotics and autonomous vehicles. With his rich experiences and theoretical and practical knowledge in this domain, Renan is undoubtedly well-placed to make a significant impact and contribute to ongoing advances in this evolving sector.


Links:

> Renan's Website

> Projeto de iniciação cientifica:

Estudo de iluminação e estimulação de pupilômetro dinâmico 1

> Projeto do mestrado:

Reconhecimento de marca e modelo de veículos a partir de imagens

> TensorFlow 

> PyTorch

> AlexNet


No comments:

Post a Comment