programming

一个程序员的自我修炼手册

View project on GitHub

计算机视觉入门必修手册

本书记录了如何使用 Git 去管理项目以及如何使用 Python 处理数据集,训练神经网络,做符号运算。同时也介绍了 MXNet 与 TensorFlow2 的基本使用。如何阅读这本书,请参考慕课网:计算机视觉入门必修手册

详细的内容见 tutorials.docx tutorials.pdf

目录结构:

第一篇 基础篇

  • 第1章 搭建可塑计算机视觉工具集
    • 1.1 在机器上搭建一个深度学习环境
      • 1.1.1 在Windows10上配置软件工具
      • 1.1.2 在Ubuntu18.04上配置软件工具
      • 1.1.3 设置清华镜像
    • 1.2 安装深度学习框架
    • 1.3 桥接Ubuntu与Windows
    • 1.4 Ubuntu多用户共享使用深度学习环境
    • 1.5 本章小结
  • 第2章 计算机视觉之利器:vscode
    • 2.1 本书的注意事项
    • 2.2 安装 vscode 必备插件
    • 2.3 MPE 使用的必要性
    • 2.4 Markdown 使用手册
      • 2.4.1 Markdown基本要素
      • 2.4.2 常用标记
      • 2.4.3 次常用标记
      • 2.4.4 不常用标记
    • 2.5 公式使用参考
      • 2.5.1 如何插入公式
      • 2.5.2 如何输入公式的上下标
      • 2.5.3 如何输入括号和分隔符
      • 2.5.4 如何输入分数
      • 2.5.5 如何输入开方
      • 2.5.6 如何输入省略号
      • 2.5.7 如何输入矢量
      • 2.5.8 如何输入积分
      • 2.5.9 如何输入极限运算
      • 2.5.10 如何输入累加、累乘运算
      • 2.5.11 如何输入希腊字母
      • 2.5.12 大括号和行标的使用
      • 2.5.13 字体转换
    • 2.6 将Markdown转换为docx文档
      • 2.6.1 依据给定的模板输出 word 文档
      • 2.6.2 设置多文件生成word的模板
      • 2.6.3 设置自动目录
      • 2.6.4 自动导出为 word
    • 2.7 导入外部文件
    • 2.8 其他有趣的功能
      • 2.8.1 导入目录
      • 2.8.2 使用表情符号 与 Front Icon
      • 2.8.3 画图
      • 2.8.4 任务列表
    • 2.9 本章小结
  • 第3章 Python 的基础入门
    • 3.1 编写和运行代码
    • 3.2 Python基础知识
      • 3.2.1 标识符:我们的描述对象的名称
      • .2.2 赋值语句
      • 3.2.3 输入与输出
    • 3.3 数据类型
      • 3.3.1 Number数字
      • 3.3.2 String字符串
      • 3.3.3 List列表
      • 3.3.4 Tuple元组
      • 3.3.5 Set集合
      • 3.3.6 Dictionary字典
    • 3.4 Python数据类型转换
    • 3.5 运算符
      • 3.5.1 算术运算符 & 赋值算术运算符
      • 3.5.2 位运算符
      • 3.5.3 比较运算符 & 逻辑运算符
      • 3.5.4 成员运算符 & 身份运算符
    • 3.6 Python 运算符优先级
    • 3.7 从容器角度看待 list, tuple, dict, set 等结构
      • 3.7.1 序列的基本操作:索引与切片
      • 3.7.2 序列的拼接
      • 3.7.3 序列的其他方法
      • 3.7.4 序列之列表
      • 3.7.5 序列之元组
      • 3.7.6 容器之字典(dict)
      • 3.7.7 集合
    • 3.8 本章小结
  • 第4章 Python的简易进阶教程
    • 4.1 再谈“变量”
      • 4.1.1 交换赋值
      • 4.1.2 可变对象的赋值
      • 4.1.3 增量赋值
      • 4.1.4 符号 * 的妙用
    • 4.2 流程控制
      • 4.2.1 真值测试
      • 4.2.2 if条件语句
      • 4.2.3 循环结构
    • 4.3 函数
    • 4.4 类与模块
    • 4.5 本章小结

