取经人在开始

辗转反侧很久,又是重新再来。

一旦坏习惯的开始,就需要花很长时间慢慢的修正。—警言

总结:

1.集创赛:在集创赛中,自己做的是图像部分。

在摄像头部分中,卡了半天。这由于正点原子官方中,他们家自己的摄像头是带有晶振,对于我们自己使用的摄像头,是需要我们FPGA给他输入一个晶振。
在图像处理部分,一开始我们就需要分两帧图像做差,但是如何将两帧图像存储呢,于是在阅读一些代码后发现,我们可以关掉sdram乒乓操作后,就可以在一个bank的中存取,我们将高8位存入前一帧的灰度图像,低8位存入后一帧的灰度图像。这个高8位,和低8位的图像是利用dqm掩码,存入高8位的时候,低8位不存储。
以及对于FPGA,接了一堆传感器的时候,我们需要共地!!!
在答辩的时候,才发现我们自己的项目,没有体会出项目标题的思想,智慧农场,体现的是一个智慧,我们所做的项目,就将传感器的信息,采集到FPGA里后,就做了显示。没有传感器交互,联动。即就是没有做到传感器的融合。而且,在若贝杯的题目要求中,是有机械结构的要求的,我们的农场中机械结构只有步进电机组成的大棚卷帘。
以上大概就是我们出现的问题。

2.暑假期间:为了想要在FPGA实现神经 络,于是就选择学习pytorch,实现的一些分类任务。以及参加Xilinx的暑假学院

在一开始的配置环境就给我深深的上了一节课,一开始对于一个做硬件的同学,不能理解,装anconda的好,为了什么一个电脑里面可以有两个python(这里我自己到现在也不是很明白)。anconda在windows端有图型界面,让我自己对于anconda一开始的认知就是一个工具包,之后我在上面装了jupyter notebook。之后当我在anconda下创建一个虚拟环境,创建一个python3.6(一开始自己装了的anconda默认是3.8),之后再在3.6的环境开始装了pytorch,开始下载,过一会儿就断了,下载这一块,对于一个西安的普通学生太难了,最后看了评论的一些指引,我们可以换源!挂到了清华镜像源后,终于下载这些包,快了一些。不过还是不行,最后通过反复下载,才勉勉强强把环境准备好了。
终于我打出了那个恶魔的低语

通过这两行代码后,它返回了True
学习正式步入了开始。
如何加载数据集,将数据集分成训练集和测试集,卷积核的操作,以及池化,为了减少参数,得到更好描述对象的一些特征,之后就是损失函数,反向传播,优化器,对于我们每一次的训练,我们通过损失函数,计算出误差,通过反向传播,传给优化器,进行优化。学完这些了和一些函数。最后的全连接层,跑了一次完整的训练。对于深度学习才有一个简简单单的入门。
之后就是了解各个 络的结构。
刚开始入门的Lenet 络,通过学习认识到了,在每一次的卷积后有一次激活函数relu,以及全连接层的展平处理,以及梯度清零,没有梯度清零,我们还需要参考训练过的数据集,会导致batch_size(一次训练需要的图片多少)会很大,这就是梯度累加。
AlexNet 络:其中比刚开始的 络,他有一个随机失活函数,很好的解决了过拟合的问题。
VGG 络:我深深感受到了算法的强大,里面出现了一个叫做“感受野”的词,通过堆叠2个33的卷积核来代替55的卷积核,此操作降低了参数量
GoogLeNet:引入Inception的结构,融合不同尺度的特征信息,以及利用1*1的卷积核进行降维,进行映射处理,还有就是添加了两个辅助分类器帮助训练,丢弃全连接层,使用平均池化减少参数
ResNet:看到了这个 络,我震惊了,来自何凯明大神和一些大神的国人提出的一个超神的 络解决,当 络层数很深的时候,他会梯度消失或爆炸,以及退化问题。BN来解决梯度消失,退化问题是通过残差结构来解决,因为超深的 络结构,导致参数量的庞大。
MobileNet:因为ResNet超深的 络结构,导致参数量的庞大。我们无法把这么庞大 络结构放在FPGA中,于是我找到了Mobilenet 络,利用DW解决,卷积核的channel为1,每一个的卷积核个数,跟输入的特征矩阵channel保持一致。PW和DW配合使用。v2板本,之后又利用倒残差,减少参数
之后就是找到了一个利用Mobile做的人脸识别,在其中全连接层,引入Facenet,在 络结构输出了一个特征量,利用上传在数据库中的特征量,与输入进去人脸的 络的图像得出的特征量,进行比对。如果差值小于一定的范围,则就是人脸匹配成功。

Xilinx暑假学校。

在此次暑假学习,让我了解到了vitis-ai这个工具,我们利用此工具链,可以将其 络的模型放入进去,并在ultra96板子上布署。这次暑假学校认识各个厉害的人,他们的表达能力强,对其一些问题早已经有了很深的研究,提前准备好,而自己就是简简单单的早早了事,可能这就是实力的差距。
附上自己白嫖的鼠标垫:

取经人在开始

开学后

刚开始就便是对于ubuntu的环境配置,由于自己的操作失误,导致window被ubuntu系统覆盖,做了两个Ubuntu的系统,还一小心把学姐的U盘的数据整丢了,对此对那位学姐深感抱歉。通过学习Ubuntu的各种命令行的操作,touch,mkdir,创建用户,删除用户,ssh,进行对服务器的交换,超级用户权限使用。
之后又是对于软件安装的颠沛流离,一会那个要加个环境变量,一会那个要执行个命令。
在我的努力下,终于证明Ubuntu20.04不稳定。

前行的方向

在暑假的想出的静脉识别的项目,在之后找到常立博老师后,知道了,对于这些静脉,一些微小的细节识别,需要深层 络,但是由于板子的限制,我们只能使用10层左右的 络,参数量18M,很快我们的想法就落空。希望以后自己在这条路上可以把这个项目实现出来。
下午就是下载好vitis-ai,熟悉工具链,做一个好的学长。

心之所向,素履以往。

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树人工智能深度学习211764 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年8月14日
下一篇 2021年8月15日

相关推荐