Erkennung von Menschen auf Bildern

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Erkennung von Menschen auf Bildern

Beitrag von NicTheQuick »

Hallo Leute,

ich suche ein Paper, einen Algorithmus, eine Idee, eine fertige Library oder ähnliches, das mir hilft auf Bildern Menschen zu erkennen. Man stelle sich vor ein Raum wird von einer 360° Kamera von der Decke aus überwacht. Nun möchte ich feststellen können, ob sich in diesem Raum mindestens eine Person befindet. Mir reicht es nicht Bewegung zu erkennen, denn ein laufender Fernseher oder Hunde und Katzen dürfen nicht erkannt werden. Die Information soll entweder aus einem einzelnen Bild oder aus zwei schnell zeitlich aufeinander folgenden Bildern erschlossen werden können. Die Auswertung eines kompletten Videostreams ist also nicht möglich.

Hat da jemand Ideen zu? Bisher habe ich z.B. das hier gefunden: Shape matching and object recognition using shape contexts. Das klingt zumindest mal danach als ob man bspw. aus einer Silhouette eines Menschen den Menschen als solchen erkennen kann. Die Erstellung der Silhouette sollte eigentlich dadurch möglich sein, indem man die Differenz der zwei Bilder erstellt und die Unterschiede in eine Silhouette umrechnet.

Sonst habe ich noch nicht so viel gefunden, was tatsächlich nur einen Menschen erkennen kann und alles andere ignoriert.

Ich bin für Ideen und Vorschläge dankbar!
Bild
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Erkennung von Menschen auf Bildern

Beitrag von Danilo »

Normalerweise nimmt man ja Gesichtserkennung um Menschen (und Brüste) zu erkennen. Siehe select a face from an image.
Das ganze 'von oben' zu machen ist wohl noch schwieriger, da dann nicht mal ein Gesicht zur Verfügung steht, sondern vielleicht nur eine Mütze
oder einfach nur wilde Haare. Wobei Gesichtserkennung schon schwierig, und nicht fehlerfrei, ist. Bei der Erkennung einer Silhouette sehe ich da
ziemlich schwarz, da es dann auch erstmal auf den genauen Kamerawinkel ankommt. Ein anderer Kamerawinkel ergibt eine komplett andere Silhouette.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Erkennung von Menschen auf Bildern

Beitrag von NicTheQuick »

Wir haben uns überlegt doch keine Deckenkamera zu nutzen, sondern eher eine, die in der Ecke eines Zimmers befestigt ist. Das macht doch vieles einfacher. Dann habe ich mal zwei Bilder gemacht und ein bisschen ausprobiert, wie man mit Gimp die Form extrahieren könnte. Dazu haben wir uns überlegt, dass der überwachte Raum ja oft genug leer ist, sodass man eine Art Hintergrundbild erstellen kann. Zusammen mit diesem Bild ist es wesentlich einfacher den geänderten Bildausschnitt festzustellen.

So sieht es bisher aus. Klicken öffnet das Bild in voller Größe.

Hintergrund:
Bild

Bild mit Person:
Bild

Differenz der Bilder:
Bild

Graustufen und Threshold:
Bild

Schwarzer Rahmen:
Bild

Closing:
Bild

Form:
Bild
Bild
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Re: Erkennung von Menschen auf Bildern

Beitrag von DrShrek »

Eine Kinect geht nicht dafür?
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Erkennung von Menschen auf Bildern

Beitrag von NicTheQuick »

Nein, so teuer darf es nicht werden.
Bild
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Re: Erkennung von Menschen auf Bildern

Beitrag von Kukulkan »

Hi Nik,

ich denke die Bewegungserkennung ist erstmal der richtige Weg. Allerdings gibt es einige Faktoren die Du verwenden kannst, um das Ergebnis zu konkretisieren:

1) Ein Mensch ist eher hoch als breit. Erkannte Muster die dem nicht entsprechen, sind keine Menschen (ja, es könnte auch jemand liegen, aber ich gehe mal davon aus dass sich die Menschen auch bewegen. Und das tun Sie am meisten wenn sie stehen).
2) Nur belebte Dinge bewegen sich durch den Raum. Ein Fernseher wird seine Position im Raum nicht verändern. Daher könnte auch das ein Kriterium sein (zu betrachtender Zeitraum ist aber etwas länger).

Weitere (ungeprüfte) Idee: Im erkannten Bewegungsbereich die horizontalen und vertikalen Kannten ermitteln. Möglicherweise hat ein Mensch einen auffälligen Ratio zwischen den beiden? Oder die Längen? Oder die Tatsache, dass sich die vertikalen Kanten beim Mensch meist im unteren Bereich bewegen und die horizontalen durchaus mehr im oberen?

Das ganze sind nur Ideen. Eine wirklich gute Erkennung braucht wohl mehr Information (siehe Kinect mit Tiefensensor). Alternativ kann ich mir noch neuronale Netze vorstellen (Hopfield-Netz, Bidirektionaler Assoziativspeicher oder Autoassoziative Backpropagation).

Kukulkan
Benutzeravatar
dlldev
Beiträge: 23
Registriert: 28.07.2014 02:22

Re: Erkennung von Menschen auf Bildern

Beitrag von dlldev »

DrShrek hat geschrieben:Eine Kinect geht nicht dafür?
NicTheQuick hat geschrieben:Nein, so teuer darf es nicht werden.
Also eine einigermassen zuverlässige Erkennung günstiger als mit Hilfe von Kinect halte ich für sehr unwahrscheinlich. Die Erkennung von Menschen läuft zu 99% immer über die Gesichtserkennung. Dabei spielen in erster Linie die Faktoren Augen, Nase und Mund eine Rolle. Danach kommt meistens eine zweite Ebene mit "Foto Vergleich". Es ist grundsätzlich sehr schwer nur annähernd eine einigermassen zuverlässige Software für Menschen (Gesicht) Erkennung zu erstellen. Fertige Lösungen in diesem Bereich kosten schnell mal einen 5 Stelligen Bereich und können auch locker einen 6 Stelligen Bereich erreichen. Die zur Zeit jeweils beste Software wird wohl in Flughäfen, wichtigen Regierungsgebäuden usw. eingesetzt.

So oder so für mich ein spannendes Thema, bin gespannt ob es Wiedererwartens doch mit einfachen mitteln möglich ist bez. jemand eine gute Idee dazu hat. :)
Entwicklungsumgebung: Intel i7 Laptop mit 8GB RAM und Windows 8.1 drauf. PureBasic 5.24 LTS.
Benutzeravatar
takado
Beiträge: 3
Registriert: 25.09.2014 15:33

Re: Erkennung von Menschen auf Bildern

Beitrag von takado »

Vielleicht gibt es auf dieser Seite mehr Informationen / Algorithmen, bzw. weiterführende links:

http://www.face-rec.org/
PB 5.23LTS // Windows 7 // MacOsX 10.7.5 // Linux Mint 16
Antworten