domingo, 31 de dezembro de 2023

Visão Computacional 2023.1


Cursei Visão Computacional em 2023. A disciplina é muito importante e abrangente para ingressar apropriadamente nas áreas de aquisição, tratamento, interpretação de imagens e vídeos e tudo que está associado tais como redes neurais. Impossível abranger toda a área e aqui é somente uma visão super sumarizada. Para uma das várias opções mais aprofundadas tem a playlist com as aulas do Prof. Aldo von Wangenheim nas referência ao final do post.

Pois bem, para mim e num aspecto mais prático para um iniciante no campo de estudo, Visão Computacional independente de seus fundamentos, história, inovações pode ser dividida em três grandes abordagens: Classificação, Detecção e Segmentação de imagens. Vamos a cada uma delas.

Classificação de Imagens

A classificação de imagens é atribuição de categorias (ou designação ou rótulos) a objetos, dados ou fenômenos com base em suas características e atributos estão presentes na imagem. A Visão Computacional se propõe a extrair as melhores características das imagens com o intuito de classificar, detectar (localizar) ou segmentar (identificar) objetos. A aplicação de tal recurso é bastante ampla se propondo a resolver problemas nos múltiplos domínios tais como: Medicina, exploração de recursos (petróleo, minerais, etc), sensoriamento remoto, controle de qualidade, etc.

O processo de extração que se repetirá nas outras abordagens (detecção e segmentação) pode ser descrito como:

1. Obtenção do conjunto de dados e sua preparação (divisão em conjuntos de treinamento, validação e teste, augmentation, pré-processamento, etc);

2. Aplicação das técnicas de extração de características. Há muitas operações e formas de extrair características, aqui listo algumas poucas técnicas:

Análise de histograma (distribuição das cores e intensidade); Co-ocorrência de escala de cinza (características de textura); Padrão Binário Local (LBP - Características de textura); Histograma de Gradiente Orientado (HOG); filtros convolucionais, pooling, flattening em redes neurais profundas ou em combinação com redes rasas.

3. Validação dos resultados. Aqui busca-se garantir que os resultados sejam os mais legítimos possível não sofrendo de tendências decorrente do conjunto de dados enviesado. Assim diferentes técnicas e métricas são utilizadas tais como (algumas):

Técnicas de divisão dos dados são formas de garantir que os resultados automáticos obtidos foram legítimos e que o treinamentos entrega resultados melhores do que os resultados feitos por especialistas (custosos) : hold-out, cross-validation de vários tipos: K-folds, Stratified K-fold, Leave-p-out, Leave-one-out e Monte Carlo (shuffle-split) ou ainda uma combinação de hold-out e cross-validation

Métricas são valores numéricos pelos quais se interpretam quão bons são os resultados obtidos: acurácia, precisão, recall, f1-score (dice), intersection over union - IoU (índice Jaccard), sensibilidade, especificidade e a matriz de confusão.

Cada uma dessas técnicas ou recursos possui detalhamentos específicos que fogem ao escopo do post. Eles também não são obrigatórios ou exaustivos e podem ser recombinados de diferentes formas para ao final dentro do conjunto de dados se obtenha a classificação automática das imagens.

Pode ser encontrado no Kaggle (abordado neste post), diferentes desafios e datasets prontos para serem testados e assim se desenvolver o aprendização em Classificação de Imagens.

Detecção de Imagens

Enquanto a classificação de imagens se propõe a dizer o que tem na imagem, a detecção marca a localização do objeto, em geral destacando-o com um retângulo ou no jargão técnico uma bounding box. Esta bounding box deve conter todo objeto procurado independente da forma do mesmo. Daí técnicas de reconhecimento são aplicadas em imagens estáticas ou em vídeos de modo a localizar os objetos. Há bastante aplicações desta técnica em diversas áreas. 



Segmentação de Imagens

A segmentação vai além da classificação na medida em que não apenas identifica o objeto, mas também delimita sua forma e posição dentro da imagem. Essa abordagem tem aplicações cruciais em diversos campos. A segmentação desempenha um papel fundamental na capacidade de máquinas "interpretarem" o mundo visual como os humanos o fazem, o que a torna um tópico relevante em nosso cenário atual. Exemplificando:

Tipos de segmentação
A segmentação pode ser de 4 tipos:
Segmentação de bordas: A segmentação de bordas se concentra na detecção e delimitação das bordas dos objetos na imagem. Ela não atribui rótulos semânticos aos objetos.

Segmentação Semântica: Na segmentação semântica ocorre a atribuição de sentidos/significados a cada  pixel rotulado na imagem. 

Segmentação de instância: A segmentação de instância é um passo além da segmentação semântica, neste tipo se faz a separação de instâncias da mesma classe presente na imagem.

Segmentação panóptica: A segmentação panóptica é a união entre os objetos identificados nas segmentações anteriores.


==========

Referências

