YOLO V2与灰度FITS图像(告诉我它期待rgb)

4次浏览(最近30天)
瑞安Comeau"class=
瑞安Comeau 2020年3月20日
编辑: 王曾2020年10月14日
你好,
我试图训练一个YOLO v2网络使用适合的图像格式。我修改了'imageDatastore'函数来读取它们,而不是更传统的数据格式。
(表1)= read_write_fits (1,“path_to_dir /”);
traintbl = table1 (:,“VAR”);
imdsTrain = imageDatastore(table1{:,“imagefilename”},“ReadFcn”, @fitsreadTwo);
bldsTrain = boxLabelDatastore(traintbl);
trainData = combine(imdsTrain, bldsTrain);
“fitsreadTwo”由于我遇到的问题而出现。当我尝试使用“yoloyv2Layers”功能时,它告诉我,尽管我是灰度11位,但它期望[高度宽度3]图像。当我输入以下代码并尝试将[高度宽度1](灰度)yolov2layers函数告诉我它期望[高度宽度3]。它是如何实现它所期望的?为什么我不能修改它以获得正确的输入大小?我甚至尝试过交换网络的第一层,但这会产生编译错误。这里的任何帮助或一般指南将是壮观的。谢谢。
numAnchors = 7;
[anchorBoxes,~] = estimateAnchorBoxes(trainData,numAnchors);
featureextracactionnetwork = resnet50;
图层= [imageInputLayer([高度宽度1],“名字”“input_1”));
featureLayer =“activation_40_relu”
lgraph = layerGraph (featureExtractionNetwork);
inputSize = [height width 3];
lgraph_rl = replaceLayer(lgraph,“input_1”层);
numClasses = 1;
lgraph2 = yolov2Layers(inputSize,numClasses,anchorBoxes,lgraph_rl,featureLayer);
下面是我解决这个问题的方法:我用以下代码将灰度图像转换为rgb图像:
函数[图片]= fitsreadTwo(文件名)
这个脚本的目的是读取适合的图像并将其存储为RGB
即使它是灰色的。
形象= fitsread(文件名);
地图= hsv (8200);
形象= ind2rgb(图片、地图);

答案(1)

Srivardhan Gadila"class=
Srivardhan Gadila 2020年3月23日
编辑:Srivardhan Gadila 2020年3月27日
根据文件 yolov2layers ,输入参数 图象尺寸 应该指定为以下值之一:
  • 形式[二元向量]HW] -用于大小的灰度图像H——- - - - - -W
  • 形式的三元向量[HW3] -用于大小的RGB彩色图像H——- - - - - -W
除了上面的信息,yolov2layers的文档页面还说
yolov2Layers 使用预训练的神经网络作为基础网络,其中添加了创建YOLO v2对象检测网络所需的检测子网。给定一个基本网络, yolov2Layers 移除基础网络中特征层之后的所有层,并添加检测子网。检测子网络由一组串行连接的卷积层、ReLU层和批归一化层组成。在检测子网中增加YOLO v2转换层和YOLO v2输出层。如果指定名称-值对 “ReorgLayerSource” , YOLO v2网络将重组层的输出与特征层的输出连接起来。您可以参考在这里逐层创建自定义YOLO v2网络 创建YOLO v2对象检测网络
因此,为了使用网络进行灰度输入,预先训练好的网络(给yolov2layers函数)也应该接受灰度输入,即它的imageInputLayer必须有通道数为1。作为一种变通方法,可以使用 ColorPreprocessing 的属性 augmentedImageDatastore
4评论
王曾"class=
王曾 2020年10月14日
编辑:王曾 2020年10月14日
@ 瑞安Comeau 你能分享一下你是如何解决这个问题的吗?任何话都将不胜感激。非常感谢。

登录评论。

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!