implementing object recognition algorithm on fpga

39
Implementing object recognition algorithm on FPGA םםםםםם: םםםם םםםם םםםםם םםםם םםםם: םםםם םםםםםם םםםם םםםם םםםם2012

Upload: dayton

Post on 29-Jan-2016

104 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Implementing object recognition algorithm on FPGA

Implementing object recognition algorithm on FPGA

: יותם מגישיםדניאל דראשפרגו

סומשיק: מייק מנחה

אביב אמצע 2012מצגת

Page 2: Implementing object recognition algorithm on FPGA

הפרויקט מטרתאלגוריתם :המטרה OPTICמימוש

FLOW גבי אמת FPGAעל בזמן

דגשים: חברת של הפיתוח כלי ולמידת : Gidelהכרה

ProcWizard/ProcAPI של הפיתוח כלי MathWorks : Simulink & HDLלמידת

Coder אלגוריתם של על Optical flowאימפלמנטציה אמת בזמן

FPGA הנלמדים הכלים בעזרת

Page 3: Implementing object recognition algorithm on FPGA

OPTIC FLOW

Page 4: Implementing object recognition algorithm on FPGA

הנתונים זרימת

ב וידאו יהיה של 15FPSהקלט בממדים320x240

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

המידע עיבוד

Page 5: Implementing object recognition algorithm on FPGA

GENERAL SCHEME

Page 6: Implementing object recognition algorithm on FPGA

INSIDE THE FPGA

Ready? trigger

Page 7: Implementing object recognition algorithm on FPGA

משותפת שפה

בשלוש אינטנסיבי שימוש יש במימושמיוחדים אלמנטים

Line Buffer -לדעת צורך יש כאשר בשימושפיקסל כל של הסביבה את

Write Switch –צורך יש כאשר בשימושלכתיבה וזיכרון לקריאה בזיכרון

לקריאה ואינדקס לכתיבה בשימוש– אינדקסלפני מזיכרון סגמנט לקרוא קודם עלינו כאשר

לזיכרון לכתוב שמתחילים

Page 8: Implementing object recognition algorithm on FPGA

Line Buffer

5 4 3 2 1

10 9 8 7 6

15 14 13 12 11

20 19 18 17 16

25 24 23 22 21

1 12

1

7 6 5 4

Page 9: Implementing object recognition algorithm on FPGA

Write Switch

Write to RAM 1Read from RAM 0

1

1

0

, לקריאה - ואחד לכתיבה אחד זיכרון בנקי שניפריים כל בסיום תפקיד מחליפים .אשר

Page 10: Implementing object recognition algorithm on FPGA

ובקרה נתונים מסלול הפרדת , זיכרון ) לוגיקה הנתונים מסלול בין הפרדה

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

. הנתונים ממסלול שמקבל דגלים מעבד על מבוסס MIPSהמודל

Page 11: Implementing object recognition algorithm on FPGA

The Controller

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

אחר לוגי חלק להפעלת מתאים מצב כלהחישוב בתהליך

פנימית החלטות שרשרת יש מצב בכלמתאימה אותות והפעלת

Page 12: Implementing object recognition algorithm on FPGA

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

Page 13: Implementing object recognition algorithm on FPGA

הזיכרון

בעזרת ממומשים הזיכרונות RAMכל , זיכרונות מלבד הזיכרונות קיים F[xx]לכל

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

Page 14: Implementing object recognition algorithm on FPGA

Pixel Loop , כתיבה לקריאה אינדקסים המייצרת מערכת

בקרה ) (IsFinishואותות

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

Page 15: Implementing object recognition algorithm on FPGA

מזיכרון לקריאה אינדקס

לזיכרון לכתיבה אינדקס

שלב סיום המציין בקרה אות

Page 16: Implementing object recognition algorithm on FPGA

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

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

Page 17: Implementing object recognition algorithm on FPGA

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

Page 18: Implementing object recognition algorithm on FPGA

ששני פעם כל בינארי סיגנל מחליףמתקיימים התנאים

לזיכרון • כתיבה במצב אנופריים • כתיבת סיימנו

משתנה המצב כי קיימת השהייההפריים סיום לפני שעון מחזור

אילוצי) ( algerbric loopבגלל

לקריאה כתיבה בין בורר

יכולים אנו המתגים בעזרת, זמנים מבחינת היציאות סדר על לשמור

מי I(t-2)ומי I(t-1)כלומר

סדרתית כתובת בין בוררמ ) ( Pixel Loopבאה

רנדומלית מכתובת אוחישוב) מחלק ( F[xx]באה

Page 19: Implementing object recognition algorithm on FPGA

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

Page 20: Implementing object recognition algorithm on FPGA

נגזרות חישוב

. הראשונה הלוגית הפעולה התמונה על הוא בשלמותה I(t-2)החישוב שנמצאת

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

ב– נשתמש . LineBufferלכן מקודם שתואר כפי

Page 21: Implementing object recognition algorithm on FPGA
Page 22: Implementing object recognition algorithm on FPGA

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

Page 23: Implementing object recognition algorithm on FPGA

Compute F’s(one in 30 part)

ל אחת מופעלת זו איטרציות 30מערכת

זו :חלקים 2למערכת

הנכונות הכתובות ומשיכת הערכים הכנת הוא הראשון החלק של תפקידומהזיכרון

' - לגראנז אוילר משוואות וחישוב הערכים קבלת הוא השני החלק של תפקידו

Page 24: Implementing object recognition algorithm on FPGA
Page 25: Implementing object recognition algorithm on FPGA

- ה שנקבל Pixel Loopמערכת לכך דואגת, 5במשך הכניסה ערכי של שכפול שעון מחזורי

כניסת היא המערכת של הכניסות offsetאחת מהוoffset: ' הבא? החישוב את לבצע נדרש ב בחלק

Part A

Page 26: Implementing object recognition algorithm on FPGA

Part A - המחשה

Page 27: Implementing object recognition algorithm on FPGA

Part B

Page 28: Implementing object recognition algorithm on FPGA

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

Page 29: Implementing object recognition algorithm on FPGA

Calculating Motion Vectors

, למשך איטרציה בכל פועלת איטרציות 200המערכת

בשני קודמת , Line Buffersשימוש מאיטרציה שכנים לערכים אחד(��k( )זו מאיטרציה שכנים לערכים (k+1ואחד

הרצויים 200לאחר התנועה וקטורי מתקבלים איטרציות

Page 30: Implementing object recognition algorithm on FPGA

u(k)נכנס

LineBuffer המספק ובוררעדכנית הכי הסביבה את לנו

משקלים חישוב

. ביניים חישובמחשב לא בקצוות

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

הבא הפיקסל לחישוב

Page 31: Implementing object recognition algorithm on FPGA

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

Page 32: Implementing object recognition algorithm on FPGA

Treat Boundaries

תמונת של בקצוות לטפל הוא המערכת תפקידמהתאים הערכים העתקת ידי על התנועה ווקטורי

הסמוכים.

Page 33: Implementing object recognition algorithm on FPGA
Page 34: Implementing object recognition algorithm on FPGA

בדיקה שיטות לבדיקה שניתן ביותר הבסיסי החלק מציאת

ב לו המקביל הקוד Matlabומציאת לרכיב והמתאים ביותר הפשוט הקלט הכנסת

זה מה נכונים נתונים ובדיקת- workspaceטעינת

ל הסימולציה נתוני יצוא ידי על התוצאותworkspace .

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

צפוי.

Page 35: Implementing object recognition algorithm on FPGA

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

Page 36: Implementing object recognition algorithm on FPGA

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

Write Enable

AddressData

:סדרתי הקלט

:שהכתיבה בדיקהכראוי מתבצעת

הנכון ובתזמון

Page 37: Implementing object recognition algorithm on FPGA

לבדיקת Fxxדוגמאמערכת תוצאתהסימולינק

המטלב קוד תןצאותהמקורי

התוצאות השוואתפונקציית ידי עלהשוואה

Page 38: Implementing object recognition algorithm on FPGA

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

Page 39: Implementing object recognition algorithm on FPGA

גאנט תרשים