当前位置: 首页 > news >正文

计算机视觉入门与调优

大家好啊,我是董董灿。

在 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视觉,想提高自己的同学,欢迎一起学习,我们一起冲吧。

相关文章:

计算机视觉入门与调优

大家好啊,我是董董灿。 在 CSDN 上写文章写了有一段时间了,期间不少小伙伴私信我,咨询如何自学入门AI,或者咨询一些AI算法。 90%的问题我都回复了,但有时确实因为太忙,没顾得过来。 在这个过程中&#x…...

Ndk编译hevc静态库

源码下载: https://hg.videolan.org/x265 然后执行以下脚本: #!/bin/bash# 设置NDK路径,根据你的实际安装路径修改 NDK_PATH/mnt/c/Users/Administrator/ubuntu_dev/ndk/android-ndk-r21e# 设置目标平台和ABI版本,可以根据实际情况修改 aarch64-linux-…...

Linux系统安装MySQL

Linux系统安装MySQL 第一步:下载YUM wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm第二步:安装MySQL的YUM 仓库 rpm -ivh mysql57-community-release-el7-11.noarch.rpm第三步:查看MySQL版本 yum repolist …...

linux go环境安装 swag

下载依赖包 go get -u github.com/swaggo/swag编译 移动到下载的swag包目录,一般在$GOPATH/pkg/mod下 查看 GOPATH echo $GOPATHcd /root/GolangProjects/pkg/mod/github.com/swaggo/swagv1.16.2go install ./cmd/swag/不出意外,$GOPATH/bin下 已经有了swag 初…...

高效分割视频:批量剪辑,轻松提取m3u8视频技巧

在数字媒体时代,视频分割是一项常见的需求。无论是为了编辑、分享还是其他要求,经常要将长视频分割成多个短片。传统的视频分割方法往往需要手动操作,既耗时又容易出错。现在来看云炫AI智剪高效分割视频的方法,批量剪辑并轻松提取…...

自由DIY预约小程序源码系统:适用于任何行业+自由DIY你的界面布局+全新升级的UI+多用户系统 带安装部署教程

随着移动互联网的普及,预约服务逐渐成为人们日常生活的一部分。从家政服务、医疗挂号到汽车保养,预约已经渗透到各个行业。然而,市面上的预约小程序大多功能单一,界面老旧,无法满足商家和用户的个性化需求。今天来给大…...

el-select 多选,选有一个未选择的选项

多选有未选择这个选项后。会出现一个情况,绑定的数据为[‘未选择’,‘cpu1’,‘cpu2’] 进行一个处理,选择(未选择)就清除(其它的选择),选择(cpu)就清除(未选…...

CISSP 第6章: 密码学与对称加密算法

第六章 密码学与对称加密算法 6.1 密码学历史上的里程碑 6.1.1 凯撒密码 简单的将字母表中的每个字母替换成其后的三个字母,是单一字母的替代置换密码 6.1.2 美国内战 美国内战使用词汇替代和置换的复杂组合,从而试图破坏敌人的破译企图 6.1.3 Ultra与…...

《深入理解C++11:C++11新特性解析与应用》笔记八

第八章 融入实际应用 8.1 对齐支持 8.1.1 数据对齐 c可以通过sizeof查询数据的长度,但是没有对对齐方式有关的查询或者设定进行标准化。c11标准定义的alignof函数可以查看数据的对齐方式。 现在的计算机通常会支持许多向量指令,4组8字节的浮点数据&a…...

算法——BFS解决FloodFill算法

什么是FloodFill算法 中文:洪水灌溉。假设这一块4*4的方格是一块土地,有凸起的地方,也有凹陷的地方(凹陷的地方用负数表示)。此时下大雨发洪水,会把凹陷的地方填满。绿色圈起来的属于一块区域(…...

【Linux】常用的基本命令指令②

前言:前面我们学习了Linux的部分指令,今天我们将接着上次的部分继续将Linux剩余的基本指令. 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:Linux的学习 👈 💯代码仓库:卫卫周大胖的学习日记…...

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

上一节说到经过全连接层之后,神经网络学习到的特征,会从隐层特征空间逐步映射到样本空间,这主要是由于全连接层可以融合全局的特征。 在经过全连接层之后,在 ResNet50 这个神经网络中会输出1000个特征的得分值,这1000个特征的得分值,便可以对应到图像的分类。 怎么对应…...

Go语言中的包管理工具之Go Vendor的使用

GoLang 中常用的包管理的方式 常用的有三种 Go PathGo VendorGo Modules 关于 Go Vender 1 )概述 在2015年的时候,我们的另一个包管理工具Go Vendor就诞生了它诞生于 2015.8.19 ,是在Go的 1.5 版本当中引入的,它默认是关闭的我…...

QString设置小数点精度位数

QString设置小数点精度位数 Chapter1 QString设置小数点精度位数Chapter2 Qt中QString.toDouble有效位数6位问题以及数据小数点有效位数的处理问题一:QString.toDouble有效位只有6位问题二:小数点有效位数的问题 Chapter3 qt QString转Double只显示6位数字的问题(精…...

基于Java驾校预约管理系统

基于Java的驾校预约管理系统是一个为驾校提供在线预约服务的系统。该系统利用Java编程语言,采用SSM框架,并使用MySQL数据库进行开发。 这个系统主要有三个角色:用户、教练和管理员。 用户可以注册和登录系统,查看驾校的公告信息…...

C++面向对象高级编程(侯捷)笔记2

侯捷C面向对象高级编程 本文是学习笔记,仅供个人学习使用,如有侵权,请联系删除。 如果你对C面向对象的组合、继承和委托不了解,对什么是拷贝构造、什么是拷贝赋值和析构不清楚,对类设计中的Adapter、pImpl、Template…...

双曲正弦函数(*) 优化麦克劳林公式

#include<stdio.h> #include<math.h> int main() {double x,eps,i3,y,item;scanf("%lf%lf",&x,&eps);yx;itemx;while(fabs(item)>eps){itemitem*x*x/i/(i-1);i2;yitem;}printf("%.6f\n",y);return 0; }...

无监督关键词提取算法:TF-IDF、TextRank、RAKE、YAKE、 keyBERT

TF-IDF TF-IDF是一种经典的基于统计的方法&#xff0c;TF(Term frequency)是指一个单词在一个文档中出现的次数&#xff0c;通常一个单词在一个文档中出现的次数越多说明该词越重要。IDF(Inverse document frequency)是所有文档数比上出现某单词的个数&#xff0c;通常一个单词…...

web3 : blockscout剖析

Blockscout 是第一个功能齐全的开源区块链浏览器,可供任何以太坊虚拟机 (EVM) 链使用。项目方可以下载并使用Blockscout作为其链的浏览器,用户可以轻松验证交易、余额、区块确认、智能合约和其他记录。 目录 Blockscout可以做什么主要特征blockscoutDocker容器组件Postgres 1…...

【机器学习基础】DBSCAN

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习 欢迎订阅&#xff01;相对完整的机器学习基础教学&#xff01; ⭐特别提醒&#xff1a;针对机器学习&#xff0c;特别开始专栏&#xff1a;机器学习python实战…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

篇章二 论坛系统——系统设计

目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...

【实施指南】Android客户端HTTPS双向认证实施指南

&#x1f510; 一、所需准备材料 证书文件&#xff08;6类核心文件&#xff09; 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...