前言

mnn正常的输入为 (1,3,h,w),由于我的网络输入需要把多帧叠加到一起,例如叠加6帧到channel上,则输入应为(1,3*6,h,w)。mnn提供的数据预处理无法处理这种数据。

解决方法

话不多说,直接上代码

     std::queue<cv::Mat> cloneimgs(imgs);  // 6帧数据auto t_start_pre1 = std::chrono::high_resolution_clock::now();MNN::Tensor givenTensor(inTensor_, MNN::Tensor::CAFFE);  // 设定我们自己的输入张量auto inputData = givenTensor.host<float>(); // 指针for (int i=0;i<input_frame_;i++){cv::Mat preImage = cloneimgs.front();cloneimgs.pop();cv::resize(preImage,preImage,cv::Size(input_w_,input_h_));preImage.convertTo(preImage, CV_32FC3, 1 / 255.0);  // 数据预处理 img = img*scale + shiftstd::vector<cv::Mat> bgrChannels(3);cv::split(preImage, bgrChannels); // 分通道for (int j = 0; j < bgrChannels.size(); j++){   //HWC->CHW,注意opencv读取图片顺序为bgr,我网络输入也是bgr,所以通道顺序没变// 如果需要rgb,改变j,从2到0即可std::vector<float> data = std::vector<float>(bgrChannels[j].reshape(1, preImage.cols * preImage.rows));memcpy(inputData + i*input_w_*input_h_*3+j*input_w_*input_h_,&data[0],sizeof(float)*data.size());    }}inTensor_->copyFromHostTensor(&givenTensor); // 把数据给到inTensor_auto t_end_pre1 = std::chrono::high_resolution_clock::now();float total_pre1 = std::chrono::duration<float, std::milli>(t_end_pre1 - t_start_pre1).count();std::cout << "process data: " << total_pre1 << " ms." << std::endl;

MNN C++输入图片多通道相关推荐

  1. ML之SSIM:基于输入图片RGB的三维向量利用SSIM(结构相似性度量)算法进行判别

    ML之SSIM:基于输入图片RGB的三维向量利用SSIM(结构相似性度量)算法进行判别 目录 输出结果 代码实现 相关文章 ML之相似度计算:图像数据.字符串数据等计算相似度常用的十种方法简介.代码实 ...

  2. ML之Cosin:基于输入图片RGB均值化转为单向vector利用Cosin(余弦相似度)算法进行判别

    ML之Cosin:基于输入图片RGB均值化转为单向vector利用Cosin(余弦相似度)算法进行判别 目录 输出结果 代码实现 相关文章 ML之相似度计算:图像数据.字符串数据等计算相似度常用的十种 ...

  3. ML之Hash_HamMingDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用汉明距离算法进行判别

    ML之Hash_HamMingDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用汉明距离算法进行判别 目录 输出结果 代码实现 相关文章 ML之相似度计算: ...

  4. ML之Hash_EditDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用编辑距离算法进行判别

    ML之Hash_EditDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用编辑距离算法进行判别 目录 输出结果 代码实现 相关文章 ML之相似度计算:图像数 ...

  5. cifar10数据集测试有多少张图_pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)...

    首先这是VGG的结构图,VGG11则是红色框里的结构,共分五个block,如红框中的VGG11第一个block就是一个conv3-64卷积层: 一,写VGG代码时,首先定义一个 vgg_block(n ...

  6. 神经网络图用什么软件做,神经网络输入图片大小

    1.当输入输出均为图片时用什么样的神经网络比较合适 输入输出全为图片一般采用全卷积神经网络,不要包含全连接层. 谷歌人工智能写作项目:小发猫 2.卷积神经网络为什么适合图像处理? 神经网络的本质就在于 ...

  7. 为什么有全连接层的卷积网络输入图片尺寸需要固定的

    一句话: 全连接层的一个神经元对应一个输入. 换句话说, 全连接层要求固定的输入维度. 数学推导: 大家都知道, z=wx+b,全连接神经网络结构一旦固定,需要学习的参数w是固定的,例如 输入图像是 ...

  8. YOLOv3 代码详解(2) —— 数据处理 dataset.py解析:输入图片增强、制作模型的每层输出的标签

    前言: yolo系列的论文阅读 论文阅读 || 深度学习之目标检测 重磅出击YOLOv3 论文阅读 || 深度学习之目标检测yolov2 论文阅读 || 深度学习之目标检测yolov1   该篇讲解的 ...

  9. faster rcn固定输入图片尺寸(一)

    一.问题的产生 随着对于faster rcnn研究的深入,我们或许想要改变网络的整体结构,如将全连接层变为全卷积层来实验更好的分类方式,又或者会想要将多层的特征图进行融合或反卷积操作.但是如果只是修改 ...

最新文章

  1. 2022-2028年中国氢化丁晴橡胶行业市场研究及前瞻分析报告
  2. SpringBoot最最最常用的注解梳理
  3. 牛顿法求解非线性方程的根
  4. Win10如何远程连接Windows Server 2008,以及提示“您的凭证不工作”问题解决
  5. Python操作Zip文件
  6. Ubuntu19.04安装mysql8.0版本(亲测OK)
  7. skywalking告警相关配置
  8. boost.asio学习
  9. 可解释性:对神经网络中层特征复杂度的解释与拆分
  10. 想做视频号,先纠正一点
  11. 本地IDEA连接服务器的Redis报错处理
  12. Combo用户板中XG-PON资源利用率的提升方案
  13. 三菱fx5u modbus tcp fb块用法_FX5U强势来袭
  14. 图像识别流程学习总结
  15. centos7.9-kvm-ESXi相关操作
  16. PHP 递归函数的三种实现方式
  17. MBA-day19 如果p则q矛盾关系p 且非q
  18. 软件企业测试人员的角色与职责
  19. Demo_塔防(自动生成怪物,导航,炮塔攻击,怪物掉血死忙)
  20. 结合继承的思想,定义项目经理类Manager及程序员类Coder【行为:工作work】

热门文章

  1. Wiener Filtering
  2. js数据类型强制转换--转换为String
  3. 经典五大算法思想-------入门浅析
  4. jQuery 实现弹幕效果案例
  5. Zigbee网络架构
  6. qt windows ble低功耗蓝牙
  7. Linux基础入门 -用户与文件操作
  8. JS实现span标签显示年月日日期格式
  9. Unable to locate package net-tools 处理方法
  10. 一直都在用的rgba与hex颜色系统你了解过吗?