OpenALPR Tool - Save and Query CSV Exports

I apologize if this is answered somewhere in this thread, but I'm wondering if this database and viewer can be used locally, independent of an OpenALPR / Rekor Scout subscription.

I was hoping there was someway to feed a BI plate recognition into this utility directly, check for repeats, etc. and then send alerts only if the plate is new, or if it is in a watch list, etc. without that recognition having to be done by OpenALPR.

In my case, I'm using PlateRecognizer since I see fewer than 2500 plates a month. Others are starting to use @MikeLud1 's ALPR module. In both cases, it would be nice to be able to decouple the recognition so that you could then feed the plate into this utility for storage, alerting, historical data, editing, notes, etc.

Anyone know if this is presently possible? Or if not, what might be involved in getting this capability in place? I just think it could be mighty helpful.
 
I apologize if this is answered somewhere in this thread, but I'm wondering if this database and viewer can be used locally, independent of an OpenALPR / Rekor Scout subscription.

I was hoping there was someway to feed a BI plate recognition into this utility directly, check for repeats, etc. and then send alerts only if the plate is new, or if it is in a watch list, etc. without that recognition having to be done by OpenALPR.

In my case, I'm using PlateRecognizer since I see fewer than 2500 plates a month. Others are starting to use @MikeLud1 's ALPR module. In both cases, it would be nice to be able to decouple the recognition so that you could then feed the plate into this utility for storage, alerting, historical data, editing, notes, etc.

Anyone know if this is presently possible? Or if not, what might be involved in getting this capability in place? I just think it could be mighty helpful.

No it does not. This was designed around scraping the OpenALPR data.

