Extração de características visuais para aprendizado de máquina

aprendizagem de máquina em imagens funciona porque ele pode contar com recursos para comparar fotos e associar uma imagem com outro (por causa da semelhança) ou para um rótulo específico (supondo, por exemplo, os objetos representados). As pessoas podem facilmente escolher um carro ou uma árvore quando vêem um em uma imagem. Mesmo se for a primeira vez que você vê um certo tipo de árvore ou carro, você pode associá-lo corretamente com o objeto certo (marcação)

ou compará-lo com objetos semelhantes na memória (Lembre-se de imagem).

Video: Integrating Keras & TensorFlow: The Keras workflow, expanded (TensorFlow Dev Summit 2017)

No caso de um carro, tendo rodas, portas, um volante, e assim por diante são todos os elementos que ajudam a categorizar um novo exemplo de um carro entre os outros carros. Isso acontece porque você vê as formas e elementos para além da imagem si- assim, não importa o quão incomum uma árvore ou um carro pode ser, se ele possui certas características, você pode descobrir o que é.

Um algoritmo pode inferir elementos (formas, cores, elementos, elementos relevantes, e assim por diante) diretamente de pixels somente quando você preparar os dados para ele. Além de tipos especiais de redes neurais, chamados redes convolucionais, que classificam como o estado da arte em reconhecimento de imagem, porque eles podem extrair características úteis de imagens cruas por si só, é sempre necessário para preparar os recursos adequados ao trabalhar com imagens.

preparação recurso a partir de imagens é como jogar com um quebra-cabeça - você tem que descobrir qualquer relevância particular, textura, ou conjunto de cantos representados dentro da imagem, a fim de recriar uma imagem de seus detalhes. Toda esta informação serve como as características de imagem e torna-se um elemento precioso para qualquer algoritmo de aprendizado de máquina para concluir seu trabalho.

informações filtro de redes neurais Convolucional através de múltiplas camadas, treinando os parâmetros de suas circunvoluções (tipos de filtros de imagem) - Assim eles podem filtrar apenas as características relevantes para as imagens e as tarefas que estão treinados para executar. Outras camadas especiais, chamados camadas de agrupamento, ajudar a captura rede neural esses recursos no caso da tradução (eles aparecem em partes incomuns da imagem) ou rotação.

Video: Treinamento em Português das APIs de Watson - Aprendizado de Máquina & Reconhecimento de Padrões 1

Aplicando o aprendizado profundo requer técnicas especiais e máquinas capazes de sustentar a carga de trabalho computacional pesado. o biblioteca Caffe, desenvolvido pela Yangqing Jia da Visão Berkeley e Learning Center, permite a construção de tais redes neurais, mas também aproveita os pré-treinado existentes.

Uma rede neural pré-treinado é uma rede convolutional treinados em um grande número de imagens variadas, aprendendo, assim como filtrar uma grande variedade de recursos para fins de classificação. A rede pré-treinado permite entrada de suas imagens e obter um grande número de valores que correspondem a uma pontuação em um determinado tipo de recurso anteriormente aprendidas pela rede como uma saída. Os recursos pode corresponder a uma determinada forma ou textura.

O que importa para seus objetivos de aprendizagem de máquina é que as características mais reveladoras para a sua finalidade estão entre os produzidos pela rede pré-treinado, por isso você deve escolher os recursos adequados, fazendo uma seleção usando outra rede neural, uma SVM, ou um modelo de regressão simples.



Quando você não pode usar uma rede neural convolutional ou biblioteca pré-treinado (por causa de memória ou restrições de CPU), OpenCV ou algumas funções Scikit-imagem ainda pode ajudar. Por exemplo, para enfatizar as fronteiras de uma imagem, você pode aplicar um processo simples usando Scikit-imagem, como mostrado aqui:

medida a partir de importação skimage

contornos = measure.find_contours (imagem, 0,55)

plt.imshow (imagem, cmap = cm.gray)

para n, contorno em Enumerar (contornos):

plt.plot (contorno [:, 1], contorno [:, 0], largura de linha = 2)

plt.axis ( `imagem`)

Video: Detecção de Obstáculos para Pessoas Portadoras de Deficiência Visual - DemoDay 2016

plt.show ()

Você pode ler mais sobre encontrar contornos e outros algoritmos para extração de características (Canto e blob detecção histograms-) nos cursos.


Publicações relacionadas