From 7da21c4a096407cdc58e9324e61a62f5e478d4cc Mon Sep 17 00:00:00 2001 From: dnth Date: Mon, 1 May 2023 14:34:31 +0800 Subject: [PATCH 1/7] raw first example --- examples/image-search.ipynb | 317 ++++++++++++++++++++++++++++++++++++ 1 file changed, 317 insertions(+) create mode 100644 examples/image-search.ipynb diff --git a/examples/image-search.ipynb b/examples/image-search.ipynb new file mode 100644 index 00000000..80a11d49 --- /dev/null +++ b/examples/image-search.ipynb @@ -0,0 +1,317 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# !pip install -U fastdup" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'0.925'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import fastdup\n", + "fastdup.__version__" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "input_dir = \"./food-101/images/\"\n", + "work_dir = \"my-fastdup-workdir\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "fastdup.run(input_dir, work_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2023-05-01 14:32:30 [INFO] 143) Finished load_index() NN model, num_images 101000\n", + "2023-05-01 14:32:30 [INFO] Read nnf index file from my-fastdup-workdir/nnf.index 1\n", + "2023-05-01 14:32:30 [INFO] Read NNF index with 101000 images\n" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fastdup.init_search(10, work_dir, verbose=True, license='your-license-key')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "char vec0 :[222, 234, 236, 222, 234, 236, 222, 234, 236]\n", + "char vec672 :[222, 234, 236, 222, 234, 236, 223, 235, 237]\n", + "char vec1344 :[223, 235, 237, 223, 235, 237, 223, 235, 237]\n", + "\n", + "Image from python side:\n", + "[[222, 234, 236], [222, 234, 236], [222, 234, 236]]\n", + "[[222, 234, 236], [222, 234, 236], [223, 235, 237]]\n", + "[[223, 235, 237], [223, 235, 237], [223, 235, 237]]\n", + "\n", + "\n", + "resized 224:\n", + "[[222, 234, 236], [222, 234, 236], [222, 234, 236]]\n", + "[[222, 234, 236], [222, 234, 236], [223, 235, 237]]\n", + "[[223, 235, 237], [223, 235, 237], [223, 235, 237]]\n", + "\n", + "\n", + "RGB:\n", + "[[236, 234, 222], [236, 234, 222], [236, 234, 222]]\n", + "[[236, 234, 222], [236, 234, 222], [237, 235, 223]]\n", + "[[237, 235, 223], [237, 235, 223], [237, 235, 223]]\n", + "\n", + "0 :[236.0000, 234.0000, 222.0000, 236.0000, 234.0000, 222.0000, 236.0000, 234.0000, 222.0000, 237.0000]\n", + "2023-05-01 14:32:30 [DEBUG] Inner inference took 5 (test? 0)\n", + "output_tensor0 :[1.4992, 0.2995, -0.0762, 1.0952, 0.0231, 0.2423, 0.0349, 2.2856, 0.2712, 1.1774]\n", + "output_tensor_end0 :[0.5141, -0.0602, 0.4611, -0.0038]\n", + "2023-05-01 14:32:30 [DEBUG] Quad array 0x36df2d0 0 start_offset 0 \n", + "features0 :[1.4992, 0.2995, -0.0762, 1.0952]\n", + "2023-05-01 14:32:30 [DEBUG] Finished inference fine 0 (test 0)!!\n", + "2023-05-01 14:32:30 [DEBUG] Going to init quad array of size 1\n", + "2023-05-01 14:32:30 [DEBUG] Going to run 1 batches with reminder 0\n", + "2023-05-01 14:32:30 [DEBUG] Going to run single thread normalization of 1 from offet 0\n", + "2023-05-01 14:32:31 [DEBUG] Finished single thread normalization\n", + "after normalization10 :[0.0862, 0.0172, -0.0044, 0.0630]\n", + "2023-05-01 14:32:31 [DEBUG] KNN results\n", + "100256 : 0.80803 28330 : 0.80783 2760 : 0.80775 8846 : 0.80746 8706 : 0.80650 15126 : 0.80261 100585 : 0.80106 35497 : 0.80053 28877 : 0.79877 42522 : 0.79858 \n", + " 0 : 0.00000 49 : 0.00000 3544386977768894310 : 0.00000 3419188036794935599 : 0.00000 7597677460589670497 : 0.00000 3617294514893434725 : 0.00000 28992366868835896 : 281751455506530041856.00000 897 : -23395191570343299587251283835383447552.00000 8317665964126642186 : -0.01465 8007527016761811316 : 0.00000 \n", + "8019820656356237414 : 0.00000 7020094910173112167 : 0.00000 7310028726184473459 : 0.00000 8295737305636693363 : 0.00000 8028827855677255273 : 0.00000 7521891431244982119 : 0.00000 4692801854813138529 : 0.00000 8028829757068025866 : 0.00000 7521891431244982119 : 1.00000 7575092422190722657 : 0.00000 \n", + "8315180248637989998 : 0.00000 7018141355808284960 : 0.00000 6998715184368217888 : 0.00000 7598805550879240304 : 0.00000 7161137120783789679 : 0.00000 2339461024454372468 : 0.00000 2459000718892887649 : 0.00000 8316213518951346785 : 0.00000 7234309775409112096 : 0.00000 8367811756012300576 : 75879931235666217548311122935808.00000 \n", + "8097789224905089135 : 0.00000 8028075772393122928 : 0.00000 8028903794876358766 : 0.00000 7955981614409999728 : 0.00000 2314861677660628323 : 0.00000 7163375912487034912 : 0.00000 7017488303061038177 : 0.00000 6998705380048511086 : 0.00000 7305521896674589038 : 0.00000 7310011936961142898 : 0.00000 \n", + "7451046618694710113 : 9002519887872.00000 7953753191867706985 : 0.00000 7310011937179067758 : 0.00000 7379557481919572256 : 0.00000 2314885530453828969 : 0.00000 7597138403349526882 : 0.00000 7598263559141029233 : 0.00000 7813868778502907758 : 0.00000 2336927755366654825 : 281751455506530041856.00000 7017488324300730977 : 262232766760576090112.00000 \n", + "8315173372428427374 : 0.00000 7434991257851815284 : 0.00000 7310011937094443054 : 0.00000 7381153636633545313 : 0.00000 2338623232261300768 : 0.00000 7598543875601298032 : 0.00000 7523097619957180270 : 0.00000 7238811150377885812 : 0.00000 8241918693965242469 : 0.00000 7018141085225673061 : 0.00000 \n", + "7594793376743104612 : 1.00000 8224171243460584812 : 0.00000 2314885530453827941 : 0.00000 7308332182665383000 : 0.00000 2459075821782966899 : 0.00000 8461778954324370802 : 0.00000 7594793432949876077 : 0.00000 6061895852647212396 : 0.00000 2338042707083206767 : 0.00000 8316293034886197094 : 0.00000 \n", + "7809649077626433056 : 18887700899781943496188928983040.00000 7453010382217899552 : 198867124084860373696512.00000 7521891124988873260 : 71443279863152654564506831159296.00000 7020584519047474785 : 6.65627 2334397743343297901 : 0.00000 7312272867790910063 : 0.00000 6998716366793023588 : 0.00000 7021238698534596128 : 0.00000 7021786272416949603 : -0.00000 7307221376768172914 : -0.00000 \n", + "7810779306721830258 : -0.00000 2314861639295377523 : 0.00000 7021781904390299680 : 0.00000 8079591193859876212 : 0.00000 2318354783392068197 : 0.00000 7739836321059009901 : 0.00000 7010451389871824997 : 0.00000 8741522552588886390 : 0.00000 7161128167089858676 : 0.00000 7881701908294361451 : 0.00000 \n", + "2023-05-01 14:32:31 [DEBUG] Replacing lower threshold 0.000000 with position 9 top_k.size() 10 loc pos: 0.798576 last pos: 0.798576 1.000000 10.000000\n", + "2023-05-01 14:32:31 [INFO] Total time took 59 ms\n", + "2023-05-01 14:32:31 [INFO] Found a total of 0 fully identical images (d>0.990), which are 0.00 %\n", + "2023-05-01 14:32:31 [INFO] Found a total of 0 nearly identical images(d>0.980), which are 0.00 %\n", + "2023-05-01 14:32:31 [INFO] Found a total of 10 above threshold images (d>0.000), which are 0.00 %\n", + "2023-05-01 14:32:31 [INFO] Found a total of 1 outlier images (d<0.000), which are 0.00 %\n", + "2023-05-01 14:32:31 [INFO] Min distance found 0.799 max distance 0.808\n", + "2023-05-01 14:32:31 [INFO] \n", + "\n", + "Example similar files\n", + "from,to,distance\n", + "my_apple_pie2.jpg,food-101/images/waffles/1852612.jpg,0.808035\n", + "my_apple_pie2.jpg,food-101/images/croque_madame/2168715.jpg,0.807826\n", + "my_apple_pie2.jpg,food-101/images/baklava/3671071.jpg,0.807754\n", + "my_apple_pie2.jpg,food-101/images/bread_pudding/449076.jpg,0.807464\n" + ] + } + ], + "source": [ + "df = fastdup.search(\"my_apple_pie2.jpg\", None, verbose=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 10/10 [00:00<00:00, 112.04it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Stored similarity visual view in ./duplicates.html\n" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fastdup.create_duplicates_gallery(df, \".\",input_dir=input_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "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%|██████████| 1/1 [00:00<00:00, 10.22it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Stored similar images visual view in ./similarity.html\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
fromtodistance
0my_apple_pie2.jpg[food-101/images/french_toast/2789383.jpg, food-101/images/croque_madame/596068.jpg, food-101/images/escargots/2740742.jpg, food-101/images/waffles/3074426.jpg, food-101/images/ceviche/149829.jpg, food-101/images/bread_pudding/3463547.jpg, food-101/images/bread_pudding/449076.jpg, food-101/images/baklava/3671071.jpg, food-101/images/croque_madame/2168715.jpg, food-101/images/waffles/1852612.jpg][0.798576, 0.798768, 0.800533, 0.801059, 0.802614, 0.8065, 0.807464, 0.807754, 0.807826, 0.808035]
\n", + "
" + ], + "text/plain": [ + " from \n", + "0 my_apple_pie2.jpg \\\n", + "\n", + " to \n", + "0 [food-101/images/french_toast/2789383.jpg, food-101/images/croque_madame/596068.jpg, food-101/images/escargots/2740742.jpg, food-101/images/waffles/3074426.jpg, food-101/images/ceviche/149829.jpg, food-101/images/bread_pudding/3463547.jpg, food-101/images/bread_pudding/449076.jpg, food-101/images/baklava/3671071.jpg, food-101/images/croque_madame/2168715.jpg, food-101/images/waffles/1852612.jpg] \\\n", + "\n", + " distance \n", + "0 [0.798576, 0.798768, 0.800533, 0.801059, 0.802614, 0.8065, 0.807464, 0.807754, 0.807826, 0.808035] " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fastdup.create_similarity_gallery(df, \".\",input_dir=input_dir, min_items=3)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "fastdup", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.11" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 5547d4bf1078e05356096ced81c3744ca06ad963 Mon Sep 17 00:00:00 2001 From: dnth Date: Mon, 1 May 2023 14:37:41 +0800 Subject: [PATCH 2/7] display gallery --- examples/image-search.ipynb | 1518 ++++++++++++++++++++++++++++++++++- 1 file changed, 1484 insertions(+), 34 deletions(-) diff --git a/examples/image-search.ipynb b/examples/image-search.ipynb index 80a11d49..4983290f 100644 --- a/examples/image-search.ipynb +++ b/examples/image-search.ipynb @@ -58,9 +58,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "2023-05-01 14:32:30 [INFO] 143) Finished load_index() NN model, num_images 101000\n", - "2023-05-01 14:32:30 [INFO] Read nnf index file from my-fastdup-workdir/nnf.index 1\n", - "2023-05-01 14:32:30 [INFO] Read NNF index with 101000 images\n" + "2023-05-01 14:35:51 [INFO] 112) Finished load_index() NN model, num_images 101000\n", + "2023-05-01 14:35:51 [INFO] Read nnf index file from my-fastdup-workdir/nnf.index 1\n", + "2023-05-01 14:35:51 [INFO] Read NNF index with 101000 images\n" ] }, { @@ -109,36 +109,36 @@ "[[237, 235, 223], [237, 235, 223], [237, 235, 223]]\n", "\n", "0 :[236.0000, 234.0000, 222.0000, 236.0000, 234.0000, 222.0000, 236.0000, 234.0000, 222.0000, 237.0000]\n", - "2023-05-01 14:32:30 [DEBUG] Inner inference took 5 (test? 0)\n", + "2023-05-01 14:35:53 [DEBUG] Inner inference took 6 (test? 0)\n", "output_tensor0 :[1.4992, 0.2995, -0.0762, 1.0952, 0.0231, 0.2423, 0.0349, 2.2856, 0.2712, 1.1774]\n", "output_tensor_end0 :[0.5141, -0.0602, 0.4611, -0.0038]\n", - "2023-05-01 14:32:30 [DEBUG] Quad array 0x36df2d0 0 start_offset 0 \n", + "2023-05-01 14:35:53 [DEBUG] Quad array 0x26b6570 0 start_offset 0 \n", "features0 :[1.4992, 0.2995, -0.0762, 1.0952]\n", - "2023-05-01 14:32:30 [DEBUG] Finished inference fine 0 (test 0)!!\n", - "2023-05-01 14:32:30 [DEBUG] Going to init quad array of size 1\n", - "2023-05-01 14:32:30 [DEBUG] Going to run 1 batches with reminder 0\n", - "2023-05-01 14:32:30 [DEBUG] Going to run single thread normalization of 1 from offet 0\n", - "2023-05-01 14:32:31 [DEBUG] Finished single thread normalization\n", + "2023-05-01 14:35:53 [DEBUG] Finished inference fine 0 (test 0)!!\n", + "2023-05-01 14:35:53 [DEBUG] Going to init quad array of size 1\n", + "2023-05-01 14:35:53 [DEBUG] Going to run 1 batches with reminder 0\n", + "2023-05-01 14:35:53 [DEBUG] Going to run single thread normalization of 1 from offet 0\n", + "2023-05-01 14:35:54 [DEBUG] Finished single thread normalization\n", "after normalization10 :[0.0862, 0.0172, -0.0044, 0.0630]\n", - "2023-05-01 14:32:31 [DEBUG] KNN results\n", + "2023-05-01 14:35:54 [DEBUG] KNN results\n", "100256 : 0.80803 28330 : 0.80783 2760 : 0.80775 8846 : 0.80746 8706 : 0.80650 15126 : 0.80261 100585 : 0.80106 35497 : 0.80053 28877 : 0.79877 42522 : 0.79858 \n", - " 0 : 0.00000 49 : 0.00000 3544386977768894310 : 0.00000 3419188036794935599 : 0.00000 7597677460589670497 : 0.00000 3617294514893434725 : 0.00000 28992366868835896 : 281751455506530041856.00000 897 : -23395191570343299587251283835383447552.00000 8317665964126642186 : -0.01465 8007527016761811316 : 0.00000 \n", - "8019820656356237414 : 0.00000 7020094910173112167 : 0.00000 7310028726184473459 : 0.00000 8295737305636693363 : 0.00000 8028827855677255273 : 0.00000 7521891431244982119 : 0.00000 4692801854813138529 : 0.00000 8028829757068025866 : 0.00000 7521891431244982119 : 1.00000 7575092422190722657 : 0.00000 \n", - "8315180248637989998 : 0.00000 7018141355808284960 : 0.00000 6998715184368217888 : 0.00000 7598805550879240304 : 0.00000 7161137120783789679 : 0.00000 2339461024454372468 : 0.00000 2459000718892887649 : 0.00000 8316213518951346785 : 0.00000 7234309775409112096 : 0.00000 8367811756012300576 : 75879931235666217548311122935808.00000 \n", - "8097789224905089135 : 0.00000 8028075772393122928 : 0.00000 8028903794876358766 : 0.00000 7955981614409999728 : 0.00000 2314861677660628323 : 0.00000 7163375912487034912 : 0.00000 7017488303061038177 : 0.00000 6998705380048511086 : 0.00000 7305521896674589038 : 0.00000 7310011936961142898 : 0.00000 \n", - "7451046618694710113 : 9002519887872.00000 7953753191867706985 : 0.00000 7310011937179067758 : 0.00000 7379557481919572256 : 0.00000 2314885530453828969 : 0.00000 7597138403349526882 : 0.00000 7598263559141029233 : 0.00000 7813868778502907758 : 0.00000 2336927755366654825 : 281751455506530041856.00000 7017488324300730977 : 262232766760576090112.00000 \n", - "8315173372428427374 : 0.00000 7434991257851815284 : 0.00000 7310011937094443054 : 0.00000 7381153636633545313 : 0.00000 2338623232261300768 : 0.00000 7598543875601298032 : 0.00000 7523097619957180270 : 0.00000 7238811150377885812 : 0.00000 8241918693965242469 : 0.00000 7018141085225673061 : 0.00000 \n", - "7594793376743104612 : 1.00000 8224171243460584812 : 0.00000 2314885530453827941 : 0.00000 7308332182665383000 : 0.00000 2459075821782966899 : 0.00000 8461778954324370802 : 0.00000 7594793432949876077 : 0.00000 6061895852647212396 : 0.00000 2338042707083206767 : 0.00000 8316293034886197094 : 0.00000 \n", - "7809649077626433056 : 18887700899781943496188928983040.00000 7453010382217899552 : 198867124084860373696512.00000 7521891124988873260 : 71443279863152654564506831159296.00000 7020584519047474785 : 6.65627 2334397743343297901 : 0.00000 7312272867790910063 : 0.00000 6998716366793023588 : 0.00000 7021238698534596128 : 0.00000 7021786272416949603 : -0.00000 7307221376768172914 : -0.00000 \n", - "7810779306721830258 : -0.00000 2314861639295377523 : 0.00000 7021781904390299680 : 0.00000 8079591193859876212 : 0.00000 2318354783392068197 : 0.00000 7739836321059009901 : 0.00000 7010451389871824997 : 0.00000 8741522552588886390 : 0.00000 7161128167089858676 : 0.00000 7881701908294361451 : 0.00000 \n", - "2023-05-01 14:32:31 [DEBUG] Replacing lower threshold 0.000000 with position 9 top_k.size() 10 loc pos: 0.798576 last pos: 0.798576 1.000000 10.000000\n", - "2023-05-01 14:32:31 [INFO] Total time took 59 ms\n", - "2023-05-01 14:32:31 [INFO] Found a total of 0 fully identical images (d>0.990), which are 0.00 %\n", - "2023-05-01 14:32:31 [INFO] Found a total of 0 nearly identical images(d>0.980), which are 0.00 %\n", - "2023-05-01 14:32:31 [INFO] Found a total of 10 above threshold images (d>0.000), which are 0.00 %\n", - "2023-05-01 14:32:31 [INFO] Found a total of 1 outlier images (d<0.000), which are 0.00 %\n", - "2023-05-01 14:32:31 [INFO] Min distance found 0.799 max distance 0.808\n", - "2023-05-01 14:32:31 [INFO] \n", + " 0 : 0.00000 49 : 0.00000 3544386977768894310 : 0.00000 3419188036794935599 : 0.00000 7597677460589670497 : 0.00000 4121695478430642021 : 0.00000 28992366868835897 : 0.00000 2193 : 0.00000 1 : 0.00000 7597440 : 0.00000 \n", + " 2135 : 0.00000 -1 : 0.00000 228 : 0.00402 0 : 0.00000 2314885530818453514 : 0.02315 7310597220861952800 : 0.00000 7381153972736060704 : 0.21234 3203027409673807648 : 0.00000 7594323980039251232 : 0.03072 7598543892943759214 : 0.00000 \n", + "7310868735955330926 : 0.00000 2314885530447916659 : 0.00000 7021781765788278816 : 0.00000 2308784694146393453 : 0.00000 3251634253311516704 : 0.00000 3255307777713450285 : 0.00000 2314885530818447917 : 0.00000 7598247042123440160 : 0.00000 4188481160070782819 : 0.00000 7214815447285195296 : 0.00000 \n", + "5053166791084303973 : 0.00000 2314885437492259937 : 0.00000 2314885530818453536 : 0.00000 7306093603886876960 : 0.00000 7810966309603012384 : 0.00000 8389758742743507311 : 0.00000 7018134820192657452 : 0.00000 7957145225219219566 : 0.00000 2314885530447916659 : 0.00000 2314885530818453536 : 0.00000 \n", + "7598542776403242542 : 0.00000 7306930285074148975 : 0.00000 3328210917450725988 : 0.00000 2314885530817006128 : 0.00000 2314885530818453536 : 0.00000 8243115044097761312 : 0.00000 2340020702966408041 : 0.00000 7306930345266409326 : 0.00000 8390317583334711410 : 0.00000 7308901627683938419 : 0.00000 \n", + "7214877028286226528 : 0.00000 2338340640710026853 : 0.00000 7809600608580693876 : 0.00000 2308668953282504051 : 0.00000 7286859519435481120 : 0.00000 2322204177879099246 : 0.00000 7378413653863855219 : 0.00000 7957664967886140769 : 0.00000 2314885530818447973 : 0.00000 2317700280585560096 : 0.00000 \n", + "8027794400491298912 : 0.00000 5917793821095110510 : 0.00000 2334386829831401077 : 0.00000 8028075772644520047 : 0.00000 7454987295351119982 : 0.00000 7310600471075561576 : 0.00000 7359008709276169070 : 0.00000 7526774343895707506 : 0.00000 2314885530450292335 : 0.00000 2314885530818453536 : 0.00000 \n", + "7887331437808984106 : 0.00000 2322204156165054818 : 0.00000 7307218078133024082 : 0.00000 7598805615236902688 : 0.00000 8462108017802899055 : 0.00000 7142801682762590311 : 0.00000 2334102023184608623 : 0.00000 8030593374881083235 : 0.00000 3342060620746727533 : 0.00000 2314885530818453514 : 0.00000 \n", + "6926582544362119200 : 0.00000 2332970595738668640 : 0.00000 7815259820784885818 : 0.00000 6944586288467047284 : 0.00000 2841330909338755879 : 0.00000 7811247754560168032 : 0.00000 8295764020198204015 : 0.00000 2308771482894103653 : 0.00000 2314885530818453536 : 0.00000 7160829098613284896 : 0.00000 \n", + "2023-05-01 14:35:54 [DEBUG] Replacing lower threshold 0.000000 with position 9 top_k.size() 10 loc pos: 0.798576 last pos: 0.798576 1.000000 10.000000\n", + "2023-05-01 14:35:54 [INFO] Total time took 64 ms\n", + "2023-05-01 14:35:54 [INFO] Found a total of 0 fully identical images (d>0.990), which are 0.00 %\n", + "2023-05-01 14:35:54 [INFO] Found a total of 0 nearly identical images(d>0.980), which are 0.00 %\n", + "2023-05-01 14:35:54 [INFO] Found a total of 10 above threshold images (d>0.000), which are 0.00 %\n", + "2023-05-01 14:35:54 [INFO] Found a total of 1 outlier images (d<0.000), which are 0.00 %\n", + "2023-05-01 14:35:54 [INFO] Min distance found 0.799 max distance 0.808\n", + "2023-05-01 14:35:54 [INFO] \n", "\n", "Example similar files\n", "from,to,distance\n", @@ -162,7 +162,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 10/10 [00:00<00:00, 112.04it/s]\n" + "100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:00<00:00, 136.04it/s]\n" ] }, { @@ -187,6 +187,823 @@ "fastdup.create_duplicates_gallery(df, \".\",input_dir=input_dir)" ] }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " Duplicates Report\n", + " \n", + " \n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "
\n", + " \n", + " \"logo\"\n", + " \n", + "
\n", + " \n", + "
\n", + "
\n", + "
\n", + "

