Resuelva el problema de instalación de pycocotools: ningún módulo llamado pycocotools

1. Proceso de resolución de problemas

Para implementar el modelo de detección de objetivos fast_rcnn, prepárese para usar el conjunto de datos de coco para el entrenamiento del modelo, aquí debe importar el conjunto de datos de coco y realizar el procesamiento del conjunto de datos.

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)

运行出现 inserte la descripción de la imagen aquí
pycocotoolsSe puede concluir que no existe ningún módulo en el entorno actual , por lo que es necesario

pip install pycocotools

------报错了-------
inserte la descripción de la imagen aquí
Entonces la consulta tiene una forma de descargar desde gitee

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

------报错了-------
inserte la descripción de la imagen aquí
Si se encuentra que el mensaje de error anterior es un Cythonmódulo faltante, descargue el módulo Cython

pip install Cython

Luego continúa con el paso anterior

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

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

Finalmente, descubrí que la descarga de Linux es la operación anterior, debido a que tengo mucho viento, debo seguir las siguientes instrucciones

pip install pycocotools-windows

inserte la descripción de la imagen aquí
成功!!

inserte la descripción de la imagen aquí

Supongo que te gusta

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