当前位置: 首页 > news >正文

网络营销推广怎么做网站怎么做关键词怎么优化

网络营销推广怎么做,网站怎么做关键词怎么优化,vs 2008网站做安装包,适合手机上做的兼职看了cityscape和NYUv2生成边界GT的代码后#xff0c;因为自己使用的是NYUv2数据集#xff0c;所以需要对自己的数据集进行处理。CASENet生成边界GT所使用的代码是MATLAB#xff0c;所以又重新看了一下MATLAB的代码#xff0c;并进行修改#xff0c;生成了自己的边界代码。…看了cityscape和NYUv2生成边界GT的代码后因为自己使用的是NYUv2数据集所以需要对自己的数据集进行处理。CASENet生成边界GT所使用的代码是MATLAB所以又重新看了一下MATLAB的代码并进行修改生成了自己的边界代码。 前提知识 1NYUv2有四十个类别0像素代表空1像素代表墙所以标签上共有41个像素在计算时候要忽略掉空像素。 2MATLAB生成的是.bin文件需要将.bin文件转化为.png文件一是方便网络读取二是对每一个通道都保存下来。 3unit8可以保存2的8次方共256个数字unit32可以保存2的32次方个数字unit64可以保存2的64次方个数字。 4自己的NYUv2数据集存放结构 MATLAB代码 function demo()clc; clear; close all;%% Parameters dataRoot ../data_orig; genDataRoot ../data_proc; %scaleSet [1]; numCls 40; % Number of defined semantic classes in SBD radius 2; % Defined search radius for label changes (related to edge thickness, default value of the CASENet CVPR paper) edge_type regular;%% Setup Parallel Pool numWorker 4; % Number of matlab workers for parallel computing matlabVer version(-release); if( str2double(matlabVer(1:4)) 2013 || (str2double(matlabVer(1:4)) 2013 strcmp(matlabVer(5), b)) )delete(gcp(nocreate));parpool(local, numWorker); elseif(matlabpool(size)0) %#ok*DPOOLmatlabpool closeendmatlabpool open 8 end%% Generate Preprocessed Dataset setList {train, test}; for setID 1:length(setList)setName setList{setID};%train% Create output directoriesif(strcmp(setName, train))%如果setname等于train% Train生成文件夹if(exist([genDataRoot /train/rgb], file)0)mkdir([genDataRoot /train/rgb]);%生成train/rgb文件夹endif(exist([genDataRoot /train/labels_40], file)0)mkdir([genDataRoot /train/labels_40]);%生成train/label文件夹endif(exist([genDataRoot /train/depth], file)0)mkdir([genDataRoot /train/depth]);%生成train/label文件夹endif(exist([genDataRoot /train/edge_labels_40], file)0)mkdir([genDataRoot /train/edge_labels_40]);%生成train/label文件夹endelse% Test (correspond to val set in the original SBD Dataset)if(exist([genDataRoot /test/rgb], file)0)mkdir([genDataRoot /test/rgb]);endif(exist([genDataRoot /test/labels_40], file)0)mkdir([genDataRoot /test/labels_40]);endif(exist([genDataRoot /test/depth], file)0)mkdir([genDataRoot /test/depth]);%生成train/label文件夹endif(exist([genDataRoot /test/edge_labels_40], file)0)mkdir([genDataRoot /test/edge_labels_40]);endendfidIn fopen([dataRoot / setName .txt]);%打开data_orig/train.txt返回等于或大于 3 的整数文件标识符,当setName为test时fileName fgetl(fidIn);%读取文件中的行并删除换行符,fileList cell(1,1);%创建一个元胞数组[]。countFile 0;while ischar(fileName)%确定输入是否为字符数组countFile countFile 1;%1/2...train文件有多少行countFile等于多少fileList{countFile} fileName;%向元胞中添加filename即第一张图片的name。fileName fgetl(fidIn);%data_orig/train.txt中第一行的名字,作为输出到while中endfclose(fidIn);% Compute boundaries and write labelsdisp([Computing setName set boundaries])parfor_progress(countFile);parfor idxFile 1:countFile%for idxFile 1:countFile %795fileName fileList{idxFile};%根据idxFile索引去文件list里面查找if(strcmp(setName, train))scaleSetRun 1;elsescaleSetRun 1;endfor idxScale 1:length(scaleSetRun)%scale scaleSetRun(idxScale);%取scaleSet第一个即1%img imread([dataRoot /img/ fileName .jpg]);%imgScale imresize(img, scale, bicubic);%变量的地方不能加。rgb imread([dataRoot / setName /rgb/ fileName .png]);depth imread([dataRoot / setName /depth/ fileName .png]);label imread([dataRoot / setName /labels_40/ fileName .png]);gt imread([dataRoot / setName /labels_40/ fileName .png]);%载入标签%seg gt.GTcls.Segmentation;%将mat文件转换为png文件,375X500%segScale imresize(seg, scale, nearest);segScale gt;[height, width, chn] size(segScale);%480x640x1assert(chn1, Incorrect label. Input label must have single channel.);labelEdge zeros(height, width, uint64);%563X750全0矩阵for idx_cls 1:numCls %1:40idxSeg segScale idx_cls;%将segScale中不等于idx_cls的全部设置为0。if(sum(idxSeg(:))~0)%将idxSeg全部展开为一维数组然后相加idxEdge seg2edge(idxSeg, radius, [], edge_type);labelEdge(idxEdge) labelEdge(idxEdge) 2^(idx_cls-1);endendif(strcmp(setName, train))% Write image file将train/rgb的图片写入到data_proc/train/imwrite(rgb, [genDataRoot /train/rgb/ fileName .png], png)% Write depth file将train/rgb的图片写入到data_proc/train/imwrite(depth,[genDataRoot /train/depth/ fileName .png], png)% Write label file将train/label的图片写入到data_proc/train/imwrite(label, [genDataRoot /train/labels_40/ fileName .png], png)% Write label file打开data_proc\label\train,将数据写入二进制文件fidLabel fopen([genDataRoot /train/edge_labels_40/ fileName .bin], w);fwrite(fidLabel, labelEdge, uint64); % Important! Transpose input matrix to become row major.fclose(fidLabel);else% Write image fileimwrite(rgb, [genDataRoot /test/rgb/ fileName .png], png)%imwrite将图像写入图形文件imwrite(depth,[genDataRoot /test/depth/ fileName .png], png)imwrite(label, [genDataRoot /test/labels_40/ fileName .png], png)% Write label filefidLabel fopen([genDataRoot /test/edge_labels_40/ fileName .bin], w);fwrite(fidLabel, labelEdge, uint64); % Important! Transpose input matrix to become row major.将数据写入二进制文件fclose(fidLabel);endendparfor_progress();endparfor_progress(0);% Write file lists%disp([Creating setName set file lists])%if(strcmp(setName, train))%fidListTrainAug fopen([genDataRoot /train_aug.txt], w);%fidListTrain fopen([genDataRoot /train.txt], w);%else%fidListTest fopen([genDataRoot /test.txt], w);%end%parfor_progress(countFile);%for idxFile 1:countFile%fileName fileList{idxFile};%if(strcmp(setName, train))%scaleSetRun 1;%scaleSet [0.5 0.75 1 1.25 1.5]%else%scaleSetRun 1;%end%for idxScale 1:length(scaleSetRun)%scale scaleSetRun(idxScale);%if(strcmp(setName, train))% Add to train_aug list%fprintf(fidListTrainAug, [/image/train/scale_ num2str(scale) / fileName .png ...%/label/train/scale_ num2str(scale) / fileName .bin\n]);%if(scale 1)% Add to train list%fprintf(fidListTrain, [ fileName ]);%end%else% Add to test list%fprintf(fidListTest, [/image/test/ fileName .png /label/test/ fileName .bin\n]);%end%end%parfor_progress();%end%parfor_progress(0);%if(strcmp(setName, train))%fclose(fidListTrainAug);%fclose(fidListTrain);%else%fclose(fidListTest);%end endend1首先指定所需要的参数dataRoot 是原始数据的地址genDataRoot 是生成的数据的地址。一共有40个类别因为后面循环的时候是从1开始40结束所以会忽略掉0像素因此numcls不需要设置为41接着是半径等于2和edge_type 这是生成边界所需要的参数和CASENet保持一致。 %% Parameters dataRoot ../data_orig; genDataRoot ../data_proc; %scaleSet [1]; numCls 40; % Number of defined semantic classes in SBD radius 2; % Defined search radius for label changes (related to edge thickness, default value of the CASENet CVPR paper) edge_type regular;2MATLAB初始化并行操作(新手)线程为4。注意如果使用并行处理的话无法进行单步调试所以在debug时候需要将并行计算注释掉。 %% Setup Parallel Pool numWorker 4; % Number of matlab workers for parallel computing matlabVer version(-release); if( str2double(matlabVer(1:4)) 2013 || (str2double(matlabVer(1:4)) 2013 strcmp(matlabVer(5), b)) )delete(gcp(nocreate));parpool(local, numWorker); elseif(matlabpool(size)0) %#ok*DPOOLmatlabpool closeendmatlabpool open 8 end3我们有两个set分别是train和test这个根据自己数据集修改就好了执行for循环首先取第一个setname‘train’。 setList {train, test}; for setID 1:length(setList)setName setList{setID};%train4生成输出文件夹首先strcmp函数比较setname这个字符串是否等于train如果不晓得函数的作用选中函数然后按F1即可。接着判断genDataRoot /train/rgb即D:\datasets\data_proc\train\rgb是否存在如果0的话那就是不存在通过mkdir生成D:\datasets\data_proc\train\rgb文件夹存放RGB。同理生成D:\datasets\data_proc\train\depth生成Depth生成D:\datasets\data_proc\train\label_40用于存放标签最后生成一个D:\datasets\data_proc\train\edge_labels_40用于存放生成的边界GT。给每一个图片找一个自己的归属。 for% Create output directoriesif(strcmp(setName, train))%如果setname等于train% Train生成文件夹if(exist([genDataRoot /train/rgb], file)0)mkdir([genDataRoot /train/rgb]);%生成train/rgb文件夹endif(exist([genDataRoot /train/labels_40], file)0)mkdir([genDataRoot /train/labels_40]);%生成train/label文件夹endif(exist([genDataRoot /train/depth], file)0)mkdir([genDataRoot /train/depth]);%生成train/label文件夹endif(exist([genDataRoot /train/edge_labels_40], file)0)mkdir([genDataRoot /train/edge_labels_40]);%生成train/label文件夹end5这里的else连接的是train中的for即下面是setnametest的代码通train一样生成四个文件夹。 else% Test (correspond to val set in the original SBD Dataset)if(exist([genDataRoot /test/rgb], file)0)mkdir([genDataRoot /test/rgb]);endif(exist([genDataRoot /test/labels_40], file)0)mkdir([genDataRoot /test/labels_40]);endif(exist([genDataRoot /test/depth], file)0)mkdir([genDataRoot /test/depth]);%生成train/label文件夹endif(exist([genDataRoot /test/edge_labels_40], file)0)mkdir([genDataRoot /test/edge_labels_40]);endend6假设我们现在setname还为true打开data_orig的train.txt文件里面存放的是所训练需要的数据文件名即索引。接着读取txt里面的数据作为文件名。train.txt里面的索引和RGBlabel_40depth都是一一对应的。 fidIn fopen([dataRoot / setName .txt]);%打开data_orig/train.txt返回等于或大于 3 的整数文件标识符,当setName为test时fileName fgetl(fidIn);%读取文件中的行并删除换行符,fileList cell(1,1);%创建一个元胞数组[]。countFile 0;while ischar(fileName)%确定输入是否为字符数组countFile countFile 1;%1/2...train文件有多少行countFile等于多少fileList{countFile} fileName;%向元胞中添加filename即第一张图片的name。fileName fgetl(fidIn);%data_orig/train.txt中第一行的名字,作为输出到while中endfclose(fidIn);然后创建一个元胞数组{}初始化一个计数器执行一个循环假设执行第一次countFile 1那么fileList{1} fileName,就是向元胞数组里面添加第一张图片的name。接着执行第二次循环不断的向元胞里面添加数组直至结束可以把元胞理解为python里面的字典乡里面添加键值对。执行结束后fileList里面就存放者全部的fileName 。 7在窗口中显示如何标识和进程表 disp([Computing setName set boundaries])parfor_progress(countFile);8并行执行for循环大大的运行减少时间。 8.1countFile就是7中的txt文件中读取了几行795行假设idxFile1则去 fileList元胞数组中取文件名即0003。因为SBD将原图进行了多个尺度的变换这里代码只更改了不需要多尺度idxScale 就为1。 8.2接着读取RGBdepthlabel判断一下gt的形状然后生成和gt大小一样的0矩阵。 8.3然后执行for循环假设idx_cls 1和gt进行一个逻辑运算将gt中等于1的全部设为1不等于1的地方去全部设为0. 可视化将全部像素拿出来和0003.png比较发现背景为1下面的阴影即桌子为0。 8.4idxSeg就是480x640大小的逻辑矩阵然后将idxSeg展平为1行所有值相加如果相加不等于0则进行边界提取。 注为什么全部像素要相加 因为只有相加不为0说明才有有效像素才能进行提边当一张图片假设0003中存在的几个类别相加才不为0如果不存在某个类别则idxSeg就全为0像素0003.png就没有这个类别就无法提边。 8.5将idxSeg等参数输入到seg2seg这个函数进行提边这里暂时不考虑函数内部如何写的把它看做一个包来调用它有空再细看。 8.6向labelEdge中添加idxEdge 然后再添加2^(idx_cls-1) 假设idx_cls9则2^(idx_cls-1)1024即labelEdge中就会存在1024像素至于为什么要这样写是为了将.bin文件转换文.png文件后面会进行解释这里相当于一个加密过程后面进行解密。将生成的labelEdge像素全部拿出来(显示不完全) 8.7接着将train中orig的图片写入到proc中test同理这里也可以用copyfilecityscape就是用的copyfile。同时将labelEdge写入到新建的文件夹edge_labels_40中以.bin格式存储。 parfor idxFile 1:countFile%for idxFile 1:countFile %795fileName fileList{idxFile};%根据idxFile索引去文件list里面查找if(strcmp(setName, train))scaleSetRun 1;elsescaleSetRun 1;endfor idxScale 1:length(scaleSetRun)%scale scaleSetRun(idxScale);%取scaleSet第一个即1%img imread([dataRoot /img/ fileName .jpg]);%imgScale imresize(img, scale, bicubic);%变量的地方不能加。rgb imread([dataRoot / setName /rgb/ fileName .png]);depth imread([dataRoot / setName /depth/ fileName .png]);label imread([dataRoot / setName /labels_40/ fileName .png]);gt imread([dataRoot / setName /labels_40/ fileName .png]);%载入标签%seg gt.GTcls.Segmentation;%将mat文件转换为png文件,375X500%segScale imresize(seg, scale, nearest);segScale gt;[height, width, chn] size(segScale);%480x640x1assert(chn1, Incorrect label. Input label must have single channel.);labelEdge zeros(height, width, uint64);%563X750全0矩阵for idx_cls 1:numCls %1:40idxSeg segScale idx_cls;%将segScale中不等于idx_cls的全部设置为0。if(sum(idxSeg(:))~0)%将idxSeg全部展开为一维数组然后相加idxEdge seg2edge(idxSeg, radius, [], edge_type);labelEdge(idxEdge) labelEdge(idxEdge) 2^(idx_cls-1);endendif(strcmp(setName, train))% Write image file将train/rgb的图片写入到data_proc/train/imwrite(rgb, [genDataRoot /train/rgb/ fileName .png], png)% Write depth file将train/rgb的图片写入到data_proc/train/imwrite(depth,[genDataRoot /train/depth/ fileName .png], png)% Write label file将train/label的图片写入到data_proc/train/imwrite(label, [genDataRoot /train/labels_40/ fileName .png], png)% Write label file打开data_proc\label\train,将数据写入二进制文件fidLabel fopen([genDataRoot /train/edge_labels_40/ fileName .bin], w);fwrite(fidLabel, labelEdge, uint64); % Important! Transpose input matrix to become row major.fclose(fidLabel);else% Write image fileimwrite(rgb, [genDataRoot /test/rgb/ fileName .png], png)%imwrite将图像写入图形文件imwrite(depth,[genDataRoot /test/depth/ fileName .png], png)imwrite(label, [genDataRoot /test/labels_40/ fileName .png], png)% Write label filefidLabel fopen([genDataRoot /test/edge_labels_40/ fileName .bin], w);fwrite(fidLabel, labelEdge, uint64); % Important! Transpose input matrix to become row major.将数据写入二进制文件fclose(fidLabel);endendparfor_progress();endparfor_progress(0);9:这样生成的文件夹如下
http://www.w-s-a.com/news/519203/

