单通道灰度图像如何送入三通道输入的Faster-RCNN网络

针对Faster-RCNN等卷积网络图片输入通道数的问题,给出一种解决方法:

一般的卷积网络都是rgb三个通道,但这限制了单通道灰度图的检测,这里先给出一种比较笨拙但能解决问题的办法:强行给图片赋予三个通道出来:

clear;
clc;
close all;  
imagePath = '图片所在文件夹路径\';   
imageFiles = dir(imagePath); %%读取目录文件下的所有图片文件  
numFiles = length(imageFiles);%%获取图片的数量  
for i=3:numFiles   %%matlab 并行 其实和for一个用法               
    j = i-2;  
    disp(j); %%disp() 函数直接将内容输出在Matlab命令窗口中  
    imageFile = strcat(imagePath,imageFiles(i).name); %%strcat()函数经常出现在批量处理的时候,这个时候我们需要用到for循环,然后这个函数能够让变量和路径产生一些关系,这个时候我们就可以对其进行批量处理。
    A = imread(imageFile); %%读入图片  
    A3(:,:,1)=A; %%修改图片尺寸
    A3(:,:,2)=A;
    A3(:,:,3)=A;
    imwrite(A3,imageFile); %%保存图片 。           
end 

这样会发现修改后:

图片从256*256 uint8变成256*256*3 uint8

虽然三个通道都是一样的,没有颜色上的区别,送入网络中也只是提供了冗余信息。但是实际测试后发现并不会影响检测精度。姑且作为一种方法,虽略显笨拙,但是这种方法通用性好,无论你用MATLAB还是TensorFlow或者是caffe模型,都不用想着如何找到模型,打开模型,找到对应的语句来修改模型等一系列复杂问题。

 

 

 

 

 

你可能感兴趣的:(单通道灰度图像如何送入三通道输入的Faster-RCNN网络)