人脸识别中的Training set, Gallery set 和 Probe set

本文详细解读了步态识别中Galleryset(人脸库)与Probeset(待验证库)的概念,涉及它们在训练、验证过程中的作用,以及如何通过距离计算进行人脸匹配。

参考文献:
Gallery set 和 Probe set
步态识别中Probe Set和Gallery Set的理解


  • 之前看人脸识别相关的paper的时候,出现了这些名词,所以记录一下;
  • 如果有不对的地方,还希望批评指正。

  • Training set:训练模型用的数据集;
  • Gallery set: ground- truth的人脸库,用来与Probe set中的人脸图比对;
  • Probe set:待验证的人脸库,与Gallery set的人脸库比对,跟Gallery set的人脸库中哪张人脸的距离(余弦距离、欧氏距离等)近,就是哪张人脸;
  • 注:Training set、Gallery set和Probe set中的图,两两之间互不重复。
Surveillance Face Recognition Challenge # ======================== Dataset Structure ========================== # "Training_Set": Ordered by face identities, i.e. each directory contains face images from a specific training identity. There are a total of 5,319 directories each is named by the corresponding identity. The image file name is in format of [PersonID]_[CameraID]_[ImageName].jpg. "Face_Identification_Test_Set" -"gallery": containing 60,294 gallery images from 5,319 test identities (IDs). -"mated_probe": containing 60,423 probe images from 5,319 test IDs, with mated gallery true match images in the "gallery" folder. -"unmated_probe": containing 12,1736 distractor probe face images without mated gallery true match images in the "gallery" folder, i.e. the open-set face identification scenario. -"gallery_img_ID_pairs.mat": the gallery image names and the corresponding face IDs -"mated_probe_img_ID_pairs.mat": the mated probe image names and the corresponding face IDs "Face_Verification_Test_Set": -"verification_images": containing 10,051 images, a subset of the whole test set, randomly sampled to build 5,320 positive and 5,320 negative pairs -"positive_pairs_names.mat": 5320_by_2 cell specifying the image pairs of 5,320 positive pairs -"negative_pairs_names.mat": 5320_by_2 cell specifying the image pairs of 5,320 negative pairs # ======================== Evaluation Instruction ========================== # *** Open-Set Face Identification Evaluation ("Face_Identification_Evaluation") *** 1. Extract features of "gallery" images according to the order defined by "gallery_img_ID_pairs.mat", put them in a matrix called "gallery_feature_map" ([image_number]_by_[feature_dimension]), and save the matrix in a mat file named "gallery.mat" 2. Extract features of "mated_pr
03-10
### drm_client_modeset_probe 函数的作用与实现分析 #### 1. 函数概述 `drm_client_modeset_probe` 是 Linux DRM (Direct Rendering Manager) 框架中的一个重要函数,主要用于客户端模式设置的探测过程。它的主要职责是在初始化阶段检测并配置显示子系统的模式设置信息[^1]。这包括但不限于解析 EDID 数据、枚举支持的分辨率刷新率,并最终建立有效的 CRTC(Cathode Ray Tube Controller)、Plane Connector 配置链路。 --- #### 2. 函数的主要作用 该函数的核心目标是为 DRM 客户端准备必要的显示环境,以便后续能够正常渲染图像。以下是其具体作用分解: - **EDID 解析**:从连接的显示器中读取 EDID 数据,提取有关分辨率、刷新率支持的颜色格式的信息。 - **Mode List 构建**:基于解析后的 EDID 数据,生成一组可供使用的显示模式列表。 - **Connector 初始化**:将解析好的 Mode List 关联到具体的 `drm_connector` 对象上,确保每个输出设备都有对应的模式集合。 - **CRTC/Encoder 链接**:验证并链接 Encoder CRTC 至相应的 Connectors 上,从而形成完整的显示路径。 - **Fallback 处理**:如果未能成功获取 EDID 或者其他异常情况发生时,启用默认的安全模式作为回退方案。 这些操作共同保障了即使面对复杂多样的硬件平台也能维持稳定的初始状态。 --- #### 3. 函数实现细节 下面是关于 `drm_client_modeset_probe` 的典型实现逻辑及其关键步骤: ##### (1)调用入口 此函数一般由更高层次的服务启动触发,例如在驱动程序探针 (`probe`) 方法期间被间接调用。它可能位于某个特定于 SoC 的 DRM 驱动模块内部或者通用 DRM 核心库之中。 ##### (2)核心处理流程 以下是简化版伪代码表示其实现思路: ```c int drm_client_modeset_probe(struct drm_device *dev, struct drm_client_dev *client) { int ret; /* Step 1: Enumerate all connectors */ list_for_each_entry(connector, &dev->mode_config.connector_list, head) { if (!connector->funcs || !connector->status) continue; /* Step 2: Read and parse EDID information */ edid = drm_get_edid(connector, bridge); if (!edid && connector->force != DRM_FORCE_ON) { dev_warn(dev->dev, "No valid EDID found\n"); goto fallback_mode; } /* Step 3: Build mode list based on parsed EDID */ modes = drm_add_edid_modes(dev, edid); /* Step 4: Attach built-in preferred mode or best match */ if (modes && client->preferred_mode) { ret = drm_set_preferred_mode(client, modes); if (ret < 0) goto cleanup; } } fallback_mode: /* Fallback mechanism when no suitable mode detected */ default_mode = drm_create_default_mode(); if (!default_mode) return -EINVAL; cleanup: kfree(edid); return ret ? : 0; } ``` 在此过程中可以看到几个重要环节: - **遍历所有已知 Connectors**:逐一访问当前 DRM 设备实例下的每一个连接器节点。 - **尝试抓取关联 EDID**:对于每个活跃的连接器,试图从中抽取可用的 EDID 描述符。 - **动态扩充 Mode Table**:依据获得的 EDID 结果填充进全局模式表单里头。 - **优先级判定机制**:挑选最贴近用户期望值的那个模式设作首选项。 - **应急措施安排**:倘若常规途径失败,则转而采用内置缺省模板填补空白区域。 --- #### 4. 实际应用场景举例 假设我们正在开发一款 Rockchip 平台上运行的新款 Android TV Box 。为了使图形界面能够在开机瞬间迅速呈现出流畅的画面体验,我们需要依赖 `drm_client_modeset_probe` 来提前做好充分准备工作。通过预先扫描外接电视机种的各项属性指标,我们可以精确得知哪些参数范围最为合适,进而指导 GPU 渲染引擎做出相应调整优化性能表现[^3]。 另外值得注意的是,在某些特殊场景下(如虚拟 KMS 测试环境中),也可以单独运用此类接口模拟真实世界里的各种可能性状况来进行调试验证工作[^2]。 --- #### 5. 总结 综上所述,`drm_client_modeset_probe` 不仅承担着发现潜在显示能力的任务,还肩负起搭建初步框架结构的责任。它是整个 DRM 显示管道得以顺利运作不可或缺的一环。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值