מסגרת Savant
מערכות מעקב וזיהוי אינן פיתוחים חדשים או עדכניים, שכן מערכות אלו נמצאות בשימוש במשך שנים רבות והתפתחו יחד עם שיפורים בחומרה ובתוכנה כאחד.
לפני כמה שנים שיתפתי קצת בבלוג על OpenCV, ספריית ראייה ממוחשבת חוצת פלטפורמות חינמית (ניתן לבדוק את פרטי המאמר בקישור הבא ), שבאותה תקופה נראתה לי מעניינת ביותר מכיוון שניתן היה ליישם אותה על Raspberry Pi ובאותה תקופה הייתה לי המאניה של בדיקת מספר רב של פרויקטים ומערכות על ה-RPi שלי.
הסיבה להזכיר זאת , ולניסיון לא לסטות מהנושא של היום, היא שאנשים רבים חושבים שהטמעת מערכת כזו יכולה להיות יקרה ביותר או אפילו מסובכת מאוד. זה לא המקרה במידה מסוימת, מכיוון שאפשר להסתמך על פרויקטים בקוד פתוח, אך זה דורש ידע מסוים, ומעל הכל, סבלנות.
זו הסיבה שהיום נדבר על פרויקט מסוג זה , כזה שאני אישית מוצא טוב ועוצמתי מאוד. הפרויקט עליו נדבר הוא Savant, מסגרת שנכתבה בפייתון שהופכת את NVIDIA DeepStream לקל יותר לשימוש עבור מהנדסי למידת מכונה.
Savant היא מסגרת עבודה ברמה גבוהה שנבנתה על גבי DeepStream , אשר מסתירה את כל הפעולות הפנימיות של GStreamer מהמפתח ומספקת כלים מעשיים ליישום יישומי סטרימינג מבוססי בינה מלאכותית בתרחישים אמיתיים. היא משתמשת במודל PeopleNet הסטנדרטי של Nvidia כדי לזהות אנשים ופניהם , ובמיוחד בסביבות עם תקנות פרטיות, המסגרת מאפשרת מעקב אחר פנים וטשטוש.
בין התכונות הבולטות ב-Savant נמצאת, למשל, המהירות המהירה להפליא שלה, שכן היא מבוססת על Nvidia DeepStream ומציעה ביצועים על חומרת Nvidia התואמים למאיצי מרכזי נתונים, לוחות מקצועיים, מחשבים שולחניים ו-NVIDIA Jetson.
תכונה נוספת היא תמיכה באינטגרציה של OpenCV CUDA, המאפשרת לך להחיל מסנני OpenCV CUDA ולעבוד ביעילות עם רסטרי GpuMat מבלי להוריד עומס של מסגרות כבדות מזיכרון ה-RAM של המעבד.
בנוסף, הוא כולל ממשק API לסטרימינג המאפשר ל-Savant לתפקד כשרת הסקה באמצעות 0MQ ו-Apache AVRO. נתוני הסטרימינג מועברים לאחר מכן לשרת ומשם נצרכים באמצעות מתאמים.
מאפיינים בולטים נוספים של Savant כוללים:
- תמיכה ב-Python ו-ML.
- המסגרת זמינה כמכולות Docker עבור זמני ריצה של x86 ו-Nvidia Jetson.
- עובד על Edge ו-Core
- פעולות וקיבולת חביון נמוכים, savant תומך בפעולות מועילות עם חביון נמוך
- מתאמים לגישה למקורות מדיה שונים כגון RTSP או קבצי וידאו
- זה מאפשר לך לבנות צינורות עבור סביבות שבהן עיבוד מודע לסיבוב הוא חיוני.
לגבי יישום הפרויקט, כדאי לדעת שגם Savant וגם המתאמים שלו מועברים כתמונות Docker. אז כדי ליישם את הצינור, אתה לוקח את תמונת הבסיס, מוסיף מודלים של AI וקוד מותאם אישית עם תלות נוספת, ואז בונה את התמונה המתקבלת. ניתן ליישם חלק מהצינורות שאינם דורשים תלות נוספת על ידי הקצאת ספריות עם מודלים ופונקציות משתמש בתמונת ה-docker.
עבור החלק של תצורת סביבת Savant, נדרשות כבר כמה תלות וכלים מותקנים, שכן יש צורך ביותר שתלויות התלות של DeepStream.
התלות הן:
- סילון
- git-lfs
- תלתל
- סַוָר
- מנהלי התקנים של nvidia
- ערכת הכלים של Nvidia Container
מאחר שתהליך יישום הסביבה מורכב למדי, אני מזמין אתכם לעיין במדריך של Savant בקישור הבא אם אתם מעוניינים.