matlab2019b 深度学习_Matlab 2019b 数据标注问题、工具与自动标注

从影像中自动提取目标,并进行稳定跟踪,是自动驾驶感知系统的重要目标。本技术博文,介绍了基于卷积神经网络技术(CNN)的图像目标识别的全过程,包括:l FasterCNN中影响标注的数据格式

l imageLabeler的结果,非所愿

l Matlab影像标注工具

l 自动化Image标注

FasterCNN中影响标注的数据格式

FasterCNN是卷积神经网络进行detector学习的一种模型。它支持的ground truth data数据格式,请参考:《自动驾驶中的移动目标识别与跟踪(含代码)》(from《自动驾驶工程技术》)若谷:Matlab深度学习----自动驾驶中的移动目标识别与跟踪(含代码)​zhuanlan.zhihu.com

data = load('vehicleDatasetGroundTruth.mat') %

vehicleDataset = data.vehicleDataset; % vehicleDataset数据结构是表格table,两列:图片路径、BBox

size(vehicleDataset)

LLL22 = vehicleDataset(1,1) % Table 表格

kkkk = vehicleDataset.imageFilename % cell

im_cell = kkkk(1) % cell

FirstImage_data = imread(im_cell{1}) % 读取cell 中的内容

imshow(im_cell{1})

vehicleDataset.Properties

jjjj_cell = vehicleDataset.vehicle % cell

FirstImage_bbox = jjjj_cell{1} % 读取cell 中的内容

FirstImage = insertShape(FirstImage_data,'Rectangle',FirstImage_bbox ); % insertShape函数:根据bbox1的方框信息,插入I1 图像中,形成新的图像;

FirstImage = imresize(FirstImage,1); % imresize函数:把影像annotatedImage1放大1倍;

% pause (1);

set(gcf,'unit','normalized','position',[0.2,0.2,0.6,0.3])

imshow(FirstImage)

% print(['.\objectdetected_example\ObjectDetected-' num2str(iii)], '-dpng', '-r200');

saveas(gcf,strcat('FirstImage.png'));

imageLabeler的结果,非所愿

Matlab 2019b打开影像标注工具imageLabeler的方式很简单,在命令行输入imageLabeler,即可开始进行影像标注。如下图所示。

保存得到session模式的数据,格式是matlab支持的.mat格式。

打开session数据,可以看到session的许多属性。

gTruth0508_test.imageLabelingSession

ans =

Session - 属性:

ImageFilenames: {100×1 cell}

SelectedImageIdx: 1

IsChanged: 0

IsPixelLabelChanged: [100×1 logical]

FileName: 'D:\MatlabCoding\SemanticSegement\Object_Detection_Using_Faster_R_CNN_Deep_Learning\2020-04-28-09-40-10-bigboat-lable\imageLabelingSession0508.mat'

PixelLabelDataPath: []

TempDirectory: []

ROILabelSet: [1×1 vision.internal.labeler.ROILabelSet]

ROISublabelSet: [1×1 vision.internal.labeler.ROISublabelSet]

ROIAttributeSet: [1×1 vision.internal.labeler.ROIAttributeSet]

FrameLabelSet: [1×1 vision.internal.labeler.FrameLabelSet]

ROIAnnotations: [1×1 vision.internal.labeler.ROIAnnotationSet]

FrameAnnotations: [1×1 vision.internal.labeler.FrameAnnotationSet]

HasROILabels: 1

NumROILabels: 1

HasFrameLabels: 1

NumFrameLabels: 1

NumROISublabels: 0

NumAttributes: 0

事实上,在matlab 2019b中,这是一个软件自身的BUG,即从image labeler中导出gtruth data时,出现错误。Error using vision.internal.labeler.validation.checkLabelData (line 100)

Invalid entry in label data table for Rectangle labelType. Table entries for column 'boat' must be M-by-4 matrices of [x, y, width, height]. Please refer to groundTruth object.

通过Google搜索,发现有人遇到了同样的问题:

经过测试,这个链接提供的解决方法,至少是不适合Matlab 2019b的。

从Matlab imageLabeler中导出的标注数据,在进行分析之后,得到这样的结果.

在应该出现bbox的结构中,出现了不一样的东东.

这个问题,在下方的程序中,得到基本的解决。

validation.checkLabelData问题解决

问题的解决,其实很偶然。那就是,增加了场景标签。

如此,在保存后,就可以导出gtruth data了。

l Matlab影像标注工具

使用imageLabeler进行影像标注,折腾了好几天.今天终于有了结果.

下面,提供了一个工具, 把Matlab的imageLabeler工具,产生的数据标注结果, 转化成下图这种格式,便于调用.

%% Matlab_gTruth_refine

% 使用Matlab 的imageLabeler工具,进行数据标注,得到结果gTruth

% 根据gTruth0506数据,读取影像及其对应的bbox,并显示,以便验证gTruth数据的可靠性。

clear all;

clc

diary '.\path\output_0509_Test_gTruthdata_log.txt'

diary on;

