יום ראשון, 18 ביוני 2017

Apps ב-MATLAB

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

מה זה Apps?

אחד הנושאים שחברת MathWorks מקדישה לו הכי הרבה משאבים בשנים האחרונות, הוא שיפור ההנגשה של האלגוריתמים ותהליכי העבודה השונים אלינו המשתמשים, על ידי יצירה של עוד ועוד ממשקים גרפיים להפעלה של פונקציות ולביצוע של משימות מעולם המיחשוב הטכני, ממשקים שנקראים Apps. הממשקים האלה מכילים את כל השלבים הנחוצים להשלמת המשימה – מהטעינה של המידע לתוך ה-App, דרך ביצוע החישובים, ועד קבלת התוצאות. מהיישומונים האלה גם בדרך כלל אפשר לקבל בצורה אוטומטית קוד MATLAB שקול לצורך ביצוע החישובים על נתוני קלט אחרים, אותו קוד שהייתם צריכים להקליד כדי לקבל את אותה תוצאה שקיבלתם כאשר עבדתם בצורה אינטראקטיבית ונוחה עם העכבר.

נשמע מגניב, איפה אפשר למצוא Apps?

מזה כחמש שנים ניתן למצוא לא מעט Apps בלשונית APPS בחלק העליון של סביבת MATLAB, כמובן תלוי בכלים שיש לכם ברישיון שברשותכם. חשוב כבר כעת להבהיר - Apps אלה לא אפליקציות שאתם קונים באיזה App store, אבל  – אתם בהחלט יכולים להוריד Apps בחינם מה-File Exchange של MathWorks (קישור למטה), ואתם אפילו יכולים להכין Apps בעצמכם ולהפיץ אותם בתוך הארגון (קישור למטה).

זה הרגע שלכם – אם כתבתם פעם App, אשמח אם תגיבו למטה ותשוויצו בו J

קישורים שימושיים:
הורדת Apps בחינם מה-File Exchange של MathWorks לחצו פה.
מדריך להכנת Apps משלכם – לחצו פה.
סרטון קצר המדגים שימוש ב-Apps (Curve Fitting App), הורדת Apps, הכנת Apps חדשים והפצה שלהם – לחצו פה.
סרטון קצר המתמקד בשלב אריזת ה-App לצורך הפצה ובשלב ההתקנה של App לחצו פה.
מידע בנושא אריזת Apps לחצו פה.

יום ראשון, 28 במאי 2017

חידושים בעיבוד תמונה, ראיה ממוחשבת ו-Deep Learning בסביבת MATLAB בגרסת R2017a

בשבוע שעבר נערך במלון הילטון כנס MATLAB & Simulink המרכזי לשנת 2017, בהשתתפות כ-600 משתמשים בכלי MathWorks. אחד מהמסלולים המבוקשים בכנס היה מסלול ה"חידושים בעיבוד תמונה, ראיה ממוחשבת ו-Deep Learning", אותו ריכז כותב שורות אלה. במסלול נסקרו החידושים המשמעותיים בתחומים הנ"ל בגרסאות האחרונות של הכלים הרלוונטים. מכיוון שאתם ודאי עוקבים באדיקות אחרי העדכונים המפורסמים בבלוג זה, לא אלאה אתכם בחידושים שנכנסו בגרסאות שאינן הגרסה העדכנית (מי שפספס - יכול ללחוץ פה כדי לעבור לפוסט הקודם בנושא).

אז הנה החידושים המשמעותיים בגרסת R2017a בתחומים עיבוד תמונה וראיה ממוחשבת:

          Registration Estimator App – יישומון אינטראקטיבי המקל על חקר של מגוון טכניקות רגיסטרציה (לחצו למידע נוסף)
          3D Volume Viewer App – יישומון המשמש לצפיה במידע נפחי תלת-ממדי (לחצו למידע נוסף). לידיעת העוסקים בעיבוד מידע נפחי - בגרסה החדשה נוספה תמיכה בעיבוד מידע שכזה במעל 20 פונקציות, וביניהן פונקציות הסגמנטציה בגישת Active Contours ו-Fast Marching
          ביצוע סגמנטציה בשיטת lazysnapping לרקע/אובייקט (מכונה גם graph cut). לתיעוד הפקודה - לחצו פה
         Image Segmenter App היישומון לביצוע סגמנטציה בשיטות שונות כולל את שיטת הסגמנטציה החדשה המוזכרת למעלה, והחל מהגרסה העדכנית – גם תומך בתמונות RGB
          פונקציה לאימון גלאי אובייקטים בגישת Aggregated Channel Features (ACF)
          הערכת ביצועי גלאי אובייקטים בעזרת מטריקות כמו Average Precision או Log-Average Miss Rate

