计算机视觉与深度学习-卷积神经网络-纹理表示&卷积神经网络-纹理表示-[北邮鲁鹏]

2023-09-16 14:41:04

参考文章

计算机视觉与深度学习-05-纹理表示&卷积神经网络-北邮鲁鹏老师课程笔记

纹理定义

纹理是指物体表面的视觉和触觉特征,它描述了物体表面的细节、图案和结构。
计算机图形学中的纹理既包括通常意义上物体表面的纹理即使物体表面呈现凹凸不平的沟纹,同时也包括在物体的光滑表面上的彩色图案,通常我们更多地称之为花纹。

在这里插入图片描述
纹理是由于物体表面的物理属性的多样性而造成的,物理属性不同表示某个特定表面特征的灰度或者颜色信息不同,不同的物理表面会产生不同的纹理图像,因而纹理作为图像的一个极为重要的属性,在计算机视觉和图像处理中占有举足轻重的地位。

纹理是图像中特征值强度的某种局部重复模式的宏观表现。然而,对于自然纹理图像而言这种重复模式往往是近似的和复杂的,难以用语言描述,而人类对纹理的感受多是与心理效果相结合的,因此,迄今都没有一个对纹理的正式的、广泛认可的和一致的定义。

Hawkins曾经对纹理给出了一个比较详细的描述,他认为纹理有三个主要的标志:

  1. 某种局部的序列性在比该序列更大的区域内不断重复
  2. 序列是由基本元素非随机排列组成的
  3. 各部分大致是均匀的统体,在纹理区域内的任何地方都有大致相同的结构尺

纹理的分类

规则纹理

在这里插入图片描述
通常都是人造

随机纹理

在这里插入图片描述
自然界通常都是随机纹理

纹理的表示方法

基于卷积核组

思路

  1. 利用卷积核组提取图像中的纹理基
  2. 利用基元的统计信息来表示图像中的纹理

什么卷积核组

卷积核组又称为纹理滤波器组。

卷积核类型(边缘、条形、点状)

  • 边缘:高斯一阶偏导核。例:黑|白,白|黑。
  • 条形:高斯二阶偏导核。例:白|黑|白,黑|白|黑。
  • 点状:。例:周围白中间黑,周围黑中间白。

在这里插入图片描述

卷积核尺度(3~6个尺度)

  • 大尺度,提取粗粒度边。
  • 小尺度,提取细粒度边。

卷积核的方向

在这里插入图片描述
前6个卷积核检测是否存在边缘及边缘的方向。
第1个卷积核检测图像中是否有x方向的边缘。(高斯卷积核对y求导)
第4个卷积核检测图像中是否有y方向的边缘。(高斯卷积核对x求导)
第7个卷积核检测图像中是否有斑状基元。

第1个卷积核检测图像中是否有x方向的边缘。(高斯卷积核对y求导)
在这里插入图片描述
第7个卷积核检测图像中是否有斑状基元
在这里插入图片描述

卷积核组的设计

在这里插入图片描述
48个卷积核组
在这里插入图片描述

表示步骤

步骤一:设计卷积核组。

在这里插入图片描述

步骤二:利用卷积核组对图像进行卷积操作获得对应的特征响应图组。

在这里插入图片描述

步骤三:利用特征响应图的某种统计信息来表示图像中的纹理。

方式一 (含基元位置信息)
在这里插入图片描述
假设图片是 100 * 100,使用上述含7个卷积核的卷积核组,则该图片每一个像素点表示为 r i = [ r i 1 , r i 2 , … , r i 7 ] r_i = [r_{i1},r_{i2},\dots,r_{i 7}] ri=[ri1,ri2,,ri7] r i m a x = m a x { r i 1 , r i 2 , … , r i 7 } r_{imax} = max\{{r_{i1},r_{i2},\dots,r_{i 7}}\} rimax=max{ri1,ri2,,ri7}。则 r i m a x r_{imax} rimax对应的特征响应图即为该像素点的特征。

