ImageMonkey / imagemonkey-core

ImageMonkey is an attempt to create a free, public open source image dataset.
https://imagemonkey.io
47 stars 10 forks source link

highest priority request: unlabled -> unified #268

Open dobkeratops opened 4 years ago

dobkeratops commented 4 years ago

to pin down where all the hardship has come from in this workflow - its the fact there is still no way to just get any image and annotate the most obvious object

that's been the problem all along thats what made the original task system so unpleasant to use, thats what emerged showing the other person - he looked for frog, but the sytem has no idea what the "main" label is on an image.

all you need is the abilty to show completely random images (not a a random search-label - they shouldnt need a label) -and then let the user draw around "the most obvious object" (some balance between the one that jumps out first, and the one that's actually easiest to isolate), then say what it is.

as a matter of urgency, I would recommend putting in some workaround to allow you to get unlabelled images direct into "Unified". possible suggestions:- [1] make the banner just say "add label" if there's an empty label list, and disable the draw tool until there's a label [2] even a quick and dirty modal dialog box (JS: prompt()?) if there's an empty label list - perhaps ask "what object do you see first? ) or [1.2] if you start drawing without a label, let the user do it, but then fire up a prompt() to ask what the polygon was after you draw it, and revert to the usual state (annotate all )

it's only "unified" that ever had a chance of doing this, but it's crippled by the residual effects of the task system (the fact you can only get images into it by searching for a label first, with this search having no concept of which label is best for any image) ... all this extra completity in the tool (bouncing between modes, the random click to suggest a label etc etc) is workarounds for this

the absence of this one 'root feature' -or trying to sheild users from this idea- has resulted in multiple workarounds which end up being more complicated in the end

bbernhard commented 4 years ago

Thanks a lot for the reminder..completely forgot about that. I already started working on it today :)

I hope that I can push a first version to production by the end of next week :)

bbernhard commented 4 years ago

I've pushed a first version to production.

It's now possible to search for unlabeled images with image.unlabeled='true'.

There are still two (purely cosmetic) bugs left, see attached image:

Selection_053

I'll fix those issues in the next days. :)

dobkeratops commented 4 years ago

I wouldn’t even have noticed those issues :) too busy enjoying the new feature

bbernhard commented 4 years ago

I also enabled the "shift+enter" hotkey in the unified mode for adding a label. :)

Not sure if it's useful, but should we also add the "up" and "down" arrow keys for switching between the labels?

btw: I also saw that you played around a bit with the labels list. I haven't looked at it in detail (already a bit tired today after working on the unified mode the whole day ^^), but I'll definitely have a look at it in the next days! Many many thanks! :)

bbernhard commented 4 years ago

And of course: If you have some suggestions, please let me know. It's just a first draft..I am sure there are things to improve :)

dobkeratops commented 4 years ago

Not sure if it's useful, but should we also add the "up" and "down" arrow keys for switching between the labels?

That’s a very interesting idea - it’s probably worth it just to flick through the existing annotations quickly. Up/down would work. A retro key combo I would suggest for this (which is repurposed differently in photoshop, but still known as a inc/dec of sorts) is [ , ]. in photoshop that changes brush size (I think) but in the classic late 80s pixel art program “Dpaint”, it stepped through the palette (while cursor keys were a scrolling shortcut). (Maybe eventually a brush size concept might make sense for a scribbles style mode.. there’s smart annotation aswell)

dobkeratops commented 4 years ago

just occurred to me re suggestions - is there some kind of image ID ;eg imagine if you could download images with ids , and request a specific image ID in the unified mode url- that might enable improvising additional tools, external visualisers (I’m having a little python tools phase and trying to help out some other chap who is trying to learn it, and he’s looking for project ideas .. I keep trying to plug imagemonkey to him :) )

dobkeratops commented 4 years ago

Feedback after some more use.. it's awesome now, as good as i'd hoped it would be. It's a really big step forward from my POV

the image is not blurred afterwards

This is actually BETTER . I'm finding now you can click back on an image if you made a mistake (it’s very frequent for me at least to click done "on autopilot" (habit), then realise "ah damn i didn’t mean to.. i forgot something/i did that wrong”). I was considering requesting this behaviour anyway. I'd leave it as it is :) clicking again unintentionally isnt a hazard because you tend to just scroll down, keeping going annotating. Also when you reach the end you tend to search again, and at that point images you already did are no longer unlabelled so they don’t reappear

bbernhard commented 4 years ago

This is actually BETTER . I'm finding now you can click back on an image if you made a mistake (it’s very frequent for me at least to click done "on autopilot" (habit), then realise "ah damn i didn’t mean to.. i forgot something/i did that wrong”). I was considering requesting this behaviour anyway. I'd leave it as it is :) clicking again unintentionally isnt a hazard because you tend to just scroll down, keeping going annotating. Also when you reach the end you tend to search again, and at that point images you already did are no longer unlabelled so they don’t reappear

we can also leave the behavior as it is - then I'll revert the changes on my local branch :) Or should we maybe grey out the image but still make it clickable? (so that users can keep track of what they have already done). On the (rare) occasions I am doing some annotations, I always have the problem that I lose track of the images I've already worked on.

just occurred to me re suggestions - is there some kind of image ID ;eg imagine if you could download images with ids , and request a specific image ID in the unified mode url- that might enable improvising additional tools, external visualisers (I’m having a little python tools phase and trying to help out some other chap who is trying to learn it, and he’s looking for project ideas .. I keep trying to plug imagemonkey to him :) )

In general it's possible to access images via the following URL:

https://api.imagemonkey.io/v1/donation/<image id>

e.g:

https://api.imagemonkey.io/v1/donation/dbe77f11-b075-414b-a58e-dc7a4e916aa3

The only thing you need to be aware of is, that there are still a bunch of images in "locked mode" - i.e only the one who uploaded the image can see it. That means, if you would want to access such an image you would need to add an additional url param "?api_token=xxxxx" (with xxxx being your authentication token) to the URL. That's mainly a safety mechanism in order to avoid that people use the platform to share illegal (NSFW, racist, etc.) photos. So now, even if you upload a NSFW photo and give the image id to another person, the person wouldn't be able to open it, as the person's api token doesn't match the api token of the uploader.

I've started working on a python library which is capable of doing simple tasks (like searching for a specific label and downloading all the photos with that label) a while ago, but it's far from complete: https://github.com/ImageMonkey/imagemonkey-libs

If your colleague is interested in doing something in that direction, he/she is welcomed to open an issue here. I think we could for sure find some small fun projects - there's a lot to do and any help is really appreciated. :)

dobkeratops commented 4 years ago

grey but still clickable would be the best of both worlds, fine by me.

Right the locking by default is the only way to avoid many legal hazards. There’s been a general trend of regions tightening up the laws on that sort of thing