מאמר שיטה

ארכיטקטורת חומרה בעלת רזולוציה אדפטיבית לזיהוי קצוות בשיטת Sobel בזמן אמת, המשיגה סקלינג של משאבים תת-ליניארי

17 צפיות

DOI:

10.3791/71589

28 באוגוסט 2026

במאמר זה

סיכום

עבודה זו מציגה מימוש של אלגוריתם Sobel לזיהוי קצוות המבוסס על FPGA על גבי פלטפורמה הטרוגנית מסוג Ultra96-V2, תוך הערכת ניצול משאבים, הספק ומהירות עבור רזולוציות תמונה הנעות בין 256 × 256 ל-2560 × 1440. הארכיטקטורה המוצעת מדגימה סקילביליות תת-ליניארית של המשאבים עבור יישומי עיבוד תמונה בזמן אמת.

תקציר

זיהוי קצוות הוא תחום מפתח בראייה ממוחשבת, והוא הפך לחלק בלתי נפרד מתחומי יישום שונים. זיהוי קצוות מאפשר את זיהוי הקצוות, שהם מאפיינים קריטיים בתמונות ומייצגים תכונות חשובות המסייעות בהפקת מידע מרכזי ומבחין מהתמונות. מימוש חומרתי של זיהוי קצוות חייב להיות מהיר, להשתמש במשאבים מינימליים, לצרוך פחות אנרגיה ולהיות ניתן להתאמה לרזולוציות תמונה שונות. מאמר זה מממש זיהוי קצוות מסוג Sobel לרזולוציית תמונה אדפטיבית, החל מתמונת רזולוציה נמוכה ועד להגדרה גבוהה מלאה (full high-definition), ומשתמש בפלטפורמת FPGA (Field Programmable Gate Array) הטרוגנית מודרנית, ה-Ultra96-V2. התוצאות מגלה כי רק 5% ממשאבי ה-FPGA המובנים, כולל טבלאות חיפוש (LUTs), פליפ-פלופים (FF), מעבדי אותות דיגיטליים (DSP) וזיכרון בלוקים (BRAM), מנוצלים עבור תמונות ברזולוציה נמוכה, בעוד שכש-23% מהמשאבים המובנים נצרכים עבור תמונות ברזולוציה גבוהה. דבר זה מוכיח כי העלייה בניצול המשאבים במעבר מתמונות ברזולוציה נמוכה לתמונות ברזולוציה גבוהה היא פחות מ-20%. בנוסף, התפזורת התרמית היא כ-2 W עבור הרזולוציה הגבוהה ביותר, ותדירות הפעולה המקסימלית נמדדה כ-136 MHz עבור רזולוציה גבוהה ו-166 MHz עבור תמונות ברזולוציה נמוכה, מה שמעיד על ירידה של 18% בלבד בתדירות. הארכיטקטורה המוצעת משיגה סקיילינג תתי-ליניארי של משאבים, עם עלייה של פחות מ-20% בניצול המשאבים וירידה של פחות מ-20% במהירות ובצריכת האנרגיה בעת טיפול בעלייה של פי 56 במספר הפיקסלים, תוך ניצול היתרונות של ארכיטקטורת FPGA הטרוגנית מודרנית. כתוצאה מכך, היכולת לרזולוציה אדפטיבית בשילוב עם סקיילינג נמוך של משאבים הופכת את התכנון המוצע למתאים במיוחד ליישומי זיהוי קצוות בזמן אמת הדורשים עיבוד תמונה באיכות גבוהה.

מבוא

זיהוי קצוות (Edge Detection) הפך למרכיב קריטי כמעט בכל טכניקות ראיית המחשב המשמשות כיום בתחומי יישום שונים1. זיהוי קצוות הוא שלב של חילוץ מאפיינים האחראי על השגת פרטים אינפורמטיביים ומבחינים מתמונות, שניתן ליישמם במגוון רחב של תרחישים2. קצוות בתוך תמונה מסמנים אזורים שבהם קיים שינוי פתאומי בעוצמה; לכן, הם מספקים מידע חשוב ומבחין על אותה תמונה. תהליך זה מקל על הסרת פרטים מיותרים ולא רלוונטיים, תוך שימור האלמנטים הקריטיים והייחודיים בלבד שניתן לעבד בהמשך עבור היישום הספציפי.

חשיבותה של זיהוי קצוות מודגשת על ידי יישומה במגוון משימות, הכוללות סגמנטציה של תמונות, זיהוי והכרה של אובייקטים, מיצוי מאפיינים, שיפור תמונות, זיהוי אובייקטים, דימות רפואי, מעקב, אוטומציה תעשייתית, נהיגה אוטונומית, מציאות רבדית ורובוטיקה2,3,4,5,6, כפי שמוצג ב-איור 1.

קיימות שיטות מרובות לזיהוי קצוות, כולל Sobel, Prewitt, Roberts, Canny ואחרות. בין טכניקות אלו, זיהוי קצוות בשיטת Sobel בולט בשל יישומו הפשוט, מורכבות מימוש מינימלית ודיוק גבוה בזיהוי קצוות3,4,5,6. הגרדיאנטים של התמונה נקבעים על ידי אלגוריתם Sobel Edge הן בכיוון האופקי והן בכיוון האנכי, תוך שימוש בגרעיני (kernels) Gx ו-Gy בהתאמה, כפי שמוצג להלן2,4.

