高光谱图像处理之目标检测技术(CEM算法)(图像处理)@慕课网原创慕课网

1、高光谱图像目标检测的发展趋势和研究现状:

20世纪80年代末,美国的一些研究机构开始利用高光谱图像数据进行目标检测方面的研究。自上世纪九十年代,国外出现了进行高光谱图像目标检测算法理论研究的研究组。由Reed和Yu提出了基于广义似然比检验的恒虚警RX检测器(RXD)。Chang课题组提出了基于正交子空间投影的OSP检测方法,Harsanyi提出了基于约束能量最小化的CEM算法。未来高光谱目标检测的发展将会越来越重视实用性,算法的性能将会进一步提高,同时更也加适合使用FPGA硬件对其进行加速从而具有更高的实际应用价值。

2、高光谱目标检测技术的应用范围:

高光谱目标检测具有较强的实用性,可应用于公共安全、环境检测、城市规划、食品卫生、地质岩矿的识别等众多方面。

图1.1高光谱图像数据结构

3、高光谱图像数据的特点:

高光谱图像数据“图谱合一”,具有丰富的光谱维信息。高光谱图像数据共有三个维度,如图2.1所示,其中,图像空间维信息x、y用于表示物体的实际空间分布,而光谱波段L用于表示每个像素的光谱属性。

4、高光谱图像目标检测原理:

高光谱图像的各波段在成像范围内都是连续成像,因此高光谱的光谱曲线一般是平滑的、连续的曲线。高光谱图像的波段L中涵盖了物质的光谱信息,而每种物质的光谱信息都不一样,我们可以利用图像像素的光谱波段L所包含的特定的光谱信息来判断该像素所代表的特定的物质种类。

5、高光谱图像目标检测流程:

图1.2高光谱图像目标检测流程图

如图所示,对于拍摄得到的原始高光谱图像数据,需要先对数据进行预处理,包括数据格式化、无用数据剔除以及亮度到反射率的转化等。同时,对于遥感仪拍摄的高光谱图像还需要进行辐射校正,在目标检测前,应对数据进行调整,包括数据归一化等。最后根据已知的先验信息选择相应的目标检测算法进行检测。

6、现场可编程门阵列(FPGA)在高光谱图像处理中的应用:

二、算法分类、比较和选择:

1、方法分类:

高光谱目标检测方法按照先验信息是否已知分为监督方法和非监督方法。前者用于目标光谱已知的情况下,利用目标光谱与图像像元光谱进行匹配,从而完成目标检测,比如CEM算法、OSP算法;后者多用于异常目标检测,一般不需要目标和背景的先验信息,根据高光谱图像数据获取目标检测所需要的数据,然后根据数据的大小来判断是否为异常目标,比如RXD算法。

2、CEM、OSP、RXD算法的区别:

(1)CEM(ConstrainedEnergyMinimization)算法:

CEM算法主要思想是设计一个FIR线性滤波器,使得在满足约束条件式的情况下滤波器的输出能量最小。该算法不需要图像的背景信息,只需要知道要检测的先验光谱信息(目标向量)即可,具体方法是通过高光谱图像数据和先验已知的待检测目标确定一个滤波向量,让图像经过该滤波向量即可得到检测结果,其中滤波向量的作用是滤除图像中的非目标像素,让感兴趣的目标能够通过,同时抑制由其他信号带来的滤波器输出能量。

(2)OSP(OrthogonalSubspaceProjection)算法:

OSP算法与CEM算法相比,最大区别在于不仅需要目标的先验知识,还需要图像中背景的先验知识,但在实际中中这些先验信息很难全部得到。在高光谱检测中我们一般用其来检测异常。该算法需要前提条件:图像信息、目标像元、非目标像元(异常目标)信息。

(3)RXD(Reed-XiaoliDetector)算法:

