شعار ScanVIN.app Scan VIN
اللغة
اختر اللغة
تغيير اللغة سيُبقيك على نفس الصفحة الحالية.

كيف يعمل ماسح رقم الهيكل (VIN) لدينا؟

كيف يعمل ماسح رقم الهيكل (VIN) لدينا؟ إدخال رقم الهيكل (VIN) يدويًا هو واحد من تلك المهام الصغيرة والمزعجة التي قد تسبب خسائر حقيقية عند حدوث خطأ. هل كانت هذه 8 أم B؟ 5 أم S؟ حرف واحد خاطئ ويعود تقرير تاريخ المركبة فارغًا – أو، ما هو أسوأ، يصف سيارة شخص آخر. لهذا أنشأنا ماسح رقم الهيكل (VIN) يعمل بالكامل داخل متصفح هاتفك. بدون تثبيت تطبيق، وبدون إرسال صور. في هذا المقال سنوضح ما الذي يحدث فعليًا خلال ثانيتين أو ثلاث بين توجيه الكاميرا إلى رقم الهيكل ورؤية النتيجة – بما في ذلك بعض الأمور التي فاجأتنا أثناء عملية التطوير.

شبكتان عصبونيتان، مهمة واحدة

عندما تلمس زر “مسح”، يقوم متصفحك بتنزيل نموذجين صغيرين للذكاء الاصطناعي (بإجمالي حجم يقارب 13 ميجابايت – تُخزَّن في الذاكرة المؤقتة بعد الزيارة الأولى) ويشغلهما محليًا باستخدام WebAssembly. لكل واحد منهما دور محدد جدًا. role. الكاشف. النموذج الأول هو كاشف كائنات من عائلة YOLO قمنا بتدريبه على تنفيذ مهمة واحدة بالضبط: العثور على رقم الهيكل (VIN) في إطار الكاميرا. ليس “العثور على نص” – بل العثور على رقم الهيكل. لقد “رأى” أرقام هيكل على لوحات عند الزجاج الأمامي، وملصقات على عمود الباب، وأرقامًا منقوشة في المعدن الخام على أبراج ممتصات الصدمات، وكذلك على مستندات التسجيل المطبوعة، لذلك يميّز الفرق بين رقم الهيكل ولوحة التسجيل أو رقم قطعة عشوائي. والأهم من ذلك، أنه لا يرسم مجرد إطار حول رقم الهيكل – بل يعيد إطارًا مدوّرًا، وبذلك يعرف زاوية النص بدقة، حتى عندما تمسك الهاتف بشكل مائل أو تلتقط صورة لحجرة المحرك من الجانب.

القارئ. يتم قص شريط البكسلات المستقيم بعد ذلك وإرساله إلى نموذج ثانٍ: شبكة للتعرّف على النص من عائلة PaddleOCR، قمنا بضبطها خصيصًا لأرقام VIN. نموذج الـ OCR العام يجب أن يأخذ في الحسبان آلاف الرموز – أما نموذجنا فلا يعرف إلا 33 رمزًا.

لماذا 33 رمزًا فقط؟ معلومة طريفة من عام 1981

الأحرف I و O و Q محظورة في أرقام VIN. المعيار ISO لعام 1981 استبعدها لأنه من السهل جدًا الخلط بينها وبين الرقمين 1 و 0 – على المعدن المضروب، وعلى الملصقات الباهتة و(مفارقةً) في أنظمة OCR. قمنا بترميز هذه القاعدة مباشرة في أبجدية نموذج القارئ. فهو غير قادر فعليًا على إخراج الحرف O – فإذا بدا الرمز دائريًا، تكون أقرب إجابة مسموح بها هي 0 وهذا ما يقوم بالتبليغ عنه. فئة كاملة من أخطاء OCR الكلاسيكية لا يمكن أن تحدث ببساطة. هذه هي أكبر فائدة منفردة من الضبط خصيصًا لأرقام VIN بدلًا من استخدام محرك OCR جاهز.

صورة واحدة هي تخمين. الفيديو هو دليل.

