Code Monkey home page Code Monkey logo

Comments (16)

rasyidf avatar rasyidf commented on July 3, 2024 1

I'm just starting this task, hope I can finish it this weekend.

🎉 congratulations!!!

thank you :D

from make-sense.

SkalskiP avatar SkalskiP commented on July 3, 2024

Hi, @ahmedbesbes! We don't have this functionality yet. But you can expect it to enter MakeSense in the next development round. At the moment I only have hint that if you don't make labels for a given photo then you won't be exporting any file that would concern it. This is not deletion.... I know. But at least you don't have garbage.

from make-sense.

TKassis avatar TKassis commented on July 3, 2024

I have a related suggestion. I'd like to be able to include a skipped image in the export. A few object detection models I'm using accept negative images (i.e. images with no objects of interest). Is this possible?

from make-sense.

SkalskiP avatar SkalskiP commented on July 3, 2024

@ahmedbesbes I'm going to implement that feature in the upcoming version of MakeSense.

from make-sense.

rasyidf avatar rasyidf commented on July 3, 2024

I'll try to take this.

from make-sense.

SkalskiP avatar SkalskiP commented on July 3, 2024

@ahmedbesbes let me know if you have any problems

from make-sense.

rasyidf avatar rasyidf commented on July 3, 2024

I wanted to add this functionality, but needed a new settings parameter, wondering where exactly do you suggest adding this toggle?

from make-sense.

SkalskiP avatar SkalskiP commented on July 3, 2024

I'll try to prepare some task requirements today. ;)

from make-sense.

SkalskiP avatar SkalskiP commented on July 3, 2024

Hi, @rasyidf 👋! Below you will find guidelines for this task. I tried not only to answer your question but also to point out some problems that may arise.

  • Functionality should be to irreversibly remove the photo from the dataset. So not toggle (on / off) but delete button.

  • User should be able to trigger the deletion of the photo in two ways.

    • There should be a delete button at the top, that would enable to delete of the currently annotated photo. The button should use the trash icon. Please also add the separator between buttons on the left and the newly added delete button. The delete button should display a tooltip on the hover saying: "Delete current image".

    Screenshot 2022-07-27 at 12 50 39

    • There should be an additional delete button for every image in the left panel. This button should be only visible on hover. The button should be #d42245 with the white cross.

    Screenshot 2022-07-27 at 12 59 39

  • When a user tries to delete an image that contains annotation, we need to display a confirmation popup. With the question: "You are about to delete the image that contains {annotations_type} annotations. Would you like to continue?". We have a reusable component GenericYesNoPopup that you can leverage. A good example of using that popup is in ExitProjectPopup. annotations_type should match the type of annotations that would be removed - box, polygon, line, or point.

  • We should be able to figure out that the image contains labels based on logic similar to the ImagesList.isImageChecked method, but we need to check for all of them, not for activeLabelType.

  • When the user removes the current image, we should make sure that the next image from the list would be loaded. You can get current image index calling LabelsSelector.getActiveImageIndex() and you can load different image by calling updateActiveImageIndex.

from make-sense.

rasyidf avatar rasyidf commented on July 3, 2024

noted, I'll work on it as soon as I'm done with my engagement party.

from make-sense.

SkalskiP avatar SkalskiP commented on July 3, 2024

🎉 congratulations!!!

from make-sense.

rasyidf avatar rasyidf commented on July 3, 2024
  • I'm still don't really understand how Image being managed.
  • do I have to add deleteById in the Image Repository? or Is it Already Exist?
  • Is hotkey for deletion is necessary to be added?

from make-sense.

SkalskiP avatar SkalskiP commented on July 3, 2024

I'm still don't really understand how Image being managed.

Image management is divided into two parts: ImageRepository and LabelsState. LabelsState.imagesData field stores ImageData objects. Each ImageData contains fields like id, File as well as lots of label data. ImageRepository is essentially a map matching image id from ImageData with actual HTMLImageElement.

File is the object that I get from the browser when the user loads images. It contains (among other things) the path to the image. HTMLImageElement is the actual image data. File is light and HTMLImageElement is heavy.

I decided that I need to separate HTMLImageElement from the rest of the image data. It's because I store most of the data in Redux, and Redux requires you to constantly return a new state, which is a copy of an old state with small changes. I didn't want to constantly juggle large HTMLImageElement objects.

When the user uploads an image, the browser is passing us the File object. We take it and wrap it into ImageData and store it in Redux. When the user wants to display an image represented by this File we actually load it and at the same time store loaded HTMLImageElement in ImageRepository.

I hope it is more clear now.

do I have to add deleteById in the Image Repository? or Is it Already Exist?

I would do two things. First: add deleteById to ImageRepository. That would be responsible for removing HTMLImageElement object. We need to make sure it is actually gone from memory. Second: add deleteById action to ImageActions, that would be responsible for updating Redux.

Is hotkey for deletion is necessary to be added?

No I don't plan to add hotkey for that functionality for now.

from make-sense.

rasyidf avatar rasyidf commented on July 3, 2024

Whoa, thanks for the explanation, I'll try to implement it soon.

from make-sense.

rasyidf avatar rasyidf commented on July 3, 2024

Actually, I'm new with Redux, so it would take some time.

from make-sense.

SkalskiP avatar SkalskiP commented on July 3, 2024

No worries I understand 🤯! Just let me know if you will have any questions. I’ll try to be as responsive as possible.

from make-sense.

Related Issues (20)

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.