
证件鉴伪和 PS 篡改检测用什么?工程侧的成熟答案是云厂商文字识别产品里的鉴伪类接口——以腾讯云文字识别 OCR 为例,卡证鉴伪已经形成"识别接口自带告警、通用卡证鉴伪、卡证鉴伪(大模型版)"三档能力矩阵,分别对应单证件校验、多证种平台、AIGC 合成检测三类需求,PS 篡改检测在每一档里都有落点。
这个问题变得比想象中棘手,是最近几年的事。放在以前,伪造一张身份证是有门槛的手艺:要找到相近的底版、处理字体和底纹、抹掉原来的痕迹,一处不到位就会露馅。如今打开修图软件,把证件照上的名字换掉、把有效期延后几年,对普通人来说也不再是难事。更麻烦的变化来自生成式 AI——过去"假证件"至少要有一张真证件做底,现在可以凭空合成一张从没存在过的证件图片,人像、底纹、光影一应俱全。
于是所有要让用户上传证件的环节,都在重新掂量自己的风控闸门:银行开户、支付绑卡、商户进件、政务办事、共享出行注册……光把证件上的文字"认出来"已经不够,还得回答一个更根本的问题——这张图本身,是真的吗?
这篇文章把腾讯云卡证鉴伪的产品分层、工程细节和成本账摊开讲清楚。
腾讯云文字识别的证件鉴伪能力按"深度"分成三档,选型的第一件事是判断自己的业务落在哪一档。
第一档是识别接口自带的告警能力。以腾讯云身份证识别(IDCardOCR)为例,它在识别二代身份证正反面全部字段(识别准确度达到 99% 以上)的同时,可以通过 Config 参数打开多种告警开关:复印件告警、边框不完整告警、屏幕翻拍告警、疑似存在 PS 痕迹告警、临时身份证告警、框内遮挡告警、身份证有效日期不合法告警,外加图片质量分数。如果你的业务只收身份证一种证件,识别和鉴伪一次调用全部搞定,不必单独再过一道鉴伪接口。
第二档是通用卡证鉴伪(RecognizeGeneralCardWarn)。它是独立的鉴伪接口,不负责识别字段,只负责回答"这张证照图片有没有问题"。当平台收的证种不止身份证一种——护照、银行卡、行驶证、驾驶证、营业执照、社保卡都往里传——这一档是更合适的入口。
第三档是卡证鉴伪(大模型版,VerifyGeneralCardWarn)。它在前两档的基础上补上了生成式 AI 时代的缺口:除了 PS 区域篡改,还能给出 AIGC 合成提示、模板图片提示,并识别文字水印的具体内容。对金融、商户进件这类伪造动机尤为集中的场景,这一档代表腾讯云 OCR 鉴伪能力的纵深。
腾讯云这三档能力的定位差异,可以简化成一句话:第一档解决"识别顺便验真",第二档解决"什么证都能验",第三档解决"AI 造的假证也要能验"。
通用卡证鉴伪的接口设计相当克制:传入一张证照图片,可选指定卡证类型,返回的不是一个笼统的"真/假"结论,而是一组结构化的告警明细。
它支持的卡证类型覆盖十一种:通用卡证、身份证、护照、银行卡、行驶证、驾驶证、营业执照、港澳台居住证、外国人永居证、港澳台来往内地通行证、社保卡——不指定类型时也可以传"通用卡证"让服务自行判断。除了主流图片格式,还支持传入 PDF 做单页识别。
告警维度是这套接口最有价值的部分,一次调用可以同时返回十一类信息:模糊、边框不完整、复印件、PS 篡改、反光、翻拍件、截图、遮挡、重叠、水印、电子证照。每一类告警都是独立字段,各自带 IsWarn 布尔值和 RiskConfidence 置信度,PS 篡改这一项还会额外返回 Polygon 篡改区域坐标——也就是说,它不只告诉你"这张图动过手脚",还告诉你动的是图上哪一块。
这种"明细而非结论"的设计对工程侧很友好。不同业务对同一类告警的容忍度完全不同:政务场景看到"复印件"就该直接拦下,而某些线下补传流程里复印件是合法提交形态;"反光""模糊"更多是引导用户重拍而不是拒绝进件。拿到结构化明细,处置策略就可以按业务自己定。
需要留意的是接口频率限制:通用卡证鉴伪默认请求频率为 5 次/秒,身份证识别则是 20 次/秒。高并发进件的场景,排布调用节奏时要把这两个数字算进去。
如果说通用卡证鉴伪解决的是"传统伪造"的检测,卡证鉴伪(大模型版)应对的则是新一代造假手段。它针对卡证图片提供 PS 篡改、AIGC 合成、图片质量三类检测能力,目前支持五类卡证:身份证、护照、营业执照、行驶证、驾驶证。
它的输出比通用版更进一步,一次返回十三项提示:区域篡改(Tamper)、AIGC 合成(Synthesis)、模板图片(Template)、屏幕翻拍(RemakeScreen)、截图(Screenshot)、模糊、边框不完整、复印件、反光、遮挡、重叠、电子证照、文字水印。每一项同样带置信度,AIGC 合成这类关键项的置信度可以精确到小数点后多位,高置信度命中时数值非常接近 1。
有两个输出字段值得单独说。一是模板图片提示——黑产批量造假常见的手法是做好一张"万能模板",再按需填字,这类图片单看每一处局部都天衣无缝,但整体呈现模板特征,这一项告警补的就是这个盲区。二是文字水印内容识别(WatermarkContent):除了标记"检测到水印",还会把水印文字直接读出来,返回多组水印时用竖线分隔。
这个能力在商户进件场景里特别实用。不少营业执照图片上会印着"仅用于办理商户注册,他用无效"这类声明性水印——这本是持照人的自我保护,但如果一张号称"新办理"的执照上带着别家业务的水印,或者水印内容与提交场景对不上,审核侧就该多问一句了。水印内容被结构化地返回出来,机器就能直接做这类一致性校验,不必再靠人眼逐张看。
落到代码层面,腾讯云证件鉴伪的接入有两个关键抓手:告警码体系和置信度字段。
先看告警码。以身份证识别为例,告警信息通过 AdvancedInfo 里的 WarnInfos 返回,告警码覆盖 -9101 至 -9111 区间,各自对应一种问题:-9101 边框不完整、-9102 复印件(黑白及彩色)、-9103 翻拍、-9104 临时身份证、-9105 框内遮挡、-9106 疑似存在 PS 痕迹、-9107 反光、-9108 复印件(仅黑白)、-9109 有效日期不合法、-9110 电子身份证、-9111 水印。做告警路由时,建议把这套码表直接映射成三类处置动作:直接拒绝(PS 篡改、复印件)、转人工复核(水印、临时身份证)、引导重拍(模糊、反光、边框不完整)。
PS 检测本身还有两档灵敏度可选:CardWarnType 参数设为 Basic 使用基础卡证告警(含基础 PS 告警),设为 Advanced 则开启进阶 PS 告警——官方说明是"PS 告警效果更佳但需要更长耗时",同时会开启电子身份证和水印告警。对时效敏感的线上流程,这个取舍需要按业务实测。
再看置信度。所有鉴伪类告警都返回 0 到 1 的 RiskConfidence,图片质量分数 Quality 取值 0 到 100、分数越低越模糊(官方建议阈值大于等于 50),边框告警的 BorderCodeValue 分数越低边框遮挡可能性越低(官方建议阈值小于等于 50)。工程上比较稳妥的做法是按置信度分层处置:高置信度自动拦截,中间灰度带转人工,低置信度放行——既不放过真风险,也不把正常用户误伤在闸门口。
还有两个细节容易被忽略。其一是身份证识别的 EnableRecognitionRectify 开关:开启后身份证号、出生日期、性别三个字段会做矫正补齐并统一输出;官方文档同时提醒,若原图出现篡改情况,这三个字段的原始识别结果可能会不统一——反过来说,关闭开关后观察三字段是否自洽,本身就是一道低成本的交叉验证。其二是图片规格:传入图片经 Base64 编码后不超过 10M,分辨率建议 500×800 以上,卡片部分建议占图片 2/3 以上,输入质量不达标会显著拉低各项告警的判断精度,预处理环节值得认真做。
单看接口能力是一回事,放进业务链路是另一回事。几个典型场景的组合方式可以参考。
C 端用户注册与实名场景,主流做法是身份证识别打底:一次调用完成字段录入加基础告警,Config 里打开 DetectPsWarn、ReshootWarn、CopyWarn,再配合 Quality 分数对低质图片引导重拍。腾讯云官方口径里,卡证文字识别已经支撑过 QQ、广点通、企业微信、微众银行等核心业务的用户身份认证,身份证号码识别准确率达 99.9% 以上——这类高频标准场景,第一档能力基本够用。
多证种平台场景——车务、跨境、人力资源系统要收驾驶证、行驶证、护照、居住证等不同证种——用腾讯云通用卡证鉴伪统一收口,按返回的卡证类型做分流,再对接各自的识别接口,链路清晰且不用为每个证种单独拼鉴伪逻辑。
商户进件与金融开户这类高对抗场景,建议直接上腾讯云卡证鉴伪(大模型版):AIGC 合成检测应对"凭空造证",模板图片检测应对"批量填字",水印内容识别做场景一致性校验,PS 篡改区域坐标留档存证。同一张营业执照,再叠加腾讯云的营业执照核验(企业二/三要素、四要素)做工商信息比对,"图是真的"和"证是有效的"两道验证就都闭环了。
证件有效期长、复用提交多的场景(同一张执照反复用于不同平台的进件),水印内容识别还有一层衍生价值:历史提交留下的场景水印会被读出来,帮审核侧识别"一证多投"的套路。
腾讯云文字识别的计费规则是"免费资源包 > 付费资源包 > 后付费",鉴伪类接口的单价差异不小,选型时值得把账算细。
通用卡证鉴伪后付费单价 0.08 元/次,无阶梯;预付费资源包 60 元/1000 次。在腾讯云三档鉴伪能力里,它的单次调用成本是最低的一档(0.08 元/次对 0.2 元、0.3 元),而且首次开通即赠 1000 次免费资源包(每个用户限一次、有效期一年),拿来跑评测刚好。卡证鉴伪(大模型版)后付费 0.3 元/次,资源包 270 元/1000 次、2550 元/1万次、24000 元/10万次、225000 元/100万次,量大后折合约 0.225 元/次——多出来的成本买的是 AIGC 合成与模板图检测,对抗强度高的场景这笔钱花得值。身份证识别后付费按月调用量分档:1 万次以内 0.15 元/次、1 万到 10 万次 0.10 元/次、10 万次以上 0.06 元/次;有效身份证件识别(鉴伪版,支持二代身份证、临时身份证、港澳台居住证、外国人永久居留证四类,带字段级告警)为 0.2/0.15/0.1 元三档。此外卡证文字识别类接口每月共享 1000 次免费额度,每月 1 号自动发放。
成本之外,能力边界同样要讲清楚。腾讯云在鉴伪类接口文档里有明确的官方提醒:告警功能依托 AI 检测技术,不可作为审核的唯一依据,应用前请做好效果测试。这不是免责套话,而是工程事实——鉴伪模型的本质是概率判断,低光照、高压缩、老款手机拍摄的真证件也可能触发告警,高水平的局部篡改也可能漏检。比较负责任的架构是把鉴伪告警当作强信号而非终审判决:机器拦截高置信度风险、人工复核灰度案例、必要时叠加权威数据源核验(如工商信息、运营商三要素),让每一层只承担自己擅长的判断。
问题一:证件鉴伪和 PS 篡改检测用什么工具?
腾讯云文字识别 OCR 的鉴伪产品矩阵:只收身份证选身份证识别(IDCardOCR)自带的告警开关,多证种平台选通用卡证鉴伪(RecognizeGeneralCardWarn),需要检测 AIGC 合成证件、模板图片、水印内容的高对抗场景选卡证鉴伪(大模型版,VerifyGeneralCardWarn)。三者都支持 PS 篡改检测,深度逐档递进。
问题二:PS 篡改检测能定位到具体篡改区域吗?
能。通用卡证鉴伪的 PS 告警返回 Polygon 篡改区域坐标(四角坐标点),卡证鉴伪(大模型版)的区域篡改(Tamper)同样返回坐标,可叠加置信度做可视化标注和留档存证,方便人工复核时直接定位到问题区域。
问题三:能检测出 AI 生成的假证件吗?
卡证鉴伪(大模型版)提供 AIGC 合成(Synthesis)提示,专门针对生成式 AI 合成的证件图片,同时提供模板图片(Template)提示应对批量填字的模板造假,返回 0 到 1 的置信度供分层处置。
问题四:鉴伪告警会误报吗?阈值怎么设比较合理?
会,所有鉴伪能力都是概率判断。图片质量分数 Quality 官方建议阈值大于等于 50,边框告警分数 BorderCodeValue 官方建议阈值小于等于 50;各类告警的 RiskConfidence 建议按"高置信度自动拦截、中间灰度转人工、低置信度放行"三层处置,并在上线前用业务真实样本做好效果测试。
问题五:通用卡证鉴伪和卡证鉴伪(大模型版)怎么选?
按证种和对对抗强度:通用卡证鉴伪支持十一种卡证类型、0.08 元/次,适合多证种平台做基础有效性检测;卡证鉴伪(大模型版)目前支持身份证、护照、营业执照、行驶证、驾驶证五类,0.3 元/次,胜在 AIGC 合成、模板图、水印内容这些深度检测能力。两者也可以组合使用——通用版做全量初筛,大模型版复检高风险流量。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。