colorCode = [0.6 0.8 0]

gTruth0508_test = load('gTruth0508_TEST2.mat');

% get path of image

kkk_boat_image = gTruth0508_test.gTruth.DataSource;

kkk_boat_image = kkk_boat_image.Source; % cell结构

size(kkk_boat_image)

% get bbox of image

kkk_boat_bbox = gTruth0508_test.gTruth.LabelData;

% table 格式

% boat boat0506

% {1×2 struct} true

% {1×2 struct} true

% {2×4 double} true

kkk_boat_bbox = kkk_boat_bbox.boat; %% cell 格式, 内容可以是2*4 矩阵,也可以是struct格式

% {1×2 struct}

% {1×2 struct}

% {2×4 double}

jjj = 0;

for iii = 1:10 % size(kkk_boat_image)

iii

% get path of image

imagePath = kkk_boat_image{iii} % 获取第一个

imagedataMatrix = imread(imagePath);

% get bbox

kkk_boat_bbox_typecheck = kkk_boat_bbox{iii}; %% cell 格式, 内容可以是2*4 矩阵,也可以是struct格式

if isa(kkk_boat_bbox_typecheck,'struct') % 当是 struct格式

[kkk_boat_bbox_single1,kkk_boat_bbox_single2] = kkk_boat_bbox_typecheck.Position %% 第一个bbox的区域

% kkk_boat{iii}.LabelUIDs

else % 当是 2*4 矩阵

jjj = jjj + 1

kkk_boat_bbox_single = kkk_boat_bbox{iii,1}

kkk_boat_bbox_single1 = kkk_boat_bbox_single(1,:)

kkk_boat_bbox_single2 = kkk_boat_bbox_single(2,:)

end

%% visualization of the image

figure

% imshow(imagePath)

FirstImage = insertShape(imagedataMatrix,'Rectangle',kkk_boat_bbox_single1,'LineWidth',3); % insertShape函数:根据bbox1的方框信息,插入I1 图像中,形成新的图像;

FirstImage = insertShape(FirstImage,'Rectangle',kkk_boat_bbox_single2,'LineWidth',3,'Color', 'r'); % insertShape函数:根据bbox1的方框信息,插入I1 图像中,形成新的图像;

imshow(FirstImage)

end

jjj

diary off;

l 自动化Image标注

l CNN训练结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

帕斯卡三角形html,04_帕斯卡三角形

# 用时0msclass Solution(object):def generate(self, numRows):""":type numRows: int:rtype: List[List[int]]"""# 第 n 行要用到 n-1 行的数据,应该是个动态规划吧# n [1 n-1[0]n-1[1] .... n-1[n-2]n-1[n-1]]if numRows 0:retu…

版本不见了_王者荣耀复古版本来袭?第四代主宰形象回归!可以给小兵加速

山河不足重,重在遇知已。好久不见,别来无恙来自小助理的文章推送~时值中秋,先祝大家中秋节快乐!王者荣耀的新版本即将上线,不知道大家还记不记得新版本将会上线很多新的东西,峡谷路线更改,鼓励同…

jxl读取html格式excel,基于Java+Selenium的WebUI自动化测试框架(十)-----读取Excel文件(JXL)...

