כיצד לשפר רזולוציה של תמונה באמצעות למידת מכונה?
מצאת באינטרנט תמונה קטנה מדי של מוצר שעשוי לעניין אותך ואתה רוצה לראות אותה ברזולוציה גבוהה יותר? או שתמונות שצילמת הם קטנות מכדי שניתן יהיה לשתף אותם ברשת החברתית? מה אפשר לעשות? הפתרון היחיד הוא להעלות את הרזולוציה של התמונות, ואת זה נעשה באמצעות שימוש בבינה מלאכותית. במדריך זה, נלמד כיצד לשפר דרמטית את הרזולוציה של תמונות באמצעות ספריית פייתון פשוטה לשימוש מבוססת למידת מכונה.
את המודל פיתח חוקר של בינה מלאכותית שיצר רשת נוירונית של למידה עמוקה והעלה אותו ל-github לשימוש חופשי. הקישור למודל ESRGAN הוא https://github.com/xinntao/ESRGAN.
היופי במודל שהוא כבר מאומן היות ותהליך האימון של רשת נוירונית דורש כמות עצומה של מידע וזמן.
בדף ה-repo החוקר מציג תוצאות את ה"לפני" ו"אחרי" של שיפור הרזולוציה עבור מספר תמונות עליהם הוא הפעיל את המודל:
ארכיטקטורת GAN
המודל ESRGAN מבוסס על ארכיטקטורת GAN. ראשי תיבות של Generative Adversarial Network. לאימון המודל משתמשים בשתי רשתות מתחרות: רשת יוצרת generator ורשת מבחינה discriminator. רשת ה-generator מייצרת תמונות בעוד רשת ה-discriminator מנסה להבחין האם התמונות הם אמיתיות או חיקוי. תהליך האימון נעשה במספר סיבובים, ועם התקדמות האימון ה-generator, שמתחיל מיצור תמונות לא מוצלחות, מתקדם עד ליצירת תמונות שהם חיקוי טוב של המציאות. גם ה-discriminator לא קופא על שמריו, ויכולת ההבחנה שלו הולכת ומשתפרת. תוצאת התהליך הם תמונות חיקוי שמצליחות להטעות את ה-discriminator, ונראות אמיתיות לעין האנושית.
תהליך האימון של המודל ESRGAN כלל איסוף של תמונות באיכות גבוהה וכיווץ שלהם. את התמונה המקורית הזינו ל-discriminator, כדי שילמד את המקור. את התמונה המכווצת הזינו ל-generator כדי שינסה לשפר את האיכות. בכל סיבוב ה-generator הציג את התמונות שהוא יצר ל-discriminator, שניסה לזהות האם הם אמיתיות. במידה והתמונות נראו מזוייפות, ה-generator ניסה שוב עד לקבלת תמונות שנראו אמיתיות.
שיפור הרזולוציה של תמונות על המחשב האישי ב-4 צעדים
-
נתקין את התלויות:
נתקין את הספרייה PyTorch מדף ההתקנה: https://pytorch.org/get-started/locally/
אני עובד על מערכת הפעלה לינוקס ללא GPU . בהתאם בחרתי:
העתקתי את הפקודה שהוצגה לי בדף ההתקנה בהתאם לקונפוגרציה שהזנתי, והרצתי בשורת הפקודות:
התקנתי בנוסף את התלויות:$ 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
-
נוריד את ה-repo מ-github לתיקייה במחשב שלנו באמצעות הפקודה:
רוצים ללמוד כיצד להתקין git על המחשב ומה זה github? קראו את הפסקאות הראשונות של המדריך עבודה עם git ו-github$ git clone https://github.com/xinntao/ESRGAN
ה-repo כולל 3 תיקיות שנעבוד איתם:- models - כאן נשים את המודל שנוריד בצעד הבא
- LR - כאן נשים את התמונות באיכות הנמוכה
- results
- מתיקייה ב- google drive https://drive.google.com/drive/u/0/folders/17VYV_SoZZesU6mbxz2dMAIccSSlqLecY בה קיימים מספר מודלים מאומנים נוריד את המודל: RRDB_ESRGAN_x4.pth לתוך התיקייה models מהצעד הקודם.
-
נוסיף תמונה באיכות נמוכה לתוך התיקייה
LR.
ונריץ את סקריפט הפייתון שהורדנו עם ה-repo באמצעות הפקודה:
את התוצאות נמצא בתיקיית results .$ python3 test.py
זו תוצאת הניסוי שערכתי על תמונה שמצאתי באינטרנט:
אולי גם זה יעניין אותך
כיצד להשתמש במודל קיים של TensorFlow Hub לסיווג תמונות?
למידת מכונה : סיווג תמונות באמצעות מודל VGG16 (חלק ד) - הערכת המודל
YOLO - בינה מלאכותית שמזהה עצמים מרובים בתמונות
לכל המדריכים בנושא של למידת מכונה
אהבתם? לא אהבתם? דרגו!
0 הצבעות, ממוצע 0 מתוך 5 כוכבים
המדריכים באתר עוסקים בנושאי תכנות ופיתוח אישי. הקוד שמוצג משמש להדגמה ולצרכי לימוד. התוכן והקוד המוצגים באתר נבדקו בקפידה ונמצאו תקינים. אבל ייתכן ששימוש במערכות שונות, דוגמת דפדפן או מערכת הפעלה שונה ולאור השינויים הטכנולוגיים התכופים בעולם שבו אנו חיים יגרום לתוצאות שונות מהמצופה. בכל מקרה, אין בעל האתר נושא באחריות לכל שיבוש או שימוש לא אחראי בתכנים הלימודיים באתר.
למרות האמור לעיל, ומתוך רצון טוב, אם נתקלת בקשיים ביישום הקוד באתר מפאת מה שנראה לך כשגיאה או כחוסר עקביות נא להשאיר תגובה עם פירוט הבעיה באזור התגובות בתחתית המדריכים. זה יכול לעזור למשתמשים אחרים שנתקלו באותה בעיה ואם אני רואה שהבעיה עקרונית אני עשוי לערוך התאמה במדריך או להסיר אותו כדי להימנע מהטעיית הציבור.
שימו לב! הסקריפטים במדריכים מיועדים למטרות לימוד בלבד. כשאתם עובדים על הפרויקטים שלכם אתם צריכים להשתמש בספריות וסביבות פיתוח מוכחות, מהירות ובטוחות.
המשתמש באתר צריך להיות מודע לכך שאם וכאשר הוא מפתח קוד בשביל פרויקט הוא חייב לשים לב ולהשתמש בסביבת הפיתוח המתאימה ביותר, הבטוחה ביותר, היעילה ביותר וכמובן שהוא צריך לבדוק את הקוד בהיבטים של יעילות ואבטחה. מי אמר שלהיות מפתח זו עבודה קלה ?
השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.