Show more
Read more
View product
View report
Drag


A Carmen® FreeFlow egy élenjáró rendszámfelismerő motor és szoftverfejlesztő készlet (SDK). Lehetővé teszi a fejlesztők számára, hogy világszínvonalú automatikus rendszámfelismerő (ANPR/LPR) és MMR képességeket integráljanak alkalmazásaikba. Az iparágvezető Carmen® motor páratlan, 95% feletti pontosságot nyújt még alacsony minőségű képek esetén is.
Ez a sokoldalú megoldás több mint 160 ország rendszámait felismeri, így ideális globális alkalmazásokhoz.

A Carmen® FreeFlow a megbízható választás a páratlan precizitást igénylő projektekhez. A különböző rendszámtípusoknál mért 95% és 99% közötti valós pontosságával a Carmen® FreeFlow megbízható felismerést garantál még kihívást jelentő körülmények között is.
Több mint 160 ország 60 000 rendszámtípusának támogatásával és különböző ábécékkel—beleértve a latin, arab, cirill, thai és egyéb karaktereket—a Carmen® FreeFlow páratlan globális lefedettséget kínál. Ez az első számú választás a kiváló minőségű ANPR/LPR-hez világszerte. Integrálja egyszer, és használja a nagy teljesítményű rendszámfelismerést bárhol a világon.

A Carmen® FreeFlow nem egy sablonmegoldás; ez egy sokoldalú ANPR motor, amelyet úgy terveztek, hogy alkalmazkodjon az Ön egyedi igényeihez. Lehetővé teszi a nagy pontosságú rendszámfelismerés zökkenőmentes integrációját, valamint az opcionális márka- és modellfelismerést (MMR), a veszélyes áruk (HazMat) és az IMO-kódok felismerését. Ez a rugalmasság az alkalmazások széles körét támogatja, beleértve a forgalomfigyelést, a biztonsági rendszereket, az autópályadíjakat és a beléptetést.
A skálázhatóságra tervezett Carmen® FreeFlow rugalmas licencelési opciókat kínál, amelyek illeszkednek projektje méretéhez és feldolgozási igényeihez. Kivételes pontossága még a kevésbé ideális képeken is alacsony hibaarányt eredményez, így tökéletesen alkalmas útdíjszedésre és sebességmérésre. A motor zökkenőmentesen működik Windows és Linux platformokon egyaránt.

Világszerte több mint 100 000 rendszerben működik.

Rendszámok, valamint járműjellemzők (márka, modell, szín) felismerése globális lefedettséggel, egyetlen integrációval.

Évente több frissítéssel, folyamatos fejlesztéssel.

Kisebb rendszerektől a nagy, összetett megoldásokig.

Az SDK különböző kép- és videóforrások feldolgozását támogatja.

Windows és Linux rendszereken futtatható.
A Carmen® FreeFlow több mint 160 ország rendszámfelismerését támogatja, több mint 38 000 rendszámtípust lefedve. Kérjük, vegye fel a kapcsolatot csapatunkkal az egyes országok támogatásával kapcsolatban.
Igen, a Carmen® FreeFlow képes állóképek és videófolyamok feldolgozására egyaránt.
Igen, a szoftver előfizetéses licencelési modellben kipróbálható.
Igen, az SDK elérhető élettartamra szóló vagy előfizetéses licencelési konstrukcióban.
Igen, az előfizetéses licencelési modell hardverkulcs használata nélkül is elérhető.
A szoftverhez évente több frissítés érkezik.
Igen, a Carmen® FreeFlow támogatja az x86-64, ARM32 és ARM64 architektúrákat.
A Carmen® FreeFlow sokoldalú megoldás, amely különböző forgalomfigyelési és közlekedési alkalmazásokban használható. Néhány tipikus felhasználási terület
#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; }
using System; using gx; using cm; namespace carmen { class MainClass { public static void Main(string[] args) { try { // Creates the ANPR object with EUR region cmAnpr anpr = new cmAnpr("eur"); // Creates the image object and load the image gxImage image = new gxImage(); image.Load("image.jpg"); // Finds the first license plate if (anpr.FindFirst(image)) { // Get short country code String countryCode = anpr.GetCountryCode(anpr.GetType(), (int)CC_TYPE.CCT_COUNTRY_SHORT); countryCode = countryCode.Length > 0 ? countryCode : "No plate type"; //Displays the result, country code and type Console.WriteLine("Plate text: {0}", anpr.GetText()); Console.WriteLine("Country code: {0}", countryCode); Console.WriteLine("Type: {0}", anpr.GetType()); } else { Console.WriteLine("No license plate found"); } } catch(gxException) { Console.Error.WriteLine("GX error (" + gxSystem.GetErrorCode() + ") occured: " + gxSystem.GetErrorString()); Environment.Exit(1); } } } }
import com.adaptiverecognition.gx.*; import com.adaptiverecognition.cm.*; public class cmanpr { static { try { System.loadLibrary("jgx"); System.loadLibrary("jcmanpr"); } catch(UnsatisfiedLinkError e) { System.err.println("Native code library failed to load." + e); System.exit(1); } } public static void main(String argv[]) { try { // Creates the ANPR object with EUR region cmAnpr anpr = new cmAnpr("eur"); // Creates the image object and load the image gxImage image = new gxImage(); image.Load("image.jpg"); // Finds the first license plate if(anpr.FindFirst(image)) { // Get short country code String countryCode = anpr.GetCountryCode(anpr.GetType(),jcmanprConstants.CCT_COUNTRY_SHORT); countryCode = countryCode.length()>0 ? countryCode : "No plate type"; // Displays the result, country code and type System.out.println("Plate text: " + anpr.GetText()); System.out.println("Country code: " + countryCode); System.out.println("Type: " + anpr.GetType()); } else { System.out.println("No license plate found"); } // Frees up resources anpr.delete(); image.delete(); } catch(RuntimeException e) { System.err.println("GX error (" + String.format("0x%08x",gxSystem.GetErrorCode()) + ") occured: " + gxSystem.GetErrorString()); System.exit(1); } } }
Imports System Imports gx Imports cm Module Main Sub Main() Try ' Creates the ANPR object with EUR region Dim anpr As cmAnpr = New cmAnpr("eur") ' Creates the image object and load the image Dim image As gxImage = New gxImage("default") image.Load("image.jpg") ' Finds the first license plate If anpr.FindFirst(image) Then ' Get short country code Dim countryCode As String countryCode = anpr.GetCountryCode(anpr.GetType(), CC_TYPE.CCT_COUNTRY_SHORT) If countryCode.Length = 0 Then countryCode = "No plate type" ' Displays the result, country code and type Console.WriteLine("Plate text: {0}", anpr.GetText()) Console.WriteLine("Country code: {0}", countryCode) Console.WriteLine("Type: {0}", anpr.GetType()) Else Console.WriteLine("No license plate found") End If Catch ex As gxException Console.Error.WriteLine("GX error (" + gxSystem.GetErrorCode().ToString() + ") occured: " + gxSystem.GetErrorString()) Environment.Exit(1) End Try End Sub End Module
Ez a licenctípus olyan beléptetési vagy parkolási rendszerekhez ajánlott, ahol a kapacitás jellemzően nem haladja meg a 300 parkolóhelyet.
A licencelés a rendelkezésre álló feldolgozási kapacitáshoz igazítható, CPU-magok alapján.
Skálázható, videóalapú felismerési projektekhez. Ideális olyan alkalmazásokhoz, ahol a feldolgozás streamenként történik.
1 - 5
2 - 10
4 - 20
3 - 7
6 - 14
12 - 28
5 - 10
10 - 20
20 - 40
11,520
korlátlan (a CPU teljesítményétől, a beállításoktól és a motor típusától függően)
4 párhuzamos szál
1 / 2 / 4 párhuzamos szál
300
korlátlan
30
-
Szakértőink segítenek a megfelelő megoldás kiválasztásában. Vegye fel velünk a kapcsolatot, vagy keresse meg az Önhöz legközelebbi partnerünket.
Azoknak, akik folyamatosan új megoldásokat keresnek.
Fedezze fel termékeinket, amelyekkel hatékonyabbá teheti rendszereit.
Minden iparág saját kihívásokkal szembesül. Ismerje meg, hogyan támogatjuk ezek kezelését és megoldását.
Ismerje meg referencia-projektjeinket és esettanulmányainkat, és nézze meg, hogyan teljesítenek megoldásaink valós környezetben.