Agenda do Curso

  • O objetivo da disciplina é apresentar os principais conceitos envolvidos na análise e reconhecimento de formas em problemas 
    de visão computacional. 
    
    A disciplina deverá apresentar, de maneira integrada e conceitual, muitas das técnicas mais avançadas e poderosas para a 
    análise de formas, permitindo que o aluno seja capacitado a testar e usar o material apresentado. Aplicações implementadas em 
    smartphones serão criadas pelos estudantes.
    
    Ementa: https://uspdigital.usp.br/jupiterweb/obterDisciplina?sgldis=MAC0447&codcur=45052&codhab=1

  • 7 agosto - 13 agosto

    Capítulo 1 do Shape analysis. 

  • 14 agosto - 20 agosto

    Capítulos 2 e 3 do Shape analysis. 

    • Crie um JN que simule os processos de amostragem (espacial) e quantização (radiométrica) em sinais 1D e 2D, conforme explicado em sala de aula. Você deve calcular e realizar a visualização de plot 1D para sinais 1D e visualização de imagens e de superfícies para sinais 2D.  Use os seguintes sinais:

      • f(t)  = sen(t), t em [0,...,2pi) para N pontos. Use dados float e simule a quantização para 10  casas decimais, 5, 3 e 1. 
      • f(x,t) = sen(t), t em [0,...,2pi), x = [0,..., N), onde N é o número de linhas da imagem. Use dados float e simule a quantização para 10  casas decimais, 5, 3 e 1.
      • f(x,y) sejam algumas imagens disponíveis no Scikit Image. Use dados unint8 e simule a quantização para 5 bits, 3, 2 e 1.

      Para a amostragem, calcule a média das amostras para reduzir a resolução. No caso 1D, média de vizinhos consecutivos. No caso 2D, média de cada 4 vizinhos.  Gere amostragens para resoluções N, N/2, N/4, N/8.

      Separe os casos 1D e 2D no JN.

      Separe as funções para geraSinal(N,w), amostragem(sinal) e quantizacao(sinal), conforme discutido em aula.


  • 21 agosto - 27 agosto

    Capítulos 2 e 3 do Shape analysis: continuação. Topologia discreta. Transformações de intensidade (operações pontuais). Histogramas.


    • Crie um JN que leia imagens do Scikit Image e aplique transformações de intensidade definidas por:

      • T(r) produz o negativo de uma imagem.
      • T(r) = r + k, em que k é uma constante inteira. Teste valores crescentes de k. Teste também com valores negativos.
      • T(r) = log(r)
      • T(r) = exp(r)

      Use imagens UINT8. Tome cuidado de verificar os limites mínimo e máximo permitidos por essa representação, saturando os níveis de cinza. Faça a visualização das imagens e dos histogramas respectivos, antes e depois da transformação.

  • 28 agosto - 3 setembro

    Convolução

    • Crie um JN que calcule a convolução para os casos definidos pelo produto cartesiano dos sinais e filtros abaixo (ie todos os pares):

      Sinais de entrada:

      1. g(t) = 1, a <= t < b; 0 caso contrário, a,b reais, a<b (janela quadrada)
      2. g(t) = sin(t) + GaussianNoise(media, desvioPadrao) (seno com ruído gaussiano)
      3. g(t) = linha de uma imagem do Scikit Image, como feito no 1o exercício do curso.


      Filtros:

      1. h(t) = 1 caso a <= t < b; 0 caso contrário, a,b reais, a<b (janela quadrada)
      2. h(t) = exp(-t**2) (gaussiana)
      3. h(t) = -1 caso -a <= t < 0; -1, 1 caso 0 <= t < a; 0 caso contrário, a real (filtro de diferenciação)

  • 4 setembro - 10 setembro

    Não teremos aula.

  • 11 setembro - 17 setembro

    Propriedades da convolução e da correlação. Template matching. Casos 2D.

  • 18 setembro - 24 setembro

    Transformada de Fourier. Fourier e convolução. Segmentação de imagens e detecção de bordas.

  • 25 setembro - 1 outubro

  • 2 outubro - 8 outubro

  • 9 outubro - 15 outubro

  • 16 outubro - 22 outubro

  • 23 outubro - 29 outubro

    Transformada de Fourier. Fourier e convolução. Segmentação de imagens e detecção de bordas.

    • Crie um JN que calcule a convolução f(t) = g(t)*h(t) para os casos definidos pelo produto cartesiano dos sinais g(t) e filtros  h(t) abaixo (ie todos os pares). Seu JN deve calcular a convolução no domínio da frequência usando o Teorema da Convolução. Deve também comparar os resultados de f_convolucao(t) e f_fourier(t), em que f_convolucao é a convolução calculada no domínio do tempo e f_fourier é a convolução calculada por meio do Teorema da Convolução. 

      Faça a visualização das partes reais, imaginárias, módulo e fase das transformadas de Fourier F(w), G(w) e H(w). Não se esqueça de extrair a parte real de f_fourier, pois a IFFT pode produzir ruídos na parte imaginária devido à aritmética de ponto flutuante com números complexos. 

      Sinais de entrada:

      1. g(t) = 1, a <= t < b; 0 caso contrário, a,b reais, a<b (janela quadrada)
      2. g(t) = sin(t) + GaussianNoise(media, desvioPadrao) (seno com ruído gaussiano)
      3. g(t) = linha de uma imagem do Scikit Image, como feito no 1o exercício do curso.


      Filtros:

      1. h(t) = 1 caso a <= t < b; 0 caso contrário, a,b reais, a<b (janela quadrada)
      2. h(t) = exp(-t**2) (gaussiana)
      3. h(t) = -1 caso -a <= t < 0; -1, 1 caso 0 <= t < a; 0 caso contrário, a real (filtro de diferenciação)

  • 30 outubro - 5 novembro

  • 6 novembro - 12 novembro

  • 13 novembro - 19 novembro

    Entrega e relato em aula da primeira parte do EP: Aplicativo - Aquisição de imagens e formação do dataset.

  • 20 novembro - 26 novembro

  • 27 novembro - 3 dezembro

    Entrega e relato em aula da segunda parte do EP: Jupyter Notebook - Processamento, segmentação e aprendizado do classificador.

  • 4 dezembro - 10 dezembro

  • 11 dezembro - 17 dezembro

    • O enunciado do exercício está no pdf abaixo. O projeto deve ser desenvolvido individualmente. A entrega consiste em um pdf do relatório e um vídeo curto de apresentação dos resultados do projeto postado no YouTube.