التحقق من هوية عملائنا كان يستغرق أياماً: كيف أنقذني ‘التعرف الضوئي على الحروف’ (OCR) والذكاء الاصطناعي من جحيم الـ KYC اليدوي؟

أذكر ذلك اليوم جيدًا، كان يوم ثلاثاء في مكتبي الصغير. رائحة القهوة الثقيلة تملأ المكان، وعلى طاولتي أكوام من الأوراق المطبوعة، أو بالأحرى صور هويات وجوازات سفر أرسلها عملاء جدد لفتح حسابات في منصتنا المالية. كنت أنا وفريقي الصغير غارقين حتى آذاننا في عملية التحقق اليدوية، أو ما يُعرف في عالم الأعمال بـ “اعرف عميلك” (KYC).

كانت العملية أشبه بالجحيم على الأرض. شاب من الفريق يفتح صورة الهوية، يحاول بصعوبة قراءة الاسم المكتوب بخط غير واضح، ثم ينقله إلى نظامنا. فتاة أخرى تدقق في تاريخ الميلاد وتاريخ انتهاء الصلاحية، وتتأكد أن الصورة في الهوية تشبه “السيلفي” الذي أرسله العميل. كنت أسمعهم يتمتمون بكلمات مثل “الصورة مغبشة!” أو “مش قادر أقرأ الرقم الوطني يا زلمة!”. كانت الأخطاء المطبعية تتراكم، والعملاء ينتظرون أيامًا لتفعيل حساباتهم، والضغط يزداد علينا يومًا بعد يوم.

في تلك اللحظة، نظرت إلى كومة الأوراق الرقمية أمامي وقلت لنفسي: “يا أبو عمر، إنت زلمة تبع ذكاء اصطناعي وبرمجة، معقول ما في حل لهالمعاناة؟ شو هالحكي!”. كانت تلك هي الشرارة التي بدأت رحلة طويلة ومثمرة، رحلة نقلتنا من أيام من العمل اليدوي المُضني إلى ثوانٍ من التحقق الآلي الدقيق. تعالوا أحكي لكم القصة بالتفصيل.

ما هو الـ KYC ولماذا هو صداع في رأس كل شركة؟

قبل أن نغوص في الحلول التقنية، دعونا نفهم أصل المشكلة. مصطلح KYC هو اختصار لـ Know Your Customer أو “اعرف عميلك”. هي ليست مجرد إجراء روتيني، بل هي متطلب قانوني تفرضه الحكومات والهيئات التنظيمية على الشركات، خصوصًا في القطاع المالي (بنوك، منصات تداول، محافظ رقمية)، لمنع عمليات غسيل الأموال وتمويل الإرهاب والاحتيال.

ببساطة، يجب على أي شركة تتعامل مع أموال الناس أن تتأكد من هوية عملائها الحقيقية. وهذا يتضمن جمع والتحقق من صحة معلوماتهم الشخصية.

كيف كانت تبدو عملية الـ KYC اليدوية الكارثية؟

لتتخيلوا حجم المعاناة، كانت العملية تسير كالتالي:

  1. العميل يقوم بالتسجيل ويرفع صورة عن مستند إثبات شخصية (هوية وطنية، جواز سفر) وصورة شخصية له (سيلفي).
  2. تصل هذه المستندات إلى قائمة انتظار لدينا.
  3. يقوم أحد موظفينا (الضحية) بفتح صورة الهوية.
  4. يبدأ الموظف بنقل البيانات يدويًا من الصورة إلى حقول في نظامنا: الاسم الكامل، الرقم الوطني، تاريخ الميلاد، تاريخ الإصدار، تاريخ الانتهاء، إلخ.
  5. يقارن الموظف بصريًا بين صورة العميل في الهوية وصورة السيلفي ليتأكد من تطابقهما.
  6. يتحقق من أن المستند ليس منتهي الصلاحية.
  7. يحاول (بكل ما أوتي من قوة) اكتشاف أي علامات تزوير واضحة.
  8. أخيرًا، يوافق على الحساب أو يرفضه مع طلب مستندات أوضح.

