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 mauricesvay 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:
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 nhiều khuôn mặt
-Đây là ảnh gốc:
-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ả:
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!
Trả về tọa độ không hoạt động bác ơi
Trần Văn Đạt
8 năm trước
Phạm Duy Tâm Vinh
3 năm trước