Top 10 der spannenden OpenCV-Projektideen und -themen für Studienanfänger und Erfahrene [2022]

Veröffentlicht: 2021-05-27

OpenCV oder Open Source Computer Vision Library ist eine leistungsstarke Bibliothek für maschinelles Lernen und KI, die zur Entwicklung und Lösung von Computer Vision-Problemen verwendet wird. Computer Vision umfasst das Trainieren eines Computers, um die visuelle Welt zu verstehen und zu verstehen, Elemente zu identifizieren und mithilfe von Deep-Learning-Modellen darauf zu reagieren. Unternehmen auf der ganzen Welt nutzen es heute in der Bildbearbeitung, -verarbeitung, Gesichtserkennung, Spracherkennung, Bewegungsverfolgung und Objekterkennung.

Unternehmen wie Google, Facebook, Microsoft und Intel setzen OpenCV bereits ein, um Computer-Vision-Anwendungen zu entwickeln. Mark Zuckerberg hatte 2015 in einem Interview bemerkt: „Wenn wir in der Lage wären, Computer zu bauen, die verstehen könnten, was auf einem Bild zu sehen ist, und es einer blinden Person sagen könnten, die dieses Bild sonst nicht sehen könnte, wäre das auch ziemlich erstaunlich.“

Heute hat sich die OpenCV-Technologie als Durchbruch für blinde oder sehbehinderte Personen erwiesen. Es ermöglicht ihnen, sich mit einer unbekannten Umgebung vertraut zu machen und Objekte und Personen in der Nähe zu erkennen, um diese Sehbehinderung zu überwinden. Computer Vision ist auch die Technologie hinter selbstfahrenden Autos und intelligenten Bewegungssensorgeräten.

Wenn Sie eine Karriere im Bereich Computer Vision anstreben, finden Sie hier zehn interessante offene Lebenslaufprojekte, mit denen Sie praktische Erfahrungen sammeln können. Also lasst uns anfangen!

Inhaltsverzeichnis

Top 10 der offenen CV-Projekte zum Auschecken im Jahr 2022

Projekt 1: Lungenentzündung mit EdgeML erkennen

Dieses OpenCV-Projekt zielt darauf ab, eine KI-basierte Pneumonie-Erkennungssoftware auf Ihrem Raspberry Pi bereitzustellen. Es verwendet das Edge Machine Learning-System, um einen Raspberry Pi mit einer Kamera mithilfe von Balenas Multi-Containern in einen Pneumonie-Klassifikator umzuwandeln.

Balena wird ein zweiter Container hinzugefügt, der die Edge Impulse WebAssembly-Inferenz-Engine innerhalb eines Node.js-Servers ausführt. Beide Container kommunizieren über WebSockets, damit die BalenaCam jede Sekunde des Feeds von Ihrer Kamera auf der Webseite live streamen kann.

Zu den im Projekt verwendeten Software und Tools gehören OpenCV, Edge Impulse Studio, TensorFlow Lite, GitHub Desktop, balenaCloud, Microsoft VS Code und Docker. Webbrowser, die Balena Cam unterstützen, sind Chrome, Safari, Firefox und Edge.

Hier können Sie sich das Projekt ansehen .

Projekt 2: OpenCV-betriebener Bewegungssensor für Samsungs SmartThings

Zunächst benötigen Sie einen Raspberry Pi 3 mit einer funktionierenden PiCam, auf der OpenCV zuvor installiert ist. Dieses Projekt zielt darauf ab, einen benutzerdefinierten Bewegungssensor für SmartThings zu entwickeln, der auf Computervision basiert und Gesichter erkennt. Die gesammelten Daten werden über LAN – UPnP – an SmartThings gesendet.

Dazu erstellen wir einen Device Handler für SmartThings und programmieren ihn. Wir verwenden dann ein Python-Skript, um auf Kamerabilder zuzugreifen und Gesichter zu erkennen und den Raspberry Pi zu koppeln, damit er von SmartThings entdeckt wird. Sie müssen auch imutils installieren, die Sie von GitHub beziehen können.

Sehen Sie sich hier den Quellcode des Projekts an .

Projekt 3: Computergestützte Fotografie

