יום שלישי, 11 באוגוסט 2015

טקסי מטלב | על ההתנסות של התעשיה האווירית בשימוש בכלי MathWorks בפיתוח ה-TaxiBot

מנועים של מטוסים מסחריים נמצאים ביעילות מקסימלית בזמן טיסה, ואינם אופטימליים בזמן הסעה (taxiing) של המטוס בשדה התעופה, בין שער העלייה למטוס לבין מסלול ההמראה. לדוגמה, בהסעה טיפוסית של 17 דקות, בואינג 747 יכול לצרוך טון דלק, ולשחרר 3.2 טון של דו-תחמוצת-הפחמן, תוך כדי גרימת רעש רב. משמע, יש לדבר משמעויות כספיות וסביבתיות, ולכן – התעשייה האווירית פיתחה את הטקסיבוט (TaxiBot) – כלי רכב חצי-רובוטי המסוגל להסיע מטוס מתודלק שמנועיו הראשיים כבויים. בזכות הפיתוח הזה – צריכת הדלק יורדת מטון ל-25-30 ליטר בלבד, ופליטת דו-תחמוצת-הפחמן פוחתת מ-3.2 טון ל-60 ק"ג בלבד. חשוב, לא ?

כדי לפתח את תוכנת מחשב המשימה של ה-TaxiBot, השתמשה התעשייה האווירית בתכנון מבוסס-מודל (Model-Based Design) באמצעות MATLAB ו-Simulink – משלב כתיבת הדרישות, דרך מידול המערכת, המרה אוטומטית שלה לקוד C, ועד שילוב הקוד הנ"ל וביצוע וריפיקציה שלו על ידי בדיקות Hardware-in-the-loop. הפרויקט, אגב, אף רושיין באמצעות כלי MathWorks לתקן ה-DO-178 - לחצו לפוסט בנושא הנ"ל בבלוג הזה מלפני שלוש וחצי שנים.

כדי לקרוא על ההתנסות של התעשיה האווירית בשימוש בכלי MathWorks בפרויקט – וכיצד הם קיצרו את זמני הפיתוח ב-50% בהשוואה להתנסות שלהם עם שיטות פיתוח מסורתיות – לחצו כאן.

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

יום חמישי, 23 ביולי 2015

אין סוסים שמדברים עברית, אבל מטלב – בהחלט מדבר


הידעת ש-MATLAB יודע לזהות טקסט בעברית ?

זיהוי תווים אופטי הוא תחום מתפתח חשוב בעולם הראיה הממוחשבת, ובדיוק בשל כך בגרסת R2014a של ה-Computer Vision System Toolbox נוספה לכלי הפונקציה ocr. בתחילה, הפונקציה תמכה רק בשפות אנגלית ויפנית, אבל החל מגרסת R2014b – ניתן להוריד ללא עלות חבילת תמיכה בשפות נוספות, כולל עברית !

כל מה שצריך לעשות על מנת להתקין את התוסף זה להקליד visionSupportPackages, ללחוץ על next, ולבחור ב-OCR Language Data. וכיצד משתמשים בפקודה ocr על מנת לפענח טקסט בשפת הקודש ? הנה דוגמה:

ניקח את הטקסט הבא, המתאר אותי במספר משפטים:


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


והנה התוצאה (יש ללחוץ על התמונה להגדלה):


מגניב, לא ?

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



יום ראשון, 28 ביוני 2015

מאות משתתפים בכנס MATLAB & Simulink בינלאומי בישראל


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

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

בחלק הראשון של היום האזינו המשתתפים להרצאתו של ד"ר רוי לוריא (Dr. Roy Lurie), סמנכ"ל הפיתוח של כלי MATLAB, אשר סקר כיצד MATLAB מקדם תהליך חדשנות בכל העולם, ובפרט – בישראל. בהמשך נהנו הנוכחים מהרצאה מרתקת על הסיפור שמאחורי מערכת כיפת ברזל, שהועברה על ידי ארי סכר מחברת רפאל, אשר משמש כמהנדס מערכת בפרויקט (לפוסט שפורסם כאן בנושא הזה לפני שלוש שנים וחצי - לחצו פה).

