computer-vision-in-action

授权协议 View license
开发语言 Python
所属分类 神经网络/人工智能、 机器学习/深度学习
软件类型 开源软件
地区 不详
投 递 者 宋耀
操作系统 跨平台
开源组织
适用人群 未知
 软件概览


    __  ___      _               _ ___    ____                             
   /  |/  /___ _(_)      _____  (_)   |  /  _/    _________  ____ ___      
  / /|_/ / __ `/ / | /| / / _ \/ / /| |  / /_____/ ___/ __ \/ __ `__ \     
 / /  / / /_/ / /| |/ |/ /  __/ / ___ |_/ /_____/ /__/ /_/ / / / / / /     
/_/  /_/\__,_/_/ |__/|__/\___/_/_/  |_/___/     \___/\____/_/ /_/ /_/      
    

Maiwei AI Lab - 迈微AI研习社 [?]

作者系迈微AI研习社创始人、CSDN博客专家,主要分享机器学习算法、计算机视觉等相关内容,每周研读顶会论文,持续关注前沿技术动态。公众号底部有菜单分类,关注我们,一起学习成长。



以用促学,先会后懂

L0CV ��   一种结合了代码、图示和HTML的在线学习媒介


全面 前沿 免费

计算机视觉实战演练:算法与应用 ��
Computer Vision in Action

作者:张伟(Charmve)



logo:L0CV



跨平台,只需一个浏览器即可!

�� 在线阅读(优先更新实战篇和进阶篇)

- 地址: https://charmve.github.io/computer-vision-in-action/

最新版PDF下载

- 地址: https://github.com/charmve/computer-vision-in-action/releases (马上来 ...)
分享 Scan QR
QQ WeChat Weibo Twitter Zhihu CSDN

Index

��️ sec_code 图1 L0CV 结构图

�� 全书组织

��️ fig_book_org

全书详细思维导图

本书详细介绍,请移步 序言

  • 第一部分包括基础知识和预备知识。提供深度学习的入门课程,然后在理论篇中,将快速向你介绍实践计算机视觉所需的前提条件,例如如何存储和处理数据,以及如何应用基于线性代数、微积分和概率基本概念的各种数值运算,涵盖了深度学习的最基本概念和技术,例如线性回归、多层感知机和正则化。

  • 第二部分是本书涉及的计算机视觉基础理论,核心部分为神经网络模型,包括神经网络、卷积神经网络、循环神经网络理论讲解,以图像分类、模型拟合与优化作为其代码的实战项目。在模型拟合和优化章节中,着重分享梯度下降、随机梯度下降、动量法、AdaBoost等方法。

  • 接下来的七章集中讨论现代计算机视觉技术实战,也是本书的核心部分。围绕这样的组织逻辑:什么是计算机视觉?计算机视觉解决什么问题,都是怎么解决的?传统方法——以卷积神经网络为中心的神经网络;现代方法——Transformer、强化学习、迁移学习、生成对抗等。各种方法是如何实现的,用到了什么框架?在第7章中,描述了计算机视觉的经典卷积神经网络PyTorch实现,并为我们随后实现更复杂的模型奠定了基础。在随后的几个章节中,我们主要解决图像分类、目标检测、语义分割、3D重建等实际问题,并给出实战项目。

  • 该部分以项目为实战指导,给出详细的项目指导书和代码实现,更为特别的是,给出了notebook可以直接在线运行,跑通结果,免去了本地运行环境的搭建复杂性。于此同时,为了方便读者在本地调试,作者建立了一个名为 L0CV 的第三方包,可以直接在代码中 import L0CV 后使用。

  • 第三部分讨论最近几年出现的“网红”模型,诸如:Transformer、Attention、知识蒸馏、迁移学习、生成对抗模型等。这部分也是此份资料的力挺之作。最后,在 chap_optimization 中,我们讨论了用于训练深度学习模型的几种常用优化算法,如:模型压缩、模型剪枝、微调、蒸馏等。

Index

�� 愿景

本开源项目代表了我们的一种尝试:我们将教给读者概念、背景知识和代码;我们将在同一个地方阐述剖析问题所需的批判性思维、解决问题所需的数学知识,以及实现解决方案所需的工程技能。