相关文章:

  • 建设网站经营范围自己给公司做网站
  • 河北省住房建设厅政务网站网络营销推广的岗位职责有哪些
  • 上海网站建设优化价格孝义做网站的公司
  • 哪个公司网站做的最好义乌 网站 制作
  • 百度站长工具综合查询wordpress 上传pdf
  • 旅游短租公寓网站建设深圳龙岗招聘网
  • 做海淘是在哪个网站网络查控系统设计方案
  • o2o网站建设代理商微信公众号开发文档
  • 网站设计课程总结关于网站备案的公告
  • 网站建设与运营意义到哪查找网站域名
  • 网站及单位网站建设情况眉县住房和城市建设局网站
  • 网站是否能够被恶意镜像wordpress占用
  • 经典设计网站网站等保测评怎么做
  • 重庆做网站公司贴吧廊坊公司快速建站
  • 海外贸易在什么网站做怎么排名到百度第一页
  • 线上注册公司是在哪个网站做高仿网站
  • 网站构架图网上推广平台哪个好
  • 公司网站首页图片素材vi设计的目的和意义
  • 网站的需求分析都有哪些内容济南营销型网站建设团队
  • 怎么选择优秀的网站建设公司生鲜网站开发
  • 如何编写网站建设销售的心得网站的权限管理怎么做
  • 网站业务员好做吗无忧网站优化
  • 网站随机代码网站建设费 账务处理
  • 商洛网站建设哪家好网站建设 织梦者
  • 怎么创建收费网站宁夏住房和城乡建设部网站
  • 怎么确认网站是什么语言做的用php和mysql做网站
  • 安徽做网站的公司有哪些星子网络公司
  • 肥西县重点工程建设管理局网站wordpress界面菜单怎么弄
  • 宁夏网站开发设计说明书wordpress主题背景图片
  • 同一个阿里云可以做两个网站吗织梦 帝国 学校网站