COCO数据集
那里,春暖花开
这个作者很懒,什么都没留下…
展开
-
coco关键点数据集水平翻转数据增强,连同标注一起变化
对coco图片进行水平翻转时,连同关键点标注也要对应着进行变化。首先是x坐标,从x变为了width-1-x,然后对应的,人体的左右边要进行交换,比如原来的左手就变成右手,原来的右手变成左手,通过以下代码完成。 for (q, w) in symmetry: cod[q], cod[w] = cod[w], cod[q]`关键点标注变化的核心代码如下: img = cv2.flip(img, 1) label = points cod = [] allc原创 2020-07-16 21:59:52 · 2003 阅读 · 1 评论 -
数据增强,对图片的crop,以及对关键点标注的对应缩放
以以下图片(000000391895.jpg)为例子,可视化图片裁剪过程对图片裁剪的关键在于如何让关键点标注在裁剪前后同步进行坐标点的转换。要裁剪的区域为gt_box,但需要对gt_box进行一定的扩展,首先算出中心点objcenter,再根据中心点进行高和宽的缩放,然后对图片进行一定的裁剪。详细可参考此博客if __name__ == '__main__': import matplotlib.patches as patches def augmentationCropI原创 2020-07-16 17:23:03 · 1499 阅读 · 1 评论 -
pytorch-cpn可视化标注信息
pytorch-cpn项目的代码对coco标注进行了重新组装,但是基本的标注内容并没有改变,关键点的坐标依然是以图片左上角为坐标原点,标注格式依然为[x1,y1,v1,x2,y2,v2,…,x17,y17,v17]。在其mscocoMulti.py文件中,以下为核心可视化代码的部分。 plt.figure() c = (np.random.random((1, 3)) * 0.6 + 0.4).tolist()[0] plt.plot(x[v > 0], y[原创 2020-07-14 23:31:13 · 374 阅读 · 1 评论 -
CPN网络的label_transform.py文件对cocoapi的使用
CPN代码中,label_transform.py对COCO数据的标注进行重新组装,生成新的train_data。这里可以学习到如何使用cocoapi的函数。记录如下,对函数的说明可参看注释。from tqdm import tqdmdataDir = '../..'dataType = 'val2017'annFile = '{}/annotations/person_keypoints_{}.json'.format(dataDir,dataType)coco_kps=COCO(annFile原创 2020-07-14 17:37:11 · 166 阅读 · 0 评论 -
软链接COCO数据集
ln -s a b a 是源文件,b是目标文件。a也可以是源目录,b是尚未建立的目标目录值得注意的是执行命令的时候,应该是a目录已经建立,目录b没有建立。以mmdetection项目为例,需要在data/coco目录下软链接3个目录~/mmdetection/data/coco$ ln -s /home/all/datasets/coco/annotations/ annotations~/mmdetection/data/coco$ ln -s /home/all/datasets/coc原创 2020-06-19 15:29:09 · 1533 阅读 · 1 评论 -
可视化COCO数据集keypoints标注
COCO关键点的标注格式为[x1,y1,v1,x2,y2,v2,…,x17,y17,v17],大小必为17×3。[x,y]代表以图片左上角为原点的关键点的坐标。v=0代表该点未标注,v=代表该点已标注,但不可见。v=2代表标注并可见。显示标注信息的核心代码如下sks = np.array(coco_kps.loadCats(ann['category_id'])[0]['skeleton']) - 1kp = np.array(ann['keypoints'])x = kp[0::3]y = kp原创 2020-06-19 00:07:51 · 4424 阅读 · 6 评论 -
可视化COCO分割标注
COCO的分割物品标注在annotation属性的segmentation属性中,具体格式为一系列表示多边形各个端点的xy坐标。具体为[x1,y1,x2,y2,x3,y3…xn,yn],即标注的形式是由(x1,y1),(x2,y2),(x3,y3)…(xn,yn)点依次连接起来形成的多边形。核心代码位于showAnns函数中,主要体会标注是一系列xy坐标端点形成的多边形即可。核心部分代码如下import matplotlib.pyplot as pltfig, ax = plt.subplots(f原创 2020-06-18 21:41:57 · 1633 阅读 · 0 评论 -
COCOapi使用得到指定的annId
getAnnIds首先根据imgIds找到所有的ann标注,然后,再根据ann['category_id']是否在输入的catIds中,对ann标注进行筛选,同时也用ann['area']对ann进行筛选。从而得到最后的ann图片注释,从而得到ann的Id。import time as timeimport jsonimport numpy as npfrom collections import defaultdictimport itertoolsdef _isArrayLike(obj)原创 2020-06-17 21:31:56 · 1596 阅读 · 1 评论 -
COCO数据集获取图片信息并根据URL进行显示
import time as timeimport jsonimport numpy as npfrom collections import defaultdictimport cv2 as cvdef _isArrayLike(obj): return hasattr(obj, '__iter__') and hasattr(obj, '__len__')class COCO: def __init__(self, annotation_file=None):原创 2020-06-17 21:24:56 · 975 阅读 · 0 评论 -
COCO数据集根据给定的种类id获得符合条件的图片id
代码参考cocoapi核心代码如下,catId为进行筛选的类别id。首先,利用self.catToImgs[catId]获取符合类别的图片的id,然后,利用集合set的与交集操作&,完成对满足多个类别条件的图片id的筛选。 ids = set(imgIds) for i, catId in enumerate(catIds): if i == 0 and len(ids) == 0:原创 2020-06-17 16:58:06 · 1665 阅读 · 0 评论 -
COCO数据集的种类
COCO数据集共80类,12个大类。其代码示例如下。以下代码参考cocoapiimport time as timeimport jsonfrom collections import defaultdictdef _isArrayLike(obj): return hasattr(obj, '__iter__') and hasattr(obj, '__len__')class COCO: def __init__(self, annotation_file=None):原创 2020-06-17 16:20:09 · 4131 阅读 · 0 评论 -
COCO数据集person_keypoints_val2017.json标注文件的使用方式
对于每个标注文件,都会有anns, cats, imgs,imgToAnns, catToImgs 这5类字典dict数据结构需要生成。其具体过程如下:import jsonfrom collections import defaultdictannotation_file = '../../annotations/instances_val2017.json'dataset = json.load(open(annotation_file, 'r'))# print(dataset)#共有5原创 2020-06-17 15:31:21 · 4256 阅读 · 1 评论