Kết hợp tuyến tính và tuyến tính


7

Sự khác biệt giữa tích chập tròn và tuyến tính là gì? Khi nào tôi sẽ chọn cái này hơn cái kia? Trong xử lý ảnh trong đó bộ lọc được áp dụng cho ảnh có mặt nạ nên chọn loại tích chập nào?


Tôi khuyên bạn nên yêu cầu người điều hành chuyển câu hỏi này sang trang xử lý tín hiệu dsp.SE
Dilip Sarwate

Có lẽ bạn có thể mess với Mathematica Demo Trân

Mmm, hiểu nhưng ... Tôi luôn đọc rằng tích chập tròn được sử dụng để báo hiệu với sự hỗ trợ hữu hạn nhưng cũng được sử dụng khi tín hiệu có tính tuần hoàn. Tôi không hiểu điều này bởi vì tín hiệu với sự hỗ trợ hữu hạn không phải lúc nào cũng có tính định kỳ, ví dụ: hình ảnh
Juan

Câu trả lời:


7

Nếu bạn có một vectơ dữ liệu, , bao gồm các phần tử , thì tích chập tuyến tính hoạt động theo chúng theo thứ tự, bắt đầu bằng và kết thúc bằng .dd1,d2,...dNd1dN

Hãy tưởng tượng rằng vectơ dữ liệu được biểu thị bằng một tờ giấy với các phần tử được viết theo thứ tự. Bây giờ, hãy tưởng tượng hình thành một mảnh giấy thành một vòng tròn bằng cách chạm vào đầu (nơi ) vào đầu (nơi ). Kết luận đó là tích chập tuần hoàn. Trong thực tế tích chập tuyến tính và tích chập tuần hoàn gần như nhau, sự khác biệt xảy ra ở đầu và cuối của tích chập tuyến tính. Trong tích chập tuyến tính, bạn giả sử rằng có 0 trước và sau dữ liệu của bạn (nghĩa là chúng tôi giả sử rằng " " và " " là 0), trong khi với tích chập tròn, chúng tôi bọc dữ liệu để tạo thành dữ liệu định kỳ (nghĩa là " "dNdNd1d0dN+1d0dN và " " bằng với ).dN+1d1

Các nguyên tắc tương tự giữ cho các mảng đa chiều. Đối với tích chập tuyến tính, có một điểm bắt đầu và kết thúc xác định cho mỗi trục, với các số không được giả định trước và sau. Đối với tích chập tròn, dữ liệu bao quanh trong mỗi trục.

When would I choose one over the other?

Với một vài trường hợp ngoại lệ rất hiếm, chúng tôi không "chọn" tích chập tuần hoàn. Chúng tôi hầu như luôn muốn tích chập tuyến tính. Lý do mà các cấu trúc vòng tròn bật lên nhiều như chúng là vì các cấu trúc thông qua FFT (FFT, bội, FFT nghịch đảo) là các cấu trúc tròn, không phải là tuyến tính.


Nếu tôi sử dụng tích chập tuyến tính mà không đệm số không, tên của vấn đề trong ranh giới là răng cưa? và một câu hỏi khác Điều gì có một tuyến tính hoặc vòng tròn tính toán tốt nhất (tính toán)?
Juan

Với tích chập tuyến tính, bạn không cần phải thực sự đệm với số không - nó tiềm ẩn trong cách bạn thực hiện phép tính. Với tích chập tròn, bạn đệm với các số không để làm cho nó tạo ra kết quả giống như tích chập tuyến tính.
Jim Clay

Đối với các hạt tích chập nhỏ, tích chập tuyến tính có hiệu suất tốt nhất. Đối với các hạt tích chập lớn, tích chập tuần hoàn qua FFT có hiệu suất tốt nhất. Tuy nhiên, có sự phức tạp của việc cần phải đệm với số không để có câu trả lời đúng.
Jim Clay

Bây giờ tôi bối rối vì trong câu trả lời sau, hãy nói "nếu bạn điền các giá trị còn thiếu bằng 0 thì bạn vẫn ở trạng thái tích chập tuyến tính", nhưng bạn nói "Với tích chập tuyến tính, bạn không cần phải thực sự đệm với số không"
Juan

Bạn có thể thực hiện việc rút ngắn kernel tích chập bằng tích chập tuyến tính hoặc tròn. Đây là một vấn đề riêng biệt. Phần đệm bằng 0 chỉ dành cho tích chập tròn.
Jim Clay

6

Khi bạn triển khai tích chập trong hình ảnh, bạn phải quan tâm đến các giá trị biên, bởi vì tại một số điểm, mặt nạ tích chập của bạn sẽ "xử lý" hình ảnh để xử lý. Tùy thuộc vào cách bạn điền các giá trị còn thiếu sẽ xác định thời tiết hay không, bạn có thực hiện tích chập tuần hoàn không:

  • nếu bạn điền các giá trị còn thiếu bằng 0 thì bạn sẽ ở trạng thái tích chập tuyến tính
  • nếu bạn điền các giá trị còn thiếu theo định kỳ thì có khả năng bạn sẽ sử dụng tích chập tuần hoàn.

Lưu ý rằng nếu bạn triển khai tích chập trong miền Fourier thì bạn không có lựa chọn nào khác ngoài tích chập tuần hoàn, bởi vì thuật toán FFT sẽ ngầm định kỳ hình ảnh của bạn.

-- BIÊN TẬP --

Chuyển đổi thường được triển khai trong miền Fourier (=> tích chập tuần hoàn) vì nó nhanh hơn đáng kể trong hầu hết các trường hợp nhờ thuật toán FFT. Các thuật toán tích chập tuyến tính nhanh tồn tại, nhưng thường được dành riêng cho trường hợp hạt nhân có thể tách rời trong đó bạn có thể lọc hình ảnh theo chiều ngang và chiều dọc riêng biệt, điều này cũng mang lại ít thao tác hơn so với triển khai 2D ngây thơ.


3
+1. Bạn có thể đệm hình ảnh với các số không đủ để tránh "định kỳ" Fourier này.
Andrey Rubshtein

Lợi thế của cái này hay cái khác là gì?
Juan

Thông tư đối lưu. nhanh hơn nhờ FFT. Xem câu trả lời được chỉnh sửa.
sansuiso

Bây giờ tôi bối rối vì trong câu trả lời sau, hãy nói "Với tích chập tuyến tính, bạn không cần phải thực sự đệm với số không", nhưng bạn nói "nếu bạn điền các giá trị bị thiếu bằng 0 thì bạn sẽ ở trạng thái tích chập tuyến tính"
Juan

Tôi nghĩ phần đầu tiên trong nhận xét của Jim Clay là đúng: tích chập tuyến tính thường sẽ tránh được phần đệm rõ ràng bằng 0, nhưng đó là một tạo tác triển khai (nếu bạn không kiểm tra ranh giới, thì bạn phải phân bổ một hình ảnh lớn và sử dụng phần đệm). Các cách tiếp cận dựa trên FFT có thể sử dụng phần đệm cho i) thực thi nhanh hơn (vì thậm chí còn có thuật toán nhanh hơn cho một số kích thước hình ảnh tốt) hoặc ii) để thu phóng hình ảnh (điều này tương đương với phép nội suy chân thực). Tích chập hình tròn (bao gồm cả chập dựa trên FFT) không dựa vào bất kỳ phần đệm nào.
sansuiso
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.