RXD算法是异常目标检测领域中最基础的算法,不需要目标光谱的先验知识,而是基于背景服从多元正态分布的假设,通过检测与背景分布中心相比属于异常像元,并在这些感兴趣区域进一步查找可能存在的目标。该算法主要针对的是小目标检测问题。

(4)确定所采用的目标检测算法:

由于我们的应用场景多为有特定目标的目标检测,CEM正是针对未知场景中可能存在的特定目标的检测,只需要知道目标的光谱信息即可,而RXD算法适应于对特定场景的异常(未知目标)检测,而OSP算法除了需要已知目标光谱还需要背景信息。综上,我决定采用CEM算法进行高光谱目标检测的实现。

三、CEM算法分析:

1、算法步骤:

(1)对高光谱图像进行预处理,得到二维化和归一化后的数据r(L*N);

(3)确定目标光谱向量d(d大小为L*1);

(4)根据公式:

设计FIR线性滤波器:

(5)将归一化后的数据经过FIR滤波器,得到输出信号y。

2、问题分解:

图1.3CEM算法分解流程图

四、CEM算法实现:

1、算法流程:

在MATLAB和C语言中实现CEM算法的具体流程如图所示,因为语言特性是串行执行命令,所以在编写程序时与硬件设计比较更加直接明了。

图1.4CEM算法流程图

2、数据预处理:

对前期得到的高光谱图像在MATLAB平台上进行预处理。这一过程主要对原始的200*200*189大小的高光谱图像进行操作:

(1)二维化:通过调用MATLAB里面的reshape()函数实现。

(2)归一化:采用“min-max”方法。具体步骤是先找到数据的最大值(maxA)和最小值(minA),通过y=(x-minA)/(maxA-minA)计算的y即为归一化后的数据。高光谱数据量大,也造成了数据的存储比较困难,数据在程序中的存储等处理

3、CEM算法的MATLAB实现:

4、CEM算法的C语言实现:

在VisualStudio平台上完成CEM算法C程序的编写。相比于MATLAB实现,CEM算法的C语言实现主要难点在于矩阵运算。因为在C语言中,矩阵的转置、相乘、求逆等操作均没有现有的函数,需要编写相应的函数。在实现矩阵基本运算过程中,通过动态分配内存运用二维指针传递参数,完成矩阵加减法运算、矩阵转置运算、矩阵相乘运算以及矩阵求逆运算,这样可以节省存储空间,使用完后释放空间即可。

CEM算法的C语言实现主要包括如下步骤:

(1)在MATLAB中,将归一化后的高光谱图像数据转为189*40000的二维形式,保存为CEM.mat;

(2)编写矩阵初始化、矩阵转置、矩阵相乘、矩阵求逆、内存释放函数;

(3)编写main函数,读CEM.mat,调用上述函数,求得FIR滤波器,进而获得输出信号y,将其写入CEM.txt;

(4)在MATLAB中显示CEM.txt中数据所代表的图像。

5、难点解决:

(1)矩阵转置

矩阵转置函数的输入是大小为m*n的矩阵A,输出是大小n*m为的矩阵B。采用嵌套的for循环分别遍历矩阵的行和列,将输入的二维矩阵A按列读出,重新按行写入新矩阵B中,即可实现矩阵的转置。

(2)矩阵相乘

矩阵相乘函数的输入是大小m*n为的矩阵A和n*k的矩阵B,输出是大小为m*k的矩阵C。采用嵌套的for循环分别遍历矩阵的行和列,首先将矩阵A按行读出,矩阵B按列读出,然后将读出的矩阵A的第i行和矩阵B的第j列对应位相乘求和,将计算的结果写入矩阵C第i行第j列元素中。

(3)矩阵求逆——QR分解求逆

QR分解求逆的原理是:对于可逆矩阵A,首先利用QR分解将A矩阵分解为Q矩阵和R矩阵。即A=QR,其中Q是正交矩阵,R是上三角矩阵。然后将公式左右同时求逆,可以求得A的逆矩阵,其中Q矩阵的逆矩阵和转置矩阵相同,R求逆有特定的公式。QR分解求逆的运算较为简单,且数据稳定度较高,可以得到误差较小的求逆结果。

