# tensorflow_train_proj_prepare_steps_document
**Repository Path**: SwetShen/tensorflow_train_proj_prepare_steps_document
## Basic Information
- **Project Name**: tensorflow_train_proj_prepare_steps_document
- **Description**: tensorflow实训项目准备流程总结,以及备课的大致时间
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2024-02-27
- **Last Updated**: 2024-03-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## tensorflow实训项目备课计划
备课计划大纲:
### 01-知识体系预构建
+ 建立预备知识体系(了解神经网络和深度学习、查看车牌识别项目内容)
+ 根据视频建立卷积神经网络(address:[Eve的科学频道视频专辑-Eve的科学频道视频合集-哔哩哔哩视频 (bilibili.com)](https://space.bilibili.com/180599937/channel/series))
> 以上过程可以不分先后顺序,要逐渐去了解项目中“这是什么”、“有什么用”、“怎么这样设计”..... 人工智能的项目本质上比软件设计内容要简单,就是计算加上编程
花费时长:2~3天
目标:从逆向了解技术特点,目的不在多少,在于你要有所了解
参考实训项目源码即可
---
### 02-着手从基础学习
+ python语法基础(0.5天 实际上不需要)
+ numpy基础 (0.5天 按照实训项目结构来讲,不需要掌握太多内容)
+ matplotlib 基础 (1天,虽然跟echarts一样可以仿照官网example 但不建议学习官网写法,主要是代码太难,感兴趣可以去了解scatter 、plot_surface 两个API )
> 理论上我们掌握前面的三个内容后,1、可以构建各种函数方程,并且将他们以各种方式绘制出来 2、建议去自己绘制 y = wx + b 或者 y = ax^2 + bx + c 等等不同的函数图加深印象 3、灵活使用动态图表功能(原因: 后续内容需要动态展示变化过程,我个人觉得这也是咱就业课程的核心精品内容体现。)
花费时长:2~3天
目标:了解函数构建、绘制图表、绘制多维图表、绘制动态图表
可以去官网API了解
[NumPy](https://www.numpy.org.cn/)
[Our Documentation | Python.org](https://www.python.org/doc/)
matplotlib可以去看官网,简单点看这个:
[matplotlib.pyplot的使用总结大全(入门加进阶) (zhihu.com)](https://www.zhihu.com/tardis/bd/art/139052035?source_id=1001)
---
### 03-opencv内容
我得强调一点,opencv兼具了本次实训的重要职责:
1. 简单学习使用opencv的图像处理、图形变换等方式加工图像
2. 利用opencv方式实现一些简单的智能识别方法,比如图形识别
(往远了说,这就是人工智能的雏形,往大了说这是图形学的重要应用,是一门科学)
3. opencv的基本使用方式最终完成车道检测项目
4. (如果需要上车牌识别)opencv可以辅助深度学习的车牌识别完成图像变换等任务
着手学习目标:
+ 图层(RGB三通道理解)(0.5天)
+ 图像处理(灰度、平滑(模糊)、分割(阈值化))(0.5天)
+ 轮廓检测 (0.5天),项目图形检测(0.5天)
+ 直方图理解 (0.5天 实际要不到)
+ 几何变换 (1.5天,需要自己不断去尝试 平移、旋转、缩放、仿射变换)
> opencv内容重在理解,代码完成基本功能,后续在项目中复制是可行的,人工智能项目的内容是看着多,实际上上得很快,基本没有过多API的使用,全凭逻辑能力。
>
> (比如:丽江文旅学院的学生底子很差的情况下,依旧学得很快.... 其实代码根本就算不了什么)
花费时长: 4 ~ 4.5 天 (不宜花时间去研究其他API)
目标:图形识别项目、仿射变换的项目
上述内容均来自《Opencv4.5 计算机视觉开发实战 基于Python》这本书,想要看可以找我拿这本书。目前没有在线PDF
---
### 04-opencv实现车道检测
实训时间在10天以内的情况下,可以选择该项目作为最终项目,领导有询问,则说明该项目是图像检测与处理的重要方式,人工智能框架只是辅助
+ 车道提取(图层、灰度、模糊、分割 前面的内容) (1天)
+ 仿射变换 (0.5 天)(多设置几组参数去感受实验的变化)
+ 直方图与左右车道线 (1天)(读懂代码)
+ 车道线拟合(多项式拟合要知道是 y = ax^2 + bx + c ;根据xy求a,b,c)(1天)
+ 实时车道线检测(加载MP4、实时检测)(1天)
+ 曲率计算(可选)
> 项目的目的是使用opencv工具,完成图像识别与检测,就像一场科学验证游戏,循序渐进就好
花费时长:4.5 天
目标:读懂项目,再一步步去实现
参考视频(有的视频中用了霍夫直线变换,这是一种方式):[从车道线检测项目入门OpenCV_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1qk4y1r7jw/?spm_id_from=333.337.search-card.all.click&vd_source=08755ce6fff7759ed2a988999bbd0dcc)
---
### 05-opencv-人脸识别
如果车道线识别项目结束后,还有2-3天左右的时间,非常适合讲这个项目,该项目仅仅在使用API,唯一多的功能就是开启摄像头
+ 检测人脸
+ opencv绘图
+ 摄像头
+ 训练人脸数据
+ 加载训练集识别人脸
花费时长:2天
目标:识别人脸,该项目API单词不好记情况下,请写一个文档
参考:这个项目已经是19年的项目了,找不到合适的参考视频。(需要使用haarcascades这里面的人脸识别库)
---
### 06-机器学习
什么,学校领导说,上面的项目不够高级,那我们就上机器学习,实训方案可以的组合有很多: 基础 + opencv + opencv识别; 基础+机器学习 + 深度神经网络+ 车牌识别;....
+ 散点图与预测线 ([02-着手从基础学习]())(0.5 天)
+ 调整预测线方式(核心内容是改变预测直线斜率)(0.5 天)
(这里涉及到方差与w之间的链式求导,如果不懂可以问我和陆老师)
+ 前向传播与反向传播 (其实就是上一步的内容,讲清楚什么是损失函数、优化器、学习率、梯度下降....这些名词)(0.5 天)
+ 不规则散点图(0.5 天,问题难度变大,不再是上述一条直线可以解决)
+ 激活函数sigmoid (1天,本质将生成y的函数换个函数,这就是激活函数)
+ 动态显示(0.5天)
花费时长:3.5天
目标:预测散点图,是人工智能的雏形(有人叫感知机、决策树),也是后面神经网络的一个神经元单元。很重要的理论
参考:《动手学习深度学习-李沐 这本书里面有讲到这部分,但我建议大家自己可以看看集团韩老师的视频。
```textile
8.16上午直播链接:http://live.vhall.com/658466182 密码:HQYJ899
8.16下午直播链接:http://live.vhall.com/869852554 密码:HQYJ899
8.17上午直播链接:http://live.vhall.com/891086510 密码:HQYJ899
8.17下午直播链接:http://live.vhall.com/574645584 密码:HQYJ899
8.18上午直播链接:http://live.vhall.com/456276631 密码:HQYJ899
8.18下午直播链接: http://live.vhall.com/722985221 密码:HQYJ899
```
---
### 07-tensorflow
tensorflow基本API的使用
+ 张量
+ numpy与张量转化
+ 张量运算
+ 自动求导与切线(这一步很重要,前面机器学习是我们自己求导,现在可以自动求导了)
花费时长: 1.5天
目标:学习tensorflow的一些基础内容
参考:[关于TensorFlow | TensorFlow中文官网 (google.cn)](https://tensorflow.google.cn/?hl=zh-cn)
---
### 08-神经网络
实际上就是在用新的API复刻并演示机器学习的内容
+ 决策树与神经网络(学习构建tensorflow的神经网络)
+ 多元线性回归 (多个特征进行预测,而不再是一个平面,项目中有,x,y,z)
+ 分类问题 (利用softmax与交叉熵,可以通过概率分类)
(建议去学习softmax线性回归,在《动手学习深度学习》中有讲)
+ 圆形散点与预测(学生作业)
+ 卷积神经网络 (前面预测数值,现在开始搞图像分类了。)
(参考:[【什么是CNN?】浙大大佬教你怎么卷CNN,卷积神经网络CNN从入门到实战,通俗易懂草履虫听了都点头(人工智能、深度学习、机器学习、计算机视觉)_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1zF411V7xu/?spm_id_from=333.337.search-card.all.click&vd_source=08755ce6fff7759ed2a988999bbd0dcc))(2天~3天)
+ 使用经典神经网络(同上,但直接复制我的AlexNet与ResNet代码即可,不需要手写,很麻烦)
花费时长:4天-5天
目标:深度神经网络的学习与使用,意在说明更简单的使用方式,该阶段的核心代码是数字识别。
---
### 09-tkinter 界面编程
+ 简易界面程序
+ 组件与布局
+ 按钮与点击事件
+ 打包exe
花费时长:1天 (内容不多)
目标:写界面,打包界面
参考:[python开发GUI-----tkinter详细教程 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/569960987)
这里作业布置最好把`车牌识别项目`的界面交给学生做,时间又是一个下午
---
### 10-车牌识别项目开发
基本上上到这里是十五天绰绰有余的
+ 界面(在上一章,他们已经做好)
+ 车牌检测 (反卷积unet.h5 实际上是只显示车牌部分区域的卷积网络,执行它之后,其实就相当于PS抠图,后面就是opencv内容和轮廓检测)
+ 从本地加载图片文件(tkinter补充内容)
+ 获取车牌区域(找到车牌的四个角的点,并划线,标注车牌区域,这里是一个数学+opencv内容)
+ 车牌变换(opencv仿射变换)
+ 识别车牌(cnn.h5 是一个卷积,可以识别车牌中的每个数字,注意返回是一个对象)
+ 车牌识别系统(把上述代码进行组装,并打包)
花费时长:2~3天
完成大项目之前的每个分项目即可,最后组装项目,相同代码部分最好复制,以免重复编写,项目打包后,记着和两个.h5文件一起。不要分开
参考:没得参考,github上一个开源项目,没有任何说明。
---