0

Opencv image processing phần 1: Lý thuyết nắn ảnh với phương pháp morphing.

I. Morphing là gì

  • Morphing là một kỹ thuật xử lý hình ảnh được sử dụng cho các biến trạng thái từ một hình ảnh khác.
  • Ý tưởng: để có được một chuỗi hình ảnh trung gian mà khi đặt cùng với những hình ảnh ban đầu sẽ đại diện cho sự thay đổi từ hình này sang hình khác. Phương pháp đơn giản nhất của biến đổi một hình ảnh sang loại khác để cross-tan giữa chúng. Trong phương pháp này, màu sắc của mỗi điểm ảnh được nội suy theo thời gian từ những giá trị hình ảnh đầu tiên với giá trị hình ảnh thứ hai tương ứng. Đây không phải là rất hiệu quả trong việc đề xuất các biến thái thực tế. Đối với biến hình giữa các mặt, các biến thái không nhìn tốt nếu hai khuôn mặt không có hình dạng giống khoảng. Trong dự án này, chúng tôi thực hiện một chương trình kỹ xảo mà sẽ kết hợp chéo hòa tan với phương pháp bẻ cong để cung cấp cho biến hình tốt. Điều này được dựa trên "Feature-Dựa Metamorphosis Hình ảnh" bởi Thaddeus Beier và Shawn Neely. Quá trình morph bao gồm một giai đoạn cong vênh trước chéo giải thể vì vậy mà hai hình ảnh có hình dạng tương tự. Các sợi dọc được quy định, trong trường hợp này, bởi một ánh xạ giữa các dòng trong những hình ảnh đầu tiên và thứ hai. Trong các cuộc thảo luận sau đây, những hình ảnh đầu tiên sẽ được gọi là nguồn hình ảnh và hình ảnh cuối cùng sẽ được gọi là hình ảnh đích.

II. Nắn Ảnh(Warping Image)

Có 2 phương pháp nắn ảnh:

  • Forward Mapping : Trong phương pháp này, mỗi điểm ảnh trong hình ảnh nguồn được ánh xạ tới một vị trí thích hợp trong hình ảnh đích. Do đó, một số điểm ảnh trong hình ảnh điểm đến có thể không được ánh xạ. Chúng ta cần suy để xác định những giá trị pixel.Phương pháp so sánh này được sử dụng trong thuật toán morphing điểm.
  • Reverb Mapping: Phương pháp này đi qua mỗi điểm ảnh trong hình ảnh điểm đến và mẫu một điểm ảnh nguồn thích hợp. Như vậy, tất cả các điểm ảnh hình ảnh điểm đến được ánh xạ tới một số điểm ảnh nguồn. Lập bản đồ này đã được sử dụng trong các Beier / Neely phương pháp đường-morphing.

Trong cả hai trường hợp, vấn đề là xác định cách thức mà các điểm ảnh trong một hình ảnh sẽ được ánh xạ tới các điểm ảnh trong hình ảnh khác. Vì vậy, chúng ta cần phải xác định như thế nào mỗi điểm ảnh di chuyển giữa hai hình ảnh. Điều này có thể được thực hiện bằng cách xác định các bản đồ cho một vài điểm ảnh quan trọng. Các chuyển động của các điểm ảnh khác có thể thu được bằng cách ngoại suy một cách thích hợp các thông tin quy định cho các điểm ảnh kiểm soát. Những bộ pixel kiểm soát có thể được quy định như dòng trong một bản đồ hình ảnh để dòng trong hình ảnh hoặc điểm lập bản đồ khác để điểm.

III. Nắn điểm (Point-Warping)

Đây là phương pháp bẻ cong hình ảnh được dựa trên một kỹ thuật về forward-mapping, nơi mà mỗi điểm ảnh từ hình ảnh đầu vào được ánh xạ tới một vị trí mới trong hình ảnh đầu ra. Vì không phải tất cả các điểm ảnh đầu ra sẽ được chỉ định, chúng ta phải sử dụng một chức năng nội suy để hoàn thành hình ảnh đầu ra. Chúng tôi xác định một số điểm kiểm soát, mà sẽ bản đồ chính xác đến một vị trí nhất định trong hình ảnh đầu ra. Các điểm ảnh lân cận sẽ di chuyển phần nào ít hơn điểm kiểm soát, với số lượng phong trào quy định bởi một hàm trọng số bao gồm hai thành phần riêng biệt, cả hai phụ thuộc vào khoảng cách từ các điểm ảnh cho mỗi điểm kiểm soát trong các hình ảnh.

Các thành phần đầu tiên của hàm trọng số là một hàm Gaussian đó là sự đoàn kết tại các điểm kiểm soát và phân rã bằng không khi bạn di chuyển đi từ các điểm kiểm soát. Ý tưởng là để có điểm ảnh xa một điểm kiểm soát không bị ảnh hưởng bởi sự chuyển động của điểm đó. Các vấn đề với chương trình này là mỗi điểm ảnh bị ảnh hưởng bởi những chức năng trọng số của tất cả các điểm kiểm soát trong các hình ảnh. Vì vậy, mặc dù các chức năng trọng tại một điểm kiểm soát có thể là một, thời điểm đó sẽ vẫn bị ảnh hưởng bởi sự chuyển động của tất cả các điểm kiểm soát khác trong hình ảnh, và sẽ không di chuyển tất cả các cách để xác định vị trí của nó.

