1 / 39

Implementing object recognition algorithm on FPGA

מצגת אמצע אביב 2012. Implementing object recognition algorithm on FPGA. מגישים: יותם דראש דניאל פרגו. מנחה: מייק סומשיק. מטרת הפרויקט. המטרה : מימוש אלגוריתם OPTIC FLOW על גבי FPGA בזמן אמת דגשים: הכרה ולמידת כלי הפיתוח של חברת Gidel : ProcWizard / ProcAPI

dayton
Download Presentation

Implementing object recognition algorithm on FPGA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. מצגת אמצע אביב 2012 Implementing object recognition algorithm on FPGA מגישים: יותם דראש דניאל פרגו מנחה: מייק סומשיק

  2. מטרת הפרויקט המטרה:מימוש אלגוריתם OPTIC FLOW על גבי FPGA בזמן אמת דגשים: • הכרה ולמידת כלי הפיתוח של חברתGidel: ProcWizard/ProcAPI • למידת כלי הפיתוח של MathWorks : Simulink & HDL Coder • אימפלמנטציה של אלגוריתם Optical flow בזמן אמת על FPGA בעזרת הכלים הנלמדים

  3. OPTIC FLOW

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

  5. GENERAL SCHEME

  6. INSIDE THE FPGA Ready? trigger

  7. שפה משותפת • במימוש יש שימוש אינטנסיבי בשלוש אלמנטים מיוחדים • Line Buffer- בשימוש כאשר יש צורך לדעת את הסביבה של כל פיקסל • Write Switch– בשימוש כאשר יש צורך בזיכרון לקריאה וזיכרון לכתיבה • אינדקס לכתיבה ואינדקס לקריאה – בשימוש כאשר עלינו קודם לקרוא סגמנט מזיכרון לפני שמתחילים לכתוב לזיכרון

  8. Line Buffer 6 2 1 1 7 5 4 1

  9. Write Switch שני בנקי זיכרון - אחד לכתיבה ואחד לקריאה, אשר מחליפים תפקיד בסיום כל פריים. Write to RAM 1 Read from RAM 0 0 1 1

  10. הפרדת מסלול נתונים ובקרה • הפרדה בין מסלול הנתונים (לוגיקה, זיכרון ויצירת אינדקסים) לבין מסלול הבקרה. • בקר חיצוני שולט על רצף הפעולות לפי דגלים שמקבל ממסלול הנתונים. • המודל מבוסס על מעבד MIPS

  11. The Controller • הבקר הינו מכונת מצבים. • כל מצב מתאים להפעלת חלק לוגי אחר בתהליך החישוב • בכל מצב יש שרשרת החלטות פנימית והפעלת אותות מתאימה

  12. בקר: מכונת מצבים

  13. הזיכרון • כל הזיכרונות ממומשים בעזרת RAM • לכל הזיכרונות, מלבד זיכרונות F[xx] קיים write switch להבחנה בין המידע שנכתב לבין המידע שנקרא, כפי שצוין מקודם.

  14. Pixel Loop • מערכת המייצרת אינדקסים לקריאה, כתיבה ואותות בקרה (IsFinish) • 5 מצבים לתיאום זרימת הנתונים לכל בלוק: • 1) כתיבה לזיכרון התמונות (מצב התחלתי) • 2) חישוב הנגזרות וכתיבתן • 3) חישוב משוואת אויילר-לגראנז' • 4) חישוב וקטורי התנועה • 5) זיהוי מקרי קצה של הפריים וטיפולם

  15. אינדקס לקריאה מזיכרון אינדקס לכתיבה לזיכרון אות בקרה המציין סיום שלב

  16. דוגמא : אינדקסים בשלב חישוב וקטור תנועה נשלח לבקר את ההוראה מחזור לפני שנרצה שהיא תתבצע

  17. Pixel Loop • 5 מצבים לתיאום זרימת הנתונים לכל בלוק: • 1) כתיבה לזיכרון התמונות • 2) חישוב הנגזרות וכתיבתן • 3) חישוב משוואת אויילר-לגראנז' • 4) חישוב וקטורי התנועה • 5) זיהוי מקרי קצה של הפריים וטיפולם

  18. בורר בין כתובת סדרתית (באה מPixel Loop ) או מכתובת רנדומלית (באה מחלק חישוב F[xx]) • מחליף סיגנל בינארי כל פעם ששני • התנאים מתקיימים • אנו במצב כתיבה לזיכרון • סיימנו כתיבת פריים בורר בין כתיבה לקריאה השהייה קיימת כי המצב משתנה מחזור שעון לפני סיום הפריים (בגלל אילוצי algerbric loop) בעזרת המתגים אנו יכולים לשמור על סדר היציאות מבחינת זמנים, כלומר מי I(t-1) ומי I(t-2)

  19. Pixel Loop • 5 מצבים לתיאום זרימת הנתונים לכל בלוק: • 1) כתיבה לזיכרון התמונות • 2) חישוב הנגזרות וכתיבתן • 3) חישוב משוואת אויילר-לגראנז' • 4) חישוב וקטורי התנועה • 5) זיהוי מקרי קצה של הפריים וטיפולם

  20. חישוב נגזרות • הפעולה הלוגית הראשונה. • החישוב הוא על התמונה I(t-2) שנמצאת בשלמותה בזיכרון • לצורך החישוב יש לדעת את ערכי הפיקסלים השכנים – לכן נשתמש ב LineBuffer כפי שתואר מקודם.

  21. Pixel Loop • 5 מצבים לתיאום זרימת הנתונים לכל בלוק: • 1) כתיבה לזיכרון התמונות • 2) חישוב הנגזרות וכתיבתן • 3) חישוב משוואת אויילר-לגראנז' • 4) חישוב וקטורי התנועה • 5) זיהוי מקרי קצה של הפריים וטיפולם

  22. Compute F’s(one in 30 part) • מערכת זו מופעלת אחת ל 30 איטרציות למערכת זו 2 חלקים: • תפקידו של החלק הראשון הוא הכנת הערכים ומשיכת הכתובות הנכונות מהזיכרון • תפקידו של החלק השני הוא קבלת הערכים וחישוב משוואות אוילר-לגראנז'

  23. Part A • אחת הכניסות של המערכת היא כניסתoffset • מהו offset? בחלק ב'נדרש לבצע את החישוב הבא: • מערכת ה-Pixel Loop דואגת לכך שנקבל במשך 5 מחזורי שעון, שכפול של ערכי הכניסה

  24. Part A - המחשה

  25. Part B

  26. Pixel Loop • 5 מצבים לתיאום זרימת הנתונים לכל בלוק: • 1) כתיבה לזיכרון התמונות • 2) חישוב הנגזרות וכתיבתן • 3) חישוב משוואת אויילר-לגראנז' • 4) חישוב וקטורי התנועה • 5) זיהוי מקרי קצה של הפריים וטיפולם

  27. Calculating Motion Vectors • המערכת פועלת בכל איטרציה, למשך 200 איטרציות • שימוש בשני Line Buffers , אחד לערכים שכנים מאיטרציה קודמת ׂׂ(k) ואחד לערכים שכנים מאיטרציה זו (k+1) • לאחר 200 איטרציות מתקבלים וקטורי התנועה הרצויים

  28. נכנס u(k) LineBuffer ובורר המספק לנו את הסביבה הכי עדכנית חישוב רכיב וקטור תנועה סופי ערך סופי u(k+1) יוצא לזיכרון ונשמר ב LineBuffer לחישוב הפיקסל הבא חישוב משקלים חישוב ביניים. בקצוות לא מחשב

  29. Pixel Loop • 5 מצבים לתיאום זרימת הנתונים לכל בלוק: • 1) כתיבה לזיכרון התמונות • 2) חישוב הנגזרות וכתיבתן • 3) חישוב משוואת אויילר-לגראנז' • 4) חישוב וקטורי התנועה • 5) זיהוי מקרי קצה של הפריים וטיפולם

  30. Treat Boundaries • תפקיד המערכת הוא לטפל בקצוות של תמונת ווקטורי התנועה על ידי העתקת הערכים מהתאים הסמוכים.

  31. שיטות בדיקה • מציאת החלק הבסיסי ביותר שניתן לבדיקה ומציאת הקוד המקביל לו ב Matlab • הכנסת הקלט הפשוט ביותר והמתאים לרכיב זה • טעינת נתונים נכונים מה workspace- ובדיקת התוצאות על ידי יצוא נתוני הסימולציה ל workspace. • שימוש בסקופים וגרפים • השוואת הגרפים המתקבלים לתרשים אותות צפוי.

  32. דוגמא:בדיקת כתיבה לזיכרון

  33. דוגמא: בדיקת כתיבה לזיכרון • הקלט:סדרתי • בדיקה:שהכתיבה מתבצעת כראוי ובתזמון הנכון Data Address Write Enable

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

  35. שימוש בסקופ והשוואה לתרשים אותות

  36. תרשים גאנט

More Related