והנה החידושים המרכזיים בגרסת R2017a בתחום ה-Deep Learning:

          אפשרות לבצע אימון בעזרת מספר GPUs על PCs ו-Clusters. השליטה על סביבת הביצוע מתאפשרת באמצעות הפרמטר ExecutionEnvironment (לחצו פה). 
          אפשרות לייבא מודלים מ-Caffe (בגרסה הבאה מתוכננת גם תמיכה ב-TensorFlow). לחצו כדי ללמוד על הפונקציות importCaffeLayers ו-importCaffeNetwork
          יכולת לבצע לוקאליזציה באמצעות Fast R-CNN ו-Faster R-CNN – כהמשך להכנסת התמיכה ב-R-CNN בגרסה הקודמת של הכלים. בהקשר הזה מומלץ להתעדכן גם בחידוש האחרון שהוזכר בחלק הקודם של הפוסט
          טעינת רשתות VGG-16 ו- VGG-19באמצעות שורת קוד אחת - כהמשך להכנסת היכולת לבצע זאת ל-Alexnet בגרסה הקודמת של הכלים
          יכולת להגדיר שכבת רגרסיה בעזרת הפקודה regressionLayer – לצורך אימון CNN לביצוע משימות רגרסיה
          אפשרות לבצע אימון בעזרת CPU בלבד למי שלא מעוניין או לא יכול להשתמש ב-GPU לצורך האימון (ניהול הזיכרון שופר, אך כמובן שעדיין עדיף להיעזר ב-GPU)
          deepDreamImage – לצורך הדגשת הפיצ'רים שהרשת למדה, שימושי לצורך הבנה ואבחון של התנהגות הרשת. לחצו לתיעוד
          Training Accuracy Plot – עוזר להבין האם האימון מתקדם בתהליך הנכון, או שכדאי לעצור ולשנות Setup. לחצו לתיעוד
          App לביצוע Labeling לסרטוני ווידאו (לחצו לתיעוד), כהמשך ל-App המסייע לביצוע Labeling לתמונות הקיים כבר שלוש שנים 

למידע נוסף – מומלץ לבדוק בתיעוד ו/או ב-Release Notes. וכמובן שב-MathWorks עובדים כעת על פיצ'רים מאוד משמעותיים שאמורים להיכנס בגרסת הכלים הבאה, R2017b, שצפויה להשתחרר בסביבות חודש ספטמבר, אז מומלץ לעקוב!


הצגת ה-Registration Estimator App במהלך הכנס

יום ראשון, 30 באפריל 2017

Model-Based Design עבור מערכות Software Defined Radio

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

מערכת SDR טיפוסית מסוגלת לשדר ולקלוט (Transceiver) סיגנלים בתדרים שונים ולממש סטנדרטים שונים של תקשורת, כגון LTE ,FM ,Wi-Fi ,Bluetooth ועוד. 

מערכת מסוג זה 
כוללת מספר רכיבי חומרה:

·         RF Front-End לשידור וקליטה
·         FPGA
·         DSP


שילוב מתודולוגיית Model-Based Design בתהליך פיתוח של מערכת SDR מאפשר למהנדס הקצה Rapid Prototyping ושליטה מלאה במערכת, החל משלב המידול בסביבות MATLAB&Simulink ועד להרצה בזמן אמת על גבי כרטיס אבלואציה, כפי שיוסבר בפוסט זה.


שלב המידול
פיתוח המערכת ב-MATLAB&Simulink, הכולל מודל Analog (Radio) ומודל Digital (Baseband Processing), סימולציה ווריפיקציה בסביבת Simulink. לחומר לחצו כאן.

בדיקת האלגוריתם עם Streaming RF data
שידור/קליטה של I/Q data בזמן אמת באמצעות רדיו המחובר ל Host-PC כאשר החלק האלגורימתי רץ בסביבת MATLAB&Simulink.

ריצת Stand Alone של המערכת
ייצור אוטומטי של קוד HDL/C עבור כרטיס ZYNQ (הכולל FPGA+ARM), טעינה וריצה על גבי הכרטיס,
תוך אפשרות של שליטה על ה-
ARM ב-External Mode דרך Simulink.
כדי לתמוך במערכות מורכבות אלו היה צורך בשיתוף פעולה בין MathWorks לספקי חומרה דוגמת Avnet, Xilinx, AnalogDevices, ונכון להיום יש תמיכה במגוון רחב של חומרות כגון:
-          USRP
-          RTL-SDR
-          PicoZed-SDR
-          ZedBoard/ZC706
למידע נוסף אודות חומרות הנתמכות על ידי כלי MathWorks, לחצו כאן.

להרחבה - 
 ניתן למצוא מידע כאןניתן גם לפנות לאלי בשאלות באמצעות המייל:  elilevi@systematics.co.il

יום ראשון, 26 במרץ 2017

כיצד להיות מובילאיי הבאה?

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

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

לכלי החדש יכולות רבות, במגוון תחומים:

          Vision System Design and Simulation
איתור קווי הפרדה, רכבים והולכי רגל, וחישוב המרחק מהם, בצורה מהירה. לחצו למידע נוסף

           Ground Truth Labeling and Testing
