{"id":21121545,"url":"https://github.com/ml13571/Flutter-License-Plate-Recognition","last_synced_at":"2025-10-01T21:30:56.465Z","repository":{"id":263623368,"uuid":"890952440","full_name":"ml13571/Flutter-License-Plate-Recognition","owner":"ml13571","description":"Flutter ALPR/ANPR For Android \u0026 iOS: license plate recognition, vehicle number plate recognition, ALPR reader, ALPR scanner, license plate OCR, car number plate recognition","archived":false,"fork":false,"pushed_at":"2025-01-03T18:41:21.000Z","size":650,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-11T05:35:35.129Z","etag":null,"topics":["alpr","android","classification","cnn","computer-vision","deep-learning","flutter","machine-learning","ncnn","object-detection","opencv"],"latest_commit_sha":null,"homepage":"https://jackiewang13571.wixsite.com/jackie-wang","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ml13571.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-19T13:24:18.000Z","updated_at":"2025-01-03T18:41:25.000Z","dependencies_parsed_at":"2025-01-03T19:33:50.276Z","dependency_job_id":"08c83880-2210-4b4a-a834-4a765f6f03ec","html_url":"https://github.com/ml13571/Flutter-License-Plate-Recognition","commit_stats":null,"previous_names":["jackiewangcv/flutter-license-plate-recognition","ml13571/flutter-license-plate-recognition"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml13571%2FFlutter-License-Plate-Recognition","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml13571%2FFlutter-License-Plate-Recognition/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml13571%2FFlutter-License-Plate-Recognition/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ml13571%2FFlutter-License-Plate-Recognition/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ml13571","download_url":"https://codeload.github.com/ml13571/Flutter-License-Plate-Recognition/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234899021,"owners_count":18903992,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpr","android","classification","cnn","computer-vision","deep-learning","flutter","machine-learning","ncnn","object-detection","opencv"],"created_at":"2024-11-20T03:51:30.506Z","updated_at":"2025-10-01T21:30:55.981Z","avatar_url":"https://github.com/ml13571.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flutter-License-Plate-Recognition\n\n## Overview\n\nThis repo demonstrates `ANPR/ALPR(Automatic Number/License Plate Recognition)` engine with high accuracy based on SOTA(State-Of-The-Art) deep learning techniques. \u003c/br\u003e\n`ANPR/ALPR` was implemented on Flutter framework for both `Android` and `iOS`.\n\n`LPR` solutions utilizes AI and ML to greatly surpass legacy solutions. Now, users can receive a vehicle's plate number in real-time.\n\nThe `ALPR` or `LPR` implementation consists of the following steps: `vehicle image capture`, `preprocessing`, `vehicle detection`, `number plate extraction`, `charater segmentation` and `Optical Character Recognition(OCR)`. \u003c/br\u003e\n\nThe `ALPR` system works in these strides, the initial step is the location of the vehicle and capturing a vehicle image of front or back perspective of the vehicle, the second step is the localization of Number Plate and then extraction of vehicle Number Plate is an image. The final stride uses image segmentation strategy, for the segmentation a few techniques neural network, mathematical morphology, color analysis and histogram analysis. Segmentation is for individual character recognition. Optical Character Recognition (OCR) is one of the strategies to perceive the every character with the assistance of database stored for separate alphanumeric character.\n\n## Screenshots\n\u003cp float=\"left\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/d19998a8-9b94-47dd-86f5-a206e430d4cf\" width=200/\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/34be1181-fe83-4be0-b955-7c174961410b\" width=200/\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/4d17e31e-d1e0-492a-98bd-c34ed68c3a6a\" width=200/\u003e\n\u003c/p\u003e\n\n\u003cp float=\"left\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/dc819a46-cdc7-4459-aca1-f94da8e1a14e\" width=200/\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/84f89d18-9c34-465e-a855-8c2b4467ce69\" width=200/\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/23645cc7-2f79-4deb-becd-2d88cb32c983\" width=200/\u003e\n\u003c/p\u003e\n\n## SDK License\n- The code line below shows how to update SDK with the `license key`: https://github.com/jackiewangCV/Flutter-License-Plate-Recognition/blob/401c3bdfde56a716d5a33e3878eaca9a4c4c3081/lib/main.dart#L69-L78\n\n## How To Run\n### 1. Flutter Setup\n  Make sure you have `Flutter` installed. \u003c/br\u003e\n  This repo has been built with Flutter version `3.22.3`.\u003c/br\u003e \n  If you don't get `Flutter` installed, please follow the instructions provided in the official `Flutter` documentation [here](https://docs.flutter.dev/get-started/install).\u003c/br\u003e\n  \n### 2. Placing Library File\n  Please contact us to get our `SDK library` file(`libttvalpr.aar`) and put it on the suitable SDK folder(folder `android/libttvalpr`).\u003c/br\u003e \n  \n### 3. Running the App\n  Try to build this repo to make sure that SDK works fine by linking real `Android` phone, not `simulator`. Once it works fine, you are ready to integrate our SDK to your project.\u003c/br\u003e\n  Run the following commands:\u003c/br\u003e\n  ```bash\n  flutter pub upgrade\n  flutter run\n  ```  \n  If you plan to run the iOS app, please refer to the following [link](https://docs.flutter.dev/deployment/ios) for detailed instructions.\u003c/br\u003e\n  \n## About SDK\n\n### 1. Set up\n#### 1.1 Setting Up ALPR SDK\n  \u003e Android\n  - Please contact us to get our `SDK library` file(`libttvalpr.aar`) and paste it to SDK folder(folder `android/libttvalpr`).\n    And then copy the SDK(folder `libttvalpr`) to the folder `android` in your project.\n  - Add SDK to the project in `settings.gradle`.\n  ```dart\n  include ':libttvalpr'\n  ```\n#### 1.2 Setting Up ALPR SDK Plugin\n  - Copy the folder `alprsdk_plugin` to the `root` folder of your project.\u003c/br\u003e\n  - Add the dependency in your `pubspec.yaml` file.\n  ```dart\n    alprsdk_plugin:\n      path: ./alprsdk_plugin\n  ```\n  - Import the `alprsdk_plugin` package.\n  ```dart\n    import 'package:alprsdk_plugin/alprsdk_plugin.dart';\n  ```\n### 2 API Usages\n#### 2.1 ALPRsdk Plugin\n  - Activate the `AlprsdkPlugin` by calling the `setActivation` method:\n  ```dart\n    final _alprsdkPlugin = AlprsdkPlugin();\n    ...\n     await _alprsdkPlugin\n            .setActivation(\n                \"o3AfDW+0LAb55qW354xp9ef/Twg1WumIcKaBQLydx+o7+8nuZSo4aL4vVGro3mNCLvo8C2OPNDjZ\"\n                \"/8k+bvgbf8+QszGqG5ubjZOaREXO0Iw8pSepERy4HrWrS6I9ObjuttMUIRHBFNjIsT3RKH57mNv6\"\n                \"1IXxewXlIA2oe5Vak/zaddoKKKcSW+iWJWqIa1MxGn8PpUD1riQS9RrO/cwZsiAJU+5+ekkkyP3C\"\n                \"7eNZGzFfpmkLM55p2F98IMqWHjaMmX0klsNlxE/bdSJD8c2cS/+9DGLqiWb2FHz8FpR6sXjc+eGM\"\n                \"bNtBd0YxqfAy+oeTVdPyw0E17lj+Hilw4L4C6Q==\")\n            .then((value) =\u003e facepluginState = value ?? -1);\n  ```\n  - Initialize the `AlprsdkPlugin`:\n  ```dart\n  await _alprsdkPlugin\n            .init()\n            .then((value) =\u003e alprpluginState = value ?? -1)\n  ```\n  - Extract plates using the `extractFaces` method:\n  ```dart\n  final plates = await _alprsdkPlugin.extractFaces(path: image.path)\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fml13571%2FFlutter-License-Plate-Recognition","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fml13571%2FFlutter-License-Plate-Recognition","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fml13571%2FFlutter-License-Plate-Recognition/lists"}