Trực giác tích chập trong xử lý ảnh


9

Tôi đã đọc nhiều tài liệu về tích chập trong xử lý ảnh và hầu hết trong số họ nói về công thức của nó, một số tham số bổ sung. Không ai giải thích được trực giác và ý nghĩa thực sự đằng sau việc thực hiện tích chập trên một hình ảnh. Ví dụ, trực giác của đạo hàm trên biểu đồ làm cho nó trở nên tuyến tính hơn chẳng hạn.

Tôi nghĩ rằng một bản tóm tắt nhanh chóng của định nghĩa là: tích chập được nhân bội vuông góc giữa hình ảnh và hạt nhân, sau đó tổng hợp lại và đặt nó vào neo. Và điều này không có ý nghĩa gì với tôi.

Theo bài báo này về tích chập, tôi không thể tưởng tượng được tại sao tích chập có thể làm một số điều "không thể tin được". Ví dụ: phát hiện đường và cạnh trên trang cuối của liên kết này. Chỉ cần chọn kernel tích chập thích hợp có thể tạo hiệu ứng đẹp (phát hiện đường thẳng hoặc phát hiện cạnh).

Bất cứ ai cũng có thể cung cấp một số trực giác (không cần phải là một bằng chứng gọn gàng) về cách nó có thể làm điều đó?

Câu trả lời:


13

Tôi nghĩ rằng cách đơn giản nhất để nghĩ về Convolution là phương pháp thay đổi giá trị của pixel thành giá trị mới dựa trên trọng lượng của các pixel gần đó.

Thật dễ dàng để biết lý do tại sao Box Blur:

_____________
|1/9|1/9|1/9|
|1/9|1/9|1/9|
|1/9|1/9|1/9|
-------------

làm. Chuyển đổi hạt nhân này giống như đi qua từng pixel của ảnh và làm cho giá trị mới của pixel trở thành trung bình của chính nó và tám pixel xung quanh.

Nếu bạn hiểu điều đó, bạn có thể thấy tại sao Gaussian Blur hoạt động:

_____________________
|.01|.04|.07|.04|.01|
|.04|.16|.26|.16|.04|
|.07|.26|.41|.26|.07|
|.04|.16|.26|.16|.04|
|.01|.04|.07|.04|.01|
---------------------

Về cơ bản, đó là điều tương tự, ngoại trừ việc lấy trung bình có trọng số mạnh hơn đối với các pixel gần hơn. Hàm xác định mức độ giảm trọng lượng khi bạn di chuyển xa hơn là Hàm Gaussian , nhưng bạn không cần phải biết chi tiết về hàm để sử dụng nó để làm mờ.

Hạt nhân phát hiện cạnh trong bài viết được liên kết có ý nghĩa nếu bạn nhìn chằm chằm vào nó đủ lâu:

__________
|-1|-1|-1|
|-1|.8|-1|
|-1|-1|-1|
----------

Về cơ bản, nó nói rằng giá trị của bất kỳ pixel nào bắt đầu từ 8/9 giá trị ban đầu của nó. Sau đó, bạn trừ đi các giá trị của mọi pixel xung quanh nó để đến pixel mới của bạn.

Vì vậy, nếu giá trị của một pixel cao và giá trị của các pixel xung quanh nó cũng cao, chúng sẽ triệt tiêu lẫn nhau. Nếu giá trị của pixel thấp và tất cả các pixel xung quanh nó cũng thấp, chúng cũng sẽ triệt tiêu lẫn nhau. Nếu giá trị của pixel cao và giá trị của các pixel xung quanh nó thấp (như trong một pixel trên cạnh của một đối tượng) thì giá trị pixel mới sẽ cao.


6

Một cách để suy nghĩ về tích chập / giao thoa là như thể bạn đang tìm kiếm một số tín hiệu trong dữ liệu của mình. Dữ liệu càng giống kernel, giá trị kết quả sẽ càng cao. Tôi thực sự có mặt trái của kernel, tức là trong tương quan chéo, nhưng về cơ bản nó là điều tương tự.

Ví dụ: giả sử bạn đang tìm kiếm một bước định hướng trong dữ liệu 1d của mình.

Hạt nhân có thể là

[-1 1]

và hãy áp dụng điều đó vào dữ liệu

[2 2 2 2 2 1 1 1 1 1]

Kết quả sẽ là

[0 0 0 0 0 1 0 0 0 0]

Mà phát hiện vị trí của bước. Một bước lớn hơn sẽ cho một giá trị lớn hơn.

Điều này hoạt động bởi vì khi bạn nhân một mẫu với mẫu xuất hiện trong kernel, bạn sẽ nhận được giá trị cao.

Phát hiện cạnh (hoặc bất kỳ phát hiện mẫu nào khác) hoạt động theo cùng một cách, ví dụ như với kernel

[-1 2 -1]

Mở rộng cho kích thước cao hơn cũng có thể được suy nghĩ nếu theo cách này.

Điều này sẽ cung cấp cho bạn trực giác ít nhất về một số ứng dụng xử lý hình ảnh chập.


4

Nếu bạn nghĩ rằng tích chập hơi khó hiểu, tôi khuyên bạn nên bắt đầu tìm kiếm về Hình thái toán học được áp dụng cho xử lý hình ảnh, ý tưởng lớn đằng sau Hình thái toán học là bạn sẽ thực hiện một thao tác rất gần với tích chập, để "thay đổi" hình thái của hình ảnh, nhưng giữ lại thông tin cấu trúc liên kết, bằng cách này, bạn có thể tạo hình ảnh của một người đứng, một bộ xương, giống như một con người, thử áp dụng thao tác xói mòn, sau đó mở rộng hoạt động, sau đó đi đến mở / thao tác đóng, bạn sẽ bắt đầu hiểu mặt nạ được áp dụng cho mọi pixel ảnh có thể làm gì và làm thế nào chúng có thể được sử dụng trong một kịch bản lớn để đạt được kết quả tuyệt vời (như tìm một điểm để bắt đầu một thứ gì đó bằng cách sử dụng lần xói mòn cuối cùng) bạn hiểu hình thái toán học, tích chập khó hơn một chút,bởi vì nó dựa trên tính toán và được xác định sau khi tích hợp, tuy nhiên, rất nhiều phép tích chập rất dễ hiểu, như mờ trung bình, mờ gaussian, làm sắc nét, phát hiện cạnh, laplace, gradient, v.v.

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.