Giter Site home page Giter Site logo

jsbroks / coco-annotator Goto Github PK

View Code? Open in Web Editor NEW
2.0K 45.0 442.0 2.07 MB

:pencil2: Web-based image segmentation tool for object detection, localization, and keypoints

License: MIT License

Dockerfile 0.48% Python 28.06% JavaScript 12.91% HTML 0.17% Vue 57.48% CSS 0.81% Shell 0.09%
machine-learning coco datasets annotate-images computer-vision deep-learning image-labeling coco-annotator image-annotation image-segmentation

coco-annotator's Issues

Wrong path recorded for images

In the lastest revision, the path property uses an old directory (/data) that doesn't exist anymore. E.g.:

{
  "id":1898,
  "path": "/data/datasets/obj1_day6_nov22/rgb105.jpg",
  "dataset_id": 19,
  "width": 1920,
  "height": 1080,
  "file_name": "rgb105.jpg",
  "annotated": true,
  "metadata": {}
}

An "Undo last point" macro "U"

Related to #14, being able to undo the most previous operation would help speed development a lot, as you wouldn't need to redo the whole object if you make a mistake

No images found in directory (for pre-existing directories)

I've volume-mounted an existing folder from my host machine which contains multiple datasets.
When I create a dataset (with name matching one of the dataset folders), the UI shows "No images found in directory." A quick shell into the running flask container shows that the /datasets/{dataset_name} folder does indeed contain images.

It seems like perhaps the create_dataset code should scan the directory for images if the directory already exists--else, those pre-existing images will never be found. I've added PR #48 that makes this use-case work (volume mount existing datasets, create dataset for a pre-existing dataset folder).

What do you think?

Also--thanks for sharing this repo; what you have so far looks great!

Overlapping annotation subtraction

If new annotation shares pixels with another annotation of the same category, the new annotation should be subtracted from the other (new takes priority).

Duplicate keys in mongodb when dataset is deleted

Datasets are not properly getting deleted from the mongodb instance when deleted from the main tool. Steps to reproduce:

  • Create a dataset temp
  • Delete a dataset temp
  • Create a dataset temp

mongoengine.errors.NotUniqueError: Tried to save duplicate unique keys (E11000 duplicate key error collection: flask.dataset_model index: name_1 dup key: { : "temp"})

edit: add dataset name "temp"

Save button in api/annotate/ only sometimes works

When you create a new annotation and then click "save", the indicator in the top right corner switches from "working" to "done!". When you click save, and then download the annotations, an empty instance is returned:

e.g: {"id":24,"image_id":5,"category_id":1,"segmentation":[],"area":0,"bbox":[0,0,0,0],"iscrowd":false,"width":799,"height":533,"color":"#c110d4","metadata":{}}

But if you refresh the image after saving, and then save again, it will return the correct annotation.

Quick Select/Magic Wand tool

Quick Selection tool to quickly “paint” a selection using an adjustable round brush tip. As you drag, the selection expands outward and automatically finds and follows defined edges in the image.

Win 10 home + docker tool box

I have recently use win 10 home and docker tool box to install the coco-annotator.
In development mode, it shows 94% after seal ERROR Failed to compile with 1 errors17:18:57.
and also in production mode, it shows
annotator_flask | Error: 'app/gunicorn_config.py' doesn't exist

How can I do with this problem? Since the app/gunicorn_config.py is already in my folder and its name without extension.

Hide Right Panel Distortion

Hiding the right panel distorts the image by forcing the paperjs canvas to match the size of the new frame.

Toast notifications

Notifications for mostly sync operations (Async are generally handled through the navbar).

Display objects metadata on hover

When hovering over an annotation on the image, display any relevant information (metadata, date created, created by a user, etc.)

Next/Previous Image

Add image navigation tools inside of the editor to go to the next or previous image in the dataset.

Automatically create categories, datasets on startup from file(s)/config

Feature request: It would be nice to allow the workflow of pre-defining a bunch of categories and pre-existing datasets on startup.

I my envisioned use-case, I would volume-mount an existing datasets folder, provide some sort of manifest file containing all the categories that should exist, and a list of datasets that should be automatically created/imported (or maybe just create datasets for all the top-level directories under the /datasets folder).

This would allow me to easily migrate from other existing annotation tools to coco-annotator with minimal effort.

To stretch this a bit further, it would be nice if coco-annotator could also automatically import annotations created by these other tools (VOC format, YOLO format, etc.)

Ability to pan while zoomed in

When zoomed in on an object while annotating, sometimes the whole object is not in view. Thus, in order to annotate the full object, we're currently required to re-center it, and then zoom in again if needed.

