一、前言
1.1 背景与危害
AI生成(AIGC)技术的快速发展给社会带来了一系列严重的问题和挑战。其中包括截图伪造、生成式图片和身份信息泄露等方面。
首先,AI造假技术使得截图伪造变得更加容易和逼真。通过使用AI技术,可以轻松地修改和伪造截图,使其看起来与原始截图几乎没有区别。这使得虚假信息更加难以辨别,给社会带来了巨大的信息安全风险。虚假截图可能被用于传播虚假信息、篡改证据、进行网络诈骗等违法犯罪行为。
其次,生成式图片技术也是AI造假的重要方面。通过生成对抗网络(GAN)等技术,可以生成逼真的虚假图片。这些虚假图片可能被用于虚假广告、造假证据、网络欺诈等目的。生成式图片的逼真程度越来越高,使得辨别真假变得更加困难。
此外,AI技术的滥用也可能导致个人身份信息的泄露。通过分析个人照片、社交媒体信息和其他公开数据,AI可以生成逼真的人脸图像,并用于冒充他人身份。这给个人隐私和数据安全带来了严重的风险。
1.2会议探讨
图像作为信息的主要来源之一,随着人工智能的发展,利用AI进行图像伪造和篡改行为已成为一个严重的安全挑战。为了应对这一挑战,中国信息通信研究院(中国信通院)在2023年世界人工智能大会(WAIC)上组织了一个专题论坛,主题是“多模态基础大模型的可信AI”。
1.3 技术先行
提前布局,合合信息AI图像安全技术助力行业健康发展。合合信息AI图像安全技术方案主要包括三项重点技术:AI图像篡改检测、生成式图像鉴别、OCR对抗攻击技术,以应对日益高发的恶意P图、生成式造假和个人信息非法提取现象。
二、亮点技术1:AI图像篡改检测技术
2.1 传统方法Python实现步骤
AI图像篡改检测技术的实现步骤通常包括以下几个方面:
-
数据收集和预处理:首先需要收集大量的正常和被篡改的图像数据,并对这些数据进行预处理,如缩放、裁剪、归一化等操作,以便于后续的分析和处理。
-
特征提取和选择:在对图像进行分析之前,需要先从图像中提取出一些有用的特征,如颜色、纹理、形状等。然后根据实际需求,选择合适的特征进行分析。
-
模型训练和优化:基于所选的特征,使用深度学习算法(如卷积神经网络)训练出一个能够识别图像篡改的模型。在训练过程中,需要不断调整模型参数和超参数,以提高模型的准确性和鲁棒性。
-
模型测试和评估:在完成模型训练后,需要对其进行测试和评估,以检验其在实际应用中的性能和效果。常用的评估指标包括准确率、召回率、F1值等。
-
应用部署和维护:当模型经过测试和评估后,可以将其部署到实际应用场景中,如银行、保险等领域。同时,还需要对模型进行持续的维护和更新,以保证其在不断变化的应用环境中的稳定性和可靠性。
以下是一个简单的 Python 图像篡改检测代码示例:
import cv2
import numpy as np
def detect_tampering(image_path):
# 加载图像
image = cv2.imread(image_path)
# 将图像转换为灰度图
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 计算图像的梯度
gradient_x = cv2.Sobel(gray, cv2.CV_64F, 1, 0, ksize=3)
gradient_y = cv2.Sobel(gray, cv2.CV_64F, 0, 1, ksize=3)
# 计算梯度幅值
gradient_magnitude = np.sqrt(gradient_x**2 + gradient_y**2)
# 对梯度幅值进行阈值处理
threshold = np.max(gradient_magnitude) * 0.1
gradient_magnitude[gradient_magnitude < threshold] = 0
# 统计图像中非零像素的数量
non_zero_pixels = np.count_nonzero(gradient_magnitude)
# 根据非零像素数量判断是否有篡改
if non_zero_pixels > 0.01 * gradient_magnitude.size:
print("图像被篡改")
else:
print("图像未被篡改")
# 使用示例
detect_tampering("image.jpg")
这个代码使用 Sobel 算子计算图像的梯度,并通过阈值处理将梯度幅值较小的像素设为零。然后根据非零像素数量来判断图像是否被篡改。如果非零像素数量超过图像总像素数的 1%,则认为图像被篡改。
不过这种开源代码检测的效果远远比不上下面合合信息检测工具的效果。
2.2 合合信息——PS纂改检测体验
(1)打开合合信息官网:b.intsig.com/ocr,点击PS纂改检测
(2)点击申请试用
(3)仿纂改检测效果展示,被篡改地方都是以热力图的形式展示图像区域
这项名为“PS篡改检测”的技术,以其强大的“像素级”分析能力而脱颖而出。它能够深度挖掘图像被篡改后的特征变化,覆盖了包括身份证、护照等多种重要证件识别类目。
合合信息的篡改检测技术再升级可以检测多种截图、转账记录、交易记录、聊天记录等。不论是采用“复制移动”手段,将关键要素从原图中“抠下”并移动至其他位置,还是通过“擦除”、“重打印”等方式进行的图片篡改,合合信息的图像篡改检测技术都能准确识别。这项技术利用先进的深度学习和计算机视觉算法,能够精准分析图像的特征、纹理和结构,从而识别出任何形式的篡改。
给定一张图片,输入到合合信息篡改检测模型中,便能够判别这张图像是否被篡改,并且定位出篡改图像的篡改区域:
相比于证照篡改检测,截图检测更加困难。截图的背景通常没有纹路和底色,整个截图缺乏光照差异。而证件篡改识别可以通过拍照时产生的成像差异来判断篡改痕迹,但截图则没有这些“信息”。因此,现有的视觉模型往往难以充分发掘原始图像和篡改图像之间的细粒度差异特征,导致准确率不高。
为了解决这个问题,合合信息提出了一种基于HRNet的编码器-解码器结构的图像真实性鉴别模型。这种模型结合了图像本身的信息,包括但不限于噪声、频谱等,从而能够捕捉到细粒度的视觉差异。通过这种方式,合合信息的技术能够实现高精度的截图检测,从而让截图造假无所遁形。
这一技术的突破对于保护个人信息安全和打击欺诈行为具有重要意义。它不仅能够提高截图检测的准确率,还能够控制误检率,确保不会误判合法的图片。合合信息的图像篡改检测技术将为数字时代的信息安全提供更加可靠的保障,为社会的发展和公众的利益做出贡献。
三、亮点技术2:生成式图像鉴别
3.1 生成式图像安全问题
开年以来,以语言生成类、视觉生成类模式为代表的AIGC产品引发了社会对于图文内容“可信度”问题的讨论。AIGC爆火的背后,不法分子通过生成的图片去规避版权、身份验证,非法获取利益,给人民群众造成了财产损失。
比如AI作画公司用画家作品用于训练,普通人几分钟就可以生产出类似高水平且无版权的作品:
3.2 传统方法Python实现步骤
生成式图像鉴别技术的实现步骤通常包括以下几个关键步骤:
-
数据收集和准备:收集包含真实图像和生成式图像的大规模数据集,并进行标注和预处理。确保数据集的多样性和代表性,以便训练出具有泛化能力的模型。
-
模型选择和构建:选择适合生成式图像鉴别任务的模型架构,常见的包括深度卷积神经网络(CNN)和生成对抗网络(GAN)。根据任务需求和数据集特点,构建合适的模型结构。
-
模型训练:使用准备好的数据集对模型进行训练。通过反向传播算法和优化器来更新模型的参数,使其能够准确地区分真实图像和生成式图像。训练过程中需要注意正则化和防止过拟合的方法。
-
模型评估和调优:使用独立的测试集对训练好的模型进行评估,计算准确率、召回率、精确度等指标。根据评估结果对模型进行调优,如调整超参数、增加训练数据等。
-
部署和应用:将训练好的模型部署到实际应用中,可以是在服务器端进行图像鉴别,也可以是集成到移动设备或其他平台上。根据具体应用场景和需求,进行适当的优化和性能调整。
需要注意的是,生成式图像鉴别技术的实现步骤可能因具体任务和方法而有所不同,上述步骤仅为一般性的参考。在实际应用中,还需要考虑数据隐私、模型鲁棒性和系统的实时性等因素,以确保技术的可靠性和有效性。
以下是一个简单的 Python 生成式图像鉴别代码示例:
import cv2
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
def extract_features(image_path):
# 加载图像
image = cv2.imread(image_path)
# 调整图像大小为固定尺寸
image = cv2.resize(image, (100, 100))
# 提取图像特征
features = np.reshape(image, (1, -1))
return features
def train_model():
# 加载正样本图像
real_images = []
for i in range(1, 101):
image_path = f"real_images/real_{i}.jpg"
features = extract_features(image_path)
real_images.append(features)
# 加载生成式样本图像
fake_images = []
for i in range(1, 101):
image_path = f"fake_images/fake_{i}.jpg"
features = extract_features(image_path)
fake_images.append(features)
# 创建标签
real_labels = [1] * len(real_images)
fake_labels = [0] * len(fake_images)
# 合并样本和标签
X = np.concatenate((real_images, fake_images), axis=0)
y = np.concatenate((real_labels, fake_labels), axis=0)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练随机森林分类器
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)
# 在测试集上评估模型性能
accuracy = model.score(X_test, y_test)
print("模型准确率:", accuracy)
# 使用示例
train_model()
这个代码使用了一个随机森林分类器来进行生成式图像的鉴别。首先,通过 extract_features
函数提取图像的特征,这里使用了简单的图像像素值作为特征。然后,加载正样本和生成式样本的图像,并为它们创建对应的标签。接下来,将样本和标签合并,并使用 train_test_split
函数将数据集划分为训练集和测试集。然后,使用随机森林分类器进行训练,并在测试集上评估模型性能。最后,打印模型的准确率。你可以将正样本和生成式样本的图像路径替换为你自己的数据集路径。
上面是我用Python 方法实现生成式图像鉴别,效果一般,与合合信息识别系统效果差了不止亿点点。
3.2 合合信息——生成式图像鉴别模型
该项目面临的难点主要可以归结为两个方面:一是生成出来的图像场景繁多,不可能通过穷举的方式来解决;二是有些生成的图像与真实图片的相似度非常高,几乎无法从人类的判断角度区分,对机器而言更加困难。
针对这些难点,合合信息提出了一种基于空域与频域关系建模的方法,能够在不需要穷举所有可能的图片的情况下,利用多维度特征来准确分辨真实图片和生成式图片之间的细微差异。
通过对空域和频域的关系进行建模,合合信息的技术能够从不同的角度捕捉到真实图片和生成式图片之间的差异。这种多维度特征的分析方法使得机器能够更准确地判断图片的真实性,克服了生成式图片与真实图片相似度高的问题。
模型结构如下图所示:
在该模型中,通过多个空间注意力头来聚焦于图像的空间特征,并利用纹理增强模块来放大浅层特征中的微小伪影,从而提升模型对真实人脸和伪造人脸的感知和判断准确度。在各种复杂场景下,该模型能够高度可靠地区分真实人脸和伪造人脸。同时,相关技术也在不断地迭代和改进中,以进一步提升模型的性能和适应性。
这一技术的突破对于保护个人信息安全和打击人脸伪造行为具有重要意义。通过该模型的应用,可以有效地防止人脸伪造带来的欺骗和安全威胁。
生成式图像检测技术在反诈骗、版权保护等领域具有广泛的应用空间。特别是在金融行业,不法分子利用AI合成技术对线上资金进行盗刷的情况时有发生,这对公民的财产安全构成了威胁。然而,本项技术的应用可以通过对支付环节的干预来降低资金盗刷的概率,提供更可靠的资金安全保障。
在传媒行业中,一些图片供给方利用软件自动生成海报等图片,并故意隐瞒其来源,将其售卖给第三方。然而,第三方在不知情的情况下进行商业使用,导致了侵权问题的发生。相关的图像检测技术可以在一定程度上解决这些问题,通过对图片的来源和真实性进行检测,确保第三方在使用图片时不会侵犯版权。
四、亮点技术3:OCR对抗攻击技术
人们会出于生活、工作需要,拍摄自己的相关证件、文件并发送给第三方,这些图片上承载的个人信息可能被不法分子使用OCR技术识别提取并泄露。基于个人、企业业务的文件资料保密需求,合合信息进行了创新技术探索,研发了OCR对抗攻击技术来进行文档图片“加密”。
4.1 传统方法Python实现步骤
OCR 对抗攻击技术的实现步骤可以分为以下几个阶段:
-
收集数据集:首先需要收集用于训练和测试的OCR模型的数据集。数据集应包含各种类型的文本、字体、背景和扭曲等变化。
-
训练OCR模型:使用收集到的数据集,训练一个OCR模型。常用的OCR模型包括卷积神经网络(CNN)和循环神经网络(RNN)等。
-
选择攻击技术:根据具体的需求和场景,选择合适的OCR对抗攻击技术。常见的OCR对抗攻击技术包括添加噪声、图像扭曲、对抗样本生成等。
-
生成对抗样本:使用选择的攻击技术,对原始图像进行处理,生成对抗样本。对抗样本的生成过程可以通过添加噪声、扭曲图像、改变光照条件等方式来改变原始图像的特征,使其能够误导OCR模型。
-
评估攻击效果:使用生成的对抗样本对训练好的OCR模型进行测试,评估攻击效果。可以通过计算攻击成功率、误分类率等指标来评估攻击效果。
-
调整攻击参数:根据评估结果,调整攻击技术的参数,进一步提高攻击效果。
-
防御对抗攻击:根据对抗攻击的特点和实现方法,设计相应的防御策略。常见的防御方法包括使用对抗训练、检测对抗样本等。
-
优化攻击技术:根据防御策略的效果,优化攻击技术,提高攻击效果和鲁棒性。
对于OCR对抗攻击技术的代码实现,以下是一个简单的Python示例:
import cv2
import numpy as np
def add_noise(image):
# 添加随机噪声
noise = np.random.normal(0, 1, image.shape).astype(np.uint8)
noisy_image = cv2.add(image, noise)
return noisy_image
def distort_text(image):
# 扭曲文本形状
rows, cols = image.shape[:2]
distortion_map = np.zeros_like(image)
for i in range(rows):
for j in range(cols):
x = int(j + 20 * np.sin(2 * np.pi * i / 50))
y = i
if x < cols:
distortion_map[y, x] = image[i, j]
distorted_image = cv2.remap(image, distortion_map, None, cv2.INTER_LINEAR)
return distorted_image
def apply_attack(image_path):
# 加载图像
image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
# 添加噪声
noisy_image = add_noise(image)
# 扭曲文本
distorted_image = distort_text(noisy_image)
# 保存攻击后的图像
attacked_image_path = 'attacked_image.jpg'
cv2.imwrite(attacked_image_path, distorted_image)
print("攻击后的图像已保存为:", attacked_image_path)
# 使用示例
apply_attack("document.jpg")
这个代码示例展示了两种常见的OCR对抗攻击技术:添加随机噪声和扭曲文本形状。首先,通过 add_noise
函数向图像中添加了随机噪声。然后,使用 distort_text
函数对图像中的文本进行了扭曲处理。最后,保存攻击后的图像。
请注意,这只是一个简单的示例,实际上,OCR对抗攻击技术可能涉及更复杂的图像处理和扰动方法。具体的代码实现可能因应用场景和需求而有所不同。
4.2 合合信息——OCR对抗攻击技术
合合信息的OCR对抗攻击技术是一种创新的技术解决方案,旨在保护个人和企业的文件资料的隐私和机密性。该技术可以对文档图片进行加密,以防止不法分子使用OCR技术识别和提取其中的个人信息:
该技术有助于防止第三方通过OCR系统读取和保存图像中的文字内容,降低数据泄露的风险。这种技术创新能够在不影响肉眼观看和判断的情况下,有效保护信息的安全和隐私。
五、总结
AI造假技术的出现给社会带来了一系列挑战和问题。然而合合信息AI图像内容检测工具的出现,在保护图像真实性和识别文本方面发挥了重要的作用。 通过自动化、高准确性和多样化的检测功能,这些技术能够帮助用户检测和防御图像篡改、生成式图像欺骗和OCR对抗攻击等问题。然而,随着技术的发展,这些攻击技术也在不断演进,需要不断改进和完善相应的防御措施,以保护图像和文本的安全和可信度。