/vision

Primary LanguageJupyter Notebook

banner cnns ppgcc ufsc

Creative Commons 4.0 License Jupyter Version Python Version

Computer Vision Notebooks

Este repositório possui os blocos de notas, os dados para exercícios e os modelos de rede neural para o seguinte conjunto de disciplinas de visão computacional ministradas pelo Departamento de Informática e Estatística na e pela UFSC:

  • INE 5443 Reconhecimento de Padrões (graduação em Ciências da Computação UFSC)
  • INE 58XX Processamento Digital de Imagens (graduação em Ciências da Computação UFSC - currículo novo)
  • INE410121 Visão Computacional (PPGCC pós-graduação stricto sensu oferecida como disciplina remota para toda a UFSC e também alunos especiais de outras universidades)
  • EEL110021 Visão Computacional e Inteligência Artificial para Veículos Autônomos (PPGCC pós-graduação lato sensu oferecida em cursos de especialização externos)

Assista no YouTube a playlist da disciplina

Os blocos de notas foram construídos da forma mais didática possível, sempre referenciando o material didático e as fontes e razões para cada exercício.

Na parte de Visão Computacional Clássica nós tentamos, na medida do possível, utilizar as bibliotecas mais comuns de visão computacional como scikit e OpenCV, integrando rotinas de terceiros quando entendemos que o resultado era mais didático ou de melhor qualidade. Todo o material de terceiros foi reproduzido neste repositório, referenciando-se as fontes, tornando o repositório assim independente de fontes externas além das bibliotecas padrão. Algumas rotinas implementadas por OpenCV são notoriamente ruins e infelizmente não foram melhoradas ao longo dos mais de 10 anos em que esta biblioteca tem sido amplamente utilizada. Infelizmente isso se reflete nos resultados e melhorá-los implicaria em reimplementar várias coisas, o que entendemos foge ao escopo de um material didático como este.

Na parte de Visão Computacional com Aprendizado Profundo nós tentamos manter os exemplos o mais didáticos possíveis e por isso nos limitamos à biblioteca PyTorch para a implementação dos nossos notebooks. Alguns exemplos básicos utilizam a API de alto nível fast.ai, que constrói sobre PyTorch. Entendemos que isto contribui para a didática do exemplo, facilita a compreensão do iniciante e não torna o exemplo menos reprodutível. Quando há implementações em PyTorch realizadas por grupos de pesquisa bem estabelecidos de determinados modelos ou enfoques, como as últimas versões de YOLO, DETECTRON ou PADDLE-PADDLE, nós utilizamos código proveniente destas fontes. Todos os conjuntos de dados utilizados para o treinamento das redes neurais são provenientes do nosso grupo de pesquisa ou de outros grupos de pesquisa na UFSC.

Referências:

Agradecimentos e reconhecimento

Um material didático desta abrangência e com este volume de código e evidentemente não é produto de uma pessoa só, mas sim o resultado da colaboração de muitas pessoas. Quero agradecer e reconhecer em especial a colaboração dos seguintes alunos e colegas:

Aldo von Wangenheim (aldo.vw@ufsc.br)

banner Creative Commons INCoD UFSC