当前位置: 首页 > 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实战…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...