‏הצגת רשומות עם תוויות R2011a. הצג את כל הרשומות
‏הצגת רשומות עם תוויות R2011a. הצג את כל הרשומות

יום ראשון, 1 ביולי 2012

גילוי פנים בעזרת MATLAB

בגרסת R2011a של כלי MathWorks נוסף למשפחת המוצרים כלי חדש – Computer Vision System Toolbox, או בקיצור - CVST. כלי זה משמש לתכנון וסימולציה של מערכות ראיה ממוחשבת ועיבוד וידאו, באמצעות שלוש דרכים:

1. בלוקים לעיבוד וידאו וראיה ממוחשבת בסביבת Simulink – מדובר למעשה בבלוקים שהרכיבו את הכלי שנקרא בעבר Video and Image Processing Blockset
2. סיסטם אובג'קטס - אשר מאפשרים גישה לחלק משמעותי מאותם הבלוקים המוזכרים לעיל, אך ללא צורך ברישיון Simulink או בידע בעבודה עם Simulink
3. אלגוריתמים יעודיים חדשים לראיה ממוחשבת

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

System Objects קיימים ב-MATLAB כבר מאז R2010a, ונידונו כאן בעבר. אחד מה-System Objects החדשים שנוספו בגרסת R2012a של ה-CVST הוא ה-CascadeObjectDetector, המאפשר לבצע גילוי פנים באמצעות אלגוריתם Viola-Jones. שימו לב שלא מדובר בזיהוי פנים, אלא בגילוי פנים (יודעים שיש פנים בתמונה, לא יודעים של מי הפנים). בנוסף, חשוב להדגיש שהאלגוריתם גם יכול לסייע במציאת אלמנטי גוף אחרים, שאינם פנים – למשל: עיניים, אף, פה או פלג גוף עליון.

האלגוריתם ממומש בצורה של System Object על מנת שיוכל לאפשר גילוי של פנים בסדרת תמונות או בסרט וידאו, ולא רק בפריים בודד. כפי שניתן לראות בדוגמה, הפלט של הפעלת האלגוריתם (באמצעות המתודה step) על גבי תמונה (של חברי הצוות שפיתח את ה-CVST) הינו מערך של bounding boxes – ריבוע סביב כל פנים שזוהו בתמונה. ואת הריבועים הללו ניתן לצייר על התמונה באמצעות ה-System Object של ShapeInserter.

קוד המדגים גילוי פנים (לחצו להגדלה)

חשוב להדגיש שהחל מגרסת R2012a, הכלי היחיד (פרט ל-MATLAB) שנדרש לצורך הפעלת ה-CVST הוא ה-Image Processing Toolbox (עד אז היה צורך גם ב-DSP System Toolbox וב-Signal Processing Toolbox). למידע נוסף על יכולות עיבוד הוידאו בסביבת MATLAB באמצעות ה-CVST, ה-Image Processing Toolbox וה-Image Acquisition Toolbox, לחצו לצפיה בסרטון של 5 דקות.

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

האם ידעתם על היכולת לבצע גילוי פנים באמצעות ה-CVST? האם בכלל הכרתם את ה-CVST?

יום שני, 9 במאי 2011

כנגד ארבעה System Toolboxes דיברה תורה

בפוסט הקודם סקרתי "ממעוף הציפור" את החידושים בגרסת 2011a של כלי MathWorks והבטחתי להתמקד בחלק מהם. החידוש המשמעותי הראשון שבו אעסוק הינו השקתם של ה-System Toolboxes, שנועדו להקל על פיתוח מערכות עיבוד אות ותמונה, מערכות Phased Array ומערכות תקשורת.

למי שדואג, ה-Image Processing Toolbox ו- Signal Processing Toolbox ממשיכים להתקיים, ובגרסה החדשה פשוט הצטרפו אליהם מספר כלים המהווים את משפחת ה- System Toolboxes, שנועדה להקל על פיתוח מערכות עם MATLAB ו-Simulink בהיבטים של:

• מהירות הסימולציות,
• יכולת עבודה עם טיפוסי מידע מסוג Fixed-Point,
• כמות האלגוריתמים האמינים המוכנים לשימוש,
• יצירה אוטומטית של קוד C++/C מתוך האלגוריתמים,
• שימוש חוזר ב-IP בעת מעבר בין MATLAB ו-Simulink.

מדובר למעשה בצעד שלישי בנתיב שבו MathWorks החלה לצעוד בו בגרסת 2010a, עם השקת טכנולוגיית ה-System Objects , כאשר החל מגרסת 2011a כבר אין אפילו צורך לקנות Blocksets על מנת לעבוד עם ה-System Objects, שממילא עובדים איתם רק מתוך סביבת MATLAB, (למי שלא יודע Blocksets הם כלי עזר לסביבת Simulink).

הכלים החדשים הינם:

1. DSP System Toolbox – הכלי משמש לתכנון וסימולציה של מערכות עיבוד אות, והוא איחוד של שלושה מרכיבים מוכרים –
• Filter Design Toolbox
• Signal Processing Blockset
• Signal Processing System Objects
הכלי דורש את ה-Signal Processing Toolbox לשם פעולתו.

2. Communications System Toolbox – הכלי משמש לתכנון, סימולציה וניתוח השכבה הפיזית (Physical Layer) של מערכות תקשורת, והוא איחוד של שלושה מרכיבים מוכרים –
• Communication Toolbox
• Communication Blockset
• Communication System Objects
הכלי דורש את ה-DSP System Toolbox לשם פעולתו.

3. Computer Vision System Toolbox – הכלי משמש לתכנון וסימלציה של מערכות ראיה ממוחשבת ועיבוד וידאו. הכלי הינו איחוד של שני מרכיבים מוכרים ומרכיב חדש –
• Video & Image Processing Blockset
• Video & Image Processing System Objects
אלגוריתמים יעודיים לראייה ממוחשבת ב-MATLAB ו-Simulink.
הכלי דורש את ה-DSP System Toolbox וה-Image Processing Toolbox לשם פעולתו.

4. Phased Array System Toolbox – כלי חדש
למי שלא מכיר, Array Signal Processing פירושו שימוש במערך גלאים הנמצאים במקומות שונים, על מנת לגלות אותות תלויי זמן ומקום ולחלץ מידע לגביהם (למשל – מאיזה כיוון הגיע האות). הכלי יכול להיות שימושי למפתחי מערכות מכ"מ, מערכות Ultrasound, מערכות תקשורת מרובות-אנטנות, מערכות חיפוש גז ונפט ומערכות לבדיקות לא-הורסות.

לסיכום, הנה תרשים שמתאר את המעברים השונים ואת ה-Dependencies השונים:

האם יצא לכם להשתמש ב-System Toolboxes החדשים? אילו פונקציות חסרות לכם לצורך פיתוח אלגוריתמי ראיה ממוחשבת? על אילו חידושים ב-R2011a תרצו שארחיב בפוסטים הבאים?

יום שלישי, 12 באפריל 2011

שי לחג – גרסת R2011a

כשותפים לקהיליית משתמשי MATLAB ו-Simulink, אני שמח לבשר לכם על שחרורה בתחילת אפריל של גירסת R2011a של מוצרי MathWorks, המכילה יכולות חדשות
ב-
MATLAB ו-Simulink, וכן עדכונים לעשרות כלים אחרים.


בתקופה הקרובה אסקור לעומק כמה מהחידושים המשמעותיים, אבל בינתיים – הנה משפט אחד על כל אחד מהעיקריים שבהם:
 
System Toolboxes חדשים לפיתוח ב-MATLAB ו-Simulink:
  • Computer Vision System Toolbox – מכיל אלגוריתמים חדשים מתחום הראיה הממוחשבת ומשלב בתוכו את יכולות ה-Video and Image Processing Blockset.
  • Phased Array System Toolbox – כלי חדש המשמש לתכנון, סימולציה וניתוח של מערכות מכ"מ, מערכות רפואיות (למשל Ultrasound), מערכות סלולר ועוד.
  • DSP System Toolbox – מאחד את יכולות ה-Filter Design Toolbox וה-Signal Processing Blockset.
  • Communications System Toolbox – מאחד את ה-Communications Toolbox וה-Communications Blockset.
כלי יצירת קוד חדשים:
  • MATLAB Coder – לייצור קוד C/C++ ישירות מתוך פונקציות MATLAB, ללא צורך ברישיון Simulink.
  • Simulink Coder – לייצור קוד C/C++ ישירות מתוך Simulink ו-Stateflow (מאחד את יכולות ה-Real-Time Workshop וה-Stateflow Coder, ומוסיף על יכולות ה-MATLAB Coder).
  • Embedded Coder – לייצור קוד Embedded ישירות מתוך MATLAB, Simulink או Stateflow (מאחד את יכולות ה-Real-Time Workshop Embedded Coder, Embedded IDE Link וה-Target Support Package, ולא מחייב רישיון Simulink).
בין היכולות החדשות במשפחת מוצרי MATLAB:
  • ביצועים משופרים לפונקציות רבות מתחום האלגברה הלינארית.
  • אפליקציות המקומפלות תוך שימוש ב-MATLAB Compiler וב-Parallel Computing Toolbox מסוגלות לרוץ באופן מקבילי על עד 8 ליבות אצל משתמש הקצה.
  • אפשרות לייצר אפליקציות Standalone מיישומים העושים שימוש ב-System Objects, באמצעות ה-MATLAB Compiler.
  • פותרן (Solver) חדש ב-Optimization Toolbox לבעיות תכנות רבועי (Quadratic Programming) בעלות אלפי אילוצים.
  • ממשק חדש לפתרון בעיות אופטימיזציה של תיקי השקעות ב-Financial Toolbox.
בין היכולות החדשות במשפחת מוצרי Simulink:
  • Signal Logging Selector להשוואת תוצאות סימולציה של מודלים שונים וריצות שונות של אותו מודל ב-Simulink.
  • FPGA-in-the-loop, Customizable I/O ותמיכה ברכיבי Xilinx ב-Simulink HDL Coder, EDA Simulator Link ו-xPC Target.
  • זיהוי אוטומטי של שגיאות Overflow וחלוקה באפס בעת שימוש בטכנולוגיית Polyspace ב-Simulink Design Verifier.     
מידע נוסף על הגירסה החדשה ניתן למצוא כבר כעת באתר MathWorks.