Mục đích phát hiện và kết hợp tính năng hình ảnh


8

Tôi là một người mới trong việc xử lý hình ảnh và thị giác máy tính, vì vậy câu hỏi này có thể là ngu ngốc đối với bạn.

Tôi vừa học được một số thuật toán phát hiện và mô tả tính năng, chẳng hạn như Harris, Hessian, SIFT, SURF , họ xử lý hình ảnh để tìm ra các điểm chính đó và sau đó tính toán một mô tả cho từng mô tả, mô tả sẽ được sử dụng để khớp với tính năng.

Tôi đã thử Sift và SURF, thấy rằng chúng không mạnh mẽ như tôi nghĩ, vì đối với 2 hình ảnh (một hình ảnh được xoay và gắn một chút), chúng không khớp với các tính năng, trong số gần 100 điểm tính năng, chỉ có 10 điểm trận đấu là tốt.

Vì vậy, tôi tự hỏi

  1. Chúng ta có thể sử dụng những thuật toán phát hiện tính năng này để làm gì? Có thuật toán nào mạnh mẽ hơn để phát hiện và kết hợp tính năng không? Hoặc SIFT và SURF đã tốt, tôi chỉ cần tinh chỉnh nó để sử dụng thêm?

  2. Một vấn đề khác là tôi nghĩ các thuật toán này không hoàn toàn dành cho ứng dụng thời gian thực (không xem xét triển khai đa lõi), nhưng có một số sản phẩm thương mại (như Kinect) hoạt động và phản hồi trong thời gian thực! Tôi giả sử những sản phẩm này cũng phát hiện và kết hợp tính năng từ những gì họ thấy , họ có sử dụng các thuật toán như SIFT không? Làm thế nào họ có thể phát hiện các tính năng rất tốt?

  3. Với kiến ​​thức hạn chế của mình, tôi biết kết hợp tính năng có thể được sử dụng để tìm ra các đối tượng giống nhau trong hai hình ảnh, hoặc ước tính đồng nhất, nhưng có mục đích nào khác để khớp tính năng không?


Chào! Tôi nghĩ rằng bạn có thể có vấn đề với việc triển khai SIFT / SURF của bạn. Cả hai nên hoạt động tốt hơn nhiều so với 10/100. Bạn có phiền khi tải lên hình ảnh của mình và / hoặc kết quả phù hợp không?
Penelope

@penelope, thực sự tôi đang sử dụng SIFT / SURF bởi OpenCV. Ngoài ra tôi nghĩ rằng họ nên hoạt động tốt hơn 10/100, có lẽ tôi nên xử lý phần khớp tính năng cẩn thận hơn, ;-).

@penelope, btw, họ có làm việc tốt với hình ảnh có liên quan không?

Ồ vâng. Hãy xem bài báo này . Đó là so sánh một số máy dò và cho thấy sự mạnh mẽ của chúng chống lại sự thay đổi affine, mờ, ánh sáng và nhiều thứ khác. Trên thực tế không có Sift ở đó, nhưng SIFT không nên xấu so với bất kỳ trong số này. Tôi sẽ loại cho bạn một phản hồi chi tiết hơn vào ngày hôm nay, không có thời gian ngay thứ hai này
Penelope

Câu trả lời:


9

Điểm chính hình ảnh là một tính năng chính trong nhiều phần mềm xử lý hình ảnh và video, cả công nghiệp và học thuật. Nguyên tắc đằng sau luôn giống nhau:

  • phát hiện một số điểm có ý nghĩa trong một số hình ảnh;
  • [tùy chọn] tính toán mô tả ổn định của phần hình ảnh xung quanh mỗi điểm chính;
  • khớp các điểm chính từ một hình ảnh (mẫu) với một hình ảnh khác (truy vấn).

Bây giờ, một số chi tiết hơn.

Tại sao phát hiện điểm? Về cơ bản, vì một điểm là giao điểm của hai đường. Như vậy, nó được phát hiện chính xác hơn nhiều (và theo cách ổn định hơn) dưới dạng đường hoặc các tính năng khác (khu vực, v.v.). Đây là kiến ​​thức phổ biến trong Computer Vision sau đó đã được chứng minh trong một bài báo của Mikolajchot. Điều này được bắt nguồn sâu trong bất kỳ trình phát hiện điểm nào: ví dụ: trình phát hiện điểm Harris dựa vào ma trận Hessian để kiểm tra xem có hai đường chéo.

Tại sao phần mô tả là tùy chọn? Máy dò điểm cơ bản (Harris, SUSAN, Moravec, FAST) không đi kèm với bộ mô tả. Quá trình kết hợp chúng hoàn toàn dựa trên vị trí. Vì vậy, chúng chủ yếu được sử dụng để xử lý video. Trực giác đằng sau là bạn có thể có nhiều điểm, sau đó là một quá trình ước tính mạnh mẽ (ví dụ: RANSAC). Tuy nhiên, các điểm chính gần đây (SIFT và các điểm tiếp theo) đã nhúng một mô tả bản vá hình ảnh, bởi vì chúng được sử dụng trong các tình huống phức tạp hơn (phát hiện đối tượng, khớp đường cơ sở lớn ...).

