2009-07-17 7 views
27

Tôi muốn xoay ảnh tự động, ngay cả khi siêu dữ liệu EXIF ​​về hướng ảnh không khả dụng.Thuật toán để phát hiện hướng ảnh

Có bất kỳ thuật toán tốt nào để phát hiện hướng của ảnh không? Những hình ảnh là hình ảnh từ một máy ảnh kỹ thuật số. Thuật toán không cần phải làm việc một cách hoàn hảo, nhưng việc giảm lượng tương tác của con người cần thiết để xoay ảnh đúng cách sẽ là một lợi ích.

Tôi đã tìm thấy hai bài báo này trên topic:

Pointers để nghiên cứu khác và đặc biệt là triển khai được đánh giá cao.

+0

Nó không có vẻ là một thuật toán cho định hướng dọc/ngang tự động, nhưng nó là thuật toán gần nhất tôi có thể tìm thấy với một số triển khai hiện có: deskew. Kiểm tra ImageMagick deskew hoặc: http://www.google.com/codesearch/p?ct=rc#f0yt7jaEG7A/raster/deskewer.cpp –

+3

Bạn cũng có thể quan tâm đến việc mọi người đang xem xét mẹo xoay hình ảnh như một phong cách CAPTCHA. Một hình ảnh tròn nhỏ được trình bày với một đối tượng rõ ràng (đối với chúng tôi), nhưng không có chân trời rõ ràng. Tôi nhận ra điều này không giúp bạn, nhưng nó nhấn mạnh độ sâu của vấn đề. http://www.richgossweiler.com/projects/rotcaptcha/rotcaptcha.pdf – Omniwombat

+0

@ Franco Francul, tôi muốn làm một điều tương tự, vì vậy điều gì cuối cùng đã làm việc cho bạn? – Lazer

Trả lời

9

Nhiều ảnh từ máy ảnh kỹ thuật số của người tiêu dùng là của mọi người, có thể được sử dụng để định hướng. Phát hiện khuôn mặt là một khu vực nghiên cứu được nghiên cứu kỹ lưỡng. Phát hiện khuôn mặt cơ bản sẽ cung cấp cho bạn hình chữ nhật có cạnh dài hơn nên là chiều dọc. Hơn nữa, nếu bạn có thể phát hiện mắt/miệng, bạn sẽ có thể chọn hướng chính xác của hình chữ nhật.

Nhiều ảnh khác là ảnh chụp du lịch, nơi bầu trời lên và màu xanh, mặt đất xuống và màu xanh lá cây.

+3

Nhiều thuật toán phát hiện khuôn mặt sẽ không tìm thấy khuôn mặt bị lộn ngược nên bạn phải tìm khuôn mặt trong tất cả bốn hướng có thể. – Janusz

+2

Đây là điều tôi đã cân nhắc từ khi kiểm tra các giấy tờ tôi liên kết ở trên, vì ít nhất một trong số chúng sử dụng nhận dạng khuôn mặt như một phần của thuật toán. Vì phần lớn kho ảnh của tôi sẽ bao gồm các khuôn mặt tôi nghĩ rằng nó có thể hoạt động tốt (giả sử tôi có thể tìm thấy một chương trình nhận diện khuôn mặt có thể nhận ra định hướng, cho mỗi Janusz). –

-2

Nếu hình ảnh không vuông, bạn có thể giả định rằng hình ảnh mặc định rộng hơn chiều cao. Nếu đó là trường hợp xác định xem bạn cần xoay chỉ là vấn đề so sánh tỷ lệ khung hình và xoay để định hướng lại theo mặc định. Mặc dù bạn có thể kết thúc với hình ảnh lộn ngược.

+2

Điều này chỉ đúng đối với hình ảnh mặc định. Thông thường mọi người chụp ảnh khuôn mặt hoặc người sẽ quay máy ảnh ... – Janusz

+0

Đúng, nhưng khi mọi người bật máy ảnh để chụp những bức ảnh như vậy, trừ khi khuôn mặt bị nghiêng hoặc lộn ngược, bạn có thể sử dụng tỷ lệ khung hình ít nhất một gợi ý. – bdbaddog

3

Tôi chỉ có thể tìm thấy http://sourceforge.net/projects/rotator/.

Tôi đã sử dụng bộ ảnh chụp kỳ nghỉ bao gồm 70 ảnh với khoảng 18 ảnh yêu cầu xoay.

Sau khi xử lý với cài đặt mặc định, có 20 số đã được xoay hoặc không được xoay do lỗi.

Kết quả không quá tuyệt vời.