Classificação de imagem em cascata pré-treinada

Cria um modelo de classificação de imagem pré-treinado para rostos frontais usando a Biblioteca OpenCV

Categoria: Módulos da Biblioteca OpenCV

Nota

Aplica-se a: Machine Learning Studio (clássico)

Este conteúdo diz respeito apenas ao Studio (clássico). Módulos semelhantes de arrasto e queda foram adicionados ao designer de Aprendizagem automática Azure. Saiba mais neste artigo comparando as duas versões.

Visão geral do módulo

Este artigo descreve como usar o módulo de classificação de imagem em cascata pré-treinado no Azure Machine Learning Studio (clássico), para detetar rostos em imagens.

O modelo baseia-se na biblioteca OpenCV. A Biblioteca OpenCV fornece uma lista de modelos predefinidos, cada um otimizado para detetar um determinado tipo de objeto.

Mais sobre o modelo pré-treinado

Este modelo de reconhecimento de imagem já foi treinado num grande corpus de imagens que é amplamente utilizado para tarefas de reconhecimento de imagem. Este modelo de classificação em particular foi otimizado para deteção facial, e usa o algoritmo de deteção de objetos Viola-Jones. O objetivo do modelo é identificar imagens que contenham um rosto humano na vista frontal.

Apesar de atualmente apenas um modelo de classificação de imagem OpenCV ser fornecido, os modelos pré-treinados adicionais poderão estar disponíveis em lançamentos posteriores.

Usando um modelo pré-treinado

Se tiver um conjunto de imagens que gostaria de analisar, forneça-as como entrada para o módulo 'Modelo de Pontuação', conforme descrito neste tópico, e anexe este módulo, que fornece o modelo de biblioteca OpenCV pré-treinado.

O módulo 'Modelo de Pontuação' utiliza o modelo de classificação de imagem para determinar se a imagem contém um rosto humano e devolve uma pontuação de probabilidade para cada imagem utilizada como entrada.

Os modelos baseados na Classificação de Imagem em Cascata pré-treinada não podem ser retreinados em novos dados de imagem.

O formato em que o modelo está armazenado é incompatível com os módulos Model Train e Cross-Validate Model.

Como configurar a classificação de imagem em cascata pré-treinada

O modelo de classificação de imagem em Azure Machine Learning já foi treinado usando um grande conjunto de dados e está otimizado para um tipo de imagem específico. Portanto, tudo o que precisa fazer é fornecer um conjunto de imagens como um conjunto de dados de pontuação. Como saída, o módulo gera uma pontuação que indica se cada imagem contém o tipo de imagem alvo.

  1. Prepare e importe o conjunto de dados de imagens que pretende utilizar na pontuação. Em geral, todas as imagens do conjunto de dados devem ter o mesmo tamanho.

    Adicione as imagens à sua experiência utilizando o módulo Import Images. Leia de perto a ajuda para a Import Images para garantir que as imagens que utiliza satisfazem os requisitos. Deve também certificar-se de que as imagens estão acessíveis na opção de armazenamento definida.

  2. Adicione o módulo de classificação de imagem em cascata pré-treinado à sua experiência em Studio (clássico). Pode encontrar este módulo na categoria OpenCV Library.

  3. Selecione um dos classificadores pré-treinados da lista no classificador pré-treinado.

    Atualmente, apenas um classificado está disponível: Face frontal, que é selecionada por padrão.

  4. Fator de escala: Digite um valor que especifique quanto o tamanho da imagem é reduzido em cada escala de imagem.

    Na Biblioteca OpenCV, o classificador é projetado para que possa ser facilmente "redimensionado" de modo a ser capaz de encontrar os objetos de interesse em diferentes tamanhos. Isto é mais eficiente do que redimensionar a imagem em si. Assim, para encontrar um objeto de tamanho desconhecido na imagem, o procedimento de digitalização deve ser feito várias vezes em escalas diferentes.

    Recomendamos que experimente diferentes fatores de escala para ver quais os melhores resultados de classificação de imagem.

  5. Número mínimo de vizinhos: Escreva um número inteiro que represente o número mínimo de retângulos sobrepostos que são necessários para detetar que um rosto está incluído numa região.

    Na biblioteca OpenCV, o classificador deteta objetos de diferentes tamanhos na imagem de entrada. Os objetos detetados são devolvidos como uma lista de retângulos. O parâmetro dos vizinhos controla quantas partidas possíveis são necessárias para se qualificar como rosto ou característica detetado. Assim, o aumento deste valor tende a aumentar a precisão ao custo de cobertura.

    Por exemplo, de como os vizinhos são calculados, consulte este artigo na documentação da Biblioteca OpenCv: Eigenfaces in OpenCV

  6. Opcionalmente, pode utilizar as seguintes definições para especificar o tamanho da imagem para o modelo para que possa fazer melhores previsões. As imagens que não se adequam aos requisitos são eliminadas:

    • Altura mínima: Digite a altura do pixel da menor imagem. Se especificar um valor para esta propriedade, imagens menores do que esta são ignoradas.

    • Altura máxima. Digite a largura do pixel da maior imagem. Se especificar um valor para esta propriedade, imagens maiores do que esta são ignoradas.

    • Largura mínima: Digite a largura do pixel da menor imagem. Se especificar um valor para esta propriedade, imagens menores do que esta são ignoradas.

    • Largura máxima: Digite a largura do pixel da maior imagem. Se especificar um valor para esta propriedade, imagens maiores do que esta são ignoradas.

  7. Ligue o conjunto de dados de imagem utilizado para a pontuação.

  8. Adicione o módulo 'Modelo de Pontuação' à sua experiência e ligue o classificador de imagem pré-treinado e o conjunto de dados de imagens.

  9. Execute a experimentação.

