diff --git a/package.json b/package.json index 77c91df99..9118a87b1 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,6 @@ "piexifjs": "^1.0.6", "react": "^18.2.0", "react-bootstrap": "^1.3.0", - "react-d3-tree": "^3.1.1", "react-datepicker": "^4.3.0", "react-dom": "^18.2.0", "react-dropzone": "^11.2.4", diff --git a/src/types/machineLearning/index.ts b/src/types/machineLearning/index.ts index 90f86bb54..badea48d9 100644 --- a/src/types/machineLearning/index.ts +++ b/src/types/machineLearning/index.ts @@ -9,7 +9,7 @@ import * as tf from '@tensorflow/tfjs-core'; import { DebugInfo } from 'hdbscan'; import PQueue from 'p-queue'; -import { Point as D3Point, RawNodeDatum } from 'react-d3-tree/lib/types/common'; +// import { Point as D3Point, RawNodeDatum } from 'react-d3-tree/lib/types/common'; import { EnteFile } from 'types/file'; import { Config } from 'types/common/config'; import { Dimensions } from 'types/image'; @@ -34,12 +34,12 @@ export interface DebugFace { faceImage: FaceImage; } -export interface MLDebugResult { - allFaces: DebugFace[]; - clustersWithNoise: FacesClustersWithNoise; - tree: RawNodeDatum; - tsne: TSNEData; -} +// export interface MLDebugResult { +// allFaces: DebugFace[]; +// clustersWithNoise: FacesClustersWithNoise; +// tree: RawNodeDatum; +// tsne: TSNEData; +// } export declare type FaceImage = Array>>; export declare type FaceImageBlob = Blob; @@ -81,11 +81,11 @@ export interface NearestCluster { distance: number; } -export interface TSNEData { - width: number; - height: number; - dataset: D3Point[]; -} +// export interface TSNEData { +// width: number; +// height: number; +// dataset: D3Point[]; +// } export declare type Landmark = Point; diff --git a/src/utils/machineLearning/clustering.ts b/src/utils/machineLearning/clustering.ts index f6c53459a..8a9b9252e 100644 --- a/src/utils/machineLearning/clustering.ts +++ b/src/utils/machineLearning/clustering.ts @@ -1,5 +1,8 @@ -import { euclidean, TreeNode } from 'hdbscan'; -import { RawNodeDatum } from 'react-d3-tree/lib/types/common'; +import { + euclidean, + // TreeNode +} from 'hdbscan'; +// import { RawNodeDatum } from 'react-d3-tree/lib/types/common'; // import { f32Average, getAllFacesFromMap } from '.'; import { FacesCluster, @@ -93,24 +96,24 @@ export function getNearestCluster( // } // TODO: remove recursion to avoid stack size limits -export function toD3Tree( - treeNode: TreeNode, - allObjects: Array -): RawNodeDatum { - if (!treeNode.left && !treeNode.right) { - return { - name: treeNode.data.toString(), - attributes: { - face: allObjects[treeNode.data], - }, - }; - } - const children = []; - treeNode.left && children.push(toD3Tree(treeNode.left, allObjects)); - treeNode.right && children.push(toD3Tree(treeNode.right, allObjects)); +// export function toD3Tree( +// treeNode: TreeNode, +// allObjects: Array +// ): RawNodeDatum { +// if (!treeNode.left && !treeNode.right) { +// return { +// name: treeNode.data.toString(), +// attributes: { +// face: allObjects[treeNode.data], +// }, +// }; +// } +// const children = []; +// treeNode.left && children.push(toD3Tree(treeNode.left, allObjects)); +// treeNode.right && children.push(toD3Tree(treeNode.right, allObjects)); - return { - name: treeNode.data.toString(), - children: children, - }; -} +// return { +// name: treeNode.data.toString(), +// children: children, +// }; +// } diff --git a/yarn.lock b/yarn.lock index 622ba7023..b2ad65246 100644 --- a/yarn.lock +++ b/yarn.lock @@ -88,13 +88,6 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.1.2": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.0.tgz#e27b977f2e2088ba24748bf99b5e1dece64e4f0b" - integrity sha512-Nht8L0O8YCktmsDV6FqFue7vQLRx3Hb0B37lS5y0jDRqRxlBG4wIJHnf9/bgSE2UyipKFA01YtS+npRdTWBUyw== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/runtime@^7.17.2": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72" @@ -141,18 +134,6 @@ "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" -"@bkrem/react-transition-group@^1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@bkrem/react-transition-group/-/react-transition-group-1.3.1.tgz#fb488bc16195dd95f5c6c5f9705091e01a9c3610" - integrity sha512-AJBMFURKY6VcenLCb2RTRivIy3Yy/JOUWHt3XjL4lDqCzdOryWxaa4HCIUWlhvn462p/gV9QbEihKmNZfvwDKA== - dependencies: - chain-function "^1.0.0" - dom-helpers "^3.3.1" - loose-envify "^1.3.1" - prop-types "^15.5.6" - react-lifecycles-compat "^3.0.4" - warning "^3.0.0" - "@date-io/core@^2.14.0": version "2.14.0" resolved "https://registry.yarnpkg.com/@date-io/core/-/core-2.14.0.tgz#03e9b9b9fc8e4d561c32dd324df0f3ccd967ef14" @@ -772,11 +753,6 @@ dependencies: base-x "^3.0.6" -"@types/d3-hierarchy@^1.1.8": - version "1.1.8" - resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz#50657f420d565a06c0b950a4b82eee0a369f2dea" - integrity sha512-AbStKxNyWiMDQPGDguG2Kuhlq1Sv539pZSxYbx4UZeYkutpPwXCcgyiRrlV4YH64nIOsKx7XVnOMy9O7rJsXkg== - "@types/debounce-promise@^3.1.3": version "3.1.4" resolved "https://registry.npmjs.org/@types/debounce-promise/-/debounce-promise-3.1.4.tgz" @@ -1456,11 +1432,6 @@ caniuse-lite@^1.0.30001406: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001444.tgz#c0a530776eb44d933b493de1d05346f2527b30fc" integrity sha512-ecER9xgJQVMqcrxThKptsW0pPxSae8R2RB87LNa+ivW9ppNWRHEplXcDzkCOP4LYWGj8hunXLqaiC41iBATNyg== -chain-function@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/chain-function/-/chain-function-1.0.1.tgz#c63045e5b4b663fb86f1c6e186adaf1de402a1cc" - integrity sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg== - chalk@^2.0.0, chalk@^2.4.1: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" @@ -1528,11 +1499,6 @@ client-only@0.0.1: resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - clsx@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" @@ -1701,86 +1667,6 @@ csstype@^3.0.2: resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz" integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== -d3-color@1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" - integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== - -d3-dispatch@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" - integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== - -d3-drag@1: - version "1.2.5" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" - integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== - dependencies: - d3-dispatch "1" - d3-selection "1" - -d3-ease@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2" - integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== - -d3-hierarchy@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" - integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== - -d3-interpolate@1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" - integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== - dependencies: - d3-color "1" - -d3-path@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" - integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== - -d3-selection@1, d3-selection@^1.1.0, d3-selection@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" - integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== - -d3-shape@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" - integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== - dependencies: - d3-path "1" - -d3-timer@1: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== - -d3-transition@1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" - integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== - dependencies: - d3-color "1" - d3-dispatch "1" - d3-ease "1" - d3-interpolate "1" - d3-selection "^1.1.0" - d3-timer "1" - -d3-zoom@^1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a" - integrity sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ== - dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" - damerau-levenshtein@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" @@ -1933,13 +1819,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-helpers@^3.3.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" - integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== - dependencies: - "@babel/runtime" "^7.1.2" - dom-helpers@^5.0.1, dom-helpers@^5.2.0, dom-helpers@^5.2.1: version "5.2.1" resolved "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz" @@ -3555,7 +3434,7 @@ long@4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -4130,7 +4009,7 @@ prop-types-extra@^1.1.0: react-is "^16.3.2" warning "^4.0.0" -prop-types@^15.5.6, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -4226,21 +4105,6 @@ react-bootstrap@^1.3.0: uncontrollable "^7.2.1" warning "^4.0.3" -react-d3-tree@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/react-d3-tree/-/react-d3-tree-3.1.1.tgz#8c4390e6972f93069fc809669eecac56887bcf60" - integrity sha512-PSy1UZG8CQ/fhqtk8ZGigBT/D2NQkS0vTYis/0ZNZxxIqtf0SAEu0VFdT8tvEXsmnuK9+6iAeSRchbqj59WvWg== - dependencies: - "@bkrem/react-transition-group" "^1.3.1" - "@types/d3-hierarchy" "^1.1.8" - clone "^2.1.1" - d3-hierarchy "^1.1.9" - d3-selection "^1.4.2" - d3-shape "^1.3.7" - d3-zoom "^1.8.3" - dequal "^2.0.2" - uuid "^8.3.1" - react-datepicker@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.3.0.tgz" @@ -5174,23 +5038,11 @@ utils-merge@1.0.1: resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^8.3.1: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - vary@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= -warning@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" - integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w= - dependencies: - loose-envify "^1.0.0" - warning@^4.0.0, warning@^4.0.2, warning@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz"