face_detection.py

# Este trabalho está licenciado sob a licença MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Todos os direitos reservados.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Exemplo de Detecção de Rosto
#
# Este exemplo mostra o recurso embutido de detecção de rosto da OpenMV Cam.
#
# A detecção de rosto funciona usando o detector de características Haar Cascade em uma imagem. Um
# Haar Cascade é uma série de verificações simples de contraste de área. Para o detector
# frontalface embutido existem 25 estágios de verificações, cada estágio tendo
# centenas de verificações cada. Haar Cascades rodam rápido porque os estágios posteriores são
# avaliados apenas se os estágios anteriores passarem. Além disso, sua OpenMV Cam usa
# uma estrutura de dados chamada imagem integral para executar rapidamente cada verificação
# de contraste de área em tempo constante (o motivo da detecção de características ser
# somente em escala de cinza é o requisito de espaço para a imagem integral).

import csi
import time
import image

csi0 = csi.CSI()
csi0.reset()
csi0.contrast(3)
csi0.gainceiling(16)
csi0.framesize(csi.HQVGA)  # HQVGA e GRAYSCALE são os melhores para rastreamento de rosto.
csi0.pixformat(csi.GRAYSCALE)

# Carrega o Haar Cascade
# Por padrão, isso usará todos os estágios; menos estágios é mais rápido, mas menos preciso.
face_cascade = image.HaarCascade("/rom/haarcascade_frontalface.cascade", stages=25)
print(face_cascade)

# Relógio de FPS
clock = time.clock()

while True:
    clock.tick()

    # Captura o snapshot
    img = csi0.snapshot()

    # Encontra objetos.
    # Nota: Um fator de escala menor reduz mais a imagem e detecta objetos menores.
    # Um limiar mais alto resulta em uma taxa de detecção maior, com mais falsos positivos.
    objects = img.find_features(face_cascade, threshold=0.75, scale=1.25)

    # Desenha objetos
    for r in objects:
        img.draw_rectangle(r)

    # Imprime o FPS.
    # Nota: O FPS real é maior, transmitir o FB torna mais lento.
    print(clock.fps())

results matching ""

    No results matching ""