功能:利用LZW算法进行编码和解码;
算法流程: 编码:
- 遍历待压缩的整个字符串,初始化编码字典,对每个不同的字符创建映射。初始化p和c为空。
- 依次读入c,与P合并形成字符串P+C
- 在字典里找p+c: 若p+c在字典中,则更新p=p+c 若p+c不在字典中,输出p对应的编码,将p+c加入字典中,更新p=c
- 重复2,直至读完所有字符串 解码:
- 遍历待压缩的整个字符串,初始化编码字典,初始化pw和cw为空的。
- 读入第一个的符号cw,并输出。第一个cw肯定是能直接解码的,而且一定是单个字符。
- 赋值pw=cw。
- 读入下一个符号cw。
- 在字典里查找cw,如果: a. cw在字典里: (1) 解码cw,即输出 Str(cw)。 (2) 令p= Str(pW),c=Str(cw)的第一个字符。 (3) 在字典中为p+c添加新的记号映射。 b. cw不在字典里: (1) 令p= Str(pW),c= Str(pW)的第一个字符。 (2) 在字典中为p+c添加新的记号映射,这个新的记号一定就是cw。 (3) 输出p+c。
- 返回步骤3重复,直至读完所有记号
功能:实现PCA主成分分析 算法流程:
- 对数据集进行中心化
- 求协方差矩阵
- 求特征值和特征向量
- 对特征向量按特征值从大到小排序,取对应的维度
- 计算正交矩阵P
- 最终求出正交后的矩阵
功能:利用SIFT算法进行特征提取以及实现在Corel数据集上实现以图搜图 算法流程:
- 对数据集进行预处理
- 生成SIFT描述子 (1)利用cv2.goodFeaturesToTrack方法提取角点 (2)获取梯度,方向,角点总数,邻域等信息 (3)获取每个角点的主方向 (4)将原图像x轴转到与主方向相同的方向,计算种子点的梯度强度信息 (5)最后将选出的特征归一化处理
- 匹配特征点,将每一个目标图像描述子的最佳匹配点放进数组x,再进行阈值检测,如果满足条件的最佳匹配点多于10个则认为匹配成功。
- 将目标图与匹配图一起输出
功能:实现局部敏感哈希,可以针对海量高维数据的快速最近邻查找 算法描述:
- 生成哈希函数以及哈希函数族
- 将n维数据映射到一个整数
- 生成数据向量的一种特征
- 计算每个数据点的映射函数,存入相应的哈希桶中
- 进行最近邻搜索
Lenet共有7层结构,输入图像尺寸统一为32*32:
- C1卷积层:输入图像3232,卷积核大小55,输入通道数:1,输出通道数:6,输出尺寸:28*28
- S2池化层:输入大小2828,采样区域:22,输出尺寸:14*14
- C2卷积层:输入大小1414,卷积核大小55,输入通道数:6,输出通道数:16, 输出尺寸:10*10
- S2池化层:输入大小:1010,采样区域:22,输出尺寸:5*5
- C5卷积层:输入大小55,卷积核大小55,输出通道数120,输出尺寸1*1
- F2全连接层:输入120,输出84
- F3全连接层:输入84,输出10 激活函数选用ReLU函数,优化函数选用Adam函数,损失函数使用Softmax配合CrossEntropyLoss函数