Our software performance depends on several factors

1. Stream resolution

  • VGA = 640x480 pixels
  • 720p = 1280x960 pixels (1 MP)
  • 1080p = 1920x1080 pixels (2MP)
  • 4k = 4096x2160 or 3840x2160 pixels

2. Stream frequency

  • Measured in frames per second (FPS) 

3. CPU processor power

4. GPU card power

5. Frequency of cars/plates in the stream

6. Operating system

  • Ubuntu 18.04/16.04
  • Windows 10

OpenALPR maintains a list of benchmarked processors (both cloud and physical) using four common video resolutions. Each release version has its own tab in the spreadsheet. If your CPU or GPU model is on the list, write down the "System Total FPS" numbers for the resolution(s) you are interested in. If you cannot find your CPU/GPU model in our list, the source code and instructions for running the speed benchmarks are available on Github

Please note that all benchmarks in our spreadsheet were conducted with Ubuntu as the operating system. If you plan to install on Windows, you should decrease the FPS values by 16-22%.

To estimate the number of cameras for a given total FPS value, use the following per-camera rules of thumb

  • Low Speed (under 25 mph): 5-10 fps
  • Medium Speed (25-45 mph): 10-15 fps
  • High Speed (over 45 mph): 15-30 fps

EXAMPLES

How many parking lot cameras can an Intel Core i7-8750H @ 2.2 GHz processor handle at 1080p?

  1. Lookup the system total FPS value in our benchmark spreadsheet --> 53.3 fps
  2. Parking lots are low speed --> use 5-10 fps per camera
  3. 53.3/10 = 5.3 cameras (low estimate, Ubuntu)
  4. 53.3/5 = 10.7 cameras (high estimate, Ubuntu)
  5. For Windows, we will conservatively decrease the spreadsheet value by 22% --> 41.7 fps
  6. 41.7/10 = 4.2 cameras (low estimate, Windows)
  7. 41.7/5 = 8.3 cameras (high estimate, Windows)

What CPU processor is required for two 4k cameras monitoring a major city road?

  1. Assume the speed limit is 35-40 mph for a major road --> use 10-15 fps per camera
  2. Two cameras = system total of 20-30 fps
  3. Scan the 4k column of our benchmark spreadsheet for values within this range
  4. The closest options are an Intel Core i7-7700K @ 4.2 GHz (27.4 fps) and an AWS m5.2xlarge instance running 4 cores of an Intel Xeon Platinum 8175M @ 2.5 GHz (26.3 fps)
  5. For Windows, we will conservatively decrease the spreadsheet value by 22%
  6. After reduction, the same processors are still sufficient, but our fps values have dropped (Intel Core i7-7700K @ 4.2 GHz = 21.4 fps and AWS m5.2xlarge = 20.5 fps)

I need to fit 4 cameras of high speed traffic onto an AWS m5.4xlarge instance, what is the highest resolution this processor can support?

  1. Lookup the system total FPS values for the processor --> 144.2 fps (VGA), 126.3 fps (720p), 106.9 fps (1080p), and 51.8 fps (4k)
  2. High speed traffic --> use 15-30 fps per camera
  3. For 5 cameras, the system total must be 60-120 fps
  4. With 30 fps on each camera, the maximum resolution is 720p (Ubuntu)
  5. With 15 fps on each camera, the maximum resolution is 1080p (Ubuntu)
  6. For Windows, we will conservatively decrease the spreadsheet values by 22% --> 112.5 fps (VGA), 98.5 fps (720p), 83.4 fps (1080p), and 40.4 fps (4k)
  7. With 30 fps on each camera, the maximum resolution is less than VGA (Windows)
  8. With 15 fps on each camera, the maximum resolution is 1080p (Windows)