Dieses Projekt soll Panoramen erstellen, Rauschen und unerwünschte Objekte aus Bildern entfernen und die Sichtbarkeit von Fotos verbessern, die bei schwachem Licht angeklickt werden. Die Computerfotografie umfasst Algorithmen zur Rauschunterdrückung von Fotos , um Gaußsches weißes Rauschen und Verzerrungen zu entfernen , die Fotowiederherstellung , um Linien, Objekte und unerwünschte Elemente zu filtern, und die Nummernschilderkennung , um das Nummernschild durch Erkennen von Zeichen zu erkennen.

Projekt 4: Erstellen Sie mit OpenCV ein Wasserzeichen auf Bildern

Dieses Projekt ist ein Tutorial darüber, wie Sie ein Wasserzeichen – Signatur, Logo oder Wasserstempel, um Missbrauch oder Verletzung von Urheberrechten zu verhindern – auf einem Bild erstellen können, indem Sie die Open Computer Vision Library verwenden. Es ermöglicht Ihnen, ein Originalbild mit einem Wasserzeichen zu versehen, indem Sie sowohl Bild als auch Text verwenden, indem Sie die OpenCV-Bibliothek von Python verwenden. Um ein Wasserzeichen mit einem Bild zu erstellen, müssen Sie die Transparenzfunktion und die Bildhinzufügungsfunktion definieren. Bei Text importieren wir die PIL-Funktion und passen dann die Position des Textwasserzeichens an.

Hier können Sie das Projekt nachschlagen .

Projekt 5: Waldo finden

Dies ist ein Objekterkennungsprojekt, um Waldo in einem Bild zu erkennen, indem eine KI trainiert wird, Waldo aus einer Reihe verschiedener Bilder zu erkennen. Wir wenden dann einen statischen Ansatz an, um Waldo durch Pixelabgleich zu finden. Dies ist wichtig, denn wenn Sie ein Vorlagenbild verwenden, gilt der statische Abgleich nur für dieses bestimmte Bild und nicht für ein neues Bild von Waldo.

Wir berechnen den Korrelationskoeffizienten, um einen Vorlagenabgleich durchzuführen, der die Waldo-Vorlage als Eingabe nimmt und sie Pixel für Pixel über das Bild schiebt, in dem Waldo erkannt werden soll. Der Korrelationskoeffizient zeigt, ob die Pixelpositionen „gut“ oder „schlecht“ übereinstimmen.

Hier können Sie sich das Projekt ansehen .

Projekt 6: Selbstfahrende Autos

Dieses Projekt verwendet Bildmanipulation und -verarbeitung mit OpenCV zur Erstellung selbstfahrender Autos. Um einem Auto das selbstständige Fahren beizubringen, müssen wir es mit Straßenspuren vertraut machen, sie finden und uns darauf konzentrieren, darauf zu bleiben. Dies bedeutet, dass ein Modell für maschinelles Lernen Fachkenntnisse bei der Identifizierung des interessierenden Bereichs durch geschickte Kantenerkennung und die Umwandlung von Hough-Linien erfordert, um die Pixel von einem Bild zu trennen, das Straßenspuren darstellt. Dies erfordert auch das Maskieren und Berechnen von durchschnittlichen Neigungspunkten.

Hier ist der Quellcode zum Identifizieren der Region of Interest:

importiere numpy als np

aus matplotlib importiere pyplot als plt

image = cv2.imread('../../images/input.jpg')

In [8]:

image.shape

Aus[8]:

(830, 1245, 3)

In [11]:

x, y = bild.form[:2]

In [3]:

Höhe, Breite = image.shape[:2]

# So erhalten Sie die Startpixelkoordinaten (oben links im Zuschneiderechteck)

start_row, start_col = int(Höhe * .25), int(Breite * .25)

# Um die Endpixelkoordinaten zu erhalten (unten rechts)

end_row, end_col = int(Höhe * .75), int(Breite * .75)

# Verwendung der Indizierung, um den gewünschten Bildausschnitt auszuschneiden

cropped = Bild[start_row:end_row , start_col:end_col]

In [6]:

Zeile, Spalte = 1, 2

fig, axs = plt.subplots(row, col, figsize=(15, 10))

fig.tight_layout()

axs[0].imshow(cv2.cvtColor(Bild, cv2.COLOR_BGR2RGB))

axs[0].set_title('Originalbild')

cv2.imwrite('original_image.png', Bild)

