图像近似去重(感知hash)

更新时间:
复制 MD 格式

图像近似去重(感知hash)算子基于pHash、dHash、wHash感知哈希算法,识别视觉上很像的图片,能有效抵御图像压缩质量变化、滤镜、亮度对比度变化、噪声、改格式等影响。本文介绍图像近似去重(感知hash)算子的配置方法。

前提条件

  • 当前实例购买非结构化数据功能后,方可使用工作流功能。

  • 已完成工作流的创建,详细创建步骤请参见创建工作流

背景信息

  • 图像近似去重(感知hash)算子支持处理以下格式文件:jpg、jpeg、jpe、jfif、png、bmp、tiff、tif、webp、heic、heif、gif、ico、ppm、pgm、pbm、pnm、tga、svg。

  • 图像近似去重(感知hash)算子默认分配4Core、1GB资源。

权限说明

Basic项目的项目管理员、开发者、分析师以及拥有数据集-使用权限的自定义项目角色,可在算子的输入和输出数据集中使用该项目下的所有数据集。

操作步骤

  1. Dataphin首页的顶部菜单栏中,选择研发 > 数据研发

  2. 开发页面的顶部菜单栏选择项目

  3. 在左侧导航栏中选择数据处理 > 工作流,在左侧工作流列表中单击目标工作流,打开工作流画布,在左侧算子库中拖动图像近似去重(感知hash)算子至画布中,并在右侧图像近似去重(感知hash)面板中配置以下参数。

    参数

    描述

    步骤名称

    输入当前算子名称,支持任意字符,不超过256个字符。

    输入配置

    数据集

    选择需处理的数据集,可选择混合数据集表数据集。数据集选择完成后还需选择其版本,默认为该数据集正序的第一个版本。

    当前算子作为其他算子的下游时,此处所选数据集通常与上游算子的输出数据集一致。

    输入字段

    待处理图片的存储URL。需选择输入数据集中来源字段,仅可选择输入数据集中是否URL参数为的字段。

    过滤条件(非必填)

    使用SQL语法,仅需输入where语句后的过滤条件,支持使用系统全局变量,例如业务日期${bizdate}。

    模型配置

    处理模型

    当前仅支持系统内置模型

    哈希算法

    • pHash:综合表现更均衡,适用于大多数近重复去重场景。

    • dHash:计算速度快,适合海量图片的快速粗筛。

    • wHash:针对多次压缩、噪点及轻微模糊具备更强鲁棒性,尤其适用于低画质场景。

    算子配置

    功能模式

    去重模式将直接去除视觉重复的图片记录,仅计算hash模式仅为每条记录添加哈希值标识。

    说明

    数据集中空值不参与去重。

    判定重复标准

    对两张图像分别计算 hash值后,再计算两者的汉明距离,汉明距离越小,表示两者越相似。

    • 仅高度相似才算重复:汉明距离小于等于1。

    • 中度相似即算重复:汉明距离小于等于3,一般推荐选择此项。

    • 轻微相似也算重复:汉明距离小于等于5。

    说明

    去重模式支持配置此项。

    输出配置

    数据集

    支持选择来源数据集(直接在原数据集上去除重复项)或其他数据集(将去重后的数据写入其他数据集)。若来源数据集的元数据表不存在主键,则输出数据集默认选择其他数据集。

    当选择其他数据集时,还需指定一个混合数据集表数据集及其版本作为输出数据集,默认为该数据集正序的第一个版本;同时,支持选择来源数据集的其他版本。

    选择来源数据集时,算子产出的元数据将写入来源数据集同版本对应的元数据表中。

    加载策略

    若所选输出数据集的元数据表中存在主键,则默认选择主键冲突时更新;若不存在主键,则默认选择追加数据。

    • 追加数据:直接向目标表新增追加数据,当主键/约束冲突时,会提示错误。

    • 主键冲突时更新:当主键/约束冲突时,会先删除整行主键重复的旧数据,再插入新数据。

    • 覆盖:先删除目标表的数据,再写入数据。

    说明
    • 功能模式选择去重,且输出数据集选择其他数据集时,仅支持追加数据覆盖策略。

    • 功能模式选择去重,且输出数据集选择来源数据集时,不支持配置此项。

    • 功能模式选择仅计算hash,且输出数据集选择来源数据集时,加载策略仅支持主键冲突时更新

    字段映射

    图像近似去重(感知hash)算子将固定输出以下字段:

    image_hash:图像感知哈希值(pHash/dHash/wHash)。

    算子输出字段默认映射至输出数据集的同名字段,您也可以手动选择目标字段进行自定义映射。此外,支持将来源数据集的透传字段映射至目标数据集。您可以通过以下方式管理字段映射:

    • 新增输出字段:单击后新增一行空白字段映射关系。仅输出数据集选择其他数据集时支持此功能。

    • 批量映射:单击后可选择批量手动映射、同名映射或同行映射。仅输出数据集选择其他数据集时支持此功能。

    • 删除映射:单击删除图标可删除对应行的字段映射,但算子固定输出字段的映射不支持删除。

    说明

    功能模式选择去重时,image_hash字段映射为非必填。

  4. 配置完成后,单击画布顶部菜单栏中的保存,保存此次配置。

    单个算子配置完成后,可继续为其选择上游或下游算子来完成完整工作流的配置。