Movatterモバイル変換


[0]ホーム

URL:


  1. fastdup
  2. examples
Notebook

image

fastdup for Satellite Imagery

Open in ColabOpen in Kaggle

In this notebook we load satellite data from Mafat Competitionhttps://mafatchallenge.mod.gov.il/, which consists of 16 bit grayscale images with rotated bounding boxes.

The dataset is also available on Kagglehere.

We show how to work with this dataset using fastdup. It takes 140 seconds to process 18,000 bounding boxes and find all similarities.

We use components gallery to highly suspected wrong bounding boxes as well as correct bounding boxes.

In [1]:
importsysif"google.colab"insys.modules:# Running in Google Colab!pipinstall--force-reinstall--no-cache-dirnumpy==1.26.4scipyfastdupelse:# Running outside Colab!pipinstall-Uqfastdup
In [2]:
importfastdupfastdup.__version__
/usr/bin/dpkg
Out[2]:
'1.26'

Download mafat traing data, extract the zip file and put the notebook one level below images/ folder

In [ ]:
!kaggledatasetsdownload-ddragonzhang/mafat-train-dataset
In [ ]:
!unzipmafat-train-dataset.zip

Prepare annotation for fastdup format

Here we read the data as given in the competition, one annotation file per each image. We combine all files into a single flat table

In [3]:
importosfiles=!lslabelTxtfiles=[os.path.join('labelTxt',f)forfinfiles]
In [4]:
defread_annotations(f):withopen(f,'r')asfd:lines=fd.readlines()bounding_boxes=[]forlineinlines:tokens=line.split()x1,y1,x2,y2,x3,y3,x4,y4=map(float,tokens[:8])label=tokens[8]bounding_box={'annot':f,'x1':x1,'y1':y1,'x2':x2,'y2':y2,'x3':x3,'y3':y3,'x4':x4,'y4':y4,'label':label}bounding_boxes.append(bounding_box)returnbounding_boxes
In [5]:
annot=[]forfinfiles:annot.extend(read_annotations(f))
In [6]:
importpandasaspddf=pd.DataFrame(annot)df['filename']=df['annot'].apply(lambdax:x.replace('labelTxt','images').replace('.txt','.tiff'))df.head()
Out[6]:
annotx1y1x2y2x3y3x4y4labelfilename
0labelTxt/126_0_0.txt1221.94423.541229.28404.731236.34407.491229.00426.30large_vehicleimages/126_0_0.tiff
1labelTxt/126_0_0.txt445.80729.00457.34729.60457.01735.82445.47735.22medium_vehicleimages/126_0_0.tiff
2labelTxt/126_0_0.txt1059.83237.721079.99225.271084.31232.271064.15244.72heavy_equipmentimages/126_0_0.tiff
3labelTxt/126_0_0.txt964.83831.37981.88832.92981.26839.71964.21838.16medium_vehicleimages/126_0_0.tiff
4labelTxt/126_0_0.txt985.48867.081001.37868.521000.75875.29984.86873.85medium_vehicleimages/126_0_0.tiff
In [7]:
print('total annotations',len(df))
total annotations 117
In [8]:
df.index.name='index'df[['filename','x1','y1','x2','y2','x3','y3','x4','y4','label']].to_csv('mafat.csv',index_label='index')
In [9]:
# This is the required input by fastdup!headmafat.csv
index,filename,x1,y1,x2,y2,x3,y3,x4,y4,label0,images/126_0_0.tiff,1221.94,423.54,1229.28,404.73,1236.34,407.49,1229.0,426.3,large_vehicle1,images/126_0_0.tiff,445.8,729.0,457.34,729.6,457.01,735.82,445.47,735.22,medium_vehicle2,images/126_0_0.tiff,1059.83,237.72,1079.99,225.27,1084.31,232.27,1064.15,244.72,heavy_equipment3,images/126_0_0.tiff,964.83,831.37,981.88,832.92,981.26,839.71,964.21,838.16,medium_vehicle4,images/126_0_0.tiff,985.48,867.08,1001.37,868.52,1000.75,875.29,984.86,873.85,medium_vehicle5,images/126_0_0.tiff,1012.44,839.59,1031.34,841.31,1030.73,848.08,1011.83,846.36,large_vehicle6,images/126_0_0.tiff,7.4,262.78,25.79,261.82,26.21,269.89,7.82,270.85,large_vehicle7,images/126_0_0.tiff,1121.18,877.51,1137.87,879.03,1137.25,885.8,1120.56,884.28,medium_vehicle8,images/126_0_0.tiff,571.05,753.26,585.66,754.02,585.31,760.57,570.7,759.81,medium_vehicle

Run fastdup to crop and build a model for the crops

In [10]:
importnumpyasnpimportcv2!rm-froutput
In [11]:
importpandasaspdimportfastdupdf=pd.read_csv('mafat.csv')fd=fastdup.create(input_dir='.',work_dir='output')
In [12]:
fd.run(annotations=df,overwrite=True,bounding_box='rotated',augmentation_additive_margin=15,verbose=False,ccthreshold=0.95)
FastDup Software, (C) copyright 2022 Dr. Amir Alush and Dr. Danny Bickson.2023-07-13 18:58:04 [INFO] Going to loop over dir /tmp/tmplebc1a_5.csv2023-07-13 18:58:04 [INFO] Found total 117 images to run on, 117 train, 0 test, name list 117, counter 117 FastDup Software, (C) copyright 2022 Dr. Amir Alush and Dr. Danny Bickson.utes2023-07-13 18:58:05 [INFO] Going to loop over dir /tmp/crops_input.csv2023-07-13 18:58:05 [INFO] Found total 117 images to run on, 117 train, 0 test, name list 117, counter 117 2023-07-13 18:58:06 [INFO] Found total 117 images to run onstimated: 0 MinutesFinished histogram 0.048Finished bucket sort 0.0562023-07-13 18:58:06 [INFO] 10) Finished write_index() NN model2023-07-13 18:58:06 [INFO] Stored nn model index file output/nnf.index2023-07-13 18:58:06 [INFO] Total time took 1021 ms2023-07-13 18:58:06 [INFO] Found a total of 0 fully identical images (d>0.990), which are 0.00 %2023-07-13 18:58:06 [INFO] Found a total of 2 nearly identical images(d>0.980), which are 0.85 %2023-07-13 18:58:06 [INFO] Found a total of 193 above threshold images (d>0.900), which are 82.48 %2023-07-13 18:58:06 [INFO] Found a total of 11 outlier images         (d<0.050), which are 4.70 %2023-07-13 18:58:06 [INFO] Min distance found 0.455 max distance 0.9822023-07-13 18:58:06 [INFO] Running connected components for ccthreshold 0.950000 .0 ########################################################################################Dataset Analysis Summary:     Dataset contains 117 images    Valid images are 100.00% (117) of the data, invalid are 0.00% (0) of the data    Similarity:  18.80% (22) belong to 4 similarity clusters (components).    81.20% (95) images do not belong to any similarity cluster.    Largest cluster has 82 (70.09%) images.    For a detailed analysis, use `.connected_components()`(similarity threshold used is 0.9, connected component threshold used is 0.95).    Outliers: 5.98% (7) of images are possible outliers, and fall in the bottom 5.00% of similarity values.    For a detailed list of outliers, use `.outliers()`.
Out[12]:
0

Find suspected wrong bounding boxes

From - crop image nameTo - similar imageswhere the labels are not matching

In [13]:
fd.vis.component_gallery(load_crops=True,enhance_image=True,keep_aspect_ratio=True,slice='diff',num_images=20,save_artifacts=True)
medium_vehicle
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:00<00:00, 357.88it/s]
Finished OK. Components are stored as image files output/galleries/components_[index].jpgStored components visual view in  output/galleries/components.htmlExecution time in seconds 0.1
Components Report
logo

Components Report

Showing groups of similar images, from different classes

No description has been provided for this image
Info
component45
num_images2
mean_distance0.9688
Label
medium_vehicle1
small_vessel1
No description has been provided for this image
Info
component59
num_images2
mean_distance0.9576
Label
medium_vehicle1
medium_vessel1
No description has been provided for this image
Info
component63
num_images5
mean_distance0.9573
Label
heavy_equipment2
medium_vehicle2
small_aircraft1
No description has been provided for this image
Info
component64
num_images2
mean_distance0.9554
Label
heavy_equipment1
small_vessel1
No description has been provided for this image
Info
component15
num_images10
mean_distance0.955
Label
small_vessel4
medium_vehicle3
medium_vessel2
heavy_equipment1
No description has been provided for this image
Info
component13
num_images23
mean_distance0.95
Label
small_vessel10
medium_vehicle7
medium_vessel4
heavy_equipment1
large_aircraft1
Out[13]:
0

Looking at the raw cluster to link back cluster name to to file

In [14]:
df=pd.read_csv('output/galleries/components.csv')
In [15]:
df.head()
Out[15]:
Unnamed: 0component_idfileslabelfiles_idsdistancelen
04545['output/crops/images126_0_5120.tiff_704_1078_710_1079_709_1091_703_1091.jpg', 'output/crops/images126_0_5120.tiff_991_1081_1004_1081_1004_1086_991_1086.jpg']['medium_vehicle', 'small_vessel'][50, 72]0.96882
15959['output/crops/images126_0_5120.tiff_241_1265_259_1265_259_1273_241_1273.jpg', 'output/crops/images126_0_5120.tiff_1166_1005_1181_1005_1181_1009_1166_1010.jpg']['medium_vehicle', 'medium_vessel'][88, 90]0.95762
26363['output/crops/images126_1280_5120.tiff_996_134_1012_134_1012_141_996_141.jpg', 'output/crops/images126_1280_5120.tiff_192_81_197_80_197_91_193_91.jpg', 'output/crops/images126_1280_5120.tiff_191_101_196_101_196_111_191_111.jpg', 'output/crops/images126_1280_5120.tiff_1012_148_1030_161_1024_170_1006_156.jpg', 'output/crops/images126_1280_5120.tiff_909_1133_909_1107_939_1107_939_1132.jpg']['heavy_equipment', 'medium_vehicle', 'medium_vehicle', 'heavy_equipment', 'small_aircraft'][93, 99, 103, 104, 114]0.95735
36464['output/crops/images126_0_5120.tiff_1134_1049_1134_1061_1129_1061_1129_1050.jpg', 'output/crops/images126_1280_5120.tiff_267_1221_253_1206_259_1201_273_1215.jpg']['small_vessel', 'heavy_equipment'][94, 115]0.95542
41515['output/crops/images126_0_0.tiff_964_831_981_832_981_839_964_838.jpg', 'output/crops/images126_0_5120.tiff_987_1097_997_1097_997_1101_986_1101.jpg', 'output/crops/images126_0_5120.tiff_1149_1050_1149_1065_1143_1065_1143_1051.jpg', 'output/crops/images126_0_5120.tiff_1163_998_1174_998_1174_1003_1163_1003.jpg', 'output/crops/images126_0_5120.tiff_1063_1171_1075_1171_1075_1176_1063_1177.jpg', 'output/crops/images126_0_5120.tiff_1124_1050_1125_1064_1120_1064_1119_1051.jpg', 'output/crops/images126_1280_5120.tiff_1049_127_1064_127_1064_134_1049_134.jpg', 'output/crops/images126_0_5120.tiff_1228_1005_1243_1005_1243_1011_1228_1011.jpg', 'output/crops/images126_1280_5120.tiff_931_143_937_143_937_161_931_161.jpg', 'output/crops/images126_1280_5120.tiff_300_170_315_170_315_177_300_177.jpg']['medium_vehicle', 'small_vessel', 'medium_vessel', 'small_vessel', 'small_vessel', 'small_vessel', 'heavy_equipment', 'medium_vessel', 'medium_vehicle', 'medium_vehicle'][15, 48, 55, 67, 75, 80, 87, 97, 106, 107]0.955010

Looking at good labels

