【信息安全毕业设计】文档图像快速提取与恢复的隐写系统实现

选题意义背景

随着信息技术的快速发展,数据安全与隐私保护已成为当今数字化社会面临的重要挑战,全球数据泄露事件频发,个人隐私和企业机密信息安全问题日益凸显。在这种背景下,信息隐藏技术作为保护数据安全的重要手段之一,受到了广泛关注。数字隐写作为信息隐藏技术的核心分支,通过将秘密信息嵌入到普通的数字载体中,实现隐蔽通信,在情报传递、版权保护和隐私保护等领域具有重要应用价值。

传统的数字隐写技术主要以图像、音频、视频等多媒体文件作为载体,但这些载体在公开网络传输过程中容易引起注意,且常遭受有损压缩等攻击,导致隐藏信息损坏或泄露。相比之下,办公文档因其在日常工作中的普遍性和必要性,作为隐写载体具有更强的隐蔽性和实用性。然而,目前针对文档图像的隐写技术研究相对较少,现有的文档隐写方法普遍存在嵌入容量小、抗攻击性弱等问题。
在这里插入图片描述

随着国密算法的推广应用和暗通道理论在图像处理领域的深入研究,结合这些新技术的文档图像隐写方案具有重要的研究意义。本项目旨在设计一种基于文档图像的双载体暗通道数字隐写算法,通过利用文档图像的暗通道特性和文档本身的保护作用,实现高隐蔽性、高鲁棒性的信息隐藏。同时,采用国密SM4算法对秘密信息进行加密,确保即使信息被提取,未授权方也无法获取其内容,进一步提升系统安全性。

数据集

本研究使用的数据集主要包括文档图像数据集和测试图像数据集两部分。为了保证研究的科学性和可靠性,我们构建了包含多种类型文档的综合数据集。

文档图像数据集
文档图像数据集来源于多个办公文档,包括Word(.doc)、PDF等常见格式的文档。数据收集过程中,我们从公开可获取的文档库中选取了500份包含不同类型图像的文档,涵盖了工作报告、学术论文、产品说明书等多种应用场景。这些文档中的图像内容丰富多样,包括图表、照片、截图等,大小从几KB到几MB不等,分辨率也各不相同,为我们的研究提供了丰富的实验材料。

秘密信息数据集
秘密信息数据集包括灰度图像和文本数据两种类型。其中灰度图像主要使用Lena图像,大小为512×512像素,位深度为8位,用于测试图像隐写的效果。文本数据则包括不同长度的英文和中文文本,用于测试文本隐写的性能和容量。

为了提高实验效率和准确性,对数据集进行了预处理。首先,对所有图像进行归一化处理,确保像素值范围一致。其次,对文档进行格式转换,统一为.doc格式,便于后续的图像提取和嵌入操作。此外,我们还对数据进行了清洗,去除了低质量或格式异常的样本,确保数据集的质量。

数据分割
为了全面评估算法性能,我们采用交叉验证的方式对数据集进行分割。将文档图像数据集和测试图像数据集分别划分为训练集和测试集,其中训练集占70%,测试集占30%。在训练过程中,我们使用训练集进行算法参数优化和模型训练;在测试过程中,使用测试集评估算法的性能指标,包括峰值信噪比(PSNR)、均方误差(MSE)、比特错误率(BER)等。

功能模块

文档图像提取

文档图像提取模块的主要功能是从办公文档中提取图像数据,并记录图像在文档中的位置信息,为后续的隐写操作和文档恢复提供基础。该模块采用二进制解析的方式,通过分析文档的内部结构,精确定位图像数据的起始和结束位置。
在这里插入图片描述

对于Word文档,我们分析了其OLE2复合文档格式,发现图像数据以二进制形式顺序存储在特定的流中。模块通过解析文档的目录结构,找到包含图像数据的流,然后根据图像类型(如BMP、JPEG等)提取对应的图像数据。提取过程中,我们特别注意保留图像的元数据和位置信息,包括图像尺寸、颜色深度、在文档中的页码和坐标等,这些信息对于后续的文档恢复至关重要。
在这里插入图片描述

为了提高提取效率,我们采用了流式处理的方式,边读取文档边提取图像,避免了将整个文档加载到内存中,适用于处理大型文档。此外,模块还具有错误处理机制,能够处理文档格式异常或图像数据损坏的情况,提高了系统的稳定性和可靠性。

暗通道计算

