implementing object recognition algorithm on fpga
DESCRIPTION
מצגת סוף – פרויקט חד סמסטריאלי. Implementing object recognition algorithm on FPGA. מגישים: יותם דראש דניאל פרגו. מנחה: מייק סומשיק. מטרת הפרויקט. המטרה : מימוש אלגוריתם OPTIC FLOW על גבי FPGA בזמן אמת דגשים: הכרה ולמידת כלי הפיתוח של חברת Gidel : ProcWizard / ProcAPI - PowerPoint PPT PresentationTRANSCRIPT
Implementing object recognition algorithm on FPGA
: יותם מגישיםדניאל דראשפרגו
סומשיק: מייק מנחה
חד – פרויקט סוף מצגת סמסטריאלי
הפרויקט מטרתאלגוריתם :המטרה OPTICמימוש
FLOW גבי אמת FPGAעל בזמן
דגשים: חברת של הפיתוח כלי ולמידת : Gidelהכרה
ProcWizard/ProcAPI של הפיתוח כלי MathWorks : Simulink & HDLלמידת
Coder אלגוריתם של על Optical flowאימפלמנטציה אמת בזמן
FPGA הנלמדים הכלים בעזרת
OPTIC FLOW
הנתונים זרימת
ב וידאו יהיה של 15FPSהקלט בממדים320x240
, התמונה גודל את נקטין הפרויקט הגדרת לפי אבללטובת חיצוני בזיכרון בשימוש צורך יהיה שלא כך
המידע עיבוד
GENERAL SCHEME
INSIDE THE FPGA
Ready? trigger
משותפת שפה
בשלוש אינטנסיבי שימוש יש במימושמיוחדים אלמנטים
Line Buffer -לדעת צורך יש כאשר בשימושפיקסל כל של הסביבה את
Write Switch –צורך יש כאשר בשימושלכתיבה וזיכרון לקריאה בזיכרון
לקריאה ואינדקס לכתיבה בשימוש– אינדקסלפני מזיכרון סגמנט לקרוא קודם עלינו כאשר
לזיכרון לכתוב שמתחילים
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
Write Switch
Write to RAM 1Read from RAM 0
1
1
0
, לקריאה - ואחד לכתיבה אחד זיכרון בנקי שניפריים כל בסיום תפקיד מחליפים .אשר
ובקרה נתונים מסלול הפרדת , זיכרון ) לוגיקה הנתונים מסלול בין הפרדה
. ) הבקרה מסלול לבין אינדקסים ויצירת לפי הפעולות רצף על שולט חיצוני בקר
. הנתונים ממסלול שמקבל דגלים מעבד על מבוסס MIPSהמודל
The Controller
. מצבים מכונת הינו הבקר
אחר לוגי חלק להפעלת מתאים מצב כלהחישוב בתהליך
פנימית החלטות שרשרת יש מצב בכלמתאימה אותות והפעלת
מצבים: מכונת בקר
הזיכרון
בעזרת ממומשים הזיכרונות RAMכל , זיכרונות מלבד הזיכרונות קיים F[xx]לכל
write switch שנכתב המידע בין להבחנה . , מקודם שצוין כפי שנקרא המידע לבין
חישובית לוגיקה
התמונה של במרחב נגזרות חישוב התמונה על בהתבסס עזר נתוני חישוב
הקודמת התמונה של והנגזרות הנוכחית ושמירתם התנועה וקטורי חישוב – התמונה מסגרת שפה בתנאי טיפול
בדיקה שיטות לבדיקה שניתן ביותר הבסיסי החלק מציאת
ב לו המקביל הקוד Matlabומציאת לרכיב והמתאים ביותר הפשוט הקלט הכנסת
זה מה נכונים נתונים ובדיקת- workspaceטעינת
ל הסימולציה נתוני יצוא ידי על התוצאותworkspace .
וגרפים בסקופים שימוש אותות לתרשים המתקבלים הגרפים השוואת
צפוי.
לזיכרון: כתיבה בדיקת דוגמא
לזיכרון: כתיבה בדיקת דוגמא
Write Enable
AddressData
:סדרתי הקלט
:שהכתיבה בדיקהכראוי מתבצעת
הנכון ובתזמון
לבדיקת Fxxדוגמאמערכת תוצאתהסימולינק
המטלב קוד תןצאותהמקורי
התוצאות השוואתפונקציית ידי עלהשוואה
אותות לתרשים והשוואה בסקופ שימוש
מצגת סקירת סוףאמצע
Fixed point לעיבוד פשוטה בצורה שלמים לא מספרים ייצוג
חומרתי. ידי על מיוצג קבוע המספר ספרות מספר של
ומספר השלם החלק את מהוות אשר בינאריות. השבר את המייצגות בינאריות ספרות של קבוע
! מדוייק לא ייצוג זהו מעבד כל של חלקה לפעולה נחוץ זה ייצוג
יחידת מכיל לא .FPאשר מעבדי .DSPרוב זה בייצוג עובדים
Simulink Fixed Point Tool בתנאי לסימולציה תמיכה fixedמספק
point. תומךHDL Coder בין תוצאות של נוחה השוואה מאפשר
floating point וfixed point - מילה, אורך פלט קלט מבחן סמך על מציע
. \ שבר שלם ויחס הייצוג פרמטרי של רוחבי שינוי מאפשר
ל פרויקט של ראשוני מעבר fixedלאחרpoint .
עם fixed pointקשיים ל .fixed point המעבר טריוויאלי איננו
של מודלים בין נתונים במעבר קושי קייםsimulink ושלmatlab.
" שונה " באופן מתנהגות אריתמטיות פעולות ב הוא fixed pointהטיפול מטלב בקוד
מסורבל \ עדיין הינם מתאימים שבר מילה ערכי מציאת
וטעייה ניסוי של עניין
עם fixed pointהתקדמות ולא מאוד התקשינו המעבר בתחילת
קוד של קטנים חלקים אפילו להמיר הצלחנוfixed pointל
צמודה ועזרה הנחייה ואחרי מייק עם ישבנוהנגזרות פונקציית את להעביר הצלחנו שלו
fixed pointל כי ראינו מייק עם שלמדנו הידע בעזרת
הייתה בו ההתקדמות אך אפשרי המעבר . ביותר ומסורבלת איטית
תוצאות
עוברים הביניים אותות כל בדיקת לאחרהתנועה – וקטורי המלאה U,Vלבדיקה
על תחילה מתבצעת תמונות 2הבדיקההמקורי לקוד התוצאות והשוואת פשוטות
והשוואה 2הכנסת הסרט מתוך תמונותהמקורי לקוד
ידי על והשוואה מלא וידאו סרט הכנסתהמקורי לקוד סקריפט
At first: only 2 frames
Simple Picture
U-Result
V-Result
Video
סרט על המערכת בדיקתוידאו:
283 פריימים : פריים 120x160גודל
התוצאות את נבחןבשקפים, המתקבלות
הבאים
Full Video Input
Appearance (frames 16-17)
U-Result
V-Result
Hand Shake (frames 136-137)
U-Result
V-Result
Walk Back (frames 245-246)
U-Result
V-Result
יעדים: תוצאות
אלגוריתםopenflow ב simulinkמומשמלא באופן
מלא נתונים מסלול מתפקד בקר
, שהוגדר הפרויקט של החומרה שלבהמשכנו לא כי התבצע לא ב כפרויקט
ב לפרויקט מ למעבר בדרישות עמדנו fixedל FPלא
point
אקדמאים : יעדים תוצאותתכנון
) התכנון ) חשיבות את בשרנו על למדנו . שחלק, למרות המימוש לפני הראשוני
, שינויים כי ראינו לנו ניתן מהמימושמשפיעים מקדים תכנון ללא שמתבצעים
. צפויים לא במקומות מערכות עם בעבודה שונות טכניקות למדנו
זיכרון – בנקי אמת בזמן נתונים לעיבוד , מקביליות, caching (line buffer)שונים
. ועוד, לבקרה נתונים מסלול בין הפרדה
אקדמאים: יעדים תוצאותתכנות
תכנון של בסיבוכיות ישירה בצורה התנסינואשר שונים חלקים בעלת מורכבת מערכת
השני עם אחד לתקשר צריכים בין הסנכרון בעיית עם והתמודדנו גילינו
. זה מסוג במערכות אותות את לעומק סביבת simulinkהכרנו ואת
העבודה ב בתכנות יכולתנו את . matlabשיפרנו
אקדמאים: יעדים תוצאותבדיקות
, ראשון – " דבר שלמדנו המנחה העיקרון " הבעיה את בודד
של כסוג לנו ששימשו טסטים בסט השתמשנוbenchmark המערכת לתפקוד
אותות בשרטוט השימוש חשיבות את למדנוסינכרוניות מערכות לדבג כדי
ה את לאהוב scopeלמדנו ה רעיון חשיבות את code reviewגילינו