Resolva o problema de instalação de pycocotools: Nenhum módulo chamado pycocotools

1. Processo de resolução de problemas

Para implementar o modelo de detecção de destino fast_rcnn, prepare-se para usar o conjunto de dados coco para treinamento do modelo, aqui você precisa importar o conjunto de dados coco e executar o processamento do conjunto de dados.

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)

运行出现 insira a descrição da imagem aqui
pycocotoolsPode-se concluir que não há módulo no ambiente atual , portanto é necessário

pip install pycocotools

------报错了-------
insira a descrição da imagem aqui
Em seguida, a consulta tem uma maneira de baixar do gitee

pip install git+https://gitee.com/pursuit_zhangyu/cocoapi.git#subdirectory=PythonAPI

------报错了-------
insira a descrição da imagem aqui
Se a mensagem de erro acima for um Cythonmódulo ausente, faça o download do módulo Cython

pip install Cython

Em seguida, prossiga para a etapa anterior

pip install git+https://gitee.com/pursuit_zhangyu/cocoapi.git#subdirectory=PythonAPI

------还是不行-------

Por fim, descobri que o download do linux é a operação acima, porque estou sem vento, devo seguir as seguintes instruções

pip install pycocotools-windows

insira a descrição da imagem aqui
成功!!

insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/qq_45973897/article/details/130264131
Recomendado
Clasificación