في مرحلة مبكرة اتخذنا قرارًا شكّل الماسح بالكامل: لا تثق أبدًا بإطار واحد. تقوم الكاميرا في هاتفك بتوفير إطار جديد عدة مرات في الثانية، لذلك بدلًا من المراهنة على لقطة واحدة، يقوم الماسح بقراءة رقم VIN مرارًا وتكرارًا ويتيح للإطارات أن تصوّت. لا يُقبل الناتج إلا عندما تتطابق الإطارات المستقلة – وحدّ “التطابق” هذا مرن:

  • إذا ظهرت نفس الأحرف السبعة عشر مرتين وكانت قيمة التحقق المضمّنة في رقم VIN صحيحة، نقبل النتيجة شبه فورًا.
  • لا توجد قيمة تحقق؟ (المزيد عن هذا أدناه.) عندها ننتظر تأكيدًا ثالثًا.
  • إذا استمرت الإطارات في الاختلاف حول رمز واحد، يتم وزن كل مرشح وفقًا لمدى ثقة القارئ به – رمزًا برمز. هذه القاعدة الأخيرة أثبتت قيمتها أثناء الاختبارات. في أحد مقاطعنا الاختبارية – وثيقة تسجيل تحت إضاءة قوية – جعل الانعكاس الرقم 0 في الرقم التسلسلي يبدو مثل 8 في أكثر من نصف الإطارات. الاعتماد على التكرار وحده كان سيختار الإجابة الخاطئة. لكن مستوى ثقة النموذج بتلك الرموز 8 كان منخفضًا بما يكفي أقل باستمرار مما هو عليه عند القراءات النظيفة لـ0، ومنطق التصويت هو ما لاحظه. الماسح انتظر ببساطة ثانية أطول حتى تستقر الأدلة، ثم أعاد رقم VIN الصحيح.

رقم تحقق يعمل فقط في بعض السيارات

تحتوي أرقام VIN على آلية خفية للفحص الذاتي: الموضع التاسع هو رقم تحقق يُحسب من الأحرف الستة عشر الأخرى. إنه إشارة تحقق ممتازة – عندما يعمل. لكن هناك مشكلة: فهو إلزامي فقط للمركبات المباعة في أمريكا الشمالية. معظم أرقام VIN في السوق الأوروبية لا تستخدمه على الإطلاق. لذلك يتعامل الماسح لدينا مع رقم التحقق على أنه ميزة إضافية، وليس شرطًا أبدًا. عندما يتطابق، يمكننا قبول النتيجة بشكل أسرع. وعندما لا يتطابق، فهذا ليس خطأً – بل على الأرجح سيارة أوروبية، ويتحمل نظام تصويت الإطارات العبء بدلًا منه.

رقم VIN الخاص بك لا يغادر هاتفك مطلقًا

من المفيد توضيح ذلك صراحةً: إطارات الكاميرا تتم معالجتها بالكامل على جهازك. يتم تنزيل نماذج الذكاء الاصطناعي إلى متصفحك؛ صورك لا تُرسل إلى أي مكان مطلقًا. لا يوجد خادم يقوم بعملية التعرّف، ولا توجد صورة مخزّنة في السحابة. الشيء الوحيد الذي يغادر هاتفك هو رقم VIN النهائي المكوَّن من 17 خانة – وذلك فقط عندما تنتقل إلى صفحة التقرير. لم يكن هذا قرارًا متعلقًا بالخصوصية فقط. بفضله يكون الماسح أيضًا سريعًا (لا حاجة للذهاب والإياب إلى الخادم مع كل إطار) ويعمل حتى مع ضعف التغطية في مرآب تحت الأرض – أي بالضبط في المكان الذي تقف فيه غالبًا بجوار رقم VIN.

كيف يبدو ذلك عمليًا

في اختباراتنا، أرقام VIN على الزجاج الأمامي، والملصقات على الأبواب، رقم VIN المضروب على برج ممتص الصدمات، وحتى شهادة التسجيل – عادةً ما يحدد الماسح رقم VIN الصحيح في ثانية إلى أربع ثوانٍ. بعض النصائح الصريحة لتسريع ذلك:

  • الإضاءة هي الأهم. زر تشغيل المصباح ليس موجودًا عبثًا – الأرقام المنقوشة لرقم الهيكل (VIN) في حجرة المحرك تعشق ذلك.
  • اقترب كثيرًا. يجب أن يملأ رقم VIN إطار المساعدة تقريبًا.
  • لا تسعَ إلى الثبات التام. لست بحاجة إلى يد مستقرة تمامًا – نظام التصويت صُمّم تحديدًا ليتعامل مع الحركات البسيطة التي تقوم بها اليد الحقيقية.

