Example: 03-Machine-Learning/02-Haar-Cascade/face_eye_detection.py

# 本作品采用MIT许可证授权。
# 版权所有 (c) 2013-2023 OpenMV LLC。保留所有权利。
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# 面部眼睛检测示例
#
# 此脚本使用内置的正脸检测器来查找面部,然后
# 在面部中查找眼睛。如果您想确定眼睛的注视方向,请参阅
# iris_detection 脚本以了解如何实现。

import sensor
import time
import image

# 重置传感器
sensor.reset()

# 传感器设置
sensor.set_contrast(1)
sensor.set_gainceiling(16)
sensor.set_framesize(sensor.HQVGA)
sensor.set_pixformat(sensor.GRAYSCALE)

# 加载 Haar 级联
# 默认情况下,这将使用所有阶段,较低的阶段速度更快但准确性较低。
face_cascade = image.HaarCascade("frontalface", stages=25)
eyes_cascade = image.HaarCascade("eye", stages=24)
print(face_cascade, eyes_cascade)

# FPS时钟
clock = time.clock()

while True:
    clock.tick()

    # 捕获快照
    img = sensor.snapshot()

    # 找到一张脸!
    # 注意:较低的缩放因子会更多地缩小图像并检测较小的对象。
    # 较高的阈值会导致更高的检测率,但也会产生更多的误报。
    objects = img.find_features(face_cascade, threshold=0.5, scale_factor=1.5)

    # 绘制人脸
    for face in objects:
        img.draw_rectangle(face)
        # 现在在每个面部中找到眼睛。
        # 注意:在此处使用较高的阈值(更多检测)和较低的缩放(以查找小对象)
        eyes = img.find_features(
            eyes_cascade, threshold=0.5, scale_factor=1.2, roi=face
        )
        for e in eyes:
            img.draw_rectangle(e)

    # 打印FPS。
    # 注意:实际帧率更高,流式传输帧缓冲区会使其变慢。
    print(clock.fps())

results matching ""

    No results matching ""