המכללה האקדמית ספיר
המחלקה למדעי המחשב
ReLeaf
אנה פיליפוב ואורית הרצוג
מנחה: ד"ר עמי האופטמן
הבעיה
בסקירת שוק שביצענו נראה כי עד היום אין מערכות המספקות שני שרותים באותה האפליקציה הכוללים: זיהוי הצמח ואבחון מחלתו. הדבר גורם לאנשים לחפש מידע באתרים ואפליקציות שונות.
הפתרון
ReLeaf מציעה פיתרון לבעיה בעזרת שילוב שני השרותים יחד, מה שיוצר יתרונות לפרויקט:
חיסכון בזמן: בעזרת פעולה פשוטה כמו צילום הצמח ניתן יהיה לזהות אותו בזמן אמת.
יתרון כלכלי: במידה ונדע למה הצמח זקוק או מדוע הוא נובל, נדע לטפל בו בצורה יעילה יותר. הדבר יחסוך למשתמש את הצורך בקניית צמחים חדשים בעקבות טיפול לא נכון בצמח.
יתרון ההנגשה: אין צורך בלהיות מומחה או מבין בצמחים, נגיש לכל אחד.
רקע
האדם הממוצע נוטה לקנות צמחים מבלי שיהיה לו הידע הדרוש על מנת לגדלם, ומבלי לדעת מהם התנאים להם זקוק הצמח, או כיצד לטפל בו.
יתכן כי הצמח סובל מהתייבשות, מחסור באור או בוויטמינים, אולם לבעלים אין את הכלים לאבחן זאת בעצמו.
מערכת ReLeaf מאפשרת לבצע בדיקה בצורה פשוטה ובזמן אמת לגבי מהו סוג הצמח או האם הוא סובל ממחלה או מחסור בטיפול.
תאור המערכת
איסוף הDataset:
איסוף הdata נעשה בעזרת חיפוש סטים באתר Kaggle ואיסוף עצמאי.
האיסוף העצמאי נעשה בשתי שיטות עיקריות:
-
צילום סרטונים של אותו צמח עליו אנו אוספים תמונות.
-
איסוף סרטונים קיימים ברשת באתרים כגון Youtube,google וכו.
לשם חילוץ התמונות מקטעי הוידיאו אותם אספנו כתבנו script יעודי בפייטון אשר שולף פריים אחד מתוך כל 50, וחותך אותו על מנת שלא יהיו כיתובות או פרטים מיותרים שיפריעו לתהליך הלמידה.
ככל שמדובר בתמונה יותר ממוקדת של הצמח כך לרשת יהיה יותר קל להגיע לרמת דיוק מיירבית בלמידה או במילים אחרות data יותר נקי.
סרטון מהאינטרנט סרטון שצולם
הכנת הDataset:
לאחר איסוף הdataset, יש צורך לעבוד על התמונות על מנת שיהיו מיטביות לפני שימושן כקלט עבור המודל המסווג.
-
איתור אובייקט הפרח בתמונה. על-ידי שימוש במודל של YOLO - מודל מאומן מראש לאיתור אובייקטים בתמונה, אשר התאמנו במיוחד לבעיה שלנו - איתור פרחים בתמונה, מצאנו את אובייקטי הפרח בתמונה.
-
חיתוך התמונה לפי האובייקטים שאיתרנו: עבור כל אובייקט פרח שזוהה בתמונה ניצור תמונה אשר מכילה רק את אובייקט הפרח.
-
בשלב האחרון, בעזרת פונקציית grubCut של openCV יכולנו להפריד בין האובייקט לרקע, ולהפוך את הרקע לשחור. כך קיבלנו dataset חדש ומפוקס יותר, בלי רעשי רקע ותמונות קטנות יותר.
מודל הסיווג:
סיווג הוא פעולה שמחלקת קבוצת עצמים לתת-קבוצות.למשל :ניתן לסווג פרחים לקבוצות שונות לפי הסוגים שלהם או חיות לפי מינם כמו שניתן לראות בתמונה הנ"ל.
ארכיטקטורה:
ארכיטקטורה בה בחרנו להשתמש עבור המסווג שלנו היא ResNet50. הארכיטקטורה מכילה 50 שכבות המחוברות אחת לשניה ולשכבות שגם לפניה.
על מנת להעמיק יותר:
המודל שלנו הוא מודל מסוג transfer learning או במילים אחרות מודל שלומד מראש. הלמידה נעשתה על על גבי מסד נתונים לתמונות בשם ImageNet. הוא מאורגן על פי ההיררכיה של WordNet (כרגע רק שמות עצם), בהם כל צומת בהיררכיה מתואר על ידי מאות ואלפי תמונות.מסד נתונים זה מכיל כיום יותר מ 14 מיליון תמונות מכל מיני סוגים, בניהם גם צמחים.
ההיתרון העיקרי במודל שלומד מראש הוא חסכון בזמן אימון, הרשת העצבית תפעל בצורה טובה יותר ברוב המקרים וכן לא נצטרך הרבה נתונים.
כיום ה Dataset שלנו כולל 7 צמחים שונים.
הצמחים חולקו לשתי תיקיות: Test ו- Train , ביחס של 20% ו-80%.
תוצאות:
כ-95% דיוק
נעשים 30 פריימים בשניה בצילום וידיאו ממוצע
:סביבת עבודה
סוג הפרח
המשתמש מעלה תמונה של צמח או תמונה של עלה כקלט
מצב העלה
טכנולוגיות
-
Tensorflow: ספריה של python שבעזרתה כתבנו את המודל.
-
Flask: ספריה נוספת של python שבעזרתה בנינו את אפליקציית הweb.
-
Keras: API עבור בניית מודל רשת נוירונים, מתממשק עם ספריית tensorflow.
-
YOLO: מודל לאיתור אובייקטים בתמונה.