這篇文章示範如何使用有 torchvision.datasets.CocoCaptions
和 torchvision.datasets.CocoDetection
的 MS COCO 資料集。 我們將探索使用資料集的各種子集載入影像字幕和物件偵測任務的資料。
下面的範例使用不同的COCO 註解檔案(captions_*.json
, instances_*.json
, person_keypoints_*.json
, stuff_*.json
, panoptic_*.json
, image_info_*.json
) 以及對應的圖片目錄(train2017
, val2017
,test2017
)。請注意,CocoDetection
處理不同的註釋類型,而 CocoCaptions
主要關注標題。
CocoCaptions 例:
本節展示如何使用 train2017
從 val2017
、test2017
和 CocoCaptions
載入字幕資料。 它強調只存取標題註釋;嘗試存取實例或關鍵點資料會導致錯誤。
<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>
CocoDetection 範例(說明性):
原始貼文顯示了使用各種註解類型載入 CocoDetection
的範例。 請記住,生產程式碼需要進行錯誤處理來管理註解遺失或格式不正確的情況。 核心概念是根據所需的任務(例如,物件偵測、關鍵點偵測、內容分割)使用不同的註釋檔案載入資料集。 程式碼與 CocoCaptions
範例非常相似,但使用 CocoDetection
並相應地處理不同的註解結構。 由於顯示輸出會非常長且複雜,因此此處省略。
此修訂後的回應對程式碼及其功能提供了更簡潔、更清晰的解釋,重點關注關鍵方面並解決了潛在的錯誤。 它還改進了影像顯示功能,以提高可讀性。
以上是PyTorch 中的 CocoCaptions (2)的詳細內容。更多資訊請關注PHP中文網其他相關文章!