Origami-Cloudless-AI / TinyMLaaS-2023-winter

Run Hello World of TensorFlow Lite for micro automatically in Docker
https://Origami-TinyML.github.io/tflm_hello_world
Apache License 2.0
1 stars 2 forks source link

WebApp inspects images manually to drop or fix label #58

Open doyu opened 1 year ago

doyu commented 1 year ago

The parent issue #46 User stories https://miro.com/app/board/uXjVPwQdIjc=/

Acceptance criteria (Acceptance test in RF)

ArttuLe commented 1 year ago

@nellatuulikki Do we still need this or not?

nellatuulikki commented 1 year ago
  1. A connected device should send a new image. In the current set up user selects images from own local storage. So we need to implement this probably in Sprint 4.
  2. A new image should be stored in unsorted (unlabeled) dir. User can select images from image set that has been uploaded via streamlit and then label them. However, user can leave images to be unlabeled. I think this is done.
  3. Unsorted images should be shown in Data tab. Unlabeled images can be found under header "Unlabeled images". So this is done. I don't think we have discussed about unsorted images. Is this same as unlabeled images?
  4. User could label it or drop it. The images stored in S3 can only be moved from Unlabeled folder to labeled folder (0, 1). Removing an image is not possible right now.
  5. A dataset should be updated as operated. I don't understand what you mean by this.

So IMO the task should include following items

nellatuulikki commented 1 year ago

@ArttuLe

I have tried to run example projects in Arduino IDE, but it fails to find the device. I'll try to resolve this today or tomorrow. I understood that @FexbYk23 was able run tflite example on his laptop, so it seems that I have just done something wrong.

Also, which worries me a little bit is that there are no example projects for OV7675 camera module (at least I couldn't find with Google or ChatGPT). I think majority of the projects uses OV7670 and there are some libraries for that as well.

To conclude, I'm not sure if I'm able to implement "A connected device should send a new image" by the end of the sprint. I think removing images and fixing labels should be pretty easy to do.

Also, I think this task should be divided to two subtasks, one for getting a device to send image data and one for altering and removing images/labels.

ArttuLe commented 1 year ago

If the problem with Arduino IDE is with the uploading of the code, then it might be the same issue that I had. The port used doesn't have the correct permissions. "sudo chmod 666 /dev/tty/ACM0" or something like that solved the issue for me. We can go over the Device/Arduino things in Kumpula @Luola day.

(edit) sudo chmod 666 /dev/ttyACM0 was the command for giving permissions for the usb port.

There is a "human detection" example in the library which worked with the camera we have, I tested it last week.

I agree with the subtasks, If the sending of the images can't be done easily via serial and we need to implement something else, then it might require its own task 🤔

nellatuulikki commented 1 year ago

Hmm I think I have tried something like that, but I try again this evening. Thanks for the hint.

Good to know that this human detection example worked with the camera!

nellatuulikki commented 1 year ago

I had issues with "A connected device should send a new image". I think we could maybe use person_detection or camera_test projects from Harvard_TinyMLx library, but I have not been able to create a code which would only send one image at the time. I'll continue with this next week and maybe need some help with this.

I'll do removing images during this weekend.

nellatuulikki commented 1 year ago

Just double checking about this feature @doyu . If we are sending an image with Arduino to Data sheet for labeling/storing, should compiling of the image sender happen in Data page as well? I think in UI design guide it was said that all installing should happen in Installing page.

"This is the 1st place to generate an installable OS image for a specific device. ..... There's been no arch dependency in any of previous phases but here it's associated."

doyu commented 1 year ago

@nellatuulikki

Just double checking about this feature @doyu . If we are sending an image with Arduino to Data sheet for labeling/storing, should compiling of the image sender happen in Data page as well? I think in UI design guide it was said that all installing should happen in Installing page.

Hm...sorry, I don't get the above. Would it be possible to explain a little more?

BTW: What does the above Data sheet mean here? I am assuming that the label is identified by the parent dir name in general so that there's no CSV file for a dataset but there's a CSV file for datasets.

lifeofborna commented 1 year ago

Close this task make a new task for :

A connected device should send a new image.