我们的目标是创建一个为实现以下目标的统一资源:

  1. 所有人均可在网上免费获取;
  2. 提供足够的技术深度,从而帮助读者实际成为计算机视觉应用科学家:既理解数学原理,又能够实现并不断改进方法;
  3. 包含可运行的代码,为读者展示如何在实际中解决问题。这样不仅直接将数学公式对应成实际代码,而且可以修改代码、观察结果并及时获取经验;
  4. 允许我们和整个社区不断快速迭代内容,从而紧跟仍在高速发展的计算机视觉领域;
  5. 由包含有关技术细节问答的论坛作为补充,使大家可以相互答疑并交换经验。

Index

�� 本书目录

�� 在线阅读(优先更新实战篇和进阶篇)

- 地址: https://charmve.github.io/computer-vision-in-action/
�� 详细目录

- 更新中 ...


收起

Index

�� 文件浏览

按书中内容先后顺序逐章阅读,或者选取特定章节祥读 �� 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 实现
    • Go for it!
    • �� chapter16_Attention/ - 第 16 章 - 注意力机制 Jupyter Notebook 实现
    • �� chapter17_Transformers/ - 第 17 章 - Transformers Jupyter Notebook 实现
    • ...
    • �� imgs/ - Jupyter Notebook 中用到的图片
    • �� docker/ - 为降低读者的学习成本,目前未进行搭建
    • �� res/ - ui 图片及全书思维导图PDF
    • �� README.md - 全书介绍及目录

Index

�� 如何食用

�� 详细攻略展开

方式一 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 notesbook

2. 远程运行

  • 打开每章节首页,点击 可直接打开 Google Colab ,点击 Copy to Drive [Copy to Drive] 即可在线运行测试。

  • 点击 也可在 mybinder 查看和在线运行。

Run on Colab
图2 例子:12.3.3 样式迁移

点击 Copy to Drive
图3 例子:12.3.3 样式迁移 Colab 点击 Copy to Drive [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

收起

Index

常见问题

  • 在线教程页面无法打开

    测试中存在部分人打不开在线教程的情况。

    部分小伙伴反馈尝试切换浏览器后可以正常打开了,如果仍然不行,最有效的解决办法是科学上网。

  • 无法加载图片的解决办法

    根本解决办法还是科学上网,也可以尝试修改host文件看下是否能解决。

    解决方案: 修改host文件 Apple Mac Win10 Windows

  • 公式无法正常显示解决办法

    GitHub中的Markdown原生是不支持LATEX公式显示的,如果你喜欢在本项目中直接浏览教程,可以安装Chrome的MathJax Plugin for Github插件让大部分公式正常显示。而docs文件夹已经利用docsify被部署到了GitHub Pages上,包含公式的章节强力建议使用 《计算机视觉实战演练:算法与应用》 在线阅读 进行学习。

    当然如果你还想跑一下运行相关代码的话还是得把本项目clone下来,然后运行code文件夹下相关代码。

  • Jupyter Notebook 无法在 GitHub 上呈现? 使用 nbviewer

Index

LICENSE

  • L0CV代码部分采用 Apache 2.0协议 进行许可,包括名为 L0CV 的原创第三方库、/code/notebook下的源代码。遵循许可的前提下,你可以自由地对代码进行修改,再发布,可以将代码用作商业用途。但要求你:

    • 署名:在原有代码和衍生代码中,保留原作者署名及代码来源信息。
    • 保留许可证:在原有代码和衍生代码中,保留Apache 2.0协议文件。
  • L0CV文档部分采用 知识共享署名 4.0 国际许可协议 进行许可。 遵循许可的前提下,你可以自由地共享,包括在任何媒介上以任何形式复制、发行本作品,亦可以自由地演绎、修改、转换或以本作品为基础进行二次创作。但要求你:

    • 署名:应在使用本文档的全部或部分内容时候,注明原作者及来源信息。
    • 非商业性使用:不得用于商业出版或其他任何带有商业性质的行为。如需商业使用,请联系作者。
    • 相同方式共享的条件:在本文档基础上演绎、修改的作品,应当继续以知识共享署名 4.0国际许可协议进行许可。

Index

�� 社区互助

如果您在使用的过程中碰到问题,可以通过下面几个途径寻求帮助,同时我们也鼓励资深用户通过下面的途径给新人提供帮助。

  • 通过 提问时,建议使用 Q&A 标签。

  • 通过 或者 提问时,建议加上 L0CV 标签。

  • 微信、知乎、微博开话题可以生成tag,如微信聊天、朋友圈加 #L0CV 可话题交流。

Index

致谢

迈微AI研习社 Made With ML    异步社区    奇虎360

Index

参考文献

感谢前人的杰出工作,我才得以写出此书。感谢 参考文献 中列出及未列出的,所有对此开源工作有帮助的前辈!

Index

关注我们

扫描下方二维码,然后回复关键词“计算机视觉实战教程”,即可加入“读者交流群”

迈微AI研习社是一个专注AI领域的开源组织,作者系CSDN博客专家,主要分享机器学习算法、计算机视觉等相关内容,每周研读顶会论文,持续关注前沿技术动态。底部有菜单分类,关注我们,一起学习成长。
  • 若本书里没有你想要理论和实战项目,或者你发现本书哪个地方有错误,请毫不犹豫地去本仓库的 Issues( 地址 https://github.com/charmve/computer-vision-in-action/issues )进行反馈,在对应版块提交你希望补充的内容或者勘误信息,作者通常会在 24 小时以内给您回复,超过 24 小时未回复的话可以邮件联系我(微信 MaiweiE_com);

  • 同时,我也欢迎大家加入本项目的建设中来,欢迎 pull request

  • 请尽管表达你们的意见和建议,GitHub issues 和 电子书下方都可以留言,也可写邮件给我,我一定会回!

Index

CONTRIBUTION

作者会尽最大努力来确保书中内容的准确性,但难免会存在疏漏与不妥之处。欢迎您将发现的问题反馈给我们,帮助提升本开放资源的质量。

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

Or, learn how to contribute.

Index

Citation

Use this bibtex to cite this repository:

@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}},
}

