基于zynq的cnn图像识别算法的优化与实现

信迈科技DSP+ARM+FPGA 信迈科技DSP+ARM+FPGA     2023-03-11     589

关键词:

卷积神经网络训练与硬件加速器实现 
图像识别系统的第二部分是 CNN 加速器,CNN 加速器的实现包含训练与推理两个阶段。
一是卷积神经网络训练,提取相应的权重值和偏置值,即训练阶段。二是根据网络模型实现
卷积神经网络,并做硬件加速,提升卷积神经网络运算的速率,即推理阶段。 
 卷积神经网络训练 
4.1.1 卷积神经网络模型搭建 
本文采用的 Flowers  Recognition 数据集由 4242 张花卉图片组成,共  5  个类别,分别是
雏菊、郁金香、玫瑰、向日葵和蒲公英,每一类大约包含 800 张图片,且每张图片的大小大
约为 320×240。但每张图片并没有缩放到统一的大小,具有的不同的比例。 
本文采用 VGG[9]网络为卷积神经网络模型,它是牛津大学的 Visual Geometry Group 组在
2014 年 ILSVRC 竞赛中提出的。其中 VGG-11 网络由 8 个卷积层、5 个池化层和 3 个全连接
层构成,输入 224×224×3 的图像数据,输出 1000 类物体分类的结果。针对 Flowers Recognition
数据集的特征分布特点,本文保持 VGG-11 网络卷积层和池化层的网络结构不变,调整全连
接层的网络结构,将最后三层的全连接层的输出通道数分别修改为 1024、128 和 5,得到如
图 4.1 所示的 VGG-11 网络结构。 

按照图 4.1 所示的网络结构搭建卷积神经网络,本文采用 PyTorch[17]神经网络框架实现。
PyTorch 神经网络框架提供在 ImageNet[57]数据集中预训练好的 VGG-11 网络模型,且 ImageNet
数据集中包含部分花卉图片,故采用迁移学习[58]的方式训练 VGG-11 网络。

4.1.2 参数提取 
CNN 网络训练完毕后,采用 PyTorch 神经网络框架将卷积神经网络模型及其参数保存在
pt 文件中。而 PyTorch 神经网络框架提供了 load 方法,可以很方便地读取文件中保存的参数,
但输出格式为张量,无法直接使用。故先转换为 Numpy[61]的数据格式,再提取其中的参数,
以固定的格式保存数据,按照如算法 4.1 所示的伪代码实现。

 如 CNN 网络中最后一层全连接层的权重的大小为 128×5,则 Numpy 保存的数据为 128
行 5 列的数组,shape(array)[0]、shape(array)[1]对应的数值分别为 128、5,array[i][j]则对应于
数组 array 中 i 行 j 列的元素,并在每一个元素后添加换行符。 
CNN 网络中所有层的偏置值和卷积层的权重值与全连接层的权重值的维度有所不同,可
按照类似的算法提取并保存参数。提取出来的数据,保存至 bin 文件中,再将 bin 文件拷贝到
SD 卡,从 SD 卡中读取相应的权重值和偏置值。 

 

数字图像处理课程设计基于非深度学习方法实现身份证定位与正反面识别

文章目录基于透视矫正与区域特征匹配的身份证图像定位与正反面识别摘要实现细节1.总体流程2.前景背景分割3.身份证角点定位4.透视变换5.模板匹配5.1基于区域颜色匹配的国徽检测5.2基于区域字符数统计的身份ID检测5.3基于排版... 查看详情

基于蜜蜂优化算法优化的卷积神经网络(cnn)图像分类

目录摘要:1.蜜蜂优化算法:2.卷积神经网络(CNN)3.求解结果:摘要:本文通过蜜蜂优化算法,优化了卷积神经网络(CNN)中的超参数,主要是网络的权重和偏差等关键参数,使CNN可以达到更加优... 查看详情

基于tensorflow+opencv实现cnn自定义图像分类

摘要:本篇文章主要通过Tensorflow+Opencv实现CNN自定义图像分类案例,它能解决我们现实论文或实践中的图像分类问题,并与机器学习的图像分类算法进行对比实验。本文分享自华为云社区《​​Tensorflow+Opencv实现CNN自定义图像分... 查看详情

基于国产银河飞腾多核dsp+fpga的图像识别硬件设计与算法实现

随着监测卫星的发展,如何快速对卫星图像中的目标物进行识别成为关键技术。为了实现星载关键器件的国产化,并为整个系统提供更高的性能和更好的实时性,本课题将以国防科技大学计算机学院自主研发的高性能... 查看详情

基于国产银河飞腾多核dsp+fpga的图像识别硬件设计与算法实现

