计算机视觉入门与调优

大家好啊,我是董董灿。

在 CSDN 上写文章写了有一段时间了,期间不少小伙伴私信我,咨询如何自学入门AI,或者咨询一些AI算法。

90%的问题我都回复了,但有时确实因为太忙,没顾得过来。

在这个过程中,我发现很多小伙伴问的问题都类似:比如如何入门计算机视觉,某某算法是做什么的,有什么作用。

图片

之前写的文章由于过于分散,不成体系,很多知识点没有串联起来。

于是我做了个合集,计划系统的从传统计算机视觉,到基于深度学习的计算机视觉走一遍。

然后依托Resnet50这一经典图像分类网络,将涉及到的算法都剖析和实现一遍,最后亲自完成该神经网络的搭建,并带你完成任意图像的识别。

专栏计划更新目录大纲为(高亮部分是已经写完的)

我所理解的计算机视觉

基础背景知识

  1. 图片和像素

  2. 灰度图

  3. 彩色 RGB 以及通道

  4. 彩色YUV

  5. OpenCV 介绍、环境搭建及一个实战完成YUV的分量提取

传统计算机视觉初探

  1. 传统CV之均值滤波

  2. 传统CV之高斯滤波

  3. 传统CV之高斯滤波实战

  4. 传统CV之边缘检测

  5. 传统CV之图像分割(大津算法)

  6. 传统CV之利用大津算法实战完成图像分割

深度学习基础

  1. 机器学习和深度学习的关系

  2. 深度学习之神经网络

  3. 深度学习之训练和推理

  4. 深度学习之正向传播和反向传播

  5. 深度学习之损失函数

  6. 推理的性能,那些框架存在的意义

  7. 深度学习实战——完成一个模型的训练和推理

图片分类模型 - Resnet50

  1. 什么是 Resnet50 神经网络?

  2. Resnet 神经网络为什么这么重要?

  3. Resnet 中共包含哪些算法?

  4. 卷积 - 为什么是卷积?

  5. 卷积 - 什么是卷积的 Feature Map?

  6. 卷积 - 到底什么是感受野?

  7. 卷积 - 矩阵乘法的本质

  8. 卷积 - 实际上是一个特征提取器

  9. 卷积 - 卷积特征的可视化和一个神奇的网站

  10. 卷积 - 卷积的基础公式

  11. 卷积参数 - padding 的作用

  12. 卷积参数 - stride 的作用

  13. 卷积参数 - dilation 的作用以及什么是空洞卷积

  14. 卷积参数 - 长宽方向的公式推导

  15. 变种卷积 - 分组卷积

  16. 实战 - 手写一个基础卷积算法

  17. 卷积 - 算法总结

  18. 池化 - 什么是池化算法

  19. 池化 - 池化与卷积的区别

  20. 池化 - 池化的特征不变性

  21. 池化 - 平均池化和全局平均池化

  22. 实战 - 手写一个最大池化函数

  23. BatchNorm - 什么是批归一化以及它解决了什么问题

  24. BatchNorm - 经典面试题:训练和推理中的批归一化有什么不一样

  25. 实战 - 手写一个BatchNorm 算法

  26. BatchNorm 为什么可以和卷积融合?

  27. 激活函数 - 非线性的重要性

  28. 激活函数 - relu

  29. 激活函数 - sigmoid

  30. 激活函数 - 梯度消失和梯度爆炸

  31. Resnet - 残差结构和它的作用

  32. 实战 - 利用 conv + bn + relu + add 手写一个残差结构

  33. 全连接 - 特征的全局融合

  34. 全连接 - 特征与样本空间的对应关系

  35. 实战 - 手写一个全连接算法

  36. Softmax 分类器以及它的底层原理

  37. 损失函数和softmax

  38. Resnet 中的下采样

模型实战

  1. python 环境搭建

  2. resnet50 模型下载

  3. resnet50 权值和参数保存

  4. resnet50 权值和参数加载

  5. python - 手写卷积、bn、池化、全连接、激活、ResBlock

  6. python - 全手写搭建 resnet50 神经网络

  7. 图片预处理:Resize and Crop

  8. 图片预处理:Normalize

  9. python - 利用手写的网络,成功预测一张图片

  10. python - 代码仓库介绍

  11. AI 模型性能评估指标:吞吐和延时

  12. python - 第一版手写代码性能评估

  13. python - 利用向量内积来优化卷积运算

  14. C++ 环境搭建和一些库的安装

  15. C++ 代码格式规范的一个工具使用

  16. C++ 仓库目录结构介绍

  17. C++ 编译,运行介绍

  18. C++ - 手写卷积、池化、bn、全连接、relu等算法

  19. C++ - 手写 BottleNeck 结构,搭建resnet50 神经网络

  20. C++ - 预测图片数据集介绍

  21. C++ - 图片预处理介绍

  22. C++ - 完成一张图片的推理,top1和 top5 的准确度验证

  23. C++ - 性能评估:Latency 和 FPS 介绍

