我是靠谱客的博主 醉熏台灯,最近开发中收集的这篇文章主要介绍使用网络摄像头进行眼睛注视估计,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

让我们看看下面的情况,你坐在图书馆里,你刚刚看到最漂亮的女人坐在图书馆的另一边。哎呀,她发现你在盯着她看。她估计你的目光在盯着她,而你通过理解她的目光指向你,注意到被她抓个正着。

眼睛凝视:一个人的眼睛聚焦的点

就像我们惊人的大脑毫不费力地完成许多任务一样,这是一个很难“教”计算机的问题,因为我们需要执行几项艰巨的任务:

  • 人脸识别

  • 眼睛识别和瞳孔定位

  • 确定头部和眼睛的 3D 定位

商业凝视跟踪器有各种形状和大小。从眼镜到屏幕的基础解决方案。但是,尽管这些产品精度很高,但它们使用的是专有软件和硬件,而且非常昂贵。

让我们开始构建我们的视线跟踪器

为了使这篇博客的篇幅保持合理,我们将构建一个基本的注视跟踪形式。有几个粗略的估计。而且我们不会确定确切的注视点,而是确定注视方向。

5ef6958f124dc0c180678e163cbfcbb8.gif

凝视是相对于镜头的,而我坐在镜头下

人脸识别和瞳孔定位

对于这项任务,我们将使用MediaPipe(https://google.github.io/mediapipe/solutions/face_mesh.html),这是一个由 Google 开发的惊人的深度学习框架,它将实时为我们提供 468 个 2D 人脸地标,而使用很少的资源。

让我们看一些代码:

import mediapipe as mp
import cv2
import gaze

mp_face_mesh = mp.solutions.face_mesh # initialize the face mesh model

# camera stream:
cap = cv2.VideoCapture(1)
with mp_face_mesh.FaceMesh(
        max_num_faces=1,                            # number of faces to track in each frame
        refine_landmarks=True,                      # includes iris landmarks in the face mesh model
        min_detection_confidence=0.5,
        min_tracking_confidence=0.5) as face_mesh:
    while cap.isOpened():
        success, image = cap.read()
        if not success:                            # no frame input
            print("Ignoring empty camera frame.")
            continue
        # To improve performance, optionally mark the image as not writeable to
        # pass by reference.
        image.flags.writeable = False
        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # frame to RGB for the face-mesh model
        results = face_mesh.process(image)
        image = cv2.cvtCo

最后

以上就是醉熏台灯为你收集整理的使用网络摄像头进行眼睛注视估计的全部内容,希望文章能够帮你解决使用网络摄像头进行眼睛注视估计所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部