保存coco dataset注释为单一文件,并逐一显示所有图片的mask

2024-03-15 22:58

本文主要是介绍保存coco dataset注释为单一文件,并逐一显示所有图片的mask,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大意:

官方的例子只显示 一张图片,我需要逐一显示,并且官方的那个JSON文件太大了,我把注释文件分开存储,每张图片一个注释文件,另行保存在一个叫coco的文件夹中,

#
# windows version cocoapi
# https://github.com/philferriere/cocoapi
#
#
from pycocotools.coco import COCO
import numpy as np
import skimage.io as io
import json
import osimport matplotlib as mpl
mpl.use('TkAgg')
import pylab
import matplotlib.rcsetup as rcsetup
pylab.rcParams['figure.figsize'] = (8.0, 10.0)#dataDir='..'
#dataType='val2017'
#dataDir='F:/BigData/msCoco2014'
#dataType='val2014'dataDir='F:/BigData/msCoco2017'
dataType='val2017'
annFile='{}/annotations/instances_{}.json'.format(dataDir,dataType)# initialize COCO api for instance annotations
coco=COCO(annFile)# display COCO categories and supercategories
catIds = coco.getCatIds()
cats = coco.loadCats(catIds)
#print the names out
nms=[cat['name'] for cat in cats] 
print('COCO categories: \n{}\n'.format(' '.join(nms)))
#print the supercat out
nms = set([cat['supercategory'] for cat in cats])
print('COCO supercategories: \n{}'.format(' '.join(nms)))# recursively display all images and its masks
imgIds = coco.getImgIds()
for id in imgIds: annIds = coco.getAnnIds([id], catIds=catIds, iscrowd=None)anns = coco.loadAnns(annIds)imgIds = coco.getImgIds(imgIds = [id])img = coco.loadImgs(imgIds[0])[0]file_name_ext=img['file_name'](filename,extension) = os.path.splitext(file_name_ext)file_path = "coco/" + filename + ".json"data = {"annotations":anns}with open(file_path, 'w') as result_file:json.dump(data, result_file)I = io.imread('%s/%s/%s'%(dataDir,dataType,img['file_name']))mpl.pyplot.imshow(I)mpl.pyplot.axis('off')coco.showAnns(anns)

顺带再提一下coco数据集中各个参数的解释吧,一般的参数望文即可生义,只需要注意的是iscrowd,这个值为0 即表示polygon,注意,单个的对象(iscrowd=0)可能需要多个polygon来表示,比如某个对象在图像中被挡住了一部分。而iscrowd=1时,segmentation使用的就是RLE格式。

具体样式和解释参数官方文档:https://cocodataset.org/#format-data

如果是自己定义的数据集,采用coco数据格式的话,各个id到底有什么用也是需要注意的地方。

{"type": "instances","images": [{"file_name": "0.jpg","height": 600,"width": 800,"id": 0                    ----> image_id}],"categories": [{"supercategory": "none",   ----> supercategory can be anything"name": "date","id": 0                    ----> category_id},{"supercategory": "none","name": "hazelnut","id": 2},{"supercategory": "none","name": "fig","id": 1}],"annotations": [{"id": 1,                  ----> annotation id (each annotation has a unique id)"bbox": [100,116,140,170],"image_id": 0,"segmentation": [],"ignore": 0,"area": 23800,"iscrowd": 0,"category_id": 0},{"id": 2,"bbox": [321,320,142,102],"image_id": 0,"segmentation": [],"ignore": 0,"area": 14484,"iscrowd": 0,"category_id": 0}]
}

 

这篇关于保存coco dataset注释为单一文件,并逐一显示所有图片的mask的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.