LableImage在安装时,总会出现各种各样的错误,小编另辟蹊径的选择了强大的Matlab库。
关于目标区域标记,前文已经讲过。
Matlab标记后的数据如下所示:
标记方法介绍见:
机器学习之Matlab制作自己的数据集
在文章中,小编轻描淡写地说,按照自己的喜好保存到CSV,后来自己在操作时候,遇到各种各样的问题,所以呢,调试好的不妨跟大家分享一下,少走一些弯路。
%把结构体中的数据写到CSV
filename='result.csv';%.csv可以更改为.txt等;路径也可自己修改
fid=fopen(filename,'w');
numofpic=length(positiveInstances)%标记图像的个数
class=0;%类别,每次只能标记一个类别,所以是半自动化
count=0;%计数,区别第一行
for i=1:numofpic
rectPosition=positiveInstances(i).objectBoundingBoxes;
siz=size(rectPosition,1);%每张图像上ROI的个数
path=positiveInstances(i).imageFilename;
img=imread(path);
width_pic=size(img,2);%图像宽高信息
height_pic=size(img,1);
for j=1: siz
if count==0
fprintf(fid,'%s ,%s ,%s,%s,%s ,%s ,%s ,%s\n','file','class','width','height','x1','y1','x2','y2');% ','是分隔符
end
x0=rectPosition(j,1);%矩形的四个数据
y0=rectPosition(j,2);
width=rectPosition(j,3);
height=rectPosition(j,4);
count=count+1;
fprintf(fid,'%s ,%d ,%d,%d,%d ,%d ,%d ,%d\n',path,class,width_pic,height_pic,x0,y0,width,height);% ','是分隔符
end
end
经过这样的操作,基本可以得到CSV文件,不过,因为这个是自写的,**暂时只能每次标记一种目标,**不过也挺好使的了吧。
保存后的CSV中,图像是绝对路径,需要改为相对的,批量修改见
tensorflow数据集处理:CSV中绝对路径转相对路径(C++写)