It is very janky. The speed camera I have an old Core i5 that is running YOLOv8 on the integrated GPU and it can just /barely/ handle 30FPS of inference. The code is all Python and vibe coded (for science). The speed camera needs a perpendicular view to work best for how I set it up (measuring two reference points with a known distance). So the ALPR camera is separate and I basically just buffer video and built this ultra janky scheme where I call an HTTP endpoint and it saves the last few seconds and then I batch process to associate the plate later in the web app. It is all CSV and plain files; this is a perfect append only DB scenario. Eventually it will need the wonders of the big data format SQLite probably, but I am sure Claude will know what to do ;) The long term solution would be to have a proper radar circuit and two cameras facing both road directions to capture the rear plate as people often don't use front plates here even though they are required to by law.
(the point, though, is you don't need a lot of GPU power to do say YOLOv8 inference on the pre-trained models) and OpenCV makes this all pretty darn easy.