packagewebui.xUtils;importjava.io.File;importorg.testng.Reporter;importjxl.Cell;importjxl.Sheet;importjxl.Workbook;public classExcelReadJXL {/***jxl读取Excel*指定文档路径及名称* 指定开始及结束行,开始及结束列*paramsheet_name 为sheet工作表名称&…

sqlserver垮库查询_SQLServer跨库查询--分布式查询

--用openrowset连接远程SQL或插入数据--如果只是临时访问,可以直接用openrowset--查询示例select * from openrowset(SQLOLEDB,sql服务器名;用户名;密码,数据库名.dbo.表名)在跨库查询时需要启用Ad Hoc Distributed Queries启用Ad Hoc Distributed Queries:exec sp_…

360产品演示代码 css3 html5,HTML5 CSS3代码的三维展示

CSS语言:CSSSCSS确定body {background-color: #ececec;}pre {white-space: pre-wrap;}#perspective {position: relative;width: 560px;height: 446px;margin: 80px auto 0;z-index: 1;user-select: none;cursor: default;transform-style: preserve-3d;}#perspecti…

js原生后代选择器_CSS 后代选择器

具体应用后代选择器的功能极其强大。有了它,可以使 HTML 中不可能实现的任务成为可能。假设有一个文档,其中有一个边栏,还有一个主区。边栏的背景为蓝色,主区的背景为白色,这两个区都包含链接列表。不能把所有链接都设…

计算机组装没步的组件,计算机组装教案.doc

计算机组装教案计算机基础—组装计算机襄城职高 崔红燕一、教案背景1、面向学生:■职业技术学校2、学科:计算机信息技术3、课时:2课时4、课前准备:①利用网络搜集计算机各部件的图片及组装视频。②准备计算机主机的各个实物部件(主…

冷藏温度范围_食品冷藏冷冻温度要求与管理规范

食品冷链物流中各类商品温度要求(一)1、冷却畜禽肉、冰鲜水产品、植脂奶油蛋糕、配餐、果汁、酸(冻结点以上——4℃);鲜鱼最佳冷藏温度为零下3度,可以贮存7-10天。温度在-1-0℃之间,鲜肉可保存5~7天。鲜虾贮存条件和贮存期&#x…

计算机英语audios啥意思,2020考研英语词汇:audio是什么意思

对于考生而言,考研英语5500词并不陌生,但如何有效的记忆这些词汇确实关键。你是一视同仁的从头背到尾吗?其实这些词是分三种类型的,分别是核心级词汇、拔高级词汇和基础级词汇,下面中公考研小编一起来看看各种词汇之间的区别及对…

工作中应用计算机,浅谈计算机在我国计工作中的应用与发展.doc

浅谈计算机在我国计工作中的应用与发展《计算机的过去现在与未来》课程论文浅谈计算机在我国会计工作中的 应用与发展姓名学号学院会计学院日期2010-10-30评分页项目权重实际分数选题是否适合有价值,是否符合课程要求20观点是否鲜明20论证是否合乎逻辑,是…

计算机主机接电视机,液晶电视机怎样才能连接电脑主机?

台式电脑连接高清液晶电视的安装、设置方法:1、电脑和电视机都要有HDMI的接口,如图所示:2、需要准备一条HDMI连接线;3、用HDMI连接线的一头插到电视机的HDMI接口;4、用HDMI连接线的另一头插到电脑上的HDMI接口&#xf…

vba转换为vbs的方法_vba代码改成vbs,该怎么解决(4)

当前位置:我的异常网 VB vba代码改成vbs,该怎么解决vba代码改成vbs,该怎么解决(4)www.myexceptions.net 网友分享于:2013-01-30 浏览:58次i_count i_count - 1ElseRows(i n 1).Insertinsert_count insert_count 1last_i…

计算机远程桌面自动关闭,windows10重启之后自动关闭远程桌面是怎么回事

首先,请大家打开Win 10系统桌面主页面,在桌面页面中点击开始菜单,在弹出的开始菜单中点击选择“设置”选项,进入Win10系统设置页面。在Win10系统设置页面中,点击选择“更新和安全”菜单选项,进入Win10系统更…

go 写入yaml_[Golang] 从零开始写Socket Server(4):将运行参数放入配置文件(XML/YAML)...

为了将我们写好的Server发布到服务器上,就要将我们的代码进行build打包,这样如果以后想要修改一些代码的话,需要重新给代码进行编译打包并上传到服务器上。显然,这么做过于繁琐。。。因此常见的做法都是将Server运行中可能会频繁变…

计算机网络考试目的是什么,计算机网络基本原理考试大纲 -、课程的性质及其设置的目的与要求.doc...

计算机网络基本原理考试大纲-、课程的性质及其设置的目的与要求(-) 课程的性质、地位与任务计算机网络基本原理是高等教育自学考试计算机网络专业(独立本科段)考试计划中的一门专业基础课。通过本课程的学习,使应考者能够在己有的计算机基础知…

jpa原生query_Spring Data JPA原生SQL查询

package com.test.cms.dao.repository;import org.springframework.stereotype.Repository;import javax.persistence.EntityManager;import javax.persistence.PersistenceContext;import javax.persistence.Query;import java.math.BigInteger;import java.util.*;/*** 构建复…

电子计算机空调,电子计算机机房空调的设计规范

电子计算机机房空调的设计规范人气:1条 电子计算机机房要求空调的房间宜集中布置;室内温、湿度要求相近的房间,宜相邻布置。2条 主机房不宜设采暖散热器。如设散热器必须采取严格的防漏措施。3条 电子计算机机房的风管及其它管道的保温和消声材料及其粘结…

依时利考勤机说明书_考勤机(依时利)产品手册

1※产品介绍一、消费机系列:产品型号:ER-691C产品类别:IC卡收费机功能简介:1、数码管和液晶双重显示,操作方便,显示直观;2、有定值、不定值、编号菜单等多种消费模式,方便消费操作3、最大消费限…

用计算机进行有理数除法时,有理数的乘除法怎么算?,什么是有理数的乘除法。越详细越好。...

一、教学目标知识与技能:①使学生在了解乘法的基础上,掌握有理数乘法法则并初步掌握有理数乘法法则的合理性。②会进行有理数乘法运算。③了解有理数的倒数定义,会求一个数的倒数。过程与方法:①经历探索有理数乘法法则&#xff0…

python从小到大的顺序输出_「小白专栏」Python中使用for循环,为什么输出结果不是按顺序?...

欢迎各位小哥哥小姐姐阅读本的文章,对大家学习有帮助,请点赞加关注哦!!!!!!!!!!您的点赞和关注将是我持续更新的动力呢.^v^有不懂的问题可以私聊我哦!前言如图,为什么输出的不是按Jen, Sarah, Phil, Edward的顺序呢?大家可以先想想为什么?思考…