Toidicode.com

Toidicode.com

BASIC TO ADVANCE

Nhận diện khuôn mặt với PHP

Download Source và demo

Bài này chúng ta sẽ cùng nhau làm một demo về nhận diện khuôn mặt, để đi khoe bạn bè và ứng dụng vào trong thực tế nhé!

1, Tổng Quan.

-Bộ source gốc được phát triển bởi  và nó gồm các chức năng:

  • Nhận diện khuôn mặt với tỉ lệ khoảng 60%.
  • Trả về khuôn mặt đã được nhận diện.
  • Trả về tọa độ của khuôn mặt trên bức ảnh gốc.

-Tuy nhiên, ứng dụng này cũng chỉ dùng để nghịch hoặc làm một số chức năng hệ thống mà ít phải dùng đến thôi. Vì nó sử dụng khá là nhiều tài nguyên của hệ thống.

2, Các ví dụ.

Nhận diện một khuôn mặt trong ảnh.

-Đây là bức ảnh gốc:

nhận diện khuôn mặt

Code:

<?php

include "FaceDetector.php";

$detector = new svay\FaceDetector('detection.dat');
$detector->faceDetect('ex-0.jpg');
//Trả về khuôn mặt nhận diện được. $detector->cropFaceToJpeg()
//Trả về tọa độ khuôn mặt dạng mảng. $detector->getFace()
//Trả về tọa độ khuôn mặt dạng json. $detector->toJson()
//Trả về hình ảnh đã được nhận diện.
$detector->toJpeg();

Và đây là kết quả:

Nhận diện khuôn mặt

Nhận diện nhiều khuôn mặt

-Đây là ảnh gốc:

Nhận diện khuôn mặt

-Code:

<?php
//Set load timeout lên 120 giây
ini_set('max_execution_time', 120);

include "MultiFaceDetector.php";

$detector = new svay\MultiFaceDetector('detection.dat');

$canvas = imagecreatefromjpeg('ex-1.jpg');
imagejpeg($canvas, 'file.jpg');

$canvas = imagecreatefromjpeg('file.jpg');
imagejpeg($canvas, 'tmpfile.jpg');

while ($detector->faceDetect('file.jpg', 'tmpfile.jpg') > 0) {
    $detector->toJpeg();
}

unlink('file.jpg');

$canvas = imagecreatefromjpeg('tmpfile.jpg');

unlink('tmpfile.jpg');

header('Content-type: image/jpeg');

imagejpeg($canvas);

-Và đây là kết quả:

Nhận diện nhiều khuôn mặt

3, Lời Kết.

-Mình phải nhắc lại lần nữa là bộ source này chỉ dùng để chơi được thôi, chứ thực sự nó tiêu tốn rất là nhiều tài nguyên. Bên cạnh đó bạn cũng có thể tham khảo nhận diện khuôn mặt bằng javascript như: Face Dection

Đăng ký nhận tin.

Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!

Vũ Thanh Tài

About author
The best way to learn is to share
Xem tất cả bài đăng

2 Comments

Trả về tọa độ không hoạt động bác ơi

Trần Văn Đạt

7 năm trước

Muốn nhận diện nguyên hình người luôn thì phải xử lý ntn ạ

Phạm Duy Tâm Vinh

3 năm trước

Bình luận

Captcha