KITTI提取gtbox并存为图片

2024-06-20 19:32
文章标签 提取 图片 并存 kitti gtbox

本文主要是介绍KITTI提取gtbox并存为图片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

做人车分类,需要数据集,所以把KITTI中标定好的gtbox提取出来做成自己的数据集,代码实现参考了faster rcnn的源码。


第一步,数据准备

之前因为使用faster rcnn 训练了kitti的数据,所以对原始数据集已经做过修改,目前的label格式如下:
这里写图片描述
其中,第一位为图片索引,接着为整张图中的box的数量,然后是第一类的数量,接着便是第一类的box坐标。如果这一类没有就写0。


第二步,实现gtbox的提取

function res = get_gtbox(path,img_list,img_gt) 
% 参数:path: 路径; img_list:KITTI_val_list.txt; img_gt:KITTI_gt_val.txt
% clc;
% clear;
% path = '/home/fucm/Python/Car/data';
% img_list = 'KITTI_val_list.txt';
% img_gt = 'KITTI_gt_val.txt';
classes = {'car','pedestrian','cyclist'};img_list_path= strcat(path,'/',img_list);
img_gt_path= strcat(path,'/',img_gt);
image_list=importdata(img_list_path);% 得到gt参数
fidin=fopen(img_gt_path);
ind=1;
while ~feof(fidin)                                      tline=fgetl(fidin); image_list_gt_data{ind}=str2num(tline(29:end));  % 得到gt标签ind=ind+1;
end
NUMBER = 0; %bbox总数
% 得到gt数值
for i=1:length(image_list) % 一共的图片 image_gt{i}.ids=image_list{i};%  image_gt{i}.total=image_list_gt_data{i}(1);% 每个图片在中bbox的数量ind=2;path=strcat('../data/',image_gt{i}.ids);  % 这里路径需要修改img=imread(path);
%     fprintf('i=%d,ids=%d:\n',i,image_gt{i}.ids);for j=1:length(classes) % 分不同的种类读出来if ~exist(strcat('../data/dataset_test/train/',classes{j},'/gt'))mkdir(strcat('../data/dataset_test/train/',classes{j},'/gt'))endimage_gt{i}.classes{j}=image_list_gt_data{i}(ind);    if image_gt{i}.classes{j}>0bbox_num =  image_gt{i}.classes{j};image_gt{i}.bb{j}=reshape(image_list_gt_data{i}(ind+1:ind+image_gt{i}.classes{j}*4),4,image_gt{i}.classes{j})'; % 得到bbox矩阵for k=1:bbox_numbb_target=image_gt{i}.bb{j}(k,:); % 这个是原始的bboxwrite_path=strcat('../data/dataset_test/train/',classes{j},'/gt','/',num2str(NUMBER+k),'.jpg'); %NUMBER是基准数fprintf('img-ids:%s:%d;%d;%d;%d\n',image_gt{i}.ids,fix(bb_target(1)),fix(bb_target(2)),fix(bb_target(3)),fix(bb_target(4)));imwrite(img(fix(bb_target(2))+1:fix(bb_target(4)),fix(bb_target(1))+1:fix(bb_target(3)),:),write_path,'jpg');endelseimage_gt{i}.bb{j}=[];endNUMBER = NUMBER +  image_gt{i}.classes{j}; % 加上这个循环的class(j)数量ind=ind+4*image_gt{i}.classes{j}+1; % 得到第二类索引end
end
fprintf('total:%d:\n',NUMBER);
fprintf('\n~~~~~~~~~~~~~~~~~~~~\n');

这里需要特别注意的是matlab的下标索引是1开始的,所以我才会在下面这句话中每个都加1,主要是在原始的数据中会有坐标为0的点,这样就会报错。

imwrite(img(fix(bb_target(2))+1:fix(bb_target(4)),fix(bb_target(1))+1:fix(bb_target(3)),:),write_path,'jpg');

原文地址:http://blog.csdn.net/u011956147/article/details/53239325

这篇关于KITTI提取gtbox并存为图片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1079048

相关文章

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

使用Python实现无损放大图片功能

《使用Python实现无损放大图片功能》本文介绍了如何使用Python的Pillow库进行无损图片放大,区分了JPEG和PNG格式在放大过程中的特点,并给出了示例代码,JPEG格式可能受压缩影响,需先... 目录一、什么是无损放大?二、实现方法步骤1:读取图片步骤2:无损放大图片步骤3:保存图片三、示php

Python 字符串裁切与提取全面且实用的解决方案

《Python字符串裁切与提取全面且实用的解决方案》本文梳理了Python字符串处理方法,涵盖基础切片、split/partition分割、正则匹配及结构化数据解析(如BeautifulSoup、j... 目录python 字符串裁切与提取的完整指南 基础切片方法1. 使用切片操作符[start:end]2

使用Python提取PDF大纲(书签)的完整指南

《使用Python提取PDF大纲(书签)的完整指南》PDF大纲(Outline)​​是PDF文档中的导航结构,通常显示在阅读器的侧边栏中,方便用户快速跳转到文档的不同部分,大纲通常以层级结构组织,包含... 目录一、PDF大纲简介二、准备工作所需工具常见安装问题三、代码实现完整代码核心功能解析四、使用效果控

Linux从文件中提取特定内容的实用技巧分享

《Linux从文件中提取特定内容的实用技巧分享》在日常数据处理和配置文件管理中,我们经常需要从大型文件中提取特定内容,本文介绍的提取特定行技术正是这些高级操作的基础,以提取含有1的简单需求为例,我们可... 目录引言1、方法一:使用 grep 命令1.1 grep 命令基础1.2 命令详解1.3 高级用法2