ONNX 模型库
返回模型

说明文档

虹膜语义分割模型卡片

模型概述

本卡片内容涉及一个用于眼部语义分割的模型。当输入红外图像时,模型会根据其能区分的各类别为像素分配标签:eyeball(眼球)、iris(虹膜)、pupil(瞳孔)和 eyelashes(睫毛)。

模型架构

模型架构基于 UNet++ [1]。UNet++ 是一种完全卷积神经网络,专为图像语义分割而设计。它包含编码器和解码器,通过跳跃连接相连。编码器捕获不同空间分辨率的特征(利用跳跃连接),解码器则利用这些特征生成精确的分割掩码。值得注意的是,UNet++ 中的解码器比标准 UNet 模型具有更高的复杂度。

MobileNetV2 [2] 架构作为我们模型的编码器。在推理阶段,编码器产生五组特征图张量,每组对应不同的编码深度。后续特征图张量的空间维度相比前一组减少一半。例如,在深度 0 生成的张量维度为 [(batch_size, num_channels, height, width)],而在深度 1 生成的张量维度为 [(batch_size, num_channels, height / 2, width / 2)]。

解码器通过在每个解码层添加空间和通道"挤压与激励"(scSE)块 [3] 进行增强。

数据集

重要的是,没有使用任何 Worldcoin 用户数据来训练或微调 IRIS 流水线。相反,模型是使用研究数据集进行训练的。训练期间使用的数据集来自:

  • ND-IRIS-0405 [4]
  • CASIA-Iris-Interval [5]
  • CASIA-Iris-Lamp [5]
  • CASIA-Iris-Thousand [5]
  • CASIA-Iris-Twins [5]
  • IIT Delhi Iris Database (IITD) [6]
  • LivDet2013-Iris [7]
  • LivDet2015-Iris [8]
  • LivDet2017-Iris [9]
  • Multimedia University Iris Database (MMU) [10]

实验数据集共包含 18,431 张标注的红外图像。下表展示了训练语义分割模型时使用的数据集划分。

数据集类型 图像数量
训练集 14685
验证集 1880
测试集 1866

性能

语义分割性能

在整个数据集上测量

指标 数值
eyeball_IoU 0.986
iris_IoU 0.978
pupil_IoU 0.978
eyelashes_IoU 0.798
mIoU 0.943
eyelashes_inside_iris_IoU 0.791
boundary_confidence_pupil 0.965
boundary_confidence_iris 0.907
chamfer_eyeball 1.689
chamfer_iris 1.868
chamfer_pupil 0.680

在特定数据集上测量

名称 test_IoU_eyeball test_IoU_eyelashes test_IoU_iris test_IoU_pupil test_boundary_confidence_iris test_boundary_confidence_pupil test_chamfer_dist_eyeball test_chamfer_dist_iris test_chamfer_dist_pupil test_mIoU test_mIoU_eyelashes_inside_iris
CASIA-Iris-Interval 0.992 0.885 0.977 0.983 0.868 0.959 1.230 3.132 0.673 0.970 0.876
CASIA-Iris-Lamp 0.987 0.844 0.988 0.983 0.979 0.988 0.683 0.482 0.295 0.953 0.836
CASIA-Iris-Thousand 0.987 0.823 0.989 0.981 0.981 0.988 0.637 0.430 0.252 0.956 0.767
CASIA-Iris-Twins 0.986 0.837 0.986 0.981 0.966 0.984 0.998 0.865 0.710 0.949 0.840
IITD 0.990 0.868 0.975 0.979 0.843 0.944 3.424 3.564 0.939 0.966 0.861
LivDet2013-Iris 0.980 0.853 0.985 0.977 0.973 0.977 1.242 0.518 0.393 0.945 0.851
LivDet2015-Iris 0.978 0.844 0.984 0.974 0.955 0.958 1.524 0.794 0.608 0.938 0.870
LivDet2017-Iris 0.978 0.791 0.981 0.956 0.956 0.973 1.920 1.274 1.204 0.921 0.738
MMU 0.983 0.845 0.985 0.980 0.960 0.980 1.405 0.821 0.500 0.946 0.765
ND-IRIS-0405 0.981 0.750 0.977 0.975 0.918 0.969 1.757 1.653 0.739 0.917 0.676

时间性能

本地机器

模型 PyTorch CPU PyTorch GPU ONNX CPU ONNX GPU
时间 (ms) 295 ± 4.52 12.5 ± 0.42 193 ± 0 12.2 ± 0.75

Orb 机器

模型 TensorRT 32-bits TensorRT 16-bits
时间 (ms) 115 ± 50.9 53.84 ± 7.8

