(image_dir, image_dir_ref, device)
| 176 | |
| 177 | |
| 178 | def clipeval_image(image_dir, image_dir_ref, device): |
| 179 | image_paths = [os.path.join(image_dir, path) for path in os.listdir(image_dir) |
| 180 | if path.endswith(('.png', '.jpg', '.jpeg', '.tiff', '.JPG'))] |
| 181 | image_paths_ref = [os.path.join(image_dir_ref, path) for path in os.listdir(image_dir_ref) |
| 182 | if path.endswith(('.png', '.jpg', '.jpeg', '.tiff', '.JPG'))] |
| 183 | |
| 184 | model, _ = clip.load("ViT-B/32", device=device, jit=False) |
| 185 | model.eval() |
| 186 | |
| 187 | image_feats = extract_all_images( |
| 188 | image_paths, model, CLIPImageDataset, device, batch_size=64, num_workers=8) |
| 189 | |
| 190 | image_feats_ref = extract_all_images( |
| 191 | image_paths_ref, model, CLIPImageDataset, device, batch_size=64, num_workers=8) |
| 192 | |
| 193 | image_feats = image_feats / \ |
| 194 | np.sqrt(np.sum(image_feats ** 2, axis=1, keepdims=True)) |
| 195 | image_feats_ref = image_feats_ref / \ |
| 196 | np.sqrt(np.sum(image_feats_ref ** 2, axis=1, keepdims=True)) |
| 197 | res = image_feats @ image_feats_ref.T |
| 198 | return np.mean(res) |
| 199 | |
| 200 | |
| 201 | def dinoeval_image(image_dir, image_dir_ref, device): |
no test coverage detected