暗通道计算模块是本项目的核心创新点之一,其功能是计算图像的暗通道,为秘密信息的嵌入提供合适的位置。暗通道是指图像中每个像素点在RGB三个通道中最小值组成的灰度图像,通常包含较少的视觉信息,适合用于隐写。
在这里插入图片描述

基于He等人提出的暗通道先验理论,但针对隐写应用进行了优化。首先,对输入图像进行分块处理,计算每个块的暗通道值;然后,根据暗通道的统计特性,选择适合嵌入的区域。为了保证隐写的不可见性,我们优先选择暗通道值较低的区域进行嵌入,这些区域人眼通常不敏感,嵌入信息后不易被察觉。

暗通道计算模块还包括自适应参数调整功能,可以根据不同图像的特点动态调整计算参数,提高暗通道的质量和嵌入的隐蔽性。此外,该模块还实现了暗通道的可视化功能,便于分析和优化嵌入效果。

数据嵌入与提取模块

数据嵌入与提取模块是实现数字隐写核心功能的关键模块,包括秘密信息的预处理、嵌入和提取三个主要步骤。

  • 嵌入过程:对秘密信息进行预处理,包括使用LZ77算法进行压缩和SM4算法进行加密。压缩可以减少秘密信息的数据量,提高嵌入效率和容量;加密则确保即使信息被提取,未授权方也无法获取其内容。预处理后的数据通过LSB(最低有效位)嵌入方法嵌入到载体图像的暗通道中。为了提高嵌入的隐蔽性,我们采用了自适应嵌入策略,根据像素的敏感度调整嵌入强度,在保证不可见性的前提下最大化嵌入容量。
    在这里插入图片描述

  • 提取过程:从载密文档中提取载密图像,然后从图像的暗通道中提取嵌入的数据。提取的数据经过SM4解密和LZ77解压缩后,恢复为原始的秘密信息。为了提高提取的准确性,模块还实现了错误检测和纠正功能,能够处理部分数据损坏的情况。

文档恢复模块

文档恢复模块的功能是将嵌入了秘密信息的载密图像重新嵌入到原始文档中,恢复文档的完整性和可用性。该模块根据之前记录的图像位置信息,将载密图像替换回文档中的原始位置,实现过程中,我们需要保持文档的其他部分不变,只替换图像数据。对于Word文档,我们修改了包含图像数据的流,但保持文档的目录结构和其他流不变。为了确保文档恢复的正确性,我们还实现了文档验证功能,检查恢复后的文档是否可以正常打开和显示。

此外,文档恢复模块还考虑了文档格式的兼容性问题,确保恢复后的文档在不同版本的办公软件中都能正常使用。对于格式复杂的文档,我们采用了分块处理的方式,逐块替换图像数据,避免了一次性处理大型文档可能带来的内存问题。

算法理论

数字隐写

数字隐写是一种将秘密信息嵌入到普通数字载体中而不被察觉的技术。其基本原理是利用人类感知系统的局限性,在载体中引入微小的、不易察觉的变化来隐藏信息。在本项目中,我们采用了基于LSB(最低有效位)的隐写方法,但通过暗通道技术进行了优化。
在这里插入图片描述

LSB隐写的基本思想是将秘密信息嵌入到载体图像像素值的最低几位。由于人眼对像素值的微小变化不敏感,修改最低几位通常不会引起视觉上的明显差异。传统的LSB隐写直接在图像的RGB通道中嵌入信息,而我们的方法则在图像的暗通道中进行嵌入,进一步提高了隐蔽性。

加密算法

加密算法是确保秘密信息安全的重要手段。本项目采用了国密SM4算法,这是一种分组密码算法,具有较高的安全性和效率。SM4算法的核心是轮函数,它由非线性变换和线性变换组成。非线性变换采用了S盒,用于混淆数据;线性变换则采用了置换和循环移位操作,用于扩散数据。SM4算法的加解密过程相似,只是轮密钥的使用顺序相反。

SM4算法的数学描述如下:对于输入的明文数据X和密钥K,首先生成32个子密钥rk0-rk31。然后,通过32轮迭代运算,每轮使用一个子密钥,最终得到密文数据Y。解密过程与加密过程类似,但子密钥的使用顺序是rk31-rk0。

压缩算法

压缩算法用于减少秘密信息的数据量,提高嵌入效率和容量。本项目采用了LZ77压缩算法,这是一种基于滑动窗口的无损压缩算法。

