• Hallo Allerseits!

    Auf der Suche nach einer Möglichkeit, Gesichter zu erkennen, bin ich über das hier gestolpert: https://github.com/ShiqiYu/libfacedetection

    Und daraus ist vorerst mal eine kleine UDF entstanden.

    Funktioniert mit 32 und 64Bit.

    Ich hab selber noch nicht viel ausprobiert und kann daher auch nicht viel über die Parameter sagen - am besten mit großen und kleinen, vielen und wenigen usw... Gesichtern ausprobieren.

    Trotzdem viel Spaß!


    LandMarks:


    EDIT: Bugs behoben!

  • Hallo eukalyptus,

    schöne dich wieder hier zu sehen! :)

    Das Ergebnis ist durchaus brauchbar. Ich habe leider nicht so viele Bilder mit Gesichtern, werde aber mal danach googeln.

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • It worked on UEZ avatar also, 45 confidence.

    You are mistaken because the confidence value is printed behind "confidence" itself.

    Since your inserted image is too small, it was printed out of bounds and is therefore not visible.

    The value "45" is corresponding to the angle the face has.

    Try with a bigger image and see four yourself :)

  • Here's an example of Live WebCam Tracking using EscApi.dll (attached), place in same folder as Eukalyptos script.

    Webcam obviously required :p

    Could be used for controlling stuff with your head, I'm gonna play around with Irrlicht and control a 3D model of a head, with my head :D

  • That´s cool!

    I quick added a control window, to test the parameters

  • Very nice.

    I have a wierd behaviour here, if i try and add the confidence/angle stuff, only the confidence seem to work, angle is stuck at zero.

    Do you know what's going on ?

    It's this part of the code, where i added the drawstring line.

    Code
    For $i = 1 To $aFaces[0][0]
        _GDIPlus_GraphicsDrawRect($hGraphics, $aFaces[$i][0], $aFaces[$i][1], $aFaces[$i][2], $aFaces[$i][3], $hPen)
        _GDIPlus_GraphicsDrawString($hGraphics, "confidence: " & $aFaces[$i][4] & @CRLF & "angle: " & $aFaces[$i][5], $aFaces[$i][0] + 4, $aFaces[$i][1] + 4, "Arial", 16)
        If $bDoLM And UBound($aFaces, 2) > 6 Then
            For $j = 0 To 67
                _GDIPlus_GraphicsDrawEllipse($hGraphics, $aFaces[$i][6 + $j * 2], $aFaces[$i][7 + $j * 2], 4, 4, $hPen2)
    
            Next
        EndIf
    Next

    /edit, just just tried adding it to my script above, without all the green circles, and there it works, but it doesnt work in your script, confusing.

    /Edit2, Disregard, i found the reason, it only shows angle in mode 3 and 4, not 1 and 2. :) sorry for the inconvenience. :/

    2 Mal editiert, zuletzt von Werty (24. Juni 2019 um 23:45)

  • Ich habe das Example auf die Schnelle mal ein wenig umgebaut, dass es nach dem Anzeigen des Bildes nicht sofort beendet wird, sondern fragt, ob noch ein weiteres detektiert werden soll. Komischerweise schmiert Autoit (3.3.15.1) dann aber bei fast jedem zweiten Durchlauf ab... bei manchen Bilder sogar beim ersten!

    !>18:58:42 AutoIt3.exe ended.rc:-1073741819

    Hat jemand eine Idee, woran das liegen könnte?

  • Hi,

    das hängt an der Abfrage der Struct in der Funktion _FD_Detect()

    Füge

    $_tFD_Bmp=0

    $_tFD_BmpG=0

    vor dem Return $aFaces ein.