Comments (13)
100% agree and part of my hesitance of suggesting it was the different workflow between products. But if you think you can do it in the same way across all 3 then perfect!
from double-take.
@Haloooch, good news. I've made some progress on this over the last few days. Hoping to get a beta build of it ready by end of week.
from double-take.
Just tested and working perfect! I like the idea of adding labels. Thx.
from double-take.
The API currently supports this and may solve your issue. There isn't a way to do it from the UI currently.
/api/train/add/:name
will add all images from the/.storage/train
folder and /api/train/remove/:name
will remove all trained images. This only applies to whatever detectors are currently configured at the time of hitting the API.
from double-take.
Was just going to log this as an enhancement but see it's already here. I was thinking you could add this functionality to the 'Files' view. Implement the multiple select (clicking on the image) that is on the 'Matches' view along with the 'Train' dropdown, but with a new dropdown or tick box called 'Remove' (or something like that).
from double-take.
@Haloooch, I was hoping to implement it similar to how you described, but the ability to remove specific images varies per detection service. CompreFace and Facebox both allow you to remove specific images, but DeepStack only allows you to remove the entire trained person, as far as I can tell.
I may just have to allow the multiselect for CompreFace and Facebox and then just have a single button to remove the entire DeepStack name.
Do you think something like that would work?
from double-take.
I use DeepStack so it's a shame to hear it doesn't allow the per image option, I would however still love the ability to simply click a button and remove a person. As such your suggestion sounds like a great enhancement.
I didn't know at least DeepStack saved all trained images, which you have made visible through the 'Files' menu option. Since DeepStack doesn't let you delete one image that's been trained would there be a way to delete person but then re-train using selected images? Trying to work out the UI workflow:
- If no images selected and button clicked to delete then that person deleted
- If one or more images selected and button clicked to delete person, person deleted but selected images used to recreate person
(As I type this its all starting to sound quite complex and confusing, not sure if it's worth it....)
from double-take.
I like what you are proposing, I was thinking of a similar solution. It does become a little complicated to have to retrain the entire person each time, but that's probably the only way to really do it in an elegant way.
Maybe I'll do CompreFace and Facebox the same way to just keep it consistent. This would be a killer feature if implemented correctly.
from double-take.
I'll try to get this into the next release in some form and we can then tweak it from there.
from double-take.
@Haloooch the newest beta build includes a lot of cool features. I would love some feedback from you and any suggestions you may have. Here's a screenshot of what it looks like so far.
Let me try to walk you through how it is currently setup.
The red trash button on the right side untrains / deletes images from multiple subjects. If the image is currently trained it will remove that subject entirely and retrain it with the other trained images.
If the image is untrained by doing the previous step and you click the same button it will then remove it.
So a trained image goes from trained
-> untrained
-> deleted
If you select a name from the dropdown you can do one of three things.
- Upload a new image from your file system. You can even use your phone camera which will allow you to use some high quality photos for training.
- Sync and retrain the model. This deletes the current user from the configured detectors and then takes all the images from the
/train/${name}
folder to retrain the model. - Ability to completely untrain a user. This will not remove the images, but they will go into the untrained state and then can be selected and deleted if wanted.
from double-take.
I completed extensive testing of this last night, pleased to say it 'just works'! Very cool feature, thank you.
When I first read your instructions above it did sound overly complicated, equally when playing with it, I didn't need to think ok which button do I click on now, but after a few seconds it all became intuitive.
I didn't find a single bug.
I do have one possible enhancement:
- Navigate to Train Screen
- select a trained image and click delete (to untrain)
- now re-select that image once untrained
- add the ability to train that image for a different person
If I'm correct you cannot currently do this, all you can do is retrain that image to the originally trained person.
Thank you again, really amazing work.
from double-take.
Hey @Haloooch, I'm so happy to hear it's working well for you. There's a little refactoring I need to do, but I tested it pretty extensively as well. Glad to hear you haven't ran into any issues.
I initially didn't have labels on the buttons so it would scale down to mobile and I wouldn't have to worry about it breaking to a new line. For larger screens I added these so it's more clear what the buttons do and I try to make it clear in the confirmation box what will happen too.
I was able to squeeze your enhancement in tonight as well. Let me know if this is what you had in mind. Here's a screenshot of how it works. For any untrained image you can select a name from the dropdown and train it for that user.
The latest beta build should include this.
from double-take.
Closing as this is now included in release v0.9.0.
from double-take.
Related Issues (20)
- Recognition process deepstack does not run automatically[BUG] HOT 1
- [BUG] most faces are not matching because under 100x100 HOT 1
- Latest vs Snapshot
- [BUG] HOT 3
- [BUG] Zones not working HOT 1
- [BUG] HOT 1
- New Release Date? HOT 4
- Can Someone help me in setting up the double take.[FEAT] HOT 1
- Add opencv to api url recognize HOT 4
- [BUG] Unable to connect to CompreFace
- feature reolink NVR support
- Eliminate the "-" from the storage directory name (ie /media/double-take to /media/doubletake) HOT 1
- [FEAT] Support Blue Iris
- [BUG] Camera Zone(s) restrictions do not work when you have more than one zone defined
- Double Take 2.0: Seeking Feedback and Ideas HOT 19
- [BUG] No connection to deepstack HOT 1
- [BUG] secure-mqtt not enabled when TLS settings are provided HOT 2
- [FEAT] HTTPS access
- [BUG] SqliteError: database disk image is malformed
- Are boxes that are too small still processed? If so why?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from double-take.