基于YOLOv8分割模型的人眼瞳孔追踪
项目文件说明
- config.yaml:YOLOv8语义分割模型所需的配置文件。
- eye_tracking_v2.ipynb:包含用于训练和评估YOLOv8语义分割模型的Python脚本。
- masks_to_polygon.py:将标签图像(即掩码)转换为YOLO格式(.txt文件)的Python脚本,用于训练模型。
- yolov8l-seg.pt:包含模型的所有权重。使用模型时需导入此语义分割模型。
- run\segment:文件夹包含YOLOv8语义分割模型的所有预测和验证结果。
- Prediction_eye_video.mp4:视频展示了语义分割模型的结果,即使用YOLOv8分割模型在视频中追踪人眼瞳孔。
背景介绍
图像分割(也称为对象分割)是为图片中的每个像素值分配类别的过程。人脸语义分割可以帮助计算机视觉系统完成年龄识别、性别和种族预测、表情识别等任务。这些任务通过语义分割实现,它将面部区域划分为关键特征,包括嘴巴、下巴、鼻子、眼睛和头发。
仅通过图像中的类别,我们可以使用目标检测模型构建边界框。然而,由于边界框是方形或矩形的,它无法揭示对象的形状。图像分割为每个对象提供逐像素的掩码,有助于理解对象的细节。
语义分割:语义分割是为图像中的每个像素分配标签的过程。这与分类形成鲜明对比,分类是为整个图片分配单一标签。语义分割将同一类别的多个对象视为单个实体。
评估指标:交并比(IoU方法):IoU指标将目标掩码和预测掩码中包含的总像素数除以它们之间共享的像素数。
方法
本研究使用的数据集包含从不同角度拍摄的IR相机人眼瞳孔图像。数据集由15个不同人物的瞳孔图像组成。
我们使用计算机视觉标注工具(CVAT)创建标注图像,这些图像显示在CVAT用户控制台中,用于训练YOLOv8语义分割模型。CVAT是一个免费、开源、基于网络的图像和视频标注工具,用于为计算机视觉算法标注数据。CVAT最初由英特尔开发,专为专业数据标注团队设计,用户界面针对计算机视觉标注任务进行了优化。
在创建训练输入数据后,我训练了YOLOv8模型100个epoch,并获得了0.995的优异平均精度。下图展示了预测结果。
结果
YOLOv8目标分割模型经过训练并实现,能够在视频中实时检测和追踪人眼瞳孔,置信度为0.80时F1得分为0.98。
以下是模型的结果:
下图展示了分割模型的验证结果。