厦门做网站seo的,十大免费ppt网站在线,商丘网站建设和制作,网站建设培训 ppt从影像中自动提取目标#xff0c;并进行稳定跟踪#xff0c;是自动驾驶感知系统的重要目标。本技术博文#xff0c;介绍了基于卷积神经网络技术(CNN)的图像目标识别的全过程#xff0c;包括#xff1a;l FasterCNN中影响标注的数据格式l imageLabeler的结果#xff0c;非…从影像中自动提取目标并进行稳定跟踪是自动驾驶感知系统的重要目标。本技术博文介绍了基于卷积神经网络技术(CNN)的图像目标识别的全过程包括l FasterCNN中影响标注的数据格式l imageLabeler的结果非所愿l Matlab影像标注工具l 自动化Image标注FasterCNN中影响标注的数据格式FasterCNN是卷积神经网络进行detector学习的一种模型。它支持的ground truth data数据格式请参考《自动驾驶中的移动目标识别与跟踪(含代码)》(from《自动驾驶工程技术》)若谷Matlab深度学习----自动驾驶中的移动目标识别与跟踪(含代码)zhuanlan.zhihu.comdata load(vehicleDatasetGroundTruth.mat) %vehicleDataset data.vehicleDataset; % vehicleDataset数据结构是表格table,两列图片路径、BBoxsize(vehicleDataset)LLL22 vehicleDataset(1,1) % Table 表格kkkk vehicleDataset.imageFilename % cellim_cell kkkk(1) % cellFirstImage_data imread(im_cell{1}) % 读取cell 中的内容imshow(im_cell{1})vehicleDataset.Propertiesjjjj_cell vehicleDataset.vehicle % cellFirstImage_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.imageLabelingSessionans Session - 属性:ImageFilenames: {100×1 cell}SelectedImageIdx: 1IsChanged: 0IsPixelLabelChanged: [100×1 logical]FileName: D:\MatlabCoding\SemanticSegement\Object_Detection_Using_Faster_R_CNN_Deep_Learning\2020-04-28-09-40-10-bigboat-lable\imageLabelingSession0508.matPixelLabelDataPath: []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: 1NumROILabels: 1HasFrameLabels: 1NumFrameLabels: 1NumROISublabels: 0NumAttributes: 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;clcdiary .\path\output_0509_Test_gTruthdata_log.txtdiary on;colorCode [0.6 0.8 0]gTruth0508_test load(gTruth0508_TEST2.mat);% get path of imagekkk_boat_image gTruth0508_test.gTruth.DataSource;kkk_boat_image kkk_boat_image.Source; % cell结构size(kkk_boat_image)% get bbox of imagekkk_boat_bbox gTruth0508_test.gTruth.LabelData;% table 格式% boat boat0506% {1×2 struct} true% {1×2 struct} true% {2×4 double} truekkk_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 imageimagePath kkk_boat_image{iii} % 获取第一个imagedataMatrix imread(imagePath);% get bboxkkk_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}.LabelUIDselse % 当是 2*4 矩阵jjj jjj 1kkk_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 imagefigure% 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)endjjjdiary off;l 自动化Image标注l CNN训练结果