IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> LMC-Memory灰度图转RGB图踩坑指南 -> 正文阅读

[人工智能]LMC-Memory灰度图转RGB图踩坑指南

1.首先按照github上的issue,将model.py修改一下。

Line15:

nn.Conv2d(in_channels=args.img_channel, out_channels=64, kernel_size=(3, 3), stride=2, padding=1),

Line30:

nn.ConvTranspose2d(in_channels=64, out_channels=args.img_channel, kernel_size=(3, 3), stride=2, padding=1, output_padding=1))

Line100:

nn.Conv3d(3, 64, kernel_size=(3, 3, 3), padding=(1, 1, 1)),

(其实就是把输入输出的通道数修改一下)

2.修改之后会报通道数不匹配问题,于是修改读文件夹的py文件

一开始修改如下

但是仍然报通道数不匹配:

(报的类似错误,只是expected to have 3 channels, but got 1 channels instead,但是我非常确定我放进去的图像是三通道的,所以继续修改代码)

检查之后发现应该将imread读到的数组修改一下,修改代码如下:

Print出来的frame的shape是(3,128,128)

(这一步其实是有问题的,后面会介绍)

3.不会继续报通道不匹配问题了,但是新的问题出现

(忘记保存问题截图,大致意思是说channel数要么是1,要么是3,要么是4,这是最难的问题)

解决问题的关键就是数据格式,我的数据是[N, T, C, H, W](作者把数组扩到了五维,实际每一帧就是后面三个维度组成),但是一张正常的图片应该是[H, W, C],于是把test.py中需要输出的数据格式进行transpose,

short_data = short_data.transpose(dim0=2, dim1=3)  # 将(C,H,W)转为(H,W,C)
short_data = short_data.transpose(dim0=3, dim1=4)
out_pred = out_pred.transpose(dim0=2, dim1=3)
out_pred = out_pred.transpose(dim0=3, dim1=4)

(其实两行代码就可以替代,但是最开始没想到)

Imwrite函数也进行修改

cv2.imwrite(args.test_result_dir + '/video_' + str(video_i) + '_' + str(frame_start) + '/pred_' +
    str(frame_i + args.short_len).zfill(5) + '.jpg',out_pred[batch_i, frame_i, 0, :, :].cpu().numpy() * 255)

修改为:

cv2.imwrite(args.test_result_dir + '/video_' + str(video_i) + '_' + str(frame_start) + '/pred_' +
    str(frame_i + args.short_len).zfill(5) + '.jpg',out_pred[batch_i, frame_i, :, :, :].cpu().numpy() * 255)

修改完之后数据格式变为了[N, T, H, W, C],这样就是正常的格式,但是输出的图片很奇怪,虽然成功变为了三通道24位深度图片,但是得到的图片是乱的,得到的图如下:

4.猜测是dataloder的问题,重新定位到读数据集的代码

也就是(2)中的地方,猜测是reshape的问题,查询之后发现果然是reshape,reshape会把数据打乱再reshape,所以得到的图片是错误的,于是不用reshape,改为用transpose

frame = frame.transpose(2,0,1)

也是进行[C,H,W]转换为[H,W,C],但是transpose不会打乱,而是直接进行维度上的抓换。

再进行测试,发现输出的图是正常的。

The end.

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-26 22:09:34  更:2021-12-26 22:12:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 5:21:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码