Object classification with Frigate+ #19117
Replies: 3 comments 8 replies
|
This is related to this conversation about label hierarchy. |
|
I believe otter is a candidate label, so realistically if you tell the model it is not a cat but an otter you will temporarily be training the model that it is nothing there, but in general I would still expect this to be labeled as one of the animals.
I don't think that really makes sense, it is not a sub label in the same way that fedex / ups is. Fedex / UPS require detecting a separate specific attribute of the car (a logo). So when you suggest the same thing for an animal (let's say dog) you are essentially saying that the model should detect the same thing as an animal but also know it is a dog. If this is not how it would work then we would require a secondary classification model, which is an additional resource user and increases the latency, which is a regression for many users. That does not work in the same way. Realistically, if all you care about is that something is an animal then you can just change your labelmap to call all animals
I don't think that is always the case, for example I have a dog so a dog in the backyard is normal. But if a rabbit or cat is in the backyard then I can't let my dog out as he will likely chase them / potentially try to get out of the yard. This also further becomes problematic as people want to recognize if a cat is their cat, and Frigate 0.17 has had object classification implemented. If everything was just
This is already how Frigate works, for an object to be considered a potential true positive it must have had a position change. |
|
I have had to start researching some of the different animal families across the world from all these wildlife requests. Turns out that otters and badgers are both mustelids. I may end up converting the badger label to mustelid, so I think its best to label them as badgers. I have also had requests for marten, polecat, and weasel. All of these are mustelids. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
I have a Frigate installation that has several cameras at a vacation house. The house is unoccupied most of the time and my primary use case is knowing what happens there, particularly in terms of what wildlife comes by.
Cougars live in the area and I would love to get a picture of one. The place is on the water, and I get otters in the yard occasionally.
I would like Frigate to create an event (give me something to review) when any animal, without regard to what kind of animal comes along.
With this in mind, when I am reviewing events and submitting images to Frigate+, should I provide negative feedback and should the decision depend on if the correct model exists?
For example, I assume if Frigate sees a dog as a cat and I say “No that’s not a cat, it’s a dog” that in the future if a cougar comes along, I won’t have reduced that chances of Frigate catching the event. Frigate may still think the cougar is a dog, but it will at least report an event, since it knows about both cats and dogs. However in the case that Frigate thinks an otter is a cat, and I say “No, that’s not an cat”, but since otter isn’t a known object, by reporting a false positive and not reporting the correct positive, am I reducing the chances that an event of any kind will be reported the next time an otter comes along?
If I don’t want to miss otters, should I
As a suggestion / feature request I would prefer to have a single master object called “Animal” with sub labels for kinds of animals. Just like how we have “Car” with sub classifications of Ups and FedEx, I would like to see “Animal” with sub classifications of “Cat, Dog, Deer, etc.” From a security system point of view, I would think that most people primarily care about if the event was a Person, Vehicle, or an Animal and would rather be assured that any vehicle will raise a vehicle alert, and that any animal will raise an animal alert – even if the specific vehicle or animal type is not known. Most commercial solutions seem to focus on People, Vehicles, and Animals as general objects.
As another suggestion / feature request to support my use case, I would like to have an event filter for “object moved percentage” which I could apply to any object and specify that for an event to be created, the detected object needs to move x percent through the image frame. While I can create masks and I can increase my object detection thresholds, I still get lots of false positives caused by branches or water moving, shadows, etc. If I set my thresholds too high, I will miss events. In almost all cases however, my false positives are of the mostly static background image. Anything I care about will be moving and moving significantly. It would be a killer feature if I could say “I don’t care what you think that object is, but if you see a set of pixels that you think is any recognizable object, and that set of pixels moves a third of the way through the frame, raise an event.”
All reactions