App שימושי להגדרת תגיות לאובייקטים ועקיבה אחריהם באמצעות מגוון אלגוריתמים (תמונה של ממשק המשתמש מובאת בהמשך). יכולת זו מקלה על תהליך הגדרת התגיות והשוואת הפלט של אלגוריתם נבחן אל מול מידע ה-Ground Truth. לחצו למידע נוסף

           Tracking and Sensor Fusion
מצלמת ה-Vision נותנת מידע לגבי סוג האובייקט (הולך רגל, מכונית וכו'), הרדאר נותן מידע מדויק לגבי מיקום, וכו'. בעזרת הכלי ניתן לשלב בין מקורות המידע השונים, וכן לבצע עקיבה באמצעות מגוון מסנני Kalman. לחצו למידע נוסף

          Scenario Generation 
יצירת תרחישי תנועה וסימולציה של פלטי חיישני המצלמה והרדאר. שימושי לצורך בחינת מקרי קצה של אלגוריתמי Sensor Fusion וכן לצורך סימולציות Open and Closed Loop. לחצו למידע נוסף

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

המעוניינים להתנסות בכלי – מוזמנים לפנות במייל royf@systematics.co.il או להתקשר 03-7660111 ולבקש לשוחח עם נציג מכירות של מוצרי MathWorks.

ה-Ground Truth Labler App. ניתן ללחוץ על התמונה להגדלה.
מקור: אתר
MathWorks

יום רביעי, 22 בפברואר 2017

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

הרבה יכולות חדשות נכנסו לכלי עיבוד התמונה והראיה הממוחשבת בסביבת MATLAB בגרסאות האחרונות – פונקציות חדשות, פיצ'רים חדשים בפונקציות ותיקות, וממשקים גרפיים אינטראקטיביים (Apps) נוחים לשימוש.
דוגמאות ל-Apps (ניתן ללחוץ על התמונות לעיל לצורך הגדלה):
מימין - Image Batch Processor App המאפשר לבצע פעולה מסוימת על מספר תמונות מאותה תיקייה, ניתן לעבוד על מספר תמונות בו זמנית (לחצו לפוסט בנושא).
משמאל -
Color Thresholder App המאפשר לבצע עיבוד תמונה המבוסס על צבע (לחצו לפוסט בנושא). 

בין היכולות החדשות:

·         Point Cloud Processing – עבודה עם ענני נקודות – הסרת רעש, איחוד ענני נקודות, רגיסטרציה של שני ענני נקודות באמצעות אלגוריתם ICP ועוד...למידע נוסף – לחצו פה.
·         Structure from Motion – שערוך תנוחת מצלמה ומבנה תלת-ממדי של סצינה מתוך אוסף תמונות דו-ממדיות. שימושי עבור יישומי סריקות תלת-ממד ומציאות רבודה (Augmented Reality). למידע נוסף – לחצו פה.
·         OCR – פונקציות לזיהוי תווים אופטי וממשק גרפי (App) לאימון מודל OCR לצורך זיהוי סט ספציפי של תווים. למידע נוסף – לחצו פה.
·         המרה אוטומטית מקוד MATLAB לקוד C – תוספת של עשרות אלגוריתמי עיבוד תמונה וראיה ממוחשבת לרשימת האלגוריתמים הניתנים להמרה. לרשימה המלאה, לפי כלי MathWorks השונים – לחצו פה (חפשו את המילים Image או Computer Vision).
·         טכניקות סגמנטציה חדשות ב-Image Segmenter App כמו  Flood-Fill, Adaptive Thresholding  וסגמנטציה מורפולוגית, בנוסף לשיטתActive Contours . לדוגמה לשימוש ב-App לחצו פה.
·         האצת ביצועים באמצעות GPU – תוספת של עשרות פונקציות מעולם עיבוד התמונה לרשימת הפונקציות הניתנות להאצה בעזרת כרטיס המסך. למידע כללי על האצת ביצועי MATLAB באמצעות GPU לחצו פה. לרשימה העדכנית של הפונקציות הנתמכות מעולם עיבוד התמונה – לחצו פה.
·         ACF – גילוי אנשים בוידאו ותמונות בעזרתAggregate Channel Features . למידע נוסף – לחצו פה.
·         SLIC – סגמנטצית סופרפיקסל יעילה של תמונות צבע ותמונת Grayscale באמצעות אלגוריתםSimple Linear Iterative Clustering . למידע נוסף – לחצו פה.
·         Deep Learning – למידה עמוקה לצורך מציאת אובייקטים שמעניינים אותנו בתמונות, סיווג תמונות לקטגוריות שונות ושאר שימושים. למידע נוסף – לחצו פה.

חידושים אלה ואחרים הופכים את העבודה עם MATLAB לקלה יותר ויעילה יותר!  

לרשימה המלאה של כל החידושים בכלי עיבוד התמונה והראיה הממוחשבת, לחצו על שם הכלי הרלוונטי:
Image Acquisition Toolbox

בגרסאות שמתוכננות לשנת 2017 צפויים חידושיים משמעותיים נוספים, מומלץ להמשיך ולהתעדכן!