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的主要内容,如果未能解决你的问题,请参考以下文章