איתור אובייקטים ופילוח מופעים ב-Python עם Intelligence Data Intelligence PlatoBlockchain של Detectron2. חיפוש אנכי. איי.

זיהוי אובייקטים ופילוח מופעים ב-Python עם Detectron2

מבוא

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

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

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

Detectron2 של Meta AI – פילוח מופעים וזיהוי אובייקטים

Detectron2 היא חבילת הקוד הפתוח לזיהוי אובייקטים, פילוח ואומדן תנוחות של Meta AI (לשעבר FAIR – Facebook AI Research) - הכל באחד. בהינתן תמונת קלט, הוא יכול להחזיר את התוויות, התיבות התוחמות, ציוני הביטחון, המסכות והשלדים של אובייקטים. זה מיוצג היטב בדף המאגר:

היא נועדה לשמש כספרייה שעל גביה תוכלו לבנות פרויקטי מחקר. הוא מציע א גן חיות מודל כאשר רוב ההטמעות מסתמכות על מסכי R-CNN ו-R-CNN באופן כללי, לצד RetinaNet. יש להם גם די הגון תיעוד. בואו נריץ תסריט מסקנות לדוגמה!

ראשית, בואו נתקין את התלות:

$ pip install pyyaml==5.1
$ pip install 'git+https://github.com/facebookresearch/detectron2.git'

לאחר מכן, נייבא את כלי העזר של Detectron2 - כאן נכנס לתמונה הידע של מסגרת-דומיין. אתה יכול לבנות גלאי באמצעות DefaultPredictor class, על ידי העברת אובייקט תצורה שמגדיר אותו. ה Visualizer מציע תמיכה להמחשת תוצאות. MetadataCatalog ו DatasetCatalog שייכים ל-Data API של Detectron2 ומציעים מידע על מערכי נתונים מובנים כמו גם על המטא נתונים שלהם.

בואו לייבא את המחלקות והפונקציות שבהן נשתמש:

import torch, detectron2
from detectron2.utils.logger import setup_logger
setup_logger()

from detectron2 import model_zoo
from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
from detectron2.utils.visualizer import Visualizer
from detectron2.data import MetadataCatalog, DatasetCatalog

שימוש requests, נוריד תמונה ונשמור אותה בכונן המקומי שלנו:

import matplotlib.pyplot as plt
import requests
response = requests.get('http://images.cocodataset.org/val2017/000000439715.jpg')
open("input.jpg", "wb").write(response.content)
    
im = cv2.imread("./input.jpg")
fig, ax = plt.subplots(figsize=(18, 8))
ax.imshow(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))

זו התוצאה:

איתור אובייקטים ופילוח מופעים ב-Python עם Intelligence Data Intelligence PlatoBlockchain של Detectron2. חיפוש אנכי. איי.

כעת, אנו טוענים את התצורה, מבצעים שינויים במידת הצורך (הדגמים פועלים על GPU כברירת מחדל, כך שאם אין לך GPU, תרצה להגדיר את המכשיר ל-'cpu' בתצורה):

cfg = get_cfg()

cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"))
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")


כאן, אנו מציינים מאיזה דגם נרצה להפעיל model_zoo. ייבאנו מודל פילוח מופעים, המבוסס על ארכיטקטורת Mask R-CNN, ועם עמוד שדרה של ResNet50. בהתאם למה שתרצה להשיג (זיהוי נקודת מפתח, פילוח מופע, פילוח פנופטי או זיהוי אובייקטים), תטען במודל המתאים.

לבסוף, אנחנו יכולים לבנות מנבא עם זה cfg ולהפעיל את זה על הכניסות! ה Visualizer class משמשת לצייר תחזיות על התמונה (במקרה זה, מופעים מפולחים, מחלקות ותיבות תוחמות:

predictor = DefaultPredictor(cfg)
outputs = predictor(im)

v = Visualizer(im[:, :, ::-1], MetadataCatalog.get(cfg.DATASETS.TRAIN[0]), scale=1.2)
out = v.draw_instance_predictions(outputs["instances"].to("cpu"))
fig, ax = plt.subplots(figsize=(18, 8))
ax.imshow(out.get_image()[:, :, ::-1])

לבסוף, זה מביא ל:

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

איתור אובייקטים ופילוח מופעים ב-Python עם Intelligence Data Intelligence PlatoBlockchain של Detectron2. חיפוש אנכי. איי.

הולך רחוק יותר - למידה עמוקה מעשית לראייה ממוחשבת

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

איתור אובייקטים ופילוח מופעים ב-Python עם Intelligence Data Intelligence PlatoBlockchain של Detectron2. חיפוש אנכי. איי.

עוד קורס ראיית מחשב?

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

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

מה יש בפנים?

  • העקרונות הראשונים של חזון וכיצד ניתן ללמד מחשבים "לראות"
  • משימות ויישומים שונים של ראייה ממוחשבת
  • כלי המקצוע שיקלו עליכם את העבודה
  • מציאת, יצירה וניצול של מערכי נתונים עבור ראייה ממוחשבת
  • התיאוריה והיישום של רשתות עצביות קונבולוציונליות
  • טיפול בהסטת תחום, התרחשות משותפת והטיות אחרות במערך נתונים
  • העבר למידה וניצול זמן ההדרכה ומשאבי החישוב של אחרים לטובתך
  • בנייה והדרכה של סיווג סרטן שד חדיש
  • כיצד ליישם מנה בריאה של ספקנות על רעיונות מיינסטרים ולהבין את ההשלכות של טכניקות מאומצות באופן נרחב
  • הדמיית "מרחב הקונספט" של ConvNet באמצעות t-SNE ו-PCA
  • תיאורי מקרה של האופן שבו חברות משתמשות בטכניקות ראייה ממוחשבת כדי להשיג תוצאות טובות יותר
  • הערכת מודל נכונה, הדמיית מרחב סמוי וזיהוי תשומת הלב של המודל
  • ביצוע מחקר תחום, עיבוד מערכי נתונים משלך והקמת בדיקות מודל
  • ארכיטקטורות חדשניות, התקדמות רעיונות, מה מייחד אותם וכיצד ליישם אותם
  • KerasCV – ספריית WIP ליצירת צינורות ודגמים מתקדמים
  • כיצד לנתח ולקרוא מאמרים וליישם אותם בעצמך
  • בחירת דגמים בהתאם ליישום שלך
  • יצירת צינור למידת מכונה מקצה לקצה
  • נוף ואינטואיציה על זיהוי אובייקטים עם R-CNN מהירים יותר, RetinaNets, SSDs ו-YOLO
  • מופע ופילוח סמנטי
  • זיהוי אובייקטים בזמן אמת עם YOLOv5
  • הכשרת גלאי אובייקטים של YOLOv5
  • עבודה עם רובוטריקים באמצעות KerasNLP (ספריית WIP בעלת חוזק בתעשייה)
  • שילוב רובוטריקים עם ConvNets ליצירת כיתובים של תמונות
  • חלום עמוק

סיכום

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

במדריך הקצר הזה, בדקנו כיצד Detectron2 הופך את פילוח המופעים וזיהוי האובייקטים לקלים ונגישים דרך ה-API שלהם, באמצעות Mask R-CNN.

בול זמן:

עוד מ Stackabuse