3D双目跟踪瞳孔识别瞳孔定位算法测试

这篇具有很好参考价值的文章主要介绍了3D双目跟踪瞳孔识别瞳孔定位算法测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

测试场景:

1. 当用户瞳孔移动时,需要精确定位到瞳孔位置,保证眼动跟踪正常
2. 当有其他人进入摄像头工作范围时,不会干扰之前锁定用户的瞳孔定位功能

测试对象:

1. 自研算法 + 限定硬件( Acer Realsense 摄像头)
2.  竞品: tobill Acer Realsense 摄像头

测试范围:基于不同需求测试项,测试算法精度

测试项

说明

是否需要测试

优先级

备注

瞳孔状态

静止、移动

P0

已与研发确认

双目锁定

单人

P0

干扰

遮挡、是否佩戴眼镜 

P0

光照

室内

P1

室外

P2

资源消耗

CPUGPUMemory

P2

评测指标

维度

指标

计算方式

说明

测试优先级

是否需要测试

备注

准确度

accuracy

均方根误差

RMSE=√Σ(Yi-Yi^) ²/n

衡量估计值与真实值的平均误差

P0

已与研发确认

精确度

precision

相对位移

D=-(xC−xA,yC−yA,zC−zA)-|dc-da|/n

衡量每两次的估计值与真实值的相对位移差值

P0

平均绝对误差

MAE = (Σ|xi - yi|) / N

衡量估计值和真实值之的平均绝对误差分布

P1

标准差   

σ = √[Σ(xi-μ)²/n]

衡量估计值的分散度

P2

连续漏检率

cfnr

CFNR

首帧检测时间、时间离散和集中程度、丢帧率

连续时间内的漏检帧数采样

P1

漏检率

fnr

FNR

FN / FN + TP

正例样本帧数采样

P2

误报率

fpr

FPR

FP / FP + TN

负例样本帧数采样

P2

评测指标-误报率

脚本设计方案:

使用OpenCV库进行本地视频中的面部和眼部检测,并将检测到的帧保存到磁盘

1. 加载 Haar 级联分类器文件,用于眼部和面部检测
2. 读取视频路径,视频分帧,循环从视频中读取每一帧将帧转换为灰度图像,并使用 Haar 级联分类器检测眼部
3. 保存检测到的帧和绘制标记。如果检测到 瞳孔 ,绘制一个红色的点阵。如果检测到面部,绘制一个绿色的矩形
4. 检测窗口会显示每帧的图像,用红点阵和绿矩形标记眼部和面部。按下 Esc 键后,检测窗口会关闭
5. 统计并打印 Total TP TN 的数目,数据入盘
6. 测试过程中录制视频,视频数据包括双目闭合 / 遮挡、单目闭合 / 遮挡,不可正常识别到瞳孔
7. 将录制完成的视频放到测试代码( OpenCV ),运行代码
8. 统计总帧数 Total 、检测到红色标识的帧数 FP 、未检测到红色标识的帧数 TN ,并保存 FP 到本地磁盘
9. 人工查看检测 fp ,确保代码检测无误
10. 计算误报率: FPR = FP / FP + TN
unity3d 瞳孔追踪,3d
unity3d 瞳孔追踪,3d
测试数据集

编号

名称

用途及特点

备注

1

UnityEyes Dataset

计算机图形学、虚拟现实和眼动追踪

三维坐标。三维数据集不可用原因:

1. 算法数据格式:左右相机图像+相机内外参+瞳孔三维坐标

2. tobii 提供的SDK接口无法直接操作摄像头输入,即使是数据集格式符合条件,也不具备可操作性

2

TEyeD

包含 2000 多万张图像,眼动数据集

二维坐标。二维数据集不符合3D精度要求

3

BioID Face Database

瞳孔检测和人脸识别的研究

4

MPIIGaze Dataset

瞳孔定位和视线追踪

5

UT Multiview Datase

多视图瞳孔数据,瞳孔追踪和检测

6

GazeCapture

不同摄像头和场景的眼睛追踪数据

开发数据集

编号

名称

用途及特点

备注

1

ColumnbiaGaze

眼动跟踪和注视点估计

-

2

GI4E

人眼瞳孔中心检测

3

MPIIFaceGaze

视线跟踪技术数据集

4

LFW

人脸识别的数据集

二维图像

5

UBIRIS v2

虹膜识别数据集

6

GazeCapture

不同摄像头和场景的眼睛追踪数据

二维坐标

unity3d 瞳孔追踪,3d

unity3d 瞳孔追踪,3d

unity3d 瞳孔追踪,3d

unity3d 瞳孔追踪,3d

unity3d 瞳孔追踪,3d

unity3d 瞳孔追踪,3d

论文参考

[1] Macneil R .Tracking the Closed Eye by Calibrating Electrooculography with Pupil-Corneal Reflection[J].  2020.DOI:10.14288/1.0394158.

[2] Fuhl W , Weber D , Kasneci E .Pistol: Pupil Invisible Supportive Tool to extract Pupil, Iris, Eye Opening, Eye Movements, Pupil and Iris Gaze Vector, and 2D as well as 3D Gaze[J].  2022.DOI:10.48550/arXiv.2201.06799.