Playlist das videoaulas das disciplinas INE410121 - Visão Computacional, INE 5443 - Reconhecimento de Padrões e EEL110021 - Visão Computacional e Inteligência Artificial para Veículos Autônomos da UFSC  (português)

Dive into Deep Learning 

Computer Vision: Algorithms and Applications by Richard Szeliski

Deep Learning, by Goodfellow, Bengio, and Courville

Classification in Data Science

Feature Engineering for Computer Vision

O que são redes convolucionais: uma breve explicação (português)

Deep Learning Book (português)

Hold-out vs. Cross-validation in Machine Learning

An overview of semantic image segmentation

Semantic Segmentation — Popular Architectures

A 2021 guide to Semantic Segmentation

segunda-feira, 11 de dezembro de 2023

Meu time caiu para a segundona


Como brasileiro, óbvio que sempre fui exposto ao futebol, que inegavelmente é o esporte nacional. O futebol também é o principal esporte mundial. Duas forças no mesmo sentido que terminam por se somar em influência sobre as populações e que terminam por conquistar corações. Mas o futebol tem pouca tradição no meu Estado, não me recordo de haver clubes do meu estado na Série A do campeonato brasileiro de modo que depois de passar a torcer por vários clubes terminei por escolher o Santos Futebol Clube (Santos FC) há bastante tempo atrás.

O Santos FC foi fundado em 1912 (não vou entrar em detalhes pois a história do clube está muito bem coberta por diversos sites na internet) em Santos, São Paulo. A cidade de Santos tem sua pujança e desenvolvimento muito em consequência do Porto de Santos, fundado em 1892, é o principal porto público brasileiro.

O clube de futebol ao longo da sua história teve maior glória nos anos 1960 quando contava com jogadores que tornaram o time o maior time de futebol do mundo. Nessa era de ouro o Santos contava com o maior jogador de todos os tempos - Pelé - que foi revelado e mantido no clube por 19 anos (1956 a 1974). O ataque do Santos chamado de o ataque dos sonhos era formado por Dorval, Mengálvio, Coutinho, Pelé e Pepe. As estatísticas são descomunais (veja sites no fim do texto).

Após o fim da era Pelé, o Santos amargou anos sem levantar troféus até que as novas gerações de jogadores da base do Santos surpreenderam os grandes clube do Brasil nos anos 1978, 1983-1984, 1995, 1998, 2002-2004 e 2010-2012.

O maior dos esquadrões !

Críticos e detratores do clube dizem que seus torcedores são zumbis saudosistas de uma era que não ocorrerá novamente. Porém ao verificar a trajetória do Santos FC, qualquer um verá que nenhum time fora de uma grande capital brasileira jamais fez frente aos times das capitais brasileiras que sempre tiveram mais verbas, audiência, contratos e torcida. O Santos era sempre um incômodo aos grandes times, e por muitas vezes superando-os. Então não se trata somente de velhinhos nostálgicos.

Entretanto no dia 6/12/23, o Santos teve um grande revés, foi pela primeira vez rebaixado a Série B do Campeonato Brasileiro - a famosa segundona - Além da vergonha do rebaixamento, o Santos terá um ano sem jogar com os principais clubes brasileiros, perda de visibilidade, audiência, contratos e pode se tornar somente um clube comum do interior do país que uma vez colocado entre os coadjuvantes nunca mais retornam. Confesso que as alegrias que tive pelo clube não foram tão mais intensas que esta tristeza pela queda, tanto que nunca me animei a escrever suas glórias e conquistas. As experiências de intensidade negativa são mais marcantes do que as positivas. C'est la vie ! 


O rebaixamento infelizmente foi quase a confirmação dos sinais que o time já demonstrava durante os dois últimos anos em que a formação foi tão ruim, com resultados tão fracos que seria difícil se manter na elite do futebol brasileira. 

A culpa, claro, é do time que estava em campo ao longo do Campeonato Brasileiro, mas também dos vários técnicos que não conseguiram montar um time vencedor, e principalmente da diretoria lenta e ineficiente não conseguiu refazer o time diante dos resultados pífios anteriores e só se conformava com o prenúncio do rebaixamento.

Como torcedor, sofro pelo resultado, mas entendo que o time em campo foi ruim o suficiente e não somente durante só uma partida mas durante todas as 17 rodadas em que o time foi derrotado e nas 10 em que empatou, com saldo negativo de 25 gols e podendo não cair foi derrotado nas três últimas rodadas vindo a confirmar a queda na última rodada graças a vitórias de outros times e nunca por mérito próprio.

Continuo torcedor, vestindo a camisa e torcendo para o Santos volte a temporadas melhores. Já a instituição Santos FC tem que aprender com essa derrota, levantar a cabeça e encarar um 2024 mirrado de oportunidades para se destacar. Tem que implodir e recomeçar. Trabalhar para voltar a elite em 2025 com qualidade e não mais ficar correndo risco de ser rebaixado novamente.

=======

Links de referência