{"id":2237,"date":"2024-07-30T06:38:34","date_gmt":"2024-07-30T06:38:34","guid":{"rendered":"https:\/\/adaptiverecognition.com\/?post_type=product&p=2237"},"modified":"2025-06-10T10:31:59","modified_gmt":"2025-06-10T10:31:59","slug":"carmen-freeflow","status":"publish","type":"product","link":"https:\/\/adaptiverecognition.com\/hu\/products\/carmen-freeflow\/","title":{"rendered":"Carmen\u00ae FreeFlow SDK"},"excerpt":{"rendered":"
Carmen\u00ae FreeFlow<\/strong> rendsz\u00e1mfelismer\u0151 szoftver fejleszt\u0151i k\u00e9szlettel (SDK) integr\u00e1lhat\u00f3 k\u00fcl\u00f6nb\u00f6z\u0151 rendszerekbe. T\u00e1mogatja a f\u0151bb programoz\u00e1si nyelveket \u00e9s platformokat, bele\u00e9rtve a Windows \u00e9s Linux k\u00f6rnyezeteket, valamint az x86_64 \u00e9s ARM architekt\u00far\u00e1kat.<\/p>","protected":false},"featured_media":10557,"parent":0,"template":"","category-for-product":[54],"class_list":["post-2237","product","type-product","status-publish","has-post-thumbnail","hentry","category-for-product-software"],"acf":{"source_campaign":"CMP-01264-Z1P4K","preferred_product_type":"100000000","subject_postfix":"Carmen\u00ae FreeFlow","pick_casy_studies_for_this_product":[1295,1334,1301,1347],"product_card_name":"ANPR Engine with SDK for Seamless Integration","product_menu_name":"Carmen\u00ae FreeFlow ANPR Engine with SDK<\/span>","product_name_on_product_page":"Carmen\u00ae FreeFlow
ANPR Engine with SDK<\/span>","hero_image_for_product_page":10556,"product_hero_image_on_product_page":10557,"product_hero_image_clickable_url":"","on_product_page_excerpt":"The Optical Character Recognition Engine Built for Developers.
\r\nFull SDK Access, High Accuracy, and Global License Plate Support.","test_product_video":"","product_page_flexible":[{"acf_fc_layout":"simple_text","title_of_the_section":"Carmen\u00ae FreeFlow:
ANPR Brilliance<\/span>","simple_text":"Carmen\u00ae <\/span>FreeFlow<\/span> is a <\/span>cutting-edge<\/span> Number Plate Recognition Engine and Software Development Kit (SDK). It empowers developers to integrate <\/span><\/span>world-class automatic license plate recognition<\/span><\/span><\/strong> (<\/span>ANPR\/L<\/span>PR) and make, model, color, category recognition (MMR) capabilities into their applications. <\/span>The industry-leading Carmen\u00ae engine delivers <\/span><\/span>unmatched accuracy, achieving over 95% recognition<\/span><\/span><\/strong> even for low-quality images<\/span>. <\/span><\/span>\r\n\r\nThis versatile solution recognizes plates from over 160 countries, making it <\/span><\/span>ideal for global applications<\/strong>.<\/span><\/span>\u00a0<\/span>"},{"acf_fc_layout":"image_and_text_leftright","image_and_text_leftright":[{"title_left_right":"Uncompromising Performance
for Any Project<\/span>","description_of_the_left_right":"Carmen\u00ae FreeFlow is the <\/span>trusted choice<\/span><\/b> for projects demanding unmatched precision. Boasting a real-life <\/span>accuracy rate of 95% to 99% for various plate types<\/span><\/b>, Carmen\u00ae FreeFlow ensures reliable recognition <\/span>even in challenging conditions.<\/span><\/b> \u00a0<\/span>\r\n\r\nWith <\/span>support <\/span><\/b>for over 60<\/strong><\/span>,<\/strong>000 plate types from 160+ countries<\/span><\/b> and <\/span>diverse alphabets<\/span><\/b>\u2014including Latin, Arabic, Cyrillic, Thai, and more\u2014Carmen\u00ae FreeFlow offers an unparalleled global reach. It is the <\/span>premier choice for high-quality ANPR\/LPR<\/span><\/b>, serving regions from Brazil to Japan, North America to Europe, and the Middle East to Asia-Pacific. Integrate it once and unlock the power of high-performance ANPR \u2013 anywhere in the world.<\/span>","image":10985,"lint_to_image":""},{"title_left_right":"An OCR Engine
that Scales with You<\/span>","description_of_the_left_right":"Carmen\u00ae FreeFlow is not a one-size-fits-all solution; it is a versatile ANPR engine <\/span>designed to adapt to your specific needs<\/span><\/b>. It allows for <\/span>seamless integration<\/span><\/b> of high-accuracy license plate recognition, as well as optional make and model recognition (MMR), dangerous goods (HazMat), and IMO code recognition. <\/span>This flexibility supports a wide range of applications<\/span><\/b>, including traffic monitoring, security systems, highway tolling, and access control.<\/span>\u00a0<\/span>\r\n\r\nDesigned for scalability<\/span><\/b>, Carmen\u00ae FreeFlow provides <\/span>flexible licensing options<\/span><\/b> to fit the size and processing needs of your project. Its <\/span>exceptional accuracy<\/span><\/b>, even on less-than-ideal images, results in low false-positive rates, perfectly suitable for tolling<\/strong> and speed enforcement<\/strong><\/span><\/span><\/span>.\u00a0The engine operates seamlessly on both Windows and Linux platforms.<\/span>\u00a0<\/span>","image":10987,"lint_to_image":""}]},{"acf_fc_layout":"highligted_features_new","highligted_features_new":[{"feature_image__icon_new":7567,"feature_title_new":"Tried
& Tested","feature_description_new":"Used in over 100,000 systems worldwide.<\/span>"},{"feature_image__icon_new":7569,"feature_title_new":"Wolrdwide
ANPR & MMR","feature_description_new":"Worldwide recognition of vehicle plates, make, model, and color with a single integration.<\/span>"},{"feature_image__icon_new":7570,"feature_title_new":"Regular
Engine Updates","feature_description_new":"Four updates released per year.<\/span>"},{"feature_image__icon_new":7565,"feature_title_new":"Scalability","feature_description_new":"From small through medium to large and complex systems.<\/span>"},{"feature_image__icon_new":7568,"feature_title_new":"Video & Image
Processing","feature_description_new":"SDK supports either data input.<\/span>"},{"feature_image__icon_new":7566,"feature_title_new":"Support of
major OP systems","feature_description_new":"Runs on Windows and Linux.<\/span>"}]},{"acf_fc_layout":"product_flexi_accordion","accordion_title":"FAQ","description_":"","accordion_fields":[{"accordion_title_repeater":"Does Carmen\u00ae FreeFlow read license plates from my country?","accordion_description":"Carmen\u00ae FreeFlow supports license plate recognition for over 160 countries, covering more than 38,000 plate types. Please contact our team<\/a> for specific country support."},{"accordion_title_repeater":"Does Carmen\u00ae FreeFlow work with video streams?","accordion_description":"Yes, Carmen\u00ae FreeFlow can process both still images and video streams.\r\n"},{"accordion_title_repeater":"Is there a possibility to try a demo of Carmen\u00ae FreeFlow?","accordion_description":"Yes, you can try our software using our subscription-based licensing model free of charge."},{"accordion_title_repeater":"Is Carmen\u00ae FreeFlow available as a lifetime license?","accordion_description":"Our SDK is available either as a lifetime license or as a subscription-based license."},{"accordion_title_repeater":"Is there a version of Carmen\u00ae FreeFlow without a hardware key?","accordion_description":"Yes, our SDK can be used with a subscription-based licensing model, which is available without a hardware key."},{"accordion_title_repeater":"How often are updates issued for Carmen\u00ae FreeFlow?","accordion_description":"We release engine updates four times a year."},{"accordion_title_repeater":"Does Carmen\u00ae FreeFlow support ARM architecture?","accordion_description":"Yes, our Carmen\u00ae SDK supports x86-64, ARM32, and ARM64 architectures.\r\n\r\n"}],"contact_button_below":null},{"acf_fc_layout":"application_accordion","application_title":"Most common
applications<\/span>","application_description":"Carmen FreeFlow\u2019s versatility makes it ideal for\r\na wide range of traffic monitoring applications.\r\nHere are just a few of the most common uses:","application_fields":[{"application_title_repeater":"Traffic Monitoring"},{"application_title_repeater":"Toll Enforcement"},{"application_title_repeater":"Speed & Journey Time Measurement"},{"application_title_repeater":"Highway Tolling"},{"application_title_repeater":"Dangerous Goods Code Recognition"},{"application_title_repeater":"Container Code Recognition"}],"button_text_accordion_below":"Contact our team today","application_button_url_accordion_below":"\/contact-us"},{"acf_fc_layout":"sample_codes","sample_codes_repeater":[{"code_name":"C","copy_the_code_here":" #include \"gxsdldr.c\"\r\n #include \"cmanpr.h\"\r\n \r\n \/\/ If an error occurred it displays the error and terminates the program\r\n void term_if_err(int st) {\r\n int err_code;\r\n wchar_t err_str[256];\r\n \r\n if(st) return;\t\t\/\/ No error occurred\r\n \/\/ Displays error code and description\r\n err_str[(sizeof(err_str)\/sizeof(wchar_t))-1] = 0;\r\n gx_geterror(&err_code, err_str, (sizeof(err_str)\/sizeof(wchar_t))-1);\r\n fprintf(stderr, \"GX error (%x) occurred: %ls\\n\", err_code, err_str);\r\n \/\/ Terminates the program\r\n exit(1);\r\n }\r\n \r\n int main(void) {\r\n struct gxHANDLE anprhandle, imagehandle;\r\n struct gxIMAGE *image;\r\n struct cmNP *anprresult;\r\n int st;\r\n \r\n \/\/ Opens the ANPR module with EUR region\r\n st = gx_openmodule(&anprhandle, L\"cmanpr\", L\"eur\");\r\n term_if_err(st);\r\n \r\n \/\/ Opens the image module, allocates the image structure and load the image\r\n st = gx_openmodule(&imagehandle, L\"gximage\", L\"default\");\r\n term_if_err(st);\r\n st = gx_allocimage(imagehandle, &image);\r\n term_if_err(st);\r\n st = gx_loadimage(imagehandle, image, L\"image.jpg\", GX_UNDEF);\r\n term_if_err(st);\r\n \r\n \/\/ Finds the first license plate\r\n anprresult = 0;\r\n st = cm_findfirst(anprhandle, image, &anprresult);\r\n term_if_err(st);\r\n \r\n if(anprresult) {\r\n char countryCode[256]=\"\";\r\n \/\/ Get short country code\r\n st = cm_getcountrycode(anprhandle,anprresult->type,(int)CCT_COUNTRY_SHORT,countryCode,sizeof(countryCode));\r\n term_if_err(st);\r\n \/\/ Displays the result, country code and type\r\n printf(\"Plate text: %s\\n\", anprresult->text);\r\n printf(\"Country code: %s\\n\", countryCode[0] ? countryCode : \"No plate type\");\r\n printf(\"Type: %i\\n\", anprresult->type);\r\n \r\n \/\/ Frees up the result\r\n st = gx_globalfree(anprresult);\r\n term_if_err(st);\r\n } else {\r\n printf(\"No license plate found\\n\");\r\n }\r\n \r\n \/\/ Frees up the resources\r\n st = gx_unrefimage(imagehandle, image);\r\n term_if_err(st);\r\n st = gx_unrefhandle(&imagehandle);\r\n term_if_err(st);\r\n st = gx_unrefhandle(&anprhandle);\r\n term_if_err(st);\r\n \r\n return 0;\r\n }"},{"code_name":"C++","copy_the_code_here":" #include \"gxsdldr.cpp\"\r\n #include \"cmanpr.h\"\r\n \r\n int main() {\r\n try {\r\n \/\/ Creates the ANPR object with EUR region\r\n cm::cmAnpr anpr(\"eur\");\r\n \r\n \/\/ Creates the image object and load the image\r\n gxImage image;\r\n image.Load(\"image.jpg\");\r\n \r\n \/\/ Finds the first license plate\r\n if(anpr.FindFirst(image)) {\r\n \/\/ Get short country code\r\n gxOutStr countryCode = anpr.GetCountryCode(anpr.GetType(),(int)cm::CCT_COUNTRY_SHORT);\r\n std::wstring wCountryCode = countryCode.empty() ? L\"No plate type\" : countryCode;\r\n \r\n \/\/ Displays the result, country code and type\r\n std::wcout << L\"Plate text: \" << anpr.GetText() << std::endl;\r\n std::wcout << L\"Country code: \" << wCountryCode << std::endl;\r\n std::wcout << L\"Type: \" << anpr.GetType() << std::endl;\r\n } else {\r\n std::wcout << L\"No license plate found\" << std::endl;\r\n }\r\n \r\n } catch(gxError &e) {\r\n std::wcerr << L\"GX error (\" << e.GetErrorCode() << \") occurred: \" << e.GetErrorString() << std::endl;\r\n return 1;\r\n }\r\n \r\n return 0;\r\n }"},{"code_name":"C#","copy_the_code_here":" using System;\r\n using gx;\r\n using cm;\r\n \r\n namespace carmen\r\n {\r\n class MainClass\r\n {\r\n public static void Main(string[] args)\r\n {\r\n try {\r\n \/\/ Creates the ANPR object with EUR region\r\n cmAnpr anpr = new cmAnpr(\"eur\");\r\n \r\n \/\/ Creates the image object and load the image\r\n gxImage image = new gxImage();\r\n image.Load(\"image.jpg\");\r\n \r\n \/\/ Finds the first license plate\r\n if (anpr.FindFirst(image)) {\r\n \/\/ Get short country code\r\n String countryCode = anpr.GetCountryCode(anpr.GetType(), (int)CC_TYPE.CCT_COUNTRY_SHORT);\r\n countryCode = countryCode.Length > 0 ? countryCode : \"No plate type\";\r\n \r\n \/\/Displays the result, country code and type\r\n Console.WriteLine(\"Plate text: {0}\", anpr.GetText());\r\n Console.WriteLine(\"Country code: {0}\", countryCode);\r\n Console.WriteLine(\"Type: {0}\", anpr.GetType());\r\n } else {\r\n Console.WriteLine(\"No license plate found\");\r\n }\r\n } catch(gxException) {\r\n Console.Error.WriteLine(\"GX error (\" + gxSystem.GetErrorCode() + \") occured: \" + gxSystem.GetErrorString());\r\n Environment.Exit(1);\r\n }\r\n }\r\n }\r\n }"},{"code_name":"Java","copy_the_code_here":" import com.adaptiverecognition.gx.*;\r\n import com.adaptiverecognition.cm.*;\r\n \r\n public class cmanpr {\r\n \r\n static {\r\n try {\r\n System.loadLibrary(\"jgx\");\r\n System.loadLibrary(\"jcmanpr\");\r\n } catch(UnsatisfiedLinkError e) {\r\n System.err.println(\"Native code library failed to load.\" + e);\r\n System.exit(1);\r\n }\r\n }\r\n \r\n public static void main(String argv[]) {\r\n try {\r\n \/\/ Creates the ANPR object with EUR region\r\n cmAnpr anpr = new cmAnpr(\"eur\");\r\n \r\n \/\/ Creates the image object and load the image\r\n gxImage image = new gxImage();\r\n image.Load(\"image.jpg\");\r\n \r\n \/\/ Finds the first license plate\r\n if(anpr.FindFirst(image)) {\r\n \/\/ Get short country code\r\n String countryCode = anpr.GetCountryCode(anpr.GetType(),jcmanprConstants.CCT_COUNTRY_SHORT);\r\n countryCode = countryCode.length()>0 ? countryCode : \"No plate type\";\r\n \r\n \/\/ Displays the result, country code and type\r\n System.out.println(\"Plate text: \" + anpr.GetText());\r\n System.out.println(\"Country code: \" + countryCode);\r\n System.out.println(\"Type: \" + anpr.GetType());\r\n } else {\r\n System.out.println(\"No license plate found\");\r\n }\t\t\t\r\n \r\n \/\/ Frees up resources\r\n anpr.delete();\r\n image.delete();\r\n } catch(RuntimeException e) {\r\n System.err.println(\"GX error (\" + String.format(\"0x%08x\",gxSystem.GetErrorCode()) + \") occured: \" + gxSystem.GetErrorString());\r\n System.exit(1);\r\n }\r\n }\r\n }"},{"code_name":"VB.Net","copy_the_code_here":" Imports System\r\n Imports gx\r\n Imports cm\r\n \r\n Module Main\r\n Sub Main()\r\n Try\r\n ' Creates the ANPR object with EUR region\r\n Dim anpr As cmAnpr = New cmAnpr(\"eur\")\r\n \r\n ' Creates the image object and load the image\r\n Dim image As gxImage = New gxImage(\"default\")\r\n image.Load(\"image.jpg\")\r\n \r\n ' Finds the first license plate\r\n If anpr.FindFirst(image) Then\r\n ' Get short country code\r\n Dim countryCode As String\r\n countryCode = anpr.GetCountryCode(anpr.GetType(), CC_TYPE.CCT_COUNTRY_SHORT)\r\n If countryCode.Length = 0 Then countryCode = \"No plate type\"\r\n \r\n ' Displays the result, country code and type\r\n Console.WriteLine(\"Plate text: {0}\", anpr.GetText())\r\n Console.WriteLine(\"Country code: {0}\", countryCode)\r\n Console.WriteLine(\"Type: {0}\", anpr.GetType())\r\n Else\r\n Console.WriteLine(\"No license plate found\")\r\n End If\r\n Catch ex As gxException\r\n Console.Error.WriteLine(\"GX error (\" + gxSystem.GetErrorCode().ToString() + \") occured: \" + gxSystem.GetErrorString())\r\n Environment.Exit(1)\r\n End Try\r\n End Sub\r\n End Module"}]},{"acf_fc_layout":"two_box_in_row_","title_of_the_block_two_box_in_row":"Licensing
Options<\/span>","backgroup_color":"#ffffff","box_for_information":[{"color_of_the_box_background":"#151515","title_of_block":"K-License<\/span>
For Low Traffic Project","description_of_two_column_block":"This type of license is recommended for access control projects\r\nwith less than 300 parking places","button_text_on_the_box_template":"","relative_url":""},{"color_of_the_box_background":"#151515","title_of_block":"FreeFlow Licensing<\/span>
By CPU Core","description_of_two_column_block":"Via this option, you can adapt your licensing to the processing\r\ncapacity of your hardware (see table below).","button_text_on_the_box_template":"","relative_url":""},{"color_of_the_box_background":"#151515","title_of_block":"Video SDK<\/span>
By Video Streams","description_of_two_column_block":"Designed for scalable video-based recognition projects, this license is ideal for applications requiring per stream licensing for video processing.","button_text_on_the_box_template":"","relative_url":""}]},{"acf_fc_layout":"comparision_table_final","comparison_block_title":"Licensing Guidelines
Based on Processing Power and Requirements<\/span>","comparison_table_writeable_column_titles":[{"comparison_table_writeable_column_title":"Single License (Image\/Sec)"},{"comparison_table_writeable_column_title":"Dual License (Image\/Sec)"},{"comparison_table_writeable_column_title":"Quad License (Image\/Sec)"}],"comparison_datas_final":[{"row_title_final":"i3 processor","row_cell_contents_final":[{"row_cell_content_final":"1 - 5"},{"row_cell_content_final":"2 - 10"},{"row_cell_content_final":"4 - 20"}]},{"row_title_final":"i5 processor","row_cell_contents_final":[{"row_cell_content_final":"3 - 7"},{"row_cell_content_final":"6 - 14"},{"row_cell_content_final":"12 - 28"}]},{"row_title_final":"i7 processor","row_cell_contents_final":[{"row_cell_content_final":"5 - 10"},{"row_cell_content_final":"10 - 20"},{"row_cell_content_final":"20 - 40"}]}],"small_text_under_comparison_table":""},{"acf_fc_layout":"comparision_table_final","comparison_block_title":"Compare
Licensing Options<\/span>","comparison_table_writeable_column_titles":[{"comparison_table_writeable_column_title":"K-License"},{"comparison_table_writeable_column_title":"FreeFlow"}],"comparison_datas_final":[{"row_title_final":"Capacity (images\/day)","row_cell_contents_final":[{"row_cell_content_final":"11,520"},{"row_cell_content_final":"unlimited (but may depend on CPU speed, settings, engine type)"}]},{"row_title_final":"Processing threads","row_cell_contents_final":[{"row_cell_content_final":"4 parallel threads"},{"row_cell_content_final":"1 \/ 2 \/ 4 parallel threads"}]},{"row_title_final":"Credit buffer","row_cell_contents_final":[{"row_cell_content_final":"300"},{"row_cell_content_final":"unlimited"}]},{"row_title_final":"Time for 4 new credits (sec)","row_cell_contents_final":[{"row_cell_content_final":"30"},{"row_cell_content_final":"-"}]}],"small_text_under_comparison_table":""},{"acf_fc_layout":"doc_links","first_button_text":"Quick Access to Datasheet","first_button_url":"\/app\/uploads\/DOC\/Software\/Carmen\/ANPR\/carmen_anpr_datasheet.pdf","second_button_text":"All Downloadable Material","secund_button_url":"\/doc\/license-plate-recognition-traffic-analytics\/carmen-freeflow\/"}],"tags_for_search_separate_with_comma___":"carmen, freeflow, carmen freeflow, data, sdk, api, software, anpr, lpr, traffic, monitor, monitoring, engine","select_references_for_this_product":[5698,5757,5590,5594]},"yoast_head":"\n