An option to pan (e.g. by pressing the wheel button) would be helpful to avoid this.

(Come to think of it, a config file for "keybinds" could also be really useful)

How to import image to a newly created dataset?

Thanks for your open project coco-annotator in github.

I have one question here.
(OS: Linux version 4.15.0-29-generic (buildd@lgw01-amd64-057) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #31-Ubuntu SMP Tue Jul 17 15:39:52 UTC 2018 )

How to import image to a newly created dataset?

What I did is followed:
1.put several images under directory "./data/datasets/test"
2.create one dataset named "test"
But it seems not working. Always showing "No images in dataset".

Need your help here.

Create, delete, re-create categories

after deleting a category, it's not possible to add it back again. It looks like the deleted category's database "delete" attribute is set to "true", but the create logic treats it as already existing.

Default annotations (eye) to visible/enabled

Enhancement: it would be helpful if all of the annotations on an image are visible by default when entering an image.

Additionally, perhaps show/hide all buttons might be useful.

Simplify Polygon

If not enough points are adding while using the polygon tool, the resulting shape may not fit the desired one. In order to fix this, a new algorithm would have to be developed that simplifies the path without smoothening it.

Saving current annotations should not reset the tool being used

When the "save" button is clicked (or ctrl+s is used), the tool currently resets from whatever it previously was to the default "pointer".

This is a bit of an inconvenience for example when you've finished annotating one object in the image, and want to save the intermediate result. If you want to continue annotating the image, you need to re-enable the wand or polygon tool

Viewer filtering options

Add filtering options to each viewer to find models by features (name, folder, data, etc..)

  • Dataset viewer
  • Image viewer
  • Undo list

Dataset analytics page

  • Average annotation size per category (bar graph)
  • Average annotations per image
  • Image size (max, min, average)
  • Number of empty annotations

Propagate annotations to next/previous

Feature Request: It would be helpful if there were a capability to propagate all of the annotations on the current image to the next or previous image.

When annotating images that come from frames of a video sequence, often many of the annotations remain static from one frame to the next, with only a few annotations changing for objects that have moved.

Perhaps there could be some additional buttons next to the arrows in the upper right of the Annotator view which would trigger this functionality.

Clearer instructions on getting setup

I had some slight difficulty getting started with the tool, as a few things were ambiguous. Maybe consider adding a few more detailed steps? For example, had to figure out that:

  • You first have to create a dataset
  • Then you have to create categories for the dataset
  • Then you have to assign a category to the dataset (if you want multiple, you need to Ctrl + click or Shift + click all of the corresponding categories)
  • Then you need to move images to the data/datasets/<created_dataset> folder. I found that moving images to this folder required sudo permission on linux

A simple enhancement could be to provide these steps as (for example) a right-hand panel on the main screen, or as a "reminder" bubble that pops up when creating a dataset

Auto-match annotations (feature)

Feature Request: based on idea mentioned in #52 , it would be helpful if there was an auto-match setting for annotations such that, when a new annotation is added, a background process automatically compared the annotated image patch with other images in the dataset, and if the patch was "the same"(within some tolerance), the annotation would be automatically cloned to that image.

Note that this feature is only really useful for datasets created from video sequences.

No images found in directory.

Trying to run coco-annotator in Windows. I create a dataset, and put images to datasets/dataset_name No result. Generate works fine.

add categories to image

To accommodate object recognition (in contrast to segmentation or detection), images need to have the option to have categories without annotations. This can be represented as a list of category ids.

image {
"id": int,
"width": int,
"height": int,
"file_name": str,
"license": int,
"flickr_url": str,
"coco_url": str,
"date_captured": datetime,
**"category_ids": [int]**
}

Add metadata options

Support of adding custom metadata to Image, Annotation, Category models in the settings modal.

  • Support metadata for annotations
  • Support metadata for images

Authentication system

Tasks

  • Create an authentication page
    • Register Form
    • Login Fprm
    • Form validation
  • Redirect unauthenticated traffic to login page
  • Require login for api endpoints
  • Endpoint access (based on role)
    • datasets
    • images
    • categories
    • annotations
    • annotator
  • User endpoints
    • Delete
    • View
    • Edit Info
    • Login
    • Logout
    • Register
  • Navbar user section
  • User settings page
  • Save annotator settings to user object
  • Set user perferences to the annotatior
  • Admin control panel
    • Create Users
    • Delete Users
    • View Users
    • Edit Users
    • Pagnation
  • vuex user module
  • Dataset share option
  • First user create set as admin
  • Rewrite api test cases to support users

Roles

Admin

  • Can edit, delete and view any dataset

Owner

  • Can delete, and share datasets user created

User

  • Can create, edit and view datasets shared with them

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.