זיהוי אנומליות בתמונות: היכן נשברת בקרת האיכות
ראייה ממוחשבת בייצור נשברת לא במודל, אלא בנתוני הקלט. המצלמה עומדת מעל המסוע, היכן שהתאורה משתנה, יש השתקפויות ממתכת ורעידות: זיהוי אנומליות בתמונות עובד היטב על סטנד ומתפרק על הקו.
הצעד הראשון של המערכת אינו הרשת, אלא ייצוב הצילום: חשיפה קבועה במקום אוטומטית, קיטוב או מפזר, וסימני ייחוס לכיול הפריים.
צוואר הבקבוק השני הוא פגם נדיר. פגם אמיתי מופיע אחת למאות או לאלפי פריימים תקינים, ולכן שיעור השגיאות לא מראה דבר: מודל שמסמן הכול כתקין הוא פורמלית מדויק וחסר תועלת.
בקרת איכות על הקו נבנית סביב שלמות עבור מחלקת הפגמים ומחיר ההחמצה: סדק שהוחמץ מגיע ללקוח, והתראת שווא עוצרת את הזרימה ומבטלת את ערכה של המערכת בעיני המשמרת.
השלישי — תיוג. חיפוש פגמים בפריימים נתקל בכך שמפעילים חלוקים בפרשנות: שריטה «בעין» אצל אחד היא פגם, אצל אחר היא תקין. בלי נוהל ובדיקה צולבת של תגיות, המודל לומד לשחזר רעש ולא סימן, ולכן חלק מהפריימים מתויגים מחדש ומחשבים את העקביות של המתייגים.
והעיקר: דמו אינו שווה לקו. מנת חומר גלם אחרת, החלפת ספק, שחיקת תאורה — התפלגות הפריימים נסחפת, וסף הביטחון שנבחר באב הטיפוס מפסיק להבדיל בין פגם לתקין. זיהוי אנומליות בתמונות נשען לא על אימון אחד, אלא על ניטור סחיפה ואימון נוסף על פריימים חדשים. בהמשך נסביר איך זה נסגר.
מדדי איכות: שלמות, דיוק, התראות שווא
לפני ההתחלה אנחנו קובעים שלושה מספרים שלפיהם נקבל את העבודה: שיעור הפגמים שהוחמצו, שיעור התראות השווא וסף ההפעלה שבו הם נמדדו. הסף הוא וסת: מורידים אותו, תופסים יותר פגמים, אבל גדל זרם הפריימים לבדיקה ידנית חוזרת. לכן במשימה נכתוב לא «דיוק המודל», אלא שלמות מטרה ושיעור מותר של התראות שווא.
דיוק כללי בזרימה כזו מטעה: כשאר הפגם נדיר, מודל שתמיד עונה «תקין» יציג מספר יפה ולא יתפוס דבר. מחשבים שלמות ודיוק בנפרד, ואת ההחלטות מפרקים לפי מטריצת שגיאות — רואים אילו סוגי פגמים עוברים להחמצה.
מדדי איכות המודל מחשבים לא כממוצע על כל המדגם, אלא בפילוח לפי משמרת, מנה, קו וסוג תאורה. שלמות ממוצעת יכולה להיראות סבירה, עד שמשמרת אחת או מנת חומר גלם נותנת קריסה, — אנחנו מכוונים לקבוצה הגרועה ביותר, ולא לתוצאה הכללית.
מכיילים את הסף לפי מחיר הטעות: היכן שהחמצת פגם יקרה יותר מבדיקה חוזרת, מורידים את הסף; היכן שהמפעיל עמוס מדי — מעלים. החלטות נרשמות ביומן יחד עם ערך הביטחון, כך שאפשר לחשב מחדש את הסף על נתונים מצטברים בלי לאמן את המודל מחדש.
כדי לבדוק שחזוריות, מריצים את התהליך על מערך פתוח MVTec AD, שנחשב לאמת מידה בזיהוי אנומליות בתמונות. אחרי ההפעלה מחשבים את אותם מדדים על זרם חי: ירידה בשלמות במנה מסוימת היא אות לסחיפת נתונים, וההתאמה מתבצעת לפני שהפגם מגיע ללקוח.
מצבי עבודה: בדיקה בזרם, בקרה מדגמית, ארכיון
מצבי העבודה של המערכת אינם מחליפים זה את זה — הם מכסים קצב קו שונה ואופי פגם שונה. בדיקת פריימים בזרם מחזיקה את כל החומר הנכנס ומתריעה על אנומליה מיד, וניתוח ארכיון מחפש את הסיבה על נתונים מצטברים.
בקרה מדגמית בידי מפעיל תופסת מקום ביניים: המודל מתייג את הזרם, האדם מאשר פריימים שנויים במחלוקת ומדייק את ספי הרגישות.
| מצב | מתי מתאים | מגבלות |
|---|---|---|
| בדיקת פריימים בזרם | זרם המוני, הפגם קריטי כבר בפלט הפעולה | רגיש לשינויי תאורה וזווית; ברגישות גבוהה גדל שיעור התראות השווא |
| בקרה מדגמית בידי מפעיל | פגם נדיר, תיוג לא מלא, תחילת הטמעה | המהירות מוגבלת בידי אדם; התוצאה תלויה בנוהל ובכישורי המשמרת |
| ניתוח ארכיון | חיפוש סיבות לפגמים, בדיקת השערות, ניתוח חומר מצטבר | אינו משפיע על התפוקה השוטפת; נדרשים אחסון ומטא-נתונים — זמן, קו, מנה |
בפועל משלבים בין המצבים: מתחילים בבקרה מדגמית כדי לאסוף תיוג ולהעריך את שיעור התראות השווא, אחר כך מפעילים בדיקה בזרם, ואת ניתוח הארכיון משאירים לחקירות ולבקרת האיכות של המודל עצמו. סדר כזה מפחית את הסיכון שהקו יעמוד בגלל התראות שווא כבר במשמרת הראשונה.
שלבי הטמעה: מביקורת תמונות ועד מסירה לתפעול
סדר העבודה בנוי כך שנקודות התורפה של הנתונים והמודל יתגלו לפני ההפעלה, ולא באתר חי. שלבי ההטמעה מתקדמים ברצף: כל שלב נסגר בארטיפקט שאפשר לבדוק לפני המעבר לשלב הבא.
- ביקורת צילום ונתונים. מפרקים את זרם הפריימים: תאורה, זוויות, רקע, שיעור הפגמים בארכיון. התוצאה — הבנה אילו תנאי צילום חסרים לזיהוי יציב.
- ביקורת תיוג. משווים תגיות בין מתייגים, מחפשים מחלקות שהוחמצו ושנויות במחלוקת. אי-התאמות בתיוג אנומליות הן הכלל ולא היוצא מן הכלל, וצריך למצוא אותן לפני האימון.
- תכנון התהליך. קובעים היכן המודל משתלב בתהליך, איך פריימים מגיעים לקלט ומה קורה בעת הפעלה. התרשים מאושר לפני תחילת האימון.
- אימון על דוגמאות וכיוון ספים. המודל לומד על הפריימים שלכם, ובנפרד נבחר סף הפעלה — ממנו תלוי האיזון בין החמצות להתראות שווא. הסף נבחר לפי מחיר הטעות בתהליך המסוים.
- קבלת המודל על מדגם מוחזק. פריימים שלא השתתפו באימון מועברים דרך המודל: מתעדים את שיעור האנומליות שהוחמצו והתראות השווא. התוצאה מעוגנת בפרוטוקול — זה בסיס להשוואה אחרי אימון נוסף.
- מסירה לתפעול. מוסרים קונפיגורציה, נוהל פעולה בירידת איכות והוראות לאימון נוסף, ומאמנים את הצוות. אחרי ההפעלה נשאר מעגל אימון נוסף על פריימים חדשים.
מה נשאר אצלכם: מודל, תרשימים, מדיניות גישה, נהלים
אנחנו מוסרים לא רק את משקלי המודל, אלא את כל המעגל שהופך אותו לישים אצלכם: בלעדיו, חודש אחרי ההפעלה, איש לא יוכל להבין למה המודל שותק מול סוג פגם חדש או למה האירועים נופלים בצרורות. להלן מה שנקבע בדיוק במסמך המסירה.
- מודל מכויל לזיהוי אנומליות: משקלים, סף הפעלה נבחר, פילוח לפי מחלקות פגמים ופרוטוקול בדיקה על פריימים מוחזקים שלא השתתפו באימון.
- תרשים עיבוד פריימים: המסלול מהלכידה ועד רישום האירוע — עם ציון מאגרי ביניים, התנהגות בעת ניתוק קשר וכללי הסרת כפילויות של הפעלות חוזרות.
- מדיניות גישה ותפקידים: מי רואה תיוג, מי רשאי לשנות את סף הרגישות, מי מייצא ארכיון אירועים; יומן פעולות לכל שינוי בקונפיגורציה.
- נוהל אימון מחדש: תדירות, דרישות לחומר מתויג חדש, סדר אישור גרסה ונוהל חזרה לגרסה קודמת אם האיכות ירדה.
- מערך פריימים מתויגים וכללי תיוג, כולל דוגמאות למקרים שנויים במחלוקת — אלה שבהם המודל טעה בתדירות הגבוהה ביותר.
- מערך בדיקות רגרסיה: פריימי ייחוס עם תוצאה צפויה, שמועברים בכל עדכון של המודל.
- תיעוד: הוראות פריסה, תיאור פרמטרי קונפיגורציה, תרשים אינטגרציה עם מערכת החשבונאות או הקו שלכם.
- פרוטוקול ניטור: אילו מדדים בודקים בתפעול ובאילו סטיות מחשיבים שהמודל הידרדר.
כל זה נפרס במערכת שלכם ונשאר אצלכם: ליווי אפשרי, אך אינו הכרחי — מהנדסי הצוות שלכם יוכלו לבצע אימון נוסף למודל ולהקים את השירות בעצמם.
מקרה בוחן: קו אריזה — החמצת פגמים והתראות שווא
איך זה היה
בקו אריזה תפסו פגמים באופן מדגמי: בקר הוציא אחת מכל עשרים חבילות ובדק אותה ידנית. תפר לא שלם, תווית זזה, מעיכה או גוף זר נמצאו באיחור — המנה כבר נסעה למחסן, — והתוצאה הייתה תלויה במשמרת, בתאורה ובעייפות המפעיל.
שיעור הפגמים שהוחמצו הגיע ל-7%, ועוד כ-4% מהמוצרים התקינים נפסלו בגלל החלטות שנויות במחלוקת: הפסדים ישירים וסכסוכים עם המקבל.
מה עשינו ומה יצא
מעל המסוע הוצבה מצלמה תעשייתית Basler עם תאורה וסנכרון לפי חיישן: הפריים מצולם ברגע מעבר החבילה, ולכן נבדקת כל יחידה ולא מדגם. את המודל אימנו רק על פריימי ייחוס של מוצרים תקינים — אין צורך לתייג את הפגמים עצמם, מספיק להראות את התקין ולהוציא את סף הרגישות להגדרות הקו. פריימים שנויים במחלוקת נשמרים בנפרד ומדייקים את האימון בלי לעצור את הייצור.
- פגמים שהוחמצו: 7% → 0,8%
- התראות שווא: 4% → 0,6%
- כיסוי בקרה: מדגם של כ-5% → 100% מהחבילות
- הסבה לסוג מידה חדש: משמרת שלמה → כחצי שעה לעשרה פריימי ייחוס
הפגמים הפסיקו להגיע למחסן, והקו לא עוצר לבדיקה מחודשת של מנות: פריימים שנויים במחלוקת המפעיל מפרק נקודתית. אותה גישה עוברת לאזורים אחרים — משתנים המצלמה, אזור הצילום ומערך הייחוס, והגיון הבקרה נשאר כשהיה.
מה עושים אם התיוג כבר קיים אך אינו מלא?
תיוג לא מלא הוא מצב רגיל בפרויקט, ולא סיבה להתחיל מהתחלה. חלק מהפריימים מתויגים, פגמים נדירים מיוצגים במספר דוגמאות בודדות, והתגיות במקרי גבול חלוקות בין המתייגים. מודל שאומן על חומר כזה או מחמיץ מחלקה נדירה, או נותן התראות שווא על אזורים תקינים דומים.
הצעד הראשון — למדוד את העקביות של התיוג. קטע פריימים מתויג מחדש, בנפרד מהמעבר הראשון, ומחשבים את שיעור ההתאמות בכל מחלקה. מחלקות עם אי-התאמה גבוהה כמעט תמיד מתוארות באופן דו-משמעי: את הקריטריונים שלהן כותבים מחדש לפני אימון נוסף של המודל, אחרת הוא מקבע את טעות המתייג כחוקיות.
פריימים שנויים במחלוקת נבחרים בנפרד: היכן שהמודל בטוח ואין תגיות — ולהפך, היכן שיש תגית והמודל שותק בעקביות. פריימים כאלה נותנים מקסימום מידע ליחידת תיוג נוסף, ולכן העבודה הידנית מופנית אליהם, ולא למדגם אקראי.
אימון נוסף של המודל על תגיות חלשות נבנה בזהירות: פריימים בלי תגית אינם נחשבים שליליים, אלא מוצאים מחישוב השגיאה, ודוגמאות בטוחות של מחלקה נדירה מקבלות משקל גדול יותר. את האיזון מיישרים באמצעות דגימת משנה של המחלקה הדומיננטית והגדלות של הנדירה — אחרת מעט דוגמאות הפגם טובעות בתקין.
בקרה מתבצעת לפי מחלקות, ולא לפי דיוק כללי: בנפרד בודקים שלמות עבור פגם נדיר ואת שיעור התראות השווא על תקין. כך רואים אם התיוג הנוסף עוזר, ובאילו אזורים עוד דרושים פריימים.
שאלות שאנחנו מסירים לפני ההתחלה: צילום, תיוג, קבלה
ספקות טכניים זול יותר להסיר לפני ההתחלה מאשר בצורת עבודה מחדש על תיוג ואימון מחדש. לכן לפני שורת הקוד הראשונה מקבעים דרישות לצילום, היקף המדגם וקריטריוני קבלה — הם קובעים מה יתקבל בסוף.
הסיכונים העיקריים אינם במודל, אלא בנתונים: פגם נדיר, החלפת מנת חומר גלם, תאורה אחרת במפעל. להלן מה שבדרך כלל דנים בו עם מהנדסי הלקוח לפני תחילת העבודה.
כמה תמונות דרושות לאימון?
מכמה מאות פריימים לכל סוג פגם — עם אותה אופטיקה, רקע ומרחק כמו בקו. מחלקות נדירות משלימים בסינתטיקה ובהגדלה מבוקרת; תיוג מתבצע ב-CVAT עם בדיקה כפולה של פריימים שנויים במחלוקת.
איך בודקים איכות אם הפגם נדיר?
מחשבים שלמות ודיוק בנפרד לפי כל סוג פגם על מדגם מוחזק, ולא ממוצע על כל הפריימים. עבור מחלקות נדירות מקבעים מראש סף הפעלה ושיעור מותר של החמצות — לפי המספרים האלה מקבלים את העבודה.
מה יקרה בשינוי תאורה או מנה?
לפני הקבלה מריצים את המודל על מנה מוחזקת ופריימים עם חשיפה אחרת: פער במדדים מראה את מרווח היציבות. אינטגרציה עם הקו מתוכננת לסינון לפי סף — ההחלטה מתקבלת בזרם, והרשומה נשמרת לניתוח הפעלות שנויות במחלוקת.
נדון במשימה: שלחו דוגמאות פריימים ותנאי צילום
כדי לדון במשימה באופן ענייני, כדאי לאסוף מראש את מה שכבר יש בעבודה: תמונות, תנאי צילום והבנה איזה שיעור החמצות אתם מחשיבים למותר.
- מדגם פריימים: כמה מאות תמונות מהקו — עם אנומליות שצריך לתפוס, ועם פריימים תקינים באותם תנאים.
- תנאי צילום: תאורה, זווית, מהירות הקו, מה משתנה בין משמרות ועונות.
- מחלקות פגמים: רשימה עם תיאור, מה קריטי, מה מותר והיכן עובר הגבול.
- תיוג ואחראי: מי בצד שלכם מאשר פגם וכמה זמן זה גובה.
- נקודת הטמעה: היכן מופיע האות — מפעיל או קו פסילה — ומה קורה אחרי הפעלה.
- מגבלות קשיחות: איזה ציוד כבר קיים, האם יש מצלמות, דרישות לאחסון תמונות ולהרשאות גישה.
- בקרה נוכחית: כמה פגמים נתפסים כעת, כמה ממשיכים הלאה, מה שיעור התראות השווא.
בתגובה תקבלו ניתוח של הפריימים שלכם, תרשים פתרון לפי תנאי הצילום, הערכת פרויקט עם הנחות מפורשות ותוכנית עבודה לפי שלבים — מהכנת נתונים ותיוג ועד בקרת יציבות המודל. אם הנתונים עדיין מועטים או שהמשימה נסגרת בפשטות רבה יותר, נאמר זאת ישירות.







