Show more
Read more
View product
View report
Drag
Enforce BOX is an advanced AI-driven device designed to detect a wide range of traffic infractions. It integrates seamlessly with any traffic monitoring camera, including our cameras. Using advanced algorithms, this intelligent edge device analyzes traffic flow in real time and automatically detects various violations.
Enforce BOX uses advanced edge processing to detect up to 12 different traffic violations with exceptional accuracy, handling a wide range of infractions captured by traffic cameras, including U-turns, improper lane usage, and more.
There’s no need to replace your current cameras— enhance them instead with Enforce BOX. This powerful component seamlessly integrates into your existing traffic camera system, unlocking new potential. When combined with a smart camera featuring ANPR capabilities, it delivers an even greater enhancement, evolving into a comprehensive and scalable enforcement solution tailored for modern traffic monitoring needs.
With its easy setup, user-friendly interface, and robust scalability, Enforce BOX empowers law enforcement agencies to deter violations, enhance traffic safety, and build a smarter traffic management system.
Enforce BOX is a robust mini-PC designed to excel in various weather conditions, making it perfect for placement into small roadside cabinets. It effectively monitors up to four traffic lanes, ensuring comprehensive violation detection.
With internal microSD storage for up to 50,000 events and expandable options, Enforce BOX securely retains images and video streams of detected violations. This powerful solution offers the flexibility and capacity needed for extensive traffic enforcement.
Detection of traffic lights status without expensive sensors built into the roadway or the need to interface with the traffic light controller.
Automatic detection of traffic offenses (Stop, U-turn, Emergency lane, Wrong way, and more) through 14 different free-positioned line and area-based detectors.
Event packages will be complemented with license plate, make and model, and other data coming from the connected camera.
You can upgrade your existing IP camera system with traffic law violation detection.
Easy installation and setup thanks to an intuitive GUI.
A well-documented API helps you integrate the product into your system. You can also use the GDS by Adaptive Recognition as a middleware solution.
Yes. By connecting VIDAR, VIDAR Smart or VIDAR Speed cameras to Enforce BOX, you can add detailed information to each traffic event, including license plates, vehicle make, model, color, and category.
Yes, Enforce BOX can measure vehicle speed when VIDAR Speed cameras are added to the configuration, providing accurate speed detection for enhanced traffic enforcement.
Enforce BOX supports the recognition of traffic violations across up to 4 traffic lanes simultaneously, ensuring comprehensive coverage and enhanced traffic law enforcement.
Enforce BOX can support 1 overview camera and up to 4 ANPR (Automatic Number Plate Recognition) cameras, allowing for comprehensive monitoring and enforcement capabilities.
Yes, Enforce BOX is compatible with third-party IP cameras, allowing you to upgrade your existing camera system with advanced traffic law violation detection capabilities.
No, an external trigger is not necessary. Enforce BOX features an excellent optical trigger, eliminating the need for additional external triggers.
Enforce BOX’s versatility makes it ideal for a wide range of traffic monitoring applications. Here are just a few of the most common uses:
Enforce Box automatically detects different traffic violations using your existing cameras.
Using our smart cameras, you can add vehicle license plate, nationality, make and model, and speed data.
Enforce BOX can automatically detect a wide range of traffic violations simultaneously on even 4 traffic lanes.
#include "gxsdldr.c" #include "cmanpr.h" // If an error occurred it displays the error and terminates the program void term_if_err(int st) { int err_code; wchar_t err_str[256]; if(st) return; // No error occurred // Displays error code and description err_str[(sizeof(err_str)/sizeof(wchar_t))-1] = 0; gx_geterror(&err_code, err_str, (sizeof(err_str)/sizeof(wchar_t))-1); fprintf(stderr, "GX error (%x) occurred: %ls\n", err_code, err_str); // Terminates the program exit(1); } int main(void) { struct gxHANDLE anprhandle, imagehandle; struct gxIMAGE *image; struct cmNP *anprresult; int st; // Opens the ANPR module with EUR region st = gx_openmodule(&anprhandle, L"cmanpr", L"eur"); term_if_err(st); // Opens the image module, allocates the image structure and load the image st = gx_openmodule(&imagehandle, L"gximage", L"default"); term_if_err(st); st = gx_allocimage(imagehandle, &image); term_if_err(st); st = gx_loadimage(imagehandle, image, L"image.jpg", GX_UNDEF); term_if_err(st); // Finds the first license plate anprresult = 0; st = cm_findfirst(anprhandle, image, &anprresult); term_if_err(st); if(anprresult) { char countryCode[256]=""; // Get short country code st = cm_getcountrycode(anprhandle,anprresult->type,(int)CCT_COUNTRY_SHORT,countryCode,sizeof(countryCode)); term_if_err(st); // Displays the result, country code and type printf("Plate text: %s\n", anprresult->text); printf("Country code: %s\n", countryCode[0] ? countryCode : "No plate type"); printf("Type: %i\n", anprresult->type); // Frees up the result st = gx_globalfree(anprresult); term_if_err(st); } else { printf("No license plate found\n"); } // Frees up the resources st = gx_unrefimage(imagehandle, image); term_if_err(st); st = gx_unrefhandle(&imagehandle); term_if_err(st); st = gx_unrefhandle(&anprhandle); term_if_err(st); return 0; }
#include "gxsdldr.cpp" #include "cmanpr.h" int main() { try { // Creates the ANPR object with EUR region cm::cmAnpr anpr("eur"); // Creates the image object and load the image gxImage image; image.Load("image.jpg"); // Finds the first license plate if(anpr.FindFirst(image)) { // Get short country code gxOutStr countryCode = anpr.GetCountryCode(anpr.GetType(),(int)cm::CCT_COUNTRY_SHORT); std::wstring wCountryCode = countryCode.empty() ? L"No plate type" : countryCode; // Displays the result, country code and type std::wcout << L"Plate text: " << anpr.GetText() << std::endl; std::wcout << L"Country code: " << wCountryCode << std::endl; std::wcout << L"Type: " << anpr.GetType() << std::endl; } else { std::wcout << L"No license plate found" << std::endl; } } catch(gxError &e) { std::wcerr << L"GX error (" << e.GetErrorCode() << ") occurred: " << e.GetErrorString() << std::endl; return 1; } return 0; }
This type of license is recommended for access control projects with less than 300 parking places.
Via this option, you can adapt your licensing to the processing capacity of your hardware (see table below).
Our sales & product experts are here to help you. Contact us or find an affiliate near your location.
For those who chase breakthroughs.
Explore products that push the
boundaries of what you can achieve.
Every industry faces unique obstacles. Discover how Adaptive Recognition can be your partner in tackling them head-on and emerging stronger.
Go beyond the claims, see the proof.
Explore our reference projects and
case studies for tangible evidence of
how Adaptive Recognition delivers
exceptional outcomes