Zum Inhalt springen
LG4ML
  • Start
  • Idee
  • Projekte
  • Über uns
  • Wiki
  • Blog

Buzzwords

7
  • Transfer Learning
  • Machine Learning
  • Künstliche Intelligenz
  • Deep Learning
  • Data Science Workflow
  • Computer Vision
  • Big Data

Computer Vision

3
  • YOLOv4
  • Object Tracking
  • Frame Differencing

Grundlagen

14
  • Unüberwachtes Lernen
  • Überwachtes Lernen
  • Trainingsphase
  • Sampling
  • Regression
  • Preprocessing
  • Metrics
  • Klassifikation
  • Hyperparameter Tuning
  • Hyperparameter
  • Distanzmetriken
  • Data Science Workflow
  • Data Exploration
  • Cross Validation

Lernverfahren

8
  • Support Vector Machine
  • Principal Component Analysis
  • Perceptron
  • Logistische Regression
  • Lineare Regression
  • K-Nearest-Neighbours
  • K-Means
  • Decision Tree

Neuronale Netze

5
  • Verlustfunktion
  • Transfer Learning
  • Künstliches Neuron
  • Early Stopping
  • Aktivierungsfunktion

Preprocessing

8
  • Value Imputation
  • Scaling
  • Principal Component Analysis
  • Outlier Detection Basic
  • Outlier Detection Advanced
  • Frequenz Filter
  • Feature Engineering
  • Data Augmentation

Python Pakete

1
  • Data-Science Pakete
View Categories
  • Startseite
  • Docs
  • Computer Vision
  • Frame Differencing

Frame Differencing

3 min read

Frame Differencing ist eine Methode der klassischen Bildverarbeitung und macht Unterschiede zwischen zwei aufeinander folgenden Bildern (meist aus einem Video) sichtbar. Daher können bei einer statischen Kamera Perspektive sich bewegende Objekte erkannt werden. Generell ist aber die Genauigkeit der erkannten Objekte wesentlich geringer, als etwa bei CNN basierten Methoden der Objekterkennung, wie etwa YOLOv4. Frame Differencing bietet jedoch den Vorteil, das es weitaus weniger Rechenleistung erfordert. Die Funktionsweise basiert auf simplen mathematischen Operationen, die mehr oder weniger unabhängig von der Leistungsfähigkeit eines Prozessors in Echtzeit mit mehr als 30 FPS durchgeführt werden können. Dieser Artikel erklärt nachfolgend die Funktionsweise von Frame Differencing und stellt die Umsetzung in Python mit der Open-CV Bibliothek vor.

Funktionsweise #

Ausgangslage für Frame Differencing sind zwei Bilder, die in einem zweitlichen Zusammenhang zueinander stehen (Methodik kann auch ohne Abfolge der Bilder angewandt werden, wird aber keine sinnvollen Ergebnisse liefern) und direkt aufeinander folgen – wie etwa zwei Frames in einem Video. Im ersten Schritt werden die Bildern in die Grauwertdarstellung umgewandelt, da farbliche Informationen grundsätzlich weniger relevant sind. Die Abbildungen zeigen Aufnahmen einer Straße mit vorbeifahrenden Fahrzeugen – oben die Originalbilder und unten die transformierten Bilder.

Transformation der originalen Bilder (oben) in die Grauwert Darstellung (unten)
Berechnung der Differenz zwischen den Bildern (links) und Anwendung eines binären Filters (rechts)

Zwischen den beiden Grauwertbildern kann im zweiten Schritt für jeden Pixel die absolute Differenz berechnet werden. Diese liegt zwischen 0 und 255 und gibt entsprechend wieder ein Grauwertbild zurück. Um nur relevante Unterschiede zu betrachten, wird zusätzlich ein binärer Filter angewandt. Alle Pixel die überhalb einer festgelegten Schwelle liegen (heißt der Pixelwert ist höher als die Schwelle), wird der Wert auf 255 gesetzt und der Pixel wird entsprechend weiß. Liegt der Wert unter der Schwelle, wird der Pixel auf 0 gesetzt und damit schwarz. Die Auswirkung des Filters ist in der obigen Abbildung gut zu erkennen.

Im dritten und letzten Schritt kann durch Dilatation die Kontur der Differenzen deutlicher gemacht werden, um anschließend etwa Flächen und damit Objekte erkennen zu können. Für jeden weißen Pixel werden angrenzende Pixel ebenfalls auf weiß gesetzt und Kanten werden vergrößert. Diese Methodik wird in der Bildverarbeitung meist genutzt, um dünne Kanten “sichtbarer” zu machen.

Anwendung von Dilatation

Realisierung in Python #

Der vollständige Code zu den Abbildungen kann unter folgendem Link eingesehen werden:
https://github.com/LG4ML/Wiki_Figures/blob/master/Computer%20Vision/FrameDifferencing.py

# Import the Open-CV library
import cv2

# Load two consecutive frames (replace the path)
frame1 = cv2.imread('path_to_image_1')
frame2 = cv2.imread('path_to_image_2')

# Convert frames to grayscale
frame1_gray = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)
frame2_gray = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY)

# Calculate difference and apply threshold
abs_difference = cv2.absdiff(frame1_gray, frame2_gray)
_, binary = cv2.threshold(abs_difference, 50, 255, cv2.THRESH_BINARY)

# Apply dilation
dilated = cv2.dilate(binary, kernel=np.ones((3, 3), dtype=np.int8), iterations=15)

Weiterführende Links:
– Moving Object Detection using Frame Differencing: https://debuggercafe.com/moving-object-detection-using-frame-differencing-with-opencv/
– Frame differencing with post-processing techniques: https://ieeexplore.ieee.org/abstract/document/5759867
– Object Tracking – Frame Differencing: https://www.youtube.com/watch?v=kMa2hIXs2yY

Updated on 24/06/2022

What are your Feelings

  • Happy
  • Normal
  • Sad
Share This Article :
  • Facebook
  • X
  • LinkedIn
  • Pinterest

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Inhalt
  • Funktionsweise
  • Realisierung in Python

LG4ML

Promoting Machine Learning from Lüneburg!

© 2025 LG4ML

Navigation

  • Kontakt
  • Datenschutzerklärung
  • Impressum

Folge uns auf

Github Slack Instagram

Made with 🍺 in Lüneburg.

Cookie-Hinweis
Wir verwenden Cookies auf unserer Website, um Ihnen die bestmögliche Erfahrung zu bieten, indem wir uns an Ihre Präferenzen und wiederholten Besuche erinnern. Wenn Sie auf "Alle akzeptieren" klicken, erklären Sie sich mit der Verwendung aller Cookies einverstanden. Sie können jedoch die Einstellungen besuchen, um eine kontrollierte Zustimmung zu erteilen.
EinstellungenAlle akzeptieren
Zustimmung verwalten

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
immer aktiv
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDauerBeschreibung
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
SPEICHERN & AKZEPTIEREN