Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 30. März 2013 21:03
- czarnowski
- kennt CMS/ms
- Registriert: 18. Oktober 2012
- Beiträge: 457
Gesichtsdetektierung
Ich habe mich immer wieder mal gefragt wie Anbieter Facebook oder Stayfriends die Gesichter aus Uploadfotos erkennen können um daraus z.B. Profilbilder zu generieren.
Nun habe ich es für mich klären können
OpenCV und das PHP Ergänzungsmodul facedetect (http://www.xarg.org/project/php-facedetect/) machen es möglich.
Und es funktioniert hervorragend.
Erkennt tatsächlich sehr sicher die Bereiche in einem Image in denen Gesichter enthalten sind.
Die kann man dann sehr leicht extrahieren.
Stayfriends und ähnliche Anbieter erkennen damit z.B. Bescheissversuche, wenn jemand statt seines Gesichtes z.B. eine Mailadresse postet um Gebühren zu umgehen - die Technik ist also für einen solchen Anbieter eine Existenzsicherung.
Andere Anbieter nutzen es um statt eines nicht jugendfreien Ganzkörperbildes nur das Gesicht anzuzeigen.
Ob das nun auch geeignet ist den Osterhasen auf der Schneewiese erkennen zu können habe ich noch nicht probiert.
Offline
#2 30. März 2013 21:26
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Gesichtsdetektierung
statt eines nicht jugendfreien Ganzkörperbildes nur das Gesicht anzuzeigen.
Wenn das funktioniert
Ob das nun auch geeignet ist den Osterhasen auf der Schneewiese erkennen
sollte das ein Kinderspiel sein ...
Offline
#3 31. März 2013 19:28
- czarnowski
- kennt CMS/ms
- Registriert: 18. Oktober 2012
- Beiträge: 457
Re: Gesichtsdetektierung
Neben der klar aufwendigeren aber besseren Lösung wie beschrieben gibt es auch eine reine PHP Lösung.
Script gibt es bei felixkoch.de
Mein Testscript dazu:
[== php ==]
<?php
include("FaceDetector.php");
$image = "images1.jpg";
$detector = new FaceDetector();
$detector->scan($image);
$faces = $detector->getFaces();
if (count($faces) > 0)
{
$i=0;
foreach ($faces as $face)
{
$i++;
$img = imagecreatefromjpeg($image);
$im = @ImageCreate($face['width'], $face['height']);
$ok = ImageCopy($im, $img, 0, 0, $face['x'], $face['y'], $face['width'], $face['height']);
Imagejpeg($im,$i.'.jpg');
chmod($i.'.jpg',0777);
unset($img);
unset($im);
echo "$i.jpg erstellt <br />";
}
}
else
echo 'Kein Bild erstellt';
unset($detector);
?>
Diese Softwarelösung arbeitet am besten mit kontrastreichen Images.
Ergebnisse sehen z.B. so aus:
entstanden aus
Alle Rechte an den Bildern liegen bei http://www.czarnowski.com/
Offline
#4 01. April 2013 10:56
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Re: Gesichtsdetektierung
sehr cool. danke für das beispiel
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
#5 01. April 2013 19:11
- dc2
- kennt CMS/ms
- Registriert: 26. November 2010
- Beiträge: 140
- Webseite
Re: Gesichtsdetektierung
Ich arbeite im Studium auch gerade sehr viel mit OpenCV (zwar via Python, aber das ändert ja nichts an der Funktionalität^^) und bin immer wieder begeistert, was die Bibliothek alles bietet und vor allem wie performant das ganze ist!
Offline
#6 01. April 2013 19:28
- czarnowski
- kennt CMS/ms
- Registriert: 18. Oktober 2012
- Beiträge: 457
Re: Gesichtsdetektierung
OpenCV ist Klasse.
Nachteil - es ist auf den wenigsten Servern für PHP brauchbar installiert.
Vorteil - enorme Leistungsfähigkeit.
Es gibt aber auch andere Methoden diesbezüglich zu arbeiten - hier das Ergebnis eines anderes Test's:
Damit hat man kaum Probleme diverse Gesichter aus einem Bild zu extrahieren wenn sie denn einigermaßen Portraitähnlich aufgenommen wurden.
Diese Methode ist schnell hat aber den Nachteil das man mit sw Fotos nichts wird (irgendwo muss man ja einschränken wenn es um Speed geht - die Detektion hier hat gerade mal etwa 0,2 Sekunden gekostet und ist somit brauchbar.
Offline
#7 01. April 2013 21:20
- czarnowski
- kennt CMS/ms
- Registriert: 18. Oktober 2012
- Beiträge: 457
Re: Gesichtsdetektierung
Python,
Unter Python benötigt man nur 3..4 Zeilen und das war's.
Setze Python für ganz bestimmte Dinge ein da erheblich flexibler und schneller als PHP.
Hier mal ein Fremdbeispiel:
http://www.youtube.com/watch?feature=pl … ZCgAZv2oFw
oder hier
http://www.youtube.com/watch?v=HTk_UwAYzVk
Beitrag geändert von czarnowski (01. April 2013 21:23)
Offline
#8 04. April 2013 17:06
- czarnowski
- kennt CMS/ms
- Registriert: 18. Oktober 2012
- Beiträge: 457
Re: Gesichtsdetektierung
Es gibt auch mal lustige Ergebnisse
Natürlich dürfte klar sein das der Einsatz von Gesichtdetektierung in dieser Form nur für relativ wenige Anwendungen gut ist.
Tatsächlich stammen die Beispiele aus einer Recherche von mir - das eigentliche Ziel ist etwas komplexer und nicht in PHP realisiert - da geht es darum über die Detektierung folgende Identifizierung der Personen zu ermitteln ob Personen an den Orten überhaupt etwas zu suchen haben.
Sprich - alle Personen die für die betreffenden Räumlichkeiten und Zeitraum keine Zugangsgewährung haben lösen eine Meldung aus.
Das Bildmaterial wird von Videokameras geliefert die Schnelligkeit ist einem Livebetrieb entsprechend.
Der Bierbauch hier würde also eine Fehlmeldung auslösen.
Offline
Seiten: 1