هذا تطبيق واقعي لـ CNN على Python 3 وKeras وTensorFlow. نحن نعمل في خطوتين رئيسيتين باستخدام Preprocess.py
الذي ينشئ صورًا رقمية غير مصطنعة يتم تغذيتها لاحقًا إلى نموذج CNN في train.py
الذي يقوم بتدريب نموذج CNN وحفظه.
تم تطوير أداة حل رموز التحقق captcha هذه لاستخدامها ويتم استخدامها حاليًا في metu-NTE-scraper للالتفاف حول حماية captcha لبوابة الطلاب في METU للتحقق من سعة الدورة التدريبية https://student.metu.edu.tr/. ولكن يمكنك استخدامه في تطبيقك بخطوات بسيطة موضحة في كيفية استخدامه؟ قسم.
لقد قمت بتدريب CNN باستخدام TensorFlow لتصنيف صور أرقام captcha بعد استخراج الأرقام. يتكون النموذج من طبقتين تلافيفيتين وطبقات تجميعية تليها طبقة متصلة بالكامل. لقد قمت بتدريب النموذج على مجموعة بيانات مكونة من 10000 صورة CAPTCHA والتي تم تقسيمها لاحقًا إلى 60000 صورة رقمية وحققت دقة اختبار تبلغ 99.94% في مجموعة اختبار img المكونة من 12000 رقم.
دقة التدريب والاختبار للنموذج هي:
ملحوظة: يمكن رؤية بعض صور استجابات الخلايا العصبية التنشيطية أسفل الخطوات الأربع للمعالجة المسبقة
predict.py
إلى برنامج python الخاص بك: Import predict
predict_captcha
باستخدام مسار ملف صورة captcha باعتباره الوسيط الوحيد للتنبؤ برمز التحقق filepath="pathtocaptchaimage"
prediction=predict.predict_captcha(filepath)
للمساعدة في فهم مستخرج الأرقام والنموذج، نعرض لك خطواتهم المرئية
يعمل Preprocess.py
في 4 خطوات لإنشاء صور رقمية موضحة أدناه مع عمليات تنشيط النموذج في النهاية
في الخطوة الأولى، نقوم بمسح العناصر الموجودة في صور captcha التي تم جمعها باستخدام SampleCollecter.py
الصورة الأصلية | بعد إزالة قطعة أثرية |
---|---|
في وقت لاحق، يتم قص الصورة غير المصطنعة لربط أرقام رمز التحقق
بعد إزالة قطعة أثرية | مقطوعة |
---|---|
يتم استخدام وسائل K الموزونة للعثور على مراكز كل رقم
مقطوعة | النقط الوسطى |
---|---|
وأخيرًا، نقوم بإنشاء صور رقمية باستخدام النقط الوسطى الموجودة في وسائل k
النقط الوسطى | أرقام |
---|---|
بعد استخراج الارقام . يتم استخدام نموذج CNN للتنبؤ بصور الكابتشا. يتم هنا إنشاء خلايا عصبية تنشيطية للطبقة التلافيفية الأخيرة من شبكة CNN. تم إنشاء هذه الصور عن طريق استخراج مخرجات الطبقة التلافيفية الأخيرة وتصورها كصورة. تظهر صور التنشيط أدناه استجابة بعض المرشحات في الطبقة التلافيفية الأخيرة المكونة من رقمين.
الرقم المستخرج | التنشيط 10 | التنشيط 18 | التنشيط 26 | التنشيط 29 |
---|---|---|---|---|
ملاحظة: لرؤية استجابات الخلايا العصبية الأخرى يمكنك التحقق من التنشيط