第二篇 数据篇

  • 第5章 定制AI的专属数据X
    • 5.1 数据集X的制作的准备工作
      • 5.1.1 好用的 Bunch
      • 5.1.2 MNIST的处理
      • 5.1.3 Cifar的处理
      • 5.1.4 如何使用MNIST与Cifar类
    • 5.2 数据集X的制作
      • 5.2.1 数据集的可视化与简介
      • 5.2.2 数据集 X 的封装
      • 5.2.3 Bunch 转换为HDF5文件:高效存储数据集 X
    • 5.3 X.h5 的使用说明
    • 5.4 本章小结
  • 第6章 CASIA脱机和在线手写汉字库
    • 6.1 CASIA 手写汉字简介
    • 6.2 手写单字的特征的解码
    • 6.3 手写单字的特征的序列化与反序列化
    • 6.4 手写单字的图片解读
      • 6.4.1 离线手写单字的图片解析
      • 6.4.2 在线手写单字的图片解析
    • 6.5 本章小结
  • 第7章 COCO API的使用
    • 7.1 COCO API的配置与简介
      • 7.1.1 Windows的配置
      • 7.1.2 Linux下的配置
    • 7.2 改写 COCO API 的初衷
      • 7.2.1 Why? API 改写的目的
      • 7.2.2 What? API 可以做什么
      • 7.2.3 How? API 如何设计
    • 7.3 ImageZ 的设计和使用
    • 7.4 AnnZ 的设计和使用
    • 7.5 COCOZ 的设计和使用
      • 7.5.1 展示 COCO 的类别与超类
      • 7.5.2 通过给定条件获取图片
      • 7.5.3 将图片的 anns 信息标注在图片上
      • 7.5.4 关键点检测
      • 7.5.5 看图说话
    • 7.6 让 API 更加通用
    • 7.7 本章小结

第三篇 工具篇

  • 第8章 计算机视觉的项目管理工具Git
    • 8.1 Git基础简介
      • 8.1.1 配置用户信息
      • 8.1.2 创建并操作一个本地仓库
      • 8.1.3 远程仓库
      • 8.1.4 标签
      • 8.1.5 分支
      • 8.1.6 vscode 与 Git 集成
    • 8.2 使用Git管理项目
      • 8.2.1 对 Microsoft Office 进行版本控制
      • 8.2.2 TortoiseGit 的使用
    • 8.3 本章小结
  • 第9章 构建属于自己的计算机视觉开源项目
    • 9.1 创建一个项目
    • 9.2 修改README
    • 9.3 编写贡献者指南
      • 9.3.1 准备工作1:创建 Issue 与 PR 模板
      • 9.3.2 准备工作2:编写行为准则
      • 9.3.3 贡献指南编写细则
    • 9.4 使用git submodule管理子项目
    • 9.5 克隆含有子模块的项目
    • 9.6 使用子模块
    • 9.7 本章小结
  • 第10章 从零开始设计计算机视觉软件
    • 10.1 创建一个项目
    • 10.2 项目的准备工作
    • 10.3 开发一个小工具:bbox
      • 10.3.1 创建数学中的“向量”
      • 10.3.2 编写 box.py 代码
    • 10.4 Python中的数学:符号计算
      • 10.4.1 使用SymPy表示数
      • 10.4.2 使用SymPy提升您的数学计算能力
      • 10.4.3 使用SymPy求值
      • 10.4.4 使用 SymPy 做向量运算
    • 10.5 案例:实现图像局部resize保持高宽比不变
    • 10.6 本章小结

第四篇 案例篇

  • 第11章 Kaggle实战:猫狗分类(Gluon版)
    • 11.1 数据处理
    • 11.2 Gluon实现模型的训练和预测
      • 11.2.1 建立并训练模型
      • 11.2.2 模型测试
    • 11.3 可视化中间层的输出
    • 11.4 本章小结
  • 第12章 利用GluonCV学习Faster RCNN
    • 12.1 初识RPN
      • 12.1.1 锚点
      • 12.1.2 感受野
      • 12.1.3 锚点的计算
      • 12.1.4 全卷积(FCN):将锚点映射回原图
    • 12.2 平移不变性的锚点
      • 12.2.1 边界框回归
      • 12.2.2 裁剪预测边界框超出原图边界的边界
      • 12.2.3 移除小于 min_size 的边界框
    • 12.3 NMS (Non-maximum suppression)
      • 12.3.1 重构代码
      • 12.3.2 标注边界框
    • 12.4 RoIHead
    • 12.5 本章小结
  • 第13章 自制一个集数据与API于一身的项目
    • 13.1 构建项目的骨架
      • 13.1.1 datasome 的创建细节
      • 13.1.2 loader的创建细节
    • 13.2 创建一个数据与 API 的统一体
      • 13.2.1 datasetsome 项目初设
      • 13.2.2 在 datasetsome 中编写 loader 使用案例
    • 13.3 编写datasetsome 的使用案例
    • 13.4 本章小结
  • 第14章 TensorFlow基础教程
    • 14.1 使用tf.keras.Sequential搭建模型
    • 14.2 FASHION-MNIST可视化实验结果
    • 14.3 PyTorch、TensorFlow、MXNet的数据操作
    • 14.4 PyTorch,TensorFlow,MXNet 自动微分
    • 14.5 TensorFlow 实现手写汉字分类的实例
      • 14.5.1 loader 的制作原理
      • 14.5.2 打包多个 zip 文件
      • 14.5.3 解析 features.h5
      • 14.5.4 使用TensorFlow训练MPF分类器
    • 14.6 本章小结