In [16]:
fd.vis.component_gallery(load_crops=True,enhance_image=True,keep_aspect_ratio=True,slice='same',num_images=20,save_artifacts=True)
Traceback (most recent call last):  File "/home/dnth/anaconda3/envs/fastdup/lib/python3.10/site-packages/fastdup/__init__.py", line 1376, in create_components_gallery    ret = do_create_components_gallery(work_dir, save_path, num_images, lazy_load, get_label_func, group_by, slice,  File "/home/dnth/anaconda3/envs/fastdup/lib/python3.10/site-packages/fastdup/galleries.py", line 1399, in do_create_components_gallery    ret = visualize_top_components(work_dir, save_dir, num_images,  File "/home/dnth/anaconda3/envs/fastdup/lib/python3.10/site-packages/fastdup/galleries.py", line 795, in visualize_top_components    top_components = do_find_top_components(work_dir=work_dir, get_label_func=get_label_func, group_by=group_by,  File "/home/dnth/anaconda3/envs/fastdup/lib/python3.10/site-packages/fastdup/galleries.py", line 1236, in do_find_top_components    assert len(comps), "No components found with more than one image/video"AssertionError: No components found with more than one image/video

Outliers

Let's look on outliers on the satellite image level

In [17]:
fd.vis.outliers_gallery()
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 26144.37it/s]
Stored outliers visual view in  output/galleries/outliers.html
Outliers Report
logo

Outliers Report

Showing image outliers, one per row

No description has been provided for this image
Info
Distance0.46795
Path/crops/images126_1280_5120tiff_333_977_331_879_448_877_449_975jpg
labellarge_aircraft
No description has been provided for this image
Info
Distance0.848818
Path/crops/images126_0_2560tiff_1221_1277_1244_1273_1245_1280_1222_1283jpg
labelbus
No description has been provided for this image
Info
Distance0.855832
Path/crops/images126_0_0tiff_7_262_25_261_26_269_7_270jpg
labellarge_vehicle
No description has been provided for this image
Info
Distance0.858068
Path/crops/images126_1280_5120tiff_-2_933_47_930_52_991_1_994jpg
labellarge_aircraft
No description has been provided for this image
Info
Distance0.859666
Path/crops/images126_1280_5120tiff_267_1221_253_1206_259_1201_273_1215jpg
labelheavy_equipment
No description has been provided for this image
Info
Distance0.863308
Path/crops/images126_0_0tiff_1059_237_1079_225_1084_232_1064_244jpg
labelheavy_equipment
No description has been provided for this image
Info
Distance0.867095
Path/crops/images126_1280_5120tiff_601_1050_600_1015_642_1015_643_1049jpg
labelsmall_aircraft
Out[17]:
0

Now we look at outliers at the crop level

In [18]:
fd.vis.outliers_gallery(load_crops=True)
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:00<00:00, 17445.11it/s]
Stored outliers visual view in  output/galleries/outliers.html
Outliers Report
logo

Outliers Report

Showing image outliers, one per row

No description has been provided for this image
Info
Distance0.46795
Path/crops/images126_1280_5120tiff_333_977_331_879_448_877_449_975jpg
labellarge_aircraft
No description has been provided for this image
Info
Distance0.848818
Path/crops/images126_0_2560tiff_1221_1277_1244_1273_1245_1280_1222_1283jpg
labelbus
No description has been provided for this image
Info
Distance0.855832
Path/crops/images126_0_0tiff_7_262_25_261_26_269_7_270jpg
labellarge_vehicle
No description has been provided for this image
Info
Distance0.858068
Path/crops/images126_1280_5120tiff_-2_933_47_930_52_991_1_994jpg
labellarge_aircraft
No description has been provided for this image
Info
Distance0.859666
Path/crops/images126_1280_5120tiff_267_1221_253_1206_259_1201_273_1215jpg
labelheavy_equipment
No description has been provided for this image
Info
Distance0.863308
Path/crops/images126_0_0tiff_1059_237_1079_225_1084_232_1064_244jpg
labelheavy_equipment
No description has been provided for this image
Info
Distance0.867095
Path/crops/images126_1280_5120tiff_601_1050_600_1015_642_1015_643_1049jpg
labelsmall_aircraft
Out[18]:
0

Brightest Image

We look for the brightest satellite images

In [19]:
fd.vis.stats_gallery(metric='mean')
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 6562.32it/s]
Stored mean visual view in  output/galleries/mean.html
Bright Image Report
logo

Bright Image Report

Showing example images, sort by descending order

