implementing object recognition algorithm on fpga

45
Implementing object recognition algorithm on FPGA םםםםםם: םםםם םםםם םםםםם םםםם םםםם: םםםם םםםםםם םםםם םםם – םםםםםם םם םםםםםםםםם

Upload: ailis

Post on 29-Jan-2016

99 views

Category:

Documents


0 download

DESCRIPTION

מצגת סוף – פרויקט חד סמסטריאלי. 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

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

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

חד – פרויקט סוף מצגת סמסטריאלי

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

חישובית לוגיקה

התמונה של במרחב נגזרות חישוב התמונה על בהתבסס עזר נתוני חישוב

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

Page 15: Implementing object recognition algorithm on FPGA

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

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

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

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

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

צפוי.

Page 16: Implementing object recognition algorithm on FPGA

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

Page 17: Implementing object recognition algorithm on FPGA

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

Write Enable

AddressData

:סדרתי הקלט

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

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

Page 18: Implementing object recognition algorithm on FPGA

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

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

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

Page 19: Implementing object recognition algorithm on FPGA

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

Page 20: Implementing object recognition algorithm on FPGA

מצגת סקירת סוףאמצע

Page 21: Implementing object recognition algorithm on FPGA

Fixed point לעיבוד פשוטה בצורה שלמים לא מספרים ייצוג

חומרתי. ידי על מיוצג קבוע המספר ספרות מספר של

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

! מדוייק לא ייצוג זהו מעבד כל של חלקה לפעולה נחוץ זה ייצוג

יחידת מכיל לא .FPאשר מעבדי .DSPרוב זה בייצוג עובדים

Page 22: Implementing object recognition algorithm on FPGA

Simulink Fixed Point Tool בתנאי לסימולציה תמיכה fixedמספק

point. תומךHDL Coder בין תוצאות של נוחה השוואה מאפשר

floating point וfixed point - מילה, אורך פלט קלט מבחן סמך על מציע

. \ שבר שלם ויחס הייצוג פרמטרי של רוחבי שינוי מאפשר

ל פרויקט של ראשוני מעבר fixedלאחרpoint .

Page 23: Implementing object recognition algorithm on FPGA

עם fixed pointקשיים ל .fixed point המעבר טריוויאלי איננו

של מודלים בין נתונים במעבר קושי קייםsimulink ושלmatlab.

" שונה " באופן מתנהגות אריתמטיות פעולות ב הוא fixed pointהטיפול מטלב בקוד

מסורבל \ עדיין הינם מתאימים שבר מילה ערכי מציאת

וטעייה ניסוי של עניין

Page 24: Implementing object recognition algorithm on FPGA

עם fixed pointהתקדמות ולא מאוד התקשינו המעבר בתחילת

קוד של קטנים חלקים אפילו להמיר הצלחנוfixed pointל

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

fixed pointל כי ראינו מייק עם שלמדנו הידע בעזרת

הייתה בו ההתקדמות אך אפשרי המעבר . ביותר ומסורבלת איטית

Page 25: Implementing object recognition algorithm on FPGA

תוצאות

עוברים הביניים אותות כל בדיקת לאחרהתנועה – וקטורי המלאה U,Vלבדיקה

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

והשוואה 2הכנסת הסרט מתוך תמונותהמקורי לקוד

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

Page 26: Implementing object recognition algorithm on FPGA

At first: only 2 frames

Page 27: Implementing object recognition algorithm on FPGA

Simple Picture

Page 28: Implementing object recognition algorithm on FPGA

U-Result

Page 29: Implementing object recognition algorithm on FPGA

V-Result

Page 30: Implementing object recognition algorithm on FPGA
Page 31: Implementing object recognition algorithm on FPGA

Video

סרט על המערכת בדיקתוידאו:

283 פריימים : פריים 120x160גודל

התוצאות את נבחןבשקפים, המתקבלות

הבאים

Page 32: Implementing object recognition algorithm on FPGA

Full Video Input

Page 33: Implementing object recognition algorithm on FPGA

Appearance (frames 16-17)

Page 34: Implementing object recognition algorithm on FPGA

U-Result

Page 35: Implementing object recognition algorithm on FPGA

V-Result

Page 36: Implementing object recognition algorithm on FPGA

Hand Shake (frames 136-137)

Page 37: Implementing object recognition algorithm on FPGA

U-Result

Page 38: Implementing object recognition algorithm on FPGA

V-Result

Page 39: Implementing object recognition algorithm on FPGA

Walk Back (frames 245-246)

Page 40: Implementing object recognition algorithm on FPGA

U-Result

Page 41: Implementing object recognition algorithm on FPGA

V-Result

Page 42: Implementing object recognition algorithm on FPGA

יעדים: תוצאות

אלגוריתםopenflow ב simulinkמומשמלא באופן

מלא נתונים מסלול מתפקד בקר

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

ב לפרויקט מ למעבר בדרישות עמדנו fixedל FPלא

point

Page 43: Implementing object recognition algorithm on FPGA

אקדמאים : יעדים תוצאותתכנון

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

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

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

זיכרון – בנקי אמת בזמן נתונים לעיבוד , מקביליות, caching (line buffer)שונים

. ועוד, לבקרה נתונים מסלול בין הפרדה

Page 44: Implementing object recognition algorithm on FPGA

אקדמאים: יעדים תוצאותתכנות

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

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

. זה מסוג במערכות אותות את לעומק סביבת simulinkהכרנו ואת

העבודה ב בתכנות יכולתנו את . matlabשיפרנו

Page 45: Implementing object recognition algorithm on FPGA

אקדמאים: יעדים תוצאותבדיקות

, ראשון – " דבר שלמדנו המנחה העיקרון " הבעיה את בודד

של כסוג לנו ששימשו טסטים בסט השתמשנוbenchmark המערכת לתפקוד

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

ה את לאהוב scopeלמדנו ה רעיון חשיבות את code reviewגילינו