SkalskiP / make-sense

Free to use online tool for labelling photos. https://makesense.ai
GNU General Public License v3.0
3.15k stars 519 forks source link

Annotating images in batches and tracking progress. #236

Open Chiebukar opened 2 years ago

Chiebukar commented 2 years ago

Since we often have to annotate lots of images its is impossible to annotate the images on one go. It will be good to be able to save current progress and continue from there later on even we leave the site or PC shuts down.

There is also no notable way to know how many images have been annotated and the number of images remaining. This is quite useful in tracking progress of work done and left to do.

github-actions[bot] commented 2 years ago

👋 Hello @Chiebukar, thank you for your interest in make-sense - free to use online tool for labelling photos! 🏷️

🐞 Bug reports

If you noticed that make-sense is not working properly, please provide us with as much information as possible. To make your life easier, we have prepared a bug report template containing all the relevant details. We know, we ask for a lot... However, please believe that knowing all that extra information - like the type of browser you use or the version of node you have installed - really helps us to solve your problems faster and more efficiently. 😉

💬 Get in touch

If you've been trying to contact us but for some reason we haven't responded to your issue yet, don't hesitate to get back to us on Gitter or Twitter.

💻 Local setup

# clone repository
git clone https://github.com/SkalskiP/make-sense.git

# navigate to main dir
cd make-sense

# install dependencies
npm install

# serve with hot reload at localhost:3000
npm start

To ensure proper functionality of the application locally, an npm 6.x.x and node.js v12.x.x versions are required. More information about this problem is available in the #16 issue.

VincentL01 commented 2 years ago

Or you can write a simple program to move all the images with annotation into a separated folder, and another one to merge the new annotation file with the old (bbox annotation should be a piece of cake, polygon annotation should take you a little longer).

SkalskiP commented 2 years ago

Hi, @ThangLC304! 👋 Yup! The problem is that people want to use MS as a full-fledged annotation tool. At least for the time being, we have no plans to add such functionalities because their development would require a very large time investment.

rasyidf commented 2 years ago

We can start with project based approach. the current project name in the top center wasn't really useful.

SkalskiP commented 2 years ago

I have some ideas for persistence, that would not require building a backend.

  1. GitHub API - The user would log in to MakeSense with his/hers GH account, and we would create per project private repo on his behalf and use it for storage. We can thal leverage GitHub API to read and write to that repo.
  2. The File System Access API - a new feature that is slowly rolled out in web browsers. Basically allowing websites to have access to your hard drive like it would be natively installed on your computer. Problem is that it is only supported on Chrome and Edge and it is still quite clunky.
rasyidf commented 2 years ago

I guess this will do .

SkalskiP commented 2 years ago

I'm not sure. Do you see any way to create a new file here? Also, it is quite interesting if you can create zip files this way. I was thinking we can use .zip as the "project" file format, and put images as well as our state JSON inside.

rasyidf commented 2 years ago

creating .zip file is a good approach. but maintaining more than 500 mb data will be much harder using zip.

my suggestion is creating project json with list of anotated file. and drop the folder that contained the json. we can crawl every object-names, get the thumbnails, then proceeds, without the need to load everything at once.

SkalskiP commented 2 years ago

You are right 😔 we would need to load the whole .zip file from the hard drive to even start processing it. Keeping images separate makes it much more sense as it allows us to load them on demand.

The problem that I see is that then: