Phương pháp phát hiện cực đại


24

Các thuật toán phát hiện đỉnh trong sự tồn tại là gì? Tôi có dữ liệu ồn ào và tôi muốn thực hiện phát hiện cao điểm cho dữ liệu này. Dữ liệu là ngược lại, thực sự tôi đang cố gắng xác định đáy.

Dưới đây là ảnh chụp nhanh dữ liệu trong Excel. Tôi thích phát hiện cả hai đáy. Tôi đã nghĩ về việc truyền dữ liệu qua bộ lọc thông thấp và sau đó thực hiện một trung bình di động trong đó tôi xác định các đỉnh và trong trung bình di chuyển tôi thực hiện một tìm kiếm khác. Tôi không có nền tảng DSP; đây chỉ là một cách tiếp cận thông thường Tôi muốn nghe những gì các chuyên gia khuyên.

Nhập mô tả hình ảnh ở đây


2
Hai đáy bạn muốn phát hiện là gì? Tôi chỉ thấy một điều hiển nhiên. Bạn có biết bạn có loại tiếng ồn nào, hoặc nó đến từ đâu không?
Jason R

Tôi muốn biết nếu bạn muốn triển khai nó trên bất kỳ phần cứng cụ thể nào (ràng buộc tài nguyên) vì điều đó sẽ ảnh hưởng đến chiến lược phát hiện cao điểm của tôi.
anasimtiaz

@JasonR cái màu tím là hiển nhiên. Tuy nhiên, cạnh sắc nét là một ngoại lệ. Lý tưởng nhất, tôi muốn điều đó được loại bỏ và hơn là tính điểm dưới cùng. (do đó bộ lọc LP theo cách tiếp cận của tôi) Cái không rõ ràng trên màu xanh nhạt là điểm cực tiểu bên phải của đỉnh màu tím. Màu tím không phải là một mối quan tâm thực sự nhưng màu xanh nhạt là. Âm mưu Excel không thực hiện công lý nhưng đây là từ ADC 12 bit trong đó 4096 là 2V.
Ktuncer

@anasimtiaz tin hay không điều này sẽ chạy trên iPhone / Android nên tôi đoán chúng ta có thể nói, nó giống như một PC. Không có ràng buộc phần cứng.
Ktuncer

@Ktuncer Tôi đã thêm một số hình ảnh để bạn tự xem.
Spacey

Câu trả lời:


12

Ktuncer, có một số phương pháp bạn có thể sử dụng ở đây. Một phương pháp mà tôi muốn giới thiệu là sử dụng Biến đổi Wavelet rời rạc, (DWT), và đặc biệt, hãy nhìn vào Wubet Daubechies . Tôi sẽ chọn, nói, Daub-14 / Daub-Tetra.

Về cơ bản những gì bạn thực sự cần làm là "xu hướng" tín hiệu của bạn, và sau đó, từ đó chọn một mức tối thiểu hoặc tối đa. Điều đó sẽ thoát khỏi các ngoại lệ của bạn. Một biến đổi wavelet daub-14 / daub-tetra có thể giúp bạn làm điều này và điều này đặc biệt hữu ích vì bạn không biết bản chất của tín hiệu của mình. (Sử dụng daub-14, bạn có thể biểu diễn chính xác các tín hiệu đa thức bậc 14/2 = 7 và có vẻ như bạn sẽ không cần nhiều hơn thế).

Tính toán của biến đổi wavelet này về cơ bản là 'nén' năng lượng của bạn thành một vài chỉ dẫn. Những chỉ số đại diện cho trọng số trên các vectơ cơ sở. Phần còn lại của trọng lượng sẽ (lý tưởng) sẽ gần bằng không. Khi bạn có nhiễu trong tín hiệu của mình (như bạn làm), các trọng số thường bằng 0 có một số trọng số ngay bây giờ, nhưng bạn có thể chỉ cần loại bỏ chúng ra và 'khử' tín hiệu của bạn. Khi đã hoàn tất, bạn có thể thực hiện phát hiện tối đa / phút đơn giản.

Có nhiều chi tiết liên quan hơn, bạn có thể gửi email cho tôi nếu bạn muốn thảo luận về cách triển khai nó. Tôi đã làm công việc tương tự về điều này trước đây.

EDIT: Dưới đây là một số hình ảnh minh họa Daub-Tetra Denoiser:

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây


1
Tôi thích cái này .. Có thư viện tham khảo cho cái này trong matlab không?
Ktuncer

@Ktuncer Bắn cho tôi một email.
Spacey

4

Tôi không phải là một chuyên gia, nhưng đây là những gì tôi sẽ làm:

Bạn dường như có một tín hiệu thay đổi từ từ chồng lên với các dao động. Các đỉnh bạn tìm kiếm là một số dao động mạnh hơn, vì vậy tôi sẽ phát hiện ra chúng bằng cách sử dụng nó.

  1. X(T)Y(t)

  2. XYσXY

  3. |(XY)(t)|>α×σα

Một phần vượt quá hoặc một phần dưới có thể được phát hiện cụ thể bằng cách loại bỏ giá trị tuyệt đối và sử dụng thử nghiệm thích hợp. Có phải đó là những gì bạn đang tìm kiếm?


1
Cách tiếp cận thú vị. Là gì? (Std. Dev?). Ngoài ra, toán học sang một bên, logic đằng sau nó là gì?
Ktuncer

σ

4σ

@ user4749 Điều này sẽ giúp bạn có được các đỉnh ngoại lệ, mặc dù tôi không chắc chắn nó sẽ có được các đỉnh tổng thể mà bạn đang tìm kiếm (Tôi giả sử bạn đang tìm kiếm các đỉnh 'rộng'?)
Spacey

1
@ Jean-Yves Xin chào! :-) Bạn có cho rằng tiếng ồn là guassian ở đây btw? (Đó là lý do tại sao chúng ta có thể ngưỡng ngưỡng). Tôi tò mò, nếu tiếng ồn có màu thì sao?
Spacey

4

Phát hiện cực đại có khá nhiều ứng dụng, cho tín hiệu 1D hoặc đa chiều. Dưới đây là một vài ví dụ cho thấy mức độ khác nhau của các tín hiệu này và cách giải thích của chúng về một đỉnh có thể là:

  • Dữ liệu 1D của người đăng ban đầu;

  • Biến đổi mạnh của một hình ảnh, mỗi đỉnh tương ứng với một dòng trong ảnh gốc; nhập mô tả hình ảnh ở đây

  • tự động tương quan của một hình ảnh, mỗi đỉnh tương ứng với một tần số tiết lộ một "mẫu định kỳ"; nhập mô tả hình ảnh ở đây

  • Tương quan chéo "tổng quát" của một hình ảnh và một mẫu, mỗi đỉnh tương ứng với sự xuất hiện của mẫu trong hình ảnh (chúng ta có thể quan tâm đến việc chỉ phát hiện các đỉnh tốt nhất hoặc một số đỉnh);

nhập mô tả hình ảnh ở đây

  • kết quả của việc lọc một hình ảnh cho các góc Harris, mỗi đỉnh tương ứng với một góc trong ảnh gốc.

nhập mô tả hình ảnh ở đây

Đây là những định nghĩa và kỹ thuật phát hiện các đỉnh tôi đã gặp - chắc chắn có những cái khác mà tôi đã quên hoặc không biết, và hy vọng những câu trả lời khác sẽ bao trùm chúng.

Kỹ thuật tiền xử lý bao gồm làm mịn và khử nhiễu. Câu trả lời của @ Mohammad là về wavelet, và bạn có thể thấy nhiều cách sử dụng khác nhau trong tài liệu về WaveletThrưỡng của Mathicala (nhân tiện tôi cũng lấy ví dụ của mình từ đó).

Sau đó, bạn tìm kiếm cực đại. Tùy thuộc vào ứng dụng của bạn, bạn chỉ cần cực đại toàn cầu (ví dụ: đăng ký hình ảnh), một vài cực đại cục bộ (ví dụ: phát hiện dòng) hoặc nhiều cực đại cục bộ (phát hiện điểm chính): Điều này có thể được thực hiện lặp đi lặp lại, tìm kiếm giá trị cao nhất trong dữ liệu sau đó xóa một vùng xung quanh đỉnh đã chọn, v.v. cho đến khi giá trị còn lại cao nhất nằm dưới ngưỡng. Ngoài ra, bạn có thể tìm cực đại cục bộ trong một kích thước lân cận nhất định và chỉ giữ các cực đại cục bộ có giá trị vượt quá ngưỡng - một số khuyên nên giữ cực đại cục bộ dựa trên khoảng cách của chúng với các cực đại cục bộ còn lại tốt hơn). Kho vũ khí cũng có các hoạt động hình thái: Biến đổi cực đại mở rộng và biến đổi mũ đỉnh có thể phù hợp.

Xem kết quả của ba trong số các kỹ thuật này trên một hình ảnh được lọc cho các góc Harris:

nhập mô tả hình ảnh ở đây

Hơn nữa, một số ứng dụng cố gắng tìm các đỉnh ở độ phân giải pixel phụ. Nội suy, có thể là ứng dụng cụ thể, có ích.

Theo tôi biết, không có viên đạn bạc và dữ liệu sẽ cho biết kỹ thuật nào hoạt động tốt nhất.

Nó sẽ thực sự tốt đẹp để có nhiều câu trả lời, đặc biệt. đến từ các ngành khác.


Làm thế nào bạn trích xuất dữ liệu của cơ quan câu hỏi để sử dụng? Tôi không thể tìm thấy nó ở dạng sạch.
Léo Léopold Hertz

1
Tôi đã làm Tôi đã sử dụng các ví dụ khác. Nhìn lại câu hỏi ngày hôm nay, tôi không thấy cách trích xuất dữ liệu sạch từ câu hỏi.
Matthias Odisio

-1

Tôi nghĩ rằng một thuật toán phát hiện đỉnh cao điển hình là như thế này mà refpeak(bottom).

for i=1,N   {
       if i=1   {  ref=data(i) }
       else { if data(i)<=ref {ref =data(i) }}
}

3
Tôi không đánh giá thấp câu trả lời của bạn, nhưng tôi nghĩ nó bị coi là lạc đề bởi những người đã làm. Phác thảo này phát hiện tối thiểu tuyệt đối của một chuỗi. OP đang tìm kiếm các đỉnh, nơi mà người ta cần phải đối phó với địa phương và tiếng ồn.
Matthias Odisio

Than ôi, không có phản hồi nào cho tiền thưởng "câu trả lời kinh điển". Về mặt đó, tất cả các câu trả lời đều "không liên quan" như nhau; Tôi đã trao tiền thưởng cho câu trả lời này vì đó là phần cũ nhất.
Matthias Odisio
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.