פיתוח מערכת לזיהוי תנוחות אדם (Pose Estimation)

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

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

מדוע זיהוי תנוחות אדם נשבר בפריימים אמיתיים

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

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

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

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

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

מפרקים כיצד זה נסגר: מאיסוף נתונים לאתר ספציפי ועד סינון מסלולים וכיול מצלמות.

מה נותנת מערכת מובנית לזיהוי תנוחות אדם

דיוק הערכת נקודות מפתח

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

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

עמידות בתנאי צילום אמיתיים

מצלמות באתר נותנות חשיפת יתר, חסימות ואנשים בפריים יותר מעשרה. אנו מוסיפים מעקב בין פריימים: אם נקודה אבדה לשנייה, מיקומה משוחזר לפי המסלול, ולא קופץ. זה מסיר עד שליש מהתראות שווא בסצנות עם זרימה צפופה.

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

מהירות עיבוד הזרימה

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

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

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

איך אנחנו בונים פרויקט: מביקורת נתונים ועד מסירת המודל

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

  1. ביקורת המשימה והנתונים. בודקים מה כבר קיים: הקלטות ממצלמות, לוגים, תצפיות ידניות. מגדירים את מחלקות התנוחות המטרה, השהיית הפלט המותרת ותנאי הצילום — זוויות, תאורה, חפיפות. בפלט — דרישות טכניות ומדד איכות שלפיו נקבל את העבודה.
  2. הכנת מערך נתונים. מסמנים נקודות מפתח של השלד, מנקים פריימים שבהם הסימון אינו חד-משמעי, מאזנים מחלקות. בנפרד אוספים מקרים מורכבים: דמויות חפופות חלקית, יותר מאדם אחד בפריים, לבוש לא סטנדרטי. את מערך הנתונים מקבעים בגרסה — כדי שהתוצאה תהיה ניתנת לשחזור.
  3. בחירה ואימון המודל. לוקחים כבסיס את הענף העדכני של ארכיטקטורה פתוחה להערכת תנוחה ומאמנים מחדש על נתוני הלקוח. משווים 2–3 וריאנטים לפי דיוק על מדגם בקרה ולפי מהירות אינפרנס על החומרה היעד.
  4. אימות המודל. בודקים לא את הדיוק הממוצע, אלא את ההתנהגות בתנוחות גבוליות ובתנאים רועשים. מחשבים את שיעור הזיהויים הנכונים לפי כל מחלקה בנפרד — מדד כולל לעתים קרובות מסתיר כישלון בפעולה נדירה אך חשובה.
  5. אינטגרציה במערכת הלקוח. מחברים את המודל לזרם וידאו או לארכיון, מגדירים עיבוד-בת ואחידות מסלולים, כדי שהמערכת לא תפעל על תנועה אקראית. מריצים על זרם אמיתי בשעות עבודה.
  6. מסירה ותמיכה. מוסרים משקלים, קונפיגורציות, סקריפטים להרצה ותיעוד לסימון. מלמדים את צוות הלקוח לאמן מחדש את המודל על נתונים חדשים בלעדינו.

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

במה שונה הערכת תנוחה ממצלמה אחת מתרשים רב-מצלמתי?

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

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

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

המחיר לכך הוא כיול: יש להביא את המצלמות למערכת קואורדינטות אחידה, לסנכרן אותן בזמן ולשמור על הכיול הזה בעת שינוי סידור הציוד.

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

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

מקרה בוחן: כיצד מערכת זיהוי תנוחות הסירה התראות שווא

הלקוח — רשת אתרי ייצור — הגיע עם מודל מוכן לזיהוי תנוחות שהציג דיוק מקובל על נתוני הדגמה, אך בבית המלאכה פעל באופן כאוטי. התראות שווא על חפיפות וצללים מהמסוע הגיעו ל-30-40% מכלל האירועים, המפעילים הפסיקו להגיב לאותות, והמערכת למעשה לא עבדה. מחיר הטעות — לא דוח שבור, אלא השבתת הבקרה על אזורים מסוכנים.

מה חשף הניתוח

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

מה שינינו

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

מדד לפני אחרי
התראות שווא 30-40% מהאירועים מתחת ל-5%
החמצת תנוחות מסוכנות 1 מתוך 12 1 מתוך 60
השהיית האות 2-3 שניות עד 0.5 שניות

תוצאת היישום

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

לבקרת איכות הסימון והאימון אנו נשענים על CVAT — היא מספקת יומן תיקונים שקוף, שממנו רואים מי ומה שינה במערך הנתונים.

תאימות, חזרה לאחור והרשאות: מה שיש לדון לפני ההתחלה

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

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

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

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

האם ניתן להטמיע את המערכת ללא עצירת התהליכים הנוכחיים?

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

בסיום אתם מקבלים:

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

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

לוחות זמנים משוערים לשלבי הטמעת מערכת לזיהוי תנוחת גוף

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

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

את הפיזור בלוחות הזמנים יוצר לא היקף הקוד, אלא איכות הנתונים המקוריים.

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

תארו את המשימה — נחזור עם הערכה ותוכנית לפי שלבים לתרחיש שלכם.