כיצד לשפר רזולוציה של תמונה באמצעות למידת מכונה?

מחבר:
בתאריך:

מצאת באינטרנט תמונה קטנה מדי של מוצר שעשוי לעניין אותך ואתה רוצה לראות אותה ברזולוציה גבוהה יותר? או שתמונות שצילמת הם קטנות מכדי שניתן יהיה לשתף אותם ברשת החברתית? מה אפשר לעשות? הפתרון היחיד הוא להעלות את הרזולוציה של התמונות, ואת זה נעשה באמצעות שימוש בבינה מלאכותית. במדריך זה, נלמד כיצד לשפר דרמטית את הרזולוציה של תמונות באמצעות ספריית פייתון פשוטה לשימוש מבוססת למידת מכונה.

את המודל פיתח חוקר של בינה מלאכותית שיצר רשת נוירונית של למידה עמוקה והעלה אותו ל-github לשימוש חופשי. הקישור למודל ESRGAN הוא https://github.com/xinntao/ESRGAN.

היופי במודל שהוא כבר מאומן היות ותהליך האימון של רשת נוירונית דורש כמות עצומה של מידע וזמן.

בדף ה-repo החוקר מציג תוצאות את ה"לפני" ו"אחרי" של שיפור הרזולוציה עבור מספר תמונות עליהם הוא הפעיל את המודל:

esrgan model in action improving the resolution of images as seen in the repo page

 

ארכיטקטורת GAN

המודל ESRGAN מבוסס על ארכיטקטורת GAN. ראשי תיבות של Generative Adversarial Network. לאימון המודל משתמשים בשתי רשתות מתחרות: רשת יוצרת generator ורשת מבחינה discriminator. רשת ה-generator מייצרת תמונות בעוד רשת ה-discriminator מנסה להבחין האם התמונות הם אמיתיות או חיקוי. תהליך האימון נעשה במספר סיבובים, ועם התקדמות האימון ה-generator, שמתחיל מיצור תמונות לא מוצלחות, מתקדם עד ליצירת תמונות שהם חיקוי טוב של המציאות. גם ה-discriminator לא קופא על שמריו, ויכולת ההבחנה שלו הולכת ומשתפרת. תוצאת התהליך הם תמונות חיקוי שמצליחות להטעות את ה-discriminator, ונראות אמיתיות לעין האנושית.

תהליך האימון של המודל ESRGAN כלל איסוף של תמונות באיכות גבוהה וכיווץ שלהם. את התמונה המקורית הזינו ל-discriminator, כדי שילמד את המקור. את התמונה המכווצת הזינו ל-generator כדי שינסה לשפר את האיכות. בכל סיבוב ה-generator הציג את התמונות שהוא יצר ל-discriminator, שניסה לזהות האם הם אמיתיות. במידה והתמונות נראו מזוייפות, ה-generator ניסה שוב עד לקבלת תמונות שנראו אמיתיות.

 

שיפור הרזולוציה של תמונות על המחשב האישי ב-4 צעדים

  1. נתקין את התלויות:
    נתקין את הספרייה PyTorch מדף ההתקנה: https://pytorch.org/get-started/locally/
    אני עובד על מערכת הפעלה לינוקס ללא GPU . בהתאם בחרתי:

    install pytorch on your pc

    * נא להתאים את ההתקנה לנתוני המערכת שלך.
    העתקתי את הפקודה שהוצגה לי בדף ההתקנה בהתאם לקונפוגרציה שהזנתי, והרצתי בשורת הפקודות:
    $ pip3 install torch==1.11.0+cpu torchvision==0.12.0+cpu torchaudio==0.11.0+cpu -f https://download.pytorch.org/whl/cpu/torch_stable.html
    התקנתי בנוסף את התלויות:
    $ pip3 install numpy opencv-python glob2
  2. נוריד את ה-repo מ-github לתיקייה במחשב שלנו באמצעות הפקודה:
    $ git clone https://github.com/xinntao/ESRGAN
    רוצים ללמוד כיצד להתקין git על המחשב ומה זה github? קראו את הפסקאות הראשונות של המדריך עבודה עם git ו-github
    ה-repo כולל 3 תיקיות שנעבוד איתם:
    • models - כאן נשים את המודל שנוריד בצעד הבא
    • LR - כאן נשים את התמונות באיכות הנמוכה
    • results
  3. מתיקייה ב- google drive https://drive.google.com/drive/u/0/folders/17VYV_SoZZesU6mbxz2dMAIccSSlqLecY בה קיימים מספר מודלים מאומנים נוריד את המודל: RRDB_ESRGAN_x4.pth לתוך התיקייה models מהצעד הקודם.
  4. נוסיף תמונה באיכות נמוכה לתוך התיקייה LR.
    ונריץ את סקריפט הפייתון שהורדנו עם ה-repo באמצעות הפקודה:
    $ python3 test.py
    את התוצאות נמצא בתיקיית results .

זו תוצאת הניסוי שערכתי על תמונה שמצאתי באינטרנט:

result of using esrgan model to improve my images

 

אולי גם זה יעניין אותך

כיצד להשתמש במודל קיים של TensorFlow Hub לסיווג תמונות?

למידת מכונה : סיווג תמונות באמצעות מודל VGG16 (חלק ד) - הערכת המודל

YOLO - בינה מלאכותית שמזהה עצמים מרובים בתמונות

 

לכל המדריכים בנושא של למידת מכונה

 

אהבתם? לא אהבתם? דרגו!

0 הצבעות, ממוצע 0 מתוך 5 כוכבים

 

 

הוסף תגובה חדשה

 

= 6 + 6