From 8fdbf497fe5062107d3e95a18c949f9181e0ce44 Mon Sep 17 00:00:00 2001 From: Jagger Wang Date: Thu, 30 May 2024 11:34:21 +0800 Subject: [PATCH 1/8] Update README --- README.md | 155 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 128 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index a3ab0565..4bf06922 100644 --- a/README.md +++ b/README.md @@ -4,29 +4,21 @@ ![](https://img.shields.io/badge/Release-v0.9.1-green) ![](https://img.shields.io/badge/License-Apache%202.0-blueviolet) [![Twitter](https://img.shields.io/badge/Follow-Twitter-blue)](https://twitter.com/Xtreme1io) -[![Online](https://img.shields.io/badge/Xtreme1_Online-App-yellow)](https://app.basic.ai/#/login) [![Docs](https://img.shields.io/badge/Docs-Stable-success.svg?style=flat&longCache=true)](http://docs.xtreme1.io/) -[![Use Cloud for Free](https://basicai-asset.s3.amazonaws.com/docs/Open-source/Operation/App_Button.png)](https://app.basic.ai/login) +[![Use Cloud for Free](https://basicai-asset.s3.amazonaws.com/docs/Open-source/Operation/App_Button.png)](https://app.basic.ai) # Intro -Xtreme1 is an all-in-one open-source platform for Multimodal training data. +Xtreme1 is an all-in-one open-source platform for multimodal training data. -Xtreme1 unlocks efficiency in data annotation, curation, and ontology management for tackling machine learning challenges in computer vision and LLM. The platform's AI-fueled tools elevate your annotation to the next efficiency level, powering your projects in 2D/3D Object Detection, 3D Instance Segmentation, and LiDAR-Camera Fusion like never before. +Xtreme1 unlocks efficiency in data annotation, curation, and ontology management for tackling machine learning challenges in computer vision and LLM. The platform's AI-fueled tools elevate your annotation to the next efficiency level, powering your projects in 2D/3D Object Detection, 2D/3D Semantic/Instance Segmentation, and LiDAR-Camera Fusion like never before. -A long-term free plan is offered in the Xtreme1 Cloud version. Click to [🎉 Use Cloud for Free](https://app.basic.ai/login). +A long-term free plan is offered in the Xtreme1 Cloud version. Click to [🎉 Use Cloud for Free](https://app.basic.ai). -# Documentation - -🎆 Welcome aboard! If you have any questions or doubts about features, installation, development, and deployment, you can always refer to our documentation. - -[📙 Find our docs here! ](https://docs.xtreme1.io/xtreme1-docs/) - - -# Find Us -[Twitter](https://twitter.com/Xtreme1io) | [Medium](https://medium.com/multisensory-data-training) | [Issues](https://github.com/xtreme1-io/xtreme1/issues) +The README document only includes content related to installation, building, and running, if you have any questions or doubts about features, you can always refer to our [Doc Site](https://docs.xtreme1.io/xtreme1-docs/). +Find us on [Twitter](https://twitter.com/Xtreme1io) | [Medium](https://medium.com/multisensory-data-training) | [Issues](https://github.com/xtreme1-io/xtreme1/issues) # Key features @@ -52,15 +44,46 @@ Image Data Curation (Visualizing & Debug) - [MobileNetV3](https://github.com/xi :-------------------------:|:-------------------------: ![](/docs/images/2d_v.gif) | -# Quick start +# Install + +## Prerequisites + +### Operating System Requirements + +Any OS can install the Xtreme1 platform with Docker Compose (installing [Docker Desktop](https://docs.docker.com/desktop/) on Mac, Windows, and Linux devices). On the Linux server, you can install Docker Engine with [Docker Compose Plugin](https://docs.docker.com/compose/install/linux/). + +### Hardware Requirements + +**CPU**: AMD64 or ARM64 + +**RAM**: 2GB or higher + +**Hard Drive**: 10GB+ free disk space (depends on data size) + +### Software Requirements + +For Mac, Windows, and Linux with desktop. + +**Docker Desktop**: 4.1 or newer + +For Linux server. -* Get access to [Xtreme1 online version](https://app.basic.ai/#/login/) without any installation :rocket: +**Docker Engine**: 20.10 or newer -* [Install and Quick start](https://docs.xtreme1.io/xtreme1-docs/get-started/quick-start) :cd: -* [Install with Docker](https://docs.xtreme1.io/xtreme1-docs/get-started/install-with-docker) 🐋 -* [Build Xtreme1 from source code](https://docs.xtreme1.io/xtreme1-docs/get-started/install-from-source) :wrench: +**Docker Compose Plugin**: 2.0 or newer + +### (Built-in) Models Deployment Requirements + +Two built-in models only can be running on Linux server with [NVIDIA Driver](https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html) and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). + +**GPU**: NVIDIA Tesla T4 or other similar NVIDIA GPU + +**RAM**: 4G or higher + +## Install with Docker + +### Download package -## Download package Download the latest release package and unzip it. ```bash @@ -68,24 +91,48 @@ wget https://github.com/xtreme1-io/xtreme1/releases/download/v0.9.1/xtreme1-v0.9 unzip -d xtreme1-v0.9.1 xtreme1-v0.9.1.zip ``` -## Start all services +### Start services + +Enter into the release package directory, and execute the following command to start all services. It needs a few minutes to initialize database and prepare a test dataset. ```bash +cd xtreme1-v0.9.1 docker compose up ``` -Visit [http://localhost:8190](http://localhost:8190) in the browser (Google Chrome is recommended) to try out Xtreme1! +Visit [http://localhost:8190](http://localhost:8190) in the browser (Google Chrome is recommended) to try out Xtreme1! You can replace localhost with IP address if you want to access from another machine. + +Docker compose will pull all service images from Docker Hub, including basic services `MySQL`, `Redis`, `MinIO`, and application services `backend`, `frontend`. You can find the username, password, hot binding port to access MySQL, Redis and MinIO in `docker-compose.yml`, for example you can access MinIO console at http://localhost:8194. We use Docker volume to save data, so you won't lose any data between container recreating. + +Docker Compose advanced commands: + +```bash +# Start in the foreground. +docker compose up + +# Or add -d option to run in the background. +docker compose up -d + +# When finished, you can start or stop all or specific services. +docker compose start +docker compose stop + +# Stop all services and delete all containers, but data volumes will be kept. +docker compose down + +# Danger! Delete all volumes. All data in MySQL, Redis and MinIO. +docker compose down -v +``` + +### Install built-in models -## ⚠️ Install built-in models You need to explicitly specify a model profile to enable model services. ```bash docker compose --profile model up ``` -## Enable model services - -> Make sure you have installed [NVIDIA Driver](https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html) and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). But you do not need to install the CUDA Toolkit, as it already contained in the model image. +Make sure you have installed [NVIDIA Driver](https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html) and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). But you do not need to install the CUDA Toolkit, as it already contained in the model image. ```bash # You need set "default-runtime" as "nvidia" in /etc/docker/daemon.json and restart docker to enable NVIDIA Container Toolkit @@ -99,9 +146,63 @@ docker compose --profile model up "default-runtime": "nvidia" } ``` + If you use **Docker Desktop** + **WSL2.0**, please find this [issue #144](https://github.com/xtreme1-io/xtreme1/issues/144) for your reference. -![](/docs/images/3d_annotation2.png) +### Running docker images on ARM architecture machines + +Please note that certain Docker images, including `MySQL`, may not be compatible with the ARM architecture. In case your computer is based on an ARM CPU (e.g. Apple M1), you can create a Docker Compose override file called docker-compose.override.yml and include the following content. While this method uses QEMU emulation to enforce the use of the ARM64 image on the ARM64 platform, it may impact performance. + +```yaml +services: + mysql: + platform: linux/amd64 +``` + +## Install from Source + +If you want to build or extend the function, download the source code and run locally. + +### Enable Docker BuildKit + +We are using Docker BuildKit to accelerate the building speed, such as cache Maven and NPM packages between builds. By default BuildKit is not enabled in Docker Desktop, you can enable it as follows. For more details, you can check the official document [Build images with BuildKit](https://docs.docker.com/develop/develop-images/build_enhancements/). + +```bash +# Set the environment variable to enable BuildKit just for once. +DOCKER_BUILDKIT=1 docker build . +DOCKER_BUILDKIT=1 docker compose up + +# Or edit Docker daemon.json to enable BuildKit by default, the content can be something like '{ "features": { "buildkit": true } }'. +vi /etc/docker/daemon.json + +# You can clear the builder cache if you encounter some package version related problem. +docker builder prune +``` + +### Clone repository + +```bash +git clone https://github.com/basicai/xtreme1.git +cd xtreme1 +``` + +### Build images and run services + +The `docker-compose.yml` default will pull application images from Docker Hub, if you want to build images from source code, you can comment on the service's image line and un-comment build line. + +```yaml +services: + backend: + # image: basicai/xtreme1-backend + build: ./backend + frontend: + # image: basicai/xtreme1-frontend + build: ./frontend +``` + +Then when you run `docker compose up`, it will first build the `backend` and `frontend` image and start these services. Be sure to run `docker compose build` when code changes, as the up command will only build images when it does not exist. + +> You should not commit your change to `docker-compose.yml`, to avoid this, you can copy docker-compose.yml to a new file `docker-compose.develop.yml`, and modify this file as your development needs, as this file is already added into `.gitignore`. And you need to specify this specific file when running Docker Compose commands, such as `docker compose -f docker-compose.develop.yml build`. # License This software is licensed under the Apache 2.0 LICENSE. Xtreme1 is a trademark of LF AI & Data Foundation. From 38665352314f3c959c920fb7eac499a1443a1cc3 Mon Sep 17 00:00:00 2001 From: Jagger Wang Date: Thu, 30 May 2024 11:39:53 +0800 Subject: [PATCH 2/8] Update README --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4bf06922..0542dcff 100644 --- a/README.md +++ b/README.md @@ -48,11 +48,11 @@ Image Data Curation (Visualizing & Debug) - [MobileNetV3](https://github.com/xi ## Prerequisites -### Operating System Requirements +*Operating System Requirements* Any OS can install the Xtreme1 platform with Docker Compose (installing [Docker Desktop](https://docs.docker.com/desktop/) on Mac, Windows, and Linux devices). On the Linux server, you can install Docker Engine with [Docker Compose Plugin](https://docs.docker.com/compose/install/linux/). -### Hardware Requirements +*Hardware Requirements* **CPU**: AMD64 or ARM64 @@ -60,7 +60,7 @@ Any OS can install the Xtreme1 platform with Docker Compose (installing [Docker **Hard Drive**: 10GB+ free disk space (depends on data size) -### Software Requirements +*Software Requirements* For Mac, Windows, and Linux with desktop. @@ -72,7 +72,7 @@ For Linux server. **Docker Compose Plugin**: 2.0 or newer -### (Built-in) Models Deployment Requirements +*(Built-in) Models Deployment Requirements* Two built-in models only can be running on Linux server with [NVIDIA Driver](https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html) and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). From 2a9feab1640c2e7e837c37d4cf3f776cb500e0a9 Mon Sep 17 00:00:00 2001 From: Jagger Wang Date: Thu, 30 May 2024 11:42:58 +0800 Subject: [PATCH 3/8] Update README --- README.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 0542dcff..c82475fb 100644 --- a/README.md +++ b/README.md @@ -54,10 +54,8 @@ Any OS can install the Xtreme1 platform with Docker Compose (installing [Docker *Hardware Requirements* -**CPU**: AMD64 or ARM64 - -**RAM**: 2GB or higher - +**CPU**: AMD64 or ARM64 +**RAM**: 2GB or higher **Hard Drive**: 10GB+ free disk space (depends on data size) *Software Requirements* @@ -68,16 +66,14 @@ For Mac, Windows, and Linux with desktop. For Linux server. -**Docker Engine**: 20.10 or newer - +**Docker Engine**: 20.10 or newer **Docker Compose Plugin**: 2.0 or newer *(Built-in) Models Deployment Requirements* -Two built-in models only can be running on Linux server with [NVIDIA Driver](https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html) and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). - -**GPU**: NVIDIA Tesla T4 or other similar NVIDIA GPU +The built-in models only can be running on Linux server with [NVIDIA Driver](https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html) and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). +**GPU**: NVIDIA Tesla T4 or other similar NVIDIA GPU **RAM**: 4G or higher ## Install with Docker From 23327adedaae45df56e63eeb0942e05da2c67031 Mon Sep 17 00:00:00 2001 From: Jagger Wang Date: Thu, 30 May 2024 11:58:55 +0800 Subject: [PATCH 4/8] Update README --- README.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index c82475fb..caa41cbe 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,8 @@ [![Use Cloud for Free](https://basicai-asset.s3.amazonaws.com/docs/Open-source/Operation/App_Button.png)](https://app.basic.ai) -# Intro +# Intro + Xtreme1 is an all-in-one open-source platform for multimodal training data. Xtreme1 unlocks efficiency in data annotation, curation, and ontology management for tackling machine learning challenges in computer vision and LLM. The platform's AI-fueled tools elevate your annotation to the next efficiency level, powering your projects in 2D/3D Object Detection, 2D/3D Semantic/Instance Segmentation, and LiDAR-Camera Fusion like never before. @@ -20,7 +21,7 @@ The README document only includes content related to installation, building, and Find us on [Twitter](https://twitter.com/Xtreme1io) | [Medium](https://medium.com/multisensory-data-training) | [Issues](https://github.com/xtreme1-io/xtreme1/issues) -# Key features +# Key Features Image Annotation (B-box, Segmentation) - [YOLOR](https://github.com/WongKinYiu/yolor) & [RITM](https://github.com/saic-vul/ritm_interactive_segmentation) | Lidar-camera Fusion Annotation - [OpenPCDet](https://github.com/open-mmlab/OpenPCDet) & [AB3DMOT](https://github.com/xinshuoweng/AB3DMOT) :-------------------------:|:-------------------------: @@ -40,7 +41,7 @@ Image Annotation (B-box, Segmentation) - [YOLOR](https://github.com/WongKinYiu/y :seven: RLHF for Large Language Models :new: (beta version) -Image Data Curation (Visualizing & Debug) - [MobileNetV3](https://github.com/xiaolai-sqlai/mobilenetv3) & [openTSNE](https://github.com/pavlin-policar/openTSNE) | RLHF Annotation tool for LLM (beta version) +Image Data Curation (Visualizing & Debug) - [MobileNetV3](https://github.com/xiaolai-sqlai/mobilenetv3) & [openTSNE](https://github.com/pavlin-policar/openTSNE) | RLHF Annotation Tool for LLM (beta version) :-------------------------:|:-------------------------: ![](/docs/images/2d_v.gif) | @@ -78,7 +79,7 @@ The built-in models only can be running on Linux server with [NVIDIA Driver](htt ## Install with Docker -### Download package +### Download Package Download the latest release package and unzip it. @@ -87,7 +88,7 @@ wget https://github.com/xtreme1-io/xtreme1/releases/download/v0.9.1/xtreme1-v0.9 unzip -d xtreme1-v0.9.1 xtreme1-v0.9.1.zip ``` -### Start services +### Start Services Enter into the release package directory, and execute the following command to start all services. It needs a few minutes to initialize database and prepare a test dataset. @@ -120,7 +121,7 @@ docker compose down docker compose down -v ``` -### Install built-in models +### Start Built-in Models You need to explicitly specify a model profile to enable model services. @@ -145,7 +146,7 @@ Make sure you have installed [NVIDIA Driver](https://docs.nvidia.com/datacenter/ If you use **Docker Desktop** + **WSL2.0**, please find this [issue #144](https://github.com/xtreme1-io/xtreme1/issues/144) for your reference. -### Running docker images on ARM architecture machines +### Run on ARM CPU Please note that certain Docker images, including `MySQL`, may not be compatible with the ARM architecture. In case your computer is based on an ARM CPU (e.g. Apple M1), you can create a Docker Compose override file called docker-compose.override.yml and include the following content. While this method uses QEMU emulation to enforce the use of the ARM64 image on the ARM64 platform, it may impact performance. @@ -175,14 +176,14 @@ vi /etc/docker/daemon.json docker builder prune ``` -### Clone repository +### Clone Repository ```bash git clone https://github.com/basicai/xtreme1.git cd xtreme1 ``` -### Build images and run services +### Build Images and Run Services The `docker-compose.yml` default will pull application images from Docker Hub, if you want to build images from source code, you can comment on the service's image line and un-comment build line. From f85e52502d1bc09dabe50aabc03f8251e53cbc91 Mon Sep 17 00:00:00 2001 From: Jagger Wang Date: Thu, 30 May 2024 12:22:46 +0800 Subject: [PATCH 5/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index caa41cbe..d2a0be59 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Xtreme1 unlocks efficiency in data annotation, curation, and ontology management A long-term free plan is offered in the Xtreme1 Cloud version. Click to [🎉 Use Cloud for Free](https://app.basic.ai). -The README document only includes content related to installation, building, and running, if you have any questions or doubts about features, you can always refer to our [Doc Site](https://docs.xtreme1.io/xtreme1-docs/). +The README document only includes content related to installation, building, and running, if you have any questions or doubts about features, you can always refer to our [Docs Site](https://docs.xtreme1.io/xtreme1-docs/). Find us on [Twitter](https://twitter.com/Xtreme1io) | [Medium](https://medium.com/multisensory-data-training) | [Issues](https://github.com/xtreme1-io/xtreme1/issues) From 14961eecc61349927c2d6743df36302ae9a50410 Mon Sep 17 00:00:00 2001 From: Jagger Wang Date: Wed, 5 Jun 2024 11:38:00 +0800 Subject: [PATCH 6/8] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d2a0be59..cd92ed65 100644 --- a/README.md +++ b/README.md @@ -72,9 +72,9 @@ For Linux server. *(Built-in) Models Deployment Requirements* -The built-in models only can be running on Linux server with [NVIDIA Driver](https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html) and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). +The built-in model containers only can be running on Linux server with [NVIDIA CUDA Driver](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html) and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html). -**GPU**: NVIDIA Tesla T4 or other similar NVIDIA GPU +**GPU**: NVIDIA T4 or other similar GPU **RAM**: 4G or higher ## Install with Docker @@ -129,7 +129,7 @@ You need to explicitly specify a model profile to enable model services. docker compose --profile model up ``` -Make sure you have installed [NVIDIA Driver](https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html) and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). But you do not need to install the CUDA Toolkit, as it already contained in the model image. +Make sure you have installed [NVIDIA CUDA Driver](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html) and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html) on host machine. ```bash # You need set "default-runtime" as "nvidia" in /etc/docker/daemon.json and restart docker to enable NVIDIA Container Toolkit From 66558c93aff648016bab5bfc9bc27651969154b3 Mon Sep 17 00:00:00 2001 From: "seungdeok.jeong" Date: Fri, 2 Aug 2024 16:57:23 +0900 Subject: [PATCH 7/8] fix: remove backId in copy task #274 --- frontend/image-tool/src/package/image-editor/utils/data.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/image-tool/src/package/image-editor/utils/data.ts b/frontend/image-tool/src/package/image-editor/utils/data.ts index 3f2c2149..ba212194 100644 --- a/frontend/image-tool/src/package/image-editor/utils/data.ts +++ b/frontend/image-tool/src/package/image-editor/utils/data.ts @@ -70,6 +70,7 @@ export function copyData( updateTrans.transforms.push(copyedAttrs); } else { const newObject = annotate.cloneThisShape(); + newObject.userData.backId = undefined; newObject.userData.resultStatus = Const.Copied; addOption.objects.push(newObject); } From 7f369add68a8fa43564abb03348f30cc2df16589 Mon Sep 17 00:00:00 2001 From: Jagger Wang Date: Fri, 16 Aug 2024 10:07:48 +0800 Subject: [PATCH 8/8] Move ci directory into ops directory --- .ops/.gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ops/.gitlab-ci.yml b/.ops/.gitlab-ci.yml index 62a8c7b0..e6e3c9d5 100644 --- a/.ops/.gitlab-ci.yml +++ b/.ops/.gitlab-ci.yml @@ -1,6 +1,6 @@ include: - project: 'basicai/xtreme1/common' - file: '/ci/template/xtreme1-app.yml' + file: '/ops/ci/template/xtreme1-app.yml' variables: APP_NAME: "xtreme1"