Popularizando a visão computacional: revoluções recentes que possibilitaram seu uso em larga

Não é novidade que a visão computacional está cada vez mais presente em nossa rotina, como já citado em artigos do tema no nosso blog. É importante salientar que a grande aplicabilidade atual da visão computacional é fruto de um contexto tecnológico favorável. Neste texto vamos abordar alguns avanços recentes que permitiram expandir o uso da visão computacional ao patamar que estamos atualmente.

Tecnologias de visão em sistemas embarcados tiveram uma proliferação significativa desde o início dos anos 2000, permitindo o surgimento de arquiteturas de sensores imageadores de alta performance e com custo reduzido. As câmeras digitais tiveram melhorias significativas em especificações como resolução, taxa de quadros e eficiência energética. Essas melhorias permitiram um aumento no número de aplicações possíveis nas áreas de inspeção e automação industrial.

Conteúdo

Avanços na visão computacional

A mudança tecnológica mais significativa nos sensores de imagem é a mudança da tecnologia CCD para CMOS, entre as décadas de 1990 e 2000. Os sensores CMOS resultaram em melhorias principalmente na resolução e na taxa de quadros das imagens adquiridas, com uma redução no nível de ruído e no consumo energético, tornando-se assim os sensores mais comuns no mercado.

Estas inovações tecnológicas permitiram que a visão computacional passasse cada vez mais da área de pesquisa acadêmica para o uso industrial e comercial. Na década de 2000 aparelhos celulares começaram a ser produzidos com câmeras embarcadas, e com a popularização dos smartphones a visão computacional começou a estar mais presente para a população. O maior número de sensores e usuários aumentou a aquisição de imagens para bancos de dados, e também popularizou o uso direto de algoritmos de visão computacional por meio de aplicativos.

Além das câmeras, outros sensores de aplicação mais específica (como câmeras industriais, câmeras infravermelho e hiperespectrais radares, sensores orbitais, sensores LiDAR, raio-x, ultrassom e sensores magnéticos) também tiveram avanços tecnológicos significativos nas últimas décadas, com seu custo de produção também sendo reduzido e seu uso sendo mais disseminado. Além da maior facilidade na aquisição, há um número crescente de bancos de imagens de cada sensor, facilitando o desenvolvimento de aplicações envolvendo visão computacional.

Linguagens de Programação

No campo do desenvolvimento, diversos avanços têm ocorrido na academia nos últimos anos colaborando para o surgimento de algoritmos de inteligência artificial capazes de realizar tarefas como detecção de objetos e segmentação de imagens de forma mais precisa e com menor custo computacional. Pode-se citar o desenvolvimento de redes neurais convolucionais como a Mask R-CNN e a YOLO v3.

Diversas linguagens de programação atualmente, como Python, Julia, R e Java, possibilitam desenvolver modelos de inteligência artificial, com cada linguagem tendo vantagens específicas dependendo da aplicação. Destas linguagens, pode-se citar o Python como a linguagem mais popular, graças à sua grande quantidade de ferramentas e bibliotecas open source e por sua fácil interpretação e integração com outras linguagens. Bibliotecas open source como PyTorch, TensorFlow, Keras, Pandas e Scikit-Learn tornaram mais acessíveis os processos de manipulação e análise de dados, bem como a construção de modelos de machine learning e deep learning, multiplicando o número de modelos em desenvolvimento na área.

Programação

Dados e armazenamento na visão computacional

Outros avanços importantes na área envolvem um aumento significativo na capacidade de processamento. O grande limitante para o uso de inteligência artificial antes da virada do século era a falta de poder de armazenamento e processamentos dos computadores. A lei de Moore estima que a memória e velocidade dos computadores dobra a cada ano, e atualmente as máquinas tornaram-se poderosas o bastante para que essas aplicações sejam possíveis.

Atualmente temos computadores capazes de armazenar grandes quantidades de dados, o que permite aplicações mais precisas sem que os algoritmos tenham que necessariamente melhorar. Algoritmos de deep learning melhoram sua performance ao receber uma maior quantidade de dados, e máquinas com conexões à internet cada vez mais rápidas permitem o acesso a bancos de dados de toda a rede. Também é possível utilizar a rede para realizar as tarefas de processamento de forma remota, não necessitando assim adquirir processadores de grande capacidade computacional. É cada vez mais frequente a oferta de serviços de cloud computing como o Azure da Microsoft e o Amazon Web Services para aplicações com grande demanda computacional.

Entretanto, às vezes são necessárias aplicações em ambientes de infraestrutura mais precária e nem sempre pode-se contar com conexão à internet. Por causa desse tipo de limitação que tecnologias de edge computing também são comuns atualmente. Tecnologias de edge computing referem-se a máquinas capazes de realizar todas as tarefas de processamento e análise dos dados no local onde eles são coletados, podendo este local ser, por exemplo, uma tubulação de gás, maquinário industrial, um motor de avião ou um equipamento de ressonância magnética. O edge computing também facilita aplicações que necessitem de processamento em tempo real e baixa latência, como o uso de realidade aumentada e virtual, e pode com o tempo reduzir a demanda de datacenters para o uso de cloud computing.

Utilizações de visão computacional e I.A

Junto do edge computing, Unidades de Processamento Gráfico (GPUs) cada vez mais poderosas e com preços acessíveis têm surgido, permitindo diversas aplicações de visão computacional. Há soluções específicas para aplicações de visão computacional como plataformas de desenvolvimento embarcadas com GPU integrada (como a série Jetson da Nvidia), possibilitando a criação de plataformas de visão computacional integradas de fácil portabilidade. Pode-se utilizar estes equipamentos para integrar soluções de visão computacional em equipamentos como veículos autônomos ou drones. O uso de drones têm trazido importantes vantagens em tarefas como vigilância de grandes áreas, como plantações, áreas de construção civil, linhas de transmissão e rodovias. Implantar soluções de visão computacional nessas tarefas pode representar grandes ganhos de eficiência e precisão nas análises.

Com a grande velocidade com que estes avanços tecnológicos têm surgido, é difícil prever quais inovações irão surgir nos próximos anos e décadas. O que pode-se dizer é que há uma tendência da inteligência artificial estar cada vez mais presente em diferentes partes da nossa rotina. Há a expectativa por serviços como carros autônomos e casas inteligentes há alguns anos, e graças à inteligência artificial eles estão cada vez mais próximos de se tornarem uma realidade. Onde houver demanda no mercado para soluções mais seguras e eficientes, é seguro apostar que a inteligência artificial irá suprir essa demanda mais cedo ou mais tarde.

Compartilhe este artigo:
Artigos Relacionados