如何使用模型

输入

模型期望输入一个维度为 Nx3x640x480 的张量封装的红外图像(分别表示批次大小、通道数、高度和宽度)。图像像素必须缩放至 1 / 255.0,并使用 z-score 归一化算法进行归一化。归一化过程对各通道分别使用均值 [0.485, 0.456, 0.406] 和标准差 [0.229, 0.224, 0.225]。需要注意的是,尽管红外图像本质上是灰度图,但包含三个通道乍看之下可能令人困惑。这种特殊设计源于训练过程中采用了迁移学习技术,使用了在 RGB 丰富的 ImageNet 数据集上预训练的 MobileNetV2 模型。

输出

模型输出一个维度为 Nx4x640x480 的张量,分别表示批次大小、分割类别、高度和宽度。张量的分割类别索引与对应类别名称的映射如下:

  • 0: eyeball(眼球)
  • 1: iris(虹膜)
  • 2: pupil(瞳孔)
  • 3: eyelashes(睫毛)

对于每个类别,模型生成概率估计,表示给定像素归属于特定类别的可能性。

推理结果示例

注意:提供的输入图像在输入模型之前已按照前述处理方法进行了处理。此外,为了可视化目的,展示的红外图像已进行匿名化处理以保护用户身份。还需注意的是,推理过程是在原始、非匿名化版本的图像上进行的。

输入图像

<img src="https://github.com/worldcoin/open-iris/blob/main/docs/model_card/anonymized.png?raw=true" alt="匿名化输入图像" width=640 height=480>

输出掩码

注意:对每个结果概率矩阵应用了 0.5 的阈值,以生成每个类别的确定二值掩码。同时,每个输出的分割图都已调整为输入图像的分辨率。

<img src="https://github.com/worldcoin/open-iris/blob/main/docs/model_card/overlayed_segmaps.png?raw=true" alt="分割图">

局限性

通过对结果的深入分析,我们确定了分割模型性能下降的几种情况:

  • 分割具有高镜面反射(通常来自眼镜)的图像可能导致较差的分割图预测。
  • 模型训练所基于的数据是在受控环境下配合配合度高的用户采集的。因此,在实践中,模型对于以下情况预期会产生较差的分割图:视线偏移、眼睛未对准、模糊图像等。

延伸阅读

  1. Zhou, Z., Rahman Siddiquee, M. M., Tajbakhsh, N., & Liang, J. (2018). UNet++: A nested U-Net Architecture for Medical Image Segmentation. (https://arxiv.org/abs/1807.10165v1)
  2. Sandler, M., Howard, A., Zhu, M., Zhmoginov, A., & Chen, L. C. (2018). MobileNetV2: Inverted Residuals and Linear Bottlenecks. (https://arxiv.org/abs/1801.04381)
  3. Roy, A. G., Navab, N., & Wachinger, C. (2018). Recalibrating Fully Convolutional Networks with Spatial and Channel "Squeeze and Excitation" Blocks. (https://arxiv.org/abs/1808.08127v1)
  4. Bowyer, K. , Flynn, P. (2016), The ND-IRIS-0405 Iris Image Dataset (https://arxiv.org/abs/1606.04853)
  5. http://biometrics.idealtest.org/
  6. http://www4.comp.polyu.edu.hk/csajaykr/IITD/Database_Iris.htm
  7. D. Yambay, J.S. Doyle, K.W. Bowyer, A. Czajka, S. Schuckers Livdet-iris 2013 - iris liveness detection competition 2013
  8. D. Yambay, B. Walczak, S. Schuckers, A. Czajka Livdet-iris 2015 - iris liveness detection competition 2015
  9. D. Yambay, B. Becker, N. Kohli, D. Yadav, A. Czajka, K.W. Bowyer, S. Schuckers, R. Singh, M.Vatsa, A. Noore, D. Gragnaniello, C. Sansone, L. Verdoliva, L. He, Y. Ru, H. Li, N. Liu, Z. Sun, T. Tan Livdet iris 2017 - iris liveness detection competition 2017
  10. https://mmuexpert.mmu.edu.my/ccteo

Worldcoin/iris-semantic-segmentation

作者 Worldcoin

↓ 0 ♥ 18

创建时间: 2023-12-12 16:16:27+00:00

更新时间: 2024-05-16 12:08:48+00:00

在 Hugging Face 上查看

文件 (6)

.gitattributes
LICENSE-APACHE.md
LICENSE-MIT.md
README.md
iris_semseg_upp_scse_mobilenetv2.engine
iris_semseg_upp_scse_mobilenetv2.onnx ONNX