تحت غطاء المحرك، باختصار

للمهتمين بالتفاصيل التقنية: الاكتشاف يعمل على نموذج مبني على YOLO مُصدَّر إلى ONNX، والتعرّف هو نموذج PaddleOCR مضبوط خصيصًا مع أبجدية مقيّدة بأحرف أرقام VIN، وكلاهما يعملان في بيئة تشغيل واحدة مبنية على WebAssembly (ONNX Runtime) داخل عامل ويب (web worker)، مما يجعل الصفحة تظل سريعة الاستجابة. تصحيح المنظور بين النموذجين – أي تسوية الشريط المائل الذي يحتوي على رقم VIN – هي نفس الرياضيات التي تستخدمها تطبيقاتك لمسح المستندات ضوئيًا. كل ما تبقّى هو هندسة دقيقة حول مبدأ واحد: قراءات رخيصة، تُنفَّذ كثيرًا، وتُتحقَّق عبر التطابق.

تعليم الماسح كيف يبدو رقم VIN

أضفنا مؤخرًا “نموذجًا” ثالثًا – وهو ليس شبكة عصبونية. إنه خريطة إحصائية لكيفية ظهور أرقام VIN الحقيقية، مبنية من أكثر من نصف مليون رقم VIN أصلي من سجلات المركبات الأوروبية والأمريكية.

إليك الفكرة. رقم VIN ليس سلسلة عشوائية – بل له قواعد. الأحرف الثلاثة الأولى تحدّد الشركة المصنّعة، والثمانية التالية تُرمّز الطراز وسنة الصنع والمصنع، وكل صانع يتبع أنماطه الصارمة الخاصة (تعشق فولكسفاجن WVWZZZ…، ولدى BMW لهجتها الخاصة). لذا عندما يقرأ الـ OCR ‏WVW2ZZ…، يعرف نموذجنا اللغوي أن وجود 2 في ذلك الموضع أقل احتمالًا بآلاف المرات من Z – ويفضّل بهدوء القراءة التي كانت الشركة المصنّعة ستضربها فعلًا.

بدلًا من ترك شبكة القراءة تختار الحرف الأكثر احتمالًا وحده في كل موضع وتأمل الأفضل، يستكشف الماسح الآن عدة قراءات مرشّحة في آنٍ واحد (تقنية تُسمى beam search) ويقيّم كل واحدة منها بناءً على ما تقوله البكسلات وأيضًا ما تقوله قواعد رقم VIN. يكون العائد أكبر ما يكون تحديدًا حيث يكون المسح أصعب: أرقام VIN المضروبة في المعدن العاري، حيث يتسلل حرف مجاور إلى الاقتصاص أو يسقط حرف مهترئ. في أصعب مقطع اختبار لدينا، ارتفعت نسبة الإطارات المقروءة بشكل مثالي من نحو 1 من كل 9 إلى 3 من كل 4.

يستحق درس واحد من الاختبار المشاركة: القارئ الأذكى قارئ أكثر اتساقًا – بما في ذلك حين يخطئ باتساق. في البداية، أخطأ الماسح المُحدَّث في قراءة رقم مهترئ بالطريقة نفسها إطارًا بعد إطار، واتفقت الإطارات بسرور على الإجابة الخاطئة. كان الحل هو رفع السقف: مع تفعيل النموذج اللغوي، يطلب نظام التصويت الآن تأكيدًا مستقلًا إضافيًا قبل قبول أي نتيجة. الدقة أمر جميل؛ لكن الدقة الجديرة بالثقة هي المنتج الحقيقي.

وتماشيًا مع كل ما سبق: النموذج اللغوي ملف بحجم 190 كيلوبايت يُنزَّل مع بقية النماذج ويعمل بالكامل على هاتفك. ولا يزال رقم VIN الخاص بك لا يغادر جهازك أبدًا.

جرّب بنفسك: وجّه هاتفك إلى زاوية الزجاج الأمامي لأي سيارة ثم امسح رقم VIN ضوئيًا.

مسح رقم الهيكل (VIN)