{ "cells": [ { "cell_type": "markdown", "id": "79e47a0f-eb0a-43f1-81f1-26ef84a3ab2f", "metadata": {}, "source": [ "# Face Detection from Videos\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.\n", "\n", "> 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 ." ] }, { "cell_type": "markdown", "id": "cef8afd5-45d1-400b-b5a2-8b56095ae66c", "metadata": {}, "source": [ "## Installation & Setting Up" ] }, { "cell_type": "code", "execution_count": 1, "id": "1fb73f7e-1bd9-4e8e-b113-94a714abca73", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: pip in /home/dnth/anaconda3/lib/python3.9/site-packages (23.0.1)\n", "Requirement already satisfied: fastdup in /home/dnth/anaconda3/lib/python3.9/site-packages (0.910)\n", "Requirement already satisfied: tqdm in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (4.62.3)\n", "Requirement already satisfied: requests==2.28.1 in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (2.28.1)\n", "Requirement already satisfied: packaging in /home/dnth/.local/lib/python3.9/site-packages (from fastdup) (23.0)\n", "Requirement already satisfied: pillow in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (8.4.0)\n", "Requirement already satisfied: pandas in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (1.3.4)\n", "Requirement already satisfied: pyyaml in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (6.0)\n", "Requirement already satisfied: opencv-python-headless in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (4.7.0.72)\n", "Requirement already satisfied: sentry-sdk in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (1.18.0)\n", "Requirement already satisfied: numpy in /home/dnth/anaconda3/lib/python3.9/site-packages (from fastdup) (1.22.4)\n", "Requirement already satisfied: idna<4,>=2.5 in /home/dnth/anaconda3/lib/python3.9/site-packages (from requests==2.28.1->fastdup) (3.2)\n", "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)\n", "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)\n", "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)\n", "Requirement already satisfied: python-dateutil>=2.7.3 in /home/dnth/anaconda3/lib/python3.9/site-packages (from pandas->fastdup) (2.8.2)\n", "Requirement already satisfied: pytz>=2017.3 in /home/dnth/anaconda3/lib/python3.9/site-packages (from pandas->fastdup) (2021.3)\n", "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)\n" ] } ], "source": [ "!pip install pip -U\n", "!pip install fastdup" ] }, { "cell_type": "code", "execution_count": 2, "id": "90d6aea7-f03e-4a9c-ba2c-dee490579304", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "'0.910'" ] }, "execution_count": 2, "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": "code", "execution_count": 3, "id": "a9525826-b454-43e4-a359-969e44335861", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading...\n", "From (uriginal): https://drive.google.com/uc?id=1fzmOgmRu557aU4lEbzL7XCf78KntFCeQ\n", "From (redirected): https://drive.google.com/uc?id=1fzmOgmRu557aU4lEbzL7XCf78KntFCeQ&confirm=t&uuid=db84e559-48c6-4aea-90ef-3dd49ddd7340\n", "To: /media/dnth/Active-Projects/fastdup/examples/data.zip\n", "100%|██████████████████████████████████████| 56.9M/56.9M [00:05<00:00, 10.6MB/s]\n" ] } ], "source": [ "!gdown --fuzzy https://drive.google.com/file/d/1fzmOgmRu557aU4lEbzL7XCf78KntFCeQ/view" ] }, { "cell_type": "code", "execution_count": 4, "id": "02650635-fb41-47f5-bd5c-ea78e8c80b15", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Archive: data.zip\n", " creating: data/\n", " inflating: data/video_14.mp4 \n", " inflating: data/video_13.mp4 \n", " inflating: data/video_12.mp4 \n", " inflating: data/video_9.mp4 \n", " inflating: data/video_15.mp4 \n", " inflating: data/video_10.mp4 \n", " inflating: data/video_11.mp4 \n", " inflating: data/video_8.mp4 \n", " inflating: data/video_1.mp4 \n", " inflating: data/video_2.mp4 \n", " inflating: data/video_3.mp4 \n", " inflating: data/video_4.mp4 \n", " inflating: data/video_5.mp4 \n", " inflating: data/video_6.mp4 \n", " inflating: data/video_7.mp4 \n" ] } ], "source": [ "!unzip data.zip" ] }, { "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": 5, "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-03-29 17:11:53 [INFO] Going to loop over dir data\n", "2023-03-29 17:11:53 [INFO] Found total 15 videos to run on\n" ] }, { "data": { "text/plain": [ "0" ] }, "execution_count": 5, "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": 6, "id": "bd3bf19f-1322-46cc-bfc3-d8db50689367", "metadata": { "tags": [] }, "outputs": [], "source": [ "fd = fastdup.create(input_dir='frames', work_dir='face_detection_work_dir')" ] }, { "cell_type": "markdown", "id": "8f872fa0-35a3-4eb1-80b8-20a415bbd4d5", "metadata": {}, "source": [ "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 ." ] }, { "cell_type": "code", "execution_count": 7, "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-03-29 17:11:55 [INFO] Going to loop over dir frames\n", "2023-03-29 17:11:55 [INFO] Found total 99 images to run on\n", "FastDup Software, (C) copyright 2022 Dr. Amir Alush and Dr. Danny Bickson.utes 0 Features\n", "2023-03-29 17:11:58 [INFO] Going to loop over dir /tmp/crops_input.csv\n", "2023-03-29 17:11:58 [INFO] Found total 66 images to run on\n", "2023-03-29 17:11:59 [INFO] Found total 66 images to run onEstimated: 0 Minutes 0 Features\n", "Finished histogram 0.091\n", "Finished bucket sort 0.106\n", "2023-03-29 17:11:59 [INFO] 10) Finished write_index() NN model\n", "2023-03-29 17:11:59 [INFO] Stored nn model index file face_detection_work_dir/nnf.index\n", "2023-03-29 17:11:59 [INFO] Total time took 1017 ms\n", "2023-03-29 17:11:59 [INFO] Found a total of 0 fully identical images (d>0.990), which are 0.00 %\n", "2023-03-29 17:11:59 [INFO] Found a total of 2 nearly identical images(d>0.980), which are 1.01 %\n", "2023-03-29 17:11:59 [INFO] Found a total of 28 above threshold images (d>0.900), which are 14.14 %\n", "2023-03-29 17:11:59 [INFO] Found a total of 6 outlier images (d<0.050), which are 3.03 %\n", "2023-03-29 17:11:59 [INFO] Min distance found 0.528 max distance 0.982\n", "2023-03-29 17:11:59 [INFO] Running connected components for ccthreshold 0.960000 \n", ".0\n", " ########################################################################################\n", "\n", "Dataset Analysis Summary: \n", "\n", " Dataset contains 66 images\n", " Valid images are 100.00% (66) of the data, invalid are 0.00% (0) of the data\n", " Similarity: 3.03% (2) belong to 2 similarity clusters (components).\n", " 96.97% (64) images do not belong to any similarity cluster.\n", " Largest cluster has 6 (9.09%) 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.06% (4) 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" ] } ], "source": [ "fd.run(bounding_box='face', license='your_license_key', overwrite=True)" ] }, { "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": 8, "id": "c13076de-3cf2-428f-866f-24278b082c02", "metadata": { "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 20.14it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Finished OK. Components are stored as image files face_detection_work_dir/galleries/components_[index].jpg\n", "Stored components visual view in face_detection_work_dir/galleries/components.html\n", "Execution time in seconds 0.2\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", " \"logo\"\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", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
component3
num_images3
mean_distance0.9725
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
component27
num_images2
mean_distance0.9685
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "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": 9, "id": "3edfd955-da16-455d-9089-87ee06161d9c", "metadata": { "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 100.18it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Finished OK. Components are stored as image files face_detection_work_dir/galleries/components_[index].jpg\n", "Stored components visual view in face_detection_work_dir/galleries/components.html\n", "Execution time in seconds 0.0\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", " Components Report\n", " \n", " \n", "\n", "\n", "\n", "
\n", "
\n", "
\n", " \n", " \"logo\"\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", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
component3
num_images3
mean_distance0.9725
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
component27
num_images2
mean_distance0.9685
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "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": 10, "id": "ae3e6a8d-340d-4dfb-a91a-32fde7522325", "metadata": { "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, 118.66it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Stored similar images visual view in face_detection_work_dir/galleries/similarity.html\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", " \"logo\"\n", " \n", "
\n", " \n", "
\n", "
\n", "
\n", "

Similarity Report

\n", "
\n", "
\n", "
\n", "
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_10.mp4output_000005.jpg_163_260_248_248.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
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
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_10.mp4output_000006.jpg_169_246_272_272.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
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
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_10.mp4output_000001.jpg_120_281_253_254.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
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
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_1.mp4output_000008.jpg_175_466_279_280.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.968511/crops/datavideo_1.mp4output_000009.jpg_161_406_336_336.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_1.mp4output_000009.jpg_161_406_336_336.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.968511/crops/datavideo_1.mp4output_000008.jpg_175_466_279_280.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_1.mp4output_000010.jpg_44_209_554_555.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.955514/crops/datavideo_1.mp4output_000011.jpg_-18_134_631_631.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_1.mp4output_000011.jpg_-18_134_631_631.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.955514/crops/datavideo_1.mp4output_000010.jpg_44_209_554_555.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_8.mp4output_000001.jpg_195_381_245_246.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.945117/crops/datavideo_8.mp4output_000002.jpg_161_340_268_268.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_8.mp4output_000002.jpg_161_340_268_268.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.945117/crops/datavideo_8.mp4output_000001.jpg_195_381_245_246.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_1.mp4output_000007.jpg_291_306_139_140.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.943513/crops/datavideo_1.mp4output_000006.jpg_486_438_137_137.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_1.mp4output_000006.jpg_486_438_137_137.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.943513/crops/datavideo_1.mp4output_000007.jpg_291_306_139_140.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_14.mp4output_000001.jpg_236_406_52_52.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.941177/crops/datavideo_14.mp4output_000002.jpg_234_417_51_52.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_14.mp4output_000002.jpg_234_417_51_52.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.941177/crops/datavideo_14.mp4output_000001.jpg_236_406_52_52.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_2.mp4output_000001.jpg_191_281_138_139.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.937863/crops/datavideo_2.mp4output_000002.jpg_200_284_130_131.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_2.mp4output_000002.jpg_200_284_130_131.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.937863/crops/datavideo_2.mp4output_000001.jpg_191_281_138_139.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_6.mp4output_000002.jpg_107_149_393_394.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.937743/crops/datavideo_6.mp4output_000004.jpg_109_116_399_400.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_6.mp4output_000004.jpg_109_116_399_400.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.937743/crops/datavideo_6.mp4output_000002.jpg_107_149_393_394.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_1.mp4output_000007.jpg_121_300_73_74.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.934762/crops/datavideo_1.mp4output_000006.jpg_294_417_85_86.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_1.mp4output_000006.jpg_294_417_85_86.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.934762/crops/datavideo_1.mp4output_000007.jpg_121_300_73_74.jpg
\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\t\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
Query Image
\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\t\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
Similar
\n", "\t\t\t\t\t\t
\n", "\t\t\t\t\t
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info From
from/crops/datavideo_11.mp4output_000001.jpg_152_134_301_302.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Info To
0.925375/crops/datavideo_11.mp4output_000002.jpg_144_127_316_316.jpg
\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\t\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
Query Image
\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\t\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
Similar
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
fromtodistance
11face_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]
12face_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]
10face_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]
6face_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]
7face_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]
8face_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]
9face_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]
23face_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]
24face_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]
5face_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]
3face_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]
15face_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]
16face_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]
17face_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]
18face_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]
19face_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]
21face_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]
4face_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]
2face_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]
13face_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]
14face_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]
20face_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]
22face_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]
1face_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]
0face_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]
\n", "
" ], "text/plain": [ " from \\\n", "11 face_detection_work_dir/crops/framesdatavideo_10.mp4output_000005.jpg_163_260_248_248.jpg \n", "12 face_detection_work_dir/crops/framesdatavideo_10.mp4output_000006.jpg_169_246_272_272.jpg \n", "10 face_detection_work_dir/crops/framesdatavideo_10.mp4output_000001.jpg_120_281_253_254.jpg \n", "6 face_detection_work_dir/crops/framesdatavideo_1.mp4output_000008.jpg_175_466_279_280.jpg \n", "7 face_detection_work_dir/crops/framesdatavideo_1.mp4output_000009.jpg_161_406_336_336.jpg \n", "8 face_detection_work_dir/crops/framesdatavideo_1.mp4output_000010.jpg_44_209_554_555.jpg \n", "9 face_detection_work_dir/crops/framesdatavideo_1.mp4output_000011.jpg_-18_134_631_631.jpg \n", "23 face_detection_work_dir/crops/framesdatavideo_8.mp4output_000001.jpg_195_381_245_246.jpg \n", "24 face_detection_work_dir/crops/framesdatavideo_8.mp4output_000002.jpg_161_340_268_268.jpg \n", "5 face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_291_306_139_140.jpg \n", "3 face_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_486_438_137_137.jpg \n", "15 face_detection_work_dir/crops/framesdatavideo_14.mp4output_000001.jpg_236_406_52_52.jpg \n", "16 face_detection_work_dir/crops/framesdatavideo_14.mp4output_000002.jpg_234_417_51_52.jpg \n", "17 face_detection_work_dir/crops/framesdatavideo_2.mp4output_000001.jpg_191_281_138_139.jpg \n", "18 face_detection_work_dir/crops/framesdatavideo_2.mp4output_000002.jpg_200_284_130_131.jpg \n", "19 face_detection_work_dir/crops/framesdatavideo_6.mp4output_000002.jpg_107_149_393_394.jpg \n", "21 face_detection_work_dir/crops/framesdatavideo_6.mp4output_000004.jpg_109_116_399_400.jpg \n", "4 face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_121_300_73_74.jpg \n", "2 face_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_294_417_85_86.jpg \n", "13 face_detection_work_dir/crops/framesdatavideo_11.mp4output_000001.jpg_152_134_301_302.jpg \n", "14 face_detection_work_dir/crops/framesdatavideo_11.mp4output_000002.jpg_144_127_316_316.jpg \n", "20 face_detection_work_dir/crops/framesdatavideo_6.mp4output_000003.jpg_61_190_478_479.jpg \n", "22 face_detection_work_dir/crops/framesdatavideo_6.mp4output_000005.jpg_89_180_495_495.jpg \n", "1 face_detection_work_dir/crops/framesdatavideo_1.mp4output_000005.jpg_-33_127_670_671.jpg \n", "0 face_detection_work_dir/crops/framesdatavideo_1.mp4output_000001.jpg_70_203_577_578.jpg \n", "\n", " to \\\n", "11 [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] \n", "12 [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] \n", "10 [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] \n", "6 [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000009.jpg_161_406_336_336.jpg] \n", "7 [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000008.jpg_175_466_279_280.jpg] \n", "8 [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000011.jpg_-18_134_631_631.jpg] \n", "9 [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000010.jpg_44_209_554_555.jpg] \n", "23 [face_detection_work_dir/crops/framesdatavideo_8.mp4output_000002.jpg_161_340_268_268.jpg] \n", "24 [face_detection_work_dir/crops/framesdatavideo_8.mp4output_000001.jpg_195_381_245_246.jpg] \n", "5 [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_486_438_137_137.jpg] \n", "3 [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_291_306_139_140.jpg] \n", "15 [face_detection_work_dir/crops/framesdatavideo_14.mp4output_000002.jpg_234_417_51_52.jpg] \n", "16 [face_detection_work_dir/crops/framesdatavideo_14.mp4output_000001.jpg_236_406_52_52.jpg] \n", "17 [face_detection_work_dir/crops/framesdatavideo_2.mp4output_000002.jpg_200_284_130_131.jpg] \n", "18 [face_detection_work_dir/crops/framesdatavideo_2.mp4output_000001.jpg_191_281_138_139.jpg] \n", "19 [face_detection_work_dir/crops/framesdatavideo_6.mp4output_000004.jpg_109_116_399_400.jpg] \n", "21 [face_detection_work_dir/crops/framesdatavideo_6.mp4output_000002.jpg_107_149_393_394.jpg] \n", "4 [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_294_417_85_86.jpg] \n", "2 [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_121_300_73_74.jpg] \n", "13 [face_detection_work_dir/crops/framesdatavideo_11.mp4output_000002.jpg_144_127_316_316.jpg] \n", "14 [face_detection_work_dir/crops/framesdatavideo_11.mp4output_000001.jpg_152_134_301_302.jpg] \n", "20 [face_detection_work_dir/crops/framesdatavideo_6.mp4output_000005.jpg_89_180_495_495.jpg] \n", "22 [face_detection_work_dir/crops/framesdatavideo_6.mp4output_000003.jpg_61_190_478_479.jpg] \n", "1 [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000001.jpg_70_203_577_578.jpg] \n", "0 [face_detection_work_dir/crops/framesdatavideo_1.mp4output_000005.jpg_-33_127_670_671.jpg] \n", "\n", " distance \n", "11 [0.981833, 0.975763] \n", "12 [0.981833, 0.972492] \n", "10 [0.975763, 0.972492] \n", "6 [0.968511] \n", "7 [0.968511] \n", "8 [0.955514] \n", "9 [0.955514] \n", "23 [0.945117] \n", "24 [0.945117] \n", "5 [0.943513] \n", "3 [0.943513] \n", "15 [0.941177] \n", "16 [0.941177] \n", "17 [0.937863] \n", "18 [0.937863] \n", "19 [0.937743] \n", "21 [0.937743] \n", "4 [0.934762] \n", "2 [0.934762] \n", "13 [0.925375] \n", "14 [0.925375] \n", "20 [0.921769] \n", "22 [0.921769] \n", "1 [0.916237] \n", "0 [0.916237] " ] }, "execution_count": 10, "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": 11, "id": "5e774ad3-3817-417f-915c-31efbb544fbc", "metadata": { "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:00<00:00, 6654.98it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Stored outliers visual view in face_detection_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", " \"logo\"\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", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.527991
Path/crops/datavideo_4.mp4output_000008.jpg_174_66_256_256.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.574151
Path/crops/datavideo_4.mp4output_000005.jpg_220_458_116_117.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.579975
Path/crops/datavideo_3.mp4output_000003.jpg_28_277_163_164.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.581466
Path/crops/datavideo_3.mp4output_000013.jpg_247_190_110_110.jpg
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "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": 12, "id": "00bf2f0c-ac22-4fd4-b245-9fbed745a128", "metadata": { "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 282.37it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Stored similarity visual view in face_detection_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", " \"logo\"\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", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.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
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.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
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.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
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.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
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.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
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.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
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.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
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.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
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.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
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.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
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "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": { "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 393.79it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Stored mean visual view in face_detection_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", " \"logo\"\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", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean15.6447
filenameface_detection_work_dir/crops/framesdatavideo_3.mp4output_000013.jpg_247_190_110_110.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean27.5016
filenameface_detection_work_dir/crops/framesdatavideo_10.mp4output_000004.jpg_511_239_56_57.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean39.5026
filenameface_detection_work_dir/crops/framesdatavideo_5.mp4output_000009.jpg_90_299_414_415.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean49.4687
filenameface_detection_work_dir/crops/framesdatavideo_4.mp4output_000001.jpg_158_159_224_225.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean52.9449
filenameface_detection_work_dir/crops/framesdatavideo_6.mp4output_000007.jpg_78_164_523_523.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean54.8878
filenameface_detection_work_dir/crops/framesdatavideo_2.mp4output_000003.jpg_178_215_261_262.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean55.8195
filenameface_detection_work_dir/crops/framesdatavideo_6.mp4output_000008.jpg_148_163_364_365.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean58.8494
filenameface_detection_work_dir/crops/framesdatavideo_6.mp4output_000001.jpg_105_50_481_481.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean59.1527
filenameface_detection_work_dir/crops/framesdatavideo_10.mp4output_000003.jpg_294_381_49_50.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean59.6986
filenameface_detection_work_dir/crops/framesdatavideo_6.mp4output_000006.jpg_152_122_359_359.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean59.715
filenameface_detection_work_dir/crops/framesdatavideo_6.mp4output_000005.jpg_89_180_495_495.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean61.0489
filenameface_detection_work_dir/crops/framesdatavideo_3.mp4output_000001.jpg_-40_166_532_532.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean62.651
filenameface_detection_work_dir/crops/framesdatavideo_2.mp4output_000001.jpg_191_281_138_139.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean62.9172
filenameface_detection_work_dir/crops/framesdatavideo_6.mp4output_000002.jpg_107_149_393_394.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean63.3998
filenameface_detection_work_dir/crops/framesdatavideo_5.mp4output_000002.jpg_65_375_258_258.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean64.9001
filenameface_detection_work_dir/crops/framesdatavideo_6.mp4output_000003.jpg_61_190_478_479.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean66.6429
filenameface_detection_work_dir/crops/framesdatavideo_2.mp4output_000004.jpg_143_294_244_244.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean67.0469
filenameface_detection_work_dir/crops/framesdatavideo_2.mp4output_000002.jpg_200_284_130_131.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean70.3712
filenameface_detection_work_dir/crops/framesdatavideo_6.mp4output_000004.jpg_109_116_399_400.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean73.3206
filenameface_detection_work_dir/crops/framesdatavideo_4.mp4output_000008.jpg_174_66_256_256.jpg
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "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": { "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 506.59it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Stored mean visual view in face_detection_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", " \"logo\"\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", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean161.2215
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_310_532_81_82.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean155.2087
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_490_663_80_80.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean148.2569
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000009.jpg_161_406_336_336.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean145.7401
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_486_438_137_137.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean141.8936
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_474_322_145_146.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean141.4952
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000008.jpg_175_466_279_280.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean141.2111
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000011.jpg_-18_134_631_631.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean139.936
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000010.jpg_44_209_554_555.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean139.6472
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_291_306_139_140.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean134.6325
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_294_417_85_86.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean128.5858
filenameface_detection_work_dir/crops/framesdatavideo_15.mp4output_000001.jpg_73_35_337_337.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean127.7623
filenameface_detection_work_dir/crops/framesdatavideo_13.mp4output_000002.jpg_286_199_147_147.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean127.4999
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_104_518_142_142.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean119.0635
filenameface_detection_work_dir/crops/framesdatavideo_5.mp4output_000006.jpg_85_212_364_365.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean117.9132
filenameface_detection_work_dir/crops/framesdatavideo_4.mp4output_000005.jpg_220_458_116_117.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean117.3406
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_106_427_122_123.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean116.0681
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_121_300_73_74.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean116.0248
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000001.jpg_70_203_577_578.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean113.4248
filenameface_detection_work_dir/crops/framesdatavideo_13.mp4output_000002.jpg_22_290_158_159.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
mean112.62
filenameface_detection_work_dir/crops/framesdatavideo_8.mp4output_000001.jpg_195_381_245_246.jpg
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "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": { "tags": [] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 701.24it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Stored blur visual view in face_detection_work_dir/galleries/blur.html\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", " \"logo\"\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", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur22.1188
filenameface_detection_work_dir/crops/framesdatavideo_3.mp4output_000013.jpg_247_190_110_110.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur28.9668
filenameface_detection_work_dir/crops/framesdatavideo_3.mp4output_000003.jpg_28_277_163_164.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur58.9633
filenameface_detection_work_dir/crops/framesdatavideo_2.mp4output_000003.jpg_178_215_261_262.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur59.8373
filenameface_detection_work_dir/crops/framesdatavideo_2.mp4output_000004.jpg_143_294_244_244.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur65.5694
filenameface_detection_work_dir/crops/framesdatavideo_2.mp4output_000001.jpg_191_281_138_139.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur66.5691
filenameface_detection_work_dir/crops/framesdatavideo_2.mp4output_000002.jpg_200_284_130_131.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur75.8016
filenameface_detection_work_dir/crops/framesdatavideo_10.mp4output_000004.jpg_511_239_56_57.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur117.591
filenameface_detection_work_dir/crops/framesdatavideo_13.mp4output_000002.jpg_325_467_174_175.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur162.9503
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_661_563_72_72.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur171.7189
filenameface_detection_work_dir/crops/framesdatavideo_10.mp4output_000003.jpg_294_381_49_50.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur172.5005
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_490_663_80_80.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur181.8111
filenameface_detection_work_dir/crops/framesdatavideo_13.mp4output_000001.jpg_100_256_168_168.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur182.4558
filenameface_detection_work_dir/crops/framesdatavideo_15.mp4output_000001.jpg_73_35_337_337.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur221.384
filenameface_detection_work_dir/crops/framesdatavideo_3.mp4output_000003.jpg_82_87_459_460.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur228.2809
filenameface_detection_work_dir/crops/framesdatavideo_14.mp4output_000001.jpg_112_539_39_40.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur241.5
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000007.jpg_310_532_81_82.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur246.4757
filenameface_detection_work_dir/crops/framesdatavideo_1.mp4output_000006.jpg_486_438_137_137.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur246.794
filenameface_detection_work_dir/crops/framesdatavideo_6.mp4output_000008.jpg_148_163_364_365.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur263.4221
filenameface_detection_work_dir/crops/framesdatavideo_13.mp4output_000002.jpg_22_290_158_159.jpg
\n", "
\n", "
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
blur263.433
filenameface_detection_work_dir/crops/framesdatavideo_6.mp4output_000006.jpg_152_122_359_359.jpg
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fd.vis.stats_gallery(metric='blur')" ] }, { "cell_type": "code", "execution_count": null, "id": "689f05a4-37c3-452a-a085-2f0d05155ae5", "metadata": {}, "outputs": [], "source": [] } ], "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.9.7" } }, "nbformat": 4, "nbformat_minor": 5 }