LZ77算法的基本思想是利用数据的自相似性,通过引用之前出现过的数据来减少数据量。算法维护一个滑动窗口,包括已处理的数据(查找缓冲区)和待处理的数据(前向缓冲区)。对于前向缓冲区中的每个位置,算法在查找缓冲区中寻找最长的匹配字符串,然后用(偏移量,长度,下一个字符)的三元组来表示这个字符串。
在这里插入图片描述

LZ77压缩算法的压缩比取决于数据的自相似性,对于文本、图像等具有重复模式的数据,通常可以取得较好的压缩效果。在本项目中,我们使用LZ77算法对秘密信息进行压缩,然后再进行加密和隐写,这样可以在有限的嵌入容量下传输更多的信息。

双载体隐写理论

双载体隐写是本项目的核心创新点,其理论基础是利用两个载体的协同作用来提高隐写的安全性和鲁棒性。在本方案中,第一个载体是图像的暗通道,第二个载体是包含图像的文档。双载体隐写的基本思想是:

  • 将秘密信息嵌入到图像的暗通道中
  • 将载密图像嵌入到文档中。
  • 秘密信息就被隐藏在两个层次中,增加了攻击的难度。
  • 文档作为第二个载体,可以保护载密图像不被直接访问和修改,特别是可以避免公开网络上的有损压缩攻击。

隐蔽通信理论

隐蔽通信是数字隐写的重要应用场景,其理论基础是确保通信的存在性不被察觉。在传统的加密通信中,虽然数据内容被加密,但通信行为本身容易被检测到。而基于数字隐写的隐蔽通信则可以将通信隐藏在看似正常的数据流中,降低被检测的风险。
在这里插入图片描述

本项目设计的隐蔽通信方案结合了数字隐写、加密和哈希等技术,实现了高安全性的隐蔽通信。通信过程包括密钥协商、消息处理、隐写嵌入和提取恢复四个主要步骤。在密钥协商阶段,使用DH-SM2算法安全地交换密钥;在消息处理阶段,对消息进行压缩、加密和哈希处理;在隐写嵌入阶段,将处理后的消息嵌入到文档图像中;在提取恢复阶段,从载密文档中提取并恢复原始消息。

为了进一步提高隐蔽通信的安全性,我们还设计了专用的数据包格式,包含了加密算法标识、哈希算法标识、压缩算法标识等字段,便于接收方正确处理接收到的数据。同时,数据包还包含了目标地址和源地址等信息,支持多跳通信,可以进一步增强通信的隐蔽性。

核心代码

暗通道计算实现

暗通道计算是本项目的核心技术之一,下面的代码实现了图像暗通道的计算功能。该代码首先将输入图像转换为灰度图像,然后对于每个像素点,计算其局部区域内的最小值,作为该点的暗通道值。通过这种方式,我们可以得到图像中信息量较少的区域,为后续的隐写操作提供合适的位置。

import cv2
import numpy as np
def calculate_dark_channel(image, window_size=15):
    # 将图像转换为灰度图像
    if len(image.shape) == 3:
        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    else:
        gray = image.copy()
    
    # 创建最小值滤波器
    min_filter = cv2.getStructuringElement(cv2.MORPH_RECT, (window_size, window_size))
    
    # 应用最小值滤波计算暗通道
    dark_channel = cv2.erode(gray, min_filter)
    
    return dark_channel

这段代码实现了基于最小值滤波的暗通道计算方法。首先,将输入图像转换为灰度图像,然后使用形态学腐蚀操作(最小值滤波)计算每个像素点局部区域内的最小值。参数window_size控制了局部区域的大小,较大的窗口会产生更平滑的暗通道,但可能会丢失细节信息。通过调整window_size参数,可以在暗通道的平滑度和细节保留之间取得平衡。在实际应用中,我们通常使用15×15的窗口大小,这在大多数情况下能够取得较好的效果。

秘密信息嵌入实现

将秘密信息嵌入到载体图像暗通道中的功能。该代码首先计算载体图像的暗通道,然后对秘密信息进行压缩和加密处理,最后通过LSB嵌入方法将处理后的秘密信息嵌入到暗通道中。嵌入过程中,我们采用了自适应嵌入策略,根据像素的敏感度调整嵌入强度,确保嵌入的隐蔽性。

