Site Tools


mhst:ideas:mhst2013:hnlug01

Xén ảnh thông minh nhờ phát hiện khuôn mặt

Mức độ:

  • Tương đối khó.

Mô tả ý tưởng

Thực hiện một thuật toán phát hiện khuôn mặt (face detection) trên PHP, sau đó tích hợp vào một hệ quản trị nội dung (CMS) để giải quyết bài toán xén ảnh thông minh. Vấn đề

Phát hiện khuôn mặt là một bài toán cơ bản trong xử lí ảnh. Đã có khá nhiều thuật toán giải quyết vấn đề này, viết trên nhiều ngôn ngữ khác nhau. Thư viện OpenCV cũng có sẵn công cụ để phát hiện khuôn mặt.

Tuy nhiên, khi giải quyết bài toán thực tế là xén ảnh thông minh (không xén mất phần quan trọng) thì đa phần các CMS hiện nay đều thiếu chức năng này, hậu quả là: hoặc là phần mặt thường xuyên bị xén mất, hoặc là thực hiện co ảnh chứ không xén, dẫn đến việc ảnh bị biến dạng.

Để giải quyết triệt đề, cần hai bước:

  • Sử dụng thư viện OpenCV nếu có thể.
  • Nếu không có thư viện OpenCV, tự thực hiện một thuật toán có sẵn dùng PHP. Hiện có một số lớp thuần PHP có thể phát hiện khuôn mặt, nhưng tốc độ chậm và độ chính xác không cao. Mục tiêu là tăng tốc độ lên 5 - 10 lần để đạt hiệu năng “chấp nhận được”.

Kĩ năng

Cần thiết:

  Tư duy thuật toán
  Lập trình PHP

Nên có:

  Cơ bản về xử lí ảnh
  Cơ bản về Drupal

Kế hoạch

  • Tìm hiểu các thuật toán phát hiện khuôn mặt có sẵn, các script PHP thực hiện các thuật toán này (thường trong 100 - 200 dòng mã): 15%
  • Chọn một số ảnh để đo và theo dõi hiệu năng sản phẩm sẽ làm, so sánh với OpenCV và các script khác: 5%
  • Thực hiện một thuật toán trên PHP: hoặc chọn một thuật toán, hoặc chọn một script ở ngôn ngữ khác, hoặc cải tiến một script trên PHP có sẵn: 60%
  • Tích hợp vào Drupal, dựa trên mô đun image_focus, để cho phép xén ảnh thông minh, dựa vào các công cụ có sẵn: OpenCV, nếu không có thì dùng script ở bước trên, nếu vẫn không phát hiện ra khuôn mặt thì dùng entropy để xác định tiêu điểm (đã có sẵn, không cần phát triển): 20%

Nếu thời gian cho phép, có thể làm thêm một hoặc nhiều cải tiến nhỏ dưới đây:

  • Port image_focus sang Drupal 8 sẽ phát hành cuối năm nay.
  • Phát triển mô đun cho CMS khác (NukeViet, WordPress, Joomla! tùy chọn).

Sản phẩm

  • Một công cụ phát hiện khuôn mặt/xén ảnh thông minh trên PHP, độc lập, có thể sử dụng bởi bất kì CMS nào. Công bố trên GitHub.
  • Mô đun image_focus cải tiến trên Drupal. Công bố trên drupal.org ở dự án chính thức.

Tham khảo

Người hướng dẫn

  • Nguyễn Hải Nam, hainam[at]gmail[dot]com
mhst/ideas/mhst2013/hnlug01.txt · Thời điểm thay đổi: 2014/09/05 10:26 (external edit)