Show more
Read more
View product
Systemy kontroli dostępu
Drag


Carmen® FreeFlow to nowoczesny silnik rozpoznawania tablic rejestracyjnych oraz zestaw narzędzi do tworzenia oprogramowania (SDK). Umożliwia programistom integrację światowej klasy automatycznego rozpoznawania tablic rejestracyjnych (ANPR/LPR) w ich aplikacjach. Wiodący w branży silnik Carmen® zapewnia niezrównaną dokładność, osiągając ponad 95% rozpoznawalności nawet w przypadku niskiej jakości obrazów.
Jego elastyczne licencjonowanie dostosowuje się do każdego rozmiaru projektu, a wsparcie dla wielowątkowości zapewnia płynne działanie. To wszechstronne rozwiązanie rozpoznaje tablice z ponad 160 krajów, co czyni je idealnym do zastosowań globalnych.

Carmen® FreeFlow to zaufany wybór dla projektów wymagających niezrównanej precyzji. Posiadając rzeczywistą dokładność na poziomie od 95% do 99% dla różnych typów tablic rejestracyjnych, Carmen® FreeFlow zapewnia niezawodne rozpoznawanie nawet w trudnych warunkach.
Dzięki wsparciu dla ponad 38,000 typów tablic z ponad 160 krajów i różnych alfabetów—w tym łacińskiego, arabskiego, cyrylicy, tajskiego i innych—Carmen® FreeFlow oferuje niezrównany zasięg globalny. Jest to wiodący wybór dla wysokiej jakości ANPR/LPR, obsługujący regiony od Brazylii po Japonię, Amerykę Północną po Europę oraz Bliski Wschód po Azję-Pacyfik. Zintegruj go raz i odblokuj moc wysokowydajnego ANPR – wszędzie na świecie.

Carmen® FreeFlow nie jest rozwiązaniem uniwersalnym; to wszechstronny silnik ANPR zaprojektowany, aby dostosować się do Twoich specyficznych potrzeb. Umożliwia bezproblemową integrację wysokiej dokładności rozpoznawania tablic rejestracyjnych, a także opcjonalne rozpoznawanie marki i modelu (MMR), towarów niebezpiecznych (HazMat) oraz rozpoznawanie kodu IMO. Ta elastyczność wspiera szeroki zakres zastosowań, w tym monitorowanie ruchu, systemy bezpieczeństwa, pobieranie opłat na autostradach oraz kontrolę dostępu.
Zaprojektowany z myślą o skalowalności, Carmen® FreeFlow oferuje elastyczne opcje licencjonowania, aby dopasować się do wielkości i potrzeb przetwarzania Twojego projektu. Jego wyjątkowa dokładność, nawet w przypadku mniej idealnych obrazów, skutkuje niskim wskaźnikiem fałszywych pozytywów; dlatego nadaje się do wtórnej weryfikacji w egzekwowaniu opłat i prędkości. Silnik działa bezproblemowo zarówno na platformach Windows, jak i Linux.

Używane w ponad 100 000 systemów na świecie

Rozpoznawanie tablic rejestracyjnych pojazdów, marki, modelu i koloru za pomocą jednej integracji.

Cztery aktualizacje wydawane rocznie.

małych przez średnie do dużych i złożonych systemów.

SDK obsługuje zarówno dane wejściowe.

systemów operacyjnych działa na Windows i Linux.
Carmen® FreeFlow obsługuje rozpoznawanie tablic rejestracyjnych w ponad 160 krajach, obejmując ponad 38 000 typów tablic. Prosimy o kontakt z naszym zespołem w celu uzyskania wsparcia dla konkretnego kraju.
Tak, Carmen® FreeFlow może przetwarzać zarówno obrazy statyczne, jak i transmisje wideo.
Tak, możesz wypróbować nasze oprogramowanie korzystając z naszego modelu licencjonowania opartego na subskrypcji bez opłat.
Nasze SDK jest dostępne zarówno jako licencja dożywotnia, jak i jako licencja oparta na subskrypcji.
Tak, nasze SDK może być używane w modelu licencjonowania opartym na subskrypcji, który jest dostępny bez klucza sprzętowego.
Wydajemy aktualizacje silnika cztery razy w roku.
Tak, nasze SDK Carmen® wspiera architektury x86-64, ARM32 i ARM64.
Wszechstronność Carmen FreeFlow sprawia, że jest idealna do szerokiego zakresu zastosowań w monitorowaniu ruchu. Oto tylko kilka z najczęstszych zastosowań:
#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
typ licencji jest zalecany dla projektów kontroli dostępu z mniej niż 300 miejscami parkingowymi
Dzięki tej opcji możesz dostosować swoje licencjonowanie do wydajności przetwarzania swojego sprzętu (zobacz tabelę poniżej).
Zaprojektowane dla skalowalnych projektów rozpoznawania wideo, ta licencja jest idealna dla aplikacji wymagających licencjonowania na podstawie strumienia do przetwarzania wideo.
1 - 5
2 - 10
4 - 20
3 - 7
6 - 14
12 - 28
5 - 10
10 - 20
20 - 40
11,520
nieograniczone (ale może zależeć od prędkości CPU, ustawień, typu silnika)
4 równoległe wątki
1 / 2 / 4 wątki równoległe
300
nieograniczone
30
-
Nasi eksperci ds. sprzedaży i produktów są tutaj, aby Ci pomóc. Skontaktuj się z nami lub znajdź partnera w swojej okolicy.
Dla tych, którzy dążą do przełomów. Odkryj produkty, które przesuwają granice tego, co można osiągnąć.
Każda branża ma swoje unikalne wyzwania. Zobacz, jak Adaptive Recognition może stać się Twoim partnerem w ich pokonywaniu i wspólnym rozwoju.
Nie wierz tylko na słowo – zobacz dowody. Poznaj nasze projekty referencyjne i studia przypadków, które pokazują, jak Adaptive Recognition dostarcza wyjątkowe rezultaty.