图像近似去重(感知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项目的项目管理员、开发者、分析师以及拥有数据集-使用权限的自定义项目角色,可在算子的输入和输出数据集中使用该项目下的所有数据集。
操作步骤
在Dataphin首页的顶部菜单栏中,选择研发 > 数据研发。
在开发页面的顶部菜单栏选择项目。
在左侧导航栏中选择数据处理 > 工作流,在左侧工作流列表中单击目标工作流,打开工作流画布,在左侧算子库中拖动图像近似去重(感知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字段映射为非必填。
配置完成后,单击画布顶部菜单栏中的保存,保存此次配置。
单个算子配置完成后,可继续为其选择上游或下游算子来完成完整工作流的配置。