# License Plate Recognition-iOS

`KBY-AI`'s `LPR` iOS `SDK` utilized artificial intelligence and machine learning to greatly surpass legacy solutions. Now, in real-time, users can receive a `vehicle's license plate number`.

`Automatic license-plate recognition (ALPR)` is a technology that uses `OCR(optical character recognition)` on images to read `vehicle registration plates`. It can use existing closed-circuit television, road-rule enforcement cameras, or cameras specifically designed for the task. `ALPR` can be used by police forces around the world for law enforcement purposes, including to check if a vehicle is registered or licensed. It is also used for electronic toll collection on `pay-per-use` roads and as a method of cataloguing the movements of traffic, for example by highways agencies.

## Features

* [x] Vehicle License Plate Reader
* [x] OCR Based License Number Parser
* [x] Vehicle Detection & Tracking
* [x] Export License Plate Coordinate
* [x] Support Car, Truck, Bus, etc
* [x] Support Various License Plates From 180+ Counrtries
* [x] On-Premise, Fully Offine Work

## License

We offer `lifetime license(perpetual license)` tied to each  `bundle ID` for `iOS` `SDK`s.&#x20;

The license is available with a `one-time payment`—meaning once you purchase it, you can use our `SDK` indefinitely without any recurring fees.

To request a license, please contact us:

> **Email:** <contact@kby-ai.com>&#x20;

{% embed url="<https://wa.me/+19092802609>" %}

{% embed url="<https://t.me/kbyaisupport>" %}

{% embed url="<https://discord.gg/6wm383re2s>" %}

{% embed url="<https://teams.live.com/l/invite/FAAYGB1-IlXkuQM3AQ>" %}

## Screenshots

<div><figure><img src="https://2589216230-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1WwtQK0VFwKRGmIjGA3I%2Fuploads%2FWAji1LqYDnn9CjIdQG4p%2F370971177-34be1181-fe83-4be0-b955-7c174961410b.png?alt=media&#x26;token=9efdfcb0-31f0-49a5-b242-bea01ccc5463" alt="" width="212"><figcaption></figcaption></figure> <figure><img src="https://2589216230-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1WwtQK0VFwKRGmIjGA3I%2Fuploads%2FcJghjRw6UztklhO47lJN%2F370971732-23645cc7-2f79-4deb-becd-2d88cb32c983.png?alt=media&#x26;token=c239290f-0dfc-4e83-93a5-756f232d6e56" alt="" width="212"><figcaption></figcaption></figure> <figure><img src="https://2589216230-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1WwtQK0VFwKRGmIjGA3I%2Fuploads%2F0BmxlQCyQqMwaHp3k5Q2%2F370971315-4d17e31e-d1e0-492a-98bd-c34ed68c3a6a.png?alt=media&#x26;token=33231342-d257-4be7-8b90-8a35e90c0089" alt="" width="212"><figcaption></figcaption></figure></div>

## About SDK

#### 1. Set up

**1.1 Setting Up ALPR SDK**

> iOS

* Copy the `SDK` library (`alprsdk.framework` folder) and pre-built `onnxruntime` library (`onnxruntime.framework` folder) to the `root` folder in your project.
* Add `alprsdk.framework` and `onnxruntime.framework` to your project in `Xcode`.

> Project Navigator -> General -> Frameworks, Libraries, and Embedded Content

<figure><img src="https://2589216230-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1WwtQK0VFwKRGmIjGA3I%2Fuploads%2FKKNxCrn8Y2mGBLtODc5W%2FScreenshot%202025-11-14%20003314.png?alt=media&#x26;token=bf00150c-962b-43a5-a23d-51c9d5486d04" alt=""><figcaption></figcaption></figure>

* Add the bridging header to your project settings

> Project Navigator -> Build Settings -> Swift Compiler - General

<figure><img src="https://2589216230-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1WwtQK0VFwKRGmIjGA3I%2Fuploads%2FrMDtrckh3t2pCQjoR7kk%2FScreenshot%202025-11-14%20003940.png?alt=media&#x26;token=ea3b551d-805d-40f6-8eaf-5eaa9833543d" alt=""><figcaption></figcaption></figure>

#### 2 API Usages

* Activate the `SDK` by calling the `setActivation` method:

```swift
var ret = ALPRSDK.setActivation("xxx...")
```

* Get license plate number and its coordinates by calling the `processImage` method:

```swift
  let processImage = pickedImage.fixOrientation()
  let alprBoxes = ALPRSDK.processImage(processImage) as! [ALPRBox];
  let imageWithBoxes = drawALPRBoxes(on: processImage, boxes: alprBoxes)
```