Gx מדגישה את הקצוות ב- × Gx מדגיש קצוות בכיוון x, ו-Gy מדגיש קצוות בכיוון y12,13כאשר משלבים ביניהם, הם מגדירים באופן מלא את כל הקצוות בתמונה.6תהליך הקונבולוציה (convolution) עם הגרעין (kernel) והחלון הנחלק משמשים להחלת גילוי קצוות בשיטת Sobel על תמונה. בכל פעם נדלף מהתמונה חלון במידות של, נניח, 3 על 3 פיקסלים, וחלון זה עובר קונבולוציה עם מטריצת המסנן כדי לקבל את הערך החדש של הפיקסל המרכזי. התמונה כולה מעובדת שוב באופן זה. בגילוי קצוות בשיטת Sobel נעשה שימוש בשני גרעינים כאלה: אחד לחילוץ קצוות בכיוון ציר ה-x ואחד נוסף לכיוון ציר ה-y. כדי לקבל את כל הקצוות, שתי התוצאות הללו משולבות לאחר מכן. גילוי קצוות בשיטת Sobel מפיק תוצאות מדויקות ואמינות, אותן ניתן לשפר עוד יותר באמצעות עיבוד מקדים.4,5,15זיהוי הקצוות המלא בשיטת Sobel מפורש ב- איור 2.

למרות שכל הספרות המדווחת תורמת תרומה משמעותית לתחום גילוי קצוות (edge detection), כל המחקרים המרכזיים שדווחו התמקדו ברזולוציות תמונה נמוכות, בעוד שהעבודה המוצגת במאמר זה עוסקת ברזולוציות תמונה שונות, החל מתמונות ברזולוציה נמוכה (256 × 256) ועד לרזולוציית תמונה בחדות גבוהה מלאה (HD) (2560 × 1440). כתוצאה מכך, בחינת המימוש החומרתי של אלגוריתם Sobel לגילוי קצוות עבור רזולוציות תמונה שונות היא קריטית להבנת יעילות המימוש כאשר הוא נחשף לתרחישי זמן אמת עם רזולוציות תמונה משתנות. מערכי שערים לוגיים הניתנים לתכנות (FPGA) הוכרו כפלטפורמה מתאימה למימושים חומרתיים, בשל התאמתם לפיתוח אב-טיפוס מהיר ויתרונות כגון יכולת הגדרה מחדש (re-configurability), המאפשרת שינויים קלים בתכנון ללא צורך בשינוי כל תצורת החומרה6,7,8,9,10,11,12,13. יתרה מכך, FPGAs מציעים פוטנציאל לעיבוד מקבילי ועיבוד בצינור (pipelining); ברגע שמדדי הביצועים מותאמים ואופטימליים והפלטפורמה מתוקפת, התכנון יכול להתקדם לעבר ייצור בפועל של מעגלים משולבים ייעודיים (ASICs)14,15. מאפיין חשוב נוסף של FPGA הוא יכולת ההגדרה מחדש שלהם, המאפשרת למתכננים לבצע שינויים בתכנון המוצר בכל עת ללא צורך בהחלפת רכיבי חומרה. תכנות מחדש של השבב הוא כל מה שדרוש, וזה דורש מעט מאוד זמן או מאמץ, בתנאי שהמתכנן בקיא בשפות תיאור חומרה כגון VHDL/Verilog4,6,13,16,17. עבור ניתוח מימוש ה-FPGA, הפרמטרים העיקריים שנשקלים הם מהירות (תדר מקסימלי), ניצול משאבים ויעילות אנרגטית. Table 1 מתאר את הכמות הגוברת של הספרות שפורסמה בתחום ה-FPGA ומראה כיצד פרסומי FPGA התפתחו בתקופה שבין 2006 ל-2024. הוא מסביר בבירור שתחום מחקרי ה-FPGA עבר כעת ליישומים בזמן אמת, מציאות רבוית (augmented reality), מחשוב קצה (edge computing) ויישומים מתקדמים אחרים13,14,15,16,17,18,19,20,21,22,23.

טבלה 2 מדגישה את העבודות שבוצעו בספרות הקיימת בנוגע להטמעת גילוי קצוות Sobel על FPGA בין השנים 2020–2025. טבלה 2 מציינת את לוח ה-FPGA שבו נעשה שימוש, את האלגוריתמים שהוטמעו, את מתודולוגיית התכנון, את הממצאים, את המדדים, את תחום היישום ואת האתגרים של כל מאמר המוזכר.

המחברים4 המליצו להשתמש בשיטת Sobel Edge בעלת 8 כיוונים כדי להגביר את דיוק זיהוי הקצוות, אולם הם דיווחו על צריכת משאבים גבוהה יותר עבור המתודולוגיה המוצעת. Navinkumar et. al. משתמשים בטכניקה להפחתת פעולות מתמטיות מורכבות של כפל ושורש ריבועי הכרוכות בזיהוי קצוות מסוג Sobel המסורתי, ובכך חוסכים במשאבי המערכת ומשפרים את המהירות9. המחברים17 תיעדו את השימוש באלגוריתם Sobel Edge Detection לזיהוי נתיבים במערכות עזר מתקדמות לנהג (Advanced Driver Assistance Systems). מטרתם הייתה להאיץ את הזיהוי תוך קיצור זמן העיבוד. באופן כללי, השימוש בזיהוי קצוות הוצע כשיטה מהימנה להפקת אזור עניין (region of interest extraction) בעתיד, מה שעשוי לסייע רבות במגוון יישומים שבהם יש צורך להוציא את האזור הרלוונטי בתמונה תוך התעלמות ממידע מיותר אחר. האתגרים שדווחו באופן קולקטיבי כללו ניצול משאבים וזיכרון גבוה יותר, רגישות לרעש, עלות חישובית גבוהה ויכולת התרחבות מוגבלת עבור תמונות ברזולוציה גבוהה4,5,6,11,12,13,21,22,23.

בעבודה זו, מימוש של אלגוריתם Sobel המסורתי לזיהוי קצוות בוצע על גבי לוח FPGA מסוג Ultra96-V2, עבור רזולוציות תמונה שונות הנעות מרזולוציה נמוכה של 256 × 256 ועד לרזולוציית Full HD של 2560 × 1440. ה-Ultra96-V2 הוא לוח המשלב יכולות תכנות של FPGA עם עיבוד Arm עוצמתי (Cortex-A53/R5) עבור יישומים בעלי ביצועים גבוהים. לוח זה שוחרר לראשונה בשנת 2018, והוא משתמש בצומת טכנולוגי של 16 nm FinFET18.

