Usando redes neurais para extrair vários parâmetros de imagens

8

Quero extrair parâmetros de uma imagem usando uma rede neural.

Exemplo:

Dada a imagem de uma parede de tijolos, o NN deve extrair a largura e a altura dos tijolos, a cor e a rugosidade.

Eu posso gerar imagens para determinados parâmetros para treinar o NN e quero usá-lo para extrair os parâmetros de uma imagem real.

Eu olhei para CNNs. Posso executar esta tarefa com eles? Preciso de algoritmos especiais de aprendizado para extrair vários parâmetros em vez de classificação? Existem NNs projetados para essas tarefas?

H4kor
fonte
Você pode anexar algumas imagens de amostra que tem em mente? As CNNs podem ser um exagero para a tarefa, mas, por outro lado, vale a pena estudar e experimentar se a sua principal prioridade é o uso de redes neurais em contraste com os algoritmos CV "tradicionais".
NikoNyrh
A @NikoNyrh poderia fornecer imagens de amostra, mas eu quero usar a técnica para várias classes de texturas. O objetivo é extrair parâmetros de sombreador das imagens. O exemplo de bloco contém principalmente parâmetros intuitivos, mas outros shaders provavelmente usarão parâmetros que não podem ser facilmente obtidos por um algoritmo bem projetado. Atualmente, estou testando abordagens diferentes e queria experimentar as redes neurais, pois posso gerar dados de treinamento "infinitos".
H4kor

Respostas:

8

Uma CNN pode ser uma boa opção para esta tarefa se você espera variação na escala original da imagem, iluminação de rotação etc., e também possui muitos dados de treinamento.

A arquitetura usual da CNN é ter camadas convolucionais próximas à entrada e camadas totalmente conectadas na saída. Essas camadas totalmente conectadas podem ter a saída organizada para diferentes tarefas de classificação ou regressão, como você achar melhor. Prever os valores dos parâmetros que descrevem a imagem é uma tarefa de regressão.

Se você deseja medidas precisas de tamanho, evite usar o máximo de camadas de pool. Infelizmente, o não uso do pool tornará sua rede maior e mais difícil de treinar - você pode se afastar com convolução estrita, se isso for um problema para você.

Se suas imagens de entrada são muito simples e claras (porque são sempre geradas por computador), outras abordagens podem ser mais confiáveis. Você pode fazer engenharia reversa da produção de imagens e derivar regras simples, como identificar linhas, cantos, círculos e outros componentes de imagem fáceis de filtrar e fazer medições diretas. Também pode haver um meio termo na complexidade, onde extrair esses dados como recursos e usá-los para treinar um NN simples (ou outro modelo de ML) terá bom desempenho.

Neil Slater
fonte