diff --git a/frontend/nuxt.config.js b/frontend/nuxt.config.js
index b398810b..6baf886a 100644
--- a/frontend/nuxt.config.js
+++ b/frontend/nuxt.config.js
@@ -44,6 +44,7 @@ export default {
'~/plugins/filters.js',
'~/plugins/vue-youtube.js',
'~/plugins/vue-shortkey.js',
+ '~/plugins/vue-konva.js',
'~/plugins/services.ts',
'~/plugins/color.ts',
'~/plugins/role.ts'
diff --git a/frontend/package.json b/frontend/package.json
index 8d5e17f9..da3623f5 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -46,6 +46,7 @@
"vue": "^2.6.14",
"vue-chartjs": "^3.5.1",
"vue-filepond": "^6.0.3",
+ "vue-image-annotator": "^0.1.17",
"vue-shortkey": "^3.1.7",
"vue-template-compiler": "^2.6.14",
"vue-youtube": "^1.4.0",
diff --git a/frontend/pages/demo/object-detection/index.vue b/frontend/pages/demo/object-detection/index.vue
new file mode 100644
index 00000000..c5f46fb6
--- /dev/null
+++ b/frontend/pages/demo/object-detection/index.vue
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/pages/demo/segmentation/index.vue b/frontend/pages/demo/segmentation/index.vue
new file mode 100644
index 00000000..800fd899
--- /dev/null
+++ b/frontend/pages/demo/segmentation/index.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/plugins/vue-konva.js b/frontend/plugins/vue-konva.js
new file mode 100644
index 00000000..8d0807f1
--- /dev/null
+++ b/frontend/plugins/vue-konva.js
@@ -0,0 +1,7 @@
+import Vue from 'vue'
+import VueKonva from 'vue-konva'
+
+// add any custom shortkey config settings here
+Vue.use(VueKonva)
+
+export default VueKonva
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 4cdb7b22..486240c9 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -1322,7 +1322,14 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
-"@flatten-js/interval-tree@^1.0.14":
+"@flatten-js/core@^1.3.4":
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/@flatten-js/core/-/core-1.3.4.tgz#f4ea927cacadf662f70c5ffaa93ca96791d0da40"
+ integrity sha512-VP8VYWMJPZDgNze83iS//sHHkQREtgtZ9VLn9SNX99FN49AIP/QhSeqkpW0/VPyFrUbrmkw8VumYkT09BH5bYg==
+ dependencies:
+ "@flatten-js/interval-tree" "^1.0.15"
+
+"@flatten-js/interval-tree@^1.0.14", "@flatten-js/interval-tree@^1.0.15":
version "1.0.18"
resolved "https://registry.yarnpkg.com/@flatten-js/interval-tree/-/interval-tree-1.0.18.tgz#285c6d491e838ed0c60b7a4f143a5d20b7f41947"
integrity sha512-o72sZErW0Y1C82Cg7nk82ojJ/22EtmKyp5I3eNqgcOKFp/VCzetATYYjJIqOBBaR7FQ/MFj/ZpsmP38mL4TkYA==
@@ -4453,6 +4460,11 @@ core-js@^3.6.5:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94"
integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==
+core-js@^3.8.3:
+ version "3.23.3"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.3.tgz#3b977612b15da6da0c9cc4aec487e8d24f371112"
+ integrity sha512-oAKwkj9xcWNBAvGbT//WiCdOMpb9XQG92/Fe3ABFM/R16BsHgePG00mFOgKf7IsCtfj8tA1kHtf/VwErhriz5Q==
+
core-util-is@~1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
@@ -7899,6 +7911,11 @@ klona@^2.0.4:
resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc"
integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==
+konva@^8.3.10:
+ version "8.3.10"
+ resolved "https://registry.yarnpkg.com/konva/-/konva-8.3.10.tgz#66e93815878c2d48f1b6076d5a06b18ec4eb3217"
+ integrity sha512-5zOynjWBG9wWgpA634SDH+764eyoISpmHLTOCfQ3GFN8OBVd83Genk6H0R4D3hXV0kEGIFAv7RDcSVDtQpPOMw==
+
last-call-webpack-plugin@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555"
@@ -10225,7 +10242,7 @@ range-parser@^1.2.1, range-parser@~1.2.1:
version "2.2.0-c"
resolved "https://github.com/nhn/raphael.git#78a6ed3ec269f33b6457b0ec66f8c3d1f2ed70e0"
dependencies:
- eve "https://github.com/adobe-webplatform/eve.git#eef80ed"
+ eve "git://github.com/adobe-webplatform/eve.git#eef80ed"
raw-loader@^4.0.2:
version "4.0.2"
@@ -12056,6 +12073,11 @@ utils-merge@1.0.1:
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
+uuid@^8.3.2:
+ version "8.3.2"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+ integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+
v-annotator@0.1.27:
version "0.1.27"
resolved "https://registry.yarnpkg.com/v-annotator/-/v-annotator-0.1.27.tgz#ea66f0a4d3bf0d2db922467bcdeb8996c33d8efc"
@@ -12150,6 +12172,18 @@ vue-i18n@^8.25.0:
resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.26.8.tgz#afe936adbf96ff0e9808e04845b8f41cc21c666f"
integrity sha512-BN2OXolO15AKS95yNF8oOtARibaO6RxyKkAYNV4XpOmL7S4eVZYMIDtyvDv+XGZaiUmBJSH9mdNqzexvGMnK2A==
+vue-image-annotator@^0.1.17:
+ version "0.1.20"
+ resolved "https://registry.yarnpkg.com/vue-image-annotator/-/vue-image-annotator-0.1.20.tgz#704674e9d75b3e233a4c0b24f76e0a498495f2d5"
+ integrity sha512-Gs4JzUlfmnuvK0NP5gUPEr39yp7DCj8sbSocNJHLGJK+G7mGnY5xrppvcNIHotiY3Y+BDd9aKPMMyVUVTXl4iQ==
+ dependencies:
+ "@flatten-js/core" "^1.3.4"
+ core-js "^3.8.3"
+ konva "^8.3.10"
+ uuid "^8.3.2"
+ vue "^2.6.11"
+ vue-konva "2"
+
vue-jest@^3.0.7:
version "3.0.7"
resolved "https://registry.yarnpkg.com/vue-jest/-/vue-jest-3.0.7.tgz#a6d29758a5cb4d750f5d1242212be39be4296a33"
@@ -12167,6 +12201,11 @@ vue-jest@^3.0.7:
tsconfig "^7.0.0"
vue-template-es2015-compiler "^1.6.0"
+vue-konva@2:
+ version "2.1.7"
+ resolved "https://registry.yarnpkg.com/vue-konva/-/vue-konva-2.1.7.tgz#1d94471e0b6a3d4139e118a22b4c907f4a091f9c"
+ integrity sha512-uKFp1/tGbt9HAcTXukk/PuPtCMfCSmNyU3Feo3Av4XVfcoBgVQA69+H9r2VQMX+Vwphez1qSfGf7ZNstM3nYRw==
+
vue-loader@^15.9.7:
version "15.9.8"
resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.8.tgz#4b0f602afaf66a996be1e534fb9609dc4ab10e61"