Duplicates Report

\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
Info
Distance0.808035
Frommy_apple_pie2.jpg
Tofood-101/images/waffles/1852612.jpg
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
Info
Distance0.807826
Frommy_apple_pie2.jpg
Tofood-101/images/croque_madame/2168715.jpg
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
Info
Distance0.807754
Frommy_apple_pie2.jpg
Tofood-101/images/baklava/3671071.jpg
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
Info
Distance0.807464
Frommy_apple_pie2.jpg
Tofood-101/images/bread_pudding/449076.jpg
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
Info
Distance0.8065
Frommy_apple_pie2.jpg
Tofood-101/images/bread_pudding/3463547.jpg
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
Info
Distance0.802614
Frommy_apple_pie2.jpg
Tofood-101/images/ceviche/149829.jpg
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
Info
Distance0.801059
Frommy_apple_pie2.jpg
Tofood-101/images/waffles/3074426.jpg
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
Info
Distance0.800533
Frommy_apple_pie2.jpg
Tofood-101/images/escargots/2740742.jpg
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
Info
Distance0.798768
Frommy_apple_pie2.jpg
Tofood-101/images/croque_madame/596068.jpg
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
Info
Distance0.798576
Frommy_apple_pie2.jpg
Tofood-101/images/french_toast/2789383.jpg
\n", + "
\n", + "
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + "
\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython.display import HTML\n", + "HTML(filename=\"duplicates.html\")" + ] + }, { "cell_type": "code", "execution_count": 6, @@ -203,7 +1020,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 1/1 [00:00<00:00, 10.22it/s]" + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.37it/s]" ] }, { @@ -277,6 +1094,640 @@ "fastdup.create_similarity_gallery(df, \".\",input_dir=input_dir, min_items=3)" ] }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " Similarity Report\n", + " \n", + " \n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "
\n", + " \n", + " \"logo\"\n", + " \n", + "
\n", + " \n", + "
\n", + "
\n", + "
\n", + "

Similarity Report

\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
Info From
frommy_apple_pie2.jpg
\n", + "
\n", + "
\n", + "
\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
Info To
0.808035food-101/images/waffles/1852612.jpg
0.807826food-101/images/croque_madame/2168715.jpg
0.807754food-101/images/baklava/3671071.jpg
0.807464food-101/images/bread_pudding/449076.jpg
0.8065food-101/images/bread_pudding/3463547.jpg
0.802614food-101/images/ceviche/149829.jpg
0.801059food-101/images/waffles/3074426.jpg
0.800533food-101/images/escargots/2740742.jpg
0.798768food-101/images/croque_madame/596068.jpg
0.798576food-101/images/french_toast/2789383.jpg
\n", + "
\n", + "
\n", + "
\n", + "\t\t\t\t\t\t
\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t
Query Image
\n", + "\t\t\t\t\t\t
\n", + "\t\t\t\t\t
\n", + "
\n", + "\t\t\t\t\t\t
\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t
Similar
\n", + "\t\t\t\t\t\t
\n", + "\t\t\t\t\t
\n", + "
\n", + " \n", + "
\n", + "
\n", + " \n", + "
\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "HTML(filename=\"similarity.html\")" + ] + }, { "cell_type": "code", "execution_count": null, @@ -294,7 +1745,7 @@ ], "metadata": { "kernelspec": { - "display_name": "fastdup", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -309,9 +1760,8 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.11" - }, - "orig_nbformat": 4 + } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } From 2ec71b7c6ce868e86cbda3eae58bb97723623e3b Mon Sep 17 00:00:00 2001 From: dnth Date: Mon, 1 May 2023 15:51:05 +0800 Subject: [PATCH 3/7] add headings --- examples/image-search.ipynb | 377 +++++++++++++++++++++++------------- 1 file changed, 239 insertions(+), 138 deletions(-) diff --git a/examples/image-search.ipynb b/examples/image-search.ipynb index 4983290f..6bfcff98 100644 --- a/examples/image-search.ipynb +++ b/examples/image-search.ipynb @@ -1,12 +1,35 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Image Search with fastdup: Finding images in Large Dataset using CPU.\n", + "\n", + "With the ever increasing data generated every day, it's becoming important to have efficient ways to search through large image dataset to find the ones you need.\n", + "\n", + "If you only have a CPU only machine and want to search through a large dataset using image as queries, this tutorial is for you.\n", + "\n", + "We will walk you through how to use fastdup to search through thousands of images and find similar looking images to your query image.\n", + "\n", + "> **NOTE**: This is an advanced functionality of fastdup and would require a license key to run. Sign up to get a free license key at info@visual-layer.com ." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Installation & Setting Up" + ] + }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "# !pip install -U fastdup" + "!pip install pip -U\n", + "!pip install fastdup matplotlib" ] }, { @@ -30,14 +53,34 @@ "fastdup.__version__" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Download Dataset\n", + "\n", + "In this notebook we will use the a dataset from Shopee Product Match Kaggle [Competition](https://www.kaggle.com/competitions/shopee-product-matching/data). In this competition participants must determine if two products are the same by their images.\n", + "\n", + "Head to Kaggle and download the dataset into your local directory." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Run fastdup\n", + "\n", + "Point `input_dir` to the location you store the images. `work_dir` is a folder to store all fastdup artifacts generated from the run." + ] + }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ - "input_dir = \"./food-101/images/\"\n", - "work_dir = \"my-fastdup-workdir\"" + "input_dir = \"./shopee-product-matching\"\n", + "work_dir = \"./my-fastdup-workdir\"" ] }, { @@ -49,6 +92,17 @@ "fastdup.run(input_dir, work_dir)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initialize Search Parameters\n", + "\n", + "Once the run is completed, let's initialize the search parameters.\n", + "\n", + "The first positional argument is `k` - The number of nearest neighbors to search for. In this case we want to search for 10 nearest neighbor. Feel free to experiment with your own number of `k`." + ] + }, { "cell_type": "code", "execution_count": 3, @@ -58,9 +112,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "2023-05-01 14:35:51 [INFO] 112) Finished load_index() NN model, num_images 101000\n", - "2023-05-01 14:35:51 [INFO] Read nnf index file from my-fastdup-workdir/nnf.index 1\n", - "2023-05-01 14:35:51 [INFO] Read NNF index with 101000 images\n" + "2023-05-01 15:49:24 [INFO] 49) Finished load_index() NN model, num_images 32415\n", + "2023-05-01 15:49:24 [INFO] Read nnf index file from ./my-fastdup-workdir/nnf.index 1\n", + "2023-05-01 15:49:24 [INFO] Read NNF index with 32415 images\n" ] }, { @@ -75,94 +129,141 @@ } ], "source": [ - "fastdup.init_search(10, work_dir, verbose=True, license='your-license-key')\n" + "fastdup.init_search(10, work_dir, license='magical')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Search with a Query Image\n", + "\n", + "Let's use our own image and find out if there are matches in the shopee dataset." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAGFCAYAAAASI+9IAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9V7Qs2XnfCf6+vSMiM4+/3tctc8sXCigABEEShgAJGoEEyR6RlOnuB6nX0nBpSZqe0agf9DStmUepu7XmYXrW0kw32RJHpOhAiU1JJEiABAkUyqNQhfJ1b9Wt681xmRkRe+9vHvaOyMhzzy3YMgTiX3VunpMZGWabzxtRVaVHjx49evQAzDt9Az169OjR492Dnin06NGjR48WPVPo0aNHjx4teqbQo0ePHj1a9EyhR48ePXq06JlCjx49evRo0TOFHj169OjRomcKPXr06NGjRc8UevTo0aNHi54p9OjRo0ePFj1T6NGjR48eLXqm0KNHjx49WvRMoUePHj16tOiZQo8ePXr0aNEzhR49evTo0aJnCj169OjRo0XPFHr06NGjR4ueKfTo0aNHjxY9U+jRo0ePHi16ptCjR48ePVr0TKFHjx49erTomUKPHj169GjRM4UePXr06NGiZwo9evTo0aNFzxR69OjRo0eLnin06NGjR48WPVPo0aNHjx4teqbQo0ePHj1a9EyhR48ePXq06JlCjx49evRo0TOFHj169OjRomcKPXr06NGjRc8UevTo0aNHi54p9OjRo0ePFj1T6NGjR48eLXqm0KNHjx49WvRMoUePHj16tOiZQo8ePXr0aNEzhR49evTo0aJnCj169OjRo0XPFHr06NGjR4ueKfTo0aNHjxY9U+jRo0ePHi16ptCjR48ePVr0TKFHjx49erTomUKPHj169GjRM4UePXr06NGiZwo9evTo0aNFzxR69OjRo0eLnin06NGjR48WPVPo0aNHjx4teqbQo0ePHj1a9EyhR48ePXq06JlCjx49evRo0TOFHj169OjRomcKPXr06NGjRc8UevTo0aNHi54p9OjRo0ePFj1T6NGjR48eLXqm0KNHjx49WvRMoUePHj16tOiZQo8ePXr0aNEzhR49evTo0aJnCj169OjRo0XPFHr06NGjR4ueKfTo0aNHjxY9U+jRo0ePHi16ptCjR48ePVr0TKFHjx49erTo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lwwGA97//vezuLjILbfcQhiGfOITn+C3f/u3+df/+l/zvd/7vZUwFkIgpeQrX/kKH/jAB1hYWGB6eprPf/7z/NEf/RE/+7M/yyte8YoqzLSyssL73/9+vvCFL3DzzTczPT3NV7/6Vf7wD/+Q173udfzYj/0Y7XYb5xzD4ZAPf/jDKKX4zGc+Q6PR4PDhwywvL/NzP/dz3HnnnfzwD/9wdS55nvOhD32IP/iDP+DgwYPs3buXCxcu8F//639l//79/NRP/RT79++vq6ReSHA1XrCw1jpjjEuSxH3kIx9xb3vb29xHP/pRt7Gx4dI0dXmeu16v5z760Y+6t7zlLe6zn/2sy7LMPfzww+7Vr361u/POO92f//mfu16v59I0daPRyP3BH/yB+57v+R538uRJl+e5S9PU3Xvvve7tb3+7+/Vf/3W3uLjo0jR1WZa59fV196EPfci96U1vcrfffru77777nLXW/fqv/7q79dZb3fve9z7X7/fdaDRyeZ67kydPune9613u//l//h939uxZlySJy7LM9Xo996lPfcq97W1vcy996Uvdpz/9aWeMcXmeuz//8z93b33rW91f/dVfubW1NZdlmUvT1G1sbLiPfexj7i1veYv727/9W5emqUvT1J07d8694Q1vcP/wD/9QvTdN0+q9H/vYx9za2lp1vWfOnHG/8Au/4H7kR37EXbhwwWVZ5k6ePOnuuOMOd+edd7oTJ064JElcmqbOGFPd9/Le93o99/3f//3uNa95jfvv//2/u4sXL7osy5wxxq2vr7v/+3//r3vb297mPvjBD1b37VOf+pR7+ctf7t71rne5z372s67f77skSdzi4qL7pV/6Jfeud73Lra2tOWOMGw6H7ud//ufdu9/9bnf//fe70Wjk0jR1g8HAffGLX3TveMc73P/4H//DjUYjl2WZu3Dhgnv961/v7rjjDvdbv/VbbnV11SVJ4obDofv7v/9794Y3vMHdd999LsuyTevmU5/6lOv1ei5Jkuq+/Mf/+B/de9/7Xre6uvocr/Qa30zUOYUXMFxhSS4vL/Pbv/3b/OiP/iivf/3raTQaKKWQUtJoNHjzm9/Mr/7qr3LrrbdW1nSe59x+++18z/d8T/X+MAx54xvfiNaaRx55BOccWZbx+7//+1xzzTX8yI/8CFNTU9WxW60Wb3/723nb295WNWOBt4Tn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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import matplotlib.image as mpimg\n", + "\n", + "# Load the image file\n", + "img = mpimg.imread(\"test_image.jpg\")\n", + "\n", + "# Display the image in the notebook\n", + "plt.imshow(img)\n", + "plt.axis('off')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "char vec0 :[222, 234, 236, 222, 234, 236, 222, 234, 236]\n", - "char vec672 :[222, 234, 236, 222, 234, 236, 223, 235, 237]\n", - "char vec1344 :[223, 235, 237, 223, 235, 237, 223, 235, 237]\n", + "char vec0 :[255, 255, 255, 255, 255, 255, 255, 255, 255]\n", + "char vec672 :[255, 255, 255, 255, 255, 255, 255, 255, 255]\n", + "char vec1344 :[255, 255, 255, 255, 255, 255, 255, 255, 255]\n", "\n", "Image from python side:\n", - "[[222, 234, 236], [222, 234, 236], [222, 234, 236]]\n", - "[[222, 234, 236], [222, 234, 236], [223, 235, 237]]\n", - "[[223, 235, 237], [223, 235, 237], [223, 235, 237]]\n", + "[[255, 255, 255], [255, 255, 255], [255, 255, 255]]\n", + "[[255, 255, 255], [255, 255, 255], [255, 255, 255]]\n", + "[[255, 255, 255], [255, 255, 255], [255, 255, 255]]\n", "\n", "\n", "resized 224:\n", - "[[222, 234, 236], [222, 234, 236], [222, 234, 236]]\n", - "[[222, 234, 236], [222, 234, 236], [223, 235, 237]]\n", - "[[223, 235, 237], [223, 235, 237], [223, 235, 237]]\n", + "[[255, 255, 255], [255, 255, 255], [255, 255, 255]]\n", + "[[255, 255, 255], [255, 255, 255], [255, 255, 255]]\n", + "[[255, 255, 255], [255, 255, 255], [255, 255, 255]]\n", "\n", "\n", "RGB:\n", - "[[236, 234, 222], [236, 234, 222], [236, 234, 222]]\n", - "[[236, 234, 222], [236, 234, 222], [237, 235, 223]]\n", - "[[237, 235, 223], [237, 235, 223], [237, 235, 223]]\n", + "[[255, 255, 255], [255, 255, 255], [255, 255, 255]]\n", + "[[255, 255, 255], [255, 255, 255], [255, 255, 255]]\n", + "[[255, 255, 255], [255, 255, 255], [255, 255, 255]]\n", "\n", - "0 :[236.0000, 234.0000, 222.0000, 236.0000, 234.0000, 222.0000, 236.0000, 234.0000, 222.0000, 237.0000]\n", - "2023-05-01 14:35:53 [DEBUG] Inner inference took 6 (test? 0)\n", - "output_tensor0 :[1.4992, 0.2995, -0.0762, 1.0952, 0.0231, 0.2423, 0.0349, 2.2856, 0.2712, 1.1774]\n", - "output_tensor_end0 :[0.5141, -0.0602, 0.4611, -0.0038]\n", - "2023-05-01 14:35:53 [DEBUG] Quad array 0x26b6570 0 start_offset 0 \n", - "features0 :[1.4992, 0.2995, -0.0762, 1.0952]\n", - "2023-05-01 14:35:53 [DEBUG] Finished inference fine 0 (test 0)!!\n", - "2023-05-01 14:35:53 [DEBUG] Going to init quad array of size 1\n", - "2023-05-01 14:35:53 [DEBUG] Going to run 1 batches with reminder 0\n", - "2023-05-01 14:35:53 [DEBUG] Going to run single thread normalization of 1 from offet 0\n", - "2023-05-01 14:35:54 [DEBUG] Finished single thread normalization\n", - "after normalization10 :[0.0862, 0.0172, -0.0044, 0.0630]\n", - "2023-05-01 14:35:54 [DEBUG] KNN results\n", - "100256 : 0.80803 28330 : 0.80783 2760 : 0.80775 8846 : 0.80746 8706 : 0.80650 15126 : 0.80261 100585 : 0.80106 35497 : 0.80053 28877 : 0.79877 42522 : 0.79858 \n", - " 0 : 0.00000 49 : 0.00000 3544386977768894310 : 0.00000 3419188036794935599 : 0.00000 7597677460589670497 : 0.00000 4121695478430642021 : 0.00000 28992366868835897 : 0.00000 2193 : 0.00000 1 : 0.00000 7597440 : 0.00000 \n", - " 2135 : 0.00000 -1 : 0.00000 228 : 0.00402 0 : 0.00000 2314885530818453514 : 0.02315 7310597220861952800 : 0.00000 7381153972736060704 : 0.21234 3203027409673807648 : 0.00000 7594323980039251232 : 0.03072 7598543892943759214 : 0.00000 \n", - "7310868735955330926 : 0.00000 2314885530447916659 : 0.00000 7021781765788278816 : 0.00000 2308784694146393453 : 0.00000 3251634253311516704 : 0.00000 3255307777713450285 : 0.00000 2314885530818447917 : 0.00000 7598247042123440160 : 0.00000 4188481160070782819 : 0.00000 7214815447285195296 : 0.00000 \n", - "5053166791084303973 : 0.00000 2314885437492259937 : 0.00000 2314885530818453536 : 0.00000 7306093603886876960 : 0.00000 7810966309603012384 : 0.00000 8389758742743507311 : 0.00000 7018134820192657452 : 0.00000 7957145225219219566 : 0.00000 2314885530447916659 : 0.00000 2314885530818453536 : 0.00000 \n", - "7598542776403242542 : 0.00000 7306930285074148975 : 0.00000 3328210917450725988 : 0.00000 2314885530817006128 : 0.00000 2314885530818453536 : 0.00000 8243115044097761312 : 0.00000 2340020702966408041 : 0.00000 7306930345266409326 : 0.00000 8390317583334711410 : 0.00000 7308901627683938419 : 0.00000 \n", - "7214877028286226528 : 0.00000 2338340640710026853 : 0.00000 7809600608580693876 : 0.00000 2308668953282504051 : 0.00000 7286859519435481120 : 0.00000 2322204177879099246 : 0.00000 7378413653863855219 : 0.00000 7957664967886140769 : 0.00000 2314885530818447973 : 0.00000 2317700280585560096 : 0.00000 \n", - "8027794400491298912 : 0.00000 5917793821095110510 : 0.00000 2334386829831401077 : 0.00000 8028075772644520047 : 0.00000 7454987295351119982 : 0.00000 7310600471075561576 : 0.00000 7359008709276169070 : 0.00000 7526774343895707506 : 0.00000 2314885530450292335 : 0.00000 2314885530818453536 : 0.00000 \n", - "7887331437808984106 : 0.00000 2322204156165054818 : 0.00000 7307218078133024082 : 0.00000 7598805615236902688 : 0.00000 8462108017802899055 : 0.00000 7142801682762590311 : 0.00000 2334102023184608623 : 0.00000 8030593374881083235 : 0.00000 3342060620746727533 : 0.00000 2314885530818453514 : 0.00000 \n", - "6926582544362119200 : 0.00000 2332970595738668640 : 0.00000 7815259820784885818 : 0.00000 6944586288467047284 : 0.00000 2841330909338755879 : 0.00000 7811247754560168032 : 0.00000 8295764020198204015 : 0.00000 2308771482894103653 : 0.00000 2314885530818453536 : 0.00000 7160829098613284896 : 0.00000 \n", - "2023-05-01 14:35:54 [DEBUG] Replacing lower threshold 0.000000 with position 9 top_k.size() 10 loc pos: 0.798576 last pos: 0.798576 1.000000 10.000000\n", - "2023-05-01 14:35:54 [INFO] Total time took 64 ms\n", - "2023-05-01 14:35:54 [INFO] Found a total of 0 fully identical images (d>0.990), which are 0.00 %\n", - "2023-05-01 14:35:54 [INFO] Found a total of 0 nearly identical images(d>0.980), which are 0.00 %\n", - "2023-05-01 14:35:54 [INFO] Found a total of 10 above threshold images (d>0.000), which are 0.00 %\n", - "2023-05-01 14:35:54 [INFO] Found a total of 1 outlier images (d<0.000), which are 0.00 %\n", - "2023-05-01 14:35:54 [INFO] Min distance found 0.799 max distance 0.808\n", - "2023-05-01 14:35:54 [INFO] \n", + "0 :[255.0000, 255.0000, 255.0000, 255.0000, 255.0000, 255.0000, 255.0000, 255.0000, 255.0000, 255.0000]\n", + "2023-05-01 15:49:57 [DEBUG] Inner inference took 6 (test? 0)\n", + "output_tensor0 :[-0.0099, 0.1831, 0.3639, 0.6406, -0.1470, 0.8192, 0.7050, 0.9975, 0.2361, 0.8125]\n", + "output_tensor_end0 :[0.6264, -0.1192, 0.0089, 0.2610]\n", + "2023-05-01 15:49:57 [DEBUG] Quad array 0x2866b80 0 start_offset 0 \n", + "features0 :[-0.0099, 0.1831, 0.3639, 0.6406]\n", + "2023-05-01 15:49:57 [DEBUG] Finished inference fine 0 (test 0)!!\n", + "2023-05-01 15:49:57 [DEBUG] Going to init quad array of size 1\n", + "2023-05-01 15:49:57 [DEBUG] Going to run 1 batches with reminder 0\n", + "2023-05-01 15:49:57 [DEBUG] Going to run single thread normalization of 1 from offet 0\n", + "2023-05-01 15:49:57 [DEBUG] Finished single thread normalization\n", + "after normalization10 :[-0.0004, 0.0075, 0.0150, 0.0263]\n", + "2023-05-01 15:49:57 [DEBUG] KNN results\n", + " 0 : 1.00000 22407 : 0.84238 2986 : 0.84155 10340 : 0.83689 9658 : 0.83037 9099 : 0.82997 24606 : 0.82853 1023 : 0.82821 12168 : 0.82562 1324 : 0.82205 \n", + " 0 : 0.00000 689 : 0.00000 1 : 0.00000 7597440 : 0.00000 619 : 0.00000 -1 : 0.00000 140069834421476 : 0.00000 0 : 0.00000 7017220996610007105 : 0.00000 7161415494797649267 : 0.00000 \n", + "2334675642004758892 : 0.00000 8386654075050290761 : 0.00000 7812730952331130473 : 0.00000 2338328528342878766 : 0.00000 2338328219396370275 : 0.00000 8031079719948608877 : 0.00000 7526676497342489888 : 0.00000 8386654023510532197 : 0.00000 7381153942889656943 : 0.00000 8314034278382466080 : 0.00000 \n", + "7021786319764922469 : 0.00000 7307182090652054627 : 0.00000 751947680353119340 : 0.00000 7956005065853857651 : 0.00000 6998708670128660583 : 0.00000 8243116057564046112 : 0.00000 7310583992195113248 : 0.00000 8027139005918573667 : 0.00000 7165071358289911922 : 0.00000 3199090057209410405 : 0.00000 \n", + "8391735975095138080 : 0.00000 7812726610672705824 : 0.00000 7596272284829092473 : 0.00000 8243122709993645934 : 0.00000 7517463762261271393 : 0.00000 7310314615016811621 : 0.00000 2337178129072547436 : 0.00000 8026576055960036727 : 0.00000 7308620310547754601 : 0.00000 2333181710560749684 : 0.00000 \n", + "8749481928827365730 : 0.00000 749130692896956460 : 0.00000 7810194435372770679 : 0.00000 2334111870320079713 : 0.00000 7306080435768227439 : 0.00000 7311348204281820960 : 0.00000 8031079719948613408 : 0.00000 5701592512211805728 : 0.00000 8316293034885342062 : 0.00000 7742373266839529760 : 0.00000 \n", + "7812731015900130921 : 0.00000 7953747313216135212 : 0.00000 7738135658831505184 : 0.00000 2334386829831140384 : 0.00000 7020094909955924322 : 0.00000 8223683344817222515 : 0.00000 2338053702232925797 : 0.00000 7306086967037749364 : 0.00000 7142815800996357664 : 0.00000 7575180353206314348 : 0.00000 \n", + "7953766413152643182 : 0.00000 7308339910531507555 : 0.00000 8028075772678661485 : 0.00000 7214894564760625262 : 0.00000 8223700632284128623 : 0.00000 8295751937181707365 : 0.00000 7863399725770023023 : 0.00000 8386107647835467375 : 0.00000 723441711915296867 : 0.00000 8316293034886329666 : 0.00000 \n", + "8319591566882991136 : 0.00000 7593478464286584096 : 0.00000 7812748535071318126 : 0.00000 7956008355967213689 : 0.00000 8027794400174743655 : 0.00000 2334402963119874158 : 0.00000 2337490717954696548 : 0.00000 754182986272172148 : 0.00000 8243116091973525869 : 0.00000 8316292897441853049 : 0.00000 \n", + "2334109758520849184 : 0.00000 2334379873377020020 : 0.00000 2338608900073285748 : 0.00000 7166107111999432303 : 0.00000 7956000633614919265 : 0.00000 667239 : 0.00000 848 : 0.00000 897 : 0.00000 0 : 0.00000 0 : 0.00000 \n", + "2023-05-01 15:49:57 [DEBUG] Replacing lower threshold 0.000000 with position 9 top_k.size() 10 loc pos: 0.822049 last pos: 0.822049 1.000000 10.000000\n", + "2023-05-01 15:49:57 [INFO] Total time took 49 ms\n", + "2023-05-01 15:49:57 [INFO] Found a total of 1 fully identical images (d>0.990), which are 0.00 %\n", + "2023-05-01 15:49:57 [INFO] Found a total of 0 nearly identical images(d>0.980), which are 0.00 %\n", + "2023-05-01 15:49:57 [INFO] Found a total of 10 above threshold images (d>0.000), which are 0.00 %\n", + "2023-05-01 15:49:57 [INFO] Found a total of 1 outlier images (d<0.000), which are 0.00 %\n", + "2023-05-01 15:49:57 [INFO] Min distance found 0.822 max distance 1.000\n", + "2023-05-01 15:49:57 [INFO] \n", "\n", "Example similar files\n", "from,to,distance\n", - "my_apple_pie2.jpg,food-101/images/waffles/1852612.jpg,0.808035\n", - "my_apple_pie2.jpg,food-101/images/croque_madame/2168715.jpg,0.807826\n", - "my_apple_pie2.jpg,food-101/images/baklava/3671071.jpg,0.807754\n", - "my_apple_pie2.jpg,food-101/images/bread_pudding/449076.jpg,0.807464\n" + "test_image.jpg,shopee-product-matching/test_images/0006c8e5462ae52167402bac1c2e916e.jpg,1.000000\n", + "test_image.jpg,shopee-product-matching/train_images/b1b0ef712ae90ecc8d1ec7bc5d11485a.jpg,0.842375\n", + "test_image.jpg,shopee-product-matching/train_images/182ef6021d6b2118fb9915156cff50e6.jpg,0.841552\n", + "test_image.jpg,shopee-product-matching/train_images/5235cbbdfd70272503647694730424c4.jpg,0.836889\n" ] } ], "source": [ - "df = fastdup.search(\"my_apple_pie2.jpg\", None, verbose=True)" + "df = fastdup.search(\"test_image.jpg\", None, verbose=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Visualize Results\n", + "\n", + "This step is optional. fastdup provides a convenient way to visualize your search results for duplicate and similar looking images." ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [00:00<00:00, 136.04it/s]\n" + "100%|████████████████████████| 10/10 [00:00<00:00, 74.16it/s]\n" ] }, { @@ -178,18 +279,18 @@ "0" ] }, - "execution_count": 5, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "fastdup.create_duplicates_gallery(df, \".\",input_dir=input_dir)" + "fastdup.create_duplicates_gallery(df, \".\", input_dir=input_dir)" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -704,7 +805,7 @@ "
\n", "
\n", "
\n", - " \n", + " \n", "
\n", "
\n", "
\n", @@ -715,15 +816,15 @@ " \n", "\n", " Distance\n", - " 0.808035\n", + " 1.0\n", "\n", "\n", " From\n", - " my_apple_pie2.jpg\n", + " test_image.jpg\n", "\n", "\n", " To\n", - " food-101/images/waffles/1852612.jpg\n", + " shopee-product-matching/test_images/0006c8e5462ae52167402bac1c2e916e.jpg\n", "\n", " \n", " \n", @@ -732,7 +833,7 @@ "
\n", "
\n", "
\n", - " \n", + " \n", "
\n", "
\n", "
\n", @@ -743,15 +844,15 @@ " \n", "\n", " Distance\n", - " 0.807826\n", + " 0.842375\n", "\n", "\n", " From\n", - " my_apple_pie2.jpg\n", + " test_image.jpg\n", "\n", "\n", " To\n", - " food-101/images/croque_madame/2168715.jpg\n", + " shopee-product-matching/train_images/b1b0ef712ae90ecc8d1ec7bc5d11485a.jpg\n", "\n", " \n", " \n", @@ -760,7 +861,7 @@ "
\n", "
\n", "
\n", - " \n", + " \n", "
\n", "
\n", "
\n", @@ -771,15 +872,15 @@ " \n", "\n", " Distance\n", - " 0.807754\n", + " 0.841552\n", "\n", "\n", " From\n", - " my_apple_pie2.jpg\n", + " test_image.jpg\n", "\n", "\n", " To\n", - " food-101/images/baklava/3671071.jpg\n", + " shopee-product-matching/train_images/182ef6021d6b2118fb9915156cff50e6.jpg\n", "\n", " \n", " \n", @@ -788,7 +889,7 @@ "
\n", "
\n", "
\n", - " \n", + " \n", "
\n", "
\n", "
\n", @@ -799,15 +900,15 @@ " \n", "\n", " Distance\n", - " 0.807464\n", + " 0.836889\n", "\n", "\n", " From\n", - " my_apple_pie2.jpg\n", + " test_image.jpg\n", "\n", "\n", " To\n", - " food-101/images/bread_pudding/449076.jpg\n", + " shopee-product-matching/train_images/5235cbbdfd70272503647694730424c4.jpg\n", "\n", " \n", " \n", @@ -816,7 +917,7 @@ "
\n", "
\n", "
\n", - " \n", + " \n", "
\n", "
\n", "
\n", @@ -827,15 +928,15 @@ " \n", "\n", " Distance\n", - " 0.8065\n", + " 0.830368\n", "\n", "\n", " From\n", - " my_apple_pie2.jpg\n", + " test_image.jpg\n", "\n", "\n", " To\n", - " food-101/images/bread_pudding/3463547.jpg\n", + " shopee-product-matching/train_images/4cd0ef616259eac109212b2f2e5f7136.jpg\n", "\n", " \n", " \n", @@ -844,7 +945,7 @@ "
\n", "
\n", "
\n", - " \n", + " \n", "
\n", "
\n", "
\n", @@ -855,15 +956,15 @@ " \n", "\n", " Distance\n", - " 0.802614\n", + " 0.829968\n", "\n", "\n", " From\n", - " my_apple_pie2.jpg\n", + " test_image.jpg\n", "\n", "\n", " To\n", - " food-101/images/ceviche/149829.jpg\n", + " shopee-product-matching/train_images/4851da5e4b570ab7147566c85b3fabc2.jpg\n", "\n", " \n", " \n", @@ -872,7 +973,7 @@ "
\n", "
\n", "
\n", - " \n", + " \n", "
\n", "
\n", "
\n", @@ -883,15 +984,15 @@ " \n", "\n", " Distance\n", - " 0.801059\n", + " 0.828526\n", "\n", "\n", " From\n", - " my_apple_pie2.jpg\n", + " test_image.jpg\n", "\n", "\n", " To\n", - " food-101/images/waffles/3074426.jpg\n", + " shopee-product-matching/train_images/c29d3d0821e9e3b0188c005fd95bf424.jpg\n", "\n", " \n", " \n", @@ -900,7 +1001,7 @@ "
\n", "
\n", "
\n", - " \n", + " \n", "
\n", "
\n", "
\n", @@ -911,15 +1012,15 @@ " \n", "\n", " Distance\n", - " 0.800533\n", + " 0.82821\n", "\n", "\n", " From\n", - " my_apple_pie2.jpg\n", + " test_image.jpg\n", "\n", "\n", " To\n", - " food-101/images/escargots/2740742.jpg\n", + " shopee-product-matching/train_images/086b2dcda1059ba3fd0365a42277b743.jpg\n", "\n", " \n", " \n", @@ -928,7 +1029,7 @@ "
\n", "
\n", "
\n", - " \n", + " \n", "
\n", "
\n", "
\n", @@ -939,15 +1040,15 @@ " \n", "\n", " Distance\n", - " 0.798768\n", + " 0.825624\n", "\n", "\n", " From\n", - " my_apple_pie2.jpg\n", + " test_image.jpg\n", "\n", "\n", " To\n", - " food-101/images/croque_madame/596068.jpg\n", + " shopee-product-matching/train_images/60abf69848da6bc126f31c880a6372ca.jpg\n", "\n", " \n", " \n", @@ -956,7 +1057,7 @@ "
\n", "
\n", "
\n", - " \n", + " \n", "
\n", "
\n", "
\n", @@ -967,15 +1068,15 @@ " \n", "\n", " Distance\n", - " 0.798576\n", + " 0.822049\n", "\n", "\n", " From\n", - " my_apple_pie2.jpg\n", + " test_image.jpg\n", "\n", "\n", " To\n", - " food-101/images/french_toast/2789383.jpg\n", + " shopee-product-matching/train_images/0ae01a272a94a019759bc2a3b4813ee2.jpg\n", "\n", " \n", " \n", @@ -994,7 +1095,7 @@ "" ] }, - "execution_count": 7, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -1006,7 +1107,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -1020,7 +1121,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.37it/s]" + "100%|██████████████████████████| 1/1 [00:00<00:00, 4.95it/s]" ] }, { @@ -1066,26 +1167,26 @@ " \n", " \n", " 0\n", - " my_apple_pie2.jpg\n", - " [food-101/images/french_toast/2789383.jpg, food-101/images/croque_madame/596068.jpg, food-101/images/escargots/2740742.jpg, food-101/images/waffles/3074426.jpg, food-101/images/ceviche/149829.jpg, food-101/images/bread_pudding/3463547.jpg, food-101/images/bread_pudding/449076.jpg, food-101/images/baklava/3671071.jpg, food-101/images/croque_madame/2168715.jpg, food-101/images/waffles/1852612.jpg]\n", - " [0.798576, 0.798768, 0.800533, 0.801059, 0.802614, 0.8065, 0.807464, 0.807754, 0.807826, 0.808035]\n", + " test_image.jpg\n", + " [shopee-product-matching/train_images/0ae01a272a94a019759bc2a3b4813ee2.jpg, shopee-product-matching/train_images/60abf69848da6bc126f31c880a6372ca.jpg, shopee-product-matching/train_images/086b2dcda1059ba3fd0365a42277b743.jpg, shopee-product-matching/train_images/c29d3d0821e9e3b0188c005fd95bf424.jpg, shopee-product-matching/train_images/4851da5e4b570ab7147566c85b3fabc2.jpg, shopee-product-matching/train_images/4cd0ef616259eac109212b2f2e5f7136.jpg, shopee-product-matching/train_images/5235cbbdfd70272503647694730424c4.jpg, shopee-product-matching/train_images/182ef6021d6b2118fb9915156cff50e6.jpg, shopee-product-matching/train_images/b1b0ef712ae90ecc8d1ec7bc5d11485a.jpg, shopee-product-matching/test_images/0006c8e5462ae52167402bac1c2e916e.jpg]\n", + " [0.822049, 0.825624, 0.82821, 0.828526, 0.829968, 0.830368, 0.836889, 0.841552, 0.842375, 1.0]\n", " \n", " \n", "\n", "
" ], "text/plain": [ - " from \n", - "0 my_apple_pie2.jpg \\\n", + " from \n", + "0 test_image.jpg \\\n", "\n", - " to \n", - "0 [food-101/images/french_toast/2789383.jpg, food-101/images/croque_madame/596068.jpg, food-101/images/escargots/2740742.jpg, food-101/images/waffles/3074426.jpg, food-101/images/ceviche/149829.jpg, food-101/images/bread_pudding/3463547.jpg, food-101/images/bread_pudding/449076.jpg, food-101/images/baklava/3671071.jpg, food-101/images/croque_madame/2168715.jpg, food-101/images/waffles/1852612.jpg] \\\n", + " to \n", + "0 [shopee-product-matching/train_images/0ae01a272a94a019759bc2a3b4813ee2.jpg, shopee-product-matching/train_images/60abf69848da6bc126f31c880a6372ca.jpg, shopee-product-matching/train_images/086b2dcda1059ba3fd0365a42277b743.jpg, shopee-product-matching/train_images/c29d3d0821e9e3b0188c005fd95bf424.jpg, shopee-product-matching/train_images/4851da5e4b570ab7147566c85b3fabc2.jpg, shopee-product-matching/train_images/4cd0ef616259eac109212b2f2e5f7136.jpg, shopee-product-matching/train_images/5235cbbdfd70272503647694730424c4.jpg, shopee-product-matching/train_images/182ef6021d6b2118fb9915156cff50e6.jpg, shopee-product-matching/train_images/b1b0ef712ae90ecc8d1ec7bc5d11485a.jpg, shopee-product-matching/test_images/0006c8e5462ae52167402bac1c2e916e.jpg] \\\n", "\n", - " distance \n", - "0 [0.798576, 0.798768, 0.800533, 0.801059, 0.802614, 0.8065, 0.807464, 0.807754, 0.807826, 0.808035] " + " distance \n", + "0 [0.822049, 0.825624, 0.82821, 0.828526, 0.829968, 0.830368, 0.836889, 0.841552, 0.842375, 1.0] " ] }, - "execution_count": 6, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -1096,7 +1197,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -1621,7 +1722,7 @@ " \n", "\n", " from\n", - " my_apple_pie2.jpg\n", + " test_image.jpg\n", "\n", " \n", " \n", @@ -1635,44 +1736,44 @@ " Info To\n", " \n", "\n", - " 0.808035\n", - " food-101/images/waffles/1852612.jpg\n", + " 1.0\n", + " shopee-product-matching/test_images/0006c8e5462ae52167402bac1c2e916e.jpg\n", "\n", "\n", - " 0.807826\n", - " food-101/images/croque_madame/2168715.jpg\n", + " 0.842375\n", + " shopee-product-matching/train_images/b1b0ef712ae90ecc8d1ec7bc5d11485a.jpg\n", "\n", "\n", - " 0.807754\n", - " food-101/images/baklava/3671071.jpg\n", + " 0.841552\n", + " shopee-product-matching/train_images/182ef6021d6b2118fb9915156cff50e6.jpg\n", "\n", "\n", - " 0.807464\n", - " food-101/images/bread_pudding/449076.jpg\n", + " 0.836889\n", + " shopee-product-matching/train_images/5235cbbdfd70272503647694730424c4.jpg\n", "\n", "\n", - " 0.8065\n", - " food-101/images/bread_pudding/3463547.jpg\n", + " 0.830368\n", + " shopee-product-matching/train_images/4cd0ef616259eac109212b2f2e5f7136.jpg\n", "\n", "\n", - " 0.802614\n", - " food-101/images/ceviche/149829.jpg\n", + " 0.829968\n", + " shopee-product-matching/train_images/4851da5e4b570ab7147566c85b3fabc2.jpg\n", "\n", "\n", - " 0.801059\n", - " food-101/images/waffles/3074426.jpg\n", + " 0.828526\n", + " shopee-product-matching/train_images/c29d3d0821e9e3b0188c005fd95bf424.jpg\n", "\n", "\n", - " 0.800533\n", - " food-101/images/escargots/2740742.jpg\n", + " 0.82821\n", + " shopee-product-matching/train_images/086b2dcda1059ba3fd0365a42277b743.jpg\n", "\n", "\n", - " 0.798768\n", - " food-101/images/croque_madame/596068.jpg\n", + " 0.825624\n", + " shopee-product-matching/train_images/60abf69848da6bc126f31c880a6372ca.jpg\n", "\n", "\n", - " 0.798576\n", - " food-101/images/french_toast/2789383.jpg\n", + " 0.822049\n", + " shopee-product-matching/train_images/0ae01a272a94a019759bc2a3b4813ee2.jpg\n", "\n", " \n", " \n", @@ -1686,7 +1787,7 @@ "\t\t\t\t\t\t\t\t\t\tQuery Image\n", "\t\t\t\t\t\t\t\t\t\n", "\t\t\t\t\t\t\t\t\t\n", - "\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\n", "\t\t\t\t\t\t\t\t\t\n", "\t\t\t\t\t\t\t\t\n", "\t\t\t\t\t\t\t\n", @@ -1700,7 +1801,7 @@ "\t\t\t\t\t\t\t\t\t\tSimilar\n", "\t\t\t\t\t\t\t\t\t\n", "\t\t\t\t\t\t\t\t\t\n", - "\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\n", "\t\t\t\t\t\t\t\t\t\n", "\t\t\t\t\t\t\t\t\n", "\t\t\t\t\t\t\t\n", @@ -1719,7 +1820,7 @@ "" ] }, - "execution_count": 8, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } From 2fda7cea1e814f9e756dd86b06ff5c521befb7ae Mon Sep 17 00:00:00 2001 From: dnth Date: Mon, 1 May 2023 16:16:43 +0800 Subject: [PATCH 4/7] update notebook run --- examples/image-search.ipynb | 107 +++++++++++++++++++++++------------- 1 file changed, 70 insertions(+), 37 deletions(-) diff --git a/examples/image-search.ipynb b/examples/image-search.ipynb index 6bfcff98..5dc1293a 100644 --- a/examples/image-search.ipynb +++ b/examples/image-search.ipynb @@ -75,7 +75,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -87,7 +87,40 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FastDup Software, (C) copyright 2022 Dr. Amir Alush and Dr. Danny Bickson.\n", + "2023-05-01 15:54:48 [INFO] Going to loop over dir shopee-product-matching\n", + "2023-05-01 15:54:48 [INFO] Found total 32415 images to run on, 32415 train, 0 test, name list 32415, counter 32415 \n", + "2023-05-01 15:56:06 [INFO] Found total 32415 images to run onimated: 0 Minutes\n", + "Finished histogram 11.111\n", + "Finished bucket sort 11.173\n", + "2023-05-01 15:56:10 [INFO] 3909) Finished write_index() NN model\n", + "2023-05-01 15:56:10 [INFO] Stored nn model index file my-fastdup-workdir/nnf.index\n", + "2023-05-01 15:56:12 [INFO] Total time took 83589 ms\n", + "2023-05-01 15:56:12 [INFO] Found a total of 8020 fully identical images (d>0.990), which are 12.37 %\n", + "2023-05-01 15:56:12 [INFO] Found a total of 3283 nearly identical images(d>0.980), which are 5.06 %\n", + "2023-05-01 15:56:12 [INFO] Found a total of 24447 above threshold images (d>0.900), which are 37.71 %\n", + "2023-05-01 15:56:12 [INFO] Found a total of 3241 outlier images (d<0.050), which are 5.00 %\n", + "2023-05-01 15:56:12 [INFO] Min distance found 0.515 max distance 1.000\n", + "2023-05-01 15:56:12 [INFO] Running connected components for ccthreshold 0.960000 \n", + ".0" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "fastdup.run(input_dir, work_dir)" ] @@ -105,16 +138,16 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "2023-05-01 15:49:24 [INFO] 49) Finished load_index() NN model, num_images 32415\n", - "2023-05-01 15:49:24 [INFO] Read nnf index file from ./my-fastdup-workdir/nnf.index 1\n", - "2023-05-01 15:49:24 [INFO] Read NNF index with 32415 images\n" + "2023-05-01 16:15:19 [INFO] 50) Finished load_index() NN model, num_images 32415\n", + "2023-05-01 16:15:19 [INFO] Read nnf index file from ./my-fastdup-workdir/nnf.index 1\n", + "2023-05-01 16:15:19 [INFO] Read NNF index with 32415 images\n" ] }, { @@ -123,7 +156,7 @@ "0" ] }, - "execution_count": 3, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -143,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -167,7 +200,7 @@ "# Display the image in the notebook\n", "plt.imshow(img)\n", "plt.axis('off')\n", - "plt.show()\n" + "plt.show()" ] }, { @@ -201,36 +234,36 @@ "[[255, 255, 255], [255, 255, 255], [255, 255, 255]]\n", "\n", "0 :[255.0000, 255.0000, 255.0000, 255.0000, 255.0000, 255.0000, 255.0000, 255.0000, 255.0000, 255.0000]\n", - "2023-05-01 15:49:57 [DEBUG] Inner inference took 6 (test? 0)\n", + "2023-05-01 16:15:21 [DEBUG] Inner inference took 6 (test? 0)\n", "output_tensor0 :[-0.0099, 0.1831, 0.3639, 0.6406, -0.1470, 0.8192, 0.7050, 0.9975, 0.2361, 0.8125]\n", "output_tensor_end0 :[0.6264, -0.1192, 0.0089, 0.2610]\n", - "2023-05-01 15:49:57 [DEBUG] Quad array 0x2866b80 0 start_offset 0 \n", + "2023-05-01 16:15:21 [DEBUG] Quad array 0x29e83a0 0 start_offset 0 \n", "features0 :[-0.0099, 0.1831, 0.3639, 0.6406]\n", - "2023-05-01 15:49:57 [DEBUG] Finished inference fine 0 (test 0)!!\n", - "2023-05-01 15:49:57 [DEBUG] Going to init quad array of size 1\n", - "2023-05-01 15:49:57 [DEBUG] Going to run 1 batches with reminder 0\n", - "2023-05-01 15:49:57 [DEBUG] Going to run single thread normalization of 1 from offet 0\n", - "2023-05-01 15:49:57 [DEBUG] Finished single thread normalization\n", + "2023-05-01 16:15:21 [DEBUG] Finished inference fine 0 (test 0)!!\n", + "2023-05-01 16:15:21 [DEBUG] Going to init quad array of size 1\n", + "2023-05-01 16:15:21 [DEBUG] Going to run 1 batches with reminder 0\n", + "2023-05-01 16:15:21 [DEBUG] Going to run single thread normalization of 1 from offet 0\n", + "2023-05-01 16:15:21 [DEBUG] Finished single thread normalization\n", "after normalization10 :[-0.0004, 0.0075, 0.0150, 0.0263]\n", - "2023-05-01 15:49:57 [DEBUG] KNN results\n", + "2023-05-01 16:15:21 [DEBUG] KNN results\n", " 0 : 1.00000 22407 : 0.84238 2986 : 0.84155 10340 : 0.83689 9658 : 0.83037 9099 : 0.82997 24606 : 0.82853 1023 : 0.82821 12168 : 0.82562 1324 : 0.82205 \n", - " 0 : 0.00000 689 : 0.00000 1 : 0.00000 7597440 : 0.00000 619 : 0.00000 -1 : 0.00000 140069834421476 : 0.00000 0 : 0.00000 7017220996610007105 : 0.00000 7161415494797649267 : 0.00000 \n", - "2334675642004758892 : 0.00000 8386654075050290761 : 0.00000 7812730952331130473 : 0.00000 2338328528342878766 : 0.00000 2338328219396370275 : 0.00000 8031079719948608877 : 0.00000 7526676497342489888 : 0.00000 8386654023510532197 : 0.00000 7381153942889656943 : 0.00000 8314034278382466080 : 0.00000 \n", - "7021786319764922469 : 0.00000 7307182090652054627 : 0.00000 751947680353119340 : 0.00000 7956005065853857651 : 0.00000 6998708670128660583 : 0.00000 8243116057564046112 : 0.00000 7310583992195113248 : 0.00000 8027139005918573667 : 0.00000 7165071358289911922 : 0.00000 3199090057209410405 : 0.00000 \n", - "8391735975095138080 : 0.00000 7812726610672705824 : 0.00000 7596272284829092473 : 0.00000 8243122709993645934 : 0.00000 7517463762261271393 : 0.00000 7310314615016811621 : 0.00000 2337178129072547436 : 0.00000 8026576055960036727 : 0.00000 7308620310547754601 : 0.00000 2333181710560749684 : 0.00000 \n", - "8749481928827365730 : 0.00000 749130692896956460 : 0.00000 7810194435372770679 : 0.00000 2334111870320079713 : 0.00000 7306080435768227439 : 0.00000 7311348204281820960 : 0.00000 8031079719948613408 : 0.00000 5701592512211805728 : 0.00000 8316293034885342062 : 0.00000 7742373266839529760 : 0.00000 \n", - "7812731015900130921 : 0.00000 7953747313216135212 : 0.00000 7738135658831505184 : 0.00000 2334386829831140384 : 0.00000 7020094909955924322 : 0.00000 8223683344817222515 : 0.00000 2338053702232925797 : 0.00000 7306086967037749364 : 0.00000 7142815800996357664 : 0.00000 7575180353206314348 : 0.00000 \n", - "7953766413152643182 : 0.00000 7308339910531507555 : 0.00000 8028075772678661485 : 0.00000 7214894564760625262 : 0.00000 8223700632284128623 : 0.00000 8295751937181707365 : 0.00000 7863399725770023023 : 0.00000 8386107647835467375 : 0.00000 723441711915296867 : 0.00000 8316293034886329666 : 0.00000 \n", - "8319591566882991136 : 0.00000 7593478464286584096 : 0.00000 7812748535071318126 : 0.00000 7956008355967213689 : 0.00000 8027794400174743655 : 0.00000 2334402963119874158 : 0.00000 2337490717954696548 : 0.00000 754182986272172148 : 0.00000 8243116091973525869 : 0.00000 8316292897441853049 : 0.00000 \n", - "2334109758520849184 : 0.00000 2334379873377020020 : 0.00000 2338608900073285748 : 0.00000 7166107111999432303 : 0.00000 7956000633614919265 : 0.00000 667239 : 0.00000 848 : 0.00000 897 : 0.00000 0 : 0.00000 0 : 0.00000 \n", - "2023-05-01 15:49:57 [DEBUG] Replacing lower threshold 0.000000 with position 9 top_k.size() 10 loc pos: 0.822049 last pos: 0.822049 1.000000 10.000000\n", - "2023-05-01 15:49:57 [INFO] Total time took 49 ms\n", - "2023-05-01 15:49:57 [INFO] Found a total of 1 fully identical images (d>0.990), which are 0.00 %\n", - "2023-05-01 15:49:57 [INFO] Found a total of 0 nearly identical images(d>0.980), which are 0.00 %\n", - "2023-05-01 15:49:57 [INFO] Found a total of 10 above threshold images (d>0.000), which are 0.00 %\n", - "2023-05-01 15:49:57 [INFO] Found a total of 1 outlier images (d<0.000), which are 0.00 %\n", - "2023-05-01 15:49:57 [INFO] Min distance found 0.822 max distance 1.000\n", - "2023-05-01 15:49:57 [INFO] \n", + " 0 : 0.00000 625 : 0.00000 139878753321168 : 0.00000 139878753321200 : 0.00000 139878753321232 : -0.00000 139878753321264 : 0.00000 139878753321296 : 0.00000 139878753321328 : 0.00000 139878753321360 : -0.00000 139878753321392 : 0.00000 \n", + "139878753321424 : -0.00000 139878753321456 : 0.00000 139878753321488 : 0.00000 139878753321520 : 0.00000 139878753321552 : 0.00000 139878753321584 : 0.00000 139878753321616 : 0.00000 139878753321648 : 0.00000 139878753321680 : 0.00000 139878753321712 : 0.00000 \n", + "139878753321744 : 38114222080.00000 139878753321776 : 46.30917 139878753321808 : -0.00000 139878753321840 : 0.00000 139878753321872 : -0.00000 139878753321904 : 0.00000 139878753321936 : 0.00000 139878753321968 : 0.00000 139878753322000 : 0.00000 139878753322032 : 46.30916 \n", + "139878753322064 : -0.00000 139878753322096 : 0.00000 139878753322128 : -0.00000 139878753322160 : 0.00000 139878753322192 : 0.00000 139878753322224 : 0.00000 139878753322256 : 0.00000 139878753322288 : 46.30916 139878753322320 : -0.00000 139878753322352 : 0.00000 \n", + "139878753322384 : -0.00000 139878753322416 : 0.00000 139878753322448 : 0.00000 139878753322480 : 0.00000 139878753322512 : 0.00000 139878753322544 : 46.30916 139878753322576 : -0.00000 139878753322608 : 0.00000 139878753322640 : -0.00000 139878753322672 : 0.00000 \n", + "139878753322704 : 0.00000 139878753322736 : 0.00000 139878753322768 : 0.00000 139878753322800 : 46.30916 139878753322832 : -0.00000 139878753322864 : 0.00000 139878753322896 : -0.00000 139878753322928 : 0.00000 139878753322960 : 0.00000 139878753322992 : 0.00000 \n", + "139878753323024 : 0.00000 139878753323056 : 46.30916 139878753323088 : -0.00000 139878753323120 : 0.00000 139878753323152 : -0.00000 139878753323184 : 0.00000 139878753323216 : 0.00000 139878753323248 : 0.00000 139878753323280 : 0.00001 139878753323312 : 46.30916 \n", + "139878753323344 : -0.00000 139878753323376 : 0.00000 139878753323408 : -0.00000 139878753323440 : 0.00000 139878753323472 : 0.00000 139878753323504 : 0.00000 139878753323536 : 0.00000 139878753323568 : 46.30916 1953720684 : -0.00000 961 : 0.00000 \n", + "139878703305968 : -0.00000 139877037680368 : 0.00000 9 : 0.00000 7607552 : 0.00000 0 : 0.00000 139876786639008 : 46.30916 32 : -0.00000 0 : 0.00000 5292512 : -0.00000 0 : 0.00000 \n", + "2023-05-01 16:15:21 [DEBUG] Replacing lower threshold 0.000000 with position 9 top_k.size() 10 loc pos: 0.822049 last pos: 0.822049 1.000000 10.000000\n", + "2023-05-01 16:15:21 [INFO] Total time took 67 ms\n", + "2023-05-01 16:15:21 [INFO] Found a total of 1 fully identical images (d>0.990), which are 0.00 %\n", + "2023-05-01 16:15:21 [INFO] Found a total of 0 nearly identical images(d>0.980), which are 0.00 %\n", + "2023-05-01 16:15:21 [INFO] Found a total of 10 above threshold images (d>0.000), which are 0.00 %\n", + "2023-05-01 16:15:21 [INFO] Found a total of 1 outlier images (d<0.000), which are 0.00 %\n", + "2023-05-01 16:15:21 [INFO] Min distance found 0.822 max distance 1.000\n", + "2023-05-01 16:15:21 [INFO] \n", "\n", "Example similar files\n", "from,to,distance\n", @@ -263,7 +296,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|████████████████████████| 10/10 [00:00<00:00, 74.16it/s]\n" + "100%|████████████████████████| 10/10 [00:00<00:00, 69.48it/s]\n" ] }, { @@ -1121,7 +1154,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████████████████████| 1/1 [00:00<00:00, 4.95it/s]" + "100%|██████████████████████████| 1/1 [00:00<00:00, 4.87it/s]" ] }, { @@ -1192,7 +1225,7 @@ } ], "source": [ - "fastdup.create_similarity_gallery(df, \".\",input_dir=input_dir, min_items=3)" + "fastdup.create_similarity_gallery(df, \".\", input_dir=input_dir, min_items=3)" ] }, { From da0af615babb650aefd368a24cd2c83a36333436 Mon Sep 17 00:00:00 2001 From: dnth Date: Mon, 1 May 2023 16:31:03 +0800 Subject: [PATCH 5/7] update readme --- README.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/README.md b/README.md index 512400ae..3c977ce4 100644 --- a/README.md +++ b/README.md @@ -470,6 +470,38 @@ Sign up for free to be a beta tester and get early access. Drop us an email at i + + + + + + + + + + + Image Search: In this tutorial, learn how to use fastdup to search through large image datasets for duplicates/similar images using a query image. Runs on CPU! + + + + + + + + + + + + + + + + + + + + + From 344de588596243fb7f60c4bfcbf628b48e1adfbf Mon Sep 17 00:00:00 2001 From: dnth Date: Tue, 2 May 2023 11:37:22 +0800 Subject: [PATCH 6/7] add thumb --- gallery/shopee.png | Bin 0 -> 51732 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 gallery/shopee.png diff --git a/gallery/shopee.png b/gallery/shopee.png new file mode 100644 index 0000000000000000000000000000000000000000..189c5ba36ad8e66a3c37a6c4015a8c9218a143ac GIT binary patch literal 51732 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 Date: Tue, 2 May 2023 11:38:46 +0800 Subject: [PATCH 7/7] update file name --- README.md | 2 +- gallery/{shopee.png => product-matching.png} | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename gallery/{shopee.png => product-matching.png} (100%) diff --git a/README.md b/README.md index 3c977ce4..11c904e6 100644 --- a/README.md +++ b/README.md @@ -476,7 +476,7 @@ Sign up for free to be a beta tester and get early access. Drop us an email at i - + diff --git a/gallery/shopee.png b/gallery/product-matching.png similarity index 100% rename from gallery/shopee.png rename to gallery/product-matching.png