سؤال

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

يوجد حلول يستخدمان البشر لحل Captcha نيابة عن المستخدم ، مثل Webvisium و سولونا, ، لكن هذه تعتمد على توفر مشغلي المتطوعين (على سبيل المثال ، يبدو أن Solona لديه متطوع واحد فقط ، لذا عليك أن تأمل أن يكون مستيقظًا عندما تريد المساعدة).

يحدث لي أن حجم حلول Captcha التي يحتاجها المكفوفين منخفض للغاية - أعتقد أن أقل من بضع مئات في اليوم في بلد مكتظ بالسكان مثل المملكة المتحدة. هذا يعني أنه على عكس الأشخاص السيئين الذين يرغبون في إجراء إجراء عدة مرات في فترة قصيرة ، يمكن لخدمة مساعدة Captcha للمكفوفين تكريس موارد حسابية كبيرة - على سبيل المثال ، مجموعة من أجهزة الكمبيوتر في Amazon EC2 - لتحديد النص المقدم.

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

بعض الملاحظات:

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

  2. أنا يقظ لذلك تم كسر ياهو كابتشا القديم قبل بضع سنوات باستخدام خوارزمية تعمل في ثوانٍ على جهاز كمبيوتر واحد. أنا أسأل ما إذا كان يمكن كسر Captchas الحديثة ، وربما ببطء أكثر ومع مزيد من الموارد.

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

هل كانت مفيدة؟

المحلول

يتكون CAPTCHA من النص بشكل أساسي من ثلاث خطوات فردية:

  1. اكتشف أين توجد الأجزاء المثيرة للاهتمام
  2. تقسيم النص إلى رسائل فردية
  3. التعرف على الحروف

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

موقع مثير للاهتمام لتعلم كيفية كسر Captchas هو الموقع من قبل فريق أبحاث OCR.

نصائح أخرى

تم إنشاء Captcha لتجنب الآلات من اكتشاف الكلمات. من المفترض أن يقرأه البشر فقط. إن جعلها أكثر قابلية للقراءة للأشخاص المكفوفين/الصم يضيفون خطرًا على أن تتمكن الآلات من فهمها مرة أخرى ، وبالتالي إلغاء تأثيرها.

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

يقرأ نمط Recaptcha أيضًا الكلمات. قد يكون تطبيق التعرف على الكلام البسيط قادرًا على التعرف على كل ما يقال ، على الرغم من أن التعرف على الكلام لا يزال يحتاج إلى مزيد من التحسينات. ومع ذلك ، قد ترغب في العمل من تلك الزاوية ، والحصول على التطبيق للاستماع إلى البايت الصوتي بدلاً من ذلك.

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

يمكن إنشاء خوارزمية ، على الرغم من أنها بطيئة. مع 26 حرفًا صغيرًا و 26 أحرفًا و 10 أرقام ، لا ينبغي أن يكون من الصعب للغاية التوصل إلى خوارزمية. مع خطوط Serif و Sans-Serif ، يجب مضاعفة عدد المجموعات. ومع ذلك ، إذا حاولت منحنى جميع الحروف بطريقة مماثلة كحرف في Captcha ، فيجب أن تكون قادرًا على اكتشاف خطاب يتم تغطيته بواسطة خطاب Captcha أكثر من غيره. وهذا سيكون المرشح الأكثر احتمالا. لا يزال يحتاجك إلى إزالة الخطوط والأوساخ وغيرها من المصنوعات اليدوية من الصورة التي تواجه العين البشرية مشكلة أقل في التعرف عليها من الكمبيوتر. ستحتاج إلى الخطوات التالية:

  1. تنظيف الصورة.
  2. اكتشف مواقع الحروف.
  3. لكل حرف 3 أ. تحديد منحنى الحرف عن طريق التحقق من الجانب الأيسر. 3 ب. قم بعمل تراكب لكل حرف/رقم ممكن للعثور على الحرف الذي يغطيه الأفضل. (هذه هي الرسالة الأكثر ترجيحًا.)
  4. بمجرد العثور على الكلمة ، قم بفحص قاموس للتأكد من أنها كلمة حقيقية. (ما لم يستخدم Captcha كلمات حقيقية.)

على الرغم من أنه يمكنهم تحريف الحروف الموجودة في Captcha ، إلا أنه من الممكن اكتشاف دوران التلف الذي استخدموه ببساطة من خلال النظر إلى الجانب الأيسر من كل حرف ثم محاولة تطبيق نفس المنحنى على كل حرف. (52 مجموعة ، بالإضافة إلى 10 أرقام ، إذا تم استخدام الأرقام أيضًا.) في الأساس ، ستحاول وضع مربع حول كل حرف ، ثم تحقق من الحرف الذي سيحتوي على أقل كمية من المساحة البيضاء. هذه هي الرسالة الأكثر ترجيحًا.

