Home › Fóruns › Fórum Detecção de Faces com Python e OpenCV › Duvida sobre Estudo de detecção de Faces com OpenCV
Marcado: Teoria detecção de faces I
- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 3 anos, 10 meses atrás por
Gabriel Alves.
- AutorPosts
- 7 de junho de 2021 às 17:52 #29091
Olá, me chamo Pedro Ivo, fiz a assinatura dos cursos da IA Academy e sou estudante de engenharia de computação, nunca tive contato com OpenCV, apenas com Python e estou fazendo uma pesquisa pois busco implementar em um projeto de robô uma webcam que detecte a presença de faces.
Diante disso, ouvi falar que o OpenCV possui várias formas/funções de implementação para detectar faces e gostaria de pedir então uma orientação de vocês sobre quais módulos/bibliotecas/funções do OpenCV são mais utilizadas para detectar faces? Quais vocês indicariam para o meu caso? Quais cursos de vocês poderia me ajudar?
Pergunto essas coisas pois sou leigo no assunto e o robô que estamos tentado criar funcionará a base de Bateria e como algoritmos diferentes gastam poder de processamento diferentes e consequentemente gastam a bateria de forma diferente, mas também são executados em tempos diferentes e tem eficiências diferentes, eu busco aqueles algoritmos com melhor custo/beneficio possível(No sentido que gaste menos bateria/processamento e seja o mais eficiente possível).
Caso possuam algum material que oriente sobre a analise dos algoritmo usados no OpenCV usar, eu ficaria muito grato.
14 de junho de 2021 às 14:13 #29143Olá Pedro Ivo, seja bem-vindo à plataforma!
Para a detecção de faces com o OpenCV, a técnica mais utilizada é a haarcascade, que é ensinada nesse mesmo curso sobre detecção de faces.Apesar de ser relativamente antiga, essa técnica é ainda preferida por muitos pois ela é muito leve e rápida de processar, e na grande maioria das situações obtém uma precisão boa, então acaba sendo bastante escolhida.
Para detecção de faces há outras técnicas mais precisas hoje em dia, porém verá que o custo computacional delas é bem maior. Outra técnica muito boa (e que no geral oferece melhores resultados) é a que utiliza a biblioteca Dlib, aliás tem curso aqui na IA Expert também explicando sobre ela, é o “Reconhecimento de Faces e de Objetos com Python e Dlib”.Tem uma outra técnica que é mais precisa ainda, baseada em Deep Learning, que aliás pode ser implementada pelo próprio OpenCV através do módulo DNN. Saiba mais sobre ela aqui: https://www.pyimagesearch.com/2018/02/26/face-detection-with-opencv-and-deep-learning/
A decisão sobre qual escolher vai depender muito do seu hardware e qual é o FPS mínimo que seria tolerável pro seu sistema, então se possui um hardware bem limitado terá que optar provavelmente pela haarcascade mesmo, mas também recomendo testar com o dlib pois dependendo da resolução do vídeo pode ter um custo-benefício melhor.
Sobre o material que você perguntou, eu tenho alguns que posso te passar. São três estudos comparativos que falam sobre essas técnicas, onde é analisado tanto a precisão quanto o custo computacional de cada uma, acredito que esses artigos ajudem mais ainda a tomar sua decisão:
https://towardsdatascience.com/face-detection-models-which-to-use-and-why-d263e82c302c
http://datahacker.rs/017-face-detection-algorithms-comparison/
https://rupeshthetech.medium.com/face-detection-models-and-their-performance-comparison-eb8da55f328c
- AutorPosts
- Você deve fazer login para responder a este tópico.