·

Engenharia Elétrica ·

Processamento Digital de Sinais

Send your question to AI and receive an answer instantly

Ask Question

Recommended for you

Preview text

RECONHECIMENTO DE PADRÕES Marcelo da Silva dos Santos Convolução Objetivos de aprendizagem Ao final deste texto você deve apresentar os seguintes aprendizados Definir convolução e seus tipos Reconhecer as principais operações de convolução Explicar a extração de características em imagens Introdução A convolução é uma operação matemática empregada em processa mento de imagens digitais Consiste em sobrepor a imagem original e um filtro específico passando em seguida à convolução em si a soma da multiplicação de cada pixel pelo valor do elemento do filtro de mesma posição espacial Para destacar determinada caraterística como bor das compensar uma eventual redução inicial no tamanho ou alterar a disposição dos pixels podemos empregar operações de convolução específicas como padding flattening pooling entre outras Neste capítulo você vai conhecer o processo de cálculo convolucional e seus tipos além das principais operações de convolução e extração de características de imagens 1 Conceitos de convolução Convolução é um conceito da matemática com aplicações recorrentes entre vá rias áreas de conhecimento computacional como redes neurais processamento de imagens digitais e processamento de sinais por exemplo GONZALEZ WOODS 2010 Matematicamente podemos compreender a convolução como uma operação linear cujo resultado deriva da soma do produto entre duas funções do mesmo contexto É portanto uma superposição de duas funções ao longo de toda sua área tecnicamente defi nida como integral de superposição com número de operações fi nitas Assim a convolução pode ser expressa discretamente substituindo a operação integral de caráter contínuo pelo operador somatório como apresentado na Equação 1 O símbolo simboliza a operação de convolução já a operação de multiplicação é representada por um ponto Em processamento de imagens digitais são aplicados dois conceitos matemáticos importantes e que estão relacionados com a filtragem espacial correlação e convolução Ambos executam o mesmo procedimento de soma de produtos exceto que o kernel filtro é antes espelhado antes do cálculo rotacionada em 180º O que a operação de convolução faz em termos práticos é inverter uma das funções rotacionandoa a 180º Equação 2 gn i e movendoa repetir para cada posição na iteração do somatório ao longo de toda a área todos os valores da função da outra fi e somar o resultado dos produtos a cada passo fign i da movimentação Equação 2 Podemos ver um passo da iteração na Figura 1 Figura 1 Cálculo da convolução somatório dos produtos entre os elementos da função f e função g Fonte Wikipedia 2020 documento online No caso de duas imagens sendo que ambas serão expressas na forma de matrizes de pixels a convolução inverteria a menor matriz e a moveria do pri Convolução 2 meiro ao último pixel da matriz maior Em cada momento seriam computados os resultados do produto escalar entre eles Equações 3 e 4 Contudo cada elemento da matriz f não corresponde aos pixels da imagem em sua devida posição a imagem ainda está expressa em forma de matriz Assim para garantir um produto escalar que seja equivalente ao somatório da Equação 2 a matriz f é transformada em uma matriz e preenchida com nulos e índices suficientes de valores da função f a fim de igualar em tamanho as matrizes f e g Do mesmo modo a matriz g é preenchida com valores nulos para que tenha o mesmo comprimento da matriz original f NORVIG RUSSELL 2013 Equação 3 h f g Equação 4 Na literatura sobre processamento de imagens digitais você provavelmente encontrará os termos filtro de convolução máscara de convolução ou kernel de convolução para denominar essa segunda função a matriz menor Como regra esses termos são utilizados para expressar um filtro espacial Também a expressão realizar a convolução de uma máscara com uma imagem cos tuma ser utilizada para expressar esse processo de deslocamento e soma dos produtos que você acabou de acompanhar GONZALEZ WOODS 2010 O kernel normalmente tratase de uma matriz menor com valores para metrizados com a finalidade de buscar por determinados padrões na imagem de entrada O processo é executado sobrepondo as matrizes alinhadas com seus pixels iniciais e depois efetuase o cálculo anteriormente apresentado em que cada elemento do kernel é multiplicado pelo elemento de mesma posição na região da imagem original naquele instante Observe na Figura 2 a operação de convolução entre as funções de entrada e kernel O resultado é a função de saída a imagem filtrada 3 Convolução Figura 2 Operação de convolução entre as funções de entrada e kernel Ao final de cada movimento também chamado de stride somamse os resultados dessas multiplicações para ter um único valor como saída Esse valor será o pixel correspondente na imagem filtrada Normalmente o stride possui o valor 1 o que significa que a transformação será aplicada em todos os pixels da imagem pulando uma posição a cada movimento Dependendo da necessidade podemos controlar a velocidade a precisão e o tipo de padrão detectado na imagem alterando as características da função de convolução e utilizando diferentes kernels Por exemplo a velocidade da filtragem pode ser controlada alterando a quantidade de pixels deslocados em cada avanço aumentando o stride conforme a Figura 3 Convolução 4 Figura 3 Aumento no stride da convolução Na Figura 3 você pode ver uma demonstração de operação de convolução com stride diferente de 1 Na segunda imagem é apresentada a camada de entrada e dois passos de uma convolução com kernel de 33 e um stride de duas posições Já as bordas em vermelho são perdidas devido à natureza dessa operação O uso de diferentes valores para um kernel vai depender do objetivo final para a filtragem Dentre as diversas funções podemos citar como recorrentes a detecção de bordas edge detection o desfoque blur a nitidez sharpen como podemos observar na Figura 4 5 Convolução Figura 4 Diferentes construções de kernel e seu resultado no processamento da imagem Fonte Adaptada de Wikipedia 2020 Na escolha destes parâmetros devem ser pesados o custo e o benefício Em alguns casos um resultado rápido pode ser interessante especialmente para os ambientes em que há muita variação entre uma imagem e outra ou entre os tipos de características buscadas a cada momento Em outros a precisão e os detalhes do que se pretende encontrar em uma imagem serão a prioridade e portanto é interessante que o avanço stride seja o menor possível Já a camada de atributos resultante da operação de convolução terá para cada dimensão da matriz um tamanho igual à Equação 5 Convolução 6 onde DI dimensão da imagem DK dimensão do kernel P padding S stride Em uma convolução convencional a quantidade de parâmetros e operações para processar todos os canais ou os mapas de atributos é igual à Equação 6 operaçõesconv NKLMAMLKAKM onde NK quantidade de kernels utilizados L largura A altura LM quantidade de iterações na direção do comprimento da imagem ou do mapa de atributos resultante das convoluções AM quantidade de iterações na direção da altura da imagem ou do mapa de atributos resultante das convoluções M profundidade da matriz de entrada canais da imagem ou quantidade de mapas de atributos Já para matrizes ou imagens quadradas os valores de A e L serão iguais tanto para o kernel e o mapa de atributos resultante como para a imagem Nesse caso podese utilizar a Equação 7 operaçõesconv NKD2 MD2 KM onde DM tamanho das dimensõeslados do mapa de atributos resultante DK tamanho das dimensõeslados do kernel Para um processo de convolução convencional a quantidade de canais ou de mapas de atributos convolucionados em camadas mais profundas aumentará consideravelmente a quantidade de operações de soma e multiplicação execu tadas Desse modo a quantidade de parâmetros pesos e vieses será elevada 7 Convolução Até aqui você conheceu os conceitos básicos do cálculo convolucional e seus principais elementos A próxima seção tratará dos tipos de convolução e algumas das suas principais operações 2 Tipos e operações de convolução Agora que você conhece o cálculo convolucional e os conceitos básicos como kernel stride e matrizes de convolução o próximo passo é abordar os tipos de convolução e algumas das principais operações Convolução bidimensional Dentre os tipos de convolução esse é o tipo mais comum Seu processo é exatamente o mesmo descrito na seção anterior Tratase de uma convolução de duas dimensões que varia no tamanho do kernel e stride processando uma matriz de pixels de entrada de apenas um canal somente uma cor A função de convolução bidimensional também é conhecida como convolução 2D Podese utilizar a convolução 2D para processar imagens coloridas com três ou mais canais a diferença é que em vez de usar os mesmos kernels para todos esses canais cada cor deve ter um kernel desenhado especificamente para ele ainda que tenha a função de buscar características iguais ao outro kernel utilizado para outra cor Portanto cada característica precisa ter um impacto diferente nos diversos canais de cor e o mesmo ocorre com o kernel mas infelizmente isso implica no cálculo de mais pesos e vieses A convolução 2D costuma exigir bastante processamento o que geralmente é compensado ao reduzir o tamanho do kernel e aumentar o tamanho do stride mas o resultado terá uma precisão menor porque a quantidade de informação na entrada dos filtros é menor Outra solução é utilizar imagens na escala de cinza reduzindo a quantidade de canais e o número de kernels diferentes o que implica na redução da sua eficiência Convolução tridimensional Em vez de realizar a convolução para apenas um canal a convolução tridi mensional 3D a relaciona com a camada seguinte entre os pixels vizinhos vertical horizontal e profundamente conectando os pixels de mesma posição em outros canais Convolução 8 Convolução dilatada Quando é necessário aumentar a área coberta pelo kernel mas não se pode elevar o tamanho deste porque a quantidade adicional de parâmetros impac taria muito na performance do treinamento ou na execução da rede neural expandese a matriz de convolução adicionando um espaço entre os elementos do kernel chamado de taxa de dilatação A quantidade de parâmetros envolvi dos ainda seria a mesma do tamanho original do kernel mas seu contexto de abrangência a cada iteração na imagem será maior uma vez que cada célula do kernel está associada a uma posição mais distante da matriz que o pixel imediatamente vizinho Convolução dilatada é o nome dado a esse processo em que toda a matriz será mapeada porque o kernel ainda se move ao longo da matriz de entrada a diferença é que a abrangência dele foi ampliada e mais detalhes do contexto foram absorvidos na mesma iteração Esse procedimento será especialmente útil para as imagens de alta definição em que um kernel pequeno seria insufi ciente para extrair as características necessárias ao passo que aumentar o seu tamanho impactaria em mais parâmetros a serem calculados Da mesma forma reduzir a resolução da imagem desperdiçaria uma quantidade significativa de informação e a possibilidade de obter um resultado mais satisfatório Na prática a convolução dilatada cria um campo receptivo maior que a área do kernel que obedecerá a Equação 8 p n d n 12 onde p quantidade de pixels do campo receptivo n tamanho do kernel Por exemplo para um kernel 33 o tamanho é 3 d taxa de dilatação a distância entre cada elemento do kernel Convolução separável A convolução separável por sua vez divide o processo em duas etapas entre ca madas de profundidade dos diferentes mapas de atributos ou canais de entrada depthwise e entre pontos pointwise Assim há dois momentos de convolução um executa a convolução convencional para cada canal individualmente e o outro executa uma convolução para cada pixel do mapa de atributos em conjunto com o pixel de mesma posição de mapas dos demais canais Para que 9 Convolução as camadas se relacionem entre si da mesma forma que ocorria na convolução convencional executamse vários kernels de dimensão unitária tanto para a largura quanto para o comprimento Esperase ainda que sejam obtidos os mesmos resultados mas em vez de mesclar os canais com o kernel maior usado para detectar diferentes carac terísticas e com pesos diferentes entre cada canal o mesmo kernel pode ser utilizado para esses canais e ponderado ao final por diversos kernels unitários que os interligam A diferença na quantidade de operações entre a convolução convencional e a separável será proporcional à quantidade de kernels e ao tamanho deles Quanto maiores forem esses parâmetros maior será a economia computacional obtida pela convolução separável Convolução transposta Ao executar uma convolução haverá uma redução no tamanho da matriz de saída se comparada à matriz de entrada Ampliar novamente o tamanho da saída necessitaria de uma camada de unpooling ou se poderia efetuála de maneira direta utilizando uma convolução transposta Na convolução transposta a entrada é ampliada nas extremidades para compensar o tamanho do kernel e do stride que reduziriam a saída Na prática essa convolução tem alguns passos a mais para compensar a quantidade de linhas e colunas que seriam perdidas Operações de convolução As operações de convolução são utilizadas em conjunto com outras técnicas para ativação de determinada tarefa extração de características redução do mapa de atributos entre outras fi nalidades que permitem a extração de melhores características da imagem O principal objetivo dessas operações é o aumento da efi ciência no processo de classifi cação Agora você vai conhecer algumas das principais operações de convolução pooling flattening padding e ReLU Tais funções são utilizadas em conjunto com o cálculo da convolução Pooling A função de pooling é utilizada para simplifi car a informação de uma matriz reduzindo o seu tamanho dividindoa em regiões de tamanho prédeterminado geralmente uma matriz de 22 realizando o movimento de convolução com Convolução 10 stride de 2 considerando as dimensões do kernel A cada movimento apenas um dos pixels é selecionado para representar a região Isso causa um efeito imediato na dimensão do mapa de caraterísticas Por exemplo para uma entrada de 2424 a saída será 1212 A seleção do pixel resultante do pooling pode considerar diferentes critérios Entre eles os mais comuns são o critério de máximo max pooling e o critério da média average pooling Observe a Figura 5 Figura 5 Matrizes resultantes do processo de max pooling e average pooling A operação de max pooling retira o pixel de maior intensidade maior valor do local onde o kernel se encontra a cada movimento considerando o tamanho desse kernel Já no average pooling o valor que representa cada região como a única célula na nova matriz fica igual à média dos elementos na região original MAZZA 2017 Flattening Já a função de fl attening transforma a matriz de entrada em um vetor no qual cada elemento é empilhado Essa operação costuma ser utilizada em aplicações de rede neural por exemplo que em sua entrada recebem os dados nesse formato oriundos da saída da última camada de pooling para ligar o resultado das camadas convolucionais que serão interligadas a uma rede neural totalmente conectada a fi m de que a imagem seja classifi cada acionando as respectivas saídas MAZZA 2017 Por exemplo uma matriz de 66 gerará um vetor de 36 posições Observe a Figura 6 11 Convolução Figura 6 Matriz resultante do processo de flattening Padding O processo de padding adiciona pixels ao redor da imagem antes de iniciar a convolução Esse passo tem a intenção de manter as proporções da imagem ao fi nal do processo O emprego dessa técnica evita a possível perda de detalhes importantes para a classifi cação do mapa de características resultante do processo de convolução Observe a Figura 7 Figura 7 Matriz resultante do processo de padding Convolução 12 ReLU ReLU Rectifi ed Linear Unit é uma função de ativação muito utilizada tam bém em classifi cadores de rede neural Sua principal função é transformar os pixels do mapa de atributos utilizando uma função não linear com o objetivo de evitar que o aprendizado se torne demasiadamente lento por dispersar bastante o sinal após sua passagem entre as camadas Para efeito de cálculo diferentes funções podem ser usadas dependendo das necessidades como a sigmoide e a tangente A ReLU matematicamente é descrita pela expressão y max0 x 3 Extração de características Características são informações relevantes para o processamento de imagem digitais São regiões que representam informações como bordas variações de intensidade ou padrões que podem servir de base para classifi car e comparar diferentes imagens Tais características podem ser utilizadas em diversas aplicações como identifi car uma pessoa em um local público catalogar fotos em uma rede social ou auxiliar um veículo a estacionar de forma autônoma A identifi cação biométrica Figura 8 é amplamente utilizada desde o registro de documentação civil até destravar o telefone celular Figura 8 Reconhecimento biométrico Fonte Zuccherato 2019 documento online 13 Convolução Geralmente a extração das características é uma etapa de uma arquitetura maior aplicando técnicas de inteligência artificial IA para classificar e comparar os padrões catalogados A extração de características pode servir de base para a classificação das imagens em classes como no reconhecimento de texto seja na tentativa de evitar fraudes em assinaturas seja para identificar a placa de um veículo com documentação atrasada Para que as características sejam extraídas as aplicações de IA devem ser treinadas a fim de parametrizar as camadas de filtro Observe na Figura 9 um exemplo de extração de padrões de placas de veículos Vemos primeiramente a imagem original abaixo a aplicação de filtros para destaque de padrões neste caso os caracteres e ao lado um exemplo de seu histograma usado para a separação entre o fundo e os objetos de interesse Figura 9 Extração de padrões de placas de veículos Fonte Conci e Monteiro 2004 documento online As características são inúmeras e dependem das tarefas realizadas bem como do tipo de imagem tratada Por exemplo para reconhecer impressões digitais podese trabalhar com descritores como contorno arcos e bifurca ções Já para reconhecimento facial é melhor trabalhar com dimensionais como as distâncias entre os olhos entre os olhos e o nariz comprimento da boca entre outras A quantidade de características e seu tamanho em pixels dependem da tarefa e do grau de acerto desejados Portanto apenas uma característica não deve ser suficiente para classificar adequadamente uma imagem Identificar olhos em uma imagem não seria indício suficiente de ter encontrado um rosto humano somente com a análise de um conjunto de características seria possível obter tal precisão Por esse motivo as redes convolucionais não criam apenas um mapa de atributos mas vários deles cuja quantidade é proporcional ao número de kernels utilizados cada qual com um objetivo específico NIELSEN 2015 Veja a Figura 10 Convolução 14 Figura 10 Exemplo de identificação de pedestres para navegação de veículos autônomos Fonte Diaz 2017 documento online Neste capítulo você conheceu os fundamentos do cálculo convolucional aplicado ao processamento de imagens digitais A implementação de fi ltros convolucionais é bastante ampla e abrange variadas áreas do conhecimento humano Seu emprego nas tarefas cotidianas cresce cada vez mais e seu potencial está apenas no início em aplicações com realidade aumentada realidade virtual e inteligência artifi cial CONCI A MONTEIRO L H Reconhecimento de placas de veículos por imagem S l s n 2004 Disponível em httpwwwicuffbraconciCONENPLACASpdf Acesso em 27 jul 2020 DIAZ J Conduite autonome Deux chercheurs dApple dévoilent leurs travaux sur la détection et reconnaissance dobjets 3D Actualité 23 nov 2017 Disponível em https wwwactuiacomactualiteconduiteautonomedeuxchercheursdappledevoilent leurstravauxdetectionreconnaissancedobjets3d Acesso em 11 ago 2020 GONZALEZ R C WOODS R E Processamento digital de imagens 3 ed São Paulo Pearson 2010 MAZZA L O Aplicação de redes neurais convolucionais densamente conectadas no processamento digital de imagens para remoção de ruído gaussiano 2017 Trabalho Aca dêmico Graduação Universidade Federal do Rio de Janeiro Rio de Janeiro 2017 Disponível em httpwwwmonografiaspoliufrjbrmonografiasmonopoli10019807 pdf Acesso em 17 jul 2020 15 Convolução NIELSEN M Neural networks and deep learning San Francisco Determination 2015 Disponível em httpneuralnetworksanddeeplearningcom Acesso em 17 jul 2020 NORVIG P RUSSELL S J Inteligência artificial 3 ed Rio de Janeiro Elsevier 2013 WIKIPEDIA Kernel image processing S l Wikipedia 2020 Disponível em https enwikipediaorgwikiKernelimageprocessing Acesso em 11 ago 2020 ZUCCHERATO G Seu rosto sua chave reconhecimento facial no controle de acesso Digital Secutiry 19 fev 2019 Disponível em httpsrevistadigitalsecuritycombrartigo seurostosuachavereconhecimentofacialnocontroledeacesso Acesso em 11 ago 2020 Leitura recomendada KRIZHEVSKY A SUTSKEVER I HINTON G E ImageNet classification with deep con volutional neural networks In ADVANCES IN NEURAL INFORMATION PROCESSING SYSTEMS 25 2012 Proceedings S l NIPS 2012 Disponível em httpspapersnips ccpaper4824imagenetclassificationwithdeepconvolutionalneuralnetworks pdf Acesso em 17 jul 2020 Os links para sites da web fornecidos neste capítulo foram todos testados e seu fun cionamento foi comprovado no momento da publicação do material No entanto a rede é extremamente dinâmica suas páginas estão constantemente mudando de local e conteúdo Assim os editores declaram não ter qualquer responsabilidade sobre qualidade precisão ou integralidade das informações referidas em tais links Convolução 16 Conteúdo SAGAH SOLUÇÕES EDUCACIONAIS INTEGRADAS