{
"cells": [
{
"cell_type": "markdown",
"id": "f1bf3a6a",
"metadata": {},
"source": [
"[![image](https://raw.githubusercontent.com/visual-layer/visuallayer/main/imgs/vl_horizontal_logo.png)](https://www.visual-layer.com)"
]
},
{
"cell_type": "markdown",
"id": "79e47a0f-eb0a-43f1-81f1-26ef84a3ab2f",
"metadata": {},
"source": [
"# Face Detection from Videos\n",
"\n",
"[![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/visual-layer/fastdup/blob/main/examples/video-face-detection.ipynb)\n",
"[![Open in Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://kaggle.com/kernels/welcome?src=https://github.com/visual-layer/fastdup/blob/main/examples/video-face-detection.ipynb)\n",
"\n",
"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."
]
},
{
"cell_type": "markdown",
"id": "cef8afd5-45d1-400b-b5a2-8b56095ae66c",
"metadata": {},
"source": [
"## Installation & Setting Up"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1fb73f7e-1bd9-4e8e-b113-94a714abca73",
"metadata": {},
"outputs": [],
"source": [
"!pip install fastdup kaggle -Uq"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "90d6aea7-f03e-4a9c-ba2c-dee490579304",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/usr/bin/dpkg\n"
]
},
{
"data": {
"text/plain": [
"'1.27'"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import fastdup\n",
"fastdup.__version__"
]
},
{
"cell_type": "markdown",
"id": "372a2c62-82aa-4b78-828c-95edf6b74c91",
"metadata": {},
"source": [
"## Download & Extract Dataset"
]
},
{
"cell_type": "markdown",
"id": "47187a40",
"metadata": {},
"source": [
"Let's download a Tiktok [trending video dataset](https://www.kaggle.com/datasets/erikvdven/tiktok-trending-december-2020) from Kaggle. The dataset consists of the first 1000 trending videos scraped from TikTok on December 2020.\n",
"\n",
"You can download the dataset by manually by heading to the dataset [homepage](https://www.kaggle.com/datasets/erikvdven/tiktok-trending-december-2020) or using the [Kaggle API](https://github.com/Kaggle/kaggle-api). \n",
"\n",
"Let's use the Kaggle API to download the dataset:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ca12d7d5",
"metadata": {},
"outputs": [],
"source": [
"!kaggle datasets download -d erikvdven/tiktok-trending-december-2020"
]
},
{
"cell_type": "markdown",
"id": "9571ee4b",
"metadata": {},
"source": [
"Unzip the dataset into a folder called `data`."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "3f583911",
"metadata": {},
"outputs": [],
"source": [
"!unzip -q tiktok-trending-december-2020 -d data"
]
},
{
"cell_type": "markdown",
"id": "fecc72b9-17fd-4f6c-9d2a-a68345461443",
"metadata": {},
"source": [
"## Video to Images\n",
"\n",
"fastdup works on images. We must first turn the videos into frames of images.\n",
"\n",
"We can use a one-liner fastdup utility function to turn all the videos in a folder into frames:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "9258e5af-0802-476b-85ba-2423240a2771",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"FastDup Software, (C) copyright 2022 Dr. Amir Alush and Dr. Danny Bickson.\n",
"2023-07-19 17:23:27 [INFO] Going to loop over dir data\n",
"2023-07-19 17:23:27 [INFO] Found total 1000 videos to run on, 1000 train, 0 test, name list 1000, counter 1000 \n"
]
},
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fastdup.extract_video_frames(input_dir=\"data\", work_dir=\"frames\")"
]
},
{
"cell_type": "markdown",
"id": "ce318e6e-ba76-4e07-bd91-1b56da39c952",
"metadata": {},
"source": [
"## Run fastdup\n",
"\n",
"Now that we have the frames of images, let's run fastdup and analyze the frames."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "bd3bf19f-1322-46cc-bfc3-d8db50689367",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Warning: fastdup create() without work_dir argument, output is stored in a folder named work_dir in your current working path.\n"
]
}
],
"source": [
"fd = fastdup.create(input_dir='frames')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "29fde366-db7d-4fff-a537-2ff589cddffd",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"FastDup Software, (C) copyright 2022 Dr. Amir Alush and Dr. Danny Bickson.\n",
"2023-07-19 17:23:48 [INFO] Going to loop over dir frames\n",
"2023-07-19 17:23:48 [INFO] Found total 4325 images to run on, 4325 train, 0 test, name list 4325, counter 4325 \n",
"FastDup Software, (C) copyright 2022 Dr. Amir Alush and Dr. Danny Bickson.utes\n",
"2023-07-19 17:25:58 [INFO] Going to loop over dir /tmp/crops_input.csv\n",
"2023-07-19 17:25:58 [INFO] Found total 2601 images to run on, 2601 train, 0 test, name list 2601, counter 2601 \n",
"2023-07-19 17:26:04 [INFO] Found total 2601 images to run ontimated: 0 Minutes\n",
"Finished histogram 0.412\n",
"Finished bucket sort 0.421\n",
"2023-07-19 17:26:04 [INFO] 74) Finished write_index() NN model\n",
"2023-07-19 17:26:04 [INFO] Stored nn model index file work_dir/nnf.index\n",
"2023-07-19 17:26:04 [INFO] Total time took 6161 ms\n",
"2023-07-19 17:26:04 [INFO] Found a total of 4 fully identical images (d>0.990), which are 0.08 %\n",
"2023-07-19 17:26:04 [INFO] Found a total of 26 nearly identical images(d>0.980), which are 0.50 %\n",
"2023-07-19 17:26:04 [INFO] Found a total of 1521 above threshold images (d>0.900), which are 29.24 %\n",
"2023-07-19 17:26:04 [INFO] Found a total of 260 outlier images (d<0.050), which are 5.00 %\n",
"2023-07-19 17:26:04 [INFO] Min distance found 0.515 max distance 0.992\n",
"2023-07-19 17:26:04 [INFO] Running connected components for ccthreshold 0.960000 \n",
".0\n",
" ########################################################################################\n",
"\n",
"Dataset Analysis Summary: \n",
"\n",
" Dataset contains 2601 images\n",
" Valid images are 100.00% (2,601) of the data, invalid are 0.00% (0) of the data\n",
" Similarity: 3.65% (95) belong to 8 similarity clusters (components).\n",
" 96.35% (2,506) images do not belong to any similarity cluster.\n",
" Largest cluster has 28 (1.08%) images.\n",
" For a detailed analysis, use `.connected_components()`\n",
"(similarity threshold used is 0.9, connected component threshold used is 0.96).\n",
"\n",
" Outliers: 6.34% (165) of images are possible outliers, and fall in the bottom 5.00% of similarity values.\n",
" For a detailed list of outliers, use `.outliers()`.\n"
]
},
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fd.run(bounding_box='face')"
]
},
{
"cell_type": "markdown",
"id": "d6098b39-9ac7-4766-a0eb-e5ff255ce05d",
"metadata": {},
"source": [
"## Components Gallery\n",
"\n",
"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."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "c13076de-3cf2-428f-866f-24278b082c02",
"metadata": {
"scrolled": false,
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 94.44it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Finished OK. Components are stored as image files work_dir/galleries/components_[index].jpg\n",
"Stored components visual view in work_dir/galleries/components.html\n",
"Execution time in seconds 0.3\n"
]
},
{
"data": {
"text/html": [
" \n",
" \n",
" \n",
"
\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" Components Report\n",
" \n",
" \n",
"\n",
"\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
Components Report
Showing groups of similar images
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1800 | \n",
"
\n",
"\n",
" num_images | \n",
" 8 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9609 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 431 | \n",
"
\n",
"\n",
" num_images | \n",
" 7 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9646 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1283 | \n",
"
\n",
"\n",
" num_images | \n",
" 5 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9664 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 296 | \n",
"
\n",
"\n",
" num_images | \n",
" 5 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9604 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1751 | \n",
"
\n",
"\n",
" num_images | \n",
" 5 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9675 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 760 | \n",
"
\n",
"\n",
" num_images | \n",
" 4 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9614 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1389 | \n",
"
\n",
"\n",
" num_images | \n",
" 4 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9603 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 344 | \n",
"
\n",
"\n",
" num_images | \n",
" 4 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9625 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 347 | \n",
"
\n",
"\n",
" num_images | \n",
" 4 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9631 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 2319 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9623 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 902 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9686 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 685 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9686 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1487 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9605 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1837 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9658 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 202 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9617 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 416 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9615 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 2097 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9684 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1605 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9748 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1483 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9603 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1758 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9645 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
"
\n",
" \n",
" \n",
" \n",
" \n",
" "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fd.vis.component_gallery(draw_bbox=True)"
]
},
{
"cell_type": "markdown",
"id": "057288e5-3787-448b-b218-2cb0c3bd2926",
"metadata": {},
"source": [
"If you'd like to view just the cropped bounding box images, specify `draw_bbox=False`"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "3edfd955-da16-455d-9089-87ee06161d9c",
"metadata": {
"scrolled": false,
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 96.57it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Finished OK. Components are stored as image files work_dir/galleries/components_[index].jpg\n",
"Stored components visual view in work_dir/galleries/components.html\n",
"Execution time in seconds 0.5\n"
]
},
{
"data": {
"text/html": [
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" Components Report\n",
" \n",
" \n",
"\n",
"\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
Components Report
Showing groups of similar images
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1800 | \n",
"
\n",
"\n",
" num_images | \n",
" 8 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9609 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 431 | \n",
"
\n",
"\n",
" num_images | \n",
" 7 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9646 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1283 | \n",
"
\n",
"\n",
" num_images | \n",
" 5 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9664 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 296 | \n",
"
\n",
"\n",
" num_images | \n",
" 5 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9604 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1751 | \n",
"
\n",
"\n",
" num_images | \n",
" 5 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9675 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 760 | \n",
"
\n",
"\n",
" num_images | \n",
" 4 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9614 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1389 | \n",
"
\n",
"\n",
" num_images | \n",
" 4 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9603 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 344 | \n",
"
\n",
"\n",
" num_images | \n",
" 4 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9625 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 347 | \n",
"
\n",
"\n",
" num_images | \n",
" 4 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9631 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 2319 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9623 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 902 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9686 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 685 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9686 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1487 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9605 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1837 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9658 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 202 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9617 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 416 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9615 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 2097 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9684 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1605 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9748 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1483 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9603 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" component | \n",
" 1758 | \n",
"
\n",
"\n",
" num_images | \n",
" 3 | \n",
"
\n",
"\n",
" mean_distance | \n",
" 0.9645 | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
"
\n",
" \n",
" \n",
" \n",
" \n",
" "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fd.vis.component_gallery(draw_bbox=False)"
]
},
{
"cell_type": "markdown",
"id": "9f81f218-2b43-4eaf-9305-91e6f4ce2890",
"metadata": {},
"source": [
"## Find Similar Faces Across Videos\n",
"\n",
"Using the `similarity_gallery` view, we can find similar looking faces (bounding boxes) across all the extracted frames."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "ae3e6a8d-340d-4dfb-a91a-32fde7522325",
"metadata": {
"scrolled": false,
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"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()\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|███████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 159.94it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Stored similar images visual view in work_dir/galleries/similarity.html\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
},
{
"data": {
"text/html": [
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" Similarity Report\n",
" \n",
" \n",
"\n",
"\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
Similarity Report
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6893028172024139009.mp4output_000001.jpg_108_226_314_314.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.900107 | \n",
" /crops/tmpdatavideos6893028172024139009.mp4output_000002.jpg_104_193_328_329.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6893028172024139009.mp4output_000002.jpg_104_193_328_329.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.900107 | \n",
" /crops/tmpdatavideos6893028172024139009.mp4output_000001.jpg_108_226_314_314.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6894926988453186817.mp4output_000001.jpg_464_363_109_110.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.900234 | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000006.jpg_87_403_107_107.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6898859679217143046.mp4output_000002.jpg_208_393_70_71.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.914902 | \n",
" /crops/tmpdatavideos6900102046876208386.mp4output_000005.jpg_128_323_69_69.jpg | \n",
"
\n",
"\n",
" 0.900285 | \n",
" /crops/tmpdatavideos6900102046876208386.mp4output_000001.jpg_144_325_72_73.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6907966191059356929.mp4output_000008.jpg_240_283_87_88.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.900746 | \n",
" /crops/tmpdatavideos6879844969687878914.mp4output_000003.jpg_269_312_107_107.jpg | \n",
"
\n",
"\n",
" 0.900293 | \n",
" /crops/tmpdatavideos6903969832719453445.mp4output_000001.jpg_182_86_124_125.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6892822437671570690.mp4output_000008.jpg_164_121_327_327.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.91507 | \n",
" /crops/tmpdatavideos6884868479267147010.mp4output_000002.jpg_131_162_188_188.jpg | \n",
"
\n",
"\n",
" 0.900367 | \n",
" /crops/tmpdatavideos6902048470417378561.mp4output_000006.jpg_6_278_157_158.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6882770369573358853.mp4output_000004.jpg_167_302_153_153.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.900385 | \n",
" /crops/tmpdatavideos6882770369573358853.mp4output_000002.jpg_194_265_134_135.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6905408660185320706.mp4output_000007.jpg_296_200_96_96.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.944158 | \n",
" /crops/tmpdatavideos6905408660185320706.mp4output_000006.jpg_301_204_87_87.jpg | \n",
"
\n",
"\n",
" 0.900426 | \n",
" /crops/tmpdatavideos6905408660185320706.mp4output_000009.jpg_274_221_82_83.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6908111363365768453.mp4output_000009.jpg_251_401_30_30.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.900526 | \n",
" /crops/tmpdatavideos6908111363365768453.mp4output_000005.jpg_237_324_22_22.jpg | \n",
"
\n",
"\n",
" 0.900448 | \n",
" /crops/tmpdatavideos6881337151901027586.mp4output_000002.jpg_740_88_15_16.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6908336148037274881.mp4output_000001.jpg_107_271_280_280.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.900558 | \n",
" /crops/tmpdatavideos6905356954621824257.mp4output_000003.jpg_240_355_169_170.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6879844969687878914.mp4output_000003.jpg_269_312_107_107.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.964597 | \n",
" /crops/tmpdatavideos6879844969687878914.mp4output_000001.jpg_288_336_93_93.jpg | \n",
"
\n",
"\n",
" 0.900746 | \n",
" /crops/tmpdatavideos6907966191059356929.mp4output_000008.jpg_240_283_87_88.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6880508779109125378.mp4output_000002.jpg_253_300_299_299.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.900761 | \n",
" /crops/tmpdatavideos6880508779109125378.mp4output_000003.jpg_134_252_320_321.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6880508779109125378.mp4output_000003.jpg_134_252_320_321.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.919843 | \n",
" /crops/tmpdatavideos6880508779109125378.mp4output_000005.jpg_151_260_286_287.jpg | \n",
"
\n",
"\n",
" 0.900761 | \n",
" /crops/tmpdatavideos6880508779109125378.mp4output_000002.jpg_253_300_299_299.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6907966191059356929.mp4output_000001.jpg_149_328_135_135.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.900823 | \n",
" /crops/tmpdatavideos6905109455466220805.mp4output_000001.jpg_218_215_132_132.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6904726306047446274.mp4output_000002.jpg_166_590_225_226.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.900903 | \n",
" /crops/tmpdatavideos6904726306047446274.mp4output_000002.jpg_165_40_220_220.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6904726306047446274.mp4output_000002.jpg_165_40_220_220.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.90422 | \n",
" /crops/tmpdatavideos6904726306047446274.mp4output_000002.jpg_146_355_248_248.jpg | \n",
"
\n",
"\n",
" 0.900903 | \n",
" /crops/tmpdatavideos6904726306047446274.mp4output_000002.jpg_166_590_225_226.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6908111363365768453.mp4output_000002.jpg_443_321_23_23.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.900976 | \n",
" /crops/tmpdatavideos6908113835845012742.mp4output_000001.jpg_232_205_22_23.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6908113835845012742.mp4output_000001.jpg_232_205_22_23.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.907924 | \n",
" /crops/tmpdatavideos6908111363365768453.mp4output_000002.jpg_339_304_19_20.jpg | \n",
"
\n",
"\n",
" 0.900976 | \n",
" /crops/tmpdatavideos6908111363365768453.mp4output_000002.jpg_443_321_23_23.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6878259877353966850.mp4output_000002.jpg_64_143_162_163.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.901061 | \n",
" /crops/tmpdatavideos6878259877353966850.mp4output_000007.jpg_18_147_185_185.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info From | \n",
"
\n",
"\n",
" from | \n",
" /crops/tmpdatavideos6878259877353966850.mp4output_000007.jpg_18_147_185_185.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info To | \n",
"
\n",
"\n",
" 0.901061 | \n",
" /crops/tmpdatavideos6878259877353966850.mp4output_000002.jpg_64_143_162_163.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tQuery Image | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\tSimilar | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t\t\t\t | \n",
"\t\t\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t\t\t\n",
"\t\t\t\t\t\t\t
\n",
"\t\t\t\t\t\t
\n",
"\t\t\t\t\t
\n",
"
\n",
" \n",
"
\n",
" \n",
" \n",
" \n",
" \n",
" "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" from | \n",
" to | \n",
" distance | \n",
"
\n",
" \n",
" \n",
" \n",
" 445 | \n",
" work_dir/crops/framestmpdatavideos6893028172024139009.mp4output_000001.jpg_108_226_314_314.jpg | \n",
" [work_dir/crops/framestmpdatavideos6893028172024139009.mp4output_000002.jpg_104_193_328_329.jpg] | \n",
" [0.900107] | \n",
"
\n",
" \n",
" 446 | \n",
" work_dir/crops/framestmpdatavideos6893028172024139009.mp4output_000002.jpg_104_193_328_329.jpg | \n",
" [work_dir/crops/framestmpdatavideos6893028172024139009.mp4output_000001.jpg_108_226_314_314.jpg] | \n",
" [0.900107] | \n",
"
\n",
" \n",
" 469 | \n",
" work_dir/crops/framestmpdatavideos6894926988453186817.mp4output_000001.jpg_464_363_109_110.jpg | \n",
" [work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000006.jpg_87_403_107_107.jpg] | \n",
" [0.900234] | \n",
"
\n",
" \n",
" 545 | \n",
" work_dir/crops/framestmpdatavideos6898859679217143046.mp4output_000002.jpg_208_393_70_71.jpg | \n",
" [work_dir/crops/framestmpdatavideos6900102046876208386.mp4output_000001.jpg_144_325_72_73.jpg, work_dir/crops/framestmpdatavideos6900102046876208386.mp4output_000005.jpg_128_323_69_69.jpg] | \n",
" [0.900285, 0.914902] | \n",
"
\n",
" \n",
" 915 | \n",
" work_dir/crops/framestmpdatavideos6907966191059356929.mp4output_000008.jpg_240_283_87_88.jpg | \n",
" [work_dir/crops/framestmpdatavideos6903969832719453445.mp4output_000001.jpg_182_86_124_125.jpg, work_dir/crops/framestmpdatavideos6879844969687878914.mp4output_000003.jpg_269_312_107_107.jpg] | \n",
" [0.900293, 0.900746] | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 580 | \n",
" work_dir/crops/framestmpdatavideos6900185373540961537.mp4output_000006.jpg_66_276_426_427.jpg | \n",
" [work_dir/crops/framestmpdatavideos6900185373540961537.mp4output_000007.jpg_85_277_411_412.jpg, work_dir/crops/framestmpdatavideos6900185373540961537.mp4output_000005.jpg_53_256_438_439.jpg] | \n",
" [0.985127, 0.985668] | \n",
"
\n",
" \n",
" 182 | \n",
" work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000006.jpg_87_403_107_107.jpg | \n",
" [work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000004.jpg_86_401_109_109.jpg, work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000005.jpg_88_403_106_107.jpg] | \n",
" [0.988635, 0.98904] | \n",
"
\n",
" \n",
" 180 | \n",
" work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000005.jpg_88_403_106_107.jpg | \n",
" [work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000003.jpg_86_403_108_108.jpg, work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000004.jpg_86_401_109_109.jpg] | \n",
" [0.989452, 0.991009] | \n",
"
\n",
" \n",
" 176 | \n",
" work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000003.jpg_86_403_108_108.jpg | \n",
" [work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000005.jpg_88_403_106_107.jpg, work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000004.jpg_86_401_109_109.jpg] | \n",
" [0.989452, 0.992416] | \n",
"
\n",
" \n",
" 178 | \n",
" work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000004.jpg_86_401_109_109.jpg | \n",
" [work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000005.jpg_88_403_106_107.jpg, work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000003.jpg_86_403_108_108.jpg] | \n",
" [0.991009, 0.992416] | \n",
"
\n",
" \n",
"
\n",
"
950 rows × 3 columns
\n",
"
"
],
"text/plain": [
" from to distance\n",
"445 work_dir/crops/framestmpdatavideos6893028172024139009.mp4output_000001.jpg_108_226_314_314.jpg [work_dir/crops/framestmpdatavideos6893028172024139009.mp4output_000002.jpg_104_193_328_329.jpg] [0.900107]\n",
"446 work_dir/crops/framestmpdatavideos6893028172024139009.mp4output_000002.jpg_104_193_328_329.jpg [work_dir/crops/framestmpdatavideos6893028172024139009.mp4output_000001.jpg_108_226_314_314.jpg] [0.900107]\n",
"469 work_dir/crops/framestmpdatavideos6894926988453186817.mp4output_000001.jpg_464_363_109_110.jpg [work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000006.jpg_87_403_107_107.jpg] [0.900234]\n",
"545 work_dir/crops/framestmpdatavideos6898859679217143046.mp4output_000002.jpg_208_393_70_71.jpg [work_dir/crops/framestmpdatavideos6900102046876208386.mp4output_000001.jpg_144_325_72_73.jpg, work_dir/crops/framestmpdatavideos6900102046876208386.mp4output_000005.jpg_128_323_69_69.jpg] [0.900285, 0.914902]\n",
"915 work_dir/crops/framestmpdatavideos6907966191059356929.mp4output_000008.jpg_240_283_87_88.jpg [work_dir/crops/framestmpdatavideos6903969832719453445.mp4output_000001.jpg_182_86_124_125.jpg, work_dir/crops/framestmpdatavideos6879844969687878914.mp4output_000003.jpg_269_312_107_107.jpg] [0.900293, 0.900746]\n",
".. ... ... ...\n",
"580 work_dir/crops/framestmpdatavideos6900185373540961537.mp4output_000006.jpg_66_276_426_427.jpg [work_dir/crops/framestmpdatavideos6900185373540961537.mp4output_000007.jpg_85_277_411_412.jpg, work_dir/crops/framestmpdatavideos6900185373540961537.mp4output_000005.jpg_53_256_438_439.jpg] [0.985127, 0.985668]\n",
"182 work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000006.jpg_87_403_107_107.jpg [work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000004.jpg_86_401_109_109.jpg, work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000005.jpg_88_403_106_107.jpg] [0.988635, 0.98904]\n",
"180 work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000005.jpg_88_403_106_107.jpg [work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000003.jpg_86_403_108_108.jpg, work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000004.jpg_86_401_109_109.jpg] [0.989452, 0.991009]\n",
"176 work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000003.jpg_86_403_108_108.jpg [work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000005.jpg_88_403_106_107.jpg, work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000004.jpg_86_401_109_109.jpg] [0.989452, 0.992416]\n",
"178 work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000004.jpg_86_401_109_109.jpg [work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000005.jpg_88_403_106_107.jpg, work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000003.jpg_86_403_108_108.jpg] [0.991009, 0.992416]\n",
"\n",
"[950 rows x 3 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fd.vis.similarity_gallery(draw_bbox=False)"
]
},
{
"cell_type": "markdown",
"id": "7cf59dc4-9fd9-4e5a-a502-c8b715b772a3",
"metadata": {},
"source": [
"## Find Outliers\n",
"\n",
"Useing the `outliers_gallery` we can also viaualize faces (detections) that looks visually different from others."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "5e774ad3-3817-417f-915c-31efbb544fbc",
"metadata": {
"scrolled": false,
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|█████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 36472.21it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Stored outliers visual view in work_dir/galleries/outliers.html\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
},
{
"data": {
"text/html": [
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" Outliers Report\n",
" \n",
" \n",
"\n",
"\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
Outliers Report
Showing image outliers, one per row
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.514605 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6887590237191572738.mp4output_000003.jpg_241_170_367_368.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.580074 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6883565215552654593.mp4output_000003.jpg_297_57_102_102.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.58022 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6906845094473649410.mp4output_000013.jpg_-31_27_625_625.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.589064 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6899843622355750145.mp4output_000006.jpg_379_620_253_254.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.604467 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6889446389349125377.mp4output_000002.jpg_363_424_150_150.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.60738 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6903527132979318018.mp4output_000002.jpg_135_110_372_372.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.608474 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6883211681988627714.mp4output_000002.jpg_18_522_203_204.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.613461 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6895808596605537537.mp4output_000004.jpg_408_616_102_102.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.622279 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6876760427229957377.mp4output_000003.jpg_121_166_454_455.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.625425 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6893823598432226561.mp4output_000004.jpg_423_347_85_86.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.629866 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6888826582786395394.mp4output_000004.jpg_188_87_108_109.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.633858 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6893611785295793410.mp4output_000010.jpg_31_102_538_538.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.63795 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6899811757322194177.mp4output_000008.jpg_54_647_198_198.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.6449 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6876760427229957377.mp4output_000004.jpg_172_249_405_405.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.651065 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6901655785407909121.mp4output_000011.jpg_230_219_280_279.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.653297 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6876512902929599745.mp4output_000002.jpg_203_393_311_311.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.658602 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6904743507693554950.mp4output_000002.jpg_205_248_70_69.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.659422 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6905464131097332997.mp4output_000011.jpg_38_192_206_207.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.659685 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6902555378651794690.mp4output_000003.jpg_48_346_78_78.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.6606 | \n",
"
\n",
"\n",
" Path | \n",
" /crops/tmpdatavideos6884400510699343109.mp4output_000002.jpg_-10_51_167_168.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
"
\n",
" \n",
" \n",
" \n",
" \n",
" "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fd.vis.outliers_gallery()"
]
},
{
"cell_type": "markdown",
"id": "720944df-3bce-44ba-876f-8b383a84445b",
"metadata": {},
"source": [
"## Duplicate Faces\n",
"\n",
"With the `duplicates_gallery` view, visualize duplicate image pairs across videos."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "00bf2f0c-ac22-4fd4-b245-9fbed745a128",
"metadata": {
"scrolled": false,
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|███████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 289.18it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Stored similarity visual view in work_dir/galleries/duplicates.html\n"
]
},
{
"data": {
"text/html": [
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" Duplicates Report\n",
" \n",
" \n",
"\n",
"\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
Duplicates Report
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.992416 | \n",
"
\n",
"\n",
" From | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000004.jpg_86_401_109_109.jpg | \n",
"
\n",
"\n",
" To | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000003.jpg_86_403_108_108.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.991009 | \n",
"
\n",
"\n",
" From | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000004.jpg_86_401_109_109.jpg | \n",
"
\n",
"\n",
" To | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000005.jpg_88_403_106_107.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.989964 | \n",
"
\n",
"\n",
" From | \n",
" /crops/tmpdatavideos6902115301094116610.mp4output_000002.jpg_-20_98_638_638.jpg | \n",
"
\n",
"\n",
" To | \n",
" /crops/tmpdatavideos6902115301094116610.mp4output_000002.jpg_94_34_631_632.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.989452 | \n",
"
\n",
"\n",
" From | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000003.jpg_86_403_108_108.jpg | \n",
"
\n",
"\n",
" To | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000005.jpg_88_403_106_107.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.98904 | \n",
"
\n",
"\n",
" From | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000006.jpg_87_403_107_107.jpg | \n",
"
\n",
"\n",
" To | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000005.jpg_88_403_106_107.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.988635 | \n",
"
\n",
"\n",
" From | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000006.jpg_87_403_107_107.jpg | \n",
"
\n",
"\n",
" To | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000004.jpg_86_401_109_109.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.986793 | \n",
"
\n",
"\n",
" From | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000007.jpg_85_402_109_109.jpg | \n",
"
\n",
"\n",
" To | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000004.jpg_86_401_109_109.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.986601 | \n",
"
\n",
"\n",
" From | \n",
" /crops/tmpdatavideos6907916640386813185.mp4output_000002.jpg_-55_152_587_587.jpg | \n",
"
\n",
"\n",
" To | \n",
" /crops/tmpdatavideos6907916640386813185.mp4output_000002.jpg_-82_74_682_683.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.986283 | \n",
"
\n",
"\n",
" From | \n",
" /crops/tmpdatavideos6891256269898878209.mp4output_000001.jpg_328_498_105_106.jpg | \n",
"
\n",
"\n",
" To | \n",
" /crops/tmpdatavideos6891256269898878209.mp4output_000001.jpg_58_498_105_106.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.985668 | \n",
"
\n",
"\n",
" From | \n",
" /crops/tmpdatavideos6900185373540961537.mp4output_000006.jpg_66_276_426_427.jpg | \n",
"
\n",
"\n",
" To | \n",
" /crops/tmpdatavideos6900185373540961537.mp4output_000005.jpg_53_256_438_439.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.985127 | \n",
"
\n",
"\n",
" From | \n",
" /crops/tmpdatavideos6900185373540961537.mp4output_000006.jpg_66_276_426_427.jpg | \n",
"
\n",
"\n",
" To | \n",
" /crops/tmpdatavideos6900185373540961537.mp4output_000007.jpg_85_277_411_412.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" Distance | \n",
" 0.982388 | \n",
"
\n",
"\n",
" From | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000007.jpg_85_402_109_109.jpg | \n",
"
\n",
"\n",
" To | \n",
" /crops/tmpdatavideos6881624031561354498.mp4output_000003.jpg_86_403_108_108.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
"
\n",
" \n",
" \n",
" \n",
" \n",
" "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fd.vis.duplicates_gallery()"
]
},
{
"cell_type": "markdown",
"id": "49078755-13d3-4420-85bb-7c772bf203a9",
"metadata": {},
"source": [
"## Dark Faces\n",
"\n",
"Using the `stats_gallery` view, we can sort the faces (detections) following a desired `metric` such as 'dark', 'bright' and 'blur'. "
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "5977b2db-6dd9-404e-9af5-53dd6292f87f",
"metadata": {
"scrolled": false,
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|███████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 915.34it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Stored mean visual view in work_dir/galleries/mean.html\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
},
{
"data": {
"text/html": [
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" Dark Image Report\n",
" \n",
" \n",
"\n",
"\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
Dark Image Report
Showing example images, sort by ascending order
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 8.5671 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6880196605513927938.mp4output_000001.jpg_229_552_72_72.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 26.7448 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6879756807481363714.mp4output_000001.jpg_305_327_125_126.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 27.1013 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6904429617021570306.mp4output_000002.jpg_5_226_510_510.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 31.4957 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6890302116246637825.mp4output_000004.jpg_299_310_53_54.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 31.9603 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6899519135198383361.mp4output_000001.jpg_47_364_510_511.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 34.2201 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6887366313526709510.mp4output_000001.jpg_525_531_63_63.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 35.0411 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6903954146630569217.mp4output_000003.jpg_128_381_309_310.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 35.128 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6888753654594145537.mp4output_000003.jpg_161_219_78_78.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 35.4265 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6879756807481363714.mp4output_000001.jpg_390_251_185_186.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 35.7428 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6896035426092453122.mp4output_000003.jpg_268_244_109_110.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 35.8017 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6906416223785864450.mp4output_000009.jpg_315_413_107_108.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 37.19 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6904338682598264069.mp4output_000002.jpg_509_159_118_118.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 37.8822 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6895317957522541825.mp4output_000001.jpg_305_233_78_79.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 38.4048 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6879756807481363714.mp4output_000002.jpg_176_328_143_143.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 38.5578 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6888753654594145537.mp4output_000001.jpg_164_194_74_74.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 38.792 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6888753654594145537.mp4output_000005.jpg_232_182_77_78.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 39.2471 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6903508885970193666.mp4output_000002.jpg_195_244_170_171.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 39.9138 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6898451979207478533.mp4output_000002.jpg_81_420_427_427.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 40.1049 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6888753654594145537.mp4output_000002.jpg_177_196_72_72.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 40.5458 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6903508885970193666.mp4output_000001.jpg_212_245_159_160.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
"
\n",
" \n",
" \n",
" \n",
" \n",
" "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fd.vis.stats_gallery(metric='dark')"
]
},
{
"cell_type": "markdown",
"id": "8ff9bdf8-89d9-4851-8911-30ca555210b6",
"metadata": {},
"source": [
"## Bright Faces"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "2d27902d-cd84-4f23-b86b-4eb9cfd7f863",
"metadata": {
"scrolled": false,
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|███████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 942.43it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Stored mean visual view in work_dir/galleries/mean.html\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
},
{
"data": {
"text/html": [
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" Bright Image Report\n",
" \n",
" \n",
"\n",
"\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
Bright Image Report
Showing example images, sort by descending order
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 221.7963 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6876643374548438274.mp4output_000002.jpg_286_118_163_163.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 205.7566 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6880877914078842113.mp4output_000007.jpg_199_338_79_80.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 199.6193 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6889818292337249538.mp4output_000002.jpg_-15_318_41_42.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 198.4267 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6880865616215952641.mp4output_000001.jpg_12_114_141_141.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 197.0202 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6889818292337249538.mp4output_000002.jpg_262_311_131_131.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 196.4462 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6882419822806699266.mp4output_000008.jpg_98_355_291_292.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 196.391 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6903527132979318018.mp4output_000002.jpg_135_110_372_372.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 196.3521 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6895072166828576001.mp4output_000002.jpg_310_117_128_128.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 195.3396 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6880865616215952641.mp4output_000001.jpg_186_115_138_139.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 194.2339 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6886265289206435074.mp4output_000001.jpg_154_1_73_73.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 191.5907 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6879772200065436929.mp4output_000003.jpg_48_62_495_496.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 188.7971 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6880865616215952641.mp4output_000001.jpg_361_119_134_135.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 187.814 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6887443398446550273.mp4output_000007.jpg_197_116_319_319.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 186.1103 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6903809474268646658.mp4output_000004.jpg_241_166_161_161.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 184.3437 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6886265289206435074.mp4output_000003.jpg_465_206_110_110.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 184.0396 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6887443398446550273.mp4output_000005.jpg_341_14_165_165.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 183.8954 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6895072166828576001.mp4output_000004.jpg_205_196_122_123.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 183.4268 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6898706823541542146.mp4output_000001.jpg_173_412_53_54.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 183.0331 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6880865616215952641.mp4output_000002.jpg_16_230_97_97.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" mean | \n",
" 182.9362 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6881624031561354498.mp4output_000001.jpg_90_401_105_105.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
"
\n",
" \n",
" \n",
" \n",
" \n",
" "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fd.vis.stats_gallery(metric='bright')"
]
},
{
"cell_type": "markdown",
"id": "d35bd1bd-a008-417e-9015-e7149e91fb7f",
"metadata": {},
"source": [
"## Blurry Faces"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "3d9dd6ff-165a-48e3-a498-6e719f253b9a",
"metadata": {
"scrolled": false,
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|██████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 1283.90it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Stored blur visual view in work_dir/galleries/blur.html\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
},
{
"data": {
"text/html": [
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" Blurry Image Report\n",
" \n",
" \n",
"\n",
"\n",
"\n",
" \n",
" \n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
Blurry Image Report
Showing example images, sort by ascending order
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 10.4621 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6899843622355750145.mp4output_000005.jpg_165_197_119_119.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 13.3688 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6888826582786395394.mp4output_000002.jpg_193_131_126_127.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 13.3961 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6883565215552654593.mp4output_000003.jpg_297_57_102_102.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 13.9902 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6907233534893640965.mp4output_000004.jpg_254_30_106_106.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 14.4526 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6896784100976315650.mp4output_000002.jpg_217_67_216_217.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 14.8597 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6908401262065143045.mp4output_000003.jpg_347_166_133_133.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 16.5734 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6902038249573731586.mp4output_000003.jpg_215_160_109_110.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 16.819 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6884981528430988546.mp4output_000002.jpg_197_316_138_139.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 17.0862 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6907233534893640965.mp4output_000003.jpg_293_177_110_110.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 17.1943 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6888826582786395394.mp4output_000003.jpg_314_231_187_187.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 17.2756 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6889712383049108737.mp4output_000001.jpg_236_179_154_155.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 18.25 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6876262384093236485.mp4output_000001.jpg_418_23_158_158.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 18.2907 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6875862825932180738.mp4output_000003.jpg_-59_22_263_263.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 18.5076 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6891434870057340162.mp4output_000005.jpg_286_67_190_190.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 18.8363 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6882670049648200962.mp4output_000002.jpg_358_271_134_135.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 18.9778 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6900256765527477506.mp4output_000002.jpg_211_19_155_156.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 19.1664 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6908401262065143045.mp4output_000003.jpg_100_168_200_200.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 19.9851 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6884265104637005057.mp4output_000003.jpg_62_241_155_156.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 20.2691 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6889831681469975810.mp4output_000002.jpg_288_178_165_166.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
" Info | \n",
"
\n",
"\n",
" blur | \n",
" 20.979 | \n",
"
\n",
"\n",
" filename | \n",
" work_dir/crops/framestmpdatavideos6894393861238557954.mp4output_000001.jpg_196_112_23_24.jpg | \n",
"
\n",
" \n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
"
\n",
" \n",
" \n",
" \n",
" \n",
" "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fd.vis.stats_gallery(metric='blur')"
]
},
{
"cell_type": "markdown",
"id": "689f05a4-37c3-452a-a085-2f0d05155ae5",
"metadata": {},
"source": [
"## Wrap Up\n",
"\n",
"Next, feel free to check out other tutorials -\n",
"\n",
"+ ⚡ [**Quickstart**](https://nbviewer.org/github/visual-layer/fastdup/blob/main/examples/quick-dataset-analysis.ipynb): 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!\n",
"+ 🧹 [**Clean Image Folder**](https://nbviewer.org/github/visual-layer/fastdup/blob/main/examples/cleaning-image-dataset.ipynb): 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.\n",
"+ 🖼 [**Analyze Image Classification Dataset**](https://nbviewer.org/github/visual-layer/fastdup/blob/main/examples/analyzing-image-classification-dataset.ipynb): 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!\n",
"+ 🎁 [**Analyze Object Detection Dataset**](https://nbviewer.org/github/visual-layer/fastdup/blob/main/examples/analyzing-object-detection-dataset.ipynb): 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. \n"
]
},
{
"cell_type": "markdown",
"id": "4a6cae51",
"metadata": {},
"source": [
"\n",
"## VL Profiler\n",
"If you prefer a no-code platform to inspect and visualize your dataset, [**try our free cloud product VL Profiler**](https://app.visual-layer.com) - VL Profiler is our first no-code commercial product that lets you visualize and inspect your dataset in your browser. \n",
"\n",
"[Sign up](https://app.visual-layer.com) now, it's free.\n",
"\n",
"[![image](https://raw.githubusercontent.com/visual-layer/fastdup/main/gallery/vl_profiler_promo.svg)](https://app.visual-layer.com)\n",
"\n",
"As usual, feedback is welcome! \n",
"\n",
"Questions? Drop by our [Slack channel](https://visualdatabase.slack.com/join/shared_invite/zt-19jaydbjn-lNDEDkgvSI1QwbTXSY6dlA#/shared-invite/email) or open an issue on [GitHub](https://github.com/visual-layer/fastdup/issues)."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}