介绍
了解人们的行为和互动通常取决于看到他们。从视觉数据中自动进行动作识别的过程已成为计算机视觉界众多研究的主题。但是如果太暗,或者人被遮挡或在墙壁后面怎么办?在本文中,我们介绍了一个神经网络该模型可以在光线不足的情况下通过墙壁和遮挡物检测人类的行为。我们的模型将射频(RF)信号作为输入,生成3D人体骨骼作为中间表示,并随着时间的推移识别多个人的动作和互动。通过将输入转换为基于中间骨架的表示形式,我们的模型可以从基于视觉的数据集和基于RF的数据集中学习,并允许这两个任务互相帮助。我们表明,在可见场景中,我们的模型可以达到与基于视觉的动作识别系统相当的准确性,但是在看不见人的情况下,该模型仍可以继续正常工作,因此可以解决超出当今基于视觉的动作识别的局限性的场景。
先来看一组动图
墙后动作可识别
黑暗环境可识别
他们的模型将射频(RF)信号作为输入,生成3D人体骨架作为中间表示,并随着时间的推移识别多个人的动作和互动。
多人模式可识别
在本文中,我们旨在弥合两个世界。我们引入了RF-Action,这是一个端到端的深度神经网络,可以识别无线信号中的人类动作。它的性能可与基于视觉的系统相媲美,但可以穿过墙壁和遮挡物,并且对光照条件不敏感。图1显示了RF-Action在两种情况下的性能。在左侧,两个人握手,但其中一个被遮挡。基于视觉的系统将无法识别动作,而RF-Action轻松将其归类为握手。在右侧,一个人正在打电话,而另一个人将要向他扔东西。由于光线不佳,基于视觉的系统几乎看不到后者。相反,RF-Action可以正确识别两个动作。
RF-Action基于多模式设计,可与无线信号和基于视觉的数据集一起使用。我们利用最近的工作显示即推断人类骨骼(即,姿势)从无线信号的可行性 ,并采用骨架作为适合于RF和基于视觉的系统的中间表示。使用骨架作为中间表示是有利的,
因为:
(1)它使模型与RF和视觉数据来训练,并利用现有的基于视觉的三维骨骼数据集如PKU-MMD和NTU-RGB + d [ 26,31 ]; (2)它允许对中间骨骼进行额外的监督,从而有助于指导学习过程,而不仅仅是过去基于RF的动作识别系统中使用的单纯动作标签;
(3)由于骨架表示受环境或主体身份的影响最小,因此提高了模型推广到新环境和新人的能力。
我们通过两项改进其性能的创新进一步扩展了我们的模型:首先,骨骼,尤其是从RF信号生成的骨骼,可能会出现错误和错误预测。为了解决这个问题,我们的中间表示除了骨架之外还包括每个关节上随时间变化的置信度得分。我们使用自我关注来允许模型随着时间的推移以不同的方式关注不同的关节,具体取决于它们的置信度得分。
其次,过去的动作识别模型可以随时生成单个动作。但是,场景中的不同人可能会采取不同的动作,如图1右图所示,一个人在电话上交谈,而另一个人在扔物体。我们的模型可以使用专门设计用于解决此问题的多提案模块来解决此类情况。
为了评估RF-Action,我们使用无线设备和多摄像头系统收集了来自不同环境的动作检测数据集。该数据集跨越25个小时,包含30个执行各种单人和多人动作的个人。我们的实验表明,RF-Action在可见场景中的性能可与基于视觉的系统相媲美,并且在存在完全遮挡的情况下仍能继续保持良好的性能。具体来说,RF-Action在无遮挡的情况下可达到87.8的平均平均精度(mAP),在穿墙场景中的mAP为83.0。我们的结果还表明,多模式训练可以改善视觉和无线模式的动作检测。使用RF数据集和PKU-MMD数据集训练模型,我们观察到测试集的mAP性能从83.3提高到87。
贡献:本文有以下贡献:
它提出了第一个使用无线电信号进行基于骨骼的动作识别的模型;它进一步证明了这种模型可以仅使用RF信号(如图1所示)就可以准确识别穿过墙壁的动作和相互作用,并且在极端恶劣的照明条件下。
本文提出了“骨架”作为跨各种形式来传递与动作识别相关的知识的中间表示,并通过经验证明这种知识传递可以提高绩效。
本文介绍了一个新的时空注意模块,该模块改进了基于骨骼的动作识别,而不管骨骼是从RF还是基于视觉的数据生成的。
它还提出了一种新颖的多提案模块,该模块扩展了基于骨骼的动作识别以检测多个人同时进行的动作和互动。
该图显示了我们系统的两个测试用例。在左侧,两个人握手,而其中一个在墙后。在右边,一个人躲在黑暗中,向另一个正在打电话的人扔东西。底行显示了由我们的模型生成的骨骼表示和动作预测。
相关知识
(a)基于视频的动作识别: 在过去的几年中,从视频中识别动作一直是一个热门话题。早期方法使用手工制作的功能。为实例,像HOG和SIFT图像描述符已经被扩展到3D 来提取视频时间线索。此外,诸如改进的密集轨迹(iDT)之类的描述符是专门设计用来跟踪视频中的运动信息的。
最新的解决方案基于深度学习,分为两大类。
第一类通过利用三维卷积网络提取运动和外观特征共同。
第二类分别通过使用两个流神经网络考虑空间特征和时间特征。
(二)基于骨架行为识别:基于骷髅动作识别最近获得广泛关注。这种方法具有多个优点。
首先,骨骼为人类动态提供了一种强大的表现力来抵抗背景噪声[ 23 ]。
其次,与RGB视频相比,骨骼更为简洁,这减少了计算开销,并允许使用更小的模型来适合移动平台。
基于骨骼的动作识别的先前工作可以分为三类。早期工作使用递归神经网络(RNN)对骨架数据中的时间依赖性进行建模。
然而,最近,文献转向了卷积神经网络(CNN),以学习时空特征并取得了令人印象深刻的性能。
此外,某些文件表示的骨架作为动作识别图形和利用图形神经网络(GNN)。
在我们的工作中,我们采用基于CNN的方法,并通过引入时空注意模块来处理从无线信号生成的骨骼,并在多提案中扩展了分层共现网络(HCN)模型。
模块以同时启用多个动作预测。
(C)无线电的基于动作的识别: 研究在无线系统中已经使用无线电信号探索动作识别,特别是用于家庭应用,其中隐私问题可以排除使用摄像机 。
这些作品可以分为两类:
第一类类似于RF-Action,因为它可以分析从人体反弹的无线电信号。他们用行动标签监督,简单分类。
他们只能识别简单的动作(例如步行,坐着和跑步),最多只能识别10个不同的动作。
而且,它们仅处理单人场景。
第二类依赖于传感器网络。
他们或者部署不同传感器,用于不同的动作,(例如,在冰箱门上的传感器可检测的饮食),或贴在每个主体部的可穿戴式传感器和基于其上的身体部位移动识别被摄体的动作。
这样的系统需要对环境或人的大量检测,这限制了它们的实用性和鲁棒性。
射频信号入门
同时记录RF热图和RGB图像。
我们使用在过去的工作常用于基于RF的动作识别一种类型的无线电的。
无线电会产生一个称为FMCW的波形,并在5.4至7.2 GHz之间工作。
该设备具有垂直和水平排列的两个天线阵列。
因此,我们的输入数据采用二维热图的形式,一个来自水平阵列,一个来自垂直阵列。如图2所示,水平热图是无线电信号在平行于地面的平面上的投影,而垂直热图是信号在垂直于地面的平面上的投影(红色表示大值,蓝色表示小值)。直观地,较高的值对应于来自某个位置的信号反射的强度更高。
无线电以30 FPS的帧速率工作,即每秒产生30对热图。
如图所示,RF信号与视觉数据具有不同的属性,这使基于RF的动作识别成为一个难题。尤其是:
穿过壁的频率中的RF信号的空间分辨率低于视觉数据。在我们的系统中,深度分辨率为10 cm,角度分辨率为10度。如此低的分辨率使得难以区分诸如挥手和梳头等活动。
人体在穿过墙壁的频率范围内镜面反射。RF镜面反射是当波长大于表面粗糙度时发生的物理现象。
在这种情况下,与散射体相反,物体的作用就像反射镜(即镜子)。我们收音机的波长约为5厘米,因此人类可以充当反射器。
本博文为本人调研水下图像增强时做的一些笔记。可能整理得不是很清晰,仅仅供个人学习记录用~欢迎各位交流~
目录
背景
研究现状(常用的方法)
非物理模型的图像增强方法
白平衡方法
直方图均衡化方法
基于Retinex的方法
基于暗通道先验的方法(去雾的方法)
基于卷积神经网络的方法
基于物理模型的图像复原方法
水下图像成像理论
水下成像系统
水下散射模型
水下退化图像模糊类型
高斯模糊
运动模糊
散焦模糊
图像质量评价标准
参考资料:
背景 对于水下作业,特别是水下机器人作业等场景,水下图像增强具有广阔得应用前景(水下机器人主要是靠它的视觉系统来判断周围的环境信息,水下机器人的视觉系统就好比人体的眼睛,它可以为机器人提供了水下目标位置信息,根据目标的位置信息,研究人员可以对目标进行监测与追踪,它还可以将获得的环境实时状态一起抽象为供机器人管理的环境模型。)。基于声视觉和基于光视觉的水下目标检测识别技术是目前主流的水下目标检测识别技术。基于声视觉的水下目标检测识别技术是通过声呐实现的,但其图像信息采集能力弱,生成图像清晰度低。基于光视觉的水下目标检测识别技术则是通过光视觉传感器实现的,成像分辨率高的光视觉传感器更适用于短距离的目标识别和精确定位。二者相比,基于光视觉的水下目标检测识别技术在水下捕捞机器人应用中优势更为明显
基于光学的水下小目标检测识别是水下捕捞机器人智能化作业的关键。然而,基于光视觉的水下目标检测识别技术同样面临着巨大的挑战,其主要原因是海洋复杂成像环境导致光视觉系统获取到的水下图像严重退化(水下图像的衰退主要包括:光线吸收导致的颜色偏差,光线前向散射导致的细节模糊和光线后向散射造成的低对比度),出现颜色衰退、对比度低以及细节模糊等现象。首先,由于水对光的吸收作用,光线在传输过程中就会发生能量衰减,在一般情况下,红光在水中衰减最快,衰减最慢的是蓝绿色光线;另外,由于光在水中的散射作用也会造成水下图像成像效果不好。散射效应又分为前向散射和后向散射,前向散射的意思是水中物体反射的光向摄像机传输的过程中发生的小角度偏离原来的传输方向的散射现象;后向散射的意思是光线在照射到水中物体时遇到水中的杂质就会发生散射直接被摄像机接收的散射现象,导致图像对比度低。
严重退化的水下图像由于缺少用于目标识别的有效信息,导致水下目标检测识别难度提升。随着高科技水下成像设备的发展,获取的水下图像的质量也得到了一定程度的提升,但仍然存在颜色衰退、对比度低以及细节模糊等现象,此外实际应用成本也是需要考虑的问题,因此对水下图像进行增强仍然有其必要性。
水下图像处理技术的算法可以根据是否基于水下成像模型分为图像增强算法和图像复原算法两种。图像增强方法是对得到的水下图像的像素点进行研究增强,算法过程中不需要考虑图像的形成过程和降质过程;图像复原方法是要根据水下图像的成像过程来获得出真实的情况。图像复原方法需要水体的光学参数、摄像机参数和摄像机与目标物体的距离等信息,这些信息都要通过人工测量或其他方法估测出这些值。
水下视觉探测技术的重点和难点有两个方面,一是水下光传感设备参数的标定,另一个是水下模糊图像的复原。由于水质的复杂性,导致光线在水下的传播有折射、散射等现象,同时可能存在的浑浊水质也是导致水下图像退化的主要原因,水下图像就因为这种降质因素产生了严重的模糊。目前科学技术处理这种模糊还存在一定的难度。由于无法获得原始的水下清晰图像,以及无法精确测量到导致水下图像发生退化的模糊函数,水下图像复原技术的应用一直受到限制,也间接限制了水下探测等技术的发展。因此如何根据水下图像的形成机制和水下图像发生退化的原因,建立一个合理的水下图像退化的物理模型,同时使得该物理模型能够实际应用,能够通过软硬件手段估计得到模糊函数来复原水下图像是目前的研究重点,具备实际的研究价值和意义。(由于水下环境的复杂,且难以获得ground truth,故此若采用DL来做,其中一个难点就是如何获取成pair的训练数据,除非采用无监督学习)
研究现状(常用的方法) 受水下光传播过程中的衰减和散射的影响,在纯水区域中,水下能见度一般为20m,在浑浊海水中的能见度一般只有 5m。
McGlamery在 1979 年搭建了经典的计算机水下成像系统模型。他发现,摄像机水下成像系统获得到的光能量可以分成三个部分:直接传输的光能量、前向散射的光能量和后向散射的光能量。
在图像处理中,图像复原又叫做图像恢复,该项技术有着广泛的应用领域。同时图像复原技术又与其他图像技术之间有着一定的联系,比如:与图像增强相比,两种技术在一定程度上都是针对图像进行改善,从而提高图像质量。但是这两项技术有着不一样的图像质量评价指标和不同的设计算法。相对而言,图像增强一般是增强视觉感受,偏向于人的主观判断,丢失的细节信息不会得到修复。而图像复原计算则是根据图像退化的模型,进行图像建模,设计一定的代价函数来优化逆问题,从而估计出原始图像和模糊函数。经典的图像复原方法一般都是基于先验知识设计的,已知的先验知识越多,复原出来的效果就越好。但是,在实际应用中,先验知识往往都是未知的。因此经典的方法限制了实际的应用。
已知图像在采集、传输、储存和处理过程中,会出现畸变、模糊、失真和附加噪声的影响,造成图像发生降质,这种现象一般称为图像退化。图像复原的关键在于建立图像退化模型,此退化模型应该能反映图像退化的原因。造成图像退化的原因很多,典型原因表现为:成像系统的像差、畸变、带宽有限造成图像失真;太阳辐射、大气湍流、云层遮挡等造成的遥感图像失真;由于成像器件拍摄姿态和扫描非线性引起的图像几何失真;成像传感器与被拍摄景物之间的相对运动,引起所成图像的运动模糊;光学系统或成像传感器本身特性不均匀,造成同样亮度景物成像灰度不同;由于场景能量传输通道中的介质特性如大气湍流效应、大气成分变化引起图像失真;图像在成像、数字化、采集和处理过程中引入的噪声等。
(tips:傅里叶变换是一种频域变换,是将图像的空间域信息转换到频率域中,傅里叶变换的应用一般是将在空域中不明显的信息或隐藏的信息转换到频域中,使其在频域中很明显地显现出来。)
传统的图像增强方法有很多种,主要分为两大部分:空域图像处理和频域图像处理。空域图像处理方法直接针对图像的像素点,以灰度映射为基础来改善灰度层级,例如直方图均衡化、限制对比度直方图均衡化、灰度世界假设等,此外,还可以通过滤波的方式对图像去除噪声达到图像增强的目的,例如中值滤波、均值滤波等;频域图像增强方法则通过各种频域变换,如傅里叶变换、小波变换等,可以间接地增强图像。国内外很多学者采用空域和频域方法对水下图像进行了增强,传统的图像增强算法在一定程度上可以消除图像模糊、增强边缘等,但仍存在噪声大、清晰度较低和颜色失真等问题,因此还需要进一步加强和完善。
目前,用于增强或复原水下图像的处理方法大致可分为非物理模型的图像增强方法和基于物理模型的图像复原方法。
非物理模型的图像增强方法 图像增强技术不必过多考虑图像成像的过程和模型,可以叫非物理模型方法,这种方法力图通过单纯的图像处理手段提高水下图像质量,通过调整图像的像素值来改善视觉质量,不过实现过程往往较为复杂。
该类方法采用直接调整图像像素值的方式改善图像质量,并不考虑水下图像退化的物理过程(就是没有考虑退化模型、水下得信道),属于图像增强范畴。
在水下图像增强技术研究早期,对水下图像的处理经常直接应用一些空气中传统的的图像增强算法,传统的图像增强算法可以分为空间域法与频域法。空间域方法是对图像中的像素点直接处理,采用灰度映射的方法,比如选取合适的映射变换来增加图像的对比度,改善图像灰度级等。频域法是一种间接的图像处理方法,运用变换技术把图像映射到某种变换域内,然后利用变换域中特有性质进行某种滤波处理,再反变换到空间域内,即得到增强后的图像。常被应用到水下图像传统空间域增强算法有直方图均衡化、限制对比度直方图均衡化、灰度世界假设和白平衡算法等,频域增强算法有傅里叶变换、小波变换和滤波技术,主要包括低通滤波,高通滤波和同态滤波等。目前图像增强算法往往存在可能只是对某一类的图像增强效果好,而其他类型的效果不好的特点,而且由于水下环境的特殊性,仅仅通过研究把传统的图像增强算法应用在水下图像上无法彻底解决水下图像退化问题。
水下图像増强算法研究早期,传统的图像处理方法,例如白平衡,灰度世界假设和灰度边缘假设等颜色修正算法,直方图均衡化和限制对比度直方图均衡化等对比度增强算法,多被用来增强水下图像。相比于处理普通图像获取的较好的结果,这些方法在处理水下图像获取的结果并不理想,其主要原因是海洋环境复杂,多重不利因素如水介质对光线的散射、吸收作用以及水下悬浮粒子等对其产生严重干扰。考虑到水下图像存在的颜色衰退、低对比度以及模糊等特点,研究人员往往从图像颜色、对比度、细节等方面入手对水下图像进行增强。
白平衡方法 在不同光源照射下,观察同一个物体会发现其呈现的颜色是不同的,原因是不同光源具有的不同色温造成目标物体的反射光线光谱偏离其“真实”颜色。当同一白色目标物体在被高色温光源照射(如阴天时)将会表现为蓝色,被低色温光源照射(如床头灯等)将会表现为姜黄色。白平衡方法能够根据图像所呈现的色温纠正图像的色彩偏差,其具体实现过程建立在朗伯特反射模型上。
朗伯特反射模型表示反射图像主要与三项因素有关:光源光谱分布、物体表面的反射率以及成像设备感光函数。针对彩色图像,即包含RGB三个颜色通道的图像,图像呈现的场景中某物体表面上的空间坐标点x的颜色可用朗伯特反射模型表示为:
白平衡方法以上述朗伯特反射模型为基础,考虑到传统的以标准白色参照物进行颜色校准的白平衡方法在实际应用中具有很大的局限性,研宄人员提出了多种白平衡算法纠正图像的色彩偏差。白平衡方法应用场景一般为普通偏色情况,对于并不严重的偏色可以起到较好的恢复作用,但是水下偏色情况一般较为严重,因此需要继续研究可以对水下颜色衰退起到良好恢复作用的白平衡算法。
直方图均衡化方法 将图像的灰度直方图从较为集中的某灰度区间均匀拉伸至全部灰度范围内,用以扩大图像灰度值的分布范围,提升图像对比度并突出部分细节效果。
基于Retinex的方法 Retinex 理论是 20 世纪 70 年代最早由 Land提出的一种基于颜色恒常性的理论,该理论基于三个假设:(1)真实世界是无颜色的,人类所见到的颜色是光与物体相互作用的结果;(2)每一种颜色由红、绿、蓝三原色组成的;(3)三原色决定了每个单位区域的颜色。Retinex 算法可以对不同类型的图像进行自适应增强,比传统的单一的图像增强算法具有更好的自适应性,因为传统的增强算法只能增强图像的某一类特征,而Retinex 增强算法则可以在动态范围内压缩、细节增强和颜色校正等方面达到较好的平衡效果,因此,Retinex 理论得到了广泛的发展和应用。
基于暗通道先验的方法(去雾的方法) DCP是一种去雾的图像增强方法(恺明神提出的方法)。接下来会写一篇博客专门对这种方法进行分析。
对于水下图像增强而言,跟去雾有很多相似的特性。故此在去雾中的一些方法也适用于水下图像增强。
基于卷积神经网络的方法 基于卷积网络的图像去雾、去模糊、图像盲复原等任务跟水下图像增强有异曲同工之妙。但是关键点在于训练集的获取以及卷积模型的泛化能力上。
其实对于运算量和实时性而言。个人觉得卷积网络只要训练好了,后面的使用过程是非常方便的。但是对于水下如此复杂的退化环境,要训练出一种泛化能力足够强的网络才是难点所在。与此同时,需要有相应的数据集的定制,也是难点所在。
基于物理模型的图像复原方法 该类方法针对水下图像退化过程构建数学模型,通过该模型反演图像退化过程,获得理想状态下未经退化的图像,属于图像复原范畴。(两种方法感觉好像有点类似于图像复原中的成pair的训练和不成pair的训练)
水下图像复原技术是基于物理模型的方法,是指对水下图像退化过程搭建一个合理的数学模型估算出模型参数信息,了解整个图像的退化过程使水下图像恢复到退化前的状态。图像复原技术适用范围更广,但是往往需要场景先验信息或深度信息来实现图像复原。
样式截图大概如下:
1. x,y轴相关操作:xAxis,yAxis
(1) x,y轴的颜色:
axisLine: { lineStyle: { color: '#2898e5', }, }, (2) x,y轴文字颜色:
axisLabel: { show: true, textStyle: { color: '#019bf8' } } (3)x,y轴刻度颜色:
axisTick: { lineStyle: { color: '#2898e5' } } (4) x,y轴坐标文字太长显示不全:,倾斜rotate
axisLabel: { show: true, interval: 0, rotate: 20 }, (5)x ,y 轴网格线的颜色:
splitLine: { show: true, lineStyle: { color: ['rgb(1,155,246,0.3)'], //网格线 width: 1, } }, 2. 折现 的样式
(1) 折现的平滑度series:
symbol: 'circle', //实心点 symbolSize: 6, //实心点的大小 smooth: true, //折现平滑 (2)折现的颜色:
非matlab验证代码,非加密p代码,这里提供C++版本,有助于项目开发,如vSLAM、车道线检测等 代码地址:https://github.com/zj611/LIME_Processing
对比效果:
声明:转载请引用本文链接
一、简介 图像归一化是计算机视觉、模式识别等领域广泛使用的一种技术。所谓图像归一化, 就是通过一系列变换, 将待处理的原始图像转换成相应的唯一标准形式(该标准形式图像对平移、旋转、缩放等仿射变换具有不变特性)。 近年来, 基于矩的图像归一化技术受到了人们的普遍关注, 其基本工作原理为: 首先利用图像中对仿射变换具有不变性的矩来确定变换函数的参数, 然后利用此参数确定的变换函数把原始图像变换为一个标准形式的图像(该图像与仿射变换无关)。一般说来, 基于矩的图像归一化过程包括 4 个步骤,即坐标中心化、x-shearing 归一化、缩放归一化和旋转归一化。
基本上归一化思想是:利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响。也就是转换成唯一的标准形式以抵抗仿射变换。图像归一化使得图像可以抵抗几何变换的攻击,它能够找出图像中的那些不变量,从而得知这些图像原本就是一样的或者一个系列的。以下你要知道的:
1、归一化处理并没有改变图像的对比度
2、归一化处理很简单,假设原图像是8位灰度图像,那么读入的像素矩阵最大值为256,最小值为1,定义矩阵为I,J=I/256,就是归一化的图像矩阵,就是说归一化之后所有的像素值都在[0,1]区间内。
二、什么是归一化 归一化就是通过一系列变换(即利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响),将待处理的原始图像转换成相应的唯一标准形式(该标准形式图像对平移、旋转、缩放等仿射变换具有不变特性)。
基于矩的图像归一化技术基本工作原理为:首先利用图像中对仿射变换具有不变性的矩来确定变换函数的参数, 然后利用此参数确定的变换函数把原始图像变换为一个标准形式的图像(该图像与仿射变换无关)。 一般说来,基于矩的图像归一化过程包括4个步骤,即坐标中心化、x-shearing 归一化、缩放归一化和旋转归一化。
图像归一化使得图像可以抵抗几何变换的攻击,它能够找出图像中的那些不变量,从而得知这些图像原本就是一样的或者一个系列的。
三、为什么归一化 1、基本上归一化思想是利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响。也就是转换成唯一的标准形式以抵抗仿射变换。图像归一化使得图像可以抵抗几何变换的攻击,它能够找出图像中的那些不变量,从而得知这些图像原本就是一样的或者一个系列的。
2、matlab里图像数据有时候必须是浮点型才能处理,而图像数据本身是0-255的UNIT型数据所以需要归一化,转换到0-1之间。
3、归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。目的是为了:
(1)、避免具有不同物理意义和量纲的输入变量不能平等使用
(2)、bp中常采用sigmoid函数作为转移函数,归一化能够防止净输入绝对值过大引起的神经元输出饱和现象
(3)、保证输出数据中数值小的不被吞食
3、神经网络中归一化的原因: 归一化是为了加快训练网络的收敛性,可以不进行归一化处理;
归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1–+1之间是统计的坐标分布。归一化有同一、统一和合一的意思。无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,归一化是同一在0-1之间的统计概率分布;当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。
归一化是因为sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。所以这样做分类的问题时用[0.9 0.1 0.1]就要比用[1 0 0]要好。
但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。
【2013年4月19日】
【出现问题】
3dsMax烘焙贴图时,纹理模糊。
【问题原因】
UV分布不合理;渲染器设置问题。
【解决方案】
1、合理分面,合理展UV,烘焙UV通道中的面的大小比例应与实际一致。
2、Vary渲染器设置:
1)全局开关中,关闭默认灯光。
2)环境设置中,GI天光使用“天蓝色”。
3)间接照明中,打开折射、反射;一次反弹0.5,二次反弹0.3.
4)发光贴图,预设为高。
5)光缓存,细分为600.
6)系统,渲染区域细分,X为30。
【备注说明】
很久之前整理的了,有待实践考证。。。
代码:高斯模糊
from PIL import Image, ImageFilter import numpy as np img = Image.open("./1.jpg").filter(ImageFilter.GaussianBlur) img.save("1_.jpg") 原图: 高斯模糊:
DATE: 2019-2-22 前言 在调试不同海思芯片的编码器时,遇到了需要加载和卸载驱动的情况,并且调试过程中出现不同硬件层面和编码的错误,特将问题定位方法记录一下以供后续参考。
1、海思芯片驱动使用方法 设备SDK包中的ko文件夹中存放了海思硬件运行需要的不同模块驱动,设备正常运行需要加载相应的驱动程序才可以。
HISI芯片驱动加载和卸载方法:
以Hi3559AV100为例:
cd ko ./load3559av100 -a -sensor imx334 查看已经安装的驱动模块:
lsmod 注意事项:不同模块驱动之间存在依赖关系,卸载模块驱动时存在先后顺序。
模块KO之间的依赖关系:参考文档:《HiMPP 媒体处理软件 FAQ.pdf》
每个加载上去的KO模块,有显示依赖关系的,lsmod查看时,会有Used by的标识。存在这种关系的KO之间需要按照顺序加载和相反顺序卸载。 有些模块KO是隐形依赖的,比如公共基础KO模块mmz.ko、hi_media.ko等需要先加载,这些KO模块若中途单独卸载再加载可能引起一些异常。 2、调试和问题定位方法 在运行海思编码器demo时,编码报错一般是由于编码API使用不当造成的,比如参数超出合法范围,系统驱动没有加载等。
2.1、MPP API调试工具 问题定位方法:
1、首先根据错误码(如下图6.5所示)大致定位问题的原因和方向。
2、查看mpp log信息:
cat /dev/logmpp 注:mpp log信息中会具体指定错误类型以及错误的原因和位置。
调用HISI SDK API接口出现错误怎么办?
下面参考自:https://blog.csdn.net/listener51/article/details/87891633
【现象】
需要查看日志和调整 log 日志的等级。
【分析】
Log 日志记录 SDK 运行时错误的原因、大致位置以及一些系统运行状态等信息。因此可通过查看 log 日志,辅助错误定位。
目前日志分为 7 个等级,默认设置为等级 3 。等级设置的越高,表示记录到日志中的信息量就越多,当等级为 7 时,系统的整个运行状态实时的被记录到日志中,此时的信息量非常庞大,会大大降低系统的整体性能。因此,通常情况下,推荐设置为等级 3 ,因为此时只有发生错误的情况下,才会将信息记录到日志中,辅助定位绝大多数的错误。
【解决】
获取日志记录或修改日志等级时用到的命令如下:
查看各模块的日志等级,可以使用命令 cat /proc/umap/logmpp ,此命令会列出所有模块日志等级。 修改某个模块的日志等级,可使用命令 echo “venc=4” > /proc/umap/logmpp ,其中 venc 是模块名,与 cat 命令列出的模块名一致即可。
何凯明经典图像去雾算法:https://www.cnblogs.com/molakejin/p/5708883.html
暗通道
卷积神经网络网络去雾DehazeNet:https://blog.csdn.net/Julialove102123/article/details/80199276
大气散射模型
去雾总结:https://blog.csdn.net/u012556077/article/details/53364438
参考文献:
上:https://blog.csdn.net/baimafujinji/article/details/27206237
下:https://blog.csdn.net/baimafujinji/article/details/30060161
内容丰富:http://www.cnblogs.com/Imageshop/p/3281703.html
课件:http://www.cnblogs.com/changkaizhao/p/3266798.html
matlab代码:
https://blog.csdn.net/chongshangyunxiao321/article/details/51076800
https://blog.csdn.net/shenziheng1/article/details/56951002
https://www.cnblogs.com/pursuit1996/p/4912202.html
网络结构 K(x)随I(x)变化,算法为了学习到自适应的K(x)
所以算法核心就是K(x)
五层网络极为简单:
code import torch import torch.nn as nn import math class dehaze_net(nn.Module): def __init__(self): super(dehaze_net, self).__init__() self.relu = nn.ReLU(inplace=True) ############ 每个卷积层只用三个核 ############## self.e_conv1 = nn.Conv2d(3,3,1,1,0,bias=True) self.e_conv2 = nn.Conv2d(3,3,3,1,1,bias=True) self.e_conv3 = nn.Conv2d(6,3,5,1,2,bias=True) ## 连接1、2层3+3=6,输出3 self.e_conv4 = nn.Conv2d(6,3,7,1,3,bias=True) ##连接2,3层3+3=6,输出3 self.e_conv5 = nn.Conv2d(12,3,3,1,1,bias=True) #连接1,2,3,4层3+3+3+3=12,输出3 def forward(self, x): source = [] source.append(x) ######### K-estimation ########### x1 = self.relu(self.e_conv1(x)) x2 = self.relu(self.e_conv2(x1)) concat1 = torch.cat((x1,x2), 1) x3 = self.relu(self.e_conv3(concat1)) concat2 = torch.