一、問(wèn)題解決過(guò)程
為了實(shí)現(xiàn)目標(biāo)檢測(cè)模型fast_rcnn,準(zhǔn)備使用coco數(shù)據(jù)集進(jìn)行模型的訓(xùn)練,這里需要導(dǎo)入coco數(shù)據(jù)集,并且進(jìn)行數(shù)據(jù)集處理。
import torch
import torchvision
import torch.utils.data
from pycocotools.coco import COCO
def convert_to_coco_api(ds):
coco_ds = COCO()
# annotation IDs need to start at 1, not 0
ann_id = 1
dataset = {'images': [], 'categories': [], 'annotations': []}
categories = set()
for img_idx in range(len(ds)):
# find better way to get target
hw, targets = ds.coco_index(img_idx)
image_id = targets["image_id"].item()
img_dict = {}
img_dict['id'] = image_id
img_dict['height'] = hw[0]
img_dict['width'] = hw[1]
dataset['images'].append(img_dict)
bboxes = targets["boxes"]
bboxes[:, 2:] -= bboxes[:, :2]
bboxes = bboxes.tolist()
labels = targets['labels'].tolist()
areas = targets['area'].tolist()
iscrowd = targets['iscrowd'].tolist()
num_objs = len(bboxes)
for i in range(num_objs):
ann = {}
ann['image_id'] = image_id
ann['bbox'] = bboxes[i]
ann['category_id'] = labels[i]
categories.add(labels[i])
ann['area'] = areas[i]
ann['iscrowd'] = iscrowd[i]
ann['id'] = ann_id
dataset['annotations'].append(ann)
ann_id += 1
dataset['categories'] = [{'id': i} for i in sorted(categories)]
coco_ds.dataset = dataset
coco_ds.createIndex()
return coco_ds
def get_coco_api_from_dataset(dataset):
for _ in range(10):
if isinstance(dataset, torchvision.datasets.CocoDetection):
break
if isinstance(dataset, torch.utils.data.Subset):
dataset = dataset.dataset
if isinstance(dataset, torchvision.datasets.CocoDetection):
return dataset.coco
return convert_to_coco_api(dataset)
運(yùn)行出現(xiàn)
可以得出當(dāng)前環(huán)境沒(méi)有 pycocotools
模塊 故需要
pip install pycocotools
------報(bào)錯(cuò)了-------
然后查詢有一種從gitee上下載的方式
pip install git+https://gitee.com/pursuit_zhangyu/cocoapi.git#subdirectory=PythonAPI
------報(bào)錯(cuò)了-------
上面報(bào)錯(cuò)信息發(fā)現(xiàn)是缺少Cython
模塊,那就下載Cython模塊
pip install Cython
然后在進(jìn)行上一步的操作
pip install git+https://gitee.com/pursuit_zhangyu/cocoapi.git#subdirectory=PythonAPI
------還是不行-------
最后發(fā)現(xiàn)linux下載是上面的操作,因?yàn)槲沂莣indous應(yīng)該按照下面的指令
pip install pycocotools-windows
成功?。?/code>文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-536369.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-536369.html
到了這里,關(guān)于解決pycocotools的安裝問(wèn)題:No module named pycocotools的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!