计算机视觉入门与调优
大家好啊,我是董董灿。
在 CSDN 上写文章写了有一段时间了,期间不少小伙伴私信我,咨询如何自学入门AI,或者咨询一些AI算法。
90%的问题我都回复了,但有时确实因为太忙,没顾得过来。
在这个过程中,我发现很多小伙伴问的问题都类似:比如如何入门计算机视觉,某某算法是做什么的,有什么作用。
之前写的文章由于过于分散,不成体系,很多知识点没有串联起来。
于是我做了个合集,计划系统的从传统计算机视觉,到基于深度学习的计算机视觉走一遍。
然后依托Resnet50这一经典图像分类网络,将涉及到的算法都剖析和实现一遍,最后亲自完成该神经网络的搭建,并带你完成任意图像的识别。
专栏计划更新目录大纲为(高亮部分是已经写完的)
我所理解的计算机视觉
基础背景知识
-
图片和像素
-
灰度图
-
彩色 RGB 以及通道
-
彩色YUV
-
OpenCV 介绍、环境搭建及一个实战完成YUV的分量提取
传统计算机视觉初探
-
传统CV之均值滤波
-
传统CV之高斯滤波
-
传统CV之高斯滤波实战
-
传统CV之边缘检测
-
传统CV之图像分割(大津算法)
-
传统CV之利用大津算法实战完成图像分割
深度学习基础
-
机器学习和深度学习的关系
-
深度学习之神经网络
-
深度学习之训练和推理
-
深度学习之正向传播和反向传播
-
深度学习之损失函数
-
推理的性能,那些框架存在的意义
-
深度学习实战——完成一个模型的训练和推理
图片分类模型 - Resnet50
-
什么是 Resnet50 神经网络?
-
Resnet 神经网络为什么这么重要?
-
Resnet 中共包含哪些算法?
-
卷积 - 为什么是卷积?
-
卷积 - 什么是卷积的 Feature Map?
-
卷积 - 到底什么是感受野?
-
卷积 - 矩阵乘法的本质
-
卷积 - 实际上是一个特征提取器
-
卷积 - 卷积特征的可视化和一个神奇的网站
-
卷积 - 卷积的基础公式
-
卷积参数 - padding 的作用
-
卷积参数 - stride 的作用
-
卷积参数 - dilation 的作用以及什么是空洞卷积
-
卷积参数 - 长宽方向的公式推导
-
变种卷积 - 分组卷积
-
实战 - 手写一个基础卷积算法
-
卷积 - 算法总结
-
池化 - 什么是池化算法
-
池化 - 池化与卷积的区别
-
池化 - 池化的特征不变性
-
池化 - 平均池化和全局平均池化
-
实战 - 手写一个最大池化函数
-
BatchNorm - 什么是批归一化以及它解决了什么问题
-
BatchNorm - 经典面试题:训练和推理中的批归一化有什么不一样
-
实战 - 手写一个BatchNorm 算法
-
BatchNorm 为什么可以和卷积融合?
-
激活函数 - 非线性的重要性
-
激活函数 - relu
-
激活函数 - sigmoid
-
激活函数 - 梯度消失和梯度爆炸
-
Resnet - 残差结构和它的作用
-
实战 - 利用 conv + bn + relu + add 手写一个残差结构
-
全连接 - 特征的全局融合
-
全连接 - 特征与样本空间的对应关系
-
实战 - 手写一个全连接算法
-
Softmax 分类器以及它的底层原理
-
损失函数和softmax
-
Resnet 中的下采样
模型实战
-
python 环境搭建
-
resnet50 模型下载
-
resnet50 权值和参数保存
-
resnet50 权值和参数加载
-
python - 手写卷积、bn、池化、全连接、激活、ResBlock
-
python - 全手写搭建 resnet50 神经网络
-
图片预处理:Resize and Crop
-
图片预处理:Normalize
-
python - 利用手写的网络,成功预测一张图片
-
python - 代码仓库介绍
-
AI 模型性能评估指标:吞吐和延时
-
python - 第一版手写代码性能评估
-
python - 利用向量内积来优化卷积运算
-
C++ 环境搭建和一些库的安装
-
C++ 代码格式规范的一个工具使用
-
C++ 仓库目录结构介绍
-
C++ 编译,运行介绍
-
C++ - 手写卷积、池化、bn、全连接、relu等算法
-
C++ - 手写 BottleNeck 结构,搭建resnet50 神经网络
-
C++ - 预测图片数据集介绍
-
C++ - 图片预处理介绍
-
C++ - 完成一张图片的推理,top1和 top5 的准确度验证
-
C++ - 性能评估:Latency 和 FPS 介绍
模型性能优化1 - AVX2 向量指令集
-
什么是计算向量化
-
avx2 向量指令集介绍
-
avx2 向量寄存器介绍
-
avx2 数据 load/store 向量化操作介绍
-
avx2 向量实现乘累加
-
利用 avx2 向量指令集优化卷积运算
-
评估优化前后的性能差距
模型性能优化2 - 权值预加载
-
计算机基础 - 计算数据流加载(IO)
-
为什么要做权值预加载
-
手写的模型如何模拟权值预加载
-
权值预加载实现,评估优化前后的性能差距
模型性能优化3 - 内存操作的移除
-
操作系统:内存的申请机制介绍
-
系统负载:频繁申请内存的影响
-
如何移除推理 routie 上的内存操作
-
移除内存操作前后的性能评估
模型性能优化4 - 代码生成
-
什么是代码生成
-
代码生成一般都是怎么做的
-
代码生成有什么好处,为什么性能会更好
-
手写的模型如何模拟代码生成
-
将所有算子替换成代码生成逻辑
-
JIT 编译介绍
-
如何在代码中加载动态库
-
如何从动态库中获取到函数符号
-
利用代码生成的逻辑优化手写的神经网络性能
-
优化前后性能评估
我自从转行来做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是一种经典的基于统计的方法,TF(Term frequency)是指一个单词在一个文档中出现的次数,通常一个单词在一个文档中出现的次数越多说明该词越重要。IDF(Inverse document frequency)是所有文档数比上出现某单词的个数,通常一个单词…...

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

【机器学习基础】DBSCAN
🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习 欢迎订阅!相对完整的机器学习基础教学! ⭐特别提醒:针对机器学习,特别开始专栏:机器学习python实战…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...