模型性能优化1 - AVX2 向量指令集

  1. 什么是计算向量化

  2. avx2 向量指令集介绍

  3. avx2 向量寄存器介绍

  4. avx2 数据 load/store 向量化操作介绍

  5. avx2 向量实现乘累加

  6. 利用 avx2 向量指令集优化卷积运算

  7. 评估优化前后的性能差距

模型性能优化2 - 权值预加载

  1. 计算机基础 - 计算数据流加载(IO)

  2. 为什么要做权值预加载

  3. 手写的模型如何模拟权值预加载

  4. 权值预加载实现,评估优化前后的性能差距

模型性能优化3 - 内存操作的移除

  1. 操作系统:内存的申请机制介绍

  2. 系统负载:频繁申请内存的影响

  3. 如何移除推理 routie 上的内存操作

  4. 移除内存操作前后的性能评估

模型性能优化4 - 代码生成

  1. 什么是代码生成

  2. 代码生成一般都是怎么做的

  3. 代码生成有什么好处,为什么性能会更好

  4. 手写的模型如何模拟代码生成

  5. 将所有算子替换成代码生成逻辑

  6. JIT 编译介绍

  7. 如何在代码中加载动态库

  8. 如何从动态库中获取到函数符号

  9. 利用代码生成的逻辑优化手写的神经网络性能

  10. 优化前后性能评估

我自从转行来做AI,有不少启发,可以查看:我是如何转行 AI 并且实现薪资翻倍的。

上面的内容适合想入门计算机视觉同学,或者已经有一些基础但是想提高自己的同学,还有就是想学习神经网络性能优化的同学。

上面的知识点我都全程答疑,并且可深度链接作者,咨询算法问题。

所有代码我会亲自编写,确保可以完全实操起来,并且理解为什么可以这么做。

做这个文章和代码实战合集,其实也是对我的一种锻炼和知识积累,如果你想入门学习AI视觉,想提高自己的同学,欢迎一起学习,我们一起冲吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/231369.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java】LockSupport原理与使用

LockSupport: 关键字段: private static final sun.misc.Unsafe UNSAFE;private static final long parkBlockerOffset; Unsafe:"魔法类",较为底层,在LockSupport类中用于线程调度(线程阻塞、线程恢复等)。…

模板模式实现分布式锁实战

前言 分布式锁相信大家都有用过,常见的分布式锁实现方式例如redis、zookeeper、数据库都可以实现,而我们代码中强引用这些分布式锁的代码,那么当我们以后想替换分布式锁的实现方式时,需要修改代码的成本会很高,于是我…

ChatGPT怎么帮我上班的

1.解放生产力 1)标准格式,完美输出。GPT对于公文等具有一定标准格式的文件,可以进行完美仿写,随随便便以假乱真那都是小菜一碟,这对于经常要开展规范成文的人来说,简直就是个福音,只要前期调教…

pyqt5用qtdesign设计页面时,去掉页面的空白界面、边框和标题栏

前言 Windows默认的标题栏有时候自己觉得不太美观,就想自己设计一个,然后把默认的去掉,并且把长方形的边框和多余的空表界面去掉,就是下图中圈出来的区域: 去掉之后的效果如图: 这样我们就可以自定义窗…

面试算法89:房屋偷盗

题目 输入一个数组表示某条街道上的一排房屋内财产的数量。如果这条街道上相邻的两幢房屋被盗就会自动触发报警系统。请计算小偷在这条街道上最多能偷取到多少财产。例如,街道上5幢房屋内的财产用数组[2,3,4,5,3]表示…

php ext-sodium 拓展安装 linux+windows

php编译安装(linux),可以参考:php编译安装 一、windows soduim源码包自带,直接修改php.ini,取消extensionsodium注释即可 二、linux 1.安装依赖 apt-get install libsodium-dev2.进入源码目录 这里写自己的源码目录 cd /us…