هذه العملية كانت تستغرق ما بين 15 دقيقة إلى نصف ساعة لكل عميل، هذا إذا كانت المستندات واضحة! أما مشاكلها فكانت لا تعد ولا تحصى: بطيئة جدًا، مكلفة (وقت الموظفين = مال)، مليئة بالأخطاء البشرية (typos)، وغير قابلة للتوسع. إذا أردنا خدمة 1000 عميل جديد في اليوم، فسنحتاج إلى جيش من الموظفين!

المنقذ الأول: التعرف الضوئي على الحروف (OCR) – كيف يقرأ الكمبيوتر المستندات؟

هنا بدأ الحل يتبلور. أول تقنية فكرت فيها كانت التعرف الضوئي على الحروف (OCR). تخيل أنك تعلّم الكمبيوتر القراءة تمامًا كما يتعلم الطفل الصغير الأبجدية، لكن بسرعة خارقة. الـ OCR هي تقنية تحول الصور التي تحتوي على نصوص (مثل صورة هويتك) إلى نصوص حقيقية يمكن للكمبيوتر فهمها والتعامل معها.

كيف يعمل الـ OCR؟ (خطوات مبسطة)

وراء الكواليس، تمر عملية الـ OCR بعدة مراحل معقدة، ولكن يمكن تبسيطها كالتالي:

  • المعالجة المسبقة للصورة (Image Pre-processing): هذه أهم خطوة. يتم فيها “تنظيف” الصورة لجعلها أسهل للقراءة. تشمل عمليات مثل تحويل الصورة إلى أبيض وأسود (Binarization)، إزالة الشوائب والنقاط العشوائية (Noise Removal)، وتصحيح ميلان الصورة (Deskewing).
  • تحليل التخطيط (Layout Analysis): يقوم النظام بتحديد أماكن وجود النصوص، وأماكن الصور، والجداول. يفصل كل جزء ليتعامل معه بشكل مستقل.
  • التعرف على الحروف (Character Recognition): هذه هي نواة العملية. يستخدم النظام خوارزميات مدربة مسبقًا للتعرف على كل حرف على حدة.
  • المعالجة اللاحقة (Post-processing): بعد استخراج النص، قد تحدث بعض الأخطاء (مثلاً، الخلط بين الرقم ‘1’ وحرف ‘l’ أو ‘0’ و ‘O’). هنا، يمكن استخدام قواميس لغوية أو نماذج إحصائية لتصحيح هذه الأخطاء بناءً على السياق.

مثال عملي باستخدام Python ومكتبة Tesseract

لنأخذ مثالًا بسيطًا باستخدام لغة بايثون ومكتبة Tesseract، وهي أشهر محرك OCR مفتوح المصدر. أولاً، ستحتاج إلى تثبيت المكتبات اللازمة:

pip install pytesseract pillow
# ستحتاج أيضًا إلى تثبيت محرك Tesseract نفسه على نظام التشغيل الخاص بك

لنفترض أن لدينا صورة بسيطة لهوية اسمها “id_card.png”. الكود التالي سيحاول قراءة النص منها:

import pytesseract
from PIL import Image

# حدد مسار Tesseract إذا لم يكن في المسار الافتراضي للنظام
# pytesseract.pytesseract.tesseract_cmd = r'C:Program FilesTesseract-OCRtesseract.exe'

try:
    # فتح الصورة
    img = Image.open('id_card.png')

    # استخدام Tesseract لاستخراج النص باللغة العربية والإنجليزية
    text = pytesseract.image_to_string(img, lang='ara+eng')

    print("النص المستخرج من الصورة:")
    print(text)

except FileNotFoundError:
    print("خطأ: لم يتم العثور على ملف الصورة 'id_card.png'")
except Exception as e:
    print(f"حدث خطأ: {e}")

نصيحة من أبو عمر: استخدام Tesseract مباشرةً كان خطوتنا الأولى، ولكنه لم يكن كافيًا. الهويات وجوازات السفر تأتي بتصاميم مختلفة، خطوط متنوعة، وجودة صور متفاوتة. كان النص المستخرج فوضويًا وغير منظم. هنا أدركنا أننا لا نحتاج فقط إلى “قراءة” النص، بل إلى “فهمه”.

عندما لا يكفي الـ OCR وحده: دور الذكاء الاصطناعي (AI) في فهم السياق

الـ OCR الخام يعطيك كتلة من النصوص. قد يستخرج “أبو عمر الفلسطيني 15/01/1980 987654321”. لكنه لا يعرف أن “أبو عمر الفلسطيني” هو الاسم، و”15/01/1980″ هو تاريخ الميلاد، و”987654321″ هو الرقم الوطني. هنا يأتي دور الذكاء الاصطناعي ليضيف طبقة من “الذكاء” والفهم.

النماذج اللغوية (NLP) واستخراج الكيانات المسماة (NER)

استخدمنا تقنية تسمى Named Entity Recognition (NER)، وهي فرع من معالجة اللغات الطبيعية (NLP). قمنا بتدريب نموذج ذكاء اصطناعي على آلاف الأمثلة من الهويات. تعلم هذا النموذج أن يتعرف على أنماط معينة ويصنفها.

على سبيل المثال، تعلم النموذج أن:

  • أي نص يتبع كلمة “الاسم” أو يأتي في أعلى المستند هو على الأرجح PERSON_NAME.
  • أي سلسلة من 9 أرقام هي على الأرجح ID_NUMBER.
  • أي نص بصيغة DD/MM/YYYY هو DATE.

وهكذا، بدلاً من الحصول على نص فوضوي، بدأنا نحصل على بيانات منظمة وجاهزة للاستخدام.

الرؤية الحاسوبية (Computer Vision) لأكثر من مجرد قراءة

لم تتوقف مساهمة الذكاء الاصطناعي عند فهم النصوص. استخدمنا تقنيات الرؤية الحاسوبية المتقدمة لأتمتة باقي المهام:

  • مطابقة الوجوه (Face Matching): بدلاً من أن يقارن الموظف الصور بعينيه، قامت خوارزميات الذكاء الاصطناعي بتحليل ملامح الوجه في صورة الهوية وملامح الوجه في صورة السيلفي، وحساب “متجهات” رياضية لكل وجه، ثم مقارنة هذه المتجهات لتعطينا نسبة تشابه دقيقة (e.g., 98.5% match).
  • التحقق من الحيوية (Liveness Detection): للتأكد من أن العميل شخص حقيقي يلتقط سيلفي مباشر وليس مجرد صورة لصورة، طلبنا منه القيام بحركة بسيطة أثناء التصوير (مثل الابتسام أو تحريك رأسه يمينًا ويسارًا). تقوم الخوارزميات بتحليل الفيديو القصير للتأكد من أنها حركة ثلاثية الأبعاد لشخص حي.
  • التحقق من أصالة المستند (Document Authenticity): تدربت نماذج أكثر تعقيدًا على اكتشاف علامات التزوير الدقيقة، مثل البحث عن العلامات المائية (Watermarks) أو الشعارات ثلاثية الأبعاد (Holograms) التي تظهر تحت إضاءة معينة، أو حتى اكتشاف التلاعب الرقمي بالصورة (Photoshop).

بناء نظام KYC آلي: خارطة الطريق من تجربتي الشخصية

بعد كل هذه التجارب، إليكم خارطة طريق عملية لمن يريد بناء نظام مماثل.

المرحلة الأولى: اختيار الأدوات المناسبة

