Components Report
Showing groups of similar images
Info | |
---|---|
component | 3 |
num_images | 3 |
mean_distance | 0.9725 |
Info | |
---|---|
component | 27 |
num_images | 2 |
mean_distance | 0.9685 |
In this tutorial, we will use fastdup with a face detection model to detect and crop from videos. Following that we analyze the cropped faces for issues such as duplicates, near-duplicates, outliers, bright/dark/blurry faces.
This is an advanced functionality of fastdup. Sign up for free to be an beta tester and get early access at info@visual-layer.com .
!pip install pip -U
!pip install fastdup
Requirement already satisfied: pip in /home/dnth/anaconda3/lib/python3.9/site-packages (23.0.1) Requirement already satisfied: fastdup in /home/dnth/anaconda3/lib/python3.9/site-packages (0.910) Requirement already satisfied: tqdm in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (4.62.3) Requirement already satisfied: requests==2.28.1 in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (2.28.1) Requirement already satisfied: packaging in /home/dnth/.local/lib/python3.9/site-packages (from fastdup) (23.0) Requirement already satisfied: pillow in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (8.4.0) Requirement already satisfied: pandas in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (1.3.4) Requirement already satisfied: pyyaml in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (6.0) Requirement already satisfied: opencv-python-headless in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (4.7.0.72) Requirement already satisfied: sentry-sdk in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (1.18.0) Requirement already satisfied: numpy in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (1.22.4) Requirement already satisfied: idna<4,>=2.5 in /home/dnth/anaconda3/lib/python3.9/site-packages (from requests==2.28.1->fastdup) (3.2) Requirement already satisfied: certifi>=2017.4.17 in /home/dnth/anaconda3/lib/python3.9/site-packages (from requests==2.28.1->fastdup) (2021.10.8) Requirement already satisfied: charset-normalizer<3,>=2 in /home/dnth/anaconda3/lib/python3.9/site-packages (from requests==2.28.1->fastdup) (2.0.4) Requirement already satisfied: urllib3<1.27,>=1.21.1 in /home/dnth/anaconda3/lib/python3.9/site-packages (from requests==2.28.1->fastdup) (1.26.15) Requirement already satisfied: python-dateutil>=2.7.3 in /home/dnth/anaconda3/lib/python3.9/site-packages (from pandas->fastdup) (2.8.2) Requirement already satisfied: pytz>=2017.3 in /home/dnth/anaconda3/lib/python3.9/site-packages (from pandas->fastdup) (2021.3) Requirement already satisfied: six>=1.5 in /home/dnth/anaconda3/lib/python3.9/site-packages (from python-dateutil>=2.7.3->pandas->fastdup) (1.16.0)
import fastdup
fastdup.__version__
'0.910'
!gdown --fuzzy https://drive.google.com/file/d/1fzmOgmRu557aU4lEbzL7XCf78KntFCeQ/view
Downloading... From (uriginal): https://drive.google.com/uc?id=1fzmOgmRu557aU4lEbzL7XCf78KntFCeQ From (redirected): https://drive.google.com/uc?id=1fzmOgmRu557aU4lEbzL7XCf78KntFCeQ&confirm=t&uuid=db84e559-48c6-4aea-90ef-3dd49ddd7340 To: /media/dnth/Active-Projects/fastdup/examples/data.zip 100%|██████████████████████████████████████| 56.9M/56.9M [00:05<00:00, 10.6MB/s]
!unzip data.zip
Archive: data.zip creating: data/ inflating: data/video_14.mp4 inflating: data/video_13.mp4 inflating: data/video_12.mp4 inflating: data/video_9.mp4 inflating: data/video_15.mp4 inflating: data/video_10.mp4 inflating: data/video_11.mp4 inflating: data/video_8.mp4 inflating: data/video_1.mp4 inflating: data/video_2.mp4 inflating: data/video_3.mp4 inflating: data/video_4.mp4 inflating: data/video_5.mp4 inflating: data/video_6.mp4 inflating: data/video_7.mp4
fastdup works on images. We must first turn the videos into frames of images.
We can use a one-liner fastdup utility function to turn all the videos in a folder into frames:
fastdup.extract_video_frames(input_dir="data", work_dir="frames")
FastDup Software, (C) copyright 2022 Dr. Amir Alush and Dr. Danny Bickson. 2023-03-29 17:11:53 [INFO] Going to loop over dir data 2023-03-29 17:11:53 [INFO] Found total 15 videos to run on
0
Now that we have the frames of images, let's run fastdup and analyze the frames.
fd = fastdup.create(input_dir='frames', work_dir='face_detection_work_dir')
As this is an advance functionality of fastdup, you'd need a license key to use this function, sign up and get your license key for free at info@visual-layer.com .
fd.run(bounding_box='face', license='your_license_key', overwrite=True)
FastDup Software, (C) copyright 2022 Dr. Amir Alush and Dr. Danny Bickson. 2023-03-29 17:11:55 [INFO] Going to loop over dir frames 2023-03-29 17:11:55 [INFO] Found total 99 images to run on FastDup Software, (C) copyright 2022 Dr. Amir Alush and Dr. Danny Bickson.utes 0 Features 2023-03-29 17:11:58 [INFO] Going to loop over dir /tmp/crops_input.csv 2023-03-29 17:11:58 [INFO] Found total 66 images to run on 2023-03-29 17:11:59 [INFO] Found total 66 images to run onEstimated: 0 Minutes 0 Features Finished histogram 0.091 Finished bucket sort 0.106 2023-03-29 17:11:59 [INFO] 10) Finished write_index() NN model 2023-03-29 17:11:59 [INFO] Stored nn model index file face_detection_work_dir/nnf.index 2023-03-29 17:11:59 [INFO] Total time took 1017 ms 2023-03-29 17:11:59 [INFO] Found a total of 0 fully identical images (d>0.990), which are 0.00 % 2023-03-29 17:11:59 [INFO] Found a total of 2 nearly identical images(d>0.980), which are 1.01 % 2023-03-29 17:11:59 [INFO] Found a total of 28 above threshold images (d>0.900), which are 14.14 % 2023-03-29 17:11:59 [INFO] Found a total of 6 outlier images (d<0.050), which are 3.03 % 2023-03-29 17:11:59 [INFO] Min distance found 0.528 max distance 0.982 2023-03-29 17:11:59 [INFO] Running connected components for ccthreshold 0.960000 .0 ######################################################################################## Dataset Analysis Summary: Dataset contains 66 images Valid images are 100.00% (66) of the data, invalid are 0.00% (0) of the data Similarity: 3.03% (2) belong to 2 similarity clusters (components). 96.97% (64) images do not belong to any similarity cluster. Largest cluster has 6 (9.09%) images. For a detailed analysis, use `.connected_components()` (similarity threshold used is 0.9, connected component threshold used is 0.96). Outliers: 6.06% (4) of images are possible outliers, and fall in the bottom 5.00% of similarity values. For a detailed list of outliers, use `.outliers()`.
We can visualize the cluster of similar detections using the components gallery view. Specify draw_bbox=True
to see the detection bounding box on the original image.
fd.vis.component_gallery(draw_bbox=True)
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 20.14it/s]
Finished OK. Components are stored as image files face_detection_work_dir/galleries/components_[index].jpg Stored components visual view in face_detection_work_dir/galleries/components.html Execution time in seconds 0.2
If you'd like to view just the cropped bounding box images, specify draw_bbox=False
fd.vis.component_gallery(draw_bbox=False)
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 100.18it/s]
Finished OK. Components are stored as image files face_detection_work_dir/galleries/components_[index].jpg Stored components visual view in face_detection_work_dir/galleries/components.html Execution time in seconds 0.0
Using the similarity_gallery
view, we can find similar looking faces (bounding boxes) across all the extracted frames.
fd.vis.similarity_gallery(draw_bbox=False)
Warning: you are running create_similarity_gallery() without providing get_label_func so similarities are not computed between different classes. It is recommended to run this report with labels. Without labels this report output is similar to create_duplicate_gallery()
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 118.66it/s]
Stored similar images visual view in face_detection_work_dir/galleries/similarity.html
Similarity Report
Info From | |
---|---|
from | /crops/datavideo_10.mp4output_000005.jpg_163_260_248_248.jpg |
Info To | |
---|---|
0.981833 | /crops/datavideo_10.mp4output_000006.jpg_169_246_272_272.jpg |
0.975763 | /crops/datavideo_10.mp4output_000001.jpg_120_281_253_254.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_10.mp4output_000006.jpg_169_246_272_272.jpg |
Info To | |
---|---|
0.981833 | /crops/datavideo_10.mp4output_000005.jpg_163_260_248_248.jpg |
0.972492 | /crops/datavideo_10.mp4output_000001.jpg_120_281_253_254.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_10.mp4output_000001.jpg_120_281_253_254.jpg |
Info To | |
---|---|
0.975763 | /crops/datavideo_10.mp4output_000005.jpg_163_260_248_248.jpg |
0.972492 | /crops/datavideo_10.mp4output_000006.jpg_169_246_272_272.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_1.mp4output_000008.jpg_175_466_279_280.jpg |
Info To | |
---|---|
0.968511 | /crops/datavideo_1.mp4output_000009.jpg_161_406_336_336.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_1.mp4output_000009.jpg_161_406_336_336.jpg |
Info To | |
---|---|
0.968511 | /crops/datavideo_1.mp4output_000008.jpg_175_466_279_280.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_1.mp4output_000010.jpg_44_209_554_555.jpg |
Info To | |
---|---|
0.955514 | /crops/datavideo_1.mp4output_000011.jpg_-18_134_631_631.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_1.mp4output_000011.jpg_-18_134_631_631.jpg |
Info To | |
---|---|
0.955514 | /crops/datavideo_1.mp4output_000010.jpg_44_209_554_555.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_8.mp4output_000001.jpg_195_381_245_246.jpg |
Info To | |
---|---|
0.945117 | /crops/datavideo_8.mp4output_000002.jpg_161_340_268_268.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_8.mp4output_000002.jpg_161_340_268_268.jpg |
Info To | |
---|---|
0.945117 | /crops/datavideo_8.mp4output_000001.jpg_195_381_245_246.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_1.mp4output_000007.jpg_291_306_139_140.jpg |
Info To | |
---|---|
0.943513 | /crops/datavideo_1.mp4output_000006.jpg_486_438_137_137.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_1.mp4output_000006.jpg_486_438_137_137.jpg |
Info To | |
---|---|
0.943513 | /crops/datavideo_1.mp4output_000007.jpg_291_306_139_140.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_14.mp4output_000001.jpg_236_406_52_52.jpg |
Info To | |
---|---|
0.941177 | /crops/datavideo_14.mp4output_000002.jpg_234_417_51_52.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_14.mp4output_000002.jpg_234_417_51_52.jpg |
Info To | |
---|---|
0.941177 | /crops/datavideo_14.mp4output_000001.jpg_236_406_52_52.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_2.mp4output_000001.jpg_191_281_138_139.jpg |
Info To | |
---|---|
0.937863 | /crops/datavideo_2.mp4output_000002.jpg_200_284_130_131.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_2.mp4output_000002.jpg_200_284_130_131.jpg |
Info To | |
---|---|
0.937863 | /crops/datavideo_2.mp4output_000001.jpg_191_281_138_139.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_6.mp4output_000002.jpg_107_149_393_394.jpg |
Info To | |
---|---|
0.937743 | /crops/datavideo_6.mp4output_000004.jpg_109_116_399_400.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_6.mp4output_000004.jpg_109_116_399_400.jpg |
Info To | |
---|---|
0.937743 | /crops/datavideo_6.mp4output_000002.jpg_107_149_393_394.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_1.mp4output_000007.jpg_121_300_73_74.jpg |
Info To | |
---|---|
0.934762 | /crops/datavideo_1.mp4output_000006.jpg_294_417_85_86.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_1.mp4output_000006.jpg_294_417_85_86.jpg |
Info To | |
---|---|
0.934762 | /crops/datavideo_1.mp4output_000007.jpg_121_300_73_74.jpg |
Query Image |
Similar |
Info From | |
---|---|
from | /crops/datavideo_11.mp4output_000001.jpg_152_134_301_302.jpg |
Info To | |
---|---|
0.925375 | /crops/datavideo_11.mp4output_000002.jpg_144_127_316_316.jpg |
Query Image |
Similar |
from | to | distance | |
---|---|---|---|
11 | face_detection_work_dir/crops/framesdatavideo_10.mp4output_000005.jpg_163_260_248_248.jpg | [face_detection_work_dir/crops/framesdatavideo_10.mp4output_000006.jpg_169_246_272_272.jpg, face_detection_work_dir/crops/framesdatavideo_10.mp4output_000001.jpg_120_281_253_254.jpg] | [0.981833, 0.975763] |
12 | face_detection_work_dir/crops/framesdatavideo_10.mp4output_000006.jpg_169_246_272_272.jpg | [face_detection_work_dir/crops/framesdatavideo_10.mp4output_000005.jpg_163_260_248_248.jpg, face_detection_work_dir/crops/framesdatavideo_10.mp4output_000001.jpg_120_281_253_254.jpg] | [0.981833, 0.972492] |
10 | face_detection_work_dir/crops/framesdatavideo_10.mp4output_000001.jpg_120_281_253_254.jpg | [face_detection_work_dir/crops/framesdatavideo_10.mp4output_000005.jpg_163_260_248_248.jpg, face_detection_work_dir/crops/framesdatavideo_10.mp4output_000006.jpg_169_246_272_272.jpg] | [0.975763, 0.972492] |
6 | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000008.jpg_175_466_279_280.jpg | [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000009.jpg_161_406_336_336.jpg] | [0.968511] |
7 | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000009.jpg_161_406_336_336.jpg | [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000008.jpg_175_466_279_280.jpg] | [0.968511] |
8 | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000010.jpg_44_209_554_555.jpg | [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000011.jpg_-18_134_631_631.jpg] | [0.955514] |
9 | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000011.jpg_-18_134_631_631.jpg | [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000010.jpg_44_209_554_555.jpg] | [0.955514] |
23 | face_detection_work_dir/crops/framesdatavideo_8.mp4output_000001.jpg_195_381_245_246.jpg | [face_detection_work_dir/crops/framesdatavideo_8.mp4output_000002.jpg_161_340_268_268.jpg] | [0.945117] |
24 | face_detection_work_dir/crops/framesdatavideo_8.mp4output_000002.jpg_161_340_268_268.jpg | [face_detection_work_dir/crops/framesdatavideo_8.mp4output_000001.jpg_195_381_245_246.jpg] | [0.945117] |
5 | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_291_306_139_140.jpg | [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_486_438_137_137.jpg] | [0.943513] |
3 | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_486_438_137_137.jpg | [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_291_306_139_140.jpg] | [0.943513] |
15 | face_detection_work_dir/crops/framesdatavideo_14.mp4output_000001.jpg_236_406_52_52.jpg | [face_detection_work_dir/crops/framesdatavideo_14.mp4output_000002.jpg_234_417_51_52.jpg] | [0.941177] |
16 | face_detection_work_dir/crops/framesdatavideo_14.mp4output_000002.jpg_234_417_51_52.jpg | [face_detection_work_dir/crops/framesdatavideo_14.mp4output_000001.jpg_236_406_52_52.jpg] | [0.941177] |
17 | face_detection_work_dir/crops/framesdatavideo_2.mp4output_000001.jpg_191_281_138_139.jpg | [face_detection_work_dir/crops/framesdatavideo_2.mp4output_000002.jpg_200_284_130_131.jpg] | [0.937863] |
18 | face_detection_work_dir/crops/framesdatavideo_2.mp4output_000002.jpg_200_284_130_131.jpg | [face_detection_work_dir/crops/framesdatavideo_2.mp4output_000001.jpg_191_281_138_139.jpg] | [0.937863] |
19 | face_detection_work_dir/crops/framesdatavideo_6.mp4output_000002.jpg_107_149_393_394.jpg | [face_detection_work_dir/crops/framesdatavideo_6.mp4output_000004.jpg_109_116_399_400.jpg] | [0.937743] |
21 | face_detection_work_dir/crops/framesdatavideo_6.mp4output_000004.jpg_109_116_399_400.jpg | [face_detection_work_dir/crops/framesdatavideo_6.mp4output_000002.jpg_107_149_393_394.jpg] | [0.937743] |
4 | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_121_300_73_74.jpg | [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_294_417_85_86.jpg] | [0.934762] |
2 | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_294_417_85_86.jpg | [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_121_300_73_74.jpg] | [0.934762] |
13 | face_detection_work_dir/crops/framesdatavideo_11.mp4output_000001.jpg_152_134_301_302.jpg | [face_detection_work_dir/crops/framesdatavideo_11.mp4output_000002.jpg_144_127_316_316.jpg] | [0.925375] |
14 | face_detection_work_dir/crops/framesdatavideo_11.mp4output_000002.jpg_144_127_316_316.jpg | [face_detection_work_dir/crops/framesdatavideo_11.mp4output_000001.jpg_152_134_301_302.jpg] | [0.925375] |
20 | face_detection_work_dir/crops/framesdatavideo_6.mp4output_000003.jpg_61_190_478_479.jpg | [face_detection_work_dir/crops/framesdatavideo_6.mp4output_000005.jpg_89_180_495_495.jpg] | [0.921769] |
22 | face_detection_work_dir/crops/framesdatavideo_6.mp4output_000005.jpg_89_180_495_495.jpg | [face_detection_work_dir/crops/framesdatavideo_6.mp4output_000003.jpg_61_190_478_479.jpg] | [0.921769] |
1 | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000005.jpg_-33_127_670_671.jpg | [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000001.jpg_70_203_577_578.jpg] | [0.916237] |
0 | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000001.jpg_70_203_577_578.jpg | [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000005.jpg_-33_127_670_671.jpg] | [0.916237] |
Useing the outliers_gallery
we can also viaualize faces (detections) that looks visually different from others.
fd.vis.outliers_gallery()
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:00<00:00, 6654.98it/s]
Stored outliers visual view in face_detection_work_dir/galleries/outliers.html
Outliers Report
Showing image outliers, one per row
Info | |
---|---|
Distance | 0.527991 |
Path | /crops/datavideo_4.mp4output_000008.jpg_174_66_256_256.jpg |
Info | |
---|---|
Distance | 0.574151 |
Path | /crops/datavideo_4.mp4output_000005.jpg_220_458_116_117.jpg |
Info | |
---|---|
Distance | 0.579975 |
Path | /crops/datavideo_3.mp4output_000003.jpg_28_277_163_164.jpg |
Info | |
---|---|
Distance | 0.581466 |
Path | /crops/datavideo_3.mp4output_000013.jpg_247_190_110_110.jpg |
With the duplicates_gallery
view, visualize duplicate image pairs across videos.
fd.vis.duplicates_gallery()
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 282.37it/s]
Stored similarity visual view in face_detection_work_dir/galleries/duplicates.html
Duplicates Report
Info | |
---|---|
Distance | 0.981833 |
From | /crops/datavideo_10.mp4output_000006.jpg_169_246_272_272.jpg |
To | /crops/datavideo_10.mp4output_000005.jpg_163_260_248_248.jpg |
Info | |
---|---|
Distance | 0.975763 |
From | /crops/datavideo_10.mp4output_000005.jpg_163_260_248_248.jpg |
To | /crops/datavideo_10.mp4output_000001.jpg_120_281_253_254.jpg |
Info | |
---|---|
Distance | 0.972492 |
From | /crops/datavideo_10.mp4output_000006.jpg_169_246_272_272.jpg |
To | /crops/datavideo_10.mp4output_000001.jpg_120_281_253_254.jpg |
Info | |
---|---|
Distance | 0.968511 |
From | /crops/datavideo_1.mp4output_000009.jpg_161_406_336_336.jpg |
To | /crops/datavideo_1.mp4output_000008.jpg_175_466_279_280.jpg |
Info | |
---|---|
Distance | 0.955514 |
From | /crops/datavideo_1.mp4output_000010.jpg_44_209_554_555.jpg |
To | /crops/datavideo_1.mp4output_000011.jpg_-18_134_631_631.jpg |
Info | |
---|---|
Distance | 0.945117 |
From | /crops/datavideo_8.mp4output_000002.jpg_161_340_268_268.jpg |
To | /crops/datavideo_8.mp4output_000001.jpg_195_381_245_246.jpg |
Info | |
---|---|
Distance | 0.943513 |
From | /crops/datavideo_1.mp4output_000006.jpg_486_438_137_137.jpg |
To | /crops/datavideo_1.mp4output_000007.jpg_291_306_139_140.jpg |
Info | |
---|---|
Distance | 0.941177 |
From | /crops/datavideo_14.mp4output_000002.jpg_234_417_51_52.jpg |
To | /crops/datavideo_14.mp4output_000001.jpg_236_406_52_52.jpg |
Info | |
---|---|
Distance | 0.937863 |
From | /crops/datavideo_2.mp4output_000001.jpg_191_281_138_139.jpg |
To | /crops/datavideo_2.mp4output_000002.jpg_200_284_130_131.jpg |
Info | |
---|---|
Distance | 0.937743 |
From | /crops/datavideo_6.mp4output_000002.jpg_107_149_393_394.jpg |
To | /crops/datavideo_6.mp4output_000004.jpg_109_116_399_400.jpg |
Using the stats_gallery
view, we can sort the faces (detections) following a desired metric
such as 'dark', 'bright' and 'blur'.
fd.vis.stats_gallery(metric='dark')
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 393.79it/s]
Stored mean visual view in face_detection_work_dir/galleries/mean.html
Dark Image Report
Showing example images, sort by ascending order
Info | |
---|---|
mean | 15.6447 |
filename | face_detection_work_dir/crops/framesdatavideo_3.mp4output_000013.jpg_247_190_110_110.jpg |
Info | |
---|---|
mean | 27.5016 |
filename | face_detection_work_dir/crops/framesdatavideo_10.mp4output_000004.jpg_511_239_56_57.jpg |
Info | |
---|---|
mean | 39.5026 |
filename | face_detection_work_dir/crops/framesdatavideo_5.mp4output_000009.jpg_90_299_414_415.jpg |
Info | |
---|---|
mean | 49.4687 |
filename | face_detection_work_dir/crops/framesdatavideo_4.mp4output_000001.jpg_158_159_224_225.jpg |
Info | |
---|---|
mean | 52.9449 |
filename | face_detection_work_dir/crops/framesdatavideo_6.mp4output_000007.jpg_78_164_523_523.jpg |
Info | |
---|---|
mean | 54.8878 |
filename | face_detection_work_dir/crops/framesdatavideo_2.mp4output_000003.jpg_178_215_261_262.jpg |
Info | |
---|---|
mean | 55.8195 |
filename | face_detection_work_dir/crops/framesdatavideo_6.mp4output_000008.jpg_148_163_364_365.jpg |
Info | |
---|---|
mean | 58.8494 |
filename | face_detection_work_dir/crops/framesdatavideo_6.mp4output_000001.jpg_105_50_481_481.jpg |
Info | |
---|---|
mean | 59.1527 |
filename | face_detection_work_dir/crops/framesdatavideo_10.mp4output_000003.jpg_294_381_49_50.jpg |
Info | |
---|---|
mean | 59.6986 |
filename | face_detection_work_dir/crops/framesdatavideo_6.mp4output_000006.jpg_152_122_359_359.jpg |
Info | |
---|---|
mean | 59.715 |
filename | face_detection_work_dir/crops/framesdatavideo_6.mp4output_000005.jpg_89_180_495_495.jpg |
Info | |
---|---|
mean | 61.0489 |
filename | face_detection_work_dir/crops/framesdatavideo_3.mp4output_000001.jpg_-40_166_532_532.jpg |
Info | |
---|---|
mean | 62.651 |
filename | face_detection_work_dir/crops/framesdatavideo_2.mp4output_000001.jpg_191_281_138_139.jpg |
Info | |
---|---|
mean | 62.9172 |
filename | face_detection_work_dir/crops/framesdatavideo_6.mp4output_000002.jpg_107_149_393_394.jpg |
Info | |
---|---|
mean | 63.3998 |
filename | face_detection_work_dir/crops/framesdatavideo_5.mp4output_000002.jpg_65_375_258_258.jpg |
Info | |
---|---|
mean | 64.9001 |
filename | face_detection_work_dir/crops/framesdatavideo_6.mp4output_000003.jpg_61_190_478_479.jpg |
Info | |
---|---|
mean | 66.6429 |
filename | face_detection_work_dir/crops/framesdatavideo_2.mp4output_000004.jpg_143_294_244_244.jpg |
Info | |
---|---|
mean | 67.0469 |
filename | face_detection_work_dir/crops/framesdatavideo_2.mp4output_000002.jpg_200_284_130_131.jpg |
Info | |
---|---|
mean | 70.3712 |
filename | face_detection_work_dir/crops/framesdatavideo_6.mp4output_000004.jpg_109_116_399_400.jpg |
Info | |
---|---|
mean | 73.3206 |
filename | face_detection_work_dir/crops/framesdatavideo_4.mp4output_000008.jpg_174_66_256_256.jpg |
fd.vis.stats_gallery(metric='bright')
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 506.59it/s]
Stored mean visual view in face_detection_work_dir/galleries/mean.html
Bright Image Report
Showing example images, sort by descending order
Info | |
---|---|
mean | 161.2215 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_310_532_81_82.jpg |
Info | |
---|---|
mean | 155.2087 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_490_663_80_80.jpg |
Info | |
---|---|
mean | 148.2569 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000009.jpg_161_406_336_336.jpg |
Info | |
---|---|
mean | 145.7401 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_486_438_137_137.jpg |
Info | |
---|---|
mean | 141.8936 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_474_322_145_146.jpg |
Info | |
---|---|
mean | 141.4952 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000008.jpg_175_466_279_280.jpg |
Info | |
---|---|
mean | 141.2111 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000011.jpg_-18_134_631_631.jpg |
Info | |
---|---|
mean | 139.936 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000010.jpg_44_209_554_555.jpg |
Info | |
---|---|
mean | 139.6472 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_291_306_139_140.jpg |
Info | |
---|---|
mean | 134.6325 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_294_417_85_86.jpg |
Info | |
---|---|
mean | 128.5858 |
filename | face_detection_work_dir/crops/framesdatavideo_15.mp4output_000001.jpg_73_35_337_337.jpg |
Info | |
---|---|
mean | 127.7623 |
filename | face_detection_work_dir/crops/framesdatavideo_13.mp4output_000002.jpg_286_199_147_147.jpg |
Info | |
---|---|
mean | 127.4999 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_104_518_142_142.jpg |
Info | |
---|---|
mean | 119.0635 |
filename | face_detection_work_dir/crops/framesdatavideo_5.mp4output_000006.jpg_85_212_364_365.jpg |
Info | |
---|---|
mean | 117.9132 |
filename | face_detection_work_dir/crops/framesdatavideo_4.mp4output_000005.jpg_220_458_116_117.jpg |
Info | |
---|---|
mean | 117.3406 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_106_427_122_123.jpg |
Info | |
---|---|
mean | 116.0681 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_121_300_73_74.jpg |
Info | |
---|---|
mean | 116.0248 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000001.jpg_70_203_577_578.jpg |
Info | |
---|---|
mean | 113.4248 |
filename | face_detection_work_dir/crops/framesdatavideo_13.mp4output_000002.jpg_22_290_158_159.jpg |
Info | |
---|---|
mean | 112.62 |
filename | face_detection_work_dir/crops/framesdatavideo_8.mp4output_000001.jpg_195_381_245_246.jpg |
fd.vis.stats_gallery(metric='blur')
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 701.24it/s]
Stored blur visual view in face_detection_work_dir/galleries/blur.html
Blurry Image Report
Showing example images, sort by ascending order
Info | |
---|---|
blur | 22.1188 |
filename | face_detection_work_dir/crops/framesdatavideo_3.mp4output_000013.jpg_247_190_110_110.jpg |
Info | |
---|---|
blur | 28.9668 |
filename | face_detection_work_dir/crops/framesdatavideo_3.mp4output_000003.jpg_28_277_163_164.jpg |
Info | |
---|---|
blur | 58.9633 |
filename | face_detection_work_dir/crops/framesdatavideo_2.mp4output_000003.jpg_178_215_261_262.jpg |
Info | |
---|---|
blur | 59.8373 |
filename | face_detection_work_dir/crops/framesdatavideo_2.mp4output_000004.jpg_143_294_244_244.jpg |
Info | |
---|---|
blur | 65.5694 |
filename | face_detection_work_dir/crops/framesdatavideo_2.mp4output_000001.jpg_191_281_138_139.jpg |
Info | |
---|---|
blur | 66.5691 |
filename | face_detection_work_dir/crops/framesdatavideo_2.mp4output_000002.jpg_200_284_130_131.jpg |
Info | |
---|---|
blur | 75.8016 |
filename | face_detection_work_dir/crops/framesdatavideo_10.mp4output_000004.jpg_511_239_56_57.jpg |
Info | |
---|---|
blur | 117.591 |
filename | face_detection_work_dir/crops/framesdatavideo_13.mp4output_000002.jpg_325_467_174_175.jpg |
Info | |
---|---|
blur | 162.9503 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_661_563_72_72.jpg |
Info | |
---|---|
blur | 171.7189 |
filename | face_detection_work_dir/crops/framesdatavideo_10.mp4output_000003.jpg_294_381_49_50.jpg |
Info | |
---|---|
blur | 172.5005 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_490_663_80_80.jpg |
Info | |
---|---|
blur | 181.8111 |
filename | face_detection_work_dir/crops/framesdatavideo_13.mp4output_000001.jpg_100_256_168_168.jpg |
Info | |
---|---|
blur | 182.4558 |
filename | face_detection_work_dir/crops/framesdatavideo_15.mp4output_000001.jpg_73_35_337_337.jpg |
Info | |
---|---|
blur | 221.384 |
filename | face_detection_work_dir/crops/framesdatavideo_3.mp4output_000003.jpg_82_87_459_460.jpg |
Info | |
---|---|
blur | 228.2809 |
filename | face_detection_work_dir/crops/framesdatavideo_14.mp4output_000001.jpg_112_539_39_40.jpg |
Info | |
---|---|
blur | 241.5 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_310_532_81_82.jpg |
Info | |
---|---|
blur | 246.4757 |
filename | face_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_486_438_137_137.jpg |
Info | |
---|---|
blur | 246.794 |
filename | face_detection_work_dir/crops/framesdatavideo_6.mp4output_000008.jpg_148_163_364_365.jpg |
Info | |
---|---|
blur | 263.4221 |
filename | face_detection_work_dir/crops/framesdatavideo_13.mp4output_000002.jpg_22_290_158_159.jpg |
Info | |
---|---|
blur | 263.433 |
filename | face_detection_work_dir/crops/framesdatavideo_6.mp4output_000006.jpg_152_122_359_359.jpg |