边缘计算与智能视觉应用
5.1FSRCNN图像超分辨率重建模型
延时符
FSRCNN模型架构详解
FSRCNN模型架构详解
这一层通过使用1×1卷积核来减少特征图的维度,从而减少计算量和模型参数。这一步使得模型更加高效,同时保留了重要的特征信息。
2、收缩层
通过反卷积(或上采样)操作,将处理后的特征图从低分辨率放大到高分辨率。这一步是FSRCNN与传统超分辨率方法的主要区别之一,它直接在低分辨率空间进行处理,然后通过反卷积实现图像的放大。
5、反卷积层
使用1×1卷积核将特征图的维度恢复到原始大小。这一步确保了模型在保持高效性的同时,能够生成高质量的图像特征。
4、扩展层
包含若干个卷积层和激活函数,负责将低分辨率特征映射到高分辨率特征空间。这一层通过多个卷积操作和非线性激活函数的组合,增强了模型的表达能力。
3、非线性映射层
该层由若干个卷积层组成,负责从低分辨率图像中提取特征。通过使用小卷积核(例如3×3),可以高效地捕捉图像中的局部特征。
1、特征提取层
加载预训练模型的权重和优化器状态。
6、加载预训练模型(如果有)
FSRCNN模型实现
FSRCNN模型架构详解
配置第一层和最后一层卷积的核大小、中间层卷积的核大小、中间层通道数以及残差模块数量。
2、模型参数设置
初始化FSRCNN模型和优化器,将模型迁移到设备上,并定义损失函数(MSE)。
5、初始化
检测是否支持GPU,设置训练设备,并配置CUDA加速。
4、设备参数设置
设置预训练模型路径、批大小、轮数起始位置、迭代轮数、工作线程数和学习率。
3、学习参数设置
定义数据存放路径、裁剪尺寸、放大比例和CPU核心数。
1、数据集参数设置
FSRCNN模型架构详解
7
8
9
7、数据加载
使用定制化的DataLoader加载训练数据集,进行裁剪和归一化处理。
8、训练过程
(1)逐轮训练模型。
(2)每轮训练包括:设置模型为训练模式;初始化损失统计器;按批处理数据,将低分辨率和高分辨率图像移至设备;前向传播计算生成的高分辨率图像;计算损失并进行后向传播;更新模型参数;记录和监控损失值以及图像变化;
9、保存和监控
(1)每轮训练结束后,保存模型的权重和优化器状态。
(2)监控损失值变化和生成图像,通过TensorBoard进行可视化。
(3)训练结束后关闭监控。
FSRCNN模型训练环境要求
FSRCNN模型训练环境要求
FSRCNN模型训练
1、创建新项目
打开PyCharm,点击FileNewProject。
选择项目位置,确保选择使用现有的Conda环境,点击Create
FSRCNN模型训练
2、导入项目文件
将FSRCNN模型相关的代码文件(如models.py、datasets.py、utils.py)复制到项目文件中。
FSRCNN模型训练
3、运行数据集生成和训练代码
打开create_data_lists.py,在代码处右击选择“RUN…”,会再次弹出环境配置窗口
FSRCNN模型训练
4、安装必要的库
确保在终端(PyCharm集成终端或系统终端)激活项目的虚拟环境,如果运行过程弹出如下错误:
ModuleNotFoundError:NomodulenamedtensorboardX
则先激活环境,指令如下:
sourceactivatemyenv
安装所需的Python库,安装指令如下:
pipinstalltensorboardX-i/simple/
FSRCNN模型训练
5、编辑训练脚本
在train.py文件中,根据实际情况编辑数据集路径、模型参数等。调试正确后,训练
FSRCNN模型训练
模型在边缘设备上的部署
模型在边缘设备上的部署
2、推理代码
说明
3、测试部署
效果
1、保存训练好
的模型
确保训练过程中保存的模型权重(checkpoint_FSRCNN.pth)可以在边缘设备上部署时使用。模型保存代码在train.py的torch.save部分已经包含。
打开推理脚本test.py,加载保存的模型并在边缘设备上进行图像超分辨率处理:
运行test.py,在results文件夹下会生成两个图像文件,test_bicubic是普通插值放大4倍的图片,test-lin是超分辨率放大4倍的图片,打开两张图分别对比放大的效果。
谢谢观看
Thankyouforwatching