随着监测卫星的发展,如何快速对卫星图像中的目标物进行识别成为关键技术。为了实现星载关键器件的国产化,并为整个系统提供更高的性能和更好的实时性,本课题将以国防科技大学计算机学院自主研发的高性能... 查看详情

图像识别基于卷积神经网络cnn实现车牌识别matlab源码(代码片段)

 过去几年,深度学习(Deeplearning)在解决诸如视觉识别(visualrecognition)、语音识别(speechrecognition)和自然语言处理(naturallanguageprocessing)等很多问题方面都表现出非常好的性能。在不同类型的深度神经网络当中,卷积... 查看详情

毕业设计题目:基于深度学习的动物识别-卷积神经网络机器视觉图像识别(代码片段)

...家介绍一个深度学习项目,采用了卷积神经网络技术基于深度学习的动物识别算法研究与实现1背景大家可以参考学长写的背景意义目前,由于计算机能力和相关理论的发展获得了重大突破,基于深度学习的图像检测... 查看详情

视频分类算法

...传统视频分类方法深度学习兴起前,大多数视频分类都是基于手工设计的特征和典型的机器学习方法。比如:基于局部时空域的运动信息和表现信息,利用词袋模型等方式审核才能视频编码,然后利用视频编码来训练分类器(SVM... 查看详情

基于tensorflow+opencv实现cnn自定义图像分类(代码片段)

摘要:本篇文章主要通过Tensorflow+Opencv实现CNN自定义图像分类案例,它能解决我们现实论文或实践中的图像分类问题,并与机器学习的图像分类算法进行对比实验。本文分享自华为云社区《Tensorflow+Opencv实现CNN自... 查看详情

1000个大数据/人工智能毕设选题推荐

...毕业设计题目选择方向。大数据/人工智能毕设选题:基于社交大数据的用户画像系统设计与实现基于TF-IDF和朴素贝叶斯方法的海量文本分类研究基于卷积神经网络的图像修复系统设计与实现智慧校园语音交互系统的设计与实... 查看详情

基于matlab编程的粒子群算法优化阈值分割,基于最大信息熵粒子群优化阈值分割

...分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程... 查看详情

图像识别基于卷积神经网络(cnn)实现垃圾分类matlab源码(代码片段)

一、一、垃圾分类如何通过垃圾分类管理,最大限度地实现垃圾资源利用,减少垃圾处置量,改善生存环境质量,是当前世界各国共同关注的迫切问题之一。根据国家制定的统一标准,现在生活垃圾被广泛分... 查看详情

图像识别基于卷积神经网络(cnn)实现垃圾分类matlab源码(代码片段)

一、一、垃圾分类如何通过垃圾分类管理,最大限度地实现垃圾资源利用,减少垃圾处置量,改善生存环境质量,是当前世界各国共同关注的迫切问题之一。根据国家制定的统一标准,现在生活垃圾被广泛分... 查看详情

深度学习核心技术精讲100篇(五十五)-基于opencv实现棋盘图像识别

本文我们将一起学习如何使用计算机视觉技术识别棋子及其在棋盘上的位置我们利用计算机视觉技术和卷积神经网络(CNN)为这个项目创建分类算法,并确定棋子在棋盘上的位置。最终的应用程序会保存整个图像并可视化的表现... 查看详情

从零开始搭建深度学习验证码识别模型(代码片段)

文章目录从零开始搭建深度学习验证码识别模型CNN模型与图像识别验证码数据集介绍生成数据集生成EasyCaptcha生成Kcaptcha搭建模型EasyNet模型KCapNet模型模型训练与参数选择优化方法与超参数数据集划分模型分析EasyNet算力计算KCap算... 查看详情

ai常用框架和工具丨13.pytorch实现基于cnn的手写数字识别

代码实例,PyTorch实现基于CNN的手写数字识别,希望对您有所帮助。文章目录环境说明一、模型训练1.1导入相关依赖1.2选择使用的硬件1.3超参数配置1.4准备训练集和测试集1.5模型创建1.6模型评估指标1.7模型训练1.8模型测试1.9模型... 查看详情

ai常用框架和工具丨13.pytorch实现基于cnn的手写数字识别

代码实例,PyTorch实现基于CNN的手写数字识别,希望对您有所帮助。文章目录环境说明一、模型训练1.1导入相关依赖1.2选择使用的硬件1.3超参数配置1.4准备训练集和测试集1.5模型创建1.6模型评估指标1.7模型训练1.8模型测试1.9模型... 查看详情

ai常用框架和工具丨13.pytorch实现基于cnn的手写数字识别

代码实例,PyTorch实现基于CNN的手写数字识别,希望对您有所帮助。文章目录环境说明一、模型训练1.1导入相关依赖1.2选择使用的硬件1.3超参数配置1.4准备训练集和测试集1.5模型创建1.6模型评估指标1.7模型训练1.8模型测试1.9模型... 查看详情