كيفية بناء مصنف صورة جيد بجنون في أقل من 10 دقائق

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

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

أول الأشياء أولاً ، ستحتاج إلى Python. إنها لغة برمجة بسيطة وفعالة وصريحة تستخدم في كل صناعة تقريبًا. أعتقد أيضًا أن تعلّمها أمر أساسي مثل محو الأمية في Microsoft Word.

صفحة التثبيت هنا. انتزاع بيثون 2.7 والبريد المزعج فوق طريقك من خلال الإعداد. التالي هو TensorFlow ، مكتبة مفتوحة المصدر لبرمجة تدفق البيانات. إذا كنت تستخدم جهاز Mac ، فيمكنك فتح الجهاز وتشغيله ببساطة:

نقطة تثبيت tensorflow

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

عظيم! الآن لدينا كل التبعيات اللازمة. لنبدأ باستنساخ مستودع TensorFlow. نحن نستخدم متغيرًا خاصًا يوفره Google والذي يأتي مع بعض البرامج النصية الرائعة. افتح المحطة الطرفية وقم بتشغيل:

git clone https://github.com/googlecodelabs/tensorflow-for-poets-2
مؤتمر نزع السلاح tensorflow مقابل الشعراء - 2

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

حليقة http://download.tensorflow.org/example_images/flower_photos.tgz
    | القطران xz -C tf_files

يقوم هذا بتنزيل صور خمسة أنواع مختلفة من الزهور في مستودعنا.

ls tf_files / flower_photos

يجب أن تطبع كافة المجلدات الإضافية في دليل flower_photos.

ديزي /
الهندباء /
ورود/
عباد الشمس /
الخزامى /
ترخيص. txt

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

تابعت نفس بنية المجلد أعلاه وقمت بإنشاء مصنف للقمامة (المزيد حول ذلك لاحقًا). إليك كيفية البحث في الإعداد عن مرجع مرئي:

فقط الانتباه إلى garbage_photos. المجلدات الأخرى مخصصة لخطوات ما بعد التدريب.داخل garbage_photos. يجب أن تكون جميع صورك مفصولة عن الفئات.دليل الزجاج كمثال.

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

IMAGE_SIZE = 224
العمارة = "mobilenet_0.50 _ $ {IMAGE_SIZE}"
الثعبان -M البرامج النصية.
  - زجاجة زجاجية = tf_files / عنق الزجاجة \
  --model_dir = tf_files / models / "$ {ARCHITECTURE}" "\
  --summaries_dir = tf_files / training_summaries / "$ {ARCHITECTURE}" "\
  --output_graph = tf_files / retrained_graph.pb \
  --output_labels = tf_files / retrained_labels.txt \
  --architecture = "$ {ARCHITECTURE}" \
  --image_dir = tf_files / YOUR_IMAGE_DIRECTORY_HERE

املأ YOUR_IMAGE_DIRECTORY_HERE بمجلد الصور الذي قمت بتنزيله. سوف تستغرق خطوة التدريب في أي مكان من 30 دقيقة إلى ساعة. لا تقلق إذا استغرق الأمر بعض الوقت - فهذا يعتمد اعتمادًا كبيرًا على مواصفات جهاز الكمبيوتر الخاص بك. بمجرد الانتهاء ، ومع ذلك ، لديك مصنف صورة جاهزة للاختبار!

قم بتنزيل صورة من الويب ، أو التقط صورة واحدة باستخدام هاتفك ، وقم بتشغيل الأمر التالي:

python -m scripts.label_image \
    - الرسم = tf_files / retrained_graph.pb \
    --image = YOUR_PATH_TO_IMAGE_HERE

مرة أخرى ، استبدل YOUR_PATH_TO_IMAGE_HERE بمسار ملف الصورة التي قمت بتنزيلها للتو. عند تشغيل الخط ، سترى نتائج احتمالية حول ما تحتويه الصورة!

لقد قمت بإنشاء مصنف للقمامة يتعرف على ستة أنواع مختلفة من القمامة: الورق المقوى والزجاج والورق والمعادن والقمامة والبلاستيك. فيما يلي بعض الأمثلة الخاصة بي:

python -m scripts.label_image \
    - الرسم = tf_files / retrained_graph.pb \
    --image = / المستخدمين / نيخيل / سطح المكتب / beerbottle.jpg
الزجاج مع احتمال 0.996. كل شيء يبدو جيدا!
python -m scripts.label_image \
    - الرسم = tf_files / retrained_graph.pb \
    --image = / المستخدمين / نيخيل / سطح المكتب / package.jpg و
القمامة مع الاحتمال 0.984.

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