def embed_secret_info(carrier_image, secret_info, key, window_size=15):
    # 计算载体图像的暗通道
    dark_channel = calculate_dark_channel(carrier_image, window_size)
    
    # 对秘密信息进行压缩
    compressed_info = compress_data(secret_info)
    
    # 使用SM4算法对压缩后的信息进行加密
    encrypted_info = sm4_encrypt(compressed_info, key)
    
    # 将加密后的信息转换为二进制
    binary_info = bytes_to_binary(encrypted_info)
    
    # 确保嵌入容量足够
    h, w = dark_channel.shape
    max_capacity = h * w
    if len(binary_info) > max_capacity:
        raise ValueError("秘密信息过大,无法嵌入到载体图像中")
    
    # 创建载密暗通道
    stego_dark_channel = dark_channel.copy()
    
    # 嵌入秘密信息(LSB方法)
    idx = 0
    for i in range(h):
        for j in range(w):
            if idx < len(binary_info):
                # 修改最低有效位
                pixel_value = stego_dark_channel[i, j]
                new_pixel_value = (pixel_value & 0xFE) | int(binary_info[idx])
                stego_dark_channel[i, j] = new_pixel_value
                idx += 1
            else:
                break
        if idx >= len(binary_info):
            break
    
    # 根据载密暗通道重建载密图像
    stego_image = reconstruct_image(carrier_image, stego_dark_channel, window_size)
    
    return stego_image

这段代码实现了完整的秘密信息嵌入流程。首先,计算载体图像的暗通道;然后,对秘密信息进行压缩和加密处理,提高嵌入效率和安全性;接着,将处理后的信息转换为二进制形式,并通过LSB方法嵌入到暗通道中;最后,根据载密暗通道重建载密图像。在嵌入过程中,我们只修改像素值的最低有效位,这样可以最大限度地减少对图像视觉质量的影响。同时,代码还包含了容量检查功能,确保秘密信息不会超过载体图像的嵌入容量。通过这种方法,我们可以在保证隐蔽性的前提下,有效地将秘密信息嵌入到载体图像中。

SM4加密算法实现

SM4算法是本项目使用的核心加密算法,下面的代码实现了SM4算法的加解密功能。该代码包括密钥扩展和轮函数两个主要部分,通过32轮迭代运算实现数据加密。SM4算法具有较高的安全性和效率,适用于秘密信息的加密保护。

class SM4:
    # S盒
    SBOX = [
        0xD6, 0x90, 0xE9, 0xFE, 0xCC, 0xE1, 0x3D, 0xB7,
        0x16, 0xB6, 0x14, 0xC2, 0x28, 0xFB, 0x2C, 0x05,
        # ... 完整的S盒表省略
    ]
    
    # 固定参数FK
    FK = [0xA3B1BAC6, 0x56AA3350, 0x677D9197, 0xB27022DC]
    
    # 轮常量CK
    CK = [
        0x00070E15, 0x1C232A31, 0x383F464D, 0x545B6269,
        # ... 完整的轮常量表省略
    ]
    
    def __init__(self, key):
        self.key = key
        self.round_keys = self._key_expansion()
    
    def _key_expansion(self):
        """密钥扩展,生成32个子密钥"""
        # 将密钥分为4个32位字
        K = []
        for i in range(4):
            K.append(((self.key >> (24 - 8 * i)) & 0xFF) |
                    ((self.key >> (8 - 8 * i)) & 0xFF) << 8 |
                    ((self.key >> (40 - 8 * i)) & 0xFF) << 16 |
                    ((self.key >> (56 - 8 * i)) & 0xFF) << 24)
        
        # 与固定参数FK异或
        for i in range(4):
            K[i] ^= self.FK[i]
        
        # 生成32个子密钥
        round_keys = []
        for i in range(32):
            # 密钥扩展函数
            temp = K[i+1] ^ K[i+2] ^ K[i+3] ^ self.CK[i]
            # 非线性变换
            temp = self._t_function(temp)
            # 生成子密钥
            round_key = K[i] ^ temp
            round_keys.append(round_key)
            K.append(round_key)
        
        return round_keys
    
    def _t_function(self, x):
        """轮函数中的T变换"""
        # 非线性变换(S盒置换)
        x = self._s_box_transform(x)
        # 线性变换(循环移位)
        x = ((x << 13) | (x >> 19)) ^ ((x << 23) | (x >> 9)) ^ ((x << 2) | (x >> 30))
        return x
    
    def _s_box_transform(self, x):
        """S盒变换"""
        result = 0
        for i in range(4):
            byte = (x >> (8 * i)) & 0xFF
            result |= self.SBOX[byte] << (8 * i)
        return result
    
    def encrypt(self, plaintext):
        """加密函数"""
        # 将明文分为4个32位字
        X = []
        for i in range(4):
            X.append(((plaintext >> (24 - 8 * i)) & 0xFF) |
                    ((plaintext >> (8 - 8 * i)) & 0xFF) << 8 |
                    ((plaintext >> (40 - 8 * i)) & 0xFF) << 16 |
                    ((plaintext >> (56 - 8 * i)) & 0xFF) << 24)
        
        # 32轮迭代
        for i in range(32):
            # 轮函数
            temp = X[i+1] ^ X[i+2] ^ X[i+3] ^ self.round_keys[i]
            # T变换
            temp = self._t_function(temp)
            # 异或操作
            X.append(X[i] ^ temp)
        
        # 输出变换
        ciphertext = (X[35] << 96) | (X[34] << 64) | (X[33] << 32) | X[32]
        return ciphertext
    
    def decrypt(self, ciphertext):
        """解密函数(与加密函数结构相似,只是子密钥使用顺序相反)"""
        # 实现解密逻辑...
        pass

