computer-vision-in-action
computer-vision-in-action 是一个专为计算机视觉学习者打造的闭环实战平台,核心载体是《计算机视觉实战演练:算法与应用》中文电子书。它不仅仅是一本静态的技术文档,更是一个支持代码在线交互式运行的动态学习环境。
该项目主要解决了传统 AI 学习中“理论与实操脱节”的痛点。许多初学者在阅读算法原理时,往往因环境配置复杂或缺乏即时反馈而难以深入。computer-vision-in-action 通过独特的 L0CV 学习媒介,将代码、图示和 HTML 说明深度融合,用户无需在本地繁琐搭建环境,即可直接在浏览器中修改并运行代码,直观观察算法效果,真正实现“以用促学,先会后懂”。
这里非常适合计算机视觉领域的开发者、高校学生以及希望转型 AI 的研究人员使用。无论你是想系统掌握从基础图像处理到 Transformer、强化学习等前沿技术,还是寻找高质量的开源源码进行二次开发,都能在这里找到丰富资源。项目由迈微 AI 研习社创始人维护,内容持续更新且完全免费开源,配合活跃的读者交流社区,为学习者提供了一条从入门到进阶的清晰成长路径。
使用场景
某高校计算机专业研究生李明正在准备毕业论文,需要复现一篇关于“视频动作识别”的顶会论文算法,并验证其在自定义数据集上的效果。
没有 computer-vision-in-action 时
- 环境配置耗时极长:为了运行论文代码,李明需要在本地手动安装特定版本的 PyTorch、OpenCV 及各类依赖库,频繁遭遇版本冲突和报错,整整两天无法跑通"Hello World"。
- 理论与实践脱节:手中只有晦涩的 PDF 论文和零散的 GitHub 代码片段,难以将书中的数学公式与具体的代码实现逻辑对应起来,理解成本极高。
- 缺乏交互式调试:想要修改某个卷积层参数观察效果,必须本地修改代码、重新运行整个脚本,无法实时查看中间特征图的变化,试错效率低下。
- 资源孤立无援:遇到算法瓶颈时,只能在通用论坛发帖求助,缺乏针对该具体项目的垂直交流社区,问题往往石沉大海。
使用 computer-vision-in-action 后
- 开箱即用的在线环境:李明直接通过浏览器访问 L0CV 在线平台,无需本地配置任何环境,即可在预置好的 Jupyter Notebook 中一键运行视频理解相关的示例代码。
- 代码与图文深度融合:依托《计算机视觉实战演练》电子书,他能够边看动态图解边对照源码,清晰地看到 Transformer 模块在代码中的具体落地方式,迅速打通理论任督二脉。
- 交互式闭环学习:利用平台的交互特性,他实时修改网络超参数并立即可视化输出结果,快速验证了不同架构对动作识别准确率的影响,实验迭代速度提升数倍。
- 精准社区支持:在项目中内置的读者交流社区里,他找到了同样研究视频理解的伙伴,并参考作者更新的最新笔记,顺利解决了数据预处理的关键难题。
computer-vision-in-action 通过“代码 + 图示 + 在线交互”的闭环模式,将枯燥的算法学习转化为高效的实战演练,极大降低了计算机视觉技术的入门与研发门槛。
运行环境要求
- Linux
- macOS
- Windows
未说明 (项目基于 PyTorch,通常建议 NVIDIA GPU 以加速训练,但 README 未明确具体型号或显存要求)
未说明

