# 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上一个开源项目,没有任何说明。 ---