Resultados

A saída do Score Model inclui o nome de imagem, a etiqueta pontuada e a pontuação da etiqueta (0 ou 1). O classificador produz um "1" se a imagem mostrar o objeto (um rosto) e "0" de outra forma. Por exemplo:

Nome da imagem Etiquetas Classificadas Probabilidades Pontuadas
MAN001.png TRUE 1
TABLE001.PNG FALSE 0
CHAIR001.PNG FALSE 0

Dica

A saída também contém os valores RGB para todos os canais de cores no conjunto de dados. Portanto, para visualizar os dados com mais facilidade, recomendamos que na sua experiência utilize Colunas Selecionadas no Conjunto de Dados para des output apenas as colunas de resultados.

Notas técnicas

O modelo de reconhecimento facial fornecido por este módulo baseia-se no algoritmo de deteção facial Viola-Jones. Para mais informações, consulte estes recursos:

  • Este vídeo explica os conceitos básicos de reconhecimento facial, incluindo uma definição de características de Haar e como são usados na deteção facial: Deteção Facial - Parte 1

  • Este artigo na Wikipédia descreve o método usado para o classificador, baseado no papel de Navneet Dalal e Bill Triggs: Histograma de gradientes orientados

  • Para obter a documentação do algoritmo de reconhecimento facial fornecido na biblioteca OpenCV, consulte o Classificador cascade.

Nota

Este módulo não produz a recolha completa de informação produzida pela biblioteca OpenCV. Em particular, este módulo apenas produz a previsão de se um rosto está presente ou não, e não inclui as coordenadas do rosto ou qualquer outra informação.

Se precisar destas informações adicionais, considere a utilização de outras bibliotecas, como a API face fornecida pela Microsoft Cognitive Services.

Parâmetros do módulo

Nome Intervalo Tipo Predefinição Descrição
Classificador pré-treinado Lista Classe pré-treinado Rosto frontal Classificador pré-treinado da distribuição padrão openCV.
Fator de dimensionamento >=1.00000000000000000002 Float 1.1 Parâmetro que especifica quanto o tamanho da imagem é reduzido em cada escala de imagem.
Número mínimo de vizinhos >=0 Número inteiro 3 Parâmetro que especifica quantos vizinhos cada retângulo candidato deve ter que retê-lo.
Altura mínima >=1 Número inteiro 100 Altura mínima possível do objeto (em pixels). Objetos menores do que este são ignorados.

O parâmetro é opcional.
Largura mínima >=1 Número inteiro 100 Largura mínima possível do objeto (em pixels). Objetos menores do que este são ignorados.

O parâmetro é opcional.
Altura máxima >=1 Número inteiro 200 Altura máxima possível do objeto (em pixels). Objetos maiores do que este são ignorados.

O parâmetro é opcional.
Largura máxima >=1 Número inteiro 200 Largura máxima possível do objeto (em pixels). Objetos maiores do que este são ignorados.

O parâmetro é opcional.

Saídas

Nome Tipo Descrição
Modelo treinado Interface ILearner Modelo de classificação binária treinado

Exceções

Exceção Descrição
Erro 0005 A exceção ocorre se o parâmetro for inferior a um valor específico.

Para obter uma lista de erros específicos dos módulos Studio (clássicos), consulte códigos de erro de aprendizagem automática.

Para obter uma lista de exceções da API, consulte códigos de erro da API de aprendizagem automática.

Ver também

Imagens de Importação
Classificação de imagem em cascata pré-treinada