כדי להבטיח הדירות, כל המימוש בוצע באמצעות שרשרת כלים סטנדרטית המורכבת מ-Vivado HLS 2019.2 עבור סינתזה ברמה גבוהה (HLS) ו-Vivado 2019.2 עבור מיקום וניתוב (place-and-route), וכן את תמונת ה-PYNQ ששוחררה על ידי משאבי Ultra96-V2. קוד ה-HLS שימש לגזירת ה-IP (קניין רוחני) של זיהוי קצוות Sobel, אשר יוצא ושולב בחליפת התכנונים של Vivado. ה- IP מומש בחלק ה-PL (לוגיקה ניתנת לתכנות), וחלק ה-PS (מערכת עיבוד) של ה-FPGA היה אחראי על העברת נתונים ומנגנוני בקרה. הממשק בין ה-PS ל-PL בוצע באמצעות פרוטוקול AXI. כל המדדים המדווחים — תדר, ניצול משאבים והספק — נלקחו מדוחות לאחר מימוש, ולא מהערכות HLS. הגדרות המימוש נשארן עקביות, ורק רזולוציות התמונות שונו לאורך הניסויים.

ההישגים המשמעותיים של עבודה זו הם במונחים של צריכת חשמל נמוכה, ניצול משאבים נמוך ומהירות גבוהה. התוצאות מעידות על ניצול של פחות מ-20% ממשאבי המערכת onboard (18% טבלאות חיפוש (LUTs), 11% פליפ-פלופים (FF), 3% זיכרון, ו-10% DSP) עבור תמונות ברזולוציה גבוהה, דבר המצביע על פוטנציאל רב לשילוב עיבוד נרחב יותר של תמונות אלו, כפי שצפוי בכל מערכת ראייה ממוחשבת, שכן גילוי קצוות הוא רק שלב ביניים. כמו כן, התפזורת ההספקית היא כמעט 2 W, ותדר הפעולה המקסימלי המדווח הוא 144 MHz. התוצאות מראות כי הגדלת גודל התמונות פי 56 כמעט מעלה את ניצול המשאבים בכ-20% בלבד. גם המהירות והתפזורת ההספקית נפגעות בכ-20% בלבד. ניתוח זה בוחן באופן משמעותי את האלגוריתם מנקודת מבט שונה, שלא דווחה בספרות קודמת, ולפיכך מעיד כי המימוש מתאים ליישומים בזמן אמת ללא צורך להגביל את התמונות לגדלים קטנים או לרזולוציה נמוכה, דבר שפוגע ללא ספק בכמות המידע הדרושה בשלבים הבאים לאחר גילוי הקצוות.

החידוש בעבודה זו אינו טמון באלגוריתם עצמו, אלא במיקוד בהערכת הביצועים של אלגוריתם זיהוי הקצוות המסורתי של Sobel ברזולוציות תמונה שונות על ארכיטקטורות FPGA הטרוגניות מודרניות, תוך ניצול היתרונות של טכניקות מימוש מבוססות HLS. התרומות המרכזיות של מאמר זה הן בעיקר ביישום של מתודולוגיה היברידית הממומשת על FPGA, המפיצה ביעילות את עומס העבודה בין חלקי ה-PS וה-PL של הארכיטקטורה כדי לאפשר לתכנון להסתגל ללא מאמץ לרזולוציות שונות. תרומה נוספת כוללת ניסויים להערכת האופן שבו סקלינג של משאבים משתנה עם שינויים ברזולוציות התמונה, דבר המסייע בהבנת הביצועים במערכים שונים ועבור יישומים מגוונים.

פרוטוקול

1. מימוש גילוי קצוות Sobel בכלי ה-HLS

  1. פתחו את הכלי Vivado HLS 2019.2 וצרו פרויקט. בחרו בלוח FPGA מסוג Ultra96-V2.
  2. כתבו את הקוד בשפה ברמה גבוהה באמצעות שפת ++C עבור זיהוי קצוות בשיטת Sobel, כאשר פרמטר גודל התמונה הוא כללי ולא קבוע.
    הערה: רוחב וגובה התמונה אינם קבועים ונכתבים כפרמטר כללי בקוד, כך שניתן לשנותם בקלות בעת שינוי רזולוציית התמונה ללא צורך בשינויים במספר מיקומים.
  3. כתבו את קוד ה-test bench עבור אלגוריתם זיהוי הקצוות של Sobel בשפת ++C.
    הערה: ה-test bench נכתב כדי לספק את תמונות הקלט שעליהן נבדק הקוד.
  4. לחצו על “run C simulation” כדי להריץ סימולציה של הקוד ולבדוק את התקינות הפונקציונלית. הזינו תמונת קלט ל-test bench ולאחר מכן בדקו את הפלט שהופק, שאמור להיות תמונה עם קצוות.
  5. לחצו על “run C synthesis” כדי לבצע סינתזה לקוד ה-HLS ולייצא את ה-IP עבור זיהוי קצוות Sobel.
    הערה: תהליך הסינתזה ממפה ביסודו את התכנון המקוד לרכיבי חומרה והופך את התכנון לתואם ומוכן ליישום בחומרה.
  6. בדקו את דוחות התזמון (timing) וניצול המשאבים (resource utilization) שהופקו על ידי הכלי, וודאו כי הזמן המוערך אינו עולה על הזמן שהוצב כיעד.
    הערה: כל התוצאות הללו מפלטפורמת ה-HLS הן רק הערכה, והפרמטרים בפועל מחושבים רק כאשר התכנון מיושם על FPGA.
  7. לחצו על “export IP” כדי לייצא את ה-IP של הליך זיהוי הקצוות של Sobel.
    הערה: IP זה ישמש בשלב הבא בעת תכנון תרשים הבלוקים ליישום FPGA בכלי Vivado.

2. יישום גילוי קצוות Sobel על פלטפורמת FPGA, Ultra96-V2, באמצעות IP HLS שהופק

  1. פתחו את כלי העיצוב Vivado וצרו פרויקט חדש. בחרו בלוח המטרה Ultra96-V2 ולחצו על “Create a new block design”.
  2. ייבאו את ה-IP של Sobel edge שיוצא זה עתה מכלי ה-HLS. הוסיפו את שאר הבלוקים הדרושים להשלמת הממשק בין חלקי ה-PS וה-PL.
    הערה: תרשים הבלוקים משתמש גם בבלוקי IP חשובים אחרים, כגון Zynq Ultrascale IP, Smart Connect ומנגנון איפוס המעבד (processor reset), וכו', לצורך ביסוס הממשק בין ה-PS ל-PL באמצעות פרוטוקול Advanced eXtensible Interface (AXI).
  3. לחצו על “validate design” כדי לאמת את עיצוב הבלוקים. ודאו כי הכלי אינו מדווח על שגיאות עיצוב. אם קיימות שגיאות, פעלו לפי הוראות התיקון ואמתו שוב.
    הערה: שלב זה מבטיח שאין חיבורים חסרים בתרשים הבלוקים, אך הוא אינו מאמת את התקינות הפונקציונלית של עיצוב הבלוקים.
  4. לחצו על “create the HDL wrapper” כדי לקבל קוד HDL כללי עבור עיצוב הבלוקים.
  5. לחצו על “run synthesis” כדי לבצע סינתזה של העיצוב ולבדוק אם דווחו שגיאות. אם לא נמצאו שגיאות, הכלי ידווח על סינתזה מוצלחת. לאחר סינתזה מוצלחת, עיינו בדוחות התזמון (timing reports) של הסינתזה כדי לבדוק אם קיימות הפרות תזמון.
  6. כדי לבדוק הפרות תזמון, ודאו שאף אחד מהנתונים אינו מופיע בטקסט אדום, שכן הדבר מעיד על כך שהזמן שנוצל עולה על הזמן שהוקצב, ומכאן נובעות ההפרות.
  7. לחצו על “run implementation” כדי לממש את העיצוב ולהעריך את דוחות התזמון, ההספק וניצול המשאבים.
  8. צרו את קובץ ה-“.bit” לצורך תכנות לוח ה-FPGA.
    הערה: תרשים הבלוקים לזיהוי קצוות Sobel ב-Ultra96-V2 מוצג ב-איור 3. כפי שצוין קודם לכן, תרשים הבלוקים נדרש בעיקר כדי לבסס ממשק בין חלקי ה-PS וה-PL של לוח ה-FPGA.

3. תכנות לוח ה-FPGA

  1. להכנת כרטיס ה-SD, הורד את קובץ תמונת ה-PYNQ (סיומת .img) עבור לוח ה-Ultra96-V216 והתקינו את הקובץ שהורד בכרטיס ה-SD.
  2. הדלק את הלוח במצב אתחול מכרטיס SD על ידי בחירת מיקומי המתגים בהתאם למדריך הייחוס של Ultra96-V216.
  3. גשו לכתובת ה-URL‏ http://192.168.3.1, והזינו את שם המשתמש והסיסמה, שניהם "xilinx", כאשר תתבקשו לעשות זאת.
    הערה: מומלץ להשתמש בדפדפן Google Chrome כדי למנוע אי-תאימויות טכניות.
  4. היכנסו לפלטפורמת Jupyter וכתבו קוד Python עבור חלק ה-PS לקריאת תמונות או סרטוני קלט ושליחת התמונה שנקראה לחלק ה-PL לצורך עיבוד.
  5. כתבו קוד למשימה של כתיבה חוזרת של התמונות המעובדות מה-PL אל ה-PS והצגת התוצאה.
    הערה: להצגת התוצאות ב-Ultra96-V2 נעשה שימוש בפלטפורמת PYNQ, המקלה משמעותית על הצגת תמונות הפלט באמצעות שימוש בקוד Python ובספריות OpenCV.
    איור 4 מציג את השלבים של גישת ה-Ultra96-V2 כפי שהודגמו בסעיף זה ואת התוצרים שהתקבלו.

תוצאות

סעיף זה דן בתוצאות שהתקבלו בעיצוב של זיהוי קצוות בשיטת Sobel על גבי Ultra96-V2. איור 5 להלן תמונות הקלט והפלט שהתקבלו באמצעות סימולציית HLS. התמונות שבהן נעשה שימוש הן התמונות הסטנדרטיות בגודל 512 × 512. תוצאות אלו מדגימות כי קוד ה-HLS שנכתב לזיהוי קצוות בשיטת Sobel תקין מבחינה פונקציונלית. הקצוות חייבים להיות גלויים בבירור בתמונות התוצאה.

טבלה 3 מציגה את דוחות הסינתזה ואת הפרמטרים שהופקו עבור תזמון וניצול משאבים ב-Ultra96-V2 עם רכיב FPGA מדגם xczu3eg-sbva484-1-e. הדוח כולל מידע הקשור לתזמון הממחיש האם התכנון עומד באילוצי התזמון כפי שהוגדרו על ידי המשתמש. על פי סיכום התזמון, הזמן המוערך של 8.544 ns נמוך מזמן היעד של 10 ns, מה שמעיד בבירור על כך שהתכנון עומד באילוצי המשתמש.

