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?
Respostas:
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.
fonte