أمامك ثلاثة خيارات رئيسية:

  1. البناء من الصفر (صعب ومكلف): باستخدام مكتبات مثل Tesseract, OpenCV, TensorFlow, spaCy. هذا الخيار يمنحك تحكمًا كاملاً ولكنه يتطلب فريقًا خبيرًا ووقتًا طويلاً جدًا. لا أنصح به إلا للشركات الكبيرة جدًا.
  2. استخدام خدمات سحابية (أسرع وأسهل): منصات مثل AWS Textract, Google Vision AI, و Microsoft Azure Form Recognizer تقدم واجهات برمجية (APIs) جاهزة تقوم بالكثير من العمل الشاق. أنت ترسل الصورة، وهي تعيد لك البيانات منظمة. هذا هو الخيار المفضل لمعظم الشركات.
  3. استخدام مزود خدمة KYC متخصص (الحل الجاهز): هناك شركات كل عملها هو توفير حلول KYC متكاملة. أنت فقط تقوم بربط نظامك معهم عبر API وهم يتولون كل شيء. هذا الخيار هو الأسرع إطلاقًا ولكنه قد يكون الأعلى تكلفة.

المرحلة الثانية: تصميم تدفق العمل (Workflow)

بغض النظر عن الأداة، سيكون تدفق العمل متشابهًا:

  1. العميل يرفع المستندات (هوية أمامية، خلفية، سيلفي) من خلال تطبيقك.
  2. نظامك الخلفي (Backend) يرسل هذه الصور إلى خدمة الـ AI/OCR.
  3. الخدمة تعالج الصور وتعيد لك النتائج على شكل ملف JSON منظم.
  4. يقوم نظامك بالتحقق من صحة البيانات المستخرجة (هل الهوية منتهية الصلاحية؟ هل العمر مناسب؟ هل نسبة تطابق الوجه عالية؟).
  5. بناءً على قواعد تحددها أنت:
    • إذا كانت كل النتائج ممتازة ونسبة الثقة (Confidence Score) عالية (مثلاً فوق 95%)، يتم قبول العميل تلقائيًا. ✅
    • إذا كانت نسبة الثقة متوسطة أو هناك عدم تطابق بسيط، يتم إرسال الحالة إلى قائمة انتظار للمراجعة اليدوية (Human in the loop). هذا يضمن الدقة ويقلل العبء على الموظفين بشكل هائل. 🕵️
    • إذا كانت النتائج سيئة جدًا (صورة غير واضحة، تزوير محتمل)، يتم رفض الطلب تلقائيًا مع إرسال رسالة للعميل. ❌

مثال على مخرجات JSON من خدمة KYC

هذا ما قد تبدو عليه البيانات التي تتلقاها من الخدمة، مما يسهل على نظامك اتخاذ القرار:

{
  "document_type": "ID_CARD",
  "country_code": "PS",
  "extracted_data": {
    "full_name": "أبو عمر الفلسطيني",
    "id_number": "987654321",
    "date_of_birth": "1980-01-15",
    "expiry_date": "2030-01-14",
    "address": "القدس، فلسطين"
  },
  "validation_checks": {
    "is_expired": false,
    "is_tampered": false,
    "mrz_checksum_valid": true
  },
  "face_match": {
    "match": true,
    "confidence": 0.987
  },
  "liveness_check": {
    "passed": true,
    "type": "BLINK_DETECTED"
  },
  "overall_confidence": 0.97
}

نصائح من قلب الميدان (من أبو عمر)

  • الجودة أهم من كل شيء: علّموا ورشّدوا عملائكم على كيفية التقاط صور واضحة وغير مقصوصة، بدون انعكاسات ضوئية. 80% من مشاكل الـ OCR سببها الصور السيئة.
  • لا تثق بالآلة ثقة عمياء: ابدأ دائمًا بوجود “مراجعة بشرية” للحالات المشكوك فيها. هدفك هو تقليل العمل اليدوي، وليس إلغاؤه تمامًا من اليوم الأول.
  • فكر في الخصوصية والأمان: بيانات الهويات حساسة جدًا. تأكد من تشفيرها أثناء النقل والتخزين، وتحديد من يمكنه الوصول إليها، والالتزام بقوانين حماية البيانات.
  • ابدأ صغيرًا ثم توسع: لا تحاول دعم كل أنواع المستندات من كل دول العالم دفعة واحدة. ابدأ بالهوية الوطنية وجواز السفر في بلدك أو سوقك الرئيسي، ثم أضف المزيد تدريجيًا.
  • التجربة خير برهان: قبل إطلاق النظام لجميع العملاء، اختبره على أوسع مجموعة ممكنة من المستندات الحقيقية (قديمة، جديدة، مهترئة قليلاً، إلخ) لتعرف نقاط ضعفه وتقويها.

الخلاصة: من أيام إلى ثوانٍ، رحلة تستحق العناء 🚀

رحلتنا مع أتمتة عملية الـ KYC كانت نقلة نوعية. تحولنا من فريق مُرهَق غارق في الأعمال الروتينية إلى فريق يركز على ما هو أهم: تحسين المنتج وخدمة العملاء. العملية التي كانت تستغرق أيامًا وتتسبب في إحباط العملاء، أصبحت الآن تتم في أقل من دقيقة في معظم الحالات.

الفوائد كانت واضحة: زيادة هائلة في السرعة والكفاءة، دقة أعلى وتقليل للأخطاء البشرية، تجربة أفضل بكثير للعميل، وقدرة غير محدودة على التوسع واستيعاب آلاف العملاء الجدد يوميًا دون الحاجة لزيادة حجم الفريق.

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

أبو عمر

سجل دخولك لعمل نقاش تفاعلي

كافة المحادثات خاصة ولا يتم عرضها على الموقع نهائياً

آراء من النقاشات

لا توجد آراء منشورة بعد. كن أول من يشارك رأيه!

آخر المدونات

الحوسبة السحابية

خوادمي كانت تعمل 24/7 لمهمة تستغرق ثوانٍ: كيف أنقذتني “الدوال عديمة الخادم” من جحيم التكاليف؟

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

6 أبريل، 2026 قراءة المزيد
التوظيف وبناء الهوية التقنية

مقابلاتي كانت كارثية: كيف أنقذني نموذج STAR من جحيم الأسئلة السلوكية والرفض المتكرر؟

أنا أبو عمر، مبرمج فلسطيني، وهذه قصتي مع المقابلات الفنية الكارثية. سأشارككم كيف حوّلني نموذج STAR من مبرمج يتلعثم في الإجابة إلى محترف يسرد قصص...

6 أبريل، 2026 قراءة المزيد
التوسع والأداء العالي والأحمال

فشل خدمة واحدة كان يُسقط النظام بأكمله: كيف أنقذني نمط ‘قاطع الدائرة’ (Circuit Breaker) من جحيم الأعطال المتتالية؟

أتذكر جيداً تلك الليلة التي كاد فيها خطأ بسيط في خدمة واحدة أن يدمر إطلاق منتجنا الجديد بالكامل. في هذه المقالة، أشارككم قصة حقيقية وكيف...

6 أبريل، 2026 قراءة المزيد
ادارة الفرق والتنمية البشرية

فريقنا كان ينهار مع كل استقالة: كيف أنقذتني ‘كتيبات التشغيل’ (Playbooks) من جحيم فقدان المعرفة؟

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

5 أبريل، 2026 قراءة المزيد
اختبارات الاداء والجودة

تغطية اختباراتي 100% لكن الكود كان هشًا: كيف أنقذني الاختبار الطفري (Mutation Testing) من جحيم الثقة الزائفة؟

كنت أظن أن تغطية الاختبار بنسبة 100% هي درع الأمان لكودي، لكني كنت مخطئًا. في هذه المقالة، أسرد لكم قصتي مع الثقة الزائفة وكيف كشف...

5 أبريل، 2026 قراءة المزيد
أتمتة العمليات

خوادمنا كانت جزرًا معزولة: كيف أنقذني ‘الكود كبنية تحتية’ (IaC) من جحيم التكوين اليدوي؟

أشارككم قصة حقيقية عن ليلة كابوسية انهارت فيها خوادمنا، وكيف كانت هذه الكارثة هي البداية لتبني مفهوم "الكود كبنية تحتية" (IaC). استكشفوا معي كيف حوّل...

5 أبريل، 2026 قراءة المزيد
البودكاست