基于卷积神经网络的以图搜图算法实现

本文涉及的产品
图像搜索,任选一个服务类型 1个月
简介: 基于卷积神经网络的以图搜图算法实现        如果用这个名称去搜索论文,一定有不少。为什么了,因为从原理上来看,卷积神经网络就非常适合找图片的相似的地方。

                                                基于卷积神经网络的以图搜图算法实现

       如果用这个名称去搜索论文,一定有不少。为什么了,因为从原理上来看,卷积神经网络就非常适合找图片的相似的地方。想想看,许多大牛、小牛、微牛的文章都是说如何从mnist中、从CIFA10中、从CIFA100中去找到相似的图片。那么,反过来想一想,如果那么复杂的数据卷积神经网络都能够去处理,那么对于这种相对来说,比较简单的“以图搜图”的需求,应该更容易来解决。这里的神经网络解决这个问题,还是尝试得到一种较为通用的问题解决方法。
        零、数据集的创建
        基于之前的一些项目,我创建这样的数据集: 
        训练数据:
        
        
       
       测试数据
       
      
      我认为,在本项目中."花纹"这个特征是比较重要的。因为颜色不是重点。在训练的时候,因为图像是可以被选择的,倾向于采用比较小的,能够完全展示一个单元的图像来做训练;在测试的时候,没有具体要求。
       以前对手写体采用的投影的方法,在解决这个问题的时候不适合,因为这些图像没有体现出突出的投影差异;而如果采用"哈希感知"的方法,也是不适合的。因为这些图像中可能存在重复的单元。、
       如果采取之前对手写体的识别方法,结果如下
    交叉训练,特征维度 5 ,神网层数 80
平均正确率 0. 250000,最低正确率 0.000000

交叉训练,特征维度 5,神网层数 100
平均正确率 0. 221591,最低正确率 0.000000

交叉训练,特征维度 5,神网层数 120
平均正确率 0. 267045,最低正确率 0.000000

交叉训练,特征维度 5,神网层数 140
平均正确率 0. 204545,最低正确率 0.000000

交叉训练,特征维度 5,神网层数 160
平均正确率 0. 159091,最低正确率 0.000000

交叉训练,特征维度 10,神网层数 20
平均正确率 0. 306818,最低正确率 0.000000

交叉训练,特征维度 10,神网层数 40
平均正确率 0. 323864,最低正确率 0.000000

交叉训练,特征维度 10,神网层数 60
平均正确率 0. 306818,最低正确率 0.000000

交叉训练,特征维度 10,神网层数 80
平均正确率 0. 295455,最低正确率 0.000000

交叉训练,特征维度 10,神网层数 100
平均正确率 0. 278409,最低正确率 0.000000

交叉训练,特征维度 10,神网层数 120
平均正确率 0. 267045,最低正确率 0.000000

交叉训练,特征维度 10,神网层数 140
平均正确率 0. 193182,最低正确率 0.000000

交叉训练,特征维度 10,神网层数 160
平均正确率 0. 227273,最低正确率 0.000000

交叉训练,特征维度 15,神网层数 20
平均正确率 0. 363636,最低正确率 0. 125000

交叉训练,特征维度 15,神网层数 40
平均正确率 0. 289773,最低正确率 0.000000

交叉训练,特征维度 15,神网层数 60
平均正确率 0. 267045,最低正确率 0.000000

交叉训练,特征维度 15,神网层数 80
平均正确率 0. 284091,最低正确率 0.000000

交叉训练,特征维度 15,神网层数 100
平均正确率 0. 244318,最低正确率 0.000000

交叉训练,特征维度 15,神网层数 120
平均正确率 0. 232955,最低正确率 0.000000

交叉训练,特征维度 15,神网层数 140
平均正确率 0. 284091,最低正确率 0.000000

交叉训练,特征维度 15,神网层数 160
平均正确率 0. 221591,最低正确率 0.000000

交叉训练,特征维度 20,神网层数 20
平均正确率 0. 289773,最低正确率 0.000000

