Platrix · پلاتریکس

مدل‌های آمادهٔ ONNX برای تشخیص و خواندنِ پلاکِ خودروهای ایرانی، بلادرنگ و خودمیزبان.

پلاتریکس تشخیص پلاک خودروی ایرانی (بینایی ماشین) 🤗 Hugging Face گیت‌هاب

پلاتریکس (Platrix) مجموعه مدل‌های تولیدیِ ONNX برای تشخیص و خواندنِ پلاکِ خودروهای ایرانی است که سامانهٔ بلادرنگ و خودمیزبانِ نظارتِ پلاکِ پلاتریکس را قدرت می‌دهد. خطِ لوله دومرحله‌ای است: یک تشخیص‌گرِ YOLO پلاک را در فریم پیدا می‌کند، سپس یک مرحلهٔ بهبودِ کیفیتِ تصویر آن را تمیز می‌کند، و در نهایت یک خوانندهٔ بدونِ بخش‌بندیِ CRNN + CTC کلِ پلاک را یک‌جا می‌خواند و چیدمانِ استانداردِ ایرانی را برمی‌گرداند. همهٔ مدل‌ها با ONNX Runtime اجرا می‌شوند — بدونِ نیاز به PyTorch یا TensorFlow هنگام اجرا.

چه کارهایی انجام می‌دهد

  • تشخیصِ پلاک در فریم: تشخیص‌گرِ اصلیِ YOLOv8 پلاک را پیدا می‌کند و یک تشخیص‌گرِ ثانویه فقط وقتی اجرا می‌شود که اولی چیزی نیابد.
  • بهبودِ کیفیتِ برشِ پلاک: بزرگ‌نمایی، حذفِ نویز، اصلاحِ کنتراست و تیزسازی — همان بهبود در آموزش هم اعمال شده تا ناسازگاریِ آموزش/اجرا نباشد.
  • خواندنِ کلِ پلاک یک‌جا: خوانندهٔ بدونِ بخش‌بندیِ CRNN+CTC که روی شکلِ واقعیِ نویسه‌های پلاکِ ایرانی آموزش دیده و نویسه‌های شبیه به هم را درست می‌خواند.
  • اجرای خودمیزبان و بلادرنگ: کلِ سامانه (داشبوردِ وب، استریمِ چنددوربینه، فهرستِ تحتِ نظر و API) در مخزنِ گیت‌هاب موجود است.

مشخصات فنی

نوعتشخیص و خواندنِ پلاک (ALPR) — بینایی ماشین
معماریتشخیص‌گرِ YOLOv8 + خوانندهٔ CRNN با هد CTC
اجراONNX Runtime (بدون PyTorch/TensorFlow هنگام اجرا)
خروجیچیدمانِ استانداردِ پلاکِ ایرانی: دو رقم · حرف · سه رقم · دو رقمِ منطقه
مجموعه نویسه۳۲ کلاس: ارقام ۰ تا ۹ و حروفِ پلاکِ فارسی
مجوزMIT (متن‌باز)

کارایی روی تصاویرِ واقعیِ نظارتی

روی ۲۲۰ عکسِ واقعیِ نظارتیِ ایرانی (دوربین‌های خاکستریِ درب/جاده — دامنهٔ سختِ دنیای واقعی، نه عکس‌های صحنه‌آرایی‌شده) سنجیده شد.

معیارنتیجه
نرخِ خواندنِ سرتاسری (اولیه) ۹۵٫۹٪
نرخِ خواندنِ سرتاسری (با تشخیص‌گرِ ثانویه) ۹۷٫۷٪
دقتِ کلِ پلاکِ خواننده روی عکس‌های واقعی حدود ۹۸٪
دقتِ تشخیص‌گر (mAP@0.5) روی فریم‌های واقعی حدود ۰٫۹۹

تشخیص‌گرِ ثانویه فقط روی حدود ۲٪ فریم‌ها فعال می‌شود و پلاک‌های سخت (کامیون، شب، دور و کم‌نور) را بازیابی می‌کند — بدونِ افتِ کیفیت روی اکثریتِ آسان.

شروع سریع

اجرای مدل‌ها با ONNX Runtime (پایتون)
pip install onnxruntime opencv-python-headless numpy
huggingface-cli download Dibachain/Platrix \
    plate_yolo.onnx plate_yolo_fallback.onnx ocr_crnn.onnx ocr_crnn.labels.json \
    --local-dir models/
اجرای کلِ سامانهٔ پلاتریکس (پیشنهادی)
git clone https://github.com/AliAkrami1375/Platrix.git
cd Platrix
docker compose up --build            # داشبورد روی http://localhost:8080

راهنمای کامل، فایل‌های GGUF/ONNX و نمونه‌های بیشتر در کارتِ مدل روی Hugging Face در دسترس است.

کاربرد و محدودیت‌ها

پلاتریکس برای کاربردهای قانونی مانند مدیریتِ پارکینگ، کنترلِ تردد، اتوماسیونِ درب و تحلیلِ ترافیک در نظر گرفته شده و برای پلاک‌های استانداردِ شخصیِ ایرانی بهینه است. پلاک‌های بسیار کم‌کیفیت، به‌شدت پوشیده یا غیراستاندارد ممکن است دقت را کاهش دهند. رعایتِ قوانینِ حریم خصوصی و نظارتِ محلِ استقرار بر عهدهٔ شماست.

پرسش‌های متداول

پلاتریکس چه می‌کند؟

پلاکِ خودروهای ایرانی را در تصویر تشخیص می‌دهد و متنِ آن را می‌خواند؛ با خطِ لولهٔ دومرحله‌ای YOLO + CRNN/CTC و اجرای ONNX، به‌صورت بلادرنگ و خودمیزبان.

دقت پلاتریکس چقدر است؟

روی ۲۲۰ عکسِ واقعیِ نظارتی، نرخِ خواندنِ سرتاسری با تشخیص‌گرِ ثانویه به ۹۷٫۷٪ و mAP@0.5 تشخیص‌گر به حدود ۰٫۹۹ می‌رسد.

آیا برای اجرا به PyTorch نیاز است؟

خیر؛ همهٔ مدل‌ها با ONNX Runtime اجرا می‌شوند و هنگام اجرا نیازی به PyTorch یا TensorFlow نیست.

کد و سامانهٔ کاملِ پلاتریکس کجاست؟

در مخزنِ گیت‌هابِ پروژه: github.com/AliAkrami1375/Platrix — شاملِ داشبوردِ وب، استریمِ چنددوربینه و API.