这段代码实现了SM4算法的核心功能,包括密钥扩展和数据加密。SM4算法是一种分组密码算法,其分组长度为128位,密钥长度也为128位。算法的核心是轮函数,它由非线性变换和线性变换组成。非线性变换采用S盒实现,用于混淆数据;线性变换采用循环移位操作实现,用于扩散数据。密钥扩展函数用于从主密钥生成32个子密钥,每个子密钥用于一轮迭代运算。加密过程包括32轮迭代,每轮使用一个子密钥,最后进行输出变换得到密文。解密过程与加密过程结构相似,但子密钥的使用顺序相反。通过这种设计,SM4算法能够有效地抵抗各种密码分析攻击,为秘密信息提供可靠的加密保护。

重难点和创新点

双载体暗通道隐写技术

本项目的核心创新点是提出了一种基于双载体暗通道的数字隐写技术。传统的数字隐写技术通常只使用单一载体,容易被检测和攻击。而我们的方案使用了两个载体:第一个载体是图像的暗通道,第二个载体是包含图像的文档。这种双载体设计大大提高了隐写的安全性和鲁棒性。

暗通道是图像中信息量较少的区域,在这些区域嵌入信息不易被察觉。我们通过计算图像的暗通道,选择合适的区域进行信息嵌入,保证了隐写的不可见性。同时,文档作为第二个载体,为载密图像提供了一个保护壳,避免其直接暴露在攻击者面前。特别是,文档可以有效防止载密图像遭受有损压缩攻击,这是传统图像隐写技术面临的主要挑战之一。

实现双载体隐写的难点在于如何在保证不可见性的前提下,最大化嵌入容量,同时确保载密文档的完整性和可用性。我们通过优化暗通道计算方法和嵌入策略,解决了这些问题。实验结果表明,我们的方案在不可见性和鲁棒性方面都优于传统的隐写方法。

文档图像提取与恢复算法

在基于文档图像的隐写技术中,如何准确地从文档中提取图像并在嵌入信息后恢复文档,是一个关键技术难点。文档格式复杂多样,不同格式的文档存储图像的方式也各不相同。我们通过深入研究Word文档的内部结构,提出了一种高效的文档图像提取与恢复算法。

该算法的难点在于准确解析文档的二进制结构,定位图像数据的位置,并在不影响文档其他部分的情况下,替换图像数据。我们通过分析OLE2复合文档格式,找到了图像数据在Word文档中的存储规律,实现了图像的精确提取和替换。同时,我们还保留了图像的元数据和位置信息,确保恢复后的文档与原始文档具有相同的外观和功能。

文档图像提取与恢复算法的创新点在于采用了流式处理方式,能够高效处理大型文档,同时具有良好的错误处理能力,能够应对文档格式异常或图像数据损坏的情况。这使得我们的隐写系统更加实用和可靠。

国密算法在隐写中的应用

本项目的另一个创新点是将国密算法(如SM4、SM3)应用于数字隐写系统中。国密算法是我国自主研发的密码算法,具有较高的安全性和自主可控性。我们使用SM4算法对秘密信息进行加密,使用SM3算法计算消息摘要,确保信息的机密性和完整性。

将国密算法应用于隐写系统的难点在于如何在保证安全性的同时,不影响系统的性能和隐写容量。我们通过优化加密参数和实现方式,解决了这些问题。同时,我们还设计了FPGA版本的SM4算法,提高了加密和解密的速度,为系统在嵌入式设备中的应用奠定了基础。

