پلاتریکس (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) روی فریمهای واقعی | حدود ۰٫۹۹ |
تشخیصگرِ ثانویه فقط روی حدود ۲٪ فریمها فعال میشود و پلاکهای سخت (کامیون، شب، دور و کمنور) را بازیابی میکند — بدونِ افتِ کیفیت روی اکثریتِ آسان.
شروع سریع
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.