{ "cells": [ { "cell_type": "markdown", "id": "dc9e798f", "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": "a4b4c6a4", "metadata": {}, "source": [ "# Optical Character Recognition\n", "\n", "This notebook shows how you can use fastdup to extract optical characters on your video/image dataset.\n", "\n", "We will be using fastdup with [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) - A lightweight, multilingual optical character recognition package. " ] }, { "cell_type": "code", "execution_count": 1, "id": "eb7bae6e", "metadata": {}, "outputs": [], "source": [ "!pip install -Uqq fastdup paddleocr paddlepaddle gdown numpy" ] }, { "cell_type": "code", "execution_count": 2, "id": "d32320e4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/usr/bin/dpkg\n" ] }, { "data": { "text/plain": [ "'1.34'" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import fastdup\n", "fastdup.__version__" ] }, { "cell_type": "markdown", "id": "846eac12-19b1-42de-a91f-815701633f56", "metadata": {}, "source": [ "If you're running this notebook in Google Colab, uncomment the following cell and run before proceeding to the next cell." ] }, { "cell_type": "code", "execution_count": null, "id": "5a4b8dda-ff0a-4291-847a-4bcabf2eb7b7", "metadata": {}, "outputs": [], "source": [ "# !wget http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.19_amd64.deb\n", "# !sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.19_amd64.deb" ] }, { "cell_type": "markdown", "id": "1a102231-89d7-4c6a-acca-5d9371c847e7", "metadata": {}, "source": [ "## Download Video Dataset\n", "We'll use a subset of the [TikTok Trending Videos](https://www.kaggle.com/datasets/erikvdven/tiktok-trending-december-2020) dataset from Kaggle." ] }, { "cell_type": "code", "execution_count": 3, "id": "1c5c3a34-ba3b-40d6-8858-078ffd504d50", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading...\n", "From (uriginal): https://drive.google.com/uc?id=1FsBQTZKsfApEn99g_BhkTbdz0SmQgkKv\n", "From (redirected): https://drive.google.com/uc?id=1FsBQTZKsfApEn99g_BhkTbdz0SmQgkKv&confirm=t&uuid=2e6206bc-cbe1-4642-a0f9-f849a42c4b6e\n", "To: /media/dnth/Active-Projects/fastdup/examples/tiktok-trending-subset.zip\n", "100%|██████████████████████████████████████| 61.3M/61.3M [00:06<00:00, 9.67MB/s]\n" ] } ], "source": [ "!gdown https://drive.google.com/uc?id=1FsBQTZKsfApEn99g_BhkTbdz0SmQgkKv" ] }, { "cell_type": "markdown", "id": "384a7f3a", "metadata": {}, "source": [ "Now, unzip the dataset into our local directory. You'll find a folder name `tiktok-trending-subset` that has all the trending clips." ] }, { "cell_type": "code", "execution_count": 4, "id": "571fa771-d8a2-48da-bcae-690abc4656ab", "metadata": {}, "outputs": [], "source": [ "!unzip -q tiktok-trending-subset.zip" ] }, { "cell_type": "markdown", "id": "f455b752", "metadata": {}, "source": [ "## Extract frames\n", "To run fastdup, we will need to extract the clips in the `tiktok-trending-subset` folder into frames and store them in another folder, let's name the folder `frames`. fastdup provides a convenience function for that." ] }, { "cell_type": "code", "execution_count": 5, "id": "86a21118", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "FastDup Software, (C) copyright 2022 Dr. Amir Alush and Dr. Danny Bickson.\n", "2023-08-09 16:17:49 [INFO] Going to loop over dir tiktok-trending-subset\n", "2023-08-09 16:17:49 [INFO] Found total 19 videos to run on, 19 train, 0 test, name list 19, counter 19 \n" ] }, { "data": { "text/plain": [ "0" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fastdup.extract_video_frames('tiktok-trending-subset', 'frames')" ] }, { "cell_type": "markdown", "id": "fdd6e307", "metadata": {}, "source": [ "## Run fastdup\n", "With the extracted frames, we can run fastdup to analyze them. \n", "\n", "To use the optical character recognition feature, specify `bounding_box='ocr'` in the `run` method.\n", "\n", "For demonstration, we'll specify `num_images=1000` in the `run` method which limits the run to only 1000 images. Feel free to specify a different value or omitting this parameter altogether to run on the entire dataset." ] }, { "cell_type": "code", "execution_count": 6, "id": "3a303d5d", "metadata": {}, "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", "FastDup Software, (C) copyright 2022 Dr. Amir Alush and Dr. Danny Bickson.\n", "2023-08-09 16:17:52 [INFO] Going to loop over dir frames\n", "2023-08-09 16:17:52 [INFO] Found total 54 images to run on, 54 train, 0 test, name list 54, counter 54 \n", "FastDup Software, (C) copyright 2022 Dr. Amir Alush and Dr. Danny Bickson.\n", "2023-08-09 16:18:45 [INFO] Going to loop over dir /tmp/crops_input.csv\n", "2023-08-09 16:18:45 [INFO] Found total 259 images to run on, 259 train, 0 test, name list 259, counter 259 \n", "2023-08-09 16:18:46 [INFO] Found total 259 images to run onstimated: 0 Minutes\n", "Finished histogram 0.280\n", "Finished bucket sort 0.294\n", "2023-08-09 16:18:46 [INFO] 31) Finished write_index() NN model\n", "2023-08-09 16:18:46 [INFO] Stored nn model index file work_dir/nnf.index\n", "2023-08-09 16:18:46 [INFO] Total time took 1043 ms\n", "2023-08-09 16:18:46 [INFO] Found a total of 83 fully identical images (d>0.990), which are 16.02 %\n", "2023-08-09 16:18:46 [INFO] Found a total of 57 nearly identical images(d>0.980), which are 11.00 %\n", "2023-08-09 16:18:46 [INFO] Found a total of 394 above threshold images (d>0.900), which are 76.06 %\n", "2023-08-09 16:18:46 [INFO] Found a total of 25 outlier images (d<0.050), which are 4.83 %\n", "2023-08-09 16:18:46 [INFO] Min distance found 0.448 max distance 0.999\n", "2023-08-09 16:18:46 [INFO] Running connected components for ccthreshold 0.960000 \n", ".0\n", " ########################################################################################\n", "\n", "Dataset Analysis Summary: \n", "\n", " Dataset contains 259 objects\n", " Valid objects are 88.00% (259) of the data, invalid are 0.00% (0) of the data\n", " Similarity: 48.25% (142) belong to 11 similarity clusters (components).\n", " 39.75% (117) images do not belong to any similarity cluster.\n", " Largest cluster has 58 (19.71%) 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: 5.10% (15) 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", "\n", "########################################################################################\n", "Would you like to see awesome visualizations for some of the most popular academic datasets?\n", "Click here to see and learn more: https://app.visual-layer.com/vl-datasets?utm_source=fastdup\n", "########################################################################################\n" ] }, { "data": { "text/plain": [ "0" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd = fastdup.create(input_dir='./frames')\n", "fd.run(bounding_box='ocr')" ] }, { "cell_type": "markdown", "id": "8085604b-0c84-4b88-a21e-e48b97fea8f0", "metadata": {}, "source": [ "## Extracted OCR Information" ] }, { "cell_type": "code", "execution_count": 7, "id": "08d4d08a-8e48-4e6b-90c5-3fe177fba359", "metadata": {}, "outputs": [ { "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", " \n", " \n", " \n", " \n", " \n", " \n", "
indeximg_wimg_huniqueblurmeanminmaxstdvfile_sizecontrastfilenamecrop_filenamex1y1x2y2x3y3x4y4confidencelabelis_valid
002414183345.0356178.027051.0255.057.05159160.6667frames/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpgwork_dir/crops/framestmptiktok-trending-subset6875373441432816898.mp4output_000002.jpg_436_953_456_953_456_965_436_965.jpg4369534569534569654369650.6623981True
1111236195688.3301180.515041.0255.047.717726140.7230frames/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpgwork_dir/crops/framestmptiktok-trending-subset6875373441432816898.mp4output_000002.jpg_466_945_560_945_560_975_466_975.jpg4669455609455609754669750.785349TikTokTrue
2210828186739.3006164.113770.0255.040.697920740.5692frames/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpgwork_dir/crops/framestmptiktok-trending-subset6875373441432816898.mp4output_000002.jpg_472_983_562_986_562_1008_471_1006.jpg472983562986562100847110060.989322@caitlinjsTrue
3310635159208.8422222.411448.0255.022.772224040.6832frames/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000001.jpgwork_dir/crops/framestmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_61_26_149_26_149_55_61_55.jpg6126149261495561550.829294TikTOKTrue
441592595360.8476215.83260.0255.029.622018111.0000frames/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000001.jpgwork_dir/crops/framestmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_12_66_146_66_146_87_12_87.jpg1266146661468712870.990695@marc.koolenTrue
\n", "
" ], "text/plain": [ " index img_w img_h unique blur mean min max stdv file_size contrast filename crop_filename x1 y1 x2 y2 x3 y3 x4 y4 confidence label is_valid\n", "0 0 24 14 183 345.0356 178.0270 51.0 255.0 57.0515 916 0.6667 frames/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpg work_dir/crops/framestmptiktok-trending-subset6875373441432816898.mp4output_000002.jpg_436_953_456_953_456_965_436_965.jpg 436 953 456 953 456 965 436 965 0.662398 1 True\n", "1 1 112 36 195 688.3301 180.5150 41.0 255.0 47.7177 2614 0.7230 frames/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpg work_dir/crops/framestmptiktok-trending-subset6875373441432816898.mp4output_000002.jpg_466_945_560_945_560_975_466_975.jpg 466 945 560 945 560 975 466 975 0.785349 TikTok True\n", "2 2 108 28 186 739.3006 164.1137 70.0 255.0 40.6979 2074 0.5692 frames/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpg work_dir/crops/framestmptiktok-trending-subset6875373441432816898.mp4output_000002.jpg_472_983_562_986_562_1008_471_1006.jpg 472 983 562 986 562 1008 471 1006 0.989322 @caitlinjs True\n", "3 3 106 35 159 208.8422 222.4114 48.0 255.0 22.7722 2404 0.6832 frames/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000001.jpg work_dir/crops/framestmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_61_26_149_26_149_55_61_55.jpg 61 26 149 26 149 55 61 55 0.829294 TikTOK True\n", "4 4 159 25 95 360.8476 215.8326 0.0 255.0 29.6220 1811 1.0000 frames/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000001.jpg work_dir/crops/framestmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_12_66_146_66_146_87_12_87.jpg 12 66 146 66 146 87 12 87 0.990695 @marc.koolen True" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stats = fd.img_stats()\n", "stats.head()" ] }, { "cell_type": "markdown", "id": "601423b7-8a84-45ab-9c8f-4f333c17e15a", "metadata": {}, "source": [ "That's a lot of information. Let's slice the table to only include the columns we need." ] }, { "cell_type": "code", "execution_count": 8, "id": "0c368be9-3e62-4ea6-8895-c018642c6a9a", "metadata": {}, "outputs": [ { "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", "
filenamecrop_filenamelabel
0frames/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpgwork_dir/crops/framestmptiktok-trending-subset6875373441432816898.mp4output_000002.jpg_436_953_456_953_456_965_436_965.jpg1
1frames/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpgwork_dir/crops/framestmptiktok-trending-subset6875373441432816898.mp4output_000002.jpg_466_945_560_945_560_975_466_975.jpgTikTok
2frames/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpgwork_dir/crops/framestmptiktok-trending-subset6875373441432816898.mp4output_000002.jpg_472_983_562_986_562_1008_471_1006.jpg@caitlinjs
3frames/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000001.jpgwork_dir/crops/framestmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_61_26_149_26_149_55_61_55.jpgTikTOK
4frames/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000001.jpgwork_dir/crops/framestmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_12_66_146_66_146_87_12_87.jpg@marc.koolen
............
254frames/tmp/tiktok-trending-subset6875872124968439046.mp4/output_000006.jpgwork_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_78_604_308_604_308_622_78_622.jpghaveadecentamountof
255frames/tmp/tiktok-trending-subset6875872124968439046.mp4/output_000006.jpgwork_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_78_628_317_628_317_650_78_650.jpgbruisingandpainwithmy
256frames/tmp/tiktok-trending-subset6875872124968439046.mp4/output_000006.jpgwork_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_77_654_168_654_168_672_77_672.jpgnewlever
257frames/tmp/tiktok-trending-subset6875872124968439046.mp4/output_000006.jpgwork_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_433_946_561_946_561_976_433_976.jpgJTikTok
258frames/tmp/tiktok-trending-subset6875872124968439046.mp4/output_000006.jpgwork_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_376_984_564_986_564_1008_376_1007.jpg@timmytimmadome
\n", "

259 rows × 3 columns

\n", "
" ], "text/plain": [ " filename crop_filename label\n", "0 frames/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpg work_dir/crops/framestmptiktok-trending-subset6875373441432816898.mp4output_000002.jpg_436_953_456_953_456_965_436_965.jpg 1\n", "1 frames/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpg work_dir/crops/framestmptiktok-trending-subset6875373441432816898.mp4output_000002.jpg_466_945_560_945_560_975_466_975.jpg TikTok\n", "2 frames/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpg work_dir/crops/framestmptiktok-trending-subset6875373441432816898.mp4output_000002.jpg_472_983_562_986_562_1008_471_1006.jpg @caitlinjs\n", "3 frames/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000001.jpg work_dir/crops/framestmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_61_26_149_26_149_55_61_55.jpg TikTOK\n", "4 frames/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000001.jpg work_dir/crops/framestmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_12_66_146_66_146_87_12_87.jpg @marc.koolen\n", ".. ... ... ...\n", "254 frames/tmp/tiktok-trending-subset6875872124968439046.mp4/output_000006.jpg work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_78_604_308_604_308_622_78_622.jpg haveadecentamountof\n", "255 frames/tmp/tiktok-trending-subset6875872124968439046.mp4/output_000006.jpg work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_78_628_317_628_317_650_78_650.jpg bruisingandpainwithmy\n", "256 frames/tmp/tiktok-trending-subset6875872124968439046.mp4/output_000006.jpg work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_77_654_168_654_168_672_77_672.jpg newlever\n", "257 frames/tmp/tiktok-trending-subset6875872124968439046.mp4/output_000006.jpg work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_433_946_561_946_561_976_433_976.jpg JTikTok\n", "258 frames/tmp/tiktok-trending-subset6875872124968439046.mp4/output_000006.jpg work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_376_984_564_986_564_1008_376_1007.jpg @timmytimmadome\n", "\n", "[259 rows x 3 columns]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = stats[[\"filename\", \"crop_filename\", \"label\"]]\n", "df" ] }, { "cell_type": "markdown", "id": "b663aac6-7a0b-468e-ab87-835158abd589", "metadata": {}, "source": [ "Let's use a handy package [itables](https://github.com/mwouts/itables) to visualize the images in table interactively." ] }, { "cell_type": "code", "execution_count": 9, "id": "bd5e597d-435a-428f-b504-974592449473", "metadata": {}, "outputs": [], "source": [ "!pip install -Uqq itables" ] }, { "cell_type": "markdown", "id": "0b78ae02-b86a-4914-8f84-1a3086350344", "metadata": {}, "source": [ "Now, we run the function below to convert the path into HTML tags so we can preview the images here." ] }, { "cell_type": "code", "execution_count": 10, "id": "943352ea-7c0e-4c12-b5e0-2fe34d719ac5", "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */\n", "!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(C,e){\"use strict\";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType&&\"function\"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement(\"script\");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?n[o.call(e)]||\"object\":typeof e}var f=\"3.6.0\",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&\"length\"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&0+~]|\"+M+\")\"+M+\"*\"),U=new RegExp(M+\"|>\"),X=new RegExp(F),V=new RegExp(\"^\"+I+\"$\"),G={ID:new RegExp(\"^#(\"+I+\")\"),CLASS:new RegExp(\"^\\\\.(\"+I+\")\"),TAG:new RegExp(\"^(\"+I+\"|[*])\"),ATTR:new RegExp(\"^\"+W),PSEUDO:new RegExp(\"^\"+F),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+M+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+M+\"*(?:([+-]|)\"+M+\"*(\\\\d+)|))\"+M+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+R+\")$\",\"i\"),needsContext:new RegExp(\"^\"+M+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+M+\"*((?:-\\\\d)?\\\\d*)\"+M+\"*\\\\)|)(?=[^-]|$)\",\"i\")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\\d$/i,K=/^[^{]+\\{\\s*\\[native \\w/,Z=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ee=/[+~]/,te=new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\"+M+\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\",\"g\"),ne=function(e,t){var n=\"0x\"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,ie=function(e,t){return t?\"\\0\"===e?\"\\ufffd\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&\"fieldset\"===e.nodeName.toLowerCase()},{dir:\"parentNode\",next:\"legend\"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+\" \"]&&(!v||!v.test(t))&&(1!==p||\"object\"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute(\"id\"))?s=s.replace(re,ie):e.setAttribute(\"id\",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?\"#\"+s:\":scope\")+\" \"+xe(l[o]);c=l.join(\",\")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute(\"id\")}}}return g(t.replace($,\"$1\"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+\" \")>b.cacheLength&&delete e[r.shift()],e[t+\" \"]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split(\"|\"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return\"input\"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return(\"input\"===t||\"button\"===t)&&e.type===n}}function ge(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&\"undefined\"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||\"HTML\")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",oe,!1):n.attachEvent&&n.attachEvent(\"onunload\",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement(\"div\")),\"undefined\"!=typeof e.querySelectorAll&&!e.querySelectorAll(\":scope fieldset div\").length}),d.attributes=ce(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute(\"id\")===t}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t=\"undefined\"!=typeof e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return\"undefined\"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if(\"undefined\"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=\"\",e.querySelectorAll(\"[msallowcapture^='']\").length&&v.push(\"[*^$]=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||v.push(\"\\\\[\"+M+\"*(?:value|\"+R+\")\"),e.querySelectorAll(\"[id~=\"+S+\"-]\").length||v.push(\"~=\"),(t=C.createElement(\"input\")).setAttribute(\"name\",\"\"),e.appendChild(t),e.querySelectorAll(\"[name='']\").length||v.push(\"\\\\[\"+M+\"*name\"+M+\"*=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\":checked\").length||v.push(\":checked\"),e.querySelectorAll(\"a#\"+S+\"+*\").length||v.push(\".#.+[+~]\"),e.querySelectorAll(\"\\\\\\f\"),v.push(\"[\\\\r\\\\n\\\\f]\")}),ce(function(e){e.innerHTML=\"\";var t=C.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&v.push(\"name\"+M+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&v.push(\":enabled\",\":disabled\"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&v.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),v.push(\",.*:\")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,\"*\"),c.call(e,\"[s!='']:x\"),s.push(\"!=\",F)}),v=v.length&&new RegExp(v.join(\"|\")),s=s.length&&new RegExp(s.join(\"|\")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+\" \"]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||\"\").replace(te,ne),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+\" \"];return t||(t=new RegExp(\"(^|\"+M+\")\"+e+\"(\"+M+\"|$)\"))&&m(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||\"undefined\"!=typeof e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1\",\"#\"===e.firstChild.getAttribute(\"href\")})||fe(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML=\"\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||fe(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute(\"disabled\")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[\":\"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\\x20\\t\\r\\n\\f]*)/i,he=/^$|^module$|\\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement(\"div\")),(fe=E.createElement(\"input\")).setAttribute(\"type\",\"radio\"),fe.setAttribute(\"checked\",\"checked\"),fe.setAttribute(\"name\",\"t\"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML=\"\",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=\"\",y.option=!!ce.lastChild;var ge={thead:[1,\"\",\"
\"],col:[2,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],_default:[0,\"\",\"\"]};function ve(e,t){var n;return n=\"undefined\"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):\"undefined\"!=typeof e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n\",\"\"]);var me=/<|&#?\\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\\s*$/g;function je(e,t){return A(e,\"table\")&&A(11!==t.nodeType?t:t.firstChild,\"tr\")&&S(e).children(\"tbody\")[0]||e}function De(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function qe(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,\"handle events\"),s)for(n=0,r=s[i].length;n\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\\?(?=&|$)|\\?\\?/;S.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=zt.pop()||S.expando+\"_\"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Ut.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,\"$1\"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||S.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),\"script\"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument(\"\").body).innerHTML=\"
\",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1\").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,\"position\"),c=S(e),f={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=S.css(e,\"top\"),u=S.css(e,\"left\"),(\"absolute\"===l||\"fixed\"===l)&&-1<(o+u).indexOf(\"auto\")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),\"using\"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===S.css(r,\"position\"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&\"static\"===S.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,\"borderTopWidth\",!0),i.left+=S.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-S.css(r,\"marginTop\",!0),left:t.left-i.left-S.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===S.css(e,\"position\"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each([\"top\",\"left\"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+\"px\":t})}),S.each({Height:\"height\",Width:\"width\"},function(a,s){S.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){S.fn[n]=function(e,t){return 0" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import base64\n", "from itables import init_notebook_mode, show\n", "init_notebook_mode(all_interactive=True)\n", "\n", "# Convert the image file paths into HTML tag for preview\n", "def to_img_tag(path):\n", " if isinstance(path, str):\n", " with open(path, 'rb') as f:\n", " image_data = f.read()\n", " base64_image = base64.b64encode(image_data).decode('utf-8')\n", " return ''\n", " else:\n", " return path\n", "\n", "df[\"filename_preview\"] = df[\"filename\"].apply(to_img_tag)\n", "df[\"crop_filename_preview\"] = df[\"crop_filename\"].apply(to_img_tag)\n", "\n", "df = df.loc[:,[\"filename\",\"filename_preview\", \"crop_filename\", \"crop_filename_preview\", \"label\"],]" ] }, { "cell_type": "code", "execution_count": 11, "id": "838e8246-6f03-4c20-8e5f-ff36b21a3e11", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
filenamefilename_previewcrop_filenamecrop_filename_previewlabel
Loading... (need help?)
\n", "\n", "
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show(df, classes=\"display compact\")" ] }, { "cell_type": "markdown", "id": "58f09dd8", "metadata": {}, "source": [ "## Duplicate/Near-duplicate Detections" ] }, { "cell_type": "code", "execution_count": 12, "id": "526030e4", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|█| 20/20 [00:00<00:00, 468.54it\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Stored similarity visual view in work_dir/galleries/duplicates.html\n", "########################################################################################\n", "Would you like to see awesome visualizations for some of the most popular academic datasets?\n", "Click here to see and learn more: https://app.visual-layer.com/vl-datasets?utm_source=fastdup\n", "########################################################################################\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", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Info
Distance0.999353
From/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000004.jpg_79_605_308_605_308_623_79_623.jpg
To/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000003.jpg_79_605_308_605_308_623_79_623.jpg
From_Labelhaveadecentamountof
To_Labelhaveadecentamountof
\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", "
Info
Distance0.998665
From/crops/tmptiktok-trending-subset6875436892226178305.mp4output_000004.jpg_153_239_424_242_423_272_152_269.jpg
To/crops/tmptiktok-trending-subset6875436892226178305.mp4output_000002.jpg_153_239_424_242_423_272_152_269.jpg
From_LabelSomeofthemost
To_LabelSomeofthemost
\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", "
Info
Distance0.998448
From/crops/tmptiktok-trending-subset6875405441472498949.mp4output_000004.jpg_77_185_316_186_315_205_77_204.jpg
To/crops/tmptiktok-trending-subset6875405441472498949.mp4output_000002.jpg_77_185_316_186_315_205_77_204.jpg
From_Labelfeelheavierthanthenom
To_Labelfeelheavierthanthenom
\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", "
Info
Distance0.998334
From/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000005.jpg_78_531_277_531_277_546_78_546.jpg
To/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000002.jpg_78_531_277_531_277_546_78_546.jpg
From_LabelReply to dolphinarmss comment
To_LabelReply to dolphinarmss comment
\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", "
Info
Distance0.998313
From/crops/tmptiktok-trending-subset6875405441472498949.mp4output_000005.jpg_78_137_271_137_271_151_78_151.jpg
To/crops/tmptiktok-trending-subset6875405441472498949.mp4output_000002.jpg_78_137_271_137_271_151_78_151.jpg
From_LabelReplytojessca4765scomment
To_LabelReplytojessca4765scomment
\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", "
Info
Distance0.998252
From/crops/tmptiktok-trending-subset6875405441472498949.mp4output_000001.jpg_77_185_316_186_315_205_77_204.jpg
To/crops/tmptiktok-trending-subset6875405441472498949.mp4output_000006.jpg_77_185_316_186_315_205_77_204.jpg
From_Labelfeelheavierthanthenom
To_Labelfeelheavierthanthenom
\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", "
Info
Distance0.998226
From/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000005.jpg_77_627_317_628_317_651_77_650.jpg
To/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000001.jpg_77_627_317_628_317_651_77_650.jpg
From_Labelbruisingandpainwithmy
To_Labelbruisingandpainwithmy
\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", "
Info
Distance0.998044
From/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000005.jpg_79_605_309_605_309_623_79_623.jpg
To/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000002.jpg_79_605_309_605_309_623_79_623.jpg
From_Labelhaveadecentamountof
To_Labelhaveadecentamountof
\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", "
Info
Distance0.997594
From/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000004.jpg_78_531_277_531_277_546_78_546.jpg
To/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000003.jpg_78_531_277_531_277_546_78_546.jpg
From_LabelReply to dolphinarmss comment
To_LabelReply to dolphinarmss comment
\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", "
Info
Distance0.99756
From/crops/tmptiktok-trending-subset6875436892226178305.mp4output_000003.jpg_153_239_424_242_423_272_152_269.jpg
To/crops/tmptiktok-trending-subset6875436892226178305.mp4output_000004.jpg_153_239_424_242_423_272_152_269.jpg
From_LabelSomeofthemost
To_LabelSomeofthemost
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "0" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.vis.duplicates_gallery()" ] }, { "cell_type": "markdown", "id": "322949c4", "metadata": {}, "source": [ "## Outliers\n", "\n", "Let's visualize the outliers in the OCR detections." ] }, { "cell_type": "code", "execution_count": 13, "id": "4abd3d6c", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|█| 20/20 [00:00<00:00, 27603.19" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Stored outliers visual view in work_dir/galleries/outliers.html\n", "########################################################################################\n", "Would you like to see awesome visualizations for some of the most popular academic datasets?\n", "Click here to see and learn more: https://app.visual-layer.com/vl-datasets?utm_source=fastdup\n", "########################################################################################\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", " \n", " \n", "\n", " \n", "
Info
Distance0.900267
Path/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000001.jpg_162_662_384_662_384_723_162_723.jpg
labelHEAL TOE
\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.901725
Path/crops/tmptiktok-trending-subset6875651291343883522.mp4output_000002.jpg_457_943_561_945_561_976_456_974.jpg
labelTikTok
\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.901787
Path/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000002.jpg_464_940_559_940_559_975_464_975.jpg
labelTiKTOK
\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.902096
Path/crops/tmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_12_66_146_66_146_87_12_87.jpg
label@marc.koolen
\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.902096
Path/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000001.jpg_13_67_119_69_118_89_13_86.jpg
label@catocade
\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.905003
Path/crops/tmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_61_26_149_26_149_55_61_55.jpg
labelTikTOK
\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.905566
Path/crops/tmptiktok-trending-subset6875651291343883522.mp4output_000003.jpg_399_984_562_987_562_1009_399_1007.jpg
label@martijn.schilder
\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.906044
Path/crops/tmptiktok-trending-subset6875468410612993286.mp4output_000001.jpg_384_670_470_668_470_690_385_692.jpg
labelThankyoul
\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.906044
Path/crops/tmptiktok-trending-subset6875468410612993286.mp4output_000001.jpg_344_636_507_632_507_655_344_658.jpg
labelstudying aroundyou.
\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.906131
Path/crops/tmptiktok-trending-subset6875317312082201857.mp4output_000001.jpg_13_68_203_68_203_86_13_86.jpg
label@sandrovanmunster
\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.907005
Path/crops/tmptiktok-trending-subset6875342937002085633.mp4output_000001.jpg_12_66_122_66_122_87_12_87.jpg
label@irmaknol1
\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.90798
Path/crops/tmptiktok-trending-subset6875528457388903681.mp4output_000003.jpg_893_538_1011_538_1011_559_893_559.jpg
label@ashena501
\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.908586
Path/crops/tmptiktok-trending-subset6875621663564680450.mp4output_000002.jpg_121_195_439_195_439_221_121_221.jpg
labelwhenwefirststartedvs
\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.908878
Path/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_433_946_561_946_561_976_433_976.jpg
labelJTikTok
\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.90898
Path/crops/tmptiktok-trending-subset6875749962681044230.mp4output_000002.jpg_347_262_563_210_575_267_361_318.jpg
labelHEYNOOK
\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.90898
Path/crops/tmptiktok-trending-subset6875749962681044230.mp4output_000001.jpg_346_259_565_210_575_267_359_316.jpg
labelHEYNOOK
\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.909159
Path/crops/tmptiktok-trending-subset6875405441472498949.mp4output_000005.jpg_457_945_561_945_561_975_457_975.jpg
labelTikTok
\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.91165
Path/crops/tmptiktok-trending-subset6875639469563759873.mp4output_000003.jpg_454_987_563_987_563_1008_454_1008.jpg
label@justinvanr
\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.911661
Path/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000002.jpg_162_852_381_852_381_913_162_913.jpg
labelTUTORIAL
\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.911806
Path/crops/tmptiktok-trending-subset6875468410612993286.mp4output_000001.jpg_59_26_149_26_149_55_59_55.jpg
labelTikTOK
\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.outliers_gallery(load_crops=True)" ] }, { "cell_type": "markdown", "id": "84f0082f", "metadata": {}, "source": [ "## Blurry Detections" ] }, { "cell_type": "code", "execution_count": 15, "id": "e13ccbaa", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|█| 20/20 [00:00<00:00, 216.36it\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Stored blur visual view in work_dir/galleries/blur.html\n", "########################################################################################\n", "Would you like to see awesome visualizations for some of the most popular academic datasets?\n", "Click here to see and learn more: https://app.visual-layer.com/vl-datasets?utm_source=fastdup\n", "########################################################################################\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", " \n", " \n", "\n", " \n", "
Info
blur345.0356
filenameframes/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpg
labelN/A
\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
blur688.3301
filenameframes/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpg
labelN/A
\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
blur739.3006
filenameframes/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000002.jpg
labelN/A
\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
blur208.8422
filenameframes/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000001.jpg
labelN/A
\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
blur360.8476
filenameframes/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000001.jpg
labelN/A
\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
blur1321.6235
filenameframes/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000001.jpg
labelN/A
\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
blur737.07
filenameframes/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000001.jpg
labelN/A
\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
blur364.9784
filenameframes/tmp/tiktok-trending-subset6875342937002085633.mp4/output_000001.jpg
labelN/A
\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
blur486.7106
filenameframes/tmp/tiktok-trending-subset6875342937002085633.mp4/output_000001.jpg
labelN/A
\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
blur1193.521
filenameframes/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000003.jpg
labelN/A
\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
blur895.0907
filenameframes/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000003.jpg
labelN/A
\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
blur662.8271
filenameframes/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000003.jpg
labelN/A
\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
blur1708.792
filenameframes/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000003.jpg
labelN/A
\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
blur3642.5037
filenameframes/tmp/tiktok-trending-subset6875323773755657474.mp4/output_000003.jpg
labelN/A
\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
blur253.2622
filenameframes/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000001.jpg
labelN/A
\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
blur139.6932
filenameframes/tmp/tiktok-trending-subset6875373441432816898.mp4/output_000001.jpg
labelN/A
\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
blur1860.1863
filenameframes/tmp/tiktok-trending-subset6875405441472498949.mp4/output_000004.jpg
labelN/A
\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
blur8614.8867
filenameframes/tmp/tiktok-trending-subset6875405441472498949.mp4/output_000004.jpg
labelN/A
\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
blur8035.5918
filenameframes/tmp/tiktok-trending-subset6875405441472498949.mp4/output_000004.jpg
labelN/A
\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
blur3628.0278
filenameframes/tmp/tiktok-trending-subset6875405441472498949.mp4/output_000004.jpg
labelN/A
\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', load_crops=True)" ] }, { "cell_type": "markdown", "id": "1ba3047a", "metadata": {}, "source": [ "## Detection Clusters" ] }, { "cell_type": "code", "execution_count": 16, "id": "f507710d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "TikTok\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█| 20/20 [00:00<00:00, 713.79it" ] }, { "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.1\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "########################################################################################\n", "Would you like to see awesome visualizations for some of the most popular academic datasets?\n", "Click here to see and learn more: https://app.visual-layer.com/vl-datasets?utm_source=fastdup\n", "########################################################################################\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
component18
num_images15
mean_distance0.9615
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Label
feelheavierthanthenom7
haveadecentamountof6
wouldyouratherliveInthe2
\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
component44
num_images11
mean_distance0.963
\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", "
Label
duringsquatsanddeadlift?I6
badasscharacterspt293
Someonesgetting that1
badass characterspt291
\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
component17
num_images7
mean_distance0.9659
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Label
whydoesthemetalplates7
\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
component124
num_images7
mean_distance0.9626
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Label
Reply to dolphinarmss comment6
Replytot.and.dscomment1
\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
component16
num_images7
mean_distance0.9828
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Label
Replytojessca4765scomment6
Reply tojessca4765scomment1
\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
component129
num_images6
mean_distance0.9624
\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", "
Label
Flat back benching is like2
locking out your knees2
Stupid and dangerous.1
Stupidanddangerous.1
\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
component146
num_images6
mean_distance0.9696
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Label
newlever6
\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
component144
num_images6
mean_distance0.9785
\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", "
Label
Wheredoyouputyourbelt3
OWhere doyouputyour belt1
Owhere doyouputyourbelt1
Where doyouputyourbelt1
\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
component19
num_images5
mean_distance0.9611
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Label
metalplates?5
\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
component148
num_images5
mean_distance0.9602
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Label
@timmytimmadome5
\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
component71
num_images4
mean_distance0.9778
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Label
Someofthemost4
\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
component72
num_images4
mean_distance0.9685
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", "\n", " \n", " \n", "\n", " \n", "
Label
Chikara Ennoshita2
ChikaraEnnoshita2
\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
component149
num_images3
mean_distance0.9914
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Label
bruisingandpainwithmy3
\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
component77
num_images3
mean_distance0.9744
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Label
@buutterrr3
\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
component73
num_images3
mean_distance0.9873
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Label
TikTok3
\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
component110
num_images3
mean_distance0.9611
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Label
TikTok3
\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
component145
num_images3
mean_distance0.9814
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Label
bruisingandpainwithmy3
\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
component147
num_images3
mean_distance0.9661
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Label
TikTok3
\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
component33
num_images3
mean_distance0.96
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Label
TikTok3
\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
component130
num_images2
mean_distance0.9718
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", "\n", " \n", "
Label
during a leg press.2
\n", "
\n", "
\n", "
\n", " \n", "
\n", "
\n", " \n", "
\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "0" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.vis.component_gallery()" ] }, { "cell_type": "markdown", "id": "8038c705", "metadata": {}, "source": [ "## Similarity Gallery\n", "We can compare the detections with two of it's nearest neighbors to see if there are discrepencies in labels." ] }, { "cell_type": "code", "execution_count": 17, "id": "333568b4", "metadata": {}, "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, 322.32it" ] }, { "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" ] }, { "name": "stdout", "output_type": "stream", "text": [ "########################################################################################\n", "Would you like to see awesome visualizations for some of the most popular academic datasets?\n", "Click here to see and learn more: https://app.visual-layer.com/vl-datasets?utm_source=fastdup\n", "########################################################################################\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", " \n", " \n", "\n", " \n", "
Info From
labelHEAL TOE
from/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000001.jpg_162_662_384_662_384_723_162_723.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.964309/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000002.jpg_164_663_385_663_385_723_164_723.jpgHEALTOE
0.900267/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000001.jpg_162_853_381_853_381_913_162_913.jpgTUTORIAL
\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", " \n", " \n", "\n", " \n", "
Info From
labelTikTok
from/crops/tmptiktok-trending-subset6875651291343883522.mp4output_000002.jpg_457_943_561_945_561_976_456_974.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.906236/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_433_946_561_946_561_976_433_976.jpgJTikTok
0.901725/crops/tmptiktok-trending-subset6875317312082201857.mp4output_000001.jpg_56_25_151_25_151_55_56_55.jpgTikTok
\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", " \n", " \n", "\n", " \n", "
Info From
labelTiKTOK
from/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000002.jpg_464_940_559_940_559_975_464_975.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.924796/crops/tmptiktok-trending-subset6875373441432816898.mp4output_000001.jpg_59_26_151_26_151_55_59_55.jpgTikToK
0.901787/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000001.jpg_59_25_150_25_150_55_59_55.jpgTikTok
\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", " \n", " \n", "\n", " \n", "
Info From
label@marc.koolen
from/crops/tmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_12_66_146_66_146_87_12_87.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.902096/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000001.jpg_13_67_119_69_118_89_13_86.jpg@catocade
\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", " \n", " \n", "\n", " \n", "
Info From
label@catocade
from/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000001.jpg_13_67_119_69_118_89_13_86.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.925524/crops/tmptiktok-trending-subset6875373441432816898.mp4output_000001.jpg_11_63_105_66_104_90_10_86.jpg@caitlinjs
0.902096/crops/tmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_12_66_146_66_146_87_12_87.jpg@marc.koolen
\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", " \n", " \n", "\n", " \n", "
Info From
labelTikTOK
from/crops/tmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_61_26_149_26_149_55_61_55.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.925996/crops/tmptiktok-trending-subset6875373441432816898.mp4output_000001.jpg_59_26_151_26_151_55_59_55.jpgTikToK
0.905003/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000001.jpg_59_25_150_25_150_55_59_55.jpgTikTok
\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", " \n", " \n", "\n", " \n", "
Info From
label@martijn.schilder
from/crops/tmptiktok-trending-subset6875651291343883522.mp4output_000003.jpg_399_984_562_987_562_1009_399_1007.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.922588/crops/tmptiktok-trending-subset6875749962681044230.mp4output_000002.jpg_425_1044_563_1046_562_1066_425_1064.jpg@reece.lowery
0.905566/crops/tmptiktok-trending-subset6875317312082201857.mp4output_000001.jpg_13_68_203_68_203_86_13_86.jpg@sandrovanmunster
\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", " \n", " \n", "\n", " \n", "
Info From
labelThankyoul
from/crops/tmptiktok-trending-subset6875468410612993286.mp4output_000001.jpg_384_670_470_668_470_690_385_692.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.906044/crops/tmptiktok-trending-subset6875468410612993286.mp4output_000001.jpg_344_636_507_632_507_655_344_658.jpgstudying aroundyou.
\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", " \n", " \n", "\n", " \n", "
Info From
labelstudying aroundyou.
from/crops/tmptiktok-trending-subset6875468410612993286.mp4output_000001.jpg_344_636_507_632_507_655_344_658.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.935684/crops/tmptiktok-trending-subset6875468410612993286.mp4output_000001.jpg_347_605_503_599_503_618_348_623.jpgPlease respect those
0.906044/crops/tmptiktok-trending-subset6875468410612993286.mp4output_000001.jpg_384_670_470_668_470_690_385_692.jpgThankyoul
\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", " \n", " \n", "\n", " \n", "
Info From
label@sandrovanmunster
from/crops/tmptiktok-trending-subset6875317312082201857.mp4output_000001.jpg_13_68_203_68_203_86_13_86.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.919321/crops/tmptiktok-trending-subset6875405441472498949.mp4output_000004.jpg_377_987_564_987_564_1008_377_1008.jpg@timmytimmadome
0.906131/crops/tmptiktok-trending-subset6875405441472498949.mp4output_000003.jpg_376_986_564_988_564_1009_376_1007.jpg@timmytimmadome
\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", " \n", " \n", "\n", " \n", "
Info From
label@irmaknol1
from/crops/tmptiktok-trending-subset6875342937002085633.mp4output_000001.jpg_12_66_122_66_122_87_12_87.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.91165/crops/tmptiktok-trending-subset6875639469563759873.mp4output_000003.jpg_454_987_563_987_563_1008_454_1008.jpg@justinvanr
0.907005/crops/tmptiktok-trending-subset6875639469563759873.mp4output_000002.jpg_454_987_563_987_563_1008_454_1008.jpg@justinvanr
\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", " \n", " \n", "\n", " \n", "
Info From
label@ashena501
from/crops/tmptiktok-trending-subset6875528457388903681.mp4output_000003.jpg_893_538_1011_538_1011_559_893_559.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.975834/crops/tmptiktok-trending-subset6875528457388903681.mp4output_000002.jpg_894_538_1011_538_1011_559_894_559.jpg@ashena501
0.90798/crops/tmptiktok-trending-subset6875528457388903681.mp4output_000004.jpg_894_538_1013_538_1013_559_894_559.jpg@ashena501
\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", " \n", " \n", "\n", " \n", "
Info From
labelwhenwefirststartedvs
from/crops/tmptiktok-trending-subset6875621663564680450.mp4output_000002.jpg_121_195_439_195_439_221_121_221.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.988705/crops/tmptiktok-trending-subset6875621663564680450.mp4output_000001.jpg_121_195_439_195_439_221_121_221.jpgwhenwefirststartedvs
0.908586/crops/tmptiktok-trending-subset6875621663564680450.mp4output_000002.jpg_14_68_199_68_199_86_14_86.jpg@elirose.equestrian
\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", " \n", " \n", "\n", " \n", "
Info From
labelJTikTok
from/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_433_946_561_946_561_976_433_976.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.92183/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000003.jpg_467_946_561_946_561_976_467_976.jpgTikTok
0.908878/crops/tmptiktok-trending-subset6875872124968439046.mp4output_000004.jpg_467_946_561_946_561_976_467_976.jpgTikTok
\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", " \n", " \n", "\n", " \n", "
Info From
labelHEYNOOK
from/crops/tmptiktok-trending-subset6875749962681044230.mp4output_000001.jpg_346_259_565_210_575_267_359_316.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.90898/crops/tmptiktok-trending-subset6875749962681044230.mp4output_000002.jpg_347_262_563_210_575_267_361_318.jpgHEYNOOK
\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", " \n", " \n", "\n", " \n", "
Info From
labelHEYNOOK
from/crops/tmptiktok-trending-subset6875749962681044230.mp4output_000002.jpg_347_262_563_210_575_267_361_318.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.90898/crops/tmptiktok-trending-subset6875749962681044230.mp4output_000001.jpg_346_259_565_210_575_267_359_316.jpgHEYNOOK
\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", " \n", " \n", "\n", " \n", "
Info From
labelTikTok
from/crops/tmptiktok-trending-subset6875405441472498949.mp4output_000005.jpg_457_945_561_945_561_975_457_975.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.909159/crops/tmptiktok-trending-subset6875323773755657474.mp4output_000002.jpg_59_25_151_25_151_55_59_55.jpgTikTok
\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", " \n", " \n", "\n", " \n", "
Info From
label@justinvanr
from/crops/tmptiktok-trending-subset6875639469563759873.mp4output_000003.jpg_454_987_563_987_563_1008_454_1008.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.969212/crops/tmptiktok-trending-subset6875639469563759873.mp4output_000002.jpg_454_987_563_987_563_1008_454_1008.jpg@justinvanr
0.91165/crops/tmptiktok-trending-subset6875342937002085633.mp4output_000001.jpg_12_66_122_66_122_87_12_87.jpg@irmaknol1
\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", " \n", " \n", "\n", " \n", "
Info From
labelTUTORIAL
from/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000002.jpg_162_852_381_852_381_913_162_913.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.985895/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000001.jpg_162_853_381_853_381_913_162_913.jpgTUTORIAL
0.911661/crops/tmptiktok-trending-subset6875453919879908614.mp4output_000002.jpg_106_762_438_762_438_816_106_816.jpgSHUFFLE STEP
\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", " \n", " \n", "\n", " \n", "
Info From
labelTikTOK
from/crops/tmptiktok-trending-subset6875468410612993286.mp4output_000001.jpg_59_26_149_26_149_55_59_55.jpg
\n", "
\n", "
\n", "
\n", "
\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", "\n", " \n", "
Info To
0.911806/crops/tmptiktok-trending-subset6875373441432816898.mp4output_000001.jpg_59_26_151_26_151_55_59_55.jpgTikToK
\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", "
fromtolabellabel2distance
Loading... (need help?)
\n", "\n", "
\n" ], "text/plain": [ " from to label label2 distance\n", "85 work_dir/crops/framestmptiktok-trending-subset6875453919879908614.mp4output_000001.jpg_162_662_384_662_384_723_162_723.jpg [work_dir/crops/framestmptiktok-trending-subset6875453919879908614.mp4output_000001.jpg_162_853_381_853_381_913_162_913.jpg, work_dir/crops/framestmptiktok-trending-subset6875453919879908614.mp4output_000002.jpg_164_663_385_663_385_723_164_723.jpg] [HEAL TOE, HEAL TOE] [TUTORIAL, HEALTOE] [0.900267, 0.964309]\n", "121 work_dir/crops/framestmptiktok-trending-subset6875651291343883522.mp4output_000002.jpg_457_943_561_945_561_976_456_974.jpg [work_dir/crops/framestmptiktok-trending-subset6875317312082201857.mp4output_000001.jpg_56_25_151_25_151_55_56_55.jpg, work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_433_946_561_946_561_976_433_976.jpg] [TikTok, TikTok] [TikTok, JTikTok] [0.901725, 0.906236]\n", "91 work_dir/crops/framestmptiktok-trending-subset6875453919879908614.mp4output_000002.jpg_464_940_559_940_559_975_464_975.jpg [work_dir/crops/framestmptiktok-trending-subset6875453919879908614.mp4output_000001.jpg_59_25_150_25_150_55_59_55.jpg, work_dir/crops/framestmptiktok-trending-subset6875373441432816898.mp4output_000001.jpg_59_26_151_26_151_55_59_55.jpg] [TiKTOK, TiKTOK] [TikTok, TikToK] [0.901787, 0.924796]\n", "2 work_dir/crops/framestmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_12_66_146_66_146_87_12_87.jpg [work_dir/crops/framestmptiktok-trending-subset6875453919879908614.mp4output_000001.jpg_13_67_119_69_118_89_13_86.jpg] [@marc.koolen] [@catocade] [0.902096]\n", "84 work_dir/crops/framestmptiktok-trending-subset6875453919879908614.mp4output_000001.jpg_13_67_119_69_118_89_13_86.jpg [work_dir/crops/framestmptiktok-trending-subset6875323773755657474.mp4output_000001.jpg_12_66_146_66_146_87_12_87.jpg, work_dir/crops/framestmptiktok-trending-subset6875373441432816898.mp4output_000001.jpg_11_63_105_66_104_90_10_86.jpg] [@catocade, @catocade] [@marc.koolen, @caitlinjs] [0.902096, 0.925524]\n", ".. ... ... ... ... ...\n", "69 work_dir/crops/framestmptiktok-trending-subset6875436892226178305.mp4output_000002.jpg_153_239_424_242_423_272_152_269.jpg [work_dir/crops/framestmptiktok-trending-subset6875436892226178305.mp4output_000003.jpg_153_239_424_242_423_272_152_269.jpg, work_dir/crops/framestmptiktok-trending-subset6875436892226178305.mp4output_000004.jpg_153_239_424_242_423_272_152_269.jpg] [Someofthemost, Someofthemost] [Someofthemost, Someofthemost] [0.996223, 0.998665]\n", "197 work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000005.jpg_78_531_277_531_277_546_78_546.jpg [work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_78_531_277_531_277_546_78_546.jpg, work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000002.jpg_78_531_277_531_277_546_78_546.jpg] [Reply to dolphinarmss comment, Reply to dolphinarmss comment] [Reply to dolphinarmss comment, Reply to dolphinarmss comment] [0.996696, 0.998334]\n", "203 work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_78_531_277_531_277_546_78_546.jpg [work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000002.jpg_78_531_277_531_277_546_78_546.jpg, work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000001.jpg_78_531_277_531_277_546_78_546.jpg] [Reply to dolphinarmss comment, Reply to dolphinarmss comment] [Reply to dolphinarmss comment, Reply to dolphinarmss comment] [0.996716, 0.996797]\n", "172 work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000002.jpg_78_531_277_531_277_546_78_546.jpg [work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000006.jpg_78_531_277_531_277_546_78_546.jpg, work_dir/crops/framestmptiktok-trending-subset6875872124968439046.mp4output_000005.jpg_78_531_277_531_277_546_78_546.jpg] [Reply to dolphinarmss comment, Reply to dolphinarmss comment] [Reply to dolphinarmss comment, Reply to dolphinarmss comment] [0.996716, 0.998334]\n", "79 work_dir/crops/framestmptiktok-trending-subset6875436892226178305.mp4output_000004.jpg_153_239_424_242_423_272_152_269.jpg [work_dir/crops/framestmptiktok-trending-subset6875436892226178305.mp4output_000003.jpg_153_239_424_242_423_272_152_269.jpg, work_dir/crops/framestmptiktok-trending-subset6875436892226178305.mp4output_000002.jpg_153_239_424_242_423_272_152_269.jpg] [Someofthemost, Someofthemost] [Someofthemost, Someofthemost] [0.99756, 0.998665]\n", "\n", "[207 rows x 5 columns]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd.vis.similarity_gallery()" ] }, { "cell_type": "markdown", "id": "f7134521", "metadata": {}, "source": [ "## Wrap Up\n", "\n", "In this notebook we show how you can run OCR models with fastdup and analyze the bounding boxes for issues.\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. " ] }, { "cell_type": "markdown", "id": "2c8db74e", "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)." ] }, { "cell_type": "markdown", "id": "6acb53ba-f813-4257-b9fd-2031ccea91d1", "metadata": {}, "source": [ "
\n", " GitHub •\n", " Join Slack community •\n", " Discussion Forum \n", "
\n", "\n", "
\n", " Blog •\n", " Documentation •\n", " About Us \n", "
\n", "\n", "
\n", " LinkedIn •\n", " Twitter \n", "
" ] } ], "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.12" } }, "nbformat": 4, "nbformat_minor": 5 }