السبب الرئيسي لعدم استخدام هذا في كثير من الأحيان في OCR هو في الأساس الحاجة إلى السرعة. الخطوة 3A/B تميل إلى أن تكون بطيئة ، خاصة إذا كان عليك أن تأخذ نمط الخط في الاعتبار.


جعل هذه الإجابة أكبر ولكن ردًا على أحد التعليقات:

هناك عدة طرق لتنظيف صورة. ستحتاج إلى بعض تصفية الألوان ، وتقليل الضوضاء وخوارزمية قادرة على التعرف على الخطوط الصاخبة من خلال صورة. ال ديفكون عرض الشرائح التي أشرت إليها تظهر بعض التقنيات البسيطة لتصفية بعض الضوضاء. إنه يوضح أن أداة معالجة الصور الأساسية يمكنها بالفعل جعل الصورة أكثر وضوحًا لكي يقرأها الجهاز. سوف يقوم طمس بسيط بتنظيف نقاط عشوائية وخطوط رقيقة بينما تقوم مرشحات الألوان بتصفية الألوان الصاخبة. تتمثل الخطوة التالية في محاولة وضع صندوق حول كل حرف في Captcha ، على أمل أن يكون النظام قادرًا على التعرف على مواقعه. لا أعرف أي خوارزميات عملية لهذا ولكن يجب أن تكون هناك طرق للتعرف عليها. هناك برامج يمكن أن تنشئ صورًا متجهًا من Bitmaps ، وبالتالي يجب أن يكون هناك برنامج قادر على حساب مربع حول خطاب. من المحتمل أن يكون لهذا المربع زوايا مستطيلة ، وبالتالي سيتعين عليك تشويه جميع الأحرف الـ 52 لتتناسب مع نفس المربع. يجب ألا تحدث مائل أو جريء فرقًا كبيرًا لأن هذه الأنماط مجرد تشوهات إضافية. Serif أو sans-serif لا فرق ، على الرغم من. تميل خطوط الرقيق إلى الحصول على عدد قليل من المسامير والزخارف. لحسن الحظ ، هناك خوارزميات يمكنها تحويل صندوق إلى أي شخصية أخرى بأربعة زوايا.

سوف تفترض تطبيقات OCR العادية أن الرسائل مستقيمة في الغالب وستتحقق من عدد قليل من النقاط الساخنة للعثور على تطابق. وبالتالي ، فإنهم في بعض الأحيان يخطئون بسبب الضوضاء. لتكسير Captcha ، ستحتاج إلى تطابق أكثر حساسية ، ويفضل أن يكون "Xor-ing" صورة حرف Captcha مع صورة لأحد الأحرف الـ 52 ، ثم حساب عدد البقع بالأبيض والأسود لحساب النسبة. على افتراض اللون الأبيض = 1 والأسود = 0 ، يجب أن تكون نتيجة XOR أسود تقريبًا لأفضل تطابق.

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


تعليق آخر ، المزيد من النص. :-)

سيكون التجزئة مشكلة ، لكن ليس من المستحيل حلها. انها مجرد معقدة للغاية. ولكن عندما تقوم بتنظيف الصورة ، يجب أن يكون من الممكن حساب سطرين. سطر واحد يلامس الجزء السفلي من كل حرف والخط الثاني الذي يلمس الجزء العلوي. ومع ذلك ، لن تضع Good Captcha رسائل على نفس الخطوط بعد الآن ، ولكن يمكن تكسير تلك غير المقدمة من خلال متابعة الخطوط. (تخمين؟ recaptcha يضع الحروف بين سطرين!) مع سطرين ، فأنت تعلم أن الحرف الأول سيبدأ من اليسار ، وبالتالي يمكنك محاولة تراكب جميع الاحتمالات الـ 52 هناك حتى تجد تطابقًا. عندما تجد واحدة ، انتقل إلى اليمين للثاني. وأبعد حتى تقرأ جميع الرسائل. مع سطرين لإرشادك ، لا تحتاج إلى صندوق كامل.

تميل الرسائل إلى استخدام نسبة ثابتة بين العرض والارتفاع. مع سطرين ، يمكنك حساب ارتفاع الحرف الكامل وبالتالي الحصول على تقدير جيد لعرض المطابقة.

ومع ذلك ، فإن العمل على الخوارزمية الصحيحة لحساب كل هذا أمر أكثر من اللازم لمهارات الرياضيات السيئة. ستحتاج إلى عالم رياضيات خبير لكسر هذه الخوارزمية.

إجابتي على سؤالك "هل هذه المشكلات قابلة للشفاء حقًا حتى مع الكثير من الموارد والوقت؟" هو الإشارة إلى أن هذا هو السبب في أن Captchas تعمل.

ما أفهمه هو أن الغرض من Captcha هو إثبات أنك إنساني وليس روبوتًا بالبريد العشوائي. RecaptChas عبارة عن رواية تتناول هذا الموضوع لأنها تلتقط صورًا تمثل نصًا لا يمكن حله بواسطة محركات التعرف على الحروف الضوئية (التعرف على الحروف الضوئية). الفرق بين الشخص والآلة في هذه الحالة هو أن الخوارزمية المتخصصة قد حاولت تفسير هذه الصورة وفشل في حين أن الشخص "الطبيعي" لديه القدرة الجوهرية على تفسير النص بطريقة بشرية باستمرار. ومع ذلك ، نأمل في المستقبل أن يأتي شخص ما بمحركات OCR أفضل بحيث يكون هناك تدخل بشري أقل في ترقيم معلومات العالم. نأمل أن يأتي شخص ما بحل قابل للتدريب لهذه المشكلة بالذات.

من وجهة نظرك عن محاولة جعل Captchas أكثر سهولة للمكفوفين - الذين ما زالوا بحاجة إلى إثبات أنهم أشخاص بدلاً من روبوتات البريد العشوائي - يحتاج المجتمع إلى إدراك هذه القضية وإيجاد طريقة للتعرف على الناس في طريقة أقل تركز على الرؤية.

من المؤكد أن إدخال Captcha جعل شبكة الويب أقل سهولة في ضعف البصر ، وأنا أتفق معك في الإشارة إلى هذا كمشكلة مهمة تستحق المزيد من الاهتمام والقلق. ومع ذلك ، في حين أن Captcha يمكن أن يكون وتم تجاوزه بشكل غير متسق على مواقع الويب الشهيرة ، لا أعتقد أن هذا حل طويل الأجل قابل للتطبيق لأولئك المحتاجين. في الواقع ، يمكن أن يكون اليوم الذي سيصبح فيه متغيرات Captcha الموجودة حاليًا على مواقع مثل Facebook و Google و MySpace وما إلى ذلك بشكل موثوق ومستمر اليوم هو اليوم الذي ستصبح فيه عتيقة وتخلي عن متغيرات أقوى من نفس الشيء أو حل جديد تمامًا (مثل أنت كان من الضمني ، التمييز بين القطط من الكلاب في الصور اتجاه بديل شعبي).

عندما يتعلق الأمر بإمكانية الوصول عبر الإنترنت ، فإن ما أعتقد أن أولئك الذين يعانون من إعاقة يحتاجون إليه الآن هو الدعوة. كلما زاد عدد الأشخاص الذين يتصلون من شركات البرمجيات ، ومجموعات المصادر المفتوحة ، وأجسام المعايير والتحدث عن هذه الحاجة ، فسيتم إثارة المزيد من الوعي وسيؤدي ذلك (نأمل) إلى مزيد من الإجراءات نيابة عن مجتمع التنمية. في النهاية ، سيكون من الرائع رؤية مواقع مثل Google أو Facebook التي تقدم طرق وصول بديلة لمستخدميها المعاقين بصريًا.

وبصرف النظر عن المثالية ، أعتقد أنه من المنتظم متابعة سبل أخرى كما ذكرت مع شبكة Captcha Volunteer ، وربما حتى تطوير شيء مثل OpenID لأولئك الذين يعانون من إعاقات ذات صلة كمرحلة التحقق من صحة النموذج العالمي.

أما بالنسبة للجانب الفني لسؤالك ، فلا أعتقد أن توفر قوة معالجة إضافية وحدها سيسمح لك بتقسيم Captcha بشكل موثوق ومتسق. هناك الكثير من المال في البريد العشوائي ، ويمكنك أن تكون متأكدًا من أن شركات SEO و SPAMMAND المظللة على حد سواء لديها عدد كبير من الخوادم تحت تصرفها. كما ذكر يوهانس روسيل ، إذا كنت ترغب في معرفة المزيد حول كيفية القيام بذلك وحيث تكمن الصعوبة التقنية ، فإن البحث في التعرف على الشخصية البصرية (OCR) والنظر في مجموعة واسعة من انحراف الأرقام/الحروف التي تحدث على مواقع حركة المرور عالية.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top