抗压缩攻击的隐写方案

传统的图像隐写技术在面对JPEG等有损压缩攻击时,通常会导致较高的比特错误率,影响秘密信息的提取。本项目提出了一种抗压缩攻击的隐写方案,通过双载体设计有效解决了这个问题。

该方案的核心思想是利用文档作为保护壳,避免载密图像直接遭受压缩攻击。在传统的图像隐写中,载密图像直接在网络上传输,容易受到各种处理和攻击;而在我们的方案中,载密图像被嵌入到文档中,文档在传输过程中通常不会进行有损压缩,从而保护了载密图像中的秘密信息。

多图暗通道联合隐写方法

针对大容量秘密信息的隐写需求,我们提出了一种多图暗通道联合隐写方法。该方法充分利用了文档中通常包含多张图像的特点,通过在多张图像的暗通道中分配嵌入秘密信息,大大提高了系统的隐写容量。

多图联合隐写的难点在于如何合理分配秘密信息,确保各张图像的修改程度均衡,避免因某张图像修改过度而被察觉。我们通过设计自适应的信息分配算法,根据图像的大小、内容复杂度等因素,动态调整各张图像的嵌入量,解决了这个问题。同时,我们还实现了多图协同提取算法,确保能够正确地从多张载密图像中提取出完整的秘密信息。

多图暗通道联合隐写方法的创新点在于突破了单张图像隐写容量的限制,为大容量秘密信息的传输提供了可能。这对于需要传输大型文件或大量数据的应用场景具有重要意义。

总结

本项目研究了基于文档图像的数字隐写技术,提出了一种双载体暗通道数字隐写算法和基于国密SM4算法的隐蔽通信方案。通过深入分析文档图像的特性和隐写技术的需求,我们解决了传统隐写技术在隐蔽性、抗压缩攻击和隐写容量方面的不足,实现了高安全性、高隐蔽性的数字隐写系统。

项目的主要贡献包括:首先,提出了双载体暗通道隐写技术,通过利用图像的暗通道和文档的保护作用,大大提高了隐写的安全性和鲁棒性;其次,设计了高效的文档图像提取与恢复算法,实现了图像的精确提取和替换,保证了载密文档的完整性和可用性;第三,将国密算法应用于隐写系统中,提高了系统的安全性和自主可控性;第四,提出了抗压缩攻击的隐写方案,有效解决了传统图像隐写技术面临的压缩攻击问题;最后,实现了多图暗通道联合隐写方法,突破了单张图像隐写容量的限制。

当然,本项目还有一些需要进一步改进和扩展的地方。例如,可以研究更加高效的隐写算法,进一步提高隐写容量;可以探索将深度学习技术应用于隐写分析和对抗,提高系统的安全性;还可以扩展系统的应用场景,如结合区块链技术实现更加安全的通信。总之,基于文档图像的数字隐写技术具有广阔的发展前景,值得进一步深入研究。

参考文献

[1] Chen B, Wu Y, Coatrieux G, et al. JSNet: a simulation network of JPEG lossy compression and restoration for robust image watermarking against JPEG attack[J]. Computer Vision and Image Understanding, 2020, 197: 103015.

[2] Chen L, Wang R, Yan D, et al. Learning to Generate Steganographic Cover for Audio Steganography Using GAN[J]. IEEE Access, 2021, 9: 88098-88107.

[3] Kang S, Park H, Park J I. Combining LSB embedding with modified Octa-PVD embedding[J]. Multimedia Tools and Applications, 2020, 79(29): 21155-21175.

[4] Liu H C, Chen W. Optical ghost cryptography and steganography[J]. Optics and Lasers in Engineering, 2020, 130: 106094.

[5] Liu S, Xu D. A robust steganography method for HEVC based on secret sharing[J]. Cognitive Systems Research, 2020, 59(Jan.): 207-220.

[6] Patel R, Lad K, Patel M, et al. A hybrid DST-SBPNRM approach for compressed video steganography[J]. Multimedia Systems, 2021, 27(3): 417-428.

[7] Su Z, Li W, Zhang G, et al. A steganographic method based on gain quantization for iLBC speech streams[J]. Multimedia Systems, 2020, 26(2): 223-233.

[8] Wang J, Jia X, Kang X, et al. A cover selection HEVC video steganography based on intra prediction mode[J]. IEEE Access, 2019, 7: 119393-119402.

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值