登录
首页 » Others » 图像清晰度评价指标 Matlab

图像清晰度评价指标 Matlab

于 2020-05-31 发布
0 376
下载积分: 1 下载次数: 4

代码说明:

对图像进行清晰度评价的指标,包含熵、交叉熵、峰值信噪比、Qabf、平均梯度、SSIM、互信息、NMI等,采用MATLAB编写。

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • matlab粒子群算法工具箱
    粒子群,pso,matlab实时绘图,自带测试函数
    2020-11-05下载
    积分:1
  • word2vec_中的数学原理详解
    word2vec_中的数学原理详解个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!wordzvec中的数学hoty@163.com2014年7月目录前言2预备知识2.1 sigmoid函数2.2逻辑回归3 Bayes公式2.4 Huffman编码,,,,,,,,524.1Humu树242 Huttman树的构造62.4.3 Huffman编码..,.3背景知识3.1统计语言模3.2n-gram模型103.3神经概率语言模型123.4词向量的理解4基于 Hierarchical softmanⅹ的模型41CBOW模型..191.1.1网络结构41.2梯度计算201.2 Skip-gram模型42.1网络结构42.2梯度计算255基于 Negative sampling的模型285.1CBOW模型285.2 Skip-gram模型53负采样算法326若干源码细节346.1a(x)的近似计算62词典的存储63换行符3564低频词和高频词366.5窗口及上下文3766自应学习率3767参数初始化与训练386.8多线程并行3869几点疑问和思考11m3881前言word2vec是 Google于2013年开源推出的一个用于获取 word vector的工具包,它简单、高效,因此引起了很多人的关注,由于word2vec的作者 Tomas nikolov在两篇相关的论文(,[4)中并没有谈及太多算法细节,因而在一定程度上增加了这个工具包的神秘感些按捺不住的人于是选择了通过解剖源代码的方式来一窥究竟第一次接触word2ve是2013年的10月份,当时读了复且大学郑骁庆老师发表的论文7,其主要工作是将SENA的那套算法(8])搬到中文场景.觉得挺有意思,于是做了一个实现(可参见[20),但苦于其中字向量的训练时间太长,便选择使用word2we来提供字向量,没想到中文分词效果还不错,立马对word2vec刮目相看了一把,好奇心也随之增长后来.陆陆续续看到∫word2ve的一些具体应用,而 lomas nikolov团队本身也将其推广到了句子和文档(),因此觉得确实有必要对word2vec里的算法原理做个了解,以便对他们的后续研究进行追踪.于是,沉下心来,仔细读了一回代码,算是基本搞明臼里面的做法了.筼一个感觉就是,“明明是个很简单的浅层结构,为什么被那么多人沸沸扬扬地说成是Decp Learning呢?”解剖word2vec溟代码的过程中,除了算法层面的收获,其实编程技巧方面的收获乜颇多.既然花了功夫来读代码,还是把理解到的东西整理成文,给有需要的朋友提供点参考吧在整理本文的过程中,和深度学习群的群友北流浪子(15,16)进行了多次有益的讨论在比表示感谢另外,也参考了其他人的一些资料,鄱列在参考文献了,在此对他们的工作也并表示感谢2预备知识本节介绍word2vee中将用到的些重要知识点,包括 sigmoid函数、 Beyes公式和Huffman编码等821 sigmoid函数sigmoid函数是神经网络中常用的激活函数之一,其定义为1+e该函数的定义域为(-x,+x),值域为(0,1).图1给出了 sigmoid函数的图像0.5图1 sigmoid函数的图像sigmoid数的导函数具有以下形式)=0(x)1-0(x)由此易得,函数logo(a)和log(1-0(x)的导函数分别为log o(a)(21)公式(2.1)在后面的推寻中将用到822逻辑回归生活中经常会碰到二分类问题,例如,某封电子邮件是否为垃圾邮件,某个客户是否为在客户,某次在线交易是舌仔在诈行为,等等.设{(x,)}1为一个二分类问题的样本数据,其中x∈R",∈{0,1},当1=1时称相应的样本为正例,当v=0时称相应的样本为负例利用 sigmoid函数,对于任意样木x=(x1,x2,…,xn),可将二分类问题的 hypothesis函数写成h(x)=0(o+61x1+622+…+nxn),其中0=(0o,01,…,O)为待定参数.为了符号上简化起见,引入x0=1将x扩展为(x0,x1,x2,…,xrn)},且在不引起混淆的情况下仍将其记为ⅹ.于是,he可简写为取阀值T-0.5,则二分类的判别公式为1,b(x)≥0.5y(x0.5那参数θ如何求呢?通常的做法是,先确定一个形如下式的整体损失函数∑co(x,v)然后对其进行优化,从而得到最优的參数θ实际应用中,单个样本的损失函数cost(x,)常取为对数似然函数cosl(xi, yi)),v-1;(1-(x),v=0注意,上式是一个分段函数,也可将其写成如下的整体表达式cost(x2,3)=·log(ho(x)(1y1)·log(1h(x)323 Baves公式贝叶斯公式是英国数学家贝叶斯( Thomas Bayes)提出来的,用来描述两个条件概率之间的关系.若记P(A),P(B)分别表示事件A和事件B发生的概率,P(AB)我示事件B发生的情况下事件4发生的慨率P(A,B)表示事A.B同时发生的概率.则有P(AB)P(B), P(BLA)=P(A, B)P(A, B利用上式,进一步可得P(B AP(AB)-P(A)P(B)这就是 Bayes公式g2.4 Huffman编码本节简单介绍Humn编码(具体内容主要来白百度百F的词条.[10),为此,首先介绍Huffman树的定义及其构造算法§24.1 Huffman树在计算机科学中,树是一种重要的非线性数据结构,它是数据元素(在树中称为结点)按分支关系组织起来的结构.若干棵互不相交的树所构成的集合称为森林.下面给出几个与树相关的常用概念·路径和路径长度在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径.通路中分支的数目称为路径长度.若规定根结点的层号为1,则从根结点到第L层结虑的路径长度为L-1●结点的权和带权路径长度若为树中结点赋予一个具有某种含义的(非负)数值,则这个数值称为该结点的权结点的带权路径长度是指,从根结点到该结点之间的路径长度亐该结点的杈的乘矾·树的带权路径长度树的带权路径长度规定为所有叶子结点的带权路径长度之和二叉树是每个结点最多有两个子树的有序树.两个子树通常被称为“左子树”和“右子树”,定义中的“有序”是指两个子树有左石之分,顺序不能颠倒给定n个权值作为n个叶子结点,树造一棵二叉树,若它的带权路径长度达到最小,则称这样的二叉树为最优二叉树,也称为 Huffman树82.4.2 Huffman树的构造给定m个权值{mn,m2;…,mn}作为二叉树的m个叶子结点,可通过以下算法来构造颗 Huffman树算法2.Ⅰ(Hu「man树构造算法)(1)将{1,2,……,wn}看成是有n棵树的表林(每树仅有一个结点)2)在森林中选出两个根结,的权值最小的树合并,作为-棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和〔3)从森林中燜除选取的两樑树,并将新树加入森林(4)重复(2)、(3)步,直到森林中只剩一棵树为止,该树即为所求的 luffman树接下来,给出算法2.1的一个具体实例例2.1假设2114年世界杯期间,从新浪毀博中抓取了若干条与足球相关的微博,经统计,“我”、“喜欢”、“观看”、“巴西”、“足球”、“世界杯”这六个词岀现的次薮分别为15,8,6,5,3,1.请以这6个词为叶子结点,以相应词频当权值,构造一棵Hu∥n树.⊙Q⑨Q⊙只66如→只只③⊙图2 Huffman树的构造过程利用算法.,易知其枃造过程如国g所示,团中第六步给出了最终的 Hutman树,由囚可见词频越大的词离根结点越近构造过程中,通过合并新増的结点被标记为黄色.由于每两个结点邡要进行一次合并,因此,若叶子结点的个数为η,刘枃造的H們πω树中新増结点的个数为π-1.本例中n6,因此新增结,的个数为5注意,前面有捉到,二叉树的丙个子树是分左右的,对于某个非叶子结点来说,就是其两个孩子结点是分左右的,在本例中,统一将词频大的结点作为左孩子结点,词频小的作为右孩子结点当然,这只昃一个约定:你要将词頻大的结点作为右孩子结点也浸有问题§24.3 Huffman编码在数据通倍中,需要将传送的文宁转换成二进制的字符串,用0,1码的不同排列米表示字符.例如,需传送的报文为“A上 TER DATA EAR ARE ART AREA”,这里用到的字符集为“A,E,R,T,F,D”,各字母出现的次数为84,5,3,1,1,现要求为这些字母设计编码要区别6个字母,最简单的二进制编码方式是等长编码,固定采用3位二进制(23=8>6),可分别用000.001、010、011、100、101对“A,E,R,T,F,D”进行编码发送,当对方接收报文时再按照三位一分进行译码显然编码的长度取决报文中不同字符的个数,若报文中可能出现26个不同字符,则固定编码长度为5(2=32>26).然而,传送报文时总是希望总长度尽可能短.在实际应用中,各个字符的出现频度或使用次数是不相同的,如A、B、C的使用频率远远高于X、Y、7,自然会想到设计编码时,让使用频率高的用短码,使用频率低的用长码,以优化整个报文编码.为使不等长编码为前缀编码(即要求一个字符的编码不能是另一个字符編码的前缀),可用字符集中的每个宇符作为叶子结点生成一棵编码二叉树,为了获得传送报文的最短长度,可将每个字符的岀现频率作为字符结烹的权值赋予该结点上,显然字使用频率越小权值越小,权值越小叶子就越靠下,于是颎率小编码长,频率高编码短,这样就保证了此树的最小带权路径长度,效果上就是传送报文的最短长度.因此,求传送报文的最短长度问题转化为求由字符集中的所有字符作为叶子结点,由字符出现频率作为其权值所产生的Hman树的问题.利用 Hultman树设计的二进制前缀編码,称为 LuminaL编码,它既能满足前缀编码的条件,又能保证报文编码总长最短本文将介绍的word2ve工具中也将用到 Huffman编码,它把训练语料中的词当成叶子缩点,其在语料中出现的次数当作权值,通过构造相应的 Huttman树来对每一个词进行Huffman编码图3给岀了例2.1中六个词的 Huffman编码,其中约定(词频较大的)左孩子结点编码为1,(词频较小的)石孩子编码为θ.这惮一米,“我”、“喜欢”、“观看”、“巴西”、“足球”、“世界杯”这六个词的 Huffman编码分别为0.111,110,101,1001和10000我告欢巴匹0足球图3 Huffman编码示意图注意,到目前为止,关于 Huttman树和 Huttman編码,有两个约定:(1)将权值大的结点作为左孩子结点,权值小的作为右孩子结点(2)左孩子结点编码为1,右孩子结点编码为0.在word2vec源码中将权值较大的孩子结点编码为1,较小的孩子结点编码为0.为与上述约定统一起见,下文中提到的“左孩了结点"都是指权值较大的孩了结点83背景知识word2vec是用来生成词向量的工具,而词向量与语言模型有着密切的关系,为此,不妨先了解一些语言模型方面的知识83.1统计语言模型当今的互联网迅猛发展,每天都在产生大量的文本、图片、语音和视频数据,要对这些数据进行处理并从中挖掘岀有价值的信息,离不开自然语言处理( Nature Language processing,NP)技术,其中统计语言模型( Statistical language model)就是很重要的一环,它是所有NLP的基础,被广泛应用于语音识别、机器翻译、分词、词性标注和信息检索等任务.例.1在语音识别糸统中,对于给定的语音段Vire,霄要找到一个使概率p( TertVoice最大的文本段Tert.利用 Bayes公式,有P(Teat voice)p(VoiceText). p(Textp(Voice)其中p( CicetE.c)为声学模型,而 elEct)为语言模型(18])简单地说统计语言模型是用来计算一个句子的概率的概率模驷,它通常基于一个语料库来构建.那什么叫做一个句子的概率呢?假设W=m1:=(m1,2,…,mr)表示由T个词,2,……,按顺序构成的一个句子,则1,c2…,w的联合慨率p()=p(x1)=p(01,t2,…,r)就是这个句子的概率利用 Bayes公式,上式可以被链式地分解为p(uh)-p(1)·p(u2lu1)p(u3lu2)…p( wru-1),(3.1)其中的(条件)概率p(1),p(2t1),p(un),…,p(mr1-)就是语言模型的参数,若这些参数已经全部算得,那么给定一个句子U1,就可以很快地算出相应的p(1)了看起来奷像很简单,是吧?但是,具体实现起来还是有点麻烦.例如.先来看看模型参数的个数.剛刚才是考虑一个给定的长度为T的句子,就需要计算T个参数.不妨假设语料库对应词典D的大小(即词汇量)为N,那么,如果考虑长度为T的任意句子,理论上就有M种可能.而每种可能都要计算T个参数,总共就需要计算TN7个参数.当然,这里只是简单估算,并没有考虑重复参数,但这个量级还是有蛮吓人.此外,这些概率计算好后,还得保存下来,因此,存储这些信息乜需要很大的內存开销此外,这些参数如何计算呢?常见的方法有n-gram模型、决策树、最大熵模型、最大熵马尔科夫模型、条件随机场、神经网络等方法,本文只讨论n-gram模型和神经网络两种方法.首先来看看 n-gram模型
    2020-12-04下载
    积分:1
  • A*算法 A star 算法(matlab)
    A*算法 A star 算法(matlab)版本,可以直接使用,包含路径优化
    2020-12-07下载
    积分:1
  • 华中8型系统二次开发手册
    华中数控8型系统二次开发文档,使用语言C++或C#,实测可用牛屮型数控系统二次开发手册报警简介接口列表升级备份简介接口列表事件简介接口列表代码程序管理简介接口列表网络简介接凵列表牛屮型数控系统二次开发手册修订说明新增报警、升级备份、网络接口牛屮型数控系统二次开发手册二次开发简介通过二次开发,用户可以仅关注需要的东西,通过接口定制软件功能,而不用了解底层功能到底如何实现,能够加快开发进度,提高开发效率。二次开发流程华中型数控系统二次开发软件提供接口,能够采集并设置下位机数据,从而实现对下位机的控制。用户只需要自己开发自己关注的功能界面,然后通过调用封装好的二次开发接口,来调用底层数据,调用成功后将值返回给用户。牛屮型数控系统二次开发手册网络版开发网络版开发,可以脱离下位机,比如开发的软件可以独立到用户的电脑,实现上位机和下位机的个相互独立的部分之间通信。电脑上运行的客户端二次开发软件可以采集或者设置到卜位机的数据如下所小运行在用户电脑上,用户可以自己选择要连接的下位机,连接成功后,可以实现对下位机的实时监控等架作。● Net Server楼回自动co连按2014-061214:35:37信息奇存器变量l参数升级备分轴信息机实买尔机床指令没置是示列信息X284340毫米4916毫米F11Y376080享米-37.6271米G200毫米∠17.8500毫米17.8500亳米7.8500毫米00Q度0.000加工程忘名图1 NetServer运行界面牛屮型数控系统二次开发手册软件包配置及使用日前针对的主流开发平台和,提供了不同的二次开发软件包软件包的介绍对于开发,根据开发环境是或者分别提供两种不冋的软件包。只体如下图所小表1软件包列表开发环境SDK包文件动态Lib库文件( HncNetDillib、 HncNetdildl)C++nclude头文件文件夹WindowsHncApi.CS接口文件HncNetdlldl!动态链接库文件Windows下软件包配置及使用在平台下进行的二次开发,需将的二次开发提供的相关软件包文什加入自己的工程文件夹中。下面就分别介绍中的使用环境下开发库、开发库的配置及使用。二次开发库配置配置开发环境步骤:启动新建一个应用程序工程在工程目录下新建一个目录,将二次开发包中的平台的库文件拷贝到新建的目录下将二次开发包中的头文件目录拷贝到工程目录下右键点击⊥程名称,在弹出菜单中选择属性,弹山属性页;选择酉置属性,,常规,在右边附加包含目录中加入头文件路径。牛屮型数控系统二次开发手册++Demo届性页BC.动D)平含活M2笆运蛋〔D通用属性# USInc到式仨三格式用于“端国实”的程序数兵宇(ZI公共语言运行时支持VC-+三录耿消显示疟动版权标志言等级esCw3优化多处理器编译预处理器为编望序列表用 Unicode代巧生成图2配置 include路径选择酉置属性,,预处理器,在右边预处理定义添加宏定义置C:动 Chur台P:活定in37)「配管理()通卫星性预处理定义WIN52-WINDoWHNC DLL IMP A pEBUG: 9%(Preprace!取所有预处理器宇义否忽暗标唯包含路位否页处西到文件页处理取消显示行号否保密注选择配置属性,链接器,输入,在右边附加依赖项中输入,库文件所在路径在忽略特定目录库中输入C+Deme性页(C)后动 Debue)≌(:活动ir32配置兰理稀p通用唐性加农酸项lib/HncNtDIl lib: %(Additional Dcps置属性忽暗所有默认库常规忽路持正默认库c凵 BCD. LIl调过vC++E录标模块忝序哉入托曾资源文件穿规强制符号引用加载的DLL穿规调式图3配置lib路径牛屮型数控系统二次开发手册在生成目标文件所在的文件夹中,加入文件在应用程序文件中加入凼数库头文件的声明,例如至此,用户就可以在中调用网络模块的函数,开始编写应用程序。具体代码可参见以及二次开发范例。二次开发库配置配置开发环境步骤启动新建一个应用程序工程在工程日录下新增文件将该文件添加至工程,并修改域名使与该程序致ec机!盘G),t计!mn年,tm分‖索dea文件编(E)打开新建女件beImu C#demo2014/522151g文件灾J Debug2014/52316:38文件灾o Debuy2014/5/2315:18文件灾U obj2014/5231510文件lAramanI Properties2014/52315:10文件夹CclbFur_LS2014/5/26 10: 27 VisUal C# SuLIL1 cema C++kc demo s2014/528 14: 32 Visual C+ Project5K8C++De吧 emo scf2014/512614:02 SQL Server Com42,530K82014/5/23 10: 38 Microsoft vis Ia-g Form Maincs2014/5/26 13: 47 Visual C#Sourc.2014(5/23 16: 36 Visi al Cf Soure.13 KR二++602014/5/23 16: 36 NE Managed5K82014/5 28 14: 39 Visual C# Sourc.142 KBD U cnum EXCITICN2014/5/26 9: 51 Visual C+ SourC.bs 9 exteuLliur4 PeNter. D2014/5/265: 52 Visual C+ Sourc.5K8图4添加cs文件将复制到目标文件夹北比,m,bm小Db4提 Debug文件(F编辑(E童看织包含到库平≡新∨出I demo_C*修改日期类丑214/5/2613:47立用程序86KB2J14/5/ 2613: 4/ Program Debug100 KBdemo vshost.ex2014/5/2814:29用程序12 KBdemo, shost. exe. manifest221031722:39 MANIFEST文件E KBPerenan2014/5/2811;34用程序扩晨397KB+-DemD3t3山AA⊥I牛屮型数控系统二次开发手册图5添加d文件至此,用户就可以在中调用网络模块的函数,开始编写应用程序。具体代码可参见以及二次开发范例。二次开发接口范例介绍二次开发范例为例,该次开发程序连接下位机后可实时显示:坐标值进给速度主轴速度;进给修条、主轴修条、快移修条:代码当前运行行号,当前运行代码路径及名称;主轴功率、主轴负荷;下位机当前状态;当前程序运行时间;历史报警个数:报警详细信息;从上位杋加载代码到下位机;获取宏变量值。具体功能实现,可参见代码。配置成功后,运行程序,生成界面。红栏状态主接坐标显示生标佰主轴久苛z丛柝坐标值运行时时间Stat进给速度坐标值警历史个数tatC主袖束度斗标值振警详细言息进给修条坐标值仅移诊录生标佰物修杀坐标值当前运行行号坐标直当前运行程序乞序名方克里值选督程尸乞图6运行界面点击连接后,界面显示当前设备运行状态。若连接成功,将显示网络已连接。点击获取宏变量值,显示当前坐标值。选择程序名,输入电脑上待加载的代码路径后,点击确认,将从电脑加载代码到设备。如下所示。
    2020-12-07下载
    积分:1
  • 无线通信fpga设计(田耘)
    无线通信fpga设计(田耘),上面详细的介绍了fpga在无线通信方面的开发流程,我当初可是费了很大的功夫找到的哦!
    2021-05-07下载
    积分:1
  • 大话数据结构原书 + 源代码
    大话数据结构:使用诙谐幽默的方式来学习数据结构,让初学者更加深入的了解数据结构和算法,该资源包含部分课后习题源码。
    2019-11-14下载
    积分:1
  • 时序设计与约束资料
    Xilinx_constraints.pdfXilinx公司对高速PCB信号的优化设计.pdf大型设计中FPGA 的多时钟设计策略.pdf关于maoci的讨论和可靠性有关的几个概念.doc华为静态时序分析与逻辑设计.pdf经典时序.pdf静态时序分析(Static Timing Analysis)基础与应用.pdf时序分析之1 静态分析基础.pdf时序分析之2 Timequest教程.pdf时序分析之3 优化策略.pdf同步电路设计中CLOCK SKEW的分析.doc系统时序基础理论.pdf
    2020-12-03下载
    积分:1
  • STM32的DMA方式实现SD卡存储
    STM32F103工程实现DMA采集接收消息,并通过FATFS系统将所采集接收到的数据存储到SD卡中。
    2020-12-04下载
    积分:1
  • C#仓库管理系统源代码
    包括了人员档案的管理、物料档案管理、简单物料进仓/出仓信息管理、多物料进出仓信息管理、用户登录与权限设计、统计程序设计与报表打印等多个功能模块
    2020-07-02下载
    积分:1
  • Matlab 多目标优化
    Matlab 多目标优化 遗传算法 源程序 很好的应用案例 基于MATLAB
    2020-06-27下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载