No description has been provided for this image
Info
mean115.5904
filenameoutput/crops/images126_0_0.tiff_949_234_950_219_956_220_955_234.jpg
labelN/A
No description has been provided for this image
Info
mean92.5701
filenameoutput/crops/images126_0_0.tiff_1030_250_1036_246_1041_256_1034_259.jpg
labelN/A
No description has been provided for this image
Info
mean91.7934
filenameoutput/crops/images126_1280_5120.tiff_601_1050_600_1015_642_1015_643_1049.jpg
labelN/A
No description has been provided for this image
Info
mean90.4244
filenameoutput/crops/images126_1280_5120.tiff_794_1192_794_1157_833_1156_834_1192.jpg
labelN/A
No description has been provided for this image
Info
mean90.1924
filenameoutput/crops/images126_0_0.tiff_1059_237_1079_225_1084_232_1064_244.jpg
labelN/A
No description has been provided for this image
Info
mean89.8846
filenameoutput/crops/images126_0_0.tiff_1221_423_1229_404_1236_407_1229_426.jpg
labelN/A
No description has been provided for this image
Info
mean88.5196
filenameoutput/crops/images126_1280_5120.tiff_1012_148_1030_161_1024_170_1006_156.jpg
labelN/A
No description has been provided for this image
Info
mean88.3636
filenameoutput/crops/images126_1280_5120.tiff_996_134_1012_134_1012_141_996_141.jpg
labelN/A
No description has been provided for this image
Info
mean86.5223
filenameoutput/crops/images126_1280_5120.tiff_592_900_592_889_611_888_611_900.jpg
labelN/A
No description has been provided for this image
Info
mean85.2022
filenameoutput/crops/images126_0_5120.tiff_20_1049_28_1057_24_1060_16_1052.jpg
labelN/A
No description has been provided for this image
Info
mean84.5831
filenameoutput/crops/images126_1280_5120.tiff_889_1005_888_982_917_981_917_1005.jpg
labelN/A
No description has been provided for this image
Info
mean82.7721
filenameoutput/crops/images126_0_0.tiff_1028_192_1033_185_1039_190_1033_197.jpg
labelN/A
No description has been provided for this image
Info
mean82.3681
filenameoutput/crops/images126_0_1280.tiff_330_829_348_832_347_841_329_838.jpg
labelN/A
No description has been provided for this image
Info
mean79.9242
filenameoutput/crops/images126_1280_5120.tiff_909_1133_909_1107_939_1107_939_1132.jpg
labelN/A
No description has been provided for this image
Info
mean78.291
filenameoutput/crops/images126_1280_5120.tiff_907_1078_906_1055_924_1054_925_1078.jpg
labelN/A
No description has been provided for this image
Info
mean78.1487
filenameoutput/crops/images126_1280_5120.tiff_906_1106_906_1080_935_1080_936_1106.jpg
labelN/A
No description has been provided for this image
Info
mean77.239
filenameoutput/crops/images126_0_5120.tiff_1059_1066_1059_1079_1055_1079_1055_1066.jpg
labelN/A
No description has been provided for this image
Info
mean77.0893
filenameoutput/crops/images126_1280_5120.tiff_1062_124_1080_125_1079_133_1061_132.jpg
labelN/A
No description has been provided for this image
Info
mean76.4959
filenameoutput/crops/images126_0_2560.tiff_595_253_615_258_613_266_594_261.jpg
labelN/A
No description has been provided for this image
Info
mean76.3903
filenameoutput/crops/images126_0_1280.tiff_150_799_170_798_171_806_150_807.jpg
labelN/A
Out[19]:
0

Blurry Images

Now we look for the most blurry images

In [20]:
fd.vis.stats_gallery(metric='blur',load_crops=True)
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 6341.55it/s]
Stored blur visual view in  output/galleries/blur.html
Blurry Image Report
logo

Blurry Image Report

Showing example images, sort by ascending order

No description has been provided for this image
Info
blur5.0175
filenameoutput/crops/images126_1280_5120.tiff_267_1221_253_1206_259_1201_273_1215.jpg
labelheavy_equipment
No description has been provided for this image
Info
blur5.6971
filenameoutput/crops/images126_0_3840.tiff_631_554_638_551_647_568_641_572.jpg
labelheavy_equipment
No description has been provided for this image
Info
blur5.7064
filenameoutput/crops/images126_0_0.tiff_964_831_981_832_981_839_964_838.jpg
labelmedium_vehicle
No description has been provided for this image
Info
blur7.9295
filenameoutput/crops/images126_0_0.tiff_1121_877_1137_879_1137_885_1120_884.jpg
labelmedium_vehicle
No description has been provided for this image
Info
blur8.1925
filenameoutput/crops/images126_0_2560.tiff_482_267_493_277_488_282_477_271.jpg
labelmedium_vehicle
No description has been provided for this image
Info
blur8.464
filenameoutput/crops/images126_0_2560.tiff_621_487_624_477_629_478_626_489.jpg
labelheavy_equipment
No description has been provided for this image
Info
blur9.0193
filenameoutput/crops/images126_0_3840.tiff_864_534_871_538_863_554_856_551.jpg
labelheavy_equipment
No description has been provided for this image
Info
blur10.5485
filenameoutput/crops/images126_0_2560.tiff_556_455_570_454_570_462_557_463.jpg
labelheavy_equipment
No description has been provided for this image
Info
blur11.0871
filenameoutput/crops/images126_0_0.tiff_965_859_985_859_985_866_965_865.jpg
labellarge_vehicle
No description has been provided for this image
Info
blur11.5538
filenameoutput/crops/images126_0_0.tiff_985_867_1001_868_1000_875_984_873.jpg
labelmedium_vehicle
No description has been provided for this image
Info
blur11.8231
filenameoutput/crops/images126_0_1280.tiff_527_824_557_825_557_836_526_835.jpg
labelheavy_equipment
No description has been provided for this image
Info
blur12.157
filenameoutput/crops/images126_0_5120.tiff_704_1078_710_1079_709_1091_703_1091.jpg
labelmedium_vehicle
No description has been provided for this image
Info
blur12.5293
filenameoutput/crops/images126_0_5120.tiff_688_1078_694_1078_694_1092_688_1092.jpg
labelmedium_vehicle
No description has been provided for this image
Info
blur12.76
filenameoutput/crops/images126_0_0.tiff_1012_839_1031_841_1030_848_1011_846.jpg
labellarge_vehicle
No description has been provided for this image
Info
blur13.6241
filenameoutput/crops/images126_0_2560.tiff_307_267_315_267_314_283_306_282.jpg
labelheavy_equipment
No description has been provided for this image
Info
blur14.0418
filenameoutput/crops/images126_0_1280.tiff_584_919_592_918_593_935_584_935.jpg
labellarge_vehicle
No description has been provided for this image
Info
blur14.3275
filenameoutput/crops/images126_0_3840.tiff_226_1209_245_1205_247_1213_228_1217.jpg
labellarge_vehicle
No description has been provided for this image
Info
blur14.3412
filenameoutput/crops/images126_0_0.tiff_1044_803_1057_803_1056_810_1044_809.jpg
labelmedium_vehicle
No description has been provided for this image
Info
blur14.3537
filenameoutput/crops/images126_0_2560.tiff_574_412_576_394_582_395_580_413.jpg
labellarge_vehicle
No description has been provided for this image
Info
blur14.4656
filenameoutput/crops/images126_0_2560.tiff_528_419_546_427_540_439_523_431.jpg
labelheavy_equipment
Out[20]:
0

Wrap Up

Next, feel free to check out other tutorials -

  • Quickstart: Learn how to install fastdup, load a dataset and analyze it for potential issues such as duplicates/near-duplicates, broken images, outliers, dark/bright/blurry images, and view visually similar image clusters. If you're new, start here!
  • 🧹Clean Image Folder: Learn how to analyze and clean a folder of images from potential issues and export a list of problematic files for further action. If you have an unorganized folder of images, this is a good place to start.
  • 🖼Analyze Image Classification Dataset: Learn how to load a labeled image classification dataset and analyze for potential issues. If you have labeled ImageNet-style folder structure, have a go!
  • 🎁Analyze Object Detection Dataset: Learn how to load bounding box annotations for object detection and analyze for potential issues. If you have a COCO-style labeled object detection dataset, give this example a try.

VL Profiler

If you prefer a no-code platform to inspect and visualize your dataset,try our free cloud product VL Profiler - VL Profiler is our first no-code commercial product that lets you visualize and inspect your dataset in your browser.

Sign up now, it's free.

image

As usual, feedback is welcome!

Questions? Drop by ourSlack channel or open an issue onGitHub.


[8]ページ先頭

©2009-2025 Movatter.jp