Để khắc phục hiệu ứng này, chúng tôi thiết kế các thành phần thứ hai của hàm trọng số, mà phụ thuộc vào khoảng cách tương đối từ một điểm ảnh cho mỗi điểm kiểm soát. Khoảng cách đến các điểm kiểm soát gần nhất là sử dụng như một tài liệu tham khảo, và sự đóng góp của mỗi điểm kiểm soát được giảm một yếu tố phụ thuộc vào khoảng cách tới điểm kiểm soát gần chia cho khoảng cách đến điểm kiểm soát. Này phục vụ để buộc pixel điểm điều khiển để di chuyển chính xác khoảng cách tương tự như các điểm kiểm soát liên quan của họ, với tất cả các điểm ảnh khác đi một chút ít và bị ảnh hưởng nhiều nhất bởi các điểm kiểm soát gần đó.

IV. Nắn điểm - Morphing

Kỹ thuật morphing này sử dụng kiểm soát các điểm thay vì dòng. Nó là kết quả trong hình ảnh trung thực, và chỉ mất một vài phút để chạy sử dụng (chậm) không phải do mã nguồn MATLAB.

jim_rog.gif

Phương pháp này đặc biệt là các công trình cũng di chuyển các tính năng cá nhân như mắt chỉ với một hoặc hai điểm. Để thay đổi hình dạng của một mặt đòi hỏi nhiều điểm hơn để mang lại kết quả chất lượng.

Có một vài điều chỉnh có thể được thực hiện để chỉnh morph hình ảnh cá nhân. Kể từ khi các yếu tố có hình dạng như hai chiều Gaussian, khu vực ảnh hưởng của bất kỳ điểm kiểm soát có thể được thay đổi bằng cách xác định phương sai khác của hàm trọng số Gaussian. Trong ví dụ, chúng tôi đã sử dụng phương sai bằng nhau cho tất cả các chức năng trọng.

Ngoài ra còn có hai chương trình bình thường khác nhau có thể có thể cho các chức năng trọng. Các chương trình, chúng tôi đã sử dụng ở đây có xu hướng sản xuất những thay đổi toàn cầu nhiều hơn cho một điểm kiểm soát duy nhất, và do đó đòi hỏi việc sử dụng các điểm kiểm soát nhiều hơn để "sửa chữa" các tính năng mà chúng tôi không muốn di chuyển. Khi điều này được thực hiện, tuy nhiên, kết quả vượt trội so với các chương trình khác.

V. Chuyển đổi với một cặp của Lines

Trong trường hợp này, một dòng trong hình ảnh nguồn được ánh xạ vào một dòng tương ứng trong ảnh đích. Các bộ phận khác của hình ảnh đang di chuyển một cách thích hợp để duy trì vị trí tương đối của họ từ các dòng quy định. Mỗi của những dòng này là đạo diễn. Điều này có thể được sử dụng để xoay và thay đổi kích thước hình ảnh.

Các phép biến đổi thực hiện sử dụng nhiều hơn một cặp đường liên quan đến một sự kết hợp có trọng số của các phép chuyển đổi được thực hiện bởi mỗi dòng. Kể từ khi các chuỗi đảo ngược được sử dụng, cho mỗi điểm ảnh trong hình ảnh cuối cùng chúng ta tìm thấy một điểm ảnh trong hình ảnh nguồn mà sẽ được sử dụng. Các chuyển tương ứng với mỗi dòng được tính cho mỗi pixel. Một trung bình weigted các chuyển vị được sử dụng để xác định bao nhiêu mỗi điểm ảnh cần di chuyển. Trọng lượng sử dụng phụ thuộc vào khoảng cách của các điểm được xem xét từ dòng. Trọng lượng cũng có thể phụ thuộc vào độ dài của dòng. Sự chuyển đổi này, dựa trên nhiều dòng, có thể được sử dụng hiệu quả cho kỹ xảo.

VI. Morphing - đường(Lines)

Morphing giữa hai hình ảnh I0 và I1 được thực hiện như sau.

  • Dòng được định nghĩa về hai hình ảnh I0 và I1
  • Các bản đồ giữa các dòng được quy định
  • Tùy thuộc vào số lượng các khung hình trung gian cần thiết, một tập các dòng suy thu được
  • Một khung trung gian thu được bằng cách thực hiện ba điều
  • Các đường trong I0 hình ảnh đầu tiên được biến dạng với các dòng tương ứng với hình ảnh trung gian
  • Các đường trong I1 ảnh thứ hai đang bị biến dạng với các dòng tương ứng với hình ảnh trung gian
  • Hai hình ảnh bị biến dạng hiện nay cộng lại theo tỷ lệ tùy thuộc vào cách giữa khung là đối với các khung hình ban đầu và cuối cùng với

opencv image processing: phần 2: Thuật toán morphable trong openCV


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.