Final Project of EECS6893@Columbia University: Automatic Image Labelling System
- author: Yi Yang, Jiashu Chen, Jing Peng
- Linux or macOS with Python ≥ 3.6
- PyTorch ≥ 1.8 and torchvision that matches the PyTorch installation
- OpenCV is strongly recommended
- a node version ≥ 7 and an npm version ≥ 4
- If you have installation or compilation issues with this project, please see electron's official debugging guide
Install dependencies with yarn.
$ cd your-project-name
$ npm install
- We have made our project running on our Google Cloud Server. If you would like to run our project on your own environment, please follow the installation instructions.
Our deep learning engine is based on Detectron2. Run install.sh to install Detectron2. Set environmental variable $DETECTRON2_DATASETS
to be path to your dataset.
If it is the first time you use our automatic labelling system, you will need to train a basic model to make it work for you. Make sure your dataset is in COCO format. You can use labelme_to_coco.py to transform your labelme dataset into a COCO dataset.
Run train.sh to start training process. Feel free to change the network according to your requirements.
*If you would like to train your model using your own dataset with your designed categories, you will need to change the COCO_CATEGORIES in builtin_meta.py
Use start-frontend.sh and start-backend.sh to start the front-end and back-end of our app.
To use your unique model and settings, sign up/login with your account first.
Upload your customized config file and model to label your data via our settings panel.
After login and upload your model and config file, you can now use our system to label your images. Click on 'Open' to select your image and then click on 'Upload' to send your image to our backend.
You can make modifications including adding, updating or removing annotations to your label results. Operations in the Display panel and Option are both supported.
You can update your annotations:
You can add new annotations:
You can remove unwanted/wrong annotations:
If you wold like to update your model to improve model's performance, Airflow is needed to support periodically training. Details of our periodically training can be found in airflow-utils. Put all the files into your $AIRFLOW_HOME/dags
.
This work is the final project for EECS-E6893@Columbia University. Due to the GitHub's limitation on file sizes, we can not upload our model. Please contract me if you want our model files.