大数据规模存储的几个核心问题

文章目录 三个关键问题RAID(独立磁盘冗余阵列)RAID是如何解决关于存储的三个关键问题?水平伸缩 大规模数据存储都需要解决几个核心问题,这些问题都是什么呢? 三个关键问题 1.数据存储容量的问题 既然大数据要解决的…

Windows系统中Wireshark抓包工具的安装使用

在使用Windows服务器时,如果我们发现网络流量异常或存在异常的外发数据包行为,我们可以利用抓包工具来捕获网络流量包,并对这些流量包进行特征分析,以查看其来源和目的地。通过这些信息,我们可以进一步诊断问题。 以下…

人生重开模拟器

前言: 人生重开模拟器是前段时间非常火的一个小游戏,接下来我们将一起学习使用c语言写一个简易版的人生重开模拟器。 网页版游戏: 人生重开模拟器 (ytecn.com) 1.实现一个简化版的人生重开模拟器 (1) 游戏开始的时…

如何快速定位php程序运行慢的地方

1 slow log日志 查看slowlog日志位置 编辑php-fpm.conf文件,更改或增加两行内容 slowlog /data/logs/php-slow.log request_slowlog_timeout 2 说明:slowlog定义日志路径和名字,request_slowlog_timeout定义超时时间,单位…

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-6根轨迹Root locus

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-6根轨迹Root locus 1. 根的作用2. 手绘技巧3. 分离点/汇合点&根轨迹的几何性质 1. 根的作用 G ( s ) s 3 s 2 2 s 4 G\left( s \right) \frac{s3}{s^22s4} G(s)s22s4s3​…

线性代数 --- 为什么LU分解中L矩阵的行列式一定等于(+-)1?

以下是关于下三角矩阵L的行列式一定等于-1的一些说明 证明:在LU分解中,下三角矩阵L的行列式一定是. 在证明之前,我这里先补充几条关于行列式的性质: 性质1:对于三角矩阵而言,不论是上三角矩阵还是下三角矩…

<六>Python的字符串切片及常见操作

字符串的表示 在Python里,可以使用一对单引号、一对双引号或者一对三个双引号、一对三个单引号表示字符串。 a "Im Tom" # 一对双引号 b Tom said:"I am Tom" # 一对单引号c Tom said:"I\m Tom" # 转义字符d Tom said:"…

C++矩阵例题分析(3):螺旋矩阵

一、审题 时间限制:1000ms 内存限制:256MB 各平台平均AC率:14.89% 题目描述 输出一个n*n大小的螺旋矩阵。 螺旋矩阵的样子: 输入描述 共一行,一个正整数n,表示矩阵变长的长度…

静态网页设计——电影角(HTML+CSS+JavaScript)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 使用技术:HTMLCSSJS 主要内容:本网页主要利用HTML语言编写,简要介绍世界上一些主要国家,例如,中,…

STM32通用定时器-输入捕获-脉冲计数

一、知识点 编码器   两相编码器(正交编码器):两相编码器由 A 相和 B 相组成,相位差为 90 度。当旋转方向为顺时针时,A 相先变化,然后 B 相变化;当旋转方向为逆时针时,B 相先变化…

前端页面锚点跳转

一,页面 二,获取需要跳转的标签class或者id 三,调用跳转方法 如果你的标签有唯一的ID,那么用getElementById方法更好 点击即可跳转锚点

DDIA 第十一章:流处理

本文是《数据密集型应用系统设计》(DDIA)的读书笔记,一共十二章,我已经全部阅读并且整理完毕。 采用一问一答的形式,并且用列表形式整理了原文。 笔记的内容大概是原文的 1/5 ~ 1/3,所以你如果没有很多时间…

Python爬虫实战技巧:如何在爬取过程中动态切换代理IP

目录 前言 第一步:获取代理IP列表 第二步:测试代理IP的可用性 第三步:动态切换代理IP 总结 前言 在进行爬虫开发的过程中,有时候需要使用代理IP来访问目标网站,以避免被封IP或者降低访问频率的限制。本文将介绍如…

gem5学习(8):创建一个简单的缓存对象--Creating a simple cache object

目录 一、SimpleCache SimObject 二、Implementing the SimpleCache 1、getSlavePort() 2、handleRequest() 3、AccessEvent() 4、accessTiming() (1)缓存命中:sendResponse() (2)缓存未命中: 三、…