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

יום שני, 23 ביוני 2014

300 משתתפים בסמינרי עיבוד תמונה וראיה ממוחשבת בסביבת MATLAB

כ-300 משתמשים / משתמשים פוטנציאליים בכלי MathWorks הגיעו באמצע יוני לשני סמינרים חצי-יומיים בנושא עיבוד תמונה וראיה ממוחשבת בסביבת MATLAB, שהתקיימו בחיפה (130) וגבעת שמואל (170).
כ-170 משתתפים בסמינר בגבעת שמואל (לחצו להגדלה)

בסמינרים, שההשתתפות בהם היתה ללא עלות, ראו הנוכחים דוגמאות מעניינות לשימוש בכלי
MathWorks, ונחשפו ליכולות שנוספו לכלים בגרסאות האחרונות שלהם. בין הדוגמאות והיכולות שהוצגו:
  •           גילוי אוטומטי של עגבניות בתמונה וניתוח מימדיהן ורמת הבשלות שלהן, לצורך ביצוע ניתוחים סטטיסטיים המשמשים להשבחת זרעי הפירות והירקות שאנו אוכלים. במהלך הדוגמא בוצע שימוש בטיפוס מידע חדש בשם table, שנוסף לסביבת MATLAB בגרסת R2013b.
  •           האצת אלגוריתמי עיבוד תמונה וראיה ממוחשבת באמצעות מחשבים מרובי ליבות, כרטיסי מסך (GPU) והמרה אוטומטית של אלגוריתמים מ-MATLAB לקוד C. חלק מהאלגוריתמים שהואצו עשו שימוש בפונקציות עיבוד תמונה אשר רק לאחרונה התווספו לרשימת הפונקציות הניתנות להאצה בעזרת ה-GPU או על ידי המרה אוטומטית שלהן לקוד C.
  •           עקיבה אחר אובייקטים בסרטון וידאו המצולם בזמן אמת.
  •          רגיסטרציה של תמונת IR עם תמונה ממצלמת רשת בשיטת Intensity-Based-Registration.
  •          זיהוי תווים אופטי (OCR) בעזרת פונקציה שהצטרפה ל-Computer Vision System Toolbox בגרסת R2014a.
  •          סגמנטציה תוך שימוש בשיטת Active Contours בעזרת פונקציה שנוספה ל-Image Processing Toolbox בגרסת R2013a.
  •         אפליקציה בשם Color Thresholder שנוספה ללשונית ה-Apps בגרסת R2014a של ה-Image Processing Toolbox, המאפשרת ליצור מסיכת סגמנטציה לתמונות צבע על ידי שימוש במרחבי צבעים שונים.
בנוסף, בסמינר הועברה גם הרצאת אורח ע"י אולג טרשנקו, בנושא המרת תמונה מדו-מימד לפסבדו תלת-מימד (שימושי להצגת תמונות שצולמו בטלפון נייד על גבי מכשירי טלויזיה התומכים בתצוגת תלת-מימד סטריאוסקופית).

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


יום רביעי, 27 בנובמבר 2013

נתח לוגי

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


-          שלום, אני יגאל, וגם אני הייתי סטודנט להנדסת חשמל
-          כולם ביחד: אנחנו אוהבים אותך יגאל
-          ובאותם הימים עבדתי במשרת סטודנט באחת מחברות ההזנק הישראליות שלימים נמכרה לחברת ענק בינלאומית
-          כולם ביחד: אנחנו גאים בך, יגאל
-          התפקיד שלי היה לבנות סביבת אימות לקוד לוגי שנכתב ע"י המפתחים, להריץ אותו ע"ג שרתי הסימולציה ולנתח את התוצאות שלו
-          כמה מהאנשים בקהל מהנהנים בראשם בהבנה
-          הו, כמה שעות נפלאות העברתי בניתוח צורות גלים (waveforms) וניסיונות להבין מדוע נכשלה הסימולציה
-          מהנדס בחולצת פסים בגוונים של כחול בשורה שלישית: תגיד להם איש, תגיד להם!
-          למעשה, גם היום קשה לדמיין דרך יותר נוחה לנתח התנהגות מערכות לוגיות ומכונות מצבים מאשר צורת גל לוגית או נתח לוגי (Logic Analyzer). אלא ששום דבר לא נמשך לנצח, וברגע שעברתי מתחום הפיתוח הלוגי לתחום האלגוריתמיקה והנדסת מערכת נשארתי ללא כלי waveform שכל כך אהבתי, שכן במשפחת MATLAB & Simulink לא היו את הכלים האלה...
-          מהנדסת בג'קט אפור, היושבת בשורה הראשונה, מזילה דמעה שקטה של הזדהות ומנגבת אותה בנייר טישו
-          וכך, למרות כל הקושי, נשארתי waveform clean במשך כמה שנים טובות
-          קול מאחת השורות האחוריות: תהיה חזק, אתה לא לבד במלחמה היום יומית הזאת!
-          אז ככה, יש לי משהו חשוב לספר לכם! לא רבים יודעים, אבל החל מגרסת R2013a של כלי MathWorks הצטרף ל DSP System Toolbox כלי חדש, ה Logic Analyzer!
-          מחיאות כפיים, שריקות של עידוד, קולות YEAH מוקלטים ברקע... FADE TO BLACK... כתוביות... מנגינה... 

כפי שהבנתם, נושא הפוסט הוא כלי מדידה יחסית חדש - ה dsp.LogicAnalyzer, שנכלל ב DSP System Toolbox. הכלי מאפשר לבצע ניתוח שינוי ערך האות (signal transition) בתחום הזמן כאשר מספר הערוצים לניתוח מוגבל רק ע"י יכולת המחשב שלכם. מתוקף היותו של Logic Analyzer ממומש כ System Object, יש לו הן את היכולת לנתח את כל האותות המוכנסים אליו כחתיכה (frame) אחת לכל ערוץ, והן את היכולת לתח את האותות בצורת דגימות זורמות (streaming signal processing). וכפי שהתרגלתם בעבודתכם בסביבת MATLAB, גם ה Logic Analyzer תומך במגוון שורשי יסוד (Radixes), פורמטים וצורות תצוגה. מגניב? בטח מגניב! אז בוא נראה דוגמא...
הנה תרשים בלוקים (הניתן להגדלה ע"י לחיצה) ובו Digital Up-Converter:

בקודMATLAB , התהליך נראה כך:


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


נקרא כעת לאובייקט ה
Logic Analyzer :

שימו לב לכך שהגדרות שמות הערוצים, ה
Radix לכל ערוץ, קצב הדגימה של התצוגה והמפריד (Divider) - הם רק חלק מהאפשרויות העומדות לרשות המשתמש באובייקט לטובת שיפור צורת התצוגה והפיכת לברורה יותר. תוצאת הפעלת האובייקט הזה היא:

מה שקבלנו כאן הוא למעשה "תחליף זמין" לכלי
Waveform Display הנכללים בדרך כלל בכלי סימולצית קוד חומרה כמו Mentor Graphics ModelSim ומתחריו. הכלי מאפשר לנו לנתח התנהגות דינמית של אותות המערכת ברמת מעבר בודד, מה שהופך את הכלי למושלם לעבודות דיבוג של בעיות בעלות אופי דינאמי. הכלי יקל עלינו לוודא שאותות
סימון (
Signaling) או בקרה (Control) מופעלים בתזמון נכון, ובעיות כמו אובדן חלק מהמידע כתוצאה מאותות בקרה שמופעלים בתזמון לא נכון - לא יתרחשו.
מפני שהכלי ממומש כ System Object, השימוש בו אפשרי לא רק בסביבת MATLAB אלא גם בסביבת Simulink, רק חשוב לציין ששימוש בסביבה האחרונה ידרוש מהמשתמש גם פעולה של  Logging לאותם אותות שהוא יהיה מעוניין לנתח.

לקריאה נוספת:
- תיעוד מתוך אתר MathWorks (לחצו כאן)
- פוסט באנגלית בנושא (לחצו כאן)

יום חמישי, 9 במאי 2013

R2013a מחכה לכם !


בחודש מרץ שוחררה גרסה חדשה של כלי MathWorks, ראשונה מאז השקת MATLAB 8 ו-Simulink 8, והיא כוללת עדכונים ל-MATLAB  ו-Simulink, שני כלים חדשים, ושדרוגים + תיקוני באגים ל-82 כלים אחרים.

בין היכולות החדשות במשפחת מוצרי MATLAB:

* MATLAB – קל יותר לכתוב ולהריץ unit tests כדי לפתח קוד רובסטי יותר (קישור לסרטון, קישור לתיעוד); שיפורי ביצועים לפונקציות fft ו-permute; פונקציות חדשות לפיצול ואיחוד סטרינגים (strsplit, strjoin); מירקור מילות חיפוש בעמודי התיעוד שמוצגים כתוצאה מהחיפוש (ניתן לבטל את המירקור על ידי לחיצה על Esc); אפשרות לבצע פעולות כמו Zoom in ושמירה לתוך קובץ מתוך עמודי תיעוד (באמצעות הלחצן הימני של העכבר); טבלת תוכן עניינים המקלה על הניווט בעמודי התיעוד (פתיחה על ידי לחיצה על Contents בפינה השמאלית העליונה).

* Image Processing Toolbox אפשרות להמרה אוטומטית של 10 פונקציות נוספות על ידי ה-MATLAB Coder לקוד C  עבור PC; יכולת האצה של 11 פונקציות באמצעות כרטיס המסך (GPU) על ידי ה-Parallel Computing Toolbox; ביצוע סגמנטציה תוך שימוש ב-Active Contours.

* Parallel Computing Toolbox האצה של 11 פונקציות מעולם עיבוד התמונה באמצעות כרטיס המסך (GPU); תוספת פונקציות אחרות הניתנות להאצה באמצעות ה-GPU; יכולת להפעיל קוד CUDA  מתוך פונקציות MEX במערכות הפעלה מסוג  64 ביט.

* Image Acquisition Toolbox בכלי המאפשר הזרמת וידאו ותמונות ממגוון התקנים ישירות לתוך MATLAB ו-Simulink  נוספה תמיכה ברכישת תמונות ממערכת חישת-התנועה Kinect בסביבת Windows (קישור למידע נוסף, קישור לפוסט ישן יותר הקשור לנושא).

* Statistics Toolbox כולל כעת את פקודות ה-SVM לסיווג בינארי (svmclassify ו- svmtrain, אשר בעבר היו חלק מה-Bioinformatics Toolbox).

* Trading Toolbox כלי חדש המאפשר גישה לשערים של מכשירים פיננסים ושליחה אוטומטית של פקודות למערכות מסחר בזמן אמת (קישור לעמוד הכלי).

* MATLAB Distributed Computing Server בכלי המאפשר להאיץ ביצועים של תוכניות MATLAB ומודלי Simulink על ידי אשכול מחשבים (Cluster), ענן (Cloud) או מחשוב שריגי (Grid) – התווספו workers לבעלי רישיונות לכלי (ללא תשלום נוסף). לקוחות חדשים יוכלו להינות ממחירים מוזלים על חבילות ה-workers השונות.

בין היכולות החדשות במשפחת מוצרי Simulink:

* Simulink – שדרוג יועץ הביצועים (Performance Advisor) המראה כיצד ניתן לשפר את מהירות הסימולציה; ביצועי סימולציה משופרים למקרה בו בוחרים באפשרות לחזור אחורה בזמן הסימולציה; אפשרות להחלפת סדר ה-Tab-ים בחלון המודל (ע"י גרירת Tab-ים למיקומים הרצויים); אפשרות לבצע masking לבלוק ה-MATLAB Function בצורה ישירה (אין עוד צורך להכניסו לתוך תת-מערכת); תמיכה built-in בחומרותRaspberry Pi  ו- Gumstix Overo (בנוסף לתמיכה שהיתה קיימת ב-Lego Mindstorm NXT, Beagleboard, Arduino ו-PandaBoard, חפשו כאן את החומרה שעל התמיכה בה תרצו לקרוא עוד).

* SimRF – בכלי המאפשר מידול וסימולציה של מקלטים-משדרים אלחוטיים במערכות תקשורת ומערכות מכ"מ, מתאפשרות כעת טעינה וסימולציה מהירות יותר של מודלים המכילים בלוקים מספרית Circuit Envelope, הודות לפותרן חדש.

בין היכולות החדשות במשפחת ה-System Toolboxes:

* Communications System Toolbox – לכלי המקל על תכנון, סימולציה וניתוח של מערכות תקשורת ב-MATLAB ו-Simulink נוספו System Objects חדשים: Sphere Decoder ו- Constellation Diagram.

* Computer Vision System Toolbox – לכלי המשמש לעיבוד וידאו, עיבוד תמונה וראיה ממוחשבת בסביבות MATLAB ו-Simulink נוסף אלגוריתם חילוץ הפיצ'רים FREAK, המבוסס על מערכת הראיה האנושית ואשר נמצא כמהיר יותר, חסכוני יותר בזיכרון ורובסטי יותר מ-SIFT ו-SURF; ניתן כעת לאמן את ה-Cascade Object Detector לקבלת גלאי המסוגל לאתר אובייקטים שונים בתמונה, מעבר לאובייקטים כמו פנים, אף, עיניים, פה ופלג גוף עליון (קישור לתיעוד, קישור ל-GUI בנושא); נוספו פונקציות חדשות המבצעות פעולות שבעבר בוצעו רק על ידי System Objects (גילוי פינות, שערוך התמרה גיאומטרית, טקסט וגרפיקה).

* DSP System Toolbox – לכלי המקל על תכנון וסימולציה של מערכות עיבוד אות נוספו מגוון System Objects, וביניהם שניים עבור סינון אדפטיבי.

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

בין היכולות החדשות בתחום ה-Code Generation:

* MATLAB Coder – הכלי המאפשר יצירת קוד C/C++ בצורה אוטומטית מתוך קוד MATLAB תומך כעת בעוד מגוון פונקציות, וביניהן, כמפורט למעלה, 10 פונקציות מתוך ה-Image Processing Toolbox.

* Fixed-Point Designer – כלי חדש, המשלב את יכולות ה-Fixed-Point Toolbox וה-Simulink Fixed Point, ומקל על פיתוח אלגוריתמי Fixed-Point ב-MATLAB ו-Simulink. בין היתר, הכלי מאפשר המרה אוטומטית ומהירה של קוד MATLAB ב-Floating Point לקוד C ב-Fixed-Point (יש צורך ברישיון גם ל-MATLAB Coder).

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

מה דעתכם על הגרסה החדשה? מאיזה פיצ'ר התלהבתם במיוחד? האם יש חידוש משמעותי עבורכם שלא צויין למעלה?