2013-05-22 28 views
5

Tôi có thắc mắc về cả Phash vs SIFT trong việc xác định hình ảnh tương tự

Trước hết, tôi đang sử dụng SIFT để xác định hình ảnh tương tự như trong dịch vụ thời gian thực. Giống như hình ảnh bằng điện thoại-camera, số lượng nhỏ xoay và hiệu ứng mờ có thể.

Và tôi đã tìm thấy Phash. Vì vậy, tôi thử nghiệm phash trên demo page của nó. Nhưng kết quả làm tôi thở dài.

Đây là kết quả của thử nghiệm trên:

Demo of Phash

Trong thử nghiệm này, hai hình ảnh được cố định trên trục x. Vì vậy, họ don ' t có vòng quay. Nhưng biểu tượng hình ảnh bên phải đã bị xóa và người được di chuyển sang bên trái. Trong mắt tôi, đây là 'Rất giống nhau'. Ngoài ra, SIFT nắm bắt điều này hoàn toàn.

Bây giờ, Đây là câu hỏi.

  1. Độ pH nhanh hơn SIFT?
  2. Độ chính xác của pHash có đáng tin cậy không?
  3. Đầu ra của SIFT quá lớn để sử dụng trong dịch vụ thời gian thực. Vì vậy, tôi phải sử dụng hàm băm để tạo ra kích thước nhỏ hơn như LSH(Locality-sensitive hashing). Có cách nào khác để tôi thử không?

Trả lời

8

Ok, tôi hiểu rồi.

pHash không thể nhận dạng vòng quay và chuyển động quan trọng giống như vậy.

Trong trường hợp không gian dữ liệu, pHash rất tốt để sử dụng. Nó có kích thước rất nhỏ: một hình ảnh thành một băm. SIFT, tuy nhiên, cần 128 byte để có được điểm đặc trưng. Và có nhiều điểm đặc trưng trong một hình ảnh.

Cuối cùng, SIFT có thể xác định hình ảnh tương tự tốt hơn so với pHash. Nhưng cần nhiều kích cỡ hơn.

Trong băng ghế tốc độ, tôi chưa thể thử nghiệm. Nhưng tôi nghĩ, pHash nhanh hơn SIFT vì SIFT phải hoạt động cho nhiều tính năng trên một hình ảnh.

Nếu bạn có câu trả lời khác cho câu hỏi trên, hãy cho tôi biết.