交叉训练,特征维度 20,神网层数 40
平均正确率 0. 278409,最低正确率 0.000000

交叉训练,特征维度 20,神网层数 60
平均正确率 0. 289773,最低正确率 0.000000

交叉训练,特征维度 20,神网层数 80
平均正确率 0. 232955,最低正确率 0.000000

交叉训练,特征维度 20,神网层数 100
平均正确率 0. 329545,最低正确率 0.000000

交叉训练,特征维度 20,神网层数 120
平均正确率 0. 267045,最低正确率 0.000000

交叉训练,特征维度 20,神网层数 140
平均正确率 0. 232955,最低正确率 0.000000

交叉训练,特征维度 20,神网层数 160
平均正确率 0. 238636,最低正确率 0.000000
这个结果是非常的烂了,其原因和前面我提到的应该是哟关系的。
因此,只有gaobor或者类似nns的这种方法,才可能去解决问题。
        一、利用mlp和gabor特征来解决问题;(gabor是否更好了?这里前面给出的就是对比结果)
         在图像处理中,gabor函数是一个用于边缘提出的线性滤波器。其频率和方向非常类似人的视觉系统。因此非常适合纹理表达和分离。在空间域中,一个二维gabor滤波器是一个由正弦平面波调制的高斯核函数。
       生物实验发现gabor滤波器能够很好地近似单细胞的感受野函数等。
        一般来说,gabor滤波的方法是:不同纹理一般具有不同的中心频率和带宽,根据这些频率和带宽可以设计一组gabor滤波器对纹理图像进行过滤,每个gabor滤波器只允许于其频率相应的纹理顺利通过,。从各个滤波器的输出结果中分析和提出纹理特征,用于之后的分类和分割任务。
         具体步骤:
         1、将输入的图像分为3*3和4*4
         2、建立gabor滤波器组,选择4个尺度、6个方向,共24个滤波器;
         那么具体的过程,目前的代码是无法完成的。
        gabor特征只有对于对于实际生活中出现的图像,有比较好的原子区分能力,得到类似cnns的这种结构。
        这里比较关键的一个问题就是“什么事gabor特征,那个数值是需要最后来使用的”。中间我做出了一些解决的方法,效果是有的,但是不是非常好。
        二、训练卷积神经网络来解决问题;
 
        三、小结和反思
        为什么要写这样的一篇文章。因为经过一段时间关于神经网络和卷积神经网络的学习之后,我一直在寻找神经网络的实际应用。相比较于之前研究学习过的其它技术,卷积神经网络具有以下特点:
        1、原理比较复杂;
        2、工具比较难找;
        3、参数调整比较复杂;
        4、调试需要大量时间,因为一次训练就需要大量资源。
        这几点就决定了卷积神经网络的研究需要较多的时间,所以学习也花了很长的时间。那么在使用这个方面,也是只能跑一跑mnist和CIFA10之类的东西。如果想要最终利用于验证码识别的话,还有较长一段路需要来走。这个中间,我就需要有一个自己的项目来填补空白。
        这里我选择的是“以图搜图”的需求。这个需求在现实中,也是比较常见的。之前的思路也只能是类似于手写体识别一样,通过采集投影特征,进行距离运算等。现在,因为对卷积神经网络的初步研究,我认识到了,对于这样的图像来说,哪些特征是最重要的、哪种训练方法是最可行的。
        所以我将这个“自我项目”分为两个部分,一个部分是用gabor+mlp来实现,一个部分是用卷积神经网络来实现。对待于前者,无论是gabor还是mlp都已经有代码积累;而卷积神经网络,目前还没有比较系统的解决方法,并且是否选择lanet5的实现?这些都需要验证!我认为,通过这个自我项目,能够把对神经网络的理解和应用向前推进一大步!
        我计划利用一周的时间将这些完成,如果这些都完成之后,就应该反思积累,哪些是影响整体项目的关键节点,是数据集的建立?是数据结构的细节?还是训练?最后显示的界面如何来做?把这些做好,理清产学研之间的关系,为未来增加效益!
        此外,神经网络的程序往往都比较复杂,如何将这种程序也好,需要对能够允许的代码的充分理解和应用。
 





