卷积核

为什么需要卷积操作

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

image

强化边缘信息 2

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$

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

    =

    加法减法等相同

    矩阵与矩阵点乘 等于第 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$ $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)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    54 引用 • 41 回帖

相关帖子

回帖

欢迎来到这里!

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

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

推荐标签 标签

  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 3 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖 • 1 关注
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    31 引用 • 108 回帖
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 131 关注
  • Facebook

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

    4 引用 • 15 回帖 • 440 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 233 回帖 • 3 关注
  • webpack

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

    42 引用 • 130 回帖 • 247 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • Mobi.css

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

    1 引用 • 6 回帖 • 759 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 677 关注
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 401 关注
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    181 引用 • 400 回帖 • 1 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    6 引用 • 141 回帖 • 1 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    168 引用 • 597 回帖
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 82 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    58 引用 • 25 回帖
  • SendCloud

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

    2 引用 • 8 回帖 • 492 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    173 引用 • 3849 回帖 • 1 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖
  • C++

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

    107 引用 • 153 回帖
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖 • 1 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 111 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    22 引用 • 214 回帖
  • sts
    2 引用 • 2 回帖 • 226 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 119 关注
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    17 引用 • 53 回帖 • 146 关注