בחלק השני של הכנס התחלקו הנוכחים בין שמונה מסלולים מקצועיים בתחומים שונים ומגוונים, אשר הועברו על ידי מהנדסי האפליקציה של סיסטמטיקס, בכירי MathWorks, ומשתמשי הכלים – ממשתמשים מנוסים ועד תלמידי תיכון שהסבירו על אופן השימוש שלהם בכלי MATLAB ו-Simulink. נושאי המסלולים המקצועיים היו "עיבוד תמונה וראיה ממוחשבת", "אווירונאוטיקה ורובוטיקה", "תקשורת ועיבוד אות", "לימוד מכונה ו-Data Science", "תכנון חומרה וביצוע וריפיקציה", "המרה אוטומטית של קוד MATLAB לקוד C", "האצת ביצועים של אלגוריתמים והפצה שלהם" ו-"Internet of Things".

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

זה הכנס הכי גדול שקיימנו עד כה בתשע שנות פעילות של קו מוצרי ה-Technical Computing & Model-Based Design , אנחנו מאוד מרוצים מההיענות של משתמשי הכלים, ועל סמך הפידבקים שקיבלנו – המשתתפים בכנס נהנו ולמדו המון. להתראות באירועים הבאים – מומלץ לעקוב אחר הפרסומים באתר סיסטמטיקס, שאגב - עבר לאחרונה מתיחת פנים רצינית (לחצו פה).


יום שלישי, 26 במאי 2015

כיצד להחליף מחשב ולהישאר בחיים ?


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

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

אל התיקייה הנ"ל ניתן להגיע על ידי כתיבת הפקודה prefdir ב-MATLAB שעל המחשב הישן, ובה ניתן למצוא את הקובץ  shortcuts_2.xml (או shortcuts.xml, תלוי בגרסת ה-MATLAB) וכתלות בגרסה – אולי גם את הקובץ MATLABQuickAccess.xml אשר מכיל את הגדרות ה-Quick Access Toolbar שלכם (נכנס בגרסת R2012b). עכשיו כל שנותר הוא רק להעתיק את הקבצים הללו לתיקיית ה-Preferences של MATLAB על המחשב החדש – ואתם מסודרים (גם אותה מוצאים על ידי שימוש בפקודת prefdir).

עכשיו כולם ביחד: "תתחדש רועי"   J



יום חמישי, 2 באפריל 2015

מדהים מה שהנוער של היום מסוגל לעשות אם רק נותנים לו את הכלים !

בסוף החודש שעבר ביקרה בארץ ד"ר לורן שור, אשר הינה האדם הראשון שנשכר לעבודה ע"י מנכ"ל MathWorks (היום כבר יש בחברה מעל 3,000 עובדים). במהלך 28 שנות עבודתה עד כה בחברה, פיתחה ד"ר שור כלים שונים ופונקציות רבות (imread, imwrite, diff, filtfilt, interp1, interp2, imagesc  וכו'), והיא גם מנהלת בלוג   שזוכה לחשיפה "קצת יותר גדולה" מהבלוג שאתם קוראים כרגע, אשר בו פורסם לראשונה על ביקורה הצפוי
ד"ר שור הוזמנה לארץ על מנת לשמש כ-Keynote Speaker בכנס IMVC השנתי, בו דיברה על פתרון בעיות Big Data בתחום הראיה הממוחשבת באמצעותMATLAB . פרט לכך, במהלך ביקורה ד"ר שור אף השתתפה בשני סמינרים בנושא Big Data שקיימה חברת סיסטמטיקס, וכן הרצתה במוסדות אקדמים מובילים.  בסך הכל, במהלך חמשת הימים בהם שהתה בישראל, הרצתה ד"ר שור בפני למעלה מ-1,000 איש  !
ד"ר שור מרצה בפני מאות אנשים בכנס IMVC
כיוון שאחד מתפקידי בחברת סיסטמטיקס הוא לשמש כאחראי הטכני על הפעילות מול המוסדות להשכלה, התלוויתי לד"ר שור במהלך כל ביקורה בישראל, אשר על תכנונו הייתי מופקד. אחד הביקורים המעניינים שהיו לנו היה בתיכון מטרו-ווסט ברעננה, שם נפגשנו עם ארבעה מתלמידי המגמה המדעית-הנדסית, אשר פיתחו יישום חברתי לניהול תזונה אישית - כאשר כל החלק של עיבוד התמונה לשם זיהוי סוגי מאכלים שונים פותח עם תוכנת MATLAB. כן, הם החלו להשתמש ב-MATLAB בכיתה י"א  !
פרויקט ה-CalCam, לחצו להגדלה
ד"ר שור ואני שמחנו להצטלם יחד עם ארבעת השמיניסטים המוכשרים, אחראי המגמה הדר טל ומנהל בית הספר אמנון בר נתן, שאף העניק לנו שי צנוע - דגל בית הספר שבמרכז התמונה - לאות תודה על הסיוע לפרוייקט.
מנהל בית הספר (מימין), ד"ר שור (שלישית מימין), אחראי המגמה (שני משמאל), אני (משמאל) ומפתחי פרויקט ה-CalCam

אם זו לא דוגמה ל-MATLAB with Fun, כשם הבלוג הזה, אז אני לא יודע מה כן :)



יום שני, 30 במרץ 2015

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

גרסת R2015a של כלי MathWorks כוללת עדכונים משמעותיים ב-MATLAB, Simulink ובעוד עשרות כלים, וכן ארבעה כלים שימושיים חדשים (מודגשים בהמשך בצהוב). 

להלן עיקרי החידושים:

MATLAB
פונקציות חדשות כמו repelem ו-milliseconds; הרצת אלגוריתמי mapreduce על כל cluster מחשבים התומך ב-parallel pools (דורש MATLAB Distributing Server); תמיכה בהתקני BeagleBone Black, Arduino Leonardo, מצלמות IP ואחרים; תוספת הערה בתחתית עמוד תיעוד ממנה ניתן ללמוד באיזו גרסה נוסף הפיצ'ר הנדון בעמוד.

MATLAB Compiler
מעתה הכלי כולל יכולת ליצור add-ins ל-Excel.

MATLAB Compiler SDK
הרחבה ל-MATLAB Compiler המאפשרת יצירת ספריות C/C++, Java ו-.NET (לא ניתן יותר לרכוש את ה-Builder-ים שהיו בעבר).

Statistics and Machine Learning Toolbox
אפליקציית Classification Learner לאימון מודלים וסיווג מידע באמצעות Supervised machine learning; יצירת קוד C מתוך הפונקציות pca ו-kmeans (דורש MATLAB Coder).

Communications System Toolbox
עדכונים רבים, וביניהם שיטות סנכרון חדשות למקלטים אלחוטיים וספריה הכוללת את כל הבלוקים הנתמכים ליצירת קוד HDL באמצעות HDL Coder.

Phased Array System Toolbox
מידול ושערוך פשוטים יותר של מספר מטרות מכ"מ; כיול מערך; דוגמה של מערכת מתקדמת לסיוע לנהג.

Antenna Toolbox
כלי חדש לתכנון, ניתוח והצגת אלמנטי אנטנה ומערכי אנטנות. הכלי מרחיב את יכולות הכלים SimRF ו-Phased Array System Toolbox. למידע נוסף - לחצו פה.

Image Processing Toolbox
אפליקציית Image Batch Processor המאפשרת ביצוע batch processing – הפעלת פעולת עיבוד תמונה על קבצים נבחרים מתוך תיקייה או אפילו על התיקייה כולה; אפשרות לייצר קוד C מתוך פונקציות דוגמת bwlabel, regionprops ו-watershed (דורש MATLAB Coder); יכולת להפעיל את אפליקציית ה-Color Thresholder על תמונות המוזרמות ב-live; אפשרות להאיץ חמש פונקציות נוספות באמצעות ה-GPU, וביניהן – regionprops (דורש Parallel Computing Toolbox).

Simulink
חיוויים גרפיים חדשים לשימוש בתוך המודל לצורך כוונון סימולציות, ביצוע בדיקות והצגת תצוגות (שעונים, מתגים ובלוקים נוספים הנמצאים בספריית Dashboard של ה-Simulink  הבסיסי); עדכון מהיר יותר של מודלים באמצעות קימפול JIT לבלוקי MATLAB Function ותרשימי Stateflow; יצירה מהירה של bus מתוך אוסף של סיגנלים; מירקור לולאות אלגבריות; אפשרות ליצור אפליקציות ל-Apple iOS המריצות מודלי Simulink.

Robotics System Toolbox
כלי חדש לתכנון ובדיקת אלגוריתמים לאפליקציות רובוטיות. למידע נוסף - לחצו פה.

Computer Vision System Toolbox
תמיכה ביצירת קודC  מתוך פונקציות המשמשות לכיול מצלמה ו-Optical Flow (דורש MATLAB Coder); פונקצית plotCamera המאפשרת לראות היכן היתה המצלמה ולאן הסתכלה); שיפור ביצועים של מגוון מרכיבים ובראשם של אלמנטי תצוגה; פונקציות יעילות לעיבוד Point Cloud; חיפוש תמונות ושליפה באמצעות Bag of visual words;

