CocoCaptions در PyTorch (2) – انجمن DEV

برای من یک قهوه بخر☕
*یادداشت ها:
-
پست من با استفاده از CocoCaptions () توضیح می دهد
train2014
باcaptions_train2014.json
،instances_train2014.json
وperson_keypoints_train2014.json
،val2014
باcaptions_val2014.json
،instances_val2014.json
وperson_keypoints_val2014.json
وtest2017
باimage_info_test2014.json
،image_info_test2015.json
وimage_info_test-dev2015.json
. -
پست من با استفاده از CocoCaptions () توضیح می دهد
train2017
باstuff_train2017.json
،val2017
باstuff_val2017.json
،stuff_train2017_pixelmaps
باstuff_train2017.json
،stuff_val2017_pixelmaps
باstuff_val2017.json
،panoptic_train2017
باpanoptic_train2017.json
،panoptic_val2017
باpanoptic_val2017.json
وunlabeled2017
باimage_info_unlabeled2017.json
. -
پست من با استفاده از CocoDetection() توضیح می دهد
train2014
باcaptions_train2014.json
،instances_train2014.json
وperson_keypoints_train2014.json
،val2014
باcaptions_val2014.json
،instances_val2014.json
وperson_keypoints_val2014.json
وtest2017
باimage_info_test2014.json
،image_info_test2015.json
وimage_info_test-dev2015.json
. -
پست من با استفاده از CocoDetection() توضیح می دهد
train2017
باcaptions_train2017.json
،instances_train2017.json
وperson_keypoints_train2017.json
،val2017
باcaptions_val2017.json
،instances_val2017.json
وperson_keypoints_val2017.json
وtest2017
باimage_info_test2017.json
وimage_info_test-dev2017.json
. -
پست من با استفاده از CocoDetection() توضیح می دهد
train2017
باstuff_train2017.json
،val2017
باstuff_val2017.json
،stuff_train2017_pixelmaps
باstuff_train2017.json
،stuff_val2017_pixelmaps
باstuff_val2017.json
،panoptic_train2017
باpanoptic_train2017.json
،panoptic_val2017
باpanoptic_val2017.json
وunlabeled2017
باimage_info_unlabeled2017.json
. -
پست من MS COCO را توضیح می دهد.
CocoCaptions() می تواند از مجموعه داده MS COCO همانطور که در زیر نشان داده شده است استفاده کند. *این برای train2017
با captions_train2017.json
، instances_train2017.json
و person_keypoints_train2017.json
، val2017
با captions_val2017.json
، instances_val2017.json
و person_keypoints_val2017.json
و test2017
با image_info_test2017.json
و image_info_test-dev2017.json
:
from torchvision.datasets import CocoCaptions
cap_train2017_data = CocoCaptions(
root="data/coco/imgs/train2017",
annFile="data/coco/anns/trainval2017/captions_train2017.json"
)
ins_train2017_data = CocoCaptions(
root="data/coco/imgs/train2017",
annFile="data/coco/anns/trainval2017/instances_train2017.json"
)
pk_train2017_data = CocoCaptions(
root="data/coco/imgs/train2017",
annFile="data/coco/anns/trainval2017/person_keypoints_train2017.json"
)
len(cap_train2017_data), len(ins_train2017_data), len(pk_train2017_data)
# (118287, 118287, 118287)
cap_val2017_data = CocoCaptions(
root="data/coco/imgs/val2017",
annFile="data/coco/anns/trainval2017/captions_val2017.json"
)
ins_val2017_data = CocoCaptions(
root="data/coco/imgs/val2017",
annFile="data/coco/anns/trainval2017/instances_val2017.json"
)
pk_val2017_data = CocoCaptions(
root="data/coco/imgs/val2017",
annFile="data/coco/anns/trainval2017/person_keypoints_val2017.json"
)
len(cap_val2017_data), len(ins_val2017_data), len(pk_val2017_data)
# (5000, 5000, 5000)
test2017_data = CocoCaptions(
root="data/coco/imgs/test2017",
annFile="data/coco/anns/test2017/image_info_test2017.json"
)
testdev2017_data = CocoCaptions(
root="data/coco/imgs/test2017",
annFile="data/coco/anns/test2017/image_info_test-dev2017.json"
)
len(test2017_data), len(testdev2017_data)
# (40670, 20288)
cap_train2017_data[2]
# (,
# ['A flower vase is sitting on a porch stand.',
# 'White vase with different colored flowers sitting inside of it. ',
# 'a white vase with many flowers on a stage',
# 'A white vase filled with different colored flowers.',
# 'A vase with red and white flowers outside on a sunny day.'])
cap_train2017_data[47]
# (,
# ['A man standing in front of a microwave next to pots and pans.',
# 'A man displaying pots and utensils on a wall.',
# 'A man stands in a kitchen and motions towards pots and pans. ',
# 'a man poses in front of some pots and pans ',
# 'A man pointing to pots hanging from a pegboard on a gray wall.'])
cap_train2017_data[64]
# (,
# ['A little girl holding wet broccoli in her hand. ',
# 'The young child is happily holding a fresh vegetable. ',
# 'A little girl holds a hand full of wet broccoli. ',
# 'A little girl holds a piece of broccoli towards the camera.',
# 'a small kid holds on to some vegetables '])
ins_train2017_data[2] # Error
ins_train2017_data[47] # Error
ins_train2017_data[67] # Error
pk_train2017_data[2]
# (, [])
pk_train2017_data[47] # Error
pk_train2017_data[64] # Error
cap_val2017_data[2]
# (,
# ['Bedroom scene with a bookcase, blue comforter and window.',
# 'A bedroom with a bookshelf full of books.',
# 'This room has a bed with blue sheets and a large bookcase',
# 'A bed and a mirror in a small room.',
# 'a bed room with a neatly made bed a window and a book shelf'])
cap_val2017_data[47]
# (,
# ['A group of people cutting a ribbon on a street.',
# 'A man uses a pair of big scissors to cut a pink ribbon.',
# 'A man cutting a ribbon at a ceremony ',
# 'A group of people on the sidewalk watching two young children.',
# 'A group of people holding a large pair of scissors to a ribbon.'])
cap_val2017_data[64]
# (,
# ['A man and a women posing next to one another in front of a table.',
# 'A man and woman hugging in a restaurant',
# 'A man and woman standing next to a table.',
# 'A happy man and woman pose for a picture.',
# 'A man and woman posing for a picture in a sports bar.'])
ins_val2017_data[2] # Error
ins_val2017_data[47] # Error
ins_val2017_data[64] # Error
pk_val2017_data[2]
# (, [])
pk_val2017_data[47] # Error
pk_val2017_data[64] # Error
test2017_data[2]
# (, [])
test2017_data[47]
# (, [])
test2017_data[64]
# (, [])
testdev2017_data[2]
# (, [])
testdev2017_data[47]
# (, [])
testdev2017_data[64]
# (, [])
import matplotlib.pyplot as plt
def show_images(data, ims, main_title=None):
file = data.root.split('/')[-1]
fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(14, 8))
fig.suptitle(t=main_title, y=0.9, fontsize=14)
x_crd = 0.02
for i, axis in zip(ims, axes.ravel()):
if data[i][1]:
im, anns = data[i]
axis.imshow(X=im)
y_crd = 0.0
for j, ann in enumerate(iterable=anns):
text_list = ann.split()
if len(text_list) > 9:
text = " ".join(text_list[0:10]) + " ..."
else:
text = " ".join(text_list)
plt.figtext(x=x_crd, y=y_crd, fontsize=10,
s=f'{j}:\n{text}')
y_crd -= 0.06
x_crd += 0.325
if i == 2 and file == "val2017":
x_crd += 0.06
elif not data[i][1]:
im, _ = data[i]
axis.imshow(X=im)
fig.tight_layout()
plt.show()
ims = (2, 47, 64)
show_images(data=cap_train2017_data, ims=ims,
main_title="cap_train2017_data")
show_images(data=cap_val2017_data, ims=ims,
main_title="cap_val2017_data")
show_images(data=test2017_data, ims=ims,
main_title="test2017_data")
show_images(data=testdev2017_data, ims=ims,
main_title="testdev2017_data")