כלי HLS מייצרים גם הערכה של ניצול המשאבים, המספקת למתכנן הערכה של השימוש האפשרי במשאבים המובנים על השבב. את פרמטרי הניצול בפועל ניתן להפיק רק לאחר מימוש החומרה בפועל. למרות שקיימות קטגוריות ענקיות ושונות של משאבים ב-FPGA, רכיבי החומרה הנפוצים ביותר הם LUTs (טבלאות חיפוש), FFs (פליפ-פלופים), DSP Slices (פרוסות עיבוד אותות דיגיטליים) וזיכרון.

טבלה 3 מציגה גם את התזמון בפועל ואת ניצול המשאבים כאשר גילוי קצוות מסובל (Sobel edge detection) פותח על ה-Ultra96-V2 עבור תמונות ברזולוציה גבוהה. ניתוח התזמון מראה כי ה-worst negative slack הוא 3.102 ns, מה שמעיד על כך שיש מספיק זמן לעיבוד, ולכן הושגה מהירות שעון של 144 MHz. תדר העבודה שהושג של 144 MHz ברזולוציה של 1920 × 1080 תואם לקצב עיבוד של כ-299 MP/s, העולה על ה-62 MP/s הנדרשים לעיבוד וידאו ב-full HD בזמן אמת ב-30 fps. כדי להבין את סקאלת המשאבים וההשפעה על הפרמטרים בעת מעבר מתמונות ברזולוציה נמוכה לתמונות ברזולוציה גבוהה, הטבלה מדווחת באמצעות תוצאות ניסיוניות הכוללות את אותם השלבים שחזרו על עצמם עבור רזולוציות שונות.

טבלה 4 מציינת את גודל התמונה ומכאן את סך הפיקסלים, ולאחר מכן את תדר העבודה, ההספק וניצול המשאבים במונחים של LUTs, FFs, BRAM ו-DSP. ניתן להצביע בבירור על כך שבעת המעבר מהרזולוציה הנמוכה ביותר שנבחנה של 256 × 256 לגבוהה ביותר של 2560 × 1440, הכוללת עלייה של כמעט פי 56 במספר הפיקסלים, הפרמטרים השתנו ב-20% בלבד. הדבר מעיד בבירור על סקלינג תת-ליניארי של משאבים, שבו הנתונים לעיבוד עולים פי כמה וכמה, אך הפגיעה במדדי הביצועים היא מינימלית מאוד, מה שהופך את המערכת למתאימה לפריסה בזמן אמת.

התוצאות המוצגות בTable 4 מדגימות בבירור כי יישום זיהוי קצוות מסובל (Sobel) ב-Ultra96-V2 מציע יתרונות משמעותיים למשימות הדורשות רזולוציות גמישות, שכן מדדי הביצועים נשארים אופטימליים ואינם מראים שינויים ניכרים בעת עדכון גודל התמונה מרזולוציה נמוכה לגבוהה. הצלחה זו מיוחסת לגישת מימוש היברידית המונעת עומס יתר על לוגיקת ה-FPGA בנתוני התמונה, ובכך מאפשרת למעבד של הכרטיס לנהל את עומס העבודה המשמעותי של התמונה. המעבד פשוט מעביר את נתוני התמונה לרכיב לוגיקת ה-FPGA, כאשר כל עלייה בשינוי קנה המידה של המשאבים או ירידה בתדר המקסימלי הן תוצאה בלבד של נפח הנתונים הגדול הדורש טיפול רב יותר. לפיכך, ניתן לקבוע כי הגישה שבה נהגו במאמר זה משיגה סקלינג תת-ליניארי של משאבים, למרות שמספר פיקסלי התמונה גדל פי 56 כמעט.

העבודה שהומישה מושווית גם לתכנונים קיימים כדי להבין את ההשוואה בין מדדי הביצועים, כגון רזולוציית תמונה, תדר שעון, צריכת חשמל וניצול משאבים. טבלה 5 מציגה את ההשוואה עם הספרות העדכנית ביותר.

כפי שמוצג בבירור ב-Table 5, לעבודה שיושמה במאמר זה יש מדדי ביצועים הולמים, אך לפתרונות הקיימים של מימושים שדווחו בעבר9,10יש פרמטרים טובים יותר. עם זאת, כאשר נערכת השוואה כללית, ניתן לציין ששתי העבודות הקודמות9,10פעלו על רזולוציית תמונה נמוכה ועל פלטפורמות FPGA מיושנות, בעוד שהתוצאות המוצגות במאמר זה הן בהתאם לרזולוציות תמונה אדפטיביות, שבהן גודל התמונה שנבחן נע בין הרזולוציה הנמוכה ביותר של 256 × 256 לרזולוציית definition גבוהה של עד 2560 × 1440. התוצאות מעידות כי גישת זיהוי הקצוות של Sobel שיושמה, אשר מנצלת את היכולות של המעבד ושל החלק הלוגי של לוח ה-FPGA ההטרוגני, Ultra96-V2, מתגלה כמועילה להשגת סקילביליות של משאבים תת-ליניארית ככל שמספר הפיקסלים עולה פי 56 כמעט, אך ניצול המשאבים עולה ב-20% בלבד, וההידרדרות בהספק ובמהירות היא גם פחות מ-20%. עבור הרזולוציה הנמוכה ביותר, נעשה שימוש ב-5% בלבד מהמשאבים, והניצול המקסימלי הוא 23% בלבד, מה שמותיר זמינות רבה לעיבוד נוסף. לפיכך, ניתן לקבוע בבירור כי בשל ההבדל ברזולוציות התמונה, קשה להשוות, אך אם מנתחים את התכנון שיושם בעבודה זו, תדר השעון הוא 136 MHz, צריכת ההספק היא 2 W, וניצול המשאבים הוא פחות מ-23% מסך המשאבים שעל הלוח. חשוב לציין כי המימושים שדווחו בעבודות קודמות9,10מפגינים מדדי ביצועים פרטניים עדיפים. עם זאת, חשוב להדגיש ששתי העבודות מעריכות את התכנונים שלהן ברזולוציית תמונה קבועה אחת, בעוד שהעבודה המוצעת מוערכת על פני טווח רחב של רזולוציות מ-256 × 256 ועד 2560 × 1440. לפיכך, יעדי התכנון שונים מהותית, שכן העבודות9,10מבצעות אופטימיזציה לביצועי שיא ברזולוציה אחת, בעוד שהארכיטקטורה המוצעת נותנת עדיפות לאדפטיביות ולסקילביליות תת-ליניארית של משאבים על פני רזולוציות מרובות. דבר זה הופך את התכנון שיושם למתאים ליישומים הדורשים זיהוי קצוות.

ניתן אפוא לקבוע כי בעבודה זו, סקאלינג (scaling) תת-ליניארי של משאבים מוגדר כמצב שבו אחוז העלייה בניצול המשאבים נמוך משמעותית מאחוז העלייה במספר הפיקסלים. כאשר הרזולוציה עולה מ-256 × 256 ל-2560 × 1440, מספר הפיקסלים עולה בכ-5600%, בעוד שניצול המשאבים על גבי הכרטיס עולה בפחות מ-20%. קצב גידול נמוך זה של המשאבים, הנובע ישירות מאסטרטגיית החלוקה ההטרוגנית של PS-PL, מאשר את התנהגות הסקאלינג התת-ליניארית של הארכיטקטורה המוצעת. בעוד שהמימוש המוצע מדגים סקאלינג תת-ליניארי של משאבים לאורך טווח הרזולוציות שנבדקו, יש לציין מגבלות מסוימות לצורך פרשנות מדויקת של התוצאות. תדר העבודה יורד ב-18% מרזולוציה נמוכה לגבוהה, ואקסטרפולציה מעבר ל-2560 × 1440 עשויה לדרוש התאמה ארכיטקטונית כדי לשמור על עמידה בזמנים (timing closure). בנוסף, מאחר שהעברת נתוני התמונה מנוהלת על ידי מעבד ה-ARM, תקורה (overhead) של ההעברה בצד ה-PS גדלה באופן ליניארי עם מספר הפיקסלים ועשויה להגביל את קצב העברת הנתונים (throughput) ביישומי הזרמת וידאו רציפים ברזולוציה גבוהה, מעבר למה שעולה מהמדדים של צד ה-PL לבדם.

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

עיבוד תמונה: תרשים זיהוי קצוות באמצעות אופרטור Sobel עם גרעיני קונבולוציה על תמונת קלט.
איור 2: תיאור השלבים באלגוריתם זיהוי הקצוות של Sobel. תרשים זרימה הממחיש את תהליך זיהוי הקצוות של Sobel, כולל חילוץ חלון תמונה של 3 × 3, קונבולוציה עם גרעיני Sobel אופקיים ואנכיים, ויצירת תמונת הפלט עם הקצוות המזוהים. אנא לחצו כאן כדי לצפות בגרסה גדולה יותר של איור זה.

דיאגרמת בלוקים של Zynq UltraScale+, ארכיטקטורת מערכת המציגה זרימת נתונים ומרכיבי AXI interconnect.
איור 3: דיאגרמת בלוקים המיושמת לזיהוי קצוות בשיטת Sobel על לוח FPGA מסוג Ultra96-V2, תוך שימוש בממשק בין ה-PS (מערכת העיבוד) לבין ה-PL (לוגיקה ניתנת לתכנות).דיאגרמת בלוקים המציגה את ארכיטקטורת החומרה ואת הקישוריות של מערכת העיבוד (PS), הלוגיקה הניתנת לתכנות (PL), וליבות ה-IP התומכות ששימשו עבור מימוש ה-FPGA. אנא לחצו כאן כדי לצפות בגרסה גדולה יותר של איור זה.

תהליך צריבת תמונה של PYNQ וזרימת תכנון ב-Vivado; הגדרת כרטיס SD, תיקוף, יצירת קובץ bit.
איור 4: שלבים לתכנות לוח Ultra96-V2 עבור זיהוי קצוות של Sobel באמצעות פלטפורמת PYNQ ותוצאת זיהוי קצוות של Sobel על תמונת קלט.זרימת עבודה המראה את הליך התכנות עבור לוח Ultra96-V2 באמצעות פלטפורמת PYNQ ותמונת פלט מייצגת שהתקבלה לאחר יישום ב-FPGA. אנא לחצו כאן כדי לצפות בגרסה גדולה יותר של איור זה.

זיהוי צבעים וקצוות בעיבוד תמונה; רשת השוואה של תמונות מקוריות ותמונות עם הדגשת קצוות.
איור 5: תוצאות סימולציה עבור זיהוי קצוות Sobel בתמונות סטנדרטיות שונות באמצעות Vivado HLS (2019.2). תמונות קלט מייצגות והפלטים התואמים שלהן עם זיהוי קצוות, שהתקבלו במהלך סימולציה פונקציונלית של אלגוריתם זיהוי קצוות Sobel באמצעות Vivado HLS 2019.2. אנא לחצו כאן כדי לצפות בגרסה גדולה יותר של איור זה.

טבלה 1: אבולוציה של יישומי FPGA במחקר ראייה ממוחשבת (2006–2024). סיכום של יישומים מייצגים של ראייה ממוחשבת מבוססי FPGA שדווחו בין השנים 2006 ל-2024. אנא לחצו כאן להורדת טבלה זו.

טבלה 2: ספרות קשורה ליישום אלגוריתמים לגילוי קצוות על FPGA (2020-2025). השוואה של יישומים עדכניים לגילוי קצוות מבוססי FPGA, כולל הפלטפורמה, המתודולוגיה ומדדי ביצועים שדווחו. אנא לחצו כאן להורדת טבלה זו.

טבלה 3: מימוש זיהוי קצוות Sobel ב-FPGA: פרמטרים מוערכים ופרמטרים בפועל. תוצאות סינתזת HLS מוערכות ותזמון וניצול משאבים תואמים לאחר מימוש שהתקבלו עבור מימוש ה-FPGA. אנא לחצו כאן להורדת טבלה זו.

טבלה 4: ניצול משאבים ומדדי ביצועים של אלגוריתם זיהוי קצוות Sobel המיושם ברזולוציות תמונה שונות. מדדי ביצועים, תדר פעולה, צריכת חשמל וניצול משאבי FPGA של המימוש המוצע ברזולוציות תמונה שונות. אנא לחץ כאן להורדת טבלה זו.

טבלה 5: השוואה בין גילוי קצוות Sobel המיושם לבין שיטות קיימות על FPGA. השוואה בין מימוש ה-FPGA המוצע לבין מימושי גילוי קצוות Sobel שדווחו בעבר, תוך שימוש במדדי ביצועים מייצגים. אנא לחצו כאן להורדת טבלה זו.

דיון

מאמר זה מתמקד בביצוע אלגוריתם Sobel לזיהוי קצוות, המהווה רכיב חיוני ביישומים שונים בתחומים מרובים של ראייה ממוחשבת ועיבוד תמונה2,3,4,5,6. מימוש זיהוי הקצוות של Sobel מבוצע באמצעות הכלי Vivado HLS, המאפשר קידוד בשפות ברמה גבוהה יותר במקום להסתמך על שפות תיאור חומרה. קוד ה-Vivado HLS מורץ על לוח Ultra96-V2. תוצאות לאחר המימוש מעידות כי התכנון שהוטמע תומך בתמונות ברזולוציה גבוהה ופועל בתדר של 136 MHz עם צריכת חשמל של 2 W ופחות מ-20% מסך המשאבים בלוח. כמו כן, התוצאות הראו כי הגישה מתאימה לרזולוציית תמונות אדפטיבית, שכן יישומים שונים עשויים לדרוש שימוש בגדלי תמונה משתנים, וזיהוי קצוות הוא בדרך כלל שלב ביניים2,3,4,5,6, המתבצע בתדירות גבוהה מאוד בצינורות תכנון מורכבים. לפיכך, ניתן לקבוע כי המערכת שתוכננה ניתנת להטמעה ביישומים בזמן אמת הדורשים זיהוי קצוות. הזמינות הגבוהה של משאבים מרמזת כי ניתן לשלב שלבי עיבוד שונים נוספים במערכת שפותחה6,7,8,9,10,11,12,13,14,15.

יישום מוצלח של גלאי קצוות Sobel על לוח Ultra96-V2 דורש תשומת לב קפדנית למספר היבטים מעשיים. מסגרת העבודה PYNQ מפשטת באופן משמעותי את האינטראקציה בין ה-PS ל-PL על ידי מתן אפשרות לבקרת חומרה באמצעות ספריות Python, ובכך מפחיתה את מאמץ פיתוח התוכנה. עם זאת, יש להוריד את אימג' ה-PYNQ הנכון מהמקור הרשמי, ויש להגדיר את כרטיס ה-SD כראוי לפני הפריסה. אימות תפקודי של תכנון ה-HLS באמצעות סביבות בדיקה (test benches) מקיפות הוא חיוני לפני ייצוא ה-IP, שכן תיקוף מוקדם מסייע בזיהוי שגיאות אלגוריתמיות ושגיאות בממשק לפני היישום בחומרה. במהלך יישומים ב-FPGA, תכנון תרשים הבלוקים דורש גם הוא תשומת לב רבה מצד המתכנן, שכן מומלץ להבין היטב את ארכיטקטורת חומרת ה-FPGA הנדונה, ומכאן לבחור את הבלוקים המתאימים ולבצע את החיבורים. לא מומלץ לבצע אוטומציה מלאה של החיבורים, שכן הדבר עלול להוביל לחיבורים חסרים או לחיבורים שאינם מתאימים לתכנון המתוכנן. בשלב זה של ממשק ה-PS–PL, שגיאות כגון מיפוי כתובות AXI שגוי, חוסר התאמה בין תחומי שעון (clock-domain mismatches), או העברות DMA שאינן מוגדרות כראוי, עלולות למנוע תקשורת מוצלחת בין המעבד ללוגיקה הניתנת לתכנות. ניתן לזהות בעיות אלו באמצעות כלי אימות התכנון של Vivado ולפתור אותן על ידי אימות הקצאות הכתובות, הגדרות השעון, חיבורי הפסיקות והגדרות ה-DMA לפני יצירת ה-bitstream. במהלך יישום ה-FPGA, עלולות להתרחש הפרות תזמון (timing violations) עקב נתיבים קומבינטוריים ארוכים או פייפליינינג (pipelining) לא מספק. הגדלת מספר שלבי הפייפליין, אופטימיזציה של מבני לולאות, או הקלה על אילוצי התזמון במקומות המתאימים יכולים לסייע בהשגת סגירת תזמון (timing closure).

בעוד שעבודה זו מתקפת את ארכיטקטורת חלוקת ה-PS-PL המוצעת באופן ספציפי עבור גילוי קצוות בשיטת Sobel, הגישה הארכיטקטונית היא כללית מטבעה. כל אלגוריתם שניתן לבטא כקונבולוציה של חלון צף (sliding window convolution)—כולל Prewitt, Roberts, Laplacian of Gaussian, או שלב הגרדיאנט של Canny—ניתן להמיש באמצעות גישה דומה, כאשר השינויים בתכנון ה-HLS הם העיקריים3,4,5,6. קיימות מגבלות מסוימות לעבודה המוצעת. אחת המגבלות היא השיהוי הנובע מהעברת נתונים בין ה-PS לבין חלק ה-PL של ה-FPGA, דבר המשפיע על זמן הביצוע הכולל של האלגוריתם. יתרה מכך, הממצא לגבי סקלינג סוב-ליניארי (sub-linear scaling) הוא ייחודי לארכיטקטורה ההטרוגנית של Ultra96-V216 ועשוי שלא לחול ישירות על פלטפורמות FPGA הומוגניות שחסר בהן ליבת מעבד ייעודית.

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

גילויים

המחברים מצהירים כי אין ניגודי עניינים. לא נעשה שימוש בכלי בינה מלאכותית (AI) בהכנת כתב יד זה.

תודות

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

חומרים

רשימת החומרים שנעשה בהם שימוש במאמר זה
שםחברהמספר קטלוגהערות
כרטיס FPGA מדגם Ultra96-V2 Xilinx הוצג בשנת 2018פלטפורמת מימוש חומרה ששימשה למימוש אלגוריתם זיהוי ההולכים ברגל
Vivado HLS ניוון רשתגולמי הגילים (AMD)2019.2כלי High Level Synthesis המשמש לתכנות ברמה גבוהה של קוד זיהוי הולכי הרגל במאמר לצורך ייצוא הקניין הרוחני (IP)
Vivado ניוון רשת גלובולי (AMD)2019.2כלי תכנות FPGA המשמש לתכנות לוח ה-FPGA מסוג Ultra 96 v2 עם אלגוריתם Sobel לזיהוי קצוות 

מקורות

  1. Rani N. Image processing techniques: a review. J Today Ideas Tomorrow Technol. 2017;5(1):40-9.
  2. Gonzalez RC. Digital image processing. Pearson Education; India; 2009.
  3. Jena KK, Mishra S, Mishra S. An edge detection approach for fractal image processing. In: Examining Fractal Image Processing and Analysis. IGI Global; 2020. p. 1-22.
  4. Gayathri AG, Remya AS. VLSI implementation of improved Sobel edge detection algorithm [conference presentation]. Presented at: 2021 International Conference on Communication, Control and Information Sciences (ICCISc); 2021 Jun 16. Available from: https://ieeexplore.ieee.org/
  5. Obaid MT. Efficient Implementation of Sobel Edge Detection with ZYNQ-7000 [Master's thesis]. Purdue University.
  6. Asharani P, et al. A inventive method for door detection on FPGA using Sobel edge algorithm [conference presentation]. Presented at: 2022 2nd International Conference on Intelligent Technologies (CONIT); 2022 Jun 24. Available from: https://ieeexplore.ieee.org/
  7. Shylashree N, Anil Naik M, Sridhar V. Design and implementation of image edge detection algorithm on FPGA. Int J Circuits Syst Signal Process. 2022;16:628-36.
  8. Zhou G, Guo S, Chen Z. FPGA-based improved Sobel operator edge detection. Front Comput Intell Syst. 2023;5(2):6-11.
  9. Navinkumar K, Logesh R, VishnuBabu P, Ananthalakshmi AV. FPGA implementation of Sobel edge detection algorithm. EAI Endorsed Trans Internet Things. 2024;10.
  10. Ravichandran S, et al. Parallel processing of Sobel edge detection on FPGA: enhancing real-time image analysis. Sensors. 2025;25(12):3649.
  11. Baloch A, et al. Hardware synthesize and performance analysis of intelligent transportation using Canny edge detection algorithm. Int J Eng Manuf. 2021;11(4):22-32.
  12. Patel CS, Solanki N, Tailor N. Analysis of edge detection using Zynq based SoC FPGA. Turk Online J Qual Inq. 2021;12(7).
  13. Kashyap S, Bhandari AK, Giri P. Low resource FPGA implementation based efficient image edge detector architecture. Multimed Tools Appl. 2024;83(9):25595-615.
  14. Dakshayani V, et al. Design of a Gabor filter-based image denoising hardware model. Electronics. 2022;11(7):1063.
  15. Belmessaoud NM, Bentoutou Y, El-Mezouar MC. FPGA implementation of feature detection and matching using ORB. Microprocess Microsyst. 2022;94:104666.
  16. Castells-Rufas D, et al. A survey of FPGA-based vision systems for autonomous cars. IEEE Access. 2022;10:132525-63.
  17. Vedavyas Y, Vasavi S, Harsha SS, Subhash MS. An FPGA-based adaptive real-time quality enhancement system for drone imagery. SN Comput Sci. 2022;4(1):84.
  18. Avnet. Ultra96-V2 Single Board Computer Hardware User's Guide. Revision 1.0. Avnet; 2020 May.
  19. Singh G, et al. Optimizing IoT capabilities: leveraging FPGA for superior performance, efficiency and security [conference presentation]. Presented at: 2024 5th International Conference for Emerging Technology (INCET); 2024 May 24. Available from: https://ieeexplore.ieee.org/
  20. Kaur A. A survey on FPGA implementations in embedded augmented reality applications [conference presentation]. Presented at: 6th Edition of International Conference on Wireless Networks and Embedded Systems (WECON); 2018 Nov 16. Available from: https://ieeexplore.ieee.org/
  21. Kalaiselvi A, Sajina S, Nithish S, Sowmiya M. Implementation of Sobel edge detection. Int Res J Mod Eng Technol Sci. 2023;5(3):701-11.
  22. Narasimhamurthy CG, Kulkarni S. Fast architecture for low level vision and image enhancement for reconfigurable platform [conference presentation]. Presented at: 2021 International Conference on Advances in Electrical, Computing, Communication and Sustainable Technologies (ICAECT); 2021 Feb 19. Available from: https://ieeexplore.ieee.org/
  23. Pujare A, Sawant P, Sharma H, Pichhode K. Hardware implementation of Sobel edge detection algorithm [conference presentation]. Presented at: ITM Web of Conferences; 2020. Available from: https://www.itm-conferences.org/

הדפסות חוזרות והרשאות

תגיות

EngineeringComputer VisionField Programmable Gate ArrayImage ProcessingImage ResolutionSobel Edge Detection