axs[1].imshow(cv2.cvtColor(beschnitten, cv2.COLOR_BGR2RGB))

axs[1].set_title('Zugeschnittenes Bild')

cv2.imwrite('cropped_image.png', beschnitten)

plt.show()

Sehen Sie sich das Projekt hier an .

Projekt 7: Gesichts- und Spracherkennung für Sehbehinderte

Dieses Projekt zielt darauf ab, sehbehinderten Personen zu helfen, indem Gesichtseingaben mit einem Raspberry Pi 2 Model B und einem Raspberry Pi Camera Module in Sprachausgabe umgewandelt werden. Es ist eines der beliebtesten Open-CV-Projekte im Jahr 2022. Die Software ermöglicht es blinden oder sehbehinderten Menschen, Zeichen, Texte oder Personen in einer unbekannten Umgebung zu erkennen und sich ohne Hilfe zurechtzufinden. Zu den weiteren Anforderungen für das Projekt gehören OpenCV und Python zur Durchführung der Gesichtserkennung, und die Spracherkennung wird mit GNU Octave erreicht.

Sie können den Code hier überprüfen .

Projekt 8: Intelligentes Anwesenheitsmodell

Ein intelligentes Anwesenheitssystem ist ein praktisches Tool für Online-Bildungsmodelle wie ZoomApp. Es hilft Ihnen, den Überblick über die Schüler zu behalten, die an Ihrer Zoom-Klasse teilnehmen, indem Sie ihre Anwesenheit in Echtzeit überwachen. Alles, was getan werden muss, ist, vom Schüler einen Screenshot mit dem Datum zu erhalten und ihn in eine Excel-Datei hochzuladen.

Ein Tutorial für dieses Open-CV-Projekt finden Sie hier .

Projekt 9: Face-Swapping mit OpenCV

Face-Swapping-Anwendungen und -Filter sind seit einiger Zeit in den sozialen Medien im Trend. Von der Erscheinung von Jung und Alt bis hin zur Umwandlung von Standbildern in bewegte Bilder – Instagram, Snapchat und FaceApp sind alle auf den Zug aufgesprungen. Face-Swapping-Apps lassen sich mit OpenCV und Python relativ einfach erstellen.

Die Schritte beinhalten das Platzieren eines Quellbildes auf einem Zielbild mit Hilfe eines Dreiecks, das unter Verwendung des dlib-Wahrzeichendetektors gebildet wird.

Sehen Sie sich das Projekt hier an .

Projekt 10: Konturen erkennen und Formen zählen

Das Projekt erkennt die Umrisse oder Konturen einer bestimmten Form, um die Art der Form eines Objekts zu bestimmen. Wenn ein Bild beispielsweise Flaschenverschlüsse enthält, können Sie die runde Form verwenden, um zu bestimmen, wie viele Flaschenverschlüsse im Bild vorhanden sind.

Hier ist der Quellcode dafür:

importiere numpy als np

aus matplotlib importiere pyplot als plt

In 2]:

image = cv2.imread('../../images/bottlecaps.jpg')

grau = cv2.cvtColor(Bild, cv2.COLOR_BGR2GRAY)

plt.imshow(cv2.cvtColor(grau, cv2.COLOR_BGR2RGB))

plt.title('Flaschenverschlüsse'); plt.show()

cv2.imwrite('bottlecaps_input.jpg', grau)

Aus[2]:

Wahr

In [3]:

blur = cv2.medianBlur(grau, 5)

Kreise = cv2.HoughCircles(blur, cv2.HOUGH_GRADIENT, 1.5, 10)

für i in circles[0,:]:

# Zeichne den äußeren Kreis

cv2.circle(image,(i[0], i[1]), i[2], (255, 0, 0), 2)

# Zeichne den Mittelpunkt des Kreises

cv2.circle(image, (i[0], i[1]), 2, (0, 255, 0), 5)

plt.imshow(cv2.cvtColor(Bild, cv2.COLOR_BGR2RGB))

plt.title('Erkannte Kreise'); plt.show()

cv2.imwrite('erkannte_Kreise.jpg', Bild)

Aus[3]:

Wahr

Im [ ]:

