OpenALPR Running On Docker with Unraid

My DIY Security Mailbox has caught some interesting footage since its installation.

Deer running down the road:

Santa’s list checking staff has been modified due to the coronavirus.

Neighbors reporting suspicious vehicles stealing mail from mailboxes:

Men walking down the street while dawning ski masks:

Newspaper delivery driving through yards to turn around:

Coyotes running through our backyard into the road:

This project has been well worth since it has been installed. I’ve been successfully capturing license plates as they drive by, but I wanted to try some Automatic License Plate Recognition (ALPR) next. I found OpenALPR which seemed to have pretty good accuracy from the demos I watched.

My main media server currently runs on Unraid serving up plex, mail servers, etc via docker containers. The OpenALPR “agent”, which streams video from the camera and parses it for license plates, has a docker image available. I am currently running on a trial account, which gives access to the commercial features allowing local storage of plates instead of uploading them to their cloud application. I wasn’t able to get the OpenALPR web server running on Docker due to the multitude of dependencies that need to run with it. I installed an Ubuntu VM on the box then installed the web server inside the VM. The modern UI exposes the “agent” which allows for camera configuration for streaming:

The OpenALPR home screen (plate numbers redacted)

Included with the commercial license is vehicle color and make/model descriptions. The agent can parse the details about a car just by analyzing the video stream!

A PDF generated by the web server with details about the vehicle, including make, model, and body. All done by analyzing the vehicle in the stream, no API call needed.

It does get confused when vehicles are not a common type, have trailers, or attachments on them:

I can see how a computer would think this is a chopper..

The camera configuration has inclusion and exclusion zones, which limit the area the agent will scan for plates, lowering CPU usage. While the commercial license has motion sensing optimizations, the “homeowner” license constantly checks for plates whether there is motion in the video feed or not, creating higher CPU usage. I found that at night when the entire screen is black the commercial license had near 0% CPU usage, while the homeowner license was a steady 15-20% throughout the entire day.

Giving the agent the streaming URL for the camera is all it needs to start processing
Exclusions/Inclusions help limit the area scanned for plates

From there it was pretty much hands off. The OpenALPR algorithm, coupled with my camera placement right next to the road the angle, allows for good plate reads even at night.

The web server comes with useful features like reporting and alerting based on license plates. While the reports aren’t too useful for me, I do have several alerts for some of my coworkers who like to drive by my house and see if the cameras are working correctly.

The main downside to OpenALPR is the price. While the homeowner license is only $5/month per camera, In order to get the CPU optimizations, plate reading optimizations, the agent’s ability to send it’s information to a private web server, and other various features, the business license is required, $45/month per camera.

I’m looking into getting the license plate information overlaid on the video while it’s being recorded to Blue Iris.

Installing Summer Garage AC – MRCOOL Split System

Working in the garage had sweat dripping off of my face after a few minutes of starting a project. The heat had to go! I learned about ductless mini split systems and how easy they were to install without hiring anyone. I found a few kits on amazon that were sold specifically as DIY versions, but costed a bit more than the non-DIY versions. I found a scratch/dent MRCOOL Advantage 24k BTU unit on ebay. The previous owner left behind a spare concrete pad outside the garage utility door which I commandeered for my own purposes:

Installing ductless systems like this one was pretty simple. Drill a hole in the wall where the A/C lines will go, mount the indoor unit to the wall, then run the A/C lines to the outside unit!

The indoor unit, attached on its mount, with coolant lines running through the wall

I ran new electrical to the unit. I only needed 120V for this heat pump, but I ran enough to run a 240V unit just in case the need arises in the future. I quickly learned how hard it is to run THWN wire through conduit, especially when I didn’t use 90 degree sweeping connectors.

Electrical box and lines roughed in. I learned after installation I could have used a sweeping 90 degree bend.Make sure you have your favorite beverage available while working!

The DIY versions of the MRCOOL units come with a copper lineset that is already evacuated, which saves the installer from needing an vacuum pump to do it during installation. I decided to save some money and purchase a vacuum pump kit and do it myself. I watched a handful of youtube videos and did a few trial runs. The copper lineset ends had to be flared so they could mate correctly on the heat pump. I tried the flaring tool at my local hardware store but couldn’t get it to work correctly. Probably a little operator error, probably a little $5 Chinese tool couldn’t cut it. I purchased a better flaring tool and practiced a few dozen times to get comfortable. From what I read online the leaks are most likely to happen at the connectors, so I tried to make sure I got them correct the first time.

Pulling a vacuum and waiting a few hours to see if the vacuum holds.

Admittedly using a gauge like this isn’t ideal to test for a vacuum, but I let it sit for several hours to make sure it wasn’t leaking. I also didn’t have a tank of nitrogen on hand to purge the lines before either.

After the vacuum held for several hours I let coolant into the system by unscrewing the stopper on the outside of the heat pump. Pressure built inside the lines, which I also monitored for a few hours to make sure they weren’t dropping. I put soapy water on all of the connectors to check for bubbles but didn’t find any!

Coolant released into the lineset, time to test!

Now what I had been waiting for since I moved into this house:

54°F air blowing down on me!

One minor downside of this system, the thermostat that controls the system is not wired, it uses IR to set the temperature, turn on/off. Very annoying!

MRCOOL thermostat above the gas fired garage heater thermostat

Every time a change to the system needs to be made the thermostat has to be removed from the wall and pointed at the unit first. This damn thing has wifi, but not a wireless controller??

Back outside I finished up the lineset by covering it with a hide-a-line kit and getting the electrical pvc conduit attached to the siding. I might have taken the amount of drop the condensate drainage pipe needed, but it certainly won’t get clogged up with that amount of fall!

To Infinity, Recursively!