It would take the original creator to modify the code to be able to scrape the data from BI (which he really doesn't have an incentive to do unless he decides to use something different) or it would take someone with an understanding of code to be able to rewrite the relevant sections in order to be able to scrape that data from the BI log files.

Those of us that had a role in the development of this (my role was very little and I don't take credit LOL as my role simply involved finding a new place to get VIN info long after the code was written) have talked about it, but the success rate at the moment of the BI ALPR and problems folks are having has not put a priority on moving away from what works.

If you look in the CodeProject ALPR thread there are a few people starting to develop similar things for that application.
 
Last edited:
  • Like
Reactions: VideoDad
What I like about the Rekor ALPR is that it works really well capturing plates and identifying different state license plates. The PlateRecognizer misses almost half of the plates on my street, and I understand that to improve the capture rate it would require some adjustments on the BI camera's settings. The number of plates which ALPR captures each month is beyond the free tier of the PlateRecognizer, and the first price point would be $50 a month.
 
What I like about the Rekor ALPR is that it works really well capturing plates and identifying different state license plates. The PlateRecognizer misses almost half of the plates on my street, and I understand that to improve the capture rate it would require some adjustments on the BI camera's settings. The number of plates which ALPR captures each month is beyond the free tier of the PlateRecognizer, and the first price point would be $50 a month.
I'm not discounting the capabilities of Rekor and the additional information it provides. If I had more and diverse traffic, I might opt for it.

I was just looking to decouple the recognition step from the insertion in a local database and whatever processing before alerting, thinking it could be a general solution that way.

1. Recognition via whatever automated method desired.
2. Look up in the database for previous sightings, whitelisted or blacklisted plates, near misses (eg. misrecognition correction), etc.
3. For new plates, insert to the database, perhaps supplemented with an online plate/vin lookup.
4. Decide if an alert should be sent.
5. Allow database viewing, filtering, editing, adding notes, etc.
 
Considering the PlateRecognizer (PR), as I understand, it only inserts an entry into the BI log file. It would be an easy task to open the log file and parse for these plates, and enter them into the database. Or if the need was just to collect unique plates then to look up for the plate and insert if it is new. Part of the usefulness of the existing tool is to quantify plate hits to see trends.

Even so, with ALPR there's a photo which can easily be acquired, copied and referenced within the local database. With PR, I don't see an easy way to acquire an image. Is there?
 
Considering the PlateRecognizer (PR), as I understand, it only inserts an entry into the BI log file. It would be an easy task to open the log file and parse for these plates, and enter them into the database. Or if the need was just to collect unique plates then to look up for the plate and insert if it is new. Part of the usefulness of the existing tool is to quantify plate hits to see trends.

Even so, with ALPR there's a photo which can easily be acquired, copied and referenced within the local database. With PR, I don't see an easy way to acquire an image. Is there?
Yes there are alert images. The idea was to make a call to save that image, the plate number, etc. and then use the database for quantifying plate hits, check trends, etc.

It seems like they are building something like this for @MikeLud1 's ALPR module using Node Red and MQTT calls. I'm looking at that but maybe there's something in this implementation that could be useful?
 
Question can I input a license plate number that has never been read by my system to a status group so I can be notified when it hits?
No Currently, There is no way that I can think of to do it through the GUI. However, you can write that number on a piece of paper with a Sharpie and flash it in front of the LPR camera. That will likely do the trick.
 
Doesn't the viewer allow for editing of a plate? Maybe pick a commonly-seen plate and edit just the one occurrence. Once the target plate is in the database then can it be tagged for special alerts?
 
Doesn't the viewer allow for editing of a plate? Maybe pick a commonly-seen plate and edit just the one occurrence. Once the target plate is in the database then can it be tagged for special alerts?
Nice, Yes this can work. I have plenty of Company name from vehicles, which gets registered as a plate every now and then, can use one of those and edit it to the plate number as needed. Thank you so much Dlong for that idea !!
 
Anyone know the code location for the daily license plate report and the license plate alert email. I would like to change the format up
I asked a similar question July last year but got no reply I don't think anybody knows. I'm not even sure that Gymratz is still supporting this program
 
Your best bet is if you know the program it was written in, go in and find it or find someone that does. I don't think Gymratz visits here much anymore and the program simply works for his needs.
 
Anyone know the code location for the daily license plate report and the license plate alert email. I would like to change the format up
The code for the daily licence plate report

line 1351 to 1380



private void EmailDailyReport_CollectInfo(string ReportBy)

{

DataTable PlateList;

String str_PlateState = dgv_Plates.SelectedRows[0].Cells["Region"].Value.ToString();

String str_DistinctDays = dgv_Plates.SelectedRows[0].Cells["Distinct Days"].Value.ToString();



PlateList = new DataTable();

PlateList.Columns.Add("LocalTime");

PlateList.Columns.Add("Plate");

PlateList.Columns.Add("State");

PlateList.Columns.Add("DistinctDays");

PlateList.Columns.Add("Year");

PlateList.Columns.Add("Make");

PlateList.Columns.Add("Model");

PlateList.Columns.Add("VIN");



for (int i = 0; i < dgv_Plates.Rows.Count; i++)

{

DataRow dataRow = PlateList.NewRow();

dataRow["LocalTime"] = dgv_Plates.Rows.Cells["Local Time"].Value.ToString();

dataRow["Plate"] = dgv_Plates.Rows.Cells["Plate"].Value.ToString();

dataRow["State"] = dgv_Plates.Rows.Cells["Region"].Value.ToString();

dataRow["DistinctDays"] = dgv_Plates.Rows.Cells["Distinct Days"].Value.ToString();

dataRow["Year"] = dgv_Plates.Rows.Cells["Yr"].Value.ToString();

dataRow["Make"] = dgv_Plates.Rows.Cells["Car Make"].Value.ToString();

dataRow["Model"] = dgv_Plates.Rows.Cells["Car Model"].Value.ToString();

dataRow["VIN"] = dgv_Plates.Rows.Cells["VIN"].Value.ToString();

PlateList.Rows.Add(dataRow);

}

If the state column is not working in the email.

line 1373 the Cells["Region"] needs to be changed from Region to Status
 
  • Like
Reactions: tech101 and DLONG2
My OpenLPR downloader abruptly stopped downloading on the early morning of May 29, 2024. I am connected to Rekor thru the downloader app but the downloads have stopped, with Imported and Skipped both showing 0 since that date. I've been connected consistently to Rikor thru the downloader app for over 2 years and I have over 200K captures. I'm wondering what changed at Rikor that needs to be reconfigured in my SQL database. No computer changes in over a year.

Anyone else having this problem???

OpenALPR has worked well for a long time and I would sure appreciate a solution.
 

Attachments

  • LPR Downloader 6-6-2024.png
    LPR Downloader 6-6-2024.png
    34.3 KB · Views: 4
Yes, it looks like Rekor is no longer having downloads of CSV files. If you log into your dashboard, and click on the "View Details" link on the 'Plates this week' category, and at the bottom-left of the page there's a link for downloading CSV files. When you click on it, there's only JSON code rather than CSV files.

There's been some discussion on the issue, and I am unsure when a fix might be forthcoming. Getting a ticket into Rekor I have seen takes weeks for the Scout level of subscriptions.

I found this online conversion tool, where you would copy the JSON (right-click into the browser and choose 'Select all' then right-click and select 'Copy'). Then go here (JSON To CSV Converter (convertcsv.com) and paste it into the input box. It will convert the JSON to CSV which you can then download. I would suggest at least doing this process so that you have local copies of the CSV until a solution is found.
 
They changed from multi line/row csv formatted data to a single line of JSON formatted data and changed the order of the data in the output.

I sent them an email last week on the 29th about this.
Here is their response:
Thank you for reporting the issue you are experiencing with data not exporting as CSV format, we are currently investigating this and will keep you updated on the progress.

Thank you.

I have not heard anything from them since that.

I enlisted the help of ChatGPT to create a PHP script that I could pipe the JSON formatted data through and spit out csv formatted data in the original column order. This way I didn't have to redo my main download script.
 
Last edited: