欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > 数据集的简单制作和使用

数据集的简单制作和使用

2024/10/24 20:16:01 来源:https://blog.csdn.net/weixin_48524215/article/details/141193417  浏览:    关键词:数据集的简单制作和使用

数据集的简单制作和使用

参考资料:Labelme分割标注软件使用

使用labelme软件对数据集进行分割
每张图片获得一个json文件

我们看看其中一个文件,内容包含每个点在图片中的位置

我们可以自己写一个脚本(或使用别人的)将上述json转换为我们想要的json格式

JPEGImages中的内容
Visualization中的内容
JPEGImages中某张图
Visualization中某张图

我们来看看annotations.json中的具体内容
images部分包含图片的相对路径
annotations部分包含对应图片中各个物体的id、分割点坐标、bounding box坐标等

如何利用annotations.json文件从某张图片中提取出我们想要的信息?

(1)打开这个json文件

        with open(anno_json, 'r') as f:data = json.load(f)self.images = data["images"]self.annotations = data["annotations"]

(2)根据json文件中的各个字段锁定想要的信息
示例代码

# 根据下标获取图片 {...'file_name':'JPEGImages/.jpg,height:,width}
first_image = self.images[first_image_index]
# path/.../.jpg
tar_image_path = os.path.join(self.image_root, first_image["file_name"])
# [[[74,81,120],[],[]...[]]]
tar_image = cv2.imread(tar_image_path)
# images中id对应annotation中的image_id,根据 image_id 获取对应的 annotations
# 第一张图片中的第一个物体和第二个物体的分割信息[{'area':,'bbox':[..,..,..,..],'category_id':1,'id':30,'image_id':15,'segmentation:[[..,..,..]]},{同第一个}]
first_annotations = [ann for ann in self.annotations if ann["image_id"] == first_image["id"]]
# 第一张图片中第一个物体的分割信息{'area':,'bbox':[..,..,..,..],'category_id':1,'id':30,'image_id':15,'segmentation:[[..,..,..]]}
object_mask_ann = first_annotations[1]
# 获得分割点坐标 segmentation:[..,..,..]
segmentation = object_mask_ann["segmentation"][0]
# 获得bbox
target_object_bbox = object_mask_ann["bbox"]

经过处理得到自己想要的信息

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com