快速开始
"如果你只是看了这个项目的在线文档,那么你并没有利用好这个项目。太可惜!"
✨ 以用促学,先会后懂 ✨
L0CV 🔊 一种结合了代码、图示和HTML的在线学习媒介
全面 前沿 免费
计算机视觉实战演练:算法与应用 📌
|
Index
- 💠 全书组织
- 🌈 愿景
- 📘 本书目录
- 🔍 文件浏览
- 🌼 L0CV-DemoDay
- 🔑 如何食用
- ❓ 常见问题
- 👥 社区互助
- :heart: 致谢
- 📄 LICENSE
- 👐 参与项目
- 🤝 关注我们
- 📎 Citation
:label: sec_code 图1 L0CV 结构图
💠 全书组织
:label: fig_book_org
本书详细介绍,请移步 序言。
第一部分包括基础知识和预备知识。提供深度学习的入门课程,然后在理论篇中,将快速向你介绍实践计算机视觉所需的前提条件,例如如何存储和处理数据,以及如何应用基于线性代数、微积分和概率基本概念的各种数值运算,涵盖了深度学习的最基本概念和技术,例如线性回归、多层感知机和正则化。
第二部分是本书涉及的计算机视觉基础理论,核心部分为神经网络模型,包括神经网络、卷积神经网络、循环神经网络理论讲解,以图像分类、模型拟合与优化作为其代码的实战项目。在模型拟合和优化章节中,着重分享梯度下降、随机梯度下降、动量法、AdaBoost等方法。
接下来的七章集中讨论现代计算机视觉技术实战,也是本书的核心部分。围绕这样的组织逻辑:什么是计算机视觉?计算机视觉解决什么问题,都是怎么解决的?传统方法——以卷积神经网络为中心的神经网络;现代方法——Transformer、强化学习、迁移学习、生成对抗等。各种方法是如何实现的,用到了什么框架?在第7章中,描述了计算机视觉的经典卷积神经网络PyTorch实现,并为我们随后实现更复杂的模型奠定了基础。在随后的几个章节中,我们主要解决图像分类、目标检测、语义分割、3D重建等实际问题,并给出实战项目。
该部分以项目为实战指导,给出详细的项目指导书和代码实现,更为特别的是,给出了notebook可以直接在线运行,跑通结果,免去了本地运行环境的搭建复杂性。于此同时,为了方便读者在本地调试,作者建立了一个名为
L0CV的第三方包,可以直接在代码中import L0CV后使用。第三部分讨论最近几年出现的“网红”模型,诸如:Transformer、Attention、知识蒸馏、迁移学习、生成对抗模型等。这部分也是此份资料的力挺之作。最后,在
chap_optimization中,我们讨论了用于训练深度学习模型的几种常用优化算法,如:模型压缩、模型剪枝、微调、蒸馏等。
🌈 愿景
本开源项目代表了我们的一种尝试:我们将教给读者概念、背景知识和代码;我们将在同一个地方阐述剖析问题所需的批判性思维、解决问题所需的数学知识,以及实现解决方案所需的工程技能。
我们的目标是创建一个为实现以下目标的统一资源:
- 所有人均可在网上免费获取;
- 提供足够的技术深度,从而帮助读者实际成为计算机视觉应用科学家:既理解数学原理,又能够实现并不断改进方法;
- 包含可运行的代码,为读者展示如何在实际中解决问题。这样不仅直接将数学公式对应成实际代码,而且可以修改代码、观察结果并及时获取经验;
- 允许我们和整个社区不断快速迭代内容,从而紧跟仍在高速发展的计算机视觉领域;
- 由包含有关技术细节问答的论坛作为补充,使大家可以相互答疑并交换经验。
📘 本书目录
👉 在线阅读(优先更新实战篇和进阶篇)
- 地址:https://charmve.github.io/computer-vision-in-action/
📘 详细目录(点击展开)
- 更新中 ... |
🔍 文件浏览
按书中内容先后顺序逐章阅读,或者选取特定章节祥读 📁 docs/ 1,动手实践章节代码,在代码文件 📁 code/ 2 下找到对应代码,本地测试或者Colab 📁 notebooks/ 3 在线测试。
- 📁
L0CV/- 专为本项目建立的💮 L0CV包- 📁
code/- 书中完整代码- 📁
datasets/- 本书所用数据集
- 📁
images/- 经典图像处理图片- 📁
docs/- 全书按照一下几个篇目进行编写
- 📁
0_绪论/- 全书绪论- 📁
1_理论篇/- 基本理论和算法基础- 📁
2_实战篇/- 项目实战教程- 📁
3_进阶篇/- 最新CV模型和算法- 📁
附件/- 所需数学和统计学知识- 📁
img/- 各章节所使用的插图- 📁
models/- 封装可用的预训练模型- 📁
notebooks/- 🚩 全书 Colab notebook,可在线测试
- 📁
chapter01_neural-networks/- 第 1 章 - 神经网络 Jupyter Notebook 实现- 📁
chapter02_CNN/- 第 2 章 - 卷积神经网络 Jupyter Notebook 实现- 📁
chapter03_Image-Classification- 第 3 章 - 图像分类 Jupyter Notebook 实现- 📁
chapter04_recurrent-neural-networks/- 第 4 章 - 递归神经网络 Jupyter Notebook 实现- 📁
chapter05_graph-neural-network/- 第 5 章 - 图神经网络 Jupyter Notebook 实现- 📁
chapter07_optimization/- 第 6 章 - 模型拟合与优化算法 Jupyter Notebook 实现- 📁
chapter08_environment-setup-and-tool-use/- 第 7 章 - 软件环境搭建与工具使用 Jupyter Notebook 实现- 📁
chapter09_convolutional-neural-networks/- 第 8 章 - 经典神经网络架构:原理与PyTorch实现 Jupyter Notebook 实现- 📁
chapter12_practice-projects- 第 12 章 - 计算机视觉课题研究初探 Jupyter Notebook 实现- 📁
chapter13_Understanding-and-Visualizing/- 第 13 章 - 可视化与理解卷积神经网络 Jupyter Notebook 实现- 📁
chapter14_GAN/- 第 14 章 - 生成对抗模型 Jupyter Notebook 实现- 📁
chapter15_Transfer-Learning/- 第 15 章 - 迪移学习 Jupyter Notebook 实现- 📁
chapter16_Attention/- 第 16 章 - 注意力机制 Jupyter Notebook 实现- 📁
chapter17_Transformers/- 第 17 章 - Transformers Jupyter Notebook 实现- ...
- 📁
imgs/- Jupyter Notebook 中用到的图片- 📁
docker/- 为降低读者的学习成本,目前未进行搭建- 📁
res/- ui 图片及全书思维导图PDF- 📄
README.md- 全书介绍及目录
L0CV DemoDay
如果你也是从这里出发,在开源的项目中应用进去,并在标题下给出引用 ,您的项目将会在这里展现!
以用促学,先会后懂。理解深度学习的最佳方法是学以致用。
*《计算机视觉实战演练:算法与应用》V1.2 部分项目还在更新中
| 实战项目 | 章节 | Binder | Google Colab |
|---|---|---|---|
| 实战项目 1 - 手写字分类 | 第 1 章 - 神经网络 | ||
| 实战项目 2 - 动手搭建一个卷积神经网络 | 第 2 章 - 卷积神经网络 | ||
| 实战项目 3 - 基于卷积神经网络的人脸表情识别 | 第 3 章 - 图像分类 | ||
| 实战项目 4 - 使用卷积神经网络对CIFAR10图片进行分类 | 第 3 章 - 图像分类 | ||
| 实战项目 5 - 使用OpenCV进行图像全景拼接 | 第 6 章 - 软件环境搭建与工具使用 | ||
| 实战项目 6 - Kaggle比赛:图像分类(CIFAR-10) | 第 8 章 - 著名数据集及基准 | ||
| 实战项目 7 - Kaggle比赛:狗的品种识别(ImageNet Dogs) | 第 8 章 - 著名数据集及基准 | ||
| 实战项目 8 - 基于PolarNet的点云端到端语义分割项目实战 | 第 9 章 - 检测与分割实战项目 | ||
| 实战项目 9 - 基于PyTorch的YOLO5目标检测项目实战 | 第 9 章 - 检测与分割实战项目 | ||
| 实战项目 10 - 实时高分辨率背景抠图 | 第 9 章 - 检测与分割实战项目 | ||
| 实战项目 11 - 车道线检测项目实战 | 第 10 章 - 计算机视觉课题研究初探 | ||
| 实战项目 12 - PyTorch 如何使用TensorBoard | 第 13 章 - 可视ization and understanding | ||
| 实战项目 13 - 图像样式迁移 | 第 14 章 生成对抗模型 | ||
| 实战项目 14 - 旧照片修复 | 第 14 章 - 生成对抗模型 | ||
| 实战项目 15 - 动漫头像生成 | 第 14 章 - 生成对抗模型 | ||
| 项目实战 16 - 视频理解项目实战 SlowFast + Multi-Moments in Time | 第 16 章 - 视频理解 | ||
| 实战项目 17 - 蚂蚁和蜜蜂的分类问题 | 第 17 章 - 迁移学习 | |
|
| 实战项目 18 - 基于Transformer的视频实例分割网络VisTR (CVPR2021) | 第 19 章 - 跨界模型 Transformer | ||
| 实战项目 19 - 支付宝CVPR细粒度视觉分类挑战赛夺冠方案解读 | 第 20 章 - 知识蒸馏 | ||
| ... | ... | ... |
🔑 如何食用
🔎 详细攻略展开
方法一 Jupyter Notebook(推荐方式 ✨)
1. 本地运行
- 安装依赖包
pip3 install -r requirements.txt
- 安装 Jupyter
python3 -m pip install --upgrade pip
python3 -m pip install jupyter
- 查看并运行 Jupyter
请在终端(Mac / Linux)或命令提示符(Windows)上运行以下命令:
cd notebooks
jupyter notebook
2. 远程运行
图2 例子:12.3.3 样式迁移
图3 例子:12.3.3 样式迁移 Colab 点击 [Copy to Drive]
![]()
方法二 使用 /code
1. 运行环境 + L0CV 加载
- 安装依赖包
sudo apt-get update
pip3 install -r requirements.txt
- 创建 L0CV
python3 setup.py
- 测试环境
cd code
python3 L0CV_test.py
2. 直接调用每个章节的代码测试
import L0CV
每一小节都是可以运行的 Jupyter 记事本你可以自由修改代码和超参数来获取及时反馈,从而积累深度学习的实战经验。 |
|
公式 + 图示 + 代码我们不仅结合文字、公式和图示来阐明深度学习里常用的模型和算法,还提供代码来演示如何从零开始实现它们,并使用真实数据来提供一个交互式的学习体验。 |
||
|
|
|
❓ 常见问题
在线教程页面无法打开:
测试中存在部分人打不开在线教程的情况。
部分小伙伴反馈尝试切换浏览器后可以正常打开了,如果仍然不行,最有效的解决办法是科学上网。
无法加载图片的解决办法:
根本解决办法还是科学上网,也可以尝试修改host文件看下是否能解决。
公式无法正常显示解决办法:
GitHub中的Markdown原生是不支持LATEX公式显示的,如果你喜欢在本项目中直接浏览教程,可以安装Chrome的
MathJax Plugin for Github插件让大部分公式正常显示。而docs文件夹已经利用docsify被部署到了GitHub Pages上,包含公式的章节强力建议使用 《计算机视觉实战演练:算法与应用》 在线阅读 进行学习。当然如果你还想跑一下运行相关代码的话还是得把本项目clone下来,然后运行code文件夹下相关代码。
Jupyter Notebook 无法在 GitHub 上呈现? 使用 nbviewer。
致谢
参考文献
感谢前人的杰出工作,我才得以写出此书。感谢 参考文献 中列出及未列出的,所有对此开源工作有帮助的前辈!
许可协议
L0CV代码部分采用 Apache 2.0协议 进行许可,包括名为 L0CV 的原创第三方库、/code和/notebook下的源代码。遵循许可的前提下,你可以自由地对代码进行修改,再发布,可以将代码用作商业用途。但要求你:- 署名:在原有代码和衍生代码中,保留原作者署名及代码来源信息。
- 保留许可证:在原有代码和衍生代码中,保留
Apache 2.0协议文件。
L0CV文档部分采用 知识共享署名 4.0 国际许可协议 进行许可。 遵循许可的前提下,你可以自由地共享,包括在任何媒介上以任何形式复制、发行本作品,亦可以自由地演绎、修改、转换或以本作品为基础进行二次创作。但要求你:- 署名:应在使用本文档的全部或部分内容时候,注明原作者及来源信息。
- 非商业性使用:不得用于商业出版或其他任何带有商业性质的行为。如需商业使用,请联系作者。
- 相同方式共享的条件:在本文档基础上演绎、修改的作品,应当继续以知识共享署名 4.0国际许可协议进行许可。
👥 社区互助
如果您在使用的过程中碰到问题,可以通过下面几个途径寻求帮助,同时我们也鼓励资深用户通过下面的途径给新人提供帮助。
L0CV 读者微信交流群 (加我微信Yida_Zhang2,备注:L0CV-高校/企业-称呼)
💖 支持本项目
请通过捐赠来支持我继续推进该项目。非常感谢所有在赞助者名单中的朋友们。
贡献
作者会尽最大努力来确保书中内容的准确性,但难免会存在疏漏与不妥之处。欢迎您将发现的问题反馈给我们,帮助提升本开放资源的质量。
Help us make these docs great!All VC-action docs are open source. See something that's wrong or unclear? Submit a pull request. Make a contribution |
引用
使用以下BibTeX格式引用本仓库:
@misc{computer-vision-in-action,
title={计算机视觉实战演练:算法与应用(Computer Vision in Action)},
author={Charmve},
year={2021.06},
publisher={Github},
journal={GitHub repository},
howpublished={\url{https://github.com/Charmve/computer-vision-in-action}},
}
星标随时间变化
太棒了! Charmve/computer-vision-in-action 在2个月前创建,如今已获得1546颗星。
欢迎随时提问,如果你觉得有地方可以改进,请提交PR!
🌟 给这个仓库点个星吧 🌟
由 Charmve 和 maiwei.ai 社区共同创建 | 部署于 GitHub Pages
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备









