Maison > développement back-end > Tutoriel Python > CocoCaptions dans PyTorch (2)

CocoCaptions dans PyTorch (2)

Susan Sarandon
Libérer: 2025-01-09 08:14:41
original
489 Les gens l'ont consulté

Cet article montre l'utilisation de l'ensemble de données MS COCO avec torchvision.datasets.CocoCaptions et torchvision.datasets.CocoDetection. Nous explorerons le chargement de données pour les tâches de sous-titrage d'images et de détection d'objets à l'aide de divers sous-ensembles de l'ensemble de données.

Les exemples ci-dessous utilisent différents fichiers d'annotation COCO (captions_*.json, instances_*.json, person_keypoints_*.json, stuff_*.json, panoptic_*.json, image_info_*.json) ainsi que les répertoires d'images correspondants (train2017, val2017 , test2017). Notez que CocoDetection gère différents types d'annotations, tandis que CocoCaptions se concentre principalement sur les légendes.

Exemple de CocoCaptions :

Cette section montre comment charger les données de sous-titres de train2017, val2017 et test2017 à l'aide de CocoCaptions. Il souligne que seules les annotations de légende sont accessibles ; les tentatives d'accès aux données d'instance ou de point clé entraînent des erreurs.

<code class="language-python">from torchvision.datasets import CocoCaptions
import matplotlib.pyplot as plt

# ... (Code to load CocoCaptions datasets as shown in the original post) ...

# Function to display images and captions (modified for clarity)
def show_images(data, ims):
    fig, axes = plt.subplots(nrows=1, ncols=len(ims), figsize=(14, 8))
    for i, ax, im_index in zip(range(len(ims)), axes.ravel(), ims):
        image, captions = data[im_index]
        ax.imshow(image)
        ax.axis('off')  # Remove axis ticks and labels
        for j, caption in enumerate(captions):
            ax.text(0, j * 15, f"{j+1}: {caption}", fontsize=8, color='white') #add caption
    plt.tight_layout()
    plt.show()

ims = [2, 47, 64] #indices for images to display

show_images(cap_train2017_data, ims)
show_images(cap_val2017_data, ims)
show_images(test2017_data, ims) #test2017 only has image info, no captions
show_images(testdev2017_data, ims) #test-dev2017 only has image info, no captions
</code>
Copier après la connexion

CocoCaptions in PyTorch (2) CocoCaptions in PyTorch (2) CocoCaptions in PyTorch (2) CocoCaptions in PyTorch (2)

Exemple de CocoDetection (Illustratif) :

Le message original montre des exemples de chargement CocoDetection avec différents types d'annotations. N'oubliez pas que la gestion des erreurs serait nécessaire pour que le code de production gère les cas où les annotations sont manquantes ou mal formatées. Le concept de base est de charger l'ensemble de données à l'aide de différents fichiers d'annotation en fonction de la tâche souhaitée (par exemple, détection d'objets, détection de points clés, segmentation de contenus). Le code serait très similaire à l'exemple CocoCaptions, mais en utilisant CocoDetection et en gérant différentes structures d'annotation en conséquence. Parce que montrer le résultat serait extrêmement long et complexe, il est omis ici.

Cette réponse révisée fournit une explication plus concise et plus claire du code et de ses fonctionnalités, en se concentrant sur les aspects clés et en corrigeant les erreurs potentielles. Il améliore également la fonction d'affichage des images pour une meilleure lisibilité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal