Show more
Read more
View product
View report
Drag


Carmen® FreeFlow هو محرك متطور للتعرف على لوحات المركبات (ANPR) ومجموعة تطوير برمجيات (SDK). يتيح للمطورين دمج قدرات التعرف التلقائي على لوحات المركبات والتعرف على نوع المركبة، طرازها، لونها وفئتها (MMR) في تطبيقاتهم. يوفر محرك Carmen® الرائد في الصناعة دقة استثنائية، حيث يحقق معدل تعرف يتجاوز 95٪ حتى مع الصور منخفضة الجودة.
تتعرف هذه الحلول متعددة الاستخدامات على اللوحات من أكثر من 160 دولة، مما يجعلها مثالية للتطبيقات العالمية.

Carmen® FreeFlow هو الخيار الموثوق للمشاريع التي تتطلب دقة لا مثيل لها. بفضل معدل دقة واقعي يتراوح بين 95٪ و99٪ لأنواع اللوحات المختلفة، يضمن Carmen® FreeFlow التعرف الموثوق حتى في الظروف الصعبة.
بدعمه لأكثر من 60,000 نوع من اللوحات من أكثر من 160 دولة وأبجديات متنوعة – بما في ذلك اللاتينية والعربية والسيريلية والتايلاندية وغيرها – يوفر Carmen® FreeFlow انتشاراً عالمياً لا مثيل له. إنه الخيار الأمثل لتقنية التعرف على لوحات السيارات (ANPR/LPR) عالية الجودة، ويخدم مناطق من البرازيل إلى اليابان، ومن أمريكا الشمالية إلى أوروبا، ومن الشرق الأوسط إلى منطقة آسيا والمحيط الهادئ. قم بدمجه مرة واحدة واستفد من قوة التعرف عالي الأداء – في أي مكان في العالم.

Carmen® FreeFlow ليس حلاً واحداً يناسب الجميع؛ بل هو محرك ANPR متعدد الاستخدامات مصمم ليتكيف مع احتياجاتك الخاصة. يتيح دمج التعرف على لوحات الأرقام عالية الدقة بسلاسة، بالإضافة إلى خيارات التعرف على نوع وموديل المركبة (MMR)، والمواد الخطرة (HazMat)، ورموز IMO. توفر هذه المرونة دعماً لمجموعة واسعة من التطبيقات، بما في ذلك مراقبة حركة المرور، وأنظمة الأمان، وجباية الرسوم على الطرق السريعة، والتحكم في الوصول.
تم تصميم Carmen® FreeFlow ليكون قابلاً للتوسع، ويقدم خيارات ترخيص مرنة لتناسب حجم المشروع ومتطلبات المعالجة. تؤدي دقته الاستثنائية، حتى مع الصور غير المثالية، إلى معدلات منخفضة من الإيجابيات الكاذبة، مما يجعله مناسباً تماماً لتطبيقات جباية الرسوم وإنفاذ السرعة. يعمل المحرك بسلاسة على كل من نظامي Windows وLinux.

يُستخدم في أكثر من 100,000 نظام حول العالم.

التعرف العالمي على لوحات المركبات، الصنع، الطراز، واللون من خلال تكامل واحد.

يتم إصدار أربعة تحديثات سنويًا.

من الأنظمة الصغيرة إلى المتوسطة ثم الكبيرة والمعقدة.

يدعم SDK كلا نوعي إدخال البيانات.

يعمل على نظامي ويندوز ولينكس.
يدعم Carmen® FreeFlow التعرف على لوحات السيارات لأكثر من 160 دولة، ويغطي أكثر من 38,000 نوع من اللوحات. يرجى الاتصال بفريقنا لدعم البلدان المحددة.
نعم، يمكن لـ Carmen® FreeFlow معالجة كل من الصور الثابتة وتدفقات الفيديو.
نعم، يمكنكم تجربة برنامجنا مجانًا من خلال نموذج الترخيص بالاشتراك.
يتوفر SDK لدينا إما كترخيص مدى الحياة أو كترخيص يعتمد على الاشتراك.
نعم، يمكن استخدام SDK الخاص بنا بنموذج ترخيص يعتمد على الاشتراك، وهو متوفر بدون مفتاح مادي.
نصدر تحديثات المحرك أربع مرات في السنة.
نعم، يدعم Carmen® SDK لدينا معمارية x86-64 وARM32 وARM64.
تجعل تعددية استخدامات Carmen FreeFlow منه خيارًا مثاليًا لمجموعة واسعة من تطبيقات مراقبة المرور. فيما يلي بعض الاستخدامات الأكثر شيوعًا:
#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
يوصى بهذا النوع من الترخيص لمشاريع التحكم في الوصول التي تحتوي على أقل من 300 موقف للسيارات.
من خلال هذا الخيار، يمكن تكييف الترخيص حسب قدرة المعالجة في الأجهزة الخاصة بك (انظر الجدول أدناه).
مصمم لمشاريع التعرف القائمة على الفيديو القابلة للتوسع، هذا الترخيص مثالي للتطبيقات التي تتطلب ترخيصًا لكل تدفق فيديو لمعالجة الفيديو.
1 - 5
2 - 10
4 - 20
3 - 7
6 - 14
12 - 28
5 - 10
10 - 20
20 - 40
11,520
غير محدود (لكن قد يعتمد على سرعة المعالج، الإعدادات، ونوع المحرك)
4 خيوط متوازية
1 / 2 / 4 خيوط متوازية
300
غير محدود
30
-
خبراء المبيعات والمنتجات لدينا هنا لمساعدتك. اتصل بنا أو ابحث عن شريك بالقرب من موقعك.
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