Full ALPR Database System for Blue Iris!

Apologies if this has been discussed before--I don't see any prior mention of it--but what are the possible routes to integration with UI3?

Could the database be served up as a new "tab" in UI3? I'd be interested in ways to make this available to other users without having to expose another port, e.g. somehow present the page via UI3 so that we can re-use UI3's existing users and access control. Thanks!

Definitely wouldn't recommend exposing this to the internet at the moment. Eventually, yes, but not a good idea for now.

As far as a UI3 built-in goes, no, it couldn't really be integrated unfortunately. It's programmed pretty differently and would require the UI3 developer to basically remake it.
 
Thanks but I don't want the plate sent. I want the learned name that is associated with the plate in ALPR database sent. So I need to be able to send from ALPR program and not from Blue Iris.

@algertc : is this an option that is currently available? If not can I request it for future releases?

I'm not an HA user and don't know much about others' use cases, but am definitely interested more integration.

If what you're describing is basically a notification for certain plates to be sent to HA, that's pretty easy to do. I could add it to the notifications page. Please add it to the roadmap with a thorough explanation, and I'll get around to it.
 
I just published a new 0.1.7 full update. For anyone who was already using the nightly build, there is not much of a difference as most of those changes were just merged in.

I have added a usage reporting feature that will send me some very minimal data about users' deployments. You can find this setting under the sharing tab in the settings page.

For existing users, reporting is disabled until you click save in your settings page. Saving without specifying a preference will default it to enabled.


While it's entirely optional to share, I would really encourage everyone to enable the reporting. There is no personally identifiable information aside from your IP address sent to cloudflare, and it will be very helpful for the coming improvements to the OCR model. It's also just interesting for me to see how many people are using the app and their level of usage.
 
@MikeLud1 noticed that this seems to happen if you don't have the burn box onto image setting enabled in BI. Maybe see if that fixes it?
I did have that set already...

I had something like a 5 second pre-record set in BI and changes it to 2 seconds and it appears to be much better.

I am trying to iron out some issues in BI with regards to detecting the direction of the car. I cloned the camera and just set up a simple motion detect and am sending that to the ALPR database. That seems far better....

I normally set up a couple of zones and that tells me if the cars are coming or going.
 
I did have that set already...

I had something like a 5 second pre-record set in BI and changes it to 2 seconds and it appears to be much better.

I am trying to iron out some issues in BI with regards to detecting the direction of the car. I cloned the camera and just set up a simple motion detect and am sending that to the ALPR database. That seems far better....

I normally set up a couple of zones and that tells me if the cars are coming or going.

I have mine at 15 seconds with no issues, so that suggests that it is caused by the zone configuration if that is the only difference. I have my motion detect looking at the whole image with no zones and using the simple algorithm.

Apologies if any of that is obvious. I'm def not a BI expert. I just leave what I have as it is and it works well enough for me.



I see it. Thank you :)
 
I have mine at 15 seconds with no issues, so that suggests that it is caused by the zone configuration if that is the only difference. I have my motion detect looking at the whole image with no zones and using the simple algorithm.

Apologies if any of that is obvious. I'm def not a BI expert. I just leave what I have as it is and it works well enough for me.




I see it. Thank you :)

I’m noticing the same thing, and I believe it's because BI saves the trigger image rather than the AI-confirmed image in the database. As a result, the motion trigger image is what BI sends to the app when using "&ALERT_JPEG."
I’ll reach out to Ken @BI to clarify whether this is intentional, a bug, or a potential feature request.
 
  • Like
Reactions: wpiman
I’m noticing the same thing, and I believe it's because BI saves the trigger image rather than the AI-confirmed image in the database. As a result, the motion trigger image is what BI sends to the app when using "&ALERT_JPEG."
I’ll reach out to Ken @BI to clarify whether this is intentional, a bug, or a potential feature request.
My &ALERT_JPEGs are the correct plate image with this setup:

Bi_settingsq.PNG
bi_settings2.PNG
 
My &ALERT_JPEGs are the correct plate image with this setup:

View attachment 214231View attachment 214232

You're probably just not noticing it because it depends on the motion detection setup, lighting conditions, and the camera's field of view.

At first glance, it seems to work correctly in 90-95% of cases for me as well. However, I mostly encounter issues at night when car headlights are triggering motion before the actual car would be in the field of view of the LPR camera, causing BI to start sending images to CPAI for license plate recognition.
So in dark, the initial images often only capture the headlights, so to mitigate this, I had to increase the number of post-trigger images in the AI configuration. This ensures that enough images are generated and sent to CPAI until the car fully enters the camera's field of view. The required time and number of images depend on the vehicle's speed (how long it takes to arrive after the headlights have already triggered motion detection).

However, the problem with BI is that instead of sending the confirmed image from CPAI, it sends the initial motion-triggering image with &ALERT_JPEG, which only shows the headlights.

You can easily check/ compare with your setup if the AI confirmed image is the same or not then the image what is sent via &ALERT_JPEG. Most probably there will be differences, but in daytime the difference is so small that it's not noticeable and doesn't matter.
 
Please try the new update script and see if that works. I'm trying to make it easier and faster.
I'm on a Windows 10 box, so I tried out update.ps1:
  1. It failed At C:\Docker\ALPR-Database\update.ps1:207 char:71
    • ... $new_compose = $new_compose -replace '"3000:', """$APP_PORT:"
    • ~~~~~~~~~~
    Variable reference is not valid
  2. I commented out line 207 and reran it, but it Failed to stop containers: Container alpr-database-app-1 Stopping
  3. I re-ran it again, and the container was already stopped, but then it failed at Failed to pull latest images: app Pulling
  4. So I ran it again, and it failed at Failed to pull latest images: db Pulling
So I gave up ;), manually pulled docker-compose.yml and schema.sql, and ran docker-compose down, docker-compose pull, and docker-compose up -d, and it's up and running again, and all of my data is still there.
 
You're probably just not noticing it because it depends on the motion detection setup, lighting conditions, and the camera's field of view.

At first glance, it seems to work correctly in 90-95% of cases for me as well. However, I mostly encounter issues at night when car headlights are triggering motion before the actual car would be in the field of view of the LPR camera, causing BI to start sending images to CPAI for license plate recognition.
So in dark, the initial images often only capture the headlights, so to mitigate this, I had to increase the number of post-trigger images in the AI configuration. This ensures that enough images are generated and sent to CPAI until the car fully enters the camera's field of view. The required time and number of images depend on the vehicle's speed (how long it takes to arrive after the headlights have already triggered motion detection).

However, the problem with BI is that instead of sending the confirmed image from CPAI, it sends the initial motion-triggering image with &ALERT_JPEG, which only shows the headlights.

You can easily check/ compare with your setup if the AI confirmed image is the same or not then the image what is sent via &ALERT_JPEG. Most probably there will be differences, but in daytime the difference is so small that it's not noticeable and doesn't matter.

Idk my night images are usually pretty dead center. Not sure if anything else is different?
 
I'm on a Windows 10 box, so I tried out update.ps1:
  1. It failed At C:\Docker\ALPR-Database\update.ps1:207 char:71
    • ... $new_compose = $new_compose -replace '"3000:', """$APP_PORT:"
    • ~~~~~~~~~~
    Variable reference is not valid
  2. I commented out line 207 and reran it, but it Failed to stop containers: Container alpr-database-app-1 Stopping
  3. I re-ran it again, and the container was already stopped, but then it failed at Failed to pull latest images: app Pulling
  4. So I ran it again, and it failed at Failed to pull latest images: db Pulling
So I gave up ;), manually pulled docker-compose.yml and schema.sql, and ran docker-compose down, docker-compose pull, and docker-compose up -d, and it's up and running again, and all of my data is still there.

Oh yes the powersshell script does not work at all right now. I need to debug it on a windows machine and haven't gotten to that yet.
 
  • Haha
Reactions: TheWaterbug
@MikeLud1 Let me know if the memo for multiple plates is working properly for you. It should create a plate read record for each plate in the memo using the same time and image.
Am I doing this right? I have { "memo":"&MEMO", "Image":"&ALERT_JPEG", "camera":"&CAM", "timestamp":"&ALERT_TIME" } in the Post/Payload of my On Alert config, but I only ever get one plate. Here's the full JPG from the alert:

1739299875992.png


and 100% crop:

1739300080587.png


The .dat shows:

1739300256648.png

so the upper vehicle was cropped out.

Do I need to configure something differently?
 
I thought that only controlled when BI gets triggered, and not the image(s) that BI sends to CPAI. Or does it mask the images that get sent to CPAI?
^^ Ah, now I see that somewhere the image does get masked by the motion trigger mask:

1739300211012.png

This motion zone exactly matches the positive mask in my post just above.
1739300279861.png
 
0.17 seems to have a new UI bug. When you enter "Correct Plate Number" by clicking on the image, the cursor keys are capture to scroll the images in the background rather than move the cursor in the foreground edit window.
 
0.17 seems to have a new UI bug. When you enter "Correct Plate Number" by clicking on the image, the cursor keys are capture to scroll the images in the background rather than move the cursor in the foreground edit window.

Are you talking about the left and right arrows? The purpose of that was to be able to click through the images in the viewer, but I did not think about the need to unbind them when the edit dialogs are open. I will fix that.