[3] Ou W L , Kuo T L , Chang C C ,et al.Deep-Learning-Based Pupil Center Detection and Tracking Technology for Visible-Light Wearable Gaze Tracking Devices[J].Applied Sciences, 2021.DOI:10.3390/app11020851.

[4] Fei X , Zhang Y , Kong D ,et al.Quantitative Model Study of the Psychological Recovery Benefit of Landscape Environment Based on Eye Movement Tracking Technology[J].  2023.

[5]Diane C. Mézière, Yu L , Reichle E D ,et al.Using Eye‐Tracking Measures to Predict Reading Comprehension[J].Reading Research Quarterly, 2023, 58(3):425-449.

[6] Cheng S , Ping Q , Wang J ,et al.EasyGaze:Hybrid eye tracking approach for handheld mobile devices[J].虚拟现实与智能硬件(中英文), 2022(002):004.

人眼数据集通常用于眼部相关的计算机视觉、眼动追踪、瞳孔检测、情感识别以及生物特征识别等领域的研究和开发。以下是一些常见的人眼数据集:

  1. BioID Face Database: 这个数据库包含1,521张近距离的人脸图像,其中包括瞳孔位置的标记。它通常用于瞳孔检测和人脸识别的研究。

  2. Columbia Gaze Data Set: 这个数据集包含56名参与者的近距离肖像图像,每名参与者提供了9张图像,其中包括注视点的标记。这个数据集通常用于研究注视点估计。

  3. MPIIGaze Dataset: 这个数据集包括多个参与者的眼部图像,每个参与者在室内和室外环境下进行拍摄。它用于研究眼动追踪和注视点估计。

  4. UnityEyes Dataset: 这个数据集包括以3D模型生成的虚拟眼部图像。它通常用于眼动追踪和瞳孔检测的研究。

  5. GazeCapture Dataset: 该数据集包含来自移动设备的用户眼睛图像,被广泛用于研究用户的视线和注视点。

  6. UT Multiview Dataset: 这个数据集包含多视图图像,用于眼部特征提取和眼部运动研究。

这些数据集在不同研究领域和应用中都有其特定的用途。在研究中,根据需要选择一个适合的数据集,并确保遵守数据使用的相关规定和协议。这些数据集通常由学术界或研究机构提供,可以在它们的官方网站或研究论文中找到更多信息。

下载xml依赖-面部 眼部

https://github.com/opencv/opencv/blob/4.x/data/haarcascades/haarcascade_eye.xml文章来源地址https://www.toymoban.com/news/detail-848044.html

import cv2
import os

# 加载Haar级联分类器文件
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

# 打开本地视频文件
video_path = '1.mp4'
cap = cv2.VideoCapture(video_path)

# 检查视频是否成功打开
if not cap.isOpened():
    print("无法打开视频文件")
    exit()

# 创建目录用于保存分帧图片
output_dir = 'frames'
if not os.path.exists(output_dir):
    os.makedirs(output_dir)

frame_count = 0
eye_detected_count = 0
face_detected_count = 0
frame_filename_list = []
frame_filename_no_eyes = []

