Classificação de imagem em cascata previamente treinada

Cria um modelo de classificação de imagem previamente treinado para faces frontais usando a biblioteca OpenCV

Categoria: módulos da biblioteca OpenCV

Observação

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

Esse conteúdo pertence apenas ao estúdio (clássico). Módulos de arrastar e soltar semelhantes foram adicionados ao designer de Azure Machine Learning. 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 pretreinado no Azure Machine Learning Studio (clássico) para detectar rostos em imagens.

O modelo é baseado na biblioteca OpenCV . A biblioteca OpenCV fornece uma lista de modelos predefinidos, cada um otimizado para detectar um tipo específico de objeto.

Mais sobre o modelo pré-treinado

Este modelo de reconhecimento de imagem já foi treinado em uma grande corpus de imagens que é amplamente usada para tarefas de reconhecimento de imagem. Esse modelo de classificação específico foi otimizado para detecção facial e usa o algoritmo de detecção de objeto Viola-Jones. A finalidade do modelo é identificar imagens que contenham uma face humana na exibição frontais.

Embora atualmente apenas um modelo de classificação de imagem OpenCV seja fornecido, modelos pretreinados adicionais podem estar disponíveis em versões posteriores.

Usando um modelo pré-treinado

Se você tiver um conjunto de imagens que deseja analisar, forneça-as como entrada para o módulo modelo de Pontuação , conforme descrito neste tópico, e anexe esse módulo, que fornece o modelo de biblioteca OpenCV pretreinado.

O módulo modelo de Pontuação usa o modelo de classificação de imagem para determinar se a imagem contém um rosto humano e retorna uma pontuação de probabilidade para cada imagem usada como entrada.

Modelos baseados em classificação de imagem em cascata pretreinado não podem ser retreinados em novos dados de imagem.

O formato no qual o modelo é armazenado é incompatível com os módulos modelo de treinamento e modelo de validação cruzada .

Como configurar a classificação de imagem em cascata pretreinada

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

  1. Prepare e importe o conjunto de imagens que você planeja usar na pontuação. Em geral, todas as imagens no conjunto de datas devem ter o mesmo tamanho.

    Você adiciona as imagens ao seu experimento usando o módulo importar imagens . Leia a ajuda para importar imagens de forma mais próxima para garantir que as imagens usadas atendam aos requisitos. Você também deve garantir que as imagens estejam acessíveis na opção de armazenamento definida.

  2. Adicione o módulo de classificação de imagem em cascata pretreinado ao seu experimento no estúdio (clássico). Você pode encontrar esse módulo na categoria de biblioteca OpenCV .

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

    Atualmente, apenas um classificador está disponível: frontais face, que é selecionado por padrão.

  4. Fator de escala: digite um valor que especifique a quantidade de tamanho da imagem a ser reduzida em cada escala de imagem.

    Na biblioteca OpenCV, o classificador é projetado para que possa ser facilmente "redimensionado" para poder localizar os objetos de interesse em diferentes tamanhos. Isso é mais eficiente do que redimensionar a imagem em si. Portanto, para localizar um objeto de um tamanho desconhecido na imagem, o procedimento de verificação deve ser feito várias vezes em escalas diferentes.

    Recomendamos que você experimente fatores de dimensionamento diferentes para ver quais fornecem os melhores resultados de classificação de imagem.

  5. Número mínimo de vizinhos: digite um número inteiro que represente o número mínimo de retângulos sobrepostos necessários para detectar que uma face está incluída em uma região.

    Na biblioteca OpenCV, o classificador detecta objetos de tamanhos diferentes na imagem de entrada. Os objetos detectados são retornados como uma lista de retângulos. O parâmetro Neighbors controla quantas correspondências possíveis são necessárias para se qualificar como uma face ou um recurso detectado. Portanto, aumentar esse valor tende a aumentar a precisão no custo da cobertura.

    Para obter exemplos de como os vizinhos são calculados, consulte este artigo na documentação da biblioteca do OpenCv: Eigenfaces em OpenCv

  6. Opcionalmente, você pode usar as configurações a seguir para especificar o tamanho da imagem para o modelo para que ele possa fazer previsões melhores. As imagens que não atendem aos requisitos são eliminadas:

    • Altura mínima: digite a altura do pixel da menor imagem. Se você especificar um valor para essa propriedade, as imagens menores do que isso serão ignoradas.

    • Altura máxima. Digite a largura do pixel da imagem maior. Se você especificar um valor para essa propriedade, imagens maiores que isso serão ignoradas.

    • Largura mínima: digite a largura do pixel da menor imagem. Se você especificar um valor para essa propriedade, as imagens menores do que isso serão ignoradas.

    • Largura máxima: digite a largura do pixel da imagem maior. Se você especificar um valor para essa propriedade, imagens maiores que isso serão ignoradas.

  7. Conecte o conjunto de imagens de imagem usado para pontuação.

  8. Adicione o módulo modelo de Pontuação ao seu experimento e conecte o classificador de imagem pré-treinado e o conjunto de seus conjuntos de imagens.

  9. Execute o experimento.

