用途:识别同一图像内被复制并粘贴到另一处的区域,用于发现文档篡改,例如证件照被替换、证件号码被克隆等复制-移动式伪造。资料建议将其与 ELA 一并作为文档完整性检测流程的组成部分。
主要能力与判定:基于 SIFT 关键点与描述子做自匹配检测。先用 BFMatcher(NORM_L2)对描述子做 knnMatch(k=3),再筛选可疑匹配:查询点与训练点索引不同、两点像素距离大于 MIN_DIST_PIXELS=50、且最佳匹配距离小于次佳匹配距离的 0.75 倍。可疑匹配数量达到 min_matches(默认 10)即判定检出,置信度按 min(len(suspicious)/(min_matches*3), 1.0) 计算。阈值参考:match_count >= 10 且 confidence > 0.3 时标记 COPY_MOVE_DETECTED。与 ELA 联合使用时,若两者都发现异常则篡改置信度较高。
安装与使用:需安装 pip install opencv-contrib-python-headless(SIFT 所需)。核心实现为 detect_copy_move(img, min_matches=10),接收图像(BGR)并返回是否检出与置信度;图像先转为灰度再用 cv2.SIFT_create() 提取关键点与描述子。当描述子为空或关键点少于 min_matches 时直接返回未检出、置信度 0.0。
限制与注意事项:带有全息图或重复图案的文档易产生误报;建议按文档类型校准 min_matches。ORB 比 SIFT 更快但精度更低。资料未提供具体性能指标、支持的文件格式、批量处理方式或界面,暂未提供。