English | Korean
I am releasing this repository because there are no other options that work great on Korean license plates. Please give it a star if you find it helpful.
Input Image -> Detect cars (YOLO26s) -> Detect Korean License Plate in Car (YOLOv5) -> OCR
Car detection upgraded to Ultralytics YOLO26s for faster CPU inference and end-to-end NMS-free prediction. License plate detector still uses the existing YOLOv5-trained weight (
lp_det.pt).
License plate weight is bundled in the project (~50 MB). The car detector weight (yolo26s.pt, ~20 MB) is downloaded automatically by Ultralytics on first run.
pip
pip install -r requirements.txtuv (recommended)
uv venv --python 3.11
uv pip install -r requirements-uv.txt --index-url https://download.pytorch.org/whl/cpugit clone https://github.com/gyupro/EasyKoreanLpDetector/
cd EasyKoreanLpDetector
streamlit run server.py --server.headless true| Good examples | Good examples | Bad example |
|---|---|---|
![]() |
![]() |
- This trained on AIHUB dataset
- OCR is trained on 80,000 license plate - character set
- License plate detection is trained on synthetic data that was generated by AIHUB dataset (Dataset provides a blurred license plate on a car, I replaced a blurred area with cropped plates)
- This project works better than other open-source projects on GitHub.
- It has the easiest code of all projects on GitHub. *It is fast when you have a GPU.
- You can improve performance by training.
- It works well with 4K images taken from a phone.
- Car detection now uses the pretrained YOLO26s (COCO) model — when a car fills most of the frame, detection can still miss; in that case the license plate detector falls back to running on the full image.
- Old license plates may not be easily recognizable, but compared to older ones, newer ones are more easily recognizable.

