لقطة شاشة للمهمة وإصدار الشبكة العصبية pix2code بلغتها الخاصة ، والتي يترجمها المترجم بعد ذلك إلى رمز للنظام الأساسي المطلوب (Android و iOS)تم
تصميم برنامج
pix2code الجديد (
مقالة علمية ) لتسهيل عمل المبرمجين المنخرطين في الأعمال الشاقة لترميز واجهة المستخدم الرسومية.
عادة ما يقوم المصمم بإنشاء تخطيطات للواجهة ، ويجب على المبرمج كتابة التعليمات البرمجية لتنفيذ هذا التصميم. يستغرق مثل هذا العمل وقتًا ثمينًا يمكن للمطور أن يقضيه في مهام أكثر إثارة للاهتمام وإبداعًا ، أي على تنفيذ الوظائف والمنطق الحقيقي للبرنامج ، وليس واجهة المستخدم الرسومية. قريبًا ، يمكن نقل توليد الكود إلى أكتاف البرنامج. إن عرض لعبة للإمكانيات المستقبلية للتعلم الآلي هو مشروع
pix2code ، الذي وصل بالفعل إلى المركز الأول في
قائمة أهم المستودعات على GitHub ، على الرغم من أن المؤلف لم ينشر كود المصدر ومجموعات البيانات لتدريب الشبكة العصبية! مثل هذا الاهتمام الكبير في هذا الموضوع.
ترميز واجهة المستخدم الرسومية مملة. لجعل الأمور أسوأ ، هذه لغات برمجة مختلفة على منصات مختلفة. أي أنك تحتاج إلى كتابة رمز منفصل لنظام Android ، منفصل لنظام iOS ، إذا كان يجب أن يعمل البرنامج بشكل أصلي. يستغرق هذا وقتًا أطول ويجعلك تؤدي نفس المهام المملة. بتعبير أدق ، كان عليه من قبل. يقوم برنامج pix2code بإنشاء كود GUI للمنصات الرئيسية الثلاثة - Andriod و iOS و HTML / CSS عبر الأنظمة الأساسية - بدقة 77٪ (يتم تحديد الدقة باللغة المضمنة للبرنامج - من خلال مقارنة الشفرة التي تم إنشاؤها مع الرمز الهدف / المتوقع لكل نظام أساسي).
وصف مؤلف البرنامج توني
بيلتراميلي من شركة
UIzard Technologies الدنماركية هذا العرض بأنه مفهوم للمفهوم. وهو يعتقد أنه عند القياس ، سيحسن النموذج دقة التشفير وقد يكون قادرًا على إنقاذ الأشخاص من الاضطرار إلى ترميز واجهة المستخدم الرسومية يدويًا.
تم بناء برنامج pix2code على الشبكات العصبية التلافيفية والمتكررة. استغرق التدريب على وحدة معالجة الرسوميات Nvidia Tesla K80 أقل من خمس ساعات - وخلال هذه الفترة ، تم تحسين النظام

معلمات لمجموعة بيانات واحدة. لذا إذا كنت تريد تدريبها على ثلاث منصات ، فسيستغرق الأمر حوالي 15 ساعة.
النموذج قادر على توليد كود عن طريق قبول قيم البكسل فقط من لقطة شاشة واحدة عند الإدخال. وبعبارة أخرى ، لا يلزم وجود خط أنابيب خاص لشبكة عصبية لاستخراج الميزات وبيانات الإدخال للمعالجة المسبقة.
يمكن مقارنة إنشاء رمز الكمبيوتر من لقطة الشاشة مع إنشاء وصف نصي من صورة فوتوغرافية. وفقًا لذلك ، تتكون بنية نموذج pix2code من ثلاثة أجزاء: 1) وحدة رؤية حاسوبية للتعرف على الصور والأشياء المعروضة هناك وموقعها وشكلها ولونها (الأزرار والتعليقات وحاويات العناصر) ؛ 2) وحدة لغة لفهم النص (في هذه الحالة ، لغة برمجة) وتوليد أمثلة صحيحة نحويًا ودلالة ؛ 3) استخدام النموذجين السابقين لإنشاء أوصاف نصية (رمز) للكائنات المعروفة (عناصر واجهة المستخدم الرسومية).

يلفت المؤلف الانتباه إلى حقيقة أنه يمكن تدريب الشبكة العصبية على مجموعة بيانات مختلفة - وبعد ذلك ستبدأ في إنشاء رمز بلغات أخرى لمنصات أخرى. لا يخطط المؤلف نفسه للقيام بذلك ، لأنه يعتبر pix2code نوعًا من الألعاب التي توضح بعض التقنيات التي تعمل عليها شركته الناشئة. ومع ذلك ، يمكن لأي شخص تفرع المشروع وإنشاء تطبيق للغات / منصات أخرى.
في ورقة علمية ، كتب توني بيلتراميلي أنه سينشر مجموعات بيانات لتدريب الشبكة العصبية في المجال العام في المستودع على GitHub. تم إنشاء المستودع بالفعل. هناك ، في قسم الأسئلة الشائعة ، يوضح المؤلف أنه سينشر مجموعات بيانات بعد نشر مقالته (أو رفض نشرها) في
مؤتمر NIPS 2017 . يجب أن يأتي إشعار من منظمي المؤتمر في أوائل سبتمبر ، لذا ستظهر مجموعات البيانات في المستودع في نفس الوقت. ستكون هناك لقطات شاشة لواجهة المستخدم الرسومية ، والرمز المقابل في لغة البرنامج ، وإخراج المترجم للمنصات الرئيسية الثلاثة.
فيما يتعلق بالكود المصدر للبرنامج ، لم يعد مؤلفه بنشره ، ولكن نظرًا للاهتمام الكبير بتطويره ، فقد قرر فتحه أيضًا. سيتم ذلك في وقت واحد مع نشر مجموعات البيانات.
تم
نشر المقالة العلمية في 22 مايو 2017 على موقع ما قبل الطباعة arXiv.org (arXiv: 1705.07962).