6、算法实现结果和对比分析:

1)MATLAB和C语言实现CEM算法的检测结果如图所示:

(a)(b)(c)

图1.6原图CEM算法检测结果:(a)原图(每一行是一种物质)(b)MATLAB检测C物质(c)C语言检测C物质

通过对MATLAB和C语言实现结果进行对比,发现二者均成功实现了CEM算法并完成了对目标的检测,观察检测结果基本无差异。

THE END
1.推荐系统基本流程推荐算法流程图本文详细介绍了推荐系统的基本流程,涉及物品、用户、场景、搜索模型及排序算法。涵盖了召回模块、排序模块和后排模块的运作,以及常用的召回和排序模型。重点讲解了如何通过用户行为和特征计算个性化推荐,适合深入理解推荐系统技术的读者。 摘要由CSDN通过智能技术生成 https://blog.csdn.net/qq_56422229/article/details/124846254
2.推荐系统最新架构推荐系统功能流程图推荐系统最新架构 推荐系统功能流程图 推荐系统主要解决的是信息过载的问题,目标是从海量物品筛选出不同用户各自喜欢的物品,从而为每个用户提供个性化的推荐。推荐系统往往架设在大规模的业务系统之上,面临着用户的不断增长,物品的不断变化,并且有着全面的推荐评价指标和严格的性能要求(Netflix 的请求时间在 250 ms https://blog.51cto.com/u_16099304/8328916
3.设计算法.输入正整数n.计算它的阶乘n!.画出流程图.用for语句描述解:算法流程图如答图所示: 用for语句描述算法如下: 输入n; T:=1; for i:=1 to n do begin T:=T*i; end. 输出T. 练习册系列答案 创新教程系列答案 互动中考复习大讲义系列答案 中考阶段总复习ABC系列答案 达优测试卷系列答案 剑指中考系列答案 http://www.1010jiajiao.com/gzsx/shiti_id_77d21cec7625a12d71db452d984156ef
4.基于协同过滤推荐算法的购物网站的设计与实现(14页)1算法流程图系统算法流程图设计如图5.14所示。 3.2算法实现此功能模块是体现在评价成功后的页面上的,当用户购买成功并评价成功的时候, 系统会将所评论的商品以及评分与其他评分进行比较和分析,然后将算法算出的结果推 测为用户可能会喜欢的商品并推荐给用户,将推荐的商品显示在猜你喜欢的模块上。所 以该功能实现的https://max.book118.com/html/2020/0413/8100115027002106.shtm
5.用了很久的YouTubeApp之后,我写下了这份产品体验报告App信息结构图 3.3 基础流程 基础流程图 4、交互体验 4.1 UI界面 页面切换 YouTube App内的页面间切换方式为点击切换,不支持左右滑动切换。 导航设计 YouTube App主界面导航采用底部固定式选项卡菜单,共5个:首页、时下流行、订阅内容、收件箱、媒体库。 https://www.digitaling.com/articles/241247.html
6.工业界推荐系统排序技术要点总结,专注大模型、学术论文、算法实战、面经分享 工业界的推荐系统技术要点总结,从事推荐系统相关方向的同学都建议刷一刷。喜欢记得收藏、关注、点赞。文末提供搜广推技术交流群。 另外,随着大模型与搜广推各场景的融合越来越多,相关技术也是面试常考点,为此写了两本书进行总结,喜欢可以看看。 https://zhuanlan.zhihu.com/p/689894486
7.流程图制作软件哪个好?流程图制作软件推荐流程图绘制软件大全包含了业务流程图,程序流程图,工作流程图,数据流程图,生产工艺流程图,word流程图,采购流程图,信用证流程图,算法流程图,招聘流程图,化工工艺流程图,带控制点的工艺流程图,销售业务流程图,审批流程图,合成氨工艺流程图,酒店管理系统流程图,http://www.downcc.com/k/liuchengtuzhizuo/
8.RGSM3hmac/README.mdatmaster·rg4sun/RGHMAC 算法流程图 HMAC 算法描述 在HMAC 的定义中用到一个密码散列函数和一个密钥 Key。本作品使用的 SM3 作 为对明文进行分组循环压缩的散列函数,明文分组长度为 64(byte),散列函 数的输出长度为 32(byte)。认证密钥 K 为随机生成。 再定义两个不同的固定字符串 iPad 和 oPad 如下(“i”和“o”表示内部https://github.com/RGNil/RG_SM3hmac/blob/master/README.md
9.机器学习推荐算法原理入门及算法介绍消费金融风控联盟比如,年纪大的人,我推荐猕猴桃,维生素丰富还能降血糖。小姑娘呢,可以推荐她们柠檬,美白又减肥。 协同过滤这个算法,目的就是找相似。其中:找相似,可以是找相似的人,也可以找相似的东西。 协同过滤(collaborative filtering)是通过将用户和其他用户的数据进行对比来实现推荐的算法。协同过滤流程图如下: https://www.shangyexinzhi.com/article/7331518.html
10.结合信任关系的用户聚类协同过滤推荐算法图1算法整体流程图 最终通过预评分公式预测出目标用户a对项目的评分值, 选取评分值最高的前N个项目作为推荐结果. 算法1. 用户聚类迭代算法 输入: 用户集合U, 评分矩阵Rm×n 输出: 调整后的用户聚类 (1)首先用K-mean聚类算法对初始的用户集合进行聚类, 得到初始用户聚类$\scriptstyle UC = \left\{ {U{C_https://c-s-a.org.cn/html/2020/8/7561.html
11.PageRank算法实现好友推荐(算法原理)PageRank算法流程图 抽象模型 有向图 使用有向图表示: 有向图示例 这个例子中只有四个网页,如果当前在A网页,那么悠闲的上网者将会各以1/3的概率跳转到B、C、D,这里的3表示A有3条出链,如果一个网页有k条出链,那么跳转任意一个出链上的概率是1/k,同理D到B、C的概率各为1/2,而B到C的概率为0。 https://www.jianshu.com/p/cbb04e7384ee
12.你真的清楚流程图规范吗?流程图作为一种表达算法和思路最好的方法,一直在我们的生活中扮演着重要的角色。但是很多人画流程图都是大概一画,并没有按照流程图规范来画。难道流程图没有一个统一的规范吗?流程图当然有规范的画法,下面我来为大家介绍一些流程图规范。 既然说起流程图规范,那不得不提的就是流程图的三大结构。在说三大结构之前https://modao.cc/flowchart/flow-chart-specifications-you-should-know.html
13.流程图怎么做?分享流程图制作的基础知识流程图可以细分为工艺流程图、工作流程图、算法流程图、程序流程图和系统流程图等多种分类,但我们其实可以将这些分类的流程图归纳为逻辑流程图和基本流程图两大类型。 1.逻辑流程图:逻辑流程图用来表示流程内的核心运行过程,用来指导编写程序逻辑,并检查程序算法的正确性,便于帮助他人理解程序的逻辑思路https://m.liuchengtu.com/tutorial/lctzmz.html
14.用流程图描述算法中表示“条件判断”的图形符号是()。A.B.C用流程图描述算法中表示“条件判断”的图形符号是( )。 A. B. C. D. 相关知识点: 试题来源: 解析 答案:A 结果一 题目 用流程图描述算法中表示“条件判断”的图形符号是( )。 答案 答案:A相关推荐 1用流程图描述算法中表示“条件判断”的图形符号是( )。https://easylearn.baidu.com/edu-page/tiangong/questiondetail?id=1709863306399674600&fr=search