תחי ישראל - אין לנו ארץ אחרת

תחי ישראל -אין לנו ארץ אחרת

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

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

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

את המודל פיתח חוקר של בינה מלאכותית שיצר רשת נוירונית של למידה עמוקה והעלה אותו ל-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 כוכבים

 

 

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

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

שימו לב! הסקריפטים במדריכים מיועדים למטרות לימוד בלבד. כשאתם עובדים על הפרויקטים שלכם אתם צריכים להשתמש בספריות וסביבות פיתוח מוכחות, מהירות ובטוחות.

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

השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.

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

 

 

ענה על השאלה הפשוטה הבאה כתנאי להוספת תגובה:

איך אומרים בעברית אינטרנט?

 

תמונת המגיב

יוני בתאריך: 11.09.2022

אפשר להשתמש באתר של בחוקר הזה ולהעלות לשם תמונות מהמחשב הפרטי שלי?