while True:
    ret, frame = cap.read()
    if not ret:
        break

    frame_count += 1
    frame_filename = 0
    # 在每一帧上检测眼部
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    eyes = eye_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)

    if len(eyes) > 0:
        eye_detected_count += 1
        for (ex, ey, ew, eh) in eyes:
            # 在眼部位置显示红色点阵
            cv2.circle(frame, (ex + ew // 2, ey + eh // 2), 10, (0, 0, 255), -1)
    else:
        # 未检测到眼部的分帧图片
        frame_filename = os.path.join(output_dir, f'frame_{frame_count:04d}_no_eyes.jpg')
        cv2.imwrite(frame_filename, frame)
        frame_filename_no_eyes.append(frame_filename)

    # 在每一帧上检测面部
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)

    if len(faces) > 0:
        face_detected_count += 1
        for (fx, fy, fw, fh) in faces:
            # 在面部位置显示绿色矩形
            cv2.rectangle(frame, (fx, fy), (fx + fw, fy + fh), (0, 255, 0), 2)

    cv2.imshow('Face and Eye Detection', frame)

    # 按Esc键退出检测窗口
    if cv2.waitKey(1) == 27:
        break

    # 保存分帧图片
    frame_filename = os.path.join(output_dir, f'frame_{frame_count:04d}.jpg')
    cv2.imwrite(frame_filename, frame)

# 释放视频捕获对象
cap.release()
cv2.destroyAllWindows()

# 打印统计信息
print(f"总帧数: {frame_count}")
print(f"检测到眼部的帧数: {eye_detected_count}")
print(f"检测到面部的帧数: {face_detected_count}")
print(f"未检测到眼部的图片数: {len(frame_filename_no_eyes)}")
print("未检测到眼部的图片名称:")
for filename in frame_filename_no_eyes:
    print(filename)

到了这里,关于3D双目跟踪瞳孔识别瞳孔定位算法测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity3D Pico VR 手势识别物体交互 适配 MRTK3

     当前Pico已经支持手势识别了,但是提供的PICO Unity Integration SDK 中是没有手势和物体交互的功能,Unity XR Interaction Toolkit提供的手势识别物体交互对 Quest适配的挺好的,Pico 当前只能用指尖点触还不能对物体进行抓握以及手势控制射线对物体进行交互。 如要项目想要使用Pico 手

    2024年01月21日
    浏览(61)
  • 多传感器分布式融合算法——多传感器网络协同目标跟踪和定位

    应用: 原创不易,路过的各位大佬请点个赞 主要讲解算法:          多传感器集中式融合算法/分布式融合算法/序贯融合算法          多速率多传感器异步融合算法          多传感器网络分布式一致滤波 应用于: 多传感器网络协同跟踪/定位/导航 联系WX: ZB823618313    

    2024年01月20日
    浏览(52)
  • 【老生谈算法】基于matlab的运动目标识别与跟踪系统设计与算法原理及程序源码——目标识别算法

    大家好,今天给大家介绍基于matlab的运动目标的监测与跟踪系统设计与原理。 视频图像分析主要是对运动图像序列进行分析处理,它通常涉及到运动检测、目标分类、目标跟踪及行为理解与描述几个过程。其中,运动目标检测与跟踪处于整个视觉监视系统的最底层,是视频图

    2024年02月13日
    浏览(49)
  • Unity3D: Mesh切割算法详解

    Unity3D是一款非常流行的游戏开发引擎,支持多种平台和多种语言。在Unity3D中,Mesh是游戏中最常用的3D模型表示方法,它由一系列的点、线、面组成。在游戏中,我们经常需要对Mesh进行一些特殊的操作,比如切割,这个时候就需要用到Mesh切割算法。本文将详细介绍Mesh切割算

    2024年02月16日
    浏览(43)
  • Unity3D PVP游戏位置同步算法优化详解

    在Unity3D中,PVP(Player versus Player)游戏的位置同步是一项重要的技术,它决定了游戏中玩家之间的互动体验。本文将详细介绍Unity3D PVP游戏位置同步算法的优化方法,并给出相应的技术详解和代码实现。 对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础

    2024年01月16日
    浏览(63)
  • 3d激光slam建图与定位(1)_基于ndt算法定位

    节点图 匹配精度 帧率做到100ms左右,纯ndt在2-3cm的位置误差 ,角度误差在0.2度左右 一.代码实现流程 二.ndt算法原理 一.该算法定位有三个进程文件 1.map_loader.cpp用于点云地图的读取,从文件中读取点云后对这个点云地图进行旋转平移后发布点云地图到ros 2.points_downsampler.cpp对雷

    2024年02月14日
    浏览(45)
  • FPGA高端项目:FPGA帧差算法图像识别+目标跟踪,提供9套工程源码和技术支持

    FPGA高端项目:FPGA帧差算法图像识别+目标跟踪,提供9套工程源码和技术支持 本设计使用Xilinx系列FPGA实现帧差算法图像识别+目标跟踪,提供vivado2019.1版本的工程源码共计9套,详情见下表: 视频输入源由多种方案可供选择,既有廉价的OV5640、OV7725摄像头,也有高分辨率的HDM

    2024年04月15日
    浏览(50)
  • yolov5-tracking-xxxsort yolov5融合六种跟踪算法(二)--目标识别

    本次开源计划主要针对大学生无人机相关竞赛的视觉算法开发。 开源代码仓库链接:https://github.com/zzhmx/yolov5-tracking-xxxsort.git 先按照之前的博客配置好环境: yolov5-tracking-xxxsort yolov5融合六种跟踪算法(一)–环境配置GPU版本 yolov5-tracking-xxxsort yolov5融合六种跟踪算法(一)–

    2024年02月22日
    浏览(50)
  • FPGA高端项目:FPGA帧差算法多目标图像识别+目标跟踪,提供11套工程源码和技术支持

    FPGA高端项目:FPGA帧差算法多目标图像识别+目标跟踪,提供11套工程源码和技术支持 本设计使用Xilinx系列FPGA实现帧差算法的多目标运动物体图像识别+目标跟踪,可实时识别多个目标的运动物体,并将其在画面中框出来实时锁定,可模拟无人机空中侦查,发现目标并实时锁定

    2024年04月29日
    浏览(46)
  • yolov8/yolov5-车辆测距+前车碰撞预警(追尾预警)+车辆检测识别+车辆跟踪测速(算法-毕业设计)

    本项目效果展示视频: https://www.bilibili.com/video/BV14d4y177vE/?spm_id_from=333.999.0.0vd_source=8c532ded7c7c9041f04e35940d11fdae 1、本项目通过yolov8/yolov7/yolov5和deepsort实现了一个自动驾驶领域的追尾前车碰撞预警系统,可为一些同学的课设、大作业等提供参考。分别实现了自行车、汽车、摩托车

    2024年02月06日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包