Andererseits beinhaltet das Zählen von Formen das Anwenden von Algorithmen zum Segmentieren von Bildern und Clustern von Daten, um interessante Punkte in einem Bild zu bestimmen. Wir verwenden binäre und ungefähre Konturen mit Hilfe der Funktion approxPolyDP.

Sie können sich dieses offene CV-Projekt hier ansehen .

Abschließende Gedanken

Mit Computer Vision können Sie eine breite Palette nützlicher Anwendungen wie Bildtransformation, Übersetzung, Konturerkennung, Bildsegmentierung, Objekterkennung, Objektverfolgung und Bewegungsanalyse entwickeln.

Es wird auch in Augmented Reality (AR) verwendet, indem es lernt, Gesichter zu lokalisieren, Formen zu erkennen usw., um Objekte und Gesichter zu erkennen. Sie können auch interessante Open CV-Projekte erstellen, indem Sie einfaches maschinelles Lernen wie einen Kreditkartenleser, einen handschriftlichen Zifferndetektor oder einen Gesichtsleser verwenden.

Dies erfordert jedoch ein Verständnis von Data Science und maschinellem Lernen, insbesondere von Deep Learning. Wenn Sie eine Karriere als ML Engineer, Data Scientist oder Deep Learning Engineer anstreben, empfehlen wir den Erwerb eines Advanced Certificate Program in Machine Learning & Deep Learning .

Dieser Kurs hilft Ihnen dabei, sich mit den Konzepten von Statistik, Regression, Clustering-Algorithmen, neuronalen Netzen, Objekterkennung und Gestenerkennung vertraut zu machen. Nicht nur das, es wird Ihnen dabei helfen, neben anderen Programmiertools und -bibliotheken Fachwissen in OpenCV, Python, TensorFlow, MySQL, Keras, Excel und NumPy aufzubauen und sich von der Masse abzuheben.

Was ist OpenCV?

OpenCV ist eine Open-Source-Bibliothek für Bildverarbeitung und Computer Vision, die von Intel gepflegt und jetzt von einer Community von Entwicklern unterstützt wird. Als Open Source nutzt OpenCV die Leistungsfähigkeit der gesamten Entwicklergemeinschaft. Die Bibliothek ist so konzipiert, dass sie für Echtzeitanwendungen wie Objekterkennung, Videoüberwachung, Mensch-Maschine-Interaktion, Medizin und andere verwandte Bereiche optimiert werden kann.

Was ist Objekterkennung?

Objekterkennung ist der Prozess des Auffindens von Objekten in Bildern oder Videos, die nicht trivial leicht zu erkennen sind. Dieses Problem wird üblicherweise als ein Fall von Klassifikation formuliert. Bei einem gegebenen Bild möchten wir seine verschiedenen Objekte (wie Autos, Fußgänger und Gebäude) zusammen mit ihren Begrenzungsrahmen klassifizieren, die uns wiederum ihren Standort geben würden. Objektdetektion ist die Aufgabe, Objekte in einem Bild zu identifizieren. Das Ziel der Objekterkennung ist es, die Position von Objekten in einem Bild zu finden (dh sie zu lokalisieren) und ihre Größe und Form abzuschätzen. Die Objekterkennung ist ein herausforderndes Problem, da Objekte häufig teilweise verdeckt sind und manchmal eine enorme Vielfalt an Erscheinungen sowie nicht starre Verformungen im Bild aufweisen.

Was ist der genaueste Objekterkennungsalgorithmus?

Es gibt viele Objekterkennungsalgorithmen und keiner von ihnen ist 100 % genau. Objekterkennungsalgorithmen sind mit dem Problem der Datenüberanpassung konfrontiert. Tatsächlich behaupten einige Computer-Vision-Forscher, dass die Objekterkennungsalgorithmen nicht 100 % genau sein können. Es gibt jedoch viele Algorithmen, die genaue Ergebnisse für einen bestimmten Datensatz liefern. Wenn Sie sich eine GPU-Maschine leisten können, empfehlen wir Ihnen, die OpenCV-basierte SVM-Implementierung für die Objekterkennung zu verwenden. Es ist sehr genau, schnell und funktioniert mit sehr großen Datensätzen. Allerdings geht es nicht sehr gut mit Okklusion um. Wenn Sie einen Gesichtsdetektor bauen möchten, entscheiden Sie sich für die Implementierung des Haar-Kaskaden-Klassifikators in OpenCV.