Index

Stargazers Over Time

Awesome! Charmve/computer-vision-in-action was created 2 months ago and now has 956 stars.


Go for it!

Feel free to ask any questions, open a PR if you feel something can be done differently!

�� Star this repository ��

Created by Charmve & maiwei.ai Community | Deployed on GitHub Page

 相关资料
  • 计算机视觉涉及使用计算机软件和硬件建模和复制人类视觉。 在本章中,您将详细了解这一点。 计算机视觉 计算机视觉是一门学科,研究如何根据场景中存在的结构的属性,从其2d图像重建,中断和理解3d场景。 计算机视觉层次结构 计算机视觉分为以下三个基本类别 - Low-level vision - 它包括用于特征提取的过程图像。 Intermediate-level vision - 包括物体识别和3D场

  • Computer Networking This is the place to learn more about computer networking.It can be used by people who are new to computer networking or experienced one who searchfor more specific-area resources.

  • Computer Science Resources A list of resources in different fields of Computer Science (in multiple languages). Content Getting Started Map of Computer Science Map of Mathematics Map of Physics MIT Co

  • 现在天气越来越热了,使用笔记本的人,一定都有烤'猪蹄'的感觉了。特别是使用UBUNTU系统的人。我推荐一个目前我在使用的测试温度的软件。 Computer Temperature Monitor,在Ubuntu的软件中心里面有,也可以到官方网站上下载一个。 安装完后在gnome面板上右键添加到面板,会找到Computer Temperature Monitor,添加就可以用了。 更多屏幕截图请看:

  • little-virtual-computer 是一个用 TypeScript 构建的虚拟机项目。 该项目基于 jsdf/little virtual computer ,这是一个非常有趣的项目,目标是使用 JavaScript 构建一个模拟计算机。 当前虚拟机使用数组模拟内存,同时与指令结合起来操作内存来控制数据与显示。 作者使用 TypeScript 和设计模式进一步拆分和简化了源代码。让源代