Git Product home page Git Product logo

charmve / computer-vision-in-action Goto Github PK

View Code? Open in Web Editor NEW
2.4K 36.0 366.0 296.12 MB

A computer vision closed-loop learning platform where code can be run interactively online. 学习闭环《计算机视觉实战演练:算法与应用》中文电子书、源码、读者交流社区(持续更新中 ...) 📘 在线电子书 https://charmve.github.io/computer-vision-in-action/ 👇项目主页

Home Page: https://charmve.github.io/L0CV-web

License: Other

Jupyter Notebook 99.60% Python 0.40% Dockerfile 0.01%
tutorial charmve machine-learning computer-vision deep-learning deep-learning-tutorial books handbook computer-vision-algorithms in-action pytorch transformer ipynb jupyter-notebook colab-notebook notebook neural-network

computer-vision-in-action's Introduction

"如果你只是看了这个项目的在线文档,那么你并没有利用好这个项目。太可惜!"

✨ 以用促学,先会后懂 ✨

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


全面 前沿 免费

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

作者:张伟(Charmve)

CircleCI Documentation status Code License 知识共享许可协议
Python version jupyter version PyTorch version
Binder Run on Colab Docker Gitpod Ready-to-Code Stars Forks

logo:L0CV



L0CV Website 中文电子书

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

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

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

最新版PDF下载

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

Index

L0CV architecture

🏷️ sec_code 图1 L0CV 结构图

💠 全书组织

🏷️ fig_book_org

book_org.png

全书详细思维导图

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

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

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

L0CV DemoDay

L0CV-Universe

如果你也是从这里出发,在开源的项目中应用进去,并在标题下给出引用 L0CV,您的项目将会在这里展现!

以用促学,先会后懂。理解深度学习的最佳方法是学以致用。

*《计算机视觉实战演练:算法与应用》V1.2 部分项目还在更新中


实战项目 章节 Binder Google Colab
实战项目 1 - 手写字分类 第 1 章 - 神经网络
实战项目 2 - 动手搭建一个卷积神经网络 第 2 章 - 卷积神经网络
实战项目 3 - 基于卷积神经网络的人脸表情识别 第 3 章 - 图像分类
实战项目 4 - 使用卷积神经网络对CIFAR10图片进行分类 第 3 章 - 图像分类
实战项目 5 - 使用OpenCV进行图像全景拼接 第 6 章 - 软件环境搭建与工具使用 Binder
实战项目 6 - Kaggle比赛:图像分类(CIFAR-10) 第 8 章 - 著名数据集及基准 Binder
实战项目 7 - Kaggle比赛:狗的品种识别(ImageNet Dogs) 第 8 章 - 著名数据集及基准 Binder
实战项目 8 - 基于PolarNet的点云端到端语义分割项目实战 第 9 章 - 检测与分割实战项目
实战项目 9 - 基于PyTorch的YOLO5目标检测项目实战 第 9 章 - 检测与分割实战项目
实战项目 10 - 实时高分辨率背景抠图 第 9 章 - 检测与分割实战项目
实战项目 11 - 车道线检测项目实战 第 10 章 - 计算机视觉课题研究初探
实战项目 12 - PyTorch 如何使用TensorBoard 第 13 章 - 可视化和理解
实战项目 13 - 图像样式迁移 第 14 章 生成对抗模型 Binder
实战项目 14 - 旧照片修复 第 14 章 - 生成对抗模型 Binder
实战项目 15 - 动漫头像生成 第 14 章 - 生成对抗模型 Binder
项目实战 16 - 视频理解项目实战 SlowFast + Multi-Moments in Time 第 16 章 - 视频理解 Binder
实战项目 17 - 蚂蚁和蜜蜂的分类问题 第 17 章 - 迁移学习 Binder
实战项目 18 - 基于Transformer的视频实例分割网络VisTR (CVPR2021) 第 19 章 - 跨界模型 Transformer
实战项目 19 - 支付宝CVPR细粒度视觉分类挑战赛夺冠方案解读 第 20 章 - 知识蒸馏
... ... ...

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] 即可在线运行测试。

  • 点击 Binder 也可在 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

收起

