LAVIS icon indicating copy to clipboard operation
LAVIS copied to clipboard

Is "calculate_coco_features.py" wrong?

Open mozheng opened this issue 1 year ago • 1 comments

for i, filename in enumerate(filepaths):
    if i % bsz == 0 and i > 0:
        images_in_batch = torch.cat(images_in_batch, dim=0).to(device)
        with torch.no_grad():
            image_features = feature_extractor(
                images_in_batch, caption, mode="image", normalized=True
            )[:, 0]

        for filepath, image_feat in zip(filepaths_in_batch, image_features):
            path2feat[os.path.basename(filepath)] = image_feat.detach().cpu()

        images_in_batch = []
        filepaths_in_batch = []

        print(len(path2feat), image_features.shape)
    else:
        filepath = os.path.join(file_root, filename)

        image = read_img(filepath)
        image = vis_processor(image).unsqueeze(0)

        images_in_batch.append(image)
        filepaths_in_batch.append(filepath)

Some images are lost! @LiJunnan1992 I think it should be fixed to this:

for i, filename in enumerate(filepaths):
    filepath = os.path.join(file_root, filename)

    image = read_img(filepath)
    image = vis_processor(image).unsqueeze(0)

    images_in_batch.append(image)
    filepaths_in_batch.append(filepath)
    if i % bsz == 0 and i > 0:
        images_in_batch = torch.cat(images_in_batch, dim=0).to(device)
        with torch.no_grad():
            image_features = feature_extractor(
                images_in_batch, caption, mode="image", normalized=True
            )[:, 0]

        for filepath, image_feat in zip(filepaths_in_batch, image_features):
            path2feat[os.path.basename(filepath)] = image_feat.detach().cpu()

        images_in_batch = []
        filepaths_in_batch = []

        print(len(path2feat), image_features.shape)

mozheng avatar Apr 11 '23 06:04 mozheng

The script is for demo purposes, where we did not extract features for all the images. Thanks for spotting this anyway.

dxli94 avatar Apr 11 '23 16:04 dxli94