Classificação de imagem em cascata previamente treinada
Importante
O suporte para o Machine Learning Studio (clássico) terminará em 31 de agosto de 2024. É recomendável fazer a transição para o Azure Machine Learning até essa data.
A partir de 1º de dezembro de 2021, você não poderá criar recursos do Machine Learning Studio (clássico). Até 31 de agosto de 2024, você pode continuar usando os recursos existentes do Machine Learning Studio (clássico).
- Confira informações sobre como mover projetos de machine learning do ML Studio (clássico) para o Azure Machine Learning.
- Saiba mais sobre o Azure Machine Learning.
A documentação do ML Studio (clássico) está sendo desativada e pode não ser atualizada no futuro.
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: somente Machine Learning Studio (clássico)
Módulos semelhantes do tipo "arrastar e soltar" estão disponíveis no designer do Azure Machine Learning.
Visão geral do módulo
este artigo descreve como usar o módulo de classificação de imagem em cascata pretreinado no 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 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.
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.
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 .
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.
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.
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
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.
Conexão o dataset de imagem usado para pontuação.
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.
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
Nome | 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,00000000000000002 | 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 ver uma lista de erros específicos dos módulos do Studio (clássico), consulte Machine Learning Códigos de erro.
Para ver uma lista de exceções de API, consulte Machine Learning códigos de erro da API REST.
Confira também
Importar imagens
Classificação de imagem em cascata previamente treinada