AI motion detection with BlueIris: an alternate approach

Version 5.3.1 is out. This release updates a dependency and now, hopefully, file watching for people on Macs who are mounting a network share with the images will work!

There are no breaking changes in this release. To update do docker-compose pull then docker-compose up -d.
 
  • Like
Reactions: Splat and Netwalker
Neile is moving on from this thread, so this is a good occasion to thank him for all the wonderful work he has done. Yesterday and today I installed his docker container and it works really well. I still need to fiddle a little with a few parameter values but I can already now tell, that Neile's system indeed is super, and I am sure that I speak on behalf of many here, when I say that your work has made a big change to the better. And there is no cloud service involved!
 
  • Like
Reactions: Nate Scott
Neile is moving on from this thread, so this is a good occasion to thank him for all the wonderful work he has done. Yesterday and today I installed his docker container and it works really well. I still need to fiddle a little with a few parameter values but I can already now tell, that Neile's system indeed is super, and I am sure that I speak on behalf of many here, when I say that your work has made a big change to the better. And there is no cloud service involved!
Totally agree, I just installed it and it works very well. Great work that I now can't life without. Thanks Neile!
 
I know that neile has left us but I have a problem that maybe some of you can tackle. When the system triggers, it sends messages to my android phone via pushover and that works well. However, I do not get annotations, which would be very useful when selecting the threshold levels. My triggers.json part looks like shown below. Any explanation why I do not get annotations?


Code:
{

      "name": "Veranda object detector",

      "watchPattern": "/aiinput/vrnda-SD*.jpg",

      "enabled": true,

      "threshold": {

        "minimum": 10,

        "maximum": 100

      },

      "handlers": {

        "pushover": {

          "annotateImage": true,

          "userKeys": ["blankedOutBlankedOutBlankedOutBlankedOut"],

          "cooldownTime": 30

        },

        "webRequest": {

          "triggerUris": ["http://192.168.1.110:81/admin?trigger&camera=vrnda-HD"]

        }

      },

      "watchObjects": ["person","truck","car","motorcycle","dog","cat","horse","cow","bear","giraffe"]

    }
 
I am having difficulty with the triggers setup. Do you have to define a name/watchPattern/threshold/handler for each different category of watchObjects?

What I am trying to accomplish is to trigger an HD recording whenever there is a car detected on the street or a person on the sidewalk. Additionally, I would like to trigger an HD recording and send an alert (likely telegram) whenever there is a car/person detected in my driveway/upper walkway. Could anyone look at my triggers.json logic and advise if there there a more efficient way to do the below? When my StreetSD camera saves a JPG into the "aiinput" folder, in the docker logs, I see the AI go through each of the below "named" triggers (human detector sidewalk, car detector sidewalk, human detector driveway, car detector driveway) before deciding to fire/not fire an alert. The log will say "found at least one object in the photo" then something like "Detected object car is not in the watch objects list [person, bicycle], and down the line. My CPU (i7-4770k with 16GB ram) is spiking hard (with only 1 camera) and I have multiple cameras to migrate over from the camera NVR.

Under triggers I have:
{
"name": "Human detector Sidewalk",
"watchPattern": "/aiinput/Street*.jpg",
"enabled": true,
"threshold": {
"minimum": 40,
"maximum": 100
},
{
"handlers": {
"triggerUris": "IP: PORT/admin?trigger&camera=StreetHD"]
},
"masks": [{ONE mask, AI thinks my neighbors mailbox is a person}]
"watchObjects": ["person", "bicycle"]

"name": "Car detector Street",
"watchPattern": "/aiinput/Street*.jpg",
"enabled": true,
"threshold": {
"minimum": 20,
"maximum": 100
},
{
"handlers": {
"triggerUris": "IP: PORT/admin?trigger&camera=StreetHD"]
},
"masks": [{LOTS of MASKS for neighbors driveways}]
"watchObjects": ["car", "truck", "motorcycle", "bus", "truck"]

"name": "Human detector Driveway",
"watchPattern": "/aiinput/Street*.jpg",
"enabled": true,
"threshold": {
"minimum": 40,
"maximum": 100
},
{
"handlers": {
"triggerUris": "IP: PORT/admin?trigger&camera=StreetHD"]
"telegram": { NOT SETUP YET }
},
"masks": [{LOTS OF MASKS for street and sidwalk}],
"watchObjects": ["person", "bicycle"]

"name": "Car detector Driveway",
"watchPattern": "/aiinput/Street*.jpg",
"enabled": true,
"threshold": {
"minimum": 20,
"maximum": 100
},
{
"handlers": {
"triggerUris": "IP: PORT/admin?trigger&camera=StreetHD"]
"telegram": { NOT SETUP YET }
},
"masks": [{LOTS OF MASKS for street and sidwalk}],
"watchObjects": ["car", "truck", "motorcycle", "bus", "truck"]

View from camera:
view.png