petargyurov / megadetector-gui Goto Github PK
View Code? Open in Web Editor NEWA desktop application that makes using MegaDetector's model easier
A desktop application that makes using MegaDetector's model easier
Describe the bug
When detection is running and users press the Stop button, the error toast shows up.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
To stop the detection process without errors
Screenshots
N/A
System Information (please complete the following information):
Additional context
The error message is null. It is probably something to do with how we handle stderr
output from the backend.
Feature
Allow use of left/right arrow keys to move through images in the review process. Offer other keyboard shortcuts to add classifications.
Additional Detail
When reviewing lots of images, it's cumbersome to have to click on the "next" button. Allowing the use of left/right arrow keys to move to previous/next image would make for a smoother use. Not sure if it's possible to do.
Additional keyboard shortcuts would help as well: a = animal; e = empty (remove all classifications); m = multiple; p = person; etc.
Describe the bug
Reloading the app in dev is broken. Typically in the dev process you use a hot-reloader to automatically reload the app when you make changes. There appears to be something going wrong because on each refresh we just get a blank screen.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The app to properly refresh with Ctrl+R and to show new changes if there was a code change
Screenshots
If applicable, add screenshots to help explain your problem.
System Information (please complete the following information):
Additional context
It appears to be an issue caused by the page
routing package. Still unsure exactly what it is.
Using other Svelte-specific routers seems like it might be a better choice.
So far this one looks most promising:
Thanks for this GUI! A lot of general users like me thank you for putting Megadetector right in their hands.
I have an issue where 2 animals were next to each other. 1 animal was detected but not the other, so the image was classified as "animal" instead of "multiple". At the moment, when Reviewing, it is not possible to add a detection to a file already classified as "animal".
Could the option "add new animal" be added to the review process?
Feature
Introduce a settings panel which users can use to set UI preferrences.
Additional Detail
There is a number of things in the UI which some users may prefer to change the default behaviour of. For instance:
electron-store
we can easily expand this from now on)Proposed Mechanism
I think a simpe .json
file saved in the root directory will be enough to preserve the state of the settings. The UI can read from the file to display the settings. Each change could overwrite the file, or perhaps a Save button?
Describe the bug
On a couple of occasions I have observed that if you initiate a child process on the backend and close the app, the child process is not killed.
To Reproduce
(Hard to replicate!) Steps to reproduce the behavior:
Expected behavior
All backend processes to stop when the app is closed.
Screenshots
N/A
System Information (please complete the following information):
Additional context
Hard to replicate. Willing to close if I cannot replicate enough times.
Describe the bug
Child process maxes out the stdout buffer when a large number of images are being processed. From testing, it appears that this happens consistently after processing 11,906 images.
RangeError [ERR_CHILD_PROCESS_STDIO_MAXBUFFER]: stdout maxBuffer length exceeded
To Reproduce
Steps to reproduce the behavior:
Expected behavior
No error
Screenshots
N/A
System Information (please complete the following information):
Additional context
N/A
Feature
Looking to upgrade the detector to the latest version. v5.0 released in 2022
Additional Detail
Version 4.1 detects a lot of false positives on my images. But some basic testing with 5.0 shows it to be far superior.
Describe the bug
There is currently no mechanism to cycle the log file once it reaches a certain size. This means that over time, even through version updates, the log file will grow and grow until it becomes huge. This could lead to various unexpected, unhandled behaviour, and it is also very user-unfriendly.
To Reproduce
N/A
Expected behavior
A mechanism that handles logs better.
Screenshots
N/A
System Information (please complete the following information):
N/A
Additional context
N/A
Describe the bug
If the model detects multiple objects in a single image the UI doesn't support correcting them individually. For instance, in an image of a cat, the model may detect cat
(correct) and person
(incorrect) -- currently the UI doesn't let you remove you incorrect detection.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Have a button that selectively removes the false positive result whilst preserving the true positive
Feature
Handle multiple, nested folders and automatically traverse them to find images
Additional Detail
Typically, camera trap images are taken from multiple SD cards. Each camera names the images with its own name, meaning you end up with non-unique image names across all the SD cards. On top of that the images are typically nested inside multiple folders.
It would be nice for the application to automatically figure out the image location and not be stumped by the duplicate image names.
Describe the bug
Lack of permissions when trying to open the log file. It could also be happening when trying to write to the log file?
To Reproduce
Steps to reproduce the behavior:
Expected behavior
No error
Screenshots
If applicable, add screenshots to help explain your problem.
System Information (please complete the following information):
Additional context
Runnining the app as Administrator appears to be a workaround.
Describe the bug
When starting a review, the file import section allows you to load any file, when only JSON is supported.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The file dialog should be configured to only allow .json files
Screenshots
N/A
System Information (please complete the following information):
Additional context
N/A
Feature
Currently not all errors are handled. We need a robust system that 1) notifies the user of any errors 2) logs detailed error information to a file
Additional Detail
Some errors are already handled, but there isn't much handling of errors coming from the backend process, especially during initiating of the child process.
Feature
In review, have the ability to change an animal that has been labelled as a "Person" to "Animal"
Question
This is great. Im starting to use this for my conservation projects. But, If used on images that already have keywords assigned in the meta data, such as with exifPro or DigiKam, then these are stripped in the sorting process.
Is there a way around this issue?
Feature
Option to review results for some classifications only
Additional Detail
On starting the review process, use a checklist to select which classifications to review: Animals are usually pretty straightforward and correct so can model can be trusted on that, and users may not want to review the images. I found issues were mostly with Multiples when only one animal was present but shadows made it look like animals; or with images classified as Empty though animals were present (small birds, reptiles). Users may want to review Persons in case they want to look at poaching, etc. Giving the option to choose would save time.
Describe the bug
The ETA timer during the detection process is only updated once an image is processed.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The timer should count down in real-time after each update
Screenshots
N/A
System Information (please complete the following information):
Additional context
Fixing this would mean that the timer may jump up or down suddenly each time an image is processed. We could add some sort of animation to represent the sudden change.
Feature
CSV output after finishing detection and/or review
Additional Detail
A .csv file that shows the classification, confidence, bounding box data and possibly EXIF data for each image. CSV files are more commonly used by people in the field (compared to the current JSON format).
Feature
A utility baked into the app that can take a video and split it into individual frames to be processed as images.
Additional Detail
Potentially the application could automatically do the image splitting if it detects that a video has been imported.
Describe the bug
When an error occurs inside a remote script, i.e.: a library, Chromium obfuscates the error message for security reasons.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Such errors to be captured properly.
Screenshots
N/A
System Information (please complete the following information):
Additional context
See:
This document outlines some of the over-arching themes around the development of this application and serves to remind me and any future developers of some important design decisions.
This project's initial aim is to help conservationists by providing an easy to use application that automates the processing of camera trap images using AI.
Stage | Description | Status |
---|---|---|
Stage 1 | App simplifies the use of MegaDetector and allows users to perform a quick review of the results | โ๏ธ |
Stage 2 | Users can use other models trained outside of the app, not just MegaDetector | |
Stage 3 | Users can train pre-trained models and use them in the app | |
Stage 4 | Users can continue to train a custom model each time they import new data |
At the time of writing, this project is split into two repositories. This decoupling comes with advantages and disadvantages.
Pros ๐ | Cons ๐ |
---|---|
The backend repository can exist as a standalone project | Difficult to use GitHub's project management features and management of issues |
Confusing build process |
At the start of this project I was more inclined to keep the two repos separated. After developing for a couple of months, and taking into consideration the future of the project, I think it would be more beneficial to have a single repo. This is especially important once we enter stage 2.
โน๏ธ TODO
โน๏ธ TODO
Describe the bug
MegaDetector uses specific colours for each category. Our in-app labels do not match those colours.
To Reproduce
N/A
Expected behavior
For the colours of the bounding box and the in-app label to match.
System Information (please complete the following information):
Additional context
N/A
We are re-initialising the progress bar when we should be using .progress("set percent", x)
Currently occuring in nextImage
and prevImage
functions.
Describe the bug
Firstly thank you for this amazing tool! Processed 8400 images in total this week - across 12 cameras, biggest process batch was 2700 files.
If Auto sort is used, then only the first ~40-70 images will be transferred from the json file to csv file. If review is used then complete updated results.csv is produced.
To Reproduce
Steps to reproduce the behavior:
Expected behaviour
complete results.csv file produced from Auto-sort processing.
Screenshots
If applicable, add screenshots to help explain your problem.
System Information (please complete the following information):
Additional context
Add any other context about the problem here.
Describe the bug
Sometimes the review progress bar will reach 100% and invoke the completion modal before all images have been reviewed.
To Reproduce
Steps to reproduce the behavior:
Unknown
Expected behavior
Reach 100% only after all images have been reviewed (i.e.: marked as correct or corrected)
Screenshots
N/A
System Information (please complete the following information):
Additional context
First thought is that this is probably something to do with using the Prev button and/or the Mark As button and incorrectly updating the progress.
Describe the bug
When the detection process successfully finishes, users are presented with a modal and a button to take them to the Review stage. When the button is pressed, the interruption toast appears.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Interrutpion toast should not appear in this case
Screenshots
N/A
System Information (please complete the following information):
Additional context
N/A
Feature
The warning modals in the Review process, that pop up when you change the classification result, are too frequent and unnessesary.
Additional Detail
We could either:
The latter will require that we create a new entry in the config file.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.