栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

OpenMV:11人眼检测和瞳孔检测

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OpenMV:11人眼检测和瞳孔检测

人眼检测.py

# 人眼追踪例程
# 用到了OpenMV内置的 "识别人脸的haar算子" 和 "识别人眼的haar算子"
# 该脚本使用内置的前脸检测器来查找脸部,然后查找脸部的眼睛。如果你想确定
# 眼睛的瞳孔,请参阅iris_detection脚本,了解如何做到这一点。

import sensor, time, image

#重置传感器
sensor.reset()

#传感器设置
sensor.set_contrast(1)  # 设置对比度为1
sensor.set_gainceiling(16)  # 设置增益为16
sensor.set_framesize(sensor.HQVGA)  # 设置图像的大小为HQVGA
sensor.set_pixformat(sensor.GRAYSCALE)  # 设置图像的格式为灰度图

# 加载Haar算子
# 默认情况下,这将使用所有阶段,较低的阶段更快但不太准确。
face_cascade = image.HaarCascade("frontalface", stages=25)  # 定义人脸识别的haar算子
eyes_cascade = image.HaarCascade("eye", stages=24)  # 定义眼睛的haar算子
#image.HaarCascade(path, stages=Auto)加载一个haar模型。haar模型是二进制文件,
    #这个模型如果是自定义的,则引号内为模型文件的路径;也可以使用内置的haar模型,
    #比如【 “frontalface” 人脸模型 】或者【“eye”人眼模型】。
    #stages值未传入时使用默认的stages(默认为24-25)。stages值设置的小一些可以加速匹配,但会降低准确率。
print(face_cascade, eyes_cascade)

# FPS clock
clock = time.clock()

while (True):
    clock.tick()

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

    # Find a face !
    # scale是一个必须大于1.0的浮点数,较高的scale会运行的更快,但会降低匹配准确率
    # 降低threshold会提高检测速率,但会降低准确率
    objects = img.find_features(face_cascade, threshold=0.5, scale=1.5) # 先识别人脸:传递人脸的haar算子face_cascade
    # 先利用haar算子找到视野中的人脸。image.find_features(cascade, threshold=0.5, scale=1.5),thresholds越大,
    # 匹配速度越快,错误率也会上升。scale可以缩放被匹配特征的大小。


    # Draw faces
    #将找到的人脸用矩形标记出来
    for face in objects:    # 遍历检测到的每一个人脸
        img.draw_rectangle(face)    # 在人脸区域周围画框框
        
        
        # Now find eyes within each face.
        # 现在找出每一张脸的眼睛。
        # Note: Use a higher threshold here (more detections) and lower scale (to find small objects)
        # 注意:这里使用更高的阈值(更多的检测)和更低的尺度(寻找小物体)
        eyes = img.find_features(eyes_cascade, threshold=0.5, scale=1.2, roi=face)# 识别人眼:传递人眼的haar算子eyes_cascade
        #在人脸中识别眼睛。roi参数设置特征寻找的范围,roi=face即在找到的人脸中识别眼睛。
        #将找到的眼睛标记出来        
        for e in eyes:
            img.draw_rectangle(e)

    # 打印FPS。
    # 注意:实际FPS更高,流FB使它更慢。
    print(clock.fps())

瞳孔检测.py

# 瞳孔识别例程
#
# 这个例子展示了如何找到图像中的眼睛后的瞳孔(瞳孔检测)。 该脚本使用
# find_eyes函数来确定应该包含瞳孔的roi的中心点。 它通过基本上找到瞳孔
# 中心的眼睛最黑暗的区域的中心。
#
# 注意:此脚本首先不会检测到脸部,请将其与长焦镜头一起使用(长焦镜头可以把图像拉近)。

import sensor, time, image

#重置传感器
sensor.reset()

#传感器设置
sensor.set_contrast(3)  # 设置对比度为3
sensor.set_gainceiling(16)  # 设置图像增益为16

# 将分辨率设置为VGA。
sensor.set_framesize(sensor.VGA)    # 设置图像分辨率大小为VGA

#拉近镜头,使眼睛的更多细节展现在摄像头中。
# 裁剪图像到200x100,这提供了更多的细节和更少的数据处理
sensor.set_windowing((220, 190, 200, 100))

sensor.set_pixformat(sensor.GRAYSCALE)

# 加载眼睛的haar算子
# 默认情况下,这将使用所有阶段,较低的阶段更快但不太准确。
eyes_cascade = image.HaarCascade("eye", stages=24)  # 调用眼睛的haar算子eye,保存到eyes_cascade中
print(eyes_cascade)

# FPS clock
clock = time.clock()

while (True):
    clock.tick()
    # 截取一张图片
    img = sensor.snapshot()
    
    
    # Find eyes !
    # Note: Lower scale factor scales-down the image more and detects smaller objects.
    # 注意:较低的比例因子会进一步缩小图像,并检测较小的物体。
    # Higher threshold results in a higher detection rate, with more false positives.
    # 阈值越高,检测率越高,假阳性也越多。
    eyes = img.find_features(eyes_cascade, threshold=0.5, scale=1.5)    # 把返回的列表保存到变量eyes中
    # 先利用find_features函数识别人眼。image.find_features(cascade, threshold=0.5, scale=1.5),thresholds越大,
    # 匹配速度越快,错误率也会上升。scale可以缩放被匹配特征的大小。

    # 在识别到的人眼中寻找瞳孔。
    for e in eyes:
        iris = img.find_eye(e) # 向视野中寻找到的每个人眼,调用find_eye()函数
                               # 这个函数用于寻找眼睛中的瞳孔,返回值为图像中瞳孔(x,y)位置的元组,若为发现元组,则返回(0,0)
                        #find_eye的原理是找到区域中颜色最深处的中心(在灰度图的情况下,眼睛中颜色最深的区域就是瞳孔)。
        #image.find_eye((x, y, w, h)),find_eye的参数是一个矩形区域roi,左上顶点为
             #(x,y),宽w,高h,注意(x,y,w,h)是一个元组,不要漏掉括号()。上行代码中
             #的e即代表识别到的眼睛的矩形区域。
        
        img.draw_rectangle(e)
        img.draw_cross(iris[0], iris[1])
        #用矩形标记人眼,用十字形标记瞳孔。

    # Print FPS.
    # 注:实际FPS更高,流FB使它更慢。
    print(clock.fps())

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/961299.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号