目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.com
目录
打赏
0
0
0
0
14
分享
相关文章
|
15天前
|
基于 PHP 语言深度优先搜索算法的局域网网络监控软件研究
在当下数字化时代,局域网作为企业与机构内部信息交互的核心载体,其稳定性与安全性备受关注。局域网网络监控软件随之兴起,成为保障网络正常运转的关键工具。此类软件的高效运行依托于多种数据结构与算法,本文将聚焦深度优先搜索(DFS)算法,探究其在局域网网络监控软件中的应用,并借助 PHP 语言代码示例予以详细阐释。
27 1
基于GA遗传优化TCN时间卷积神经网络时间序列预测算法matlab仿真
本内容介绍了一种基于遗传算法优化的时间卷积神经网络(TCN)用于时间序列预测的方法。算法运行于 Matlab2022a,完整程序无水印,附带核心代码、中文注释及操作视频。TCN通过因果卷积层与残差连接学习时间序列复杂特征,但其性能依赖超参数设置。遗传算法通过对种群迭代优化,确定最佳超参数组合,提升预测精度。此方法适用于金融、气象等领域,实现更准确可靠的未来趋势预测。
企业用网络监控软件中的 Node.js 深度优先搜索算法剖析
在数字化办公盛行的当下,企业对网络监控的需求呈显著增长态势。企业级网络监控软件作为维护网络安全、提高办公效率的关键工具,其重要性不言而喻。此类软件需要高效处理复杂的网络拓扑结构与海量网络数据,而算法与数据结构则构成了其核心支撑。本文将深入剖析深度优先搜索(DFS)算法在企业级网络监控软件中的应用,并通过 Node.js 代码示例进行详细阐释。
24 2
基于GA遗传优化TCN-LSTM时间卷积神经网络时间序列预测算法matlab仿真
本项目基于MATLAB 2022a实现了一种结合遗传算法(GA)优化的时间卷积神经网络(TCN)时间序列预测算法。通过GA全局搜索能力优化TCN超参数(如卷积核大小、层数等),显著提升模型性能,优于传统GA遗传优化TCN方法。项目提供完整代码(含详细中文注释)及操作视频,运行后无水印效果预览。 核心内容包括:1) 时间序列预测理论概述;2) TCN结构(因果卷积层与残差连接);3) GA优化流程(染色体编码、适应度评估等)。最终模型在金融、气象等领域具备广泛应用价值,可实现更精准可靠的预测结果。
基于WOA鲸鱼优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本内容介绍了一种基于CNN-LSTM-SAM网络与鲸鱼优化算法(WOA)的时间序列预测方法。算法运行于Matlab2022a,完整程序无水印并附带中文注释及操作视频。核心流程包括数据归一化、种群初始化、适应度计算及参数更新,最终输出最优网络参数完成预测。CNN层提取局部特征,LSTM层捕捉长期依赖关系,自注意力机制聚焦全局特性,全连接层整合特征输出结果,适用于复杂非线性时间序列预测任务。
阿里云国际站:拍立淘-以图搜图中的图像搜索算法是怎么样的?
@luotuoemo飞机@TG 阿里云国际站:拍立淘-以图搜图中的图像搜索算法是怎么样的?图像搜索在现代搜索系统中扮演了重要角色,尤其在电子商务网站如阿里巴巴等,它更是一个必不可少的功能。拍立淘是阿里云国际站的一个以图搜图功能,它使用了复杂的图像搜索算法进行图片匹配和识别。以下是对该算法的简单描述。
【最佳实践】阿里云 Elasticsearch 向量检索4步搭建“以图搜图”搜索引擎
“图片搜索”是作为导购类网站,比较常见的一种功能,其实现的方式也有多种。但如何做到快速、精准、简单等特性,本文给你答案。
11911 1
【最佳实践】阿里云 Elasticsearch 向量检索4步搭建“以图搜图”搜索引擎

热门文章

最新文章