其中 r i r_i ri的维度是 10000 * 1, [ r i 1 , r i 2 , … , r i 7 ] [r_{i1},r_{i2},\dots,r_{i7}] [ri1,ri2,,ri7]的维度是 10000 * 7,经过变换后 [ r i 1 , r i 2 , … , r i 7 ] [r_{i1},r_{i2},\dots,r_{i7}] [ri1,ri2,,ri7]的维度为 70000 * 1。

该表示方式的缺点:70000维太复杂。

方式二 (忽略基元位置信息)

纹理分类任务中,基元的位置对纹理分类没有影响。

只关注出现了哪种基元对应的纹理以及基元出现的频率,即用特征响应图的平均值表示图像。
在这里插入图片描述

假设图片是100 * 100,使用上述含7个卷积核的卷积核组,则该图片每一个像素点基元平均值表示为 r ˉ = [ r 1 ˉ , r ˉ 2 , … , r ˉ 7 ] \bar r = [ \bar {r_{1}}, \bar r_{2},\dots, \bar r_{ 7}] rˉ=[r1ˉ,rˉ2,,rˉ7] r ˉ i m a x = m a x { r ˉ 1 , r ˉ 2 , … , r ˉ 7 } \bar r_{imax} = max\{{\bar r_{1}, \bar r_{2},\dots, \bar r_{7}}\} rˉimax=max{rˉ1,rˉ2,,rˉ7},则 r i m a x r_{imax} rimax对应的特征响应图即为该像素点的特征。

其中 r ˉ i \bar r_i rˉi为第 i 个特征响应图的平均值,其维度是 1 * 1, r ˉ j \bar r_j rˉj的维度是 1 * 7,经过变换后 r ˉ j \bar r_j rˉj的维度为 7 * 1。

举例表示
在这里插入图片描述
纹理表示A:r4 比较大,表示y方向的纹理比较多。
纹理表示B:r5 比较大,表示y=x方向的纹理比较多。
纹理表示C:r7 比较大,表示斑点纹理比较多。

总结

  1. 设计卷积核组;
  2. 利用卷积核组对图像进行卷积操作获得对应的特征响应图组;
  3. 利用特征响应图的某种统计信息来表示图像中的纹理。

纹理表示注意事项

在这里插入图片描述
r ˉ = [ r ˉ 1 , r ˉ 2 , r ˉ 3 , r ˉ 4 , . . . , r ˉ 46 , r ˉ 47 , r ˉ 48 ] \bar r = [\bar r_1,\bar r_2,\bar r_3,\bar r_4,... ,\bar r_{46},\bar r_{47}, \bar r_{48}] rˉ=[rˉ1,rˉ2,rˉ3,rˉ4,...,rˉ46,rˉ47,rˉ48]中最大值大概率只有一个,因为一张图像包含一个卷积核组所表示的纹理的概率大,包含多个卷积核组所表示纹理的概率很小,所以这个48维向量是稀疏向量。

纹理表示与卷积神经网络的联系

从纹理表示中的卷积核组理解卷积神经网络的卷积层,神经网络中卷积核可能比上例中纹理表示的卷积核更复杂。神经网络的卷积层可以看做上例中纹理表示卷积核组的扩展。

更多推荐

深入浅出之数组

深入浅出之数组文章目录:深入浅出之数组一、数组的基本语法1.1数组声明1.2数组初始化二、多维数组2.1多维数组的基本语法2.2多维数组的适用场景三、数组的实际练习(传智杯真题为例)一、数组的基本语法1.1数组声明数组声明通常为valuename[number]的形式。value是值得数据类型,name是数组名称,nu

物联网如何助力乡村数字经济发展

在当今移动互联网时代,信息化数字化已经渗透了我们生活的方方面面,数字物联网转型也成为各个产业的重要动力。对于广大乡村来说,得益于网络基础设施的全面建成覆盖,乡村各产业也迎来数字化新业态转型,创新诞生了基于物联网的数字农业、数字养殖、数字文旅、数字农村电商等一系列新模式,本篇就为大家简答介绍一下物联网如何打造乡村数字经济

Ingress Controller

什么是IngressController?在云原生生态中,通常来讲,入口控制器(IngressController)是Kubernetes中的一个关键组件,用于管理入口资源对象。Ingress资源对象用于定义来自外网的HTTP和HTTPS规则,以控制进入集群内服务的流量。而IngressController则是真正实现

图解直接映射(Direct mapped)、全相联(Fully-associative)和组相联(Set-associative)cache缓存基本原理

图解直接映射(Directmapped)、全相联(Fully-associative)和组相联(Set-associative)cache一,直接映射缓存(Directmappedcaches)1.1直接映射示例1.2直接映射原理1.3cache颠簸(cachethrashing)二,全相联映射(Fully-assoc

强化学习从基础到进阶–案例与实践[8]:近端策略优化(proximal policy optimization,PPO)算法

【强化学习原理+项目专栏】必看系列:单智能体、多智能体算法原理+项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现专栏详细介绍:【强化学习原理+项目专栏】必看系列:单智能体、多智能体算法原理+项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现对于深度强化学习这块规划为:基础单智能算法教学(g

爬虫入门基础与Selenium反爬虫策略

目录一、爬虫入门基础1、什么是爬虫?2、爬虫的分类3、爬虫的基本流程二、Selenium简介1、Selenium是什么?2、Selenium的用途三、应对反爬虫的Selenium策略1、使用代理IP2、模拟用户行为3、设置合理的请求间隔时间4、随机化请求参数5、使用JavaScript渲染引擎四、Selenium的局限

【LLM模型篇】LLaMA2 | Vicuna | EcomGPT等

文章目录一、LLM模型chatglm2模型Vicuna模型LLaMA2模型1.训练细节2.EvaluationResults3.更多参考alpaca模型百川大模型其他大模型和peft高效参数微调二、行业垂直领域大模型度小满的轩辕2.0模型微调1.模型介绍2.混合微调MedicalGPT:医疗大模型ChatLaw:法律大

Firefox火狐浏览器显示你的连接不安全,是什么意思?

当Firefox连接到一个安全的网站时(网址最开始为“https://”),它必须确认该网站出具的证书有效且使用足够高的加密强度,以充分保护您的隐私。如果证书无法通过验证,或加密强度过低,Firefox会中止连接到这个网站,并向您显示SSL证书错误信息页面:“你的连接不安全”。什么情况下出现“你的连接不安全”?出现“你

一文掌握cshell编程(概念、案例双管齐下)

前言相信在IC行业中不少公司使用cshell作为脚本语言之一,很不幸的是目前网络上cshell的中文介绍少之又少,绝大部分是bash的介绍。近期有幸阅读了一本cshellcookbook,故将个人的学习心得发布于此,也希望志同道合的朋友一起探讨一番。(从看cookbook到博文的发表历时4个月,每天下完班就瞌睡的很,i

使用Python构建强大的网络爬虫

介绍网络爬虫是从网站收集数据的强大技术,而Python是这项任务中最流行的语言之一。然而,构建一个强大的网络爬虫不仅仅涉及到获取网页并解析其HTML。在本文中,我们将为您介绍创建一个网络爬虫的过程,这个爬虫不仅可以获取和保存网页内容,还可以遵循最佳实践。无论您是初学者还是经验丰富的开发人员,本指南都将为您提供构建既有效

【C++ Efficiency】lazy evaluation(缓式评估)的4种用途

lazyevaluation(缓式评估)以某种方式撰写你的classes,使它们延缓运算,直到那些运算结果刻不容缓被迫切需要为止。lazyevaluation的4种用途1.ReferenceCounting(引用计数)classString{};//string类Strings1="Hello";Strings2=s1

热文推荐