Vision HDL Toolbox
כלי חדש לתכנון מערכות עיבוד תמונה, וידאו וראיה ממוחשבת עבור FPGAs ו-ASICs. הכלי מכיל System Objects ב-MATLAB ובלוקים ב-Simulink. למידע נוסף - לחצו פה.

HDL Coder
שערוך נתיב קריטי ללא צורך בביצוע סינטזה.

MATLAB Coder
אפליקציית ייצור קוד משופרת, הכוללת editor משולב ותהליך עבודה פשוט יותר; קוד יעיל יותר עבור logical indexing; תוספת פונקציות רבות מהן ניתן ליצר קוד C מכלי עיבוד האות, עיבוד התמונה, התקשורת והסטטיסטיקה, וכמובן מ-MATLAB עצמו.

Parallel Computing Toolbox
תוספת של עשרות פונקציות לרשימת הפונקציות הניתנות להאצה באמצעות כרטיס המסך (GPU);

Simulink Test
כלי חדש ליצירת test harnesses, חיבור תרחישי בדיקות מורכבים וניהול בדיקות מבוססות-סימולציה. למידע נוסף - לחצו פה.

לעמוד הגרסה - לחצו פה.

.......................

יום חמישי, 29 בינואר 2015

חוויות מבוסטון

בשבוע שעבר השתתפתי בכנס השנתי של עובדי חברת MathWorks, ואני חייב לשתף אתכם בהתרגשות שאחזה בי כאשר שמעתי על תוכניות החברה לשנים הקרובות (לצערי בינתיים אני יכול לשתף אתכם רק בהתרגשות, ולא בתוכניות...).
פרט למושבים שבהם השתתפו גם מנהלי הפיתוח של הכלים השונים שדיברו על הכיוונים העתידיים, היו בכנס הרבה סדנאות מקצועיות והדגמות טכניות מגניבות.
אחת ההדגמות שמשכה את תשומת לבי היתה מימוש של גלאי אנשים מבוסס HOG על גבי פלטפורמת Zynq של חברת Xilinx. האלגוריתם מומש באמצעות תוכנת Simulink, והומר אוטומטית לקוד HDL באמצעות כלי של חברת MathWorks הנקרא HDL Coder, אשר מסוגל לייצר בצורה אוטומטית קוד VHDL ו-Verilog מתוך קוד MATLAB ומודלי Simulink. הנה תמונה מייצגת בה ניתן לראות את פלטפורמת ה-Zynq (בצד שמאל) ואת הגילוי המוצלח של האנשים שמבוצע על ידי האלגוריתם (לחצו על התמונה להגדלה):


עוד דוגמה נחמדה לשימוש בכלי MathWorks היתה דוגמה של המרה אוטומטית של קוד MATLAB לקוד C לצורך שילובו באפליקציית Android. הכלי אשר ממיר קוד MATLAB לקוד C++/C בצורה אוטומטית נקרא MATLAB Coder, והתייחסתי אליו בפוסט מלפני כחודשים וחצי (לחצו לקריאה). במרכז התמונה ניתן לראות טאבלט מבוסס Android, אשר מצלם חפיסת קלפים (מצד ימין), ומבצע גילוי פינות בתמונה המצולמת (התוצאה מוצגת על גבי מסך המחשב המחובר לטאבלט), והכל הודות לקוד MATLAB שהומר אוטומטית לקוד C והורד אליו.


מעבר לכך, היה לי את הכבוד לשוחח ארוכות עם ד"ר לורן שור, אשר הינה האדם הראשון שנשכר לעבודה ע"י מנכ"ל MathWorks (היום כבר יש בחברה מעל 3,000 עובדים). במהלך 28 שנות עבודתה עד כה בחברה, פיתחה ד"ר שור כלים שונים ופונקציות רבות (imread, imwrite, diff, filtfilt, interp1, interp2, imagesc וכו'), והיא גם מנהלת בלוג שזוכה לחשיפה "קצת יותר גדולה" מהבלוג שאתם קוראים כרגע :)
ד"ר שור צפויה להגיע לארץ בחודש מרץ, ולהיות Keynote Speaker בכנס IMVC השנתי הקרוב, בו תדבר על פתרון בעיות Big Data בתחום הראיה הממוחשבת באמצעות MATLAB. פרט לכך, במהלך ביקורה צפויה ד"ר שור להשתתף בשני סמינרים בנושא Big Data שתקיים חברת סיסטמטיקס, וכן להרצות במוסדות אקדמים מובילים. היו בטוחים שתקראו עוד על הביקור שלה בפוסט הזה.