Resultados

A saída do modelo de Pontuação inclui o nome da imagem, o rótulo pontuado e a pontuação de probabilidade para o rótulo (0 ou 1). O classificador gera um "1" se for provável que a imagem mostre o objeto (uma face) e "0" caso contrário. Por exemplo:

Nome da imagem Rótulos classificados 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 resultados. Portanto, para exibir os dados com mais facilidade, é recomendável que, em seu experimento, você use selecionar colunas no DataSet para gerar apenas as colunas de resultado.

Observações técnicas

O modelo de reconhecimento facial fornecido por esse módulo é baseado no algoritmo de detecção facial Viola-Jones. Para obter mais informações, consulte estes recursos:

  • Este vídeo explica os conceitos básicos do reconhecimento facial, incluindo uma definição de recursos de Haar e como eles são usados na detecção facial: detecção facial – parte 1

  • Este artigo da Wikipédia descreve o método usado para o classificador, com base 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 classificador em cascata.

Observação

Esse módulo não produz a coleção completa de informações produzidas pela biblioteca OpenCV. Em particular, esse módulo gera apenas a previsão de se uma face está presente ou não e não inclui as coordenadas da face ou qualquer outra informação.

Se você precisar dessas informações adicionais, considere o uso de outras bibliotecas, como o API de detecção facial fornecido pelos Serviços cognitivas da Microsoft.

Parâmetros do módulo

Name Intervalo Type Padrão Descrição
Classificador previamente treinado Lista PretrainedClassifier Face frontal Classificador pré-treinado de distribuição OpenCV padrão.
Fator de escala >= 1, 2 Float 1,1 O parâmetro que especifica o quanto o tamanho da imagem é reduzido em cada escala de imagem.
Número mínimo de vizinhos >= 0 Integer 3 O parâmetro que especifica quantos vizinhos cada retângulo candidato deve ter para retê-lo.
Altura mínima >= 1 Integer 100 Altura mínima possível do objeto (em pixels). Os objetos menores que isso serão ignorados.

O parâmetro é opcional.
{1>Largura mínima<1} >= 1 Integer 100 Largura mínima possível do objeto (em pixels). Os objetos menores que isso serão ignorados.

O parâmetro é opcional.
Altura máxima >= 1 Integer 200 Altura máxima possível do objeto (em pixels). Os objetos maiores que isso são ignorados.

O parâmetro é opcional.
Largura máxima >= 1 Integer 200 Largura máxima possível do objeto (em pixels). Os objetos maiores que isso 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 Ocorrerá uma exceção se o parâmetro for menor que um valor específico.

Para obter uma lista de erros específicos para módulos do Studio (clássicos), consulte Machine Learning códigos de erro.

Para obter uma lista de exceções de API, consulte Machine Learning códigos de erro da API REST.

Consulte também

Importar imagens
Classificação de imagem em cascata previamente treinada