每一小节都是可以运行的 Jupyter 记事本

你可以自由修改代码和超参数来获取及时反馈,从而积累深度学习的实战经验。

公式 + 图示 + 代码

我们不仅结合文字、公式和图示来阐明深度学习里常用的模型和算法,还提供代码来演示如何从零开始实现它们,并使用真实数据来提供一个交互式的学习体验。

Index

❓ 常见问题

  • 在线教程页面无法打开

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

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

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

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

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

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

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

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

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

Index

致谢

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

Index

参考文献

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

Index

LICENSE

Code License 知识共享许可协议

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

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

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

Index

👥 社区互助

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

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

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

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

  • L0CV 读者微信交流群 (加我微信Yida_Zhang2,备注:L0CV-高校/企业-称呼)

Index

💖 Support this project

Donating to help me continue working on this project. I'm appreciate all you in backer list. BuymeaCoffee

Buy Me A Coffee

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 1546 stars.

Stargazers over time


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

computer-vision-in-action's People

Contributors

charmve avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

computer-vision-in-action's Issues

文档链接打不开

很棒的工作,不过文档的链接都打不开啊,包括在线浏览和最新PDF下载,提示我如下,重新加载了几次都是如此,不知道博主方便提供百度云之类的下载链接吗

This page is taking too long to load.
Sorry about that. Please try refreshing and contact us if the problem

[功能修复] 第三方库 ``L0CV`` 开发问题

问题描述:本地测试时,通过 python3 可直接加载,完成使用,但在 /code 中 测试python3 L0CV_test.py,出现一下bug信息。

[libprotobuf FATAL google/protobuf/stubs/common.cc:87] This program was compiled against version 3.9.2 of the Protocol Buffer runtime library, which is not compatible with the installed version (3.17.1).  Contact the program author for an update.  If you compiled the program yourself, make sure that your headers are from the same version of Protocol Buffers as your link-time library.  (Version verification failed in "bazel-out/k8-opt/bin/tensorflow/core/framework/tensor_shape.pb.cc".)
terminate called after throwing an instance of 'google::protobuf::FatalException'
  what():  This program was compiled against version 3.9.2 of the Protocol Buffer runtime library, which is not compatible with the installed version (3.17.1).  Contact the program author for an update.  If you compiled the program yourself, make sure that your headers are from the same version of Protocol Buffers as your link-time library.  (Version verification failed in "bazel-out/k8-opt/bin/tensorflow/core/framework/tensor_shape.pb.cc".)
Aborted (core dumped)

代码结构:

code
├── L0CV
|   ├── __init__.py
|   ├── tensorflow.py
|   ├── torch.py
|   └── utils.py
├── ...
├── L0CV_test.py
└── setup.py

源代码 https://github.com/Charmve/computer-vision-in-action/tree/main/code/

理想输出:

L0CV

[功能修复] 每个网页有独立的gitalk

在线电子书,大家的评论都存到了主页README的分支中,之后得修改。

现在的源码:

<script>
    const gitalk = new Gitalk({
      id: decodeURI('{{ page.url }}'),
      clientID: 'c41595e0999dd2834af4',
      clientSecret: '4ad47f16f60a04c2870a1939406a6ad87bf219ec',
      repo: 'computer-vision-in-action',
      owner: 'Charmve',
      admin: ['Charmve'],
      // 每个网页独立的gitalk
      //title: location.hash.match(/#(.*?)([?]|$)/)[1],
      //id: location.hash.match(/#(.*?)([?]|$)/)[1],
      // facebook-like distraction free mode
      labels: ['Gitalk'],
      perPage: 50,
      distractionFreeMode: false
    })
    // 监听URL中hash的变化,如果发现换了一个MD文件,那么刷新页面,解决整个网站使用一个gitalk评论issues的问题。
    window.onhashchange = function(event){
      if(event.newURL.split('#')[0] !== event.oldURL.split('#')[0]) {
        location.reload()
      }
    }
    // 由于docsify/lib/plugins/gitalk.min.js文件中已经有下面代码了,所以不需要在写一次了
    // gitalk.render('gitalk-container')
  </script>

链接打不开哈,由于实时更新的那个太长了

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.