卷积核

为什么需要卷积操作

1、特征提取

使用特定的卷积核,能够提取出图片数据特定方向的信息

卷积操作即是对图像的像素点进行乘运算 并将结果矩阵的所有值求和得出一个数的结果

image

此处 input 即是一个 55 像素大小的图片 使用一个 33 矩阵对图片最左上角 9 个像素点进行卷积运算(乘)矩阵算法1

依次从坐标 0,0 ,3,3 --> 1,0,4,3 计算 9 次

image

最终得出 9 个结果 并按顺序排列即可得 33 矩阵
此处暴力推导出结果 3
3 矩阵特征之一 33 矩阵与任何图像计算后 原图像大小变为 长宽少 2 像素的新图像(特征)
新图像的所有像素点(大小 3
3)与原图像(大小 5*5)拥有抽象的映射关系 对于减少计算量 简单化复杂特征是非常必要的

相当于使用卷积操作压缩了图像大小 提取了某种符合卷积核的抽象信息 所以某些时候这些卷积核也叫滤波器 用于提取某种类型的图片信息

在某些时候我们不想特征缩小 即引入填充和步长的概念 填充 步长2

image

此处以提取边缘信息的卷积核为例 示例图image

解释下这个核 提取向右的特征数据

image

相反的还有提取向左的特征数据

image

向下趋度

image

像上趋度

image

四个方向的趋度合并即可获取物体轮廓特征

下载 4

强化边缘信息 1

\left\vert1,1,1\right\vert

\left\vert1,0,1\right\vert

\left\vert1,1,1\right\vert

image

强化边缘信息 2

\left\vert0,0,0\right\vert

\left\vert0,8,0\right\vert

\left\vert0,0,0\right\vert

image

其实已经可以看出 从矩阵的数字规律就可大致得出卷积核的作用

数值大的一方得到强化 数值小的一方被减弱 数值为负的的特征数值越大则抑制越重

附上一个可以在线测试卷积效果的网址

Image Kernels explained visually

代码部分

import cv2
import numpy as np
import matplotlib.pyplot as plt


if __name__ == '__main__':


    # 读取图像
    image = cv2.imread('C:/Users/jm/Pictures/0eRWZ7.jpg', cv2.IMREAD_GRAYSCALE)

    kernel = np.array([[-1, 0, 1],
                       [-1, 0, 1],
                       [-1, 0, 1]])
    # 对图像提取向右特征
    right_image = cv2.filter2D(image, -1, kernel)

    kernel = np.array([[1, 0, -1],
                       [1, 0, -1],
                       [1, 0, -1]])
    # 对图像提取向左特征
    left_image = cv2.filter2D(image, -1, kernel)

    kernel = np.array([[1, 1, 1],
                       [0, 0, 0],
                       [-1, -1, -1]])
    # 对图像提取向上特征
    top_image = cv2.filter2D(image, -1, kernel)

    kernel = np.array([[-1, -1, -1],
                       [0, 0, 0],
                       [1, 1, 1]])
    # 对图像提取向下特征
    bottom_image = cv2.filter2D(image, -1, kernel)

    # 合并所有方向特征 获取轮廓信息
    combined_image = cv2.addWeighted(cv2.addWeighted(left_image, 0.5, right_image, 0.5, 0),
                                     0.5,
                                     cv2.addWeighted(top_image, 0.5, bottom_image, 0.5, 0),
                                     0.5,
                                     0)

    # 显示原始图像和卷积后的图像
    plt.figure(figsize=(8, 5))

    plt.subplot(3, 4, 5)
    plt.title('Original Image')
    plt.imshow(image, cmap='gray')
    plt.axis('off')

    plt.subplot(3, 4, 6)
    plt.title('left_image Image')
    plt.imshow(left_image, cmap='gray')
    plt.axis('off')

    plt.subplot(3, 4, 8)
    plt.title('Right Image')
    plt.imshow(right_image, cmap='gray')
    plt.axis('off')

    plt.subplot(3, 4, 3)
    plt.title('top_image Image')
    plt.imshow(top_image, cmap='gray')
    plt.axis('off')

    plt.subplot(3, 4, 11)
    plt.title('bottom_image Image')
    plt.imshow(bottom_image, cmap='gray')
    plt.axis('off')

    plt.subplot(3, 4, 7)
    plt.title('Combined Image')
    plt.imshow(combined_image, cmap='gray')
    plt.axis('off')

    plt.tight_layout()
    plt.show()

image


  1. 矩阵算法

    简单数相乘 等于乘数乘以每个矩阵制

                      $\left\vert a,b,c\right\vert$         $\left\vert3\times a,3\times b,3\times c\right\vert$
    
            3    $\times$ $\left\vert d,e,f\right\vert$   =  $\left\vert3\times d,3\times e,3\times f\right\vert$  
    
                      $\left\vert g,h,i\right\vert$         $\left\vert3\times g,3\times h,3\times i\right\vert$
    

    矩阵与矩阵乘法 对应位置相乘即可

    \left\vert A,B,C\right\vert \left\vert a,b,c\right\vert \left\vert A\times a,B\times b,C\times c\right\vert

    \left\vert D,E,F\right\vert \times \left\vert d,e,f\right\vert = \left\vert D\times d,E\times e,F\times f\right\vert

    \left\vert G,H,I\right\vert \left\vert g,h,i\right\vert \left\vert G\times g,H\times h,I\times i\right\vert

    加法减法等相同

    矩阵与矩阵点乘 等于第 n 行乘第 n 列 依次计算

    	                                     $\left\vert a,b,c\right\vert$            $\left\vert a,b,c\right\vert$             $\left\vert a,b,c\right\vert$
    
             			            $A\times\left\vert d,e,f\right\vert$   $B\times\left\vert d,e,f\right\vert$    C $\times$ $\left\vert d,e,f\right\vert$
    
           			                     $\left\vert g,h,i\right\vert$            $\left\vert g,h,i\right\vert$            $\left\vert g,h,i\right\vert$
    

    \left\vert A,B,C\right\vert \left\vert a,b,c\right\vert \left\vert a,b,c\right\vert \left\vert a,b,c\right\vert \left\vert a,b,c\right\vert

    \left\vert D,E,F\right\vert \times \left\vert d,e,f\right\vert = D\times\left\vert d,e,f\right\vert E\times\left\vert d,e,f\right\vert F\times\left\vert d,e,f\right\vert

    \left\vert G,H,I\right\vert \left\vert g,h,i\right\vert \left\vert g,h,i\right\vert \left\vert g,h,i\right\vert \left\vert g,h,i\right\vert

    	                                     $\left\vert a,b,c\right\vert$             $\left\vert a,b,c\right\vert$               $\left\vert a,b,c\right\vert$
    
             			            $G\times\left\vert d,e,f\right\vert$   $H\times\left\vert d,e,f\right\vert$      $I\times\left\vert d,e,f\right\vert$
    
           			                     $\left\vert g,h,i\right\vert$             $\left\vert g,h,i\right\vert$               $\left\vert g,h,i\right\vert$  
    
  2. 填充 步长

  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    53 引用 • 40 回帖

相关帖子

回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 481 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 470 关注
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 734 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    8048 引用 • 36771 回帖 • 161 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 599 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖 • 1 关注
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    130 引用 • 793 回帖
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 351 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    286 引用 • 729 回帖
  • sts
    2 引用 • 2 回帖 • 196 关注
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖 • 2 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    941 引用 • 943 回帖
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 264 关注
  • OnlyOffice
    4 引用
  • 996
    13 引用 • 200 回帖 • 7 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 658 关注
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • CodeMirror
    1 引用 • 2 回帖 • 128 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    77 引用 • 390 回帖
  • 创业

    你比 99% 的人都优秀么?

    84 引用 • 1399 回帖
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 62 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 454 关注