COCO数据集使用super categories时出现IndexError: list index out of range

Posted aimhabo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了COCO数据集使用super categories时出现IndexError: list index out of range相关的知识,希望对你有一定的参考价值。

在文件xxx/site-packages/pycocotools-2.0-py3.7-linux-x86_64.egg/pycocotools/coco.py中找到约157行左右的函数

def getCatIds(self, catNms=[], supNms=[], catIds=[]):

改为:

 

    def getCatIds(self, catNms=[], supNms=[], catIds=[]):
        """
        filtering parameters. default skips that filter.
        :param catNms (str array)  : get cats for given cat names
        :param supNms (str array)  : get cats for given supercategory names
        :param catIds (int array)  : get cats for given cat ids
        :return: ids (int array)   : integer array of cat ids
        """
        #catNms = catNms if _isArrayLike(catNms) else [catNms]
        #supNms = supNms if _isArrayLike(supNms) else [supNms]
        #catIds = catIds if _isArrayLike(catIds) else [catIds]

        #if len(catNms) == len(supNms) == len(catIds) == 0:
        #    cats = self.dataset[‘categories‘]
        #else:
        #    cats = self.dataset[‘categories‘]
        #    cats = cats if len(catNms) == 0 else [cat for cat in cats if cat[‘name‘]          in catNms]
        #    cats = cats if len(supNms) == 0 else [cat for cat in cats if cat[‘supercategory‘] in supNms]
        #    cats = cats if len(catIds) == 0 else [cat for cat in cats if cat[‘id‘]            in catIds]
        #ids = [cat[‘id‘] for cat in cats]
        ids = [cat[id] for cat in self.dataset[categories]]
        #print(self.dataset[‘categories‘])
        #print(cats)
        return ids

 

以上是关于COCO数据集使用super categories时出现IndexError: list index out of range的主要内容,如果未能解决你的问题,请参考以下文章

COCO_01 数据集介绍 COCO目标检测分割数据集格式

COCO_01 数据集介绍 COCO目标检测分割数据集格式

coco数据集图片尺寸不一

COCO 数据集的使用

使用labelme标注数据集并转化为CoCo数据集

[原创工具]voc数据集转coco格式工具使用教程