Anh ta có gì khác biệt giữa Harris / Hessian và SIFT / SURF? Bên cạnh phần mô tả, SIFT / SURF cũng bao gồm một bản địa hóa theo tỷ lệ . Do đó, khi bạn phát hiện điểm SIFT / SURF, bạn sẽ tìm thấy nó một lần nữa ngay cả khi hình ảnh của bạn đã được phóng to / thu nhỏ, v.v.

Sự khác biệt giữa SIF và SURF là gì? Chà, SURF thực sự chủ yếu là một phiên bản xấp xỉ của SIFT, phù hợp hơn cho việc tính toán nhanh (bằng cách sử dụng các hình ảnh tích hợp). Do đó, SURF không ổn định (như "tốt") như SIFT dưới các biến đổi affine, nhưng nó có giá trị bằng 1/10 chi phí tính toán.

Chúng có phù hợp với phần mềm thời gian thực không? Vâng, chắc chắn cho Harris. SURF được thiết kế để nhanh, do đó, việc triển khai tốt cũng phải nhanh. SIFT không được thiết kế cho tốc độ, nhưng bạn có thể tìm thấy việc triển khai GPU. Nhưng nếu bạn thực sự muốn nhanh ngay cả trên các thiết bị cấp thấp hơn, thì bạn cần kiểm tra các điểm gần đây như FAST (máy dò), BRIEF, ORB, BRISK, FREAK (mô tả nhị phân).

bạn có thể làm gì với chúng? Vâng, nhiều thứ. Bằng cách theo dõi các điểm trong video sau đó bạn có thể ổn định chúng, tăng chúng bằng các đối tượng, theo dõi các đối tượng. Bằng cách khớp các điểm giữa các camera, bạn có thể tự động hóa quy trình hiệu chỉnh các đường ống tái tạo 3D. Bằng cách khớp các điểm trên các phần của đối tượng, bạn có thể phát hiện các đối tượng. Và có lẽ nhiều hơn nữa ...


cảm ơn bạn rất nhiều vì câu trả lời chi tiết này Như bạn đã đề cập, trực giác đằng sau là bạn có thể có nhiều điểm, sau đó là một quá trình ước lượng mạnh mẽ (ví dụ: RANSAC) , tôi nghĩ rằng để thực hiện một ước lượng mạnh mẽ (như homography), mô tả tính năng là không thể thiếu, bởi vì, từ kiến ​​thức hạn chế của tôi , ước tính liên quan đến các tương ứng tính năng cần mô tả tính năng để khớp tính năng, phải không? Hoặc có bất kỳ ước tính nào khác mà không có tính năng phù hợp?

Trong xử lý video, bạn có ví dụ 25 khung hình / giây có nghĩa là 40 mili giây giữa hai khung hình. Các điểm chính sẽ không di chuyển nhiều và quá trình khớp sẽ là một số quy trình lân cận gần nhất về không gian. Nếu các điểm đã xuất hiện / biến mất, thì bạn hy vọng RANSAC sẽ giải quyết điều đó (điều này đúng miễn là bạn vẫn có 50% kết quả khớp tốt). Cũng lưu ý rằng việc thêm một mô tả vẫn kết thúc trong kết hợp hàng xóm gần nhất nhưng trong không gian tính năng, không phải trong không gian không gian nữa.
sansuiso

Câu trả lời tốt đẹp. Nếu một đối tượng cứng nhắc và về cơ bản giới hạn ở 3 bậc tự do trong tỷ lệ 2D (x, y, xoay) +, thì có một số thuật toán "khớp mẫu mạnh mẽ" trong các gói phần mềm thương mại hoạt động rất tốt cho các ứng dụng nhất định. Ví dụ bao gồm phần mềm từ Cognex, Hexavision, DALSA và Halcon từ MvTec. Các thuật toán này có thể không được khái quát như người đăng ban đầu muốn, nhưng đối với các đối tượng cứng nhắc, chúng có thể khá mạnh mẽ.
Xem lại

Có lẽ OCR cũng vậy?
FindOutIslamNow

2

Chà, đó là một câu trả lời tuyệt vời của @sansuiso, vì vậy tôi sẽ chỉ tập trung vào các cách sử dụng khác nhau có thể của các điểm chính được phát hiện và mô tả một số ví dụ cho bạn. Chắc chắn có nhiều cách sử dụng hơn, những cái được liệt kê chỉ dựa trên những gì tôi tiếp xúc với cho đến bây giờ.

Truy xuất hình ảnh dựa trên nội dung (CBIR) Bạn coi các tính năng (vectơ tính năng bạn nhận được sau khi áp dụng mô tả tính năng cho các điểm được phát hiện) dưới dạng từ trực quan . Trên những từ trực quan đó, bạn áp dụng các kỹ thuật túi từ , lần đầu tiên được giới thiệu để truy xuất văn bản (nghĩ rằng Google). Tôi đã đưa ra một câu trả lời khá chi tiết về điều đó ở đây (cũng xem các tài liệu tham khảo trong đó). Điều này sẽ cho phép bạn:

  • tìm hình ảnh tương tự trong cơ sở dữ liệu
  • phát hiện sự hiện diện của một đối tượng nhất định trong suốt hình ảnh cơ sở dữ liệu
  • "cụm" và tổ chức cơ sở dữ liệu tự động

("Thô") Ước tính địa lý trên các cặp hình ảnh Phát hiện các tính năng, thực hiện khớp, chọn các kết quả khớp mạnh nhất và sau đó ước tính đồng nhất dựa trên các kết quả khớp đó. Có một số kỹ thuật để cải thiện hiệu suất: ngoài việc chỉ mô tả phù hợp, thông tin không gian cũng có thể được sử dụng (ví dụ: một trận đấu có thể bị từ chối nếu hàng xóm của nó từ hình ảnh A không khớp trong cùng một vùng lân cận trong hình ảnh B - kỹ thuật ví dụ gần cuối bài viết này có thể được sử dụng ví dụ trong:

  • ghép ảnh - ví dụ: để kết nối nhiều "ảnh toàn cảnh" vào một ảnh
  • ước tính tư thế thô - chúng tôi đã sử dụng điều này trong một dự án mà chúng tôi phải tự động điều khiển một chiếc xe robot thông qua một khóa học được ghi lại (dựa trên sự điều hướng của con người). Thông tin duy nhất chúng tôi có là những bức ảnh "chính" được chụp ở những khoảng cách nhất định dọc theo con đường. Đầu tiên chúng tôi sử dụng CBIR để tìm hình ảnh khóa gần nhất, sau đó nội địa hóa và định vị ban đầu được thực hiện dựa trên kết hợp hình ảnh giữa chế độ xem hiện tại và hình ảnh cơ sở dữ liệu.
  • ổn định video - Tôi đã thấy một ví dụ rất hay về cảnh quay của một người đi đường được chụp bằng máy ảnh treo trên máy bay trực thăng. Ý tưởng là "vô hiệu hóa" sự rung lắc của máy ảnh - và kết quả cuối cùng là một video rất đẹp, ổn định.

Theo dõi tính năng Tôi không thể nói cho bạn biết nhiều về việc này được thực hiện như thế nào vì tôi không tự mình theo dõi nhiều, nhưng tôi có thể cho bạn một số ví dụ về việc khi nào điều này có thể hữu ích. Ý tưởng là chọn một số điểm ưa thích và sau đó theo vị trí của chúng trong video từ khung hình này sang khung hình khác. Ví dụ (tôi đã thấy):

  • Dấu hiệu giao thông sau: Có thể là một trợ giúp trong việc lái xe, ví dụ: nếu có chế độ xem đường phía trước và người lái xe có thể có hình ảnh được xử lý, sẽ rất hữu ích khi phát hiện, đánh dấu và theo dõi vị trí của biển báo giao thông hiển thị trong phía trước người lái xe (có thể cảnh báo người lái xe về vị trí / khoảng cách của biển báo và ý nghĩa)
  • nội địa hóa và định vị tốt: trong cùng một điều hướng tự động của chiếc xe robot mà tôi đã đề cập ở trên, chính xác hơn là thực hiện nội địa hóa tốt dựa trên các tính năng được theo dõi . Để cập nhật vị trí hiện tại và ra lệnh cho chuyển động tiếp theo, một số tính năng nhất định đã được theo dõi trong khung (vì vậy, không cần kết hợp) và tính tương đồng được ước tính dựa trên các tính năng đó.

Cảm ơn bạn vì những ứng dụng này, cũng như bài báo và bài đăng mà bạn đã liên kết.

1

Có một trang web sẽ cung cấp cho bạn nhiều thông tin về các truy vấn của bạn: http://www.robots.ox.ac.uk/~vgg/research/affine/

Nó chứa thông tin về các trình phát hiện và mô tả tính năng, hiệu suất hiện tại của chúng và cái nào là tốt nhất trong kịch bản nào.

Lĩnh vực này vẫn còn rất nhiều để đi.

Ví dụ: khi bạn muốn tái cấu trúc âm thanh nổi, các thuật toán này thường thất bại trong trường hợp hình ảnh điểm nhiều lượt xem. Bạn có thể thử một cái gì đó về điều đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.