הסבר על מעקב צבע#

מהו מעקב אחר צבע וכיצד ה-CMUcam4 עושה זאת?#

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

כדי לציין צבע, עליך להגדיר ערך מינימלי ומקסימלי מותר עבור שלושה ערוצי צבע. כל צבע ייחודי מיוצג על ידי ערך אדום, ירוק, וכחול המציין כמה מכל ערוץ מעורבב לצבע הייחודי. החלק המסובך בציון צבע הוא שעליך להגדיר טווח של ערכים מותרים עבור כל שלושת ערוצי הצבע. מכיוון שהאור אינו אחיד באופן מושלם וצבעו של עצם אינו אחיד באופן מושלם, עליך להתאים לשונויות אלה. עם זאת, אינך רוצה להרפות את הגבולות האלה יותר מדי, שכן אחרת יתקבלו צבעים לא רצויים רבים. מכיוון שבמקרה של ה-CMUcam4, כל ערוץ צבע מומר למספר בין 0 ל-255, ניתן לתחום כל ערוץ בשני מספרים, גבול עליון ותחתון. אם יש לך שני גבולות עבור כל אחד משלושת הערוצים, משמעות הדבר היא שניתן להשתמש בשישה ערכים כדי לתחום את מרחב הצבע כולו שברצונך לעקוב אחריו. אם תדמיין את הצבעים מיוצגים על ידי קובייה שבה כל צלע היא ערוץ צבע שונה (אדום, ירוק וכחול) אזי ששת הערכים המשמשים לבחירת הצבע שלך יציירו תיבה תלת-ממדית בתוך אותה קובייה המגדירה את מערך הצבעים הרצוי לך.

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

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

מהי היסטוגרמה ולמה היא טובה?#

היסטוגרמה היא סוג של תרשים המציג את התדירות וההתפלגות של נתונים. במקרה של ה-CMUcam4, ההיסטוגרמה מציגה את התדירות וההתפלגות של ערכי הצבע הנמצאים בתמונה. כל עמודה מייצגת טווח של ערכי צבע עבור ערוץ מסוים. ה-CMUcam4 יכולה לחלק את ערכי הצבע האפשריים מ-0 עד 255 ל-1, 2, 4, 8, 16, 32, ו-64 תאים שונים. כל תא מכיל את מספר הפיקסלים שנמצאו בתמונה הנופלים בתוך גבולות צבע כלשהם. כך שערך גדול בתא מסוים אחד משמעו שרבים מאותם צבעים נמצאו בתמונה. כל היסטוגרמה מייצגת רק ערוץ צבע נבחר אחד.

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