Anagram thị giác: ảo ảnh quang học đa góc nhìn tạo bằng mô hình khuếch tán
(dangeng.github.io)- Tạo zero-shot các ảo ảnh quang học đa góc nhìn bằng mô hình khuếch tán đã huấn luyện sẵn, trong đó một hình ảnh sau các biến đổi như xoay, lật, đảo màu sẽ trông như một đối tượng khác
- Cách làm là ước lượng nhiễu ở từng góc nhìn biến đổi, rồi áp dụng biến đổi góc nhìn ngược để căn chỉnh hệ tọa độ, sau đó dùng nhiễu trung bình để thực hiện bước khuếch tán tiếp theo
- Các biến đổi được hỗ trợ rất rộng, gồm xoay, lật, đảo màu, nghiêng, sắp xếp lại ghép hình jigsaw, hoán vị mảnh ngẫu nhiên, và từ 3 góc nhìn trở lên
- Hàm biến đổi phải khả nghịch; để khớp với giả định nhiễu của mô hình khuếch tán, cần có tính tuyến tính và tính nhất quán thống kê của nhiễu chuẩn tắc tiêu chuẩn
- Hoán vị pixel và đảo màu thỏa điều kiện ma trận trực giao nên phù hợp với điều kiện lý thuyết và dễ ứng dụng, nhưng càng nhiều góc nhìn thì càng khó thu được ảo ảnh tốt
Hình ảnh đổi danh tính khi biến đổi
- Visual Anagrams tạo ra ảo ảnh quang học đa góc nhìn, trong đó một hình ảnh sau một biến đổi nhất định sẽ trông như thay đổi ngoại hình hoặc danh tính
- Đây là phương pháp zero-shot dùng mô hình khuếch tán có sẵn, không cần huấn luyện riêng
- Ví dụ về biến đổi rất đa dạng như sau
- Sắp xếp lại ghép hình jigsaw: khi chia và sắp xếp lại các mảnh ghép, hình sẽ trông khác đi, hoạt động giống một bộ ghép hình jigsaw có nhiều lời giải
- Lật và xoay 180 độ: ngoại hình thay đổi khi lật ảnh hoặc xoay ảnh 180 độ
- Xoay 90 độ: khi xoay ảnh 90 độ, ảnh được nhận diện như một hình khác
- Đảo màu: hình ảnh thay đổi khi đảo màu
- Nghiêng và “inner circle rotations”: được đưa vào các ví dụ biến đổi khác
- Hoán vị mảnh ngẫu nhiên: sắp xếp lại các mảnh; khi tăng tới (64 \times 64) mảnh, chất lượng giảm nhưng vẫn tạo ra kết quả có thể nhận diện
- Không chỉ hai góc nhìn, cũng có thể tạo ảo ảnh ba góc nhìn, nhưng khó đạt kết quả tốt hơn
- Ảo ảnh bốn góc nhìn rất khó làm cho hoạt động, và chỉ tìm được một kết quả tạm ổn khoảng một nửa
Quy trình tạo và điều kiện lý thuyết
- Điểm cốt lõi là quy trình hợp nhất nhiễu do mô hình khuếch tán ước lượng ở nhiều góc nhìn biến đổi
- Ước lượng nhiễu ở từng góc nhìn (v_i)
- Áp dụng góc nhìn ngược (v_i^{-1}) lên giá trị ước lượng để đưa về cùng hệ tọa độ
- Lấy trung bình các ước lượng nhiễu đã được căn chỉnh
- Thực hiện bước khuếch tán bằng ước lượng nhiễu trung bình
- Không phải mọi hàm góc nhìn đều phù hợp với phương pháp này; trước hết (v_i) phải khả nghịch
- Mô hình khuếch tán xem dữ liệu bị trộn nhiễu (\mathbf{x}_t) là tổng có trọng số của tín hiệu thuần (\mathbf{x}_0) và nhiễu (\epsilon)
- Để biến đổi (v) duy trì quan hệ trọng số giữa tín hiệu và nhiễu, nó phải là biến đổi tuyến tính
- Biến đổi tuyến tính được biểu diễn bằng ma trận (\mathbf{A})
- Mô hình khuếch tán được huấn luyện với giả định rằng nhiễu đến từ phân phối chuẩn tắc tiêu chuẩn độc lập cùng phân phối
- Nhiễu sau biến đổi cũng phải thỏa (\mathbf{A}\epsilon \sim \mathcal{N}(0, I))
- Trong biến đổi tuyến tính, điều kiện này tương đương với việc (\mathbf{A}) là ma trận trực giao
- Vì vậy, điều kiện đủ để biến đổi hoạt động trong phương pháp này là biến đổi trực giao
- Phần lớn biến đổi trực giao tùy ý không có ý nghĩa thị giác trên ảnh, nhưng ma trận hoán vị là một tập con của ma trận trực giao và có thể được diễn giải là sắp xếp lại pixel
- Xoay, lật, nghiêng, inner rotations, sắp xếp lại jigsaw, hoán vị mảnh có thể được xem là một kiểu sắp xếp lại pixel cụ thể
- Đảo màu không phải là hoán vị, nhưng là biến đổi đổi dấu giá trị pixel nên thuộc biến đổi trực giao
Bài báo và tài liệu chạy thử
- Paper: PDF bài báo CVPR 2024
- arXiv: trang arXiv
- Code: mã nguồn Visual Anagrams
- Colab: Colab để chạy thử
- Diffusion Illusions: tạo ảo ảnh đa góc nhìn và các hiệu ứng thị giác khác bằng score distillation sampling
- Illusion-Diffusion Colab: Colab của Matthew Tancik với ý tưởng tương tự; Visual Anagrams được cải thiện về chất lượng ảo ảnh, phạm vi biến đổi và phân tích lý thuyết
- Factorized Diffusion: công trình tiếp nối Visual Anagrams, tạo nhiều loại ảo ảnh lai khác nhau
- Images that Sound: tạo spectrogram trông giống hình ảnh bằng kỹ thuật tương tự
1 bình luận
Ý kiến trên Hacker News
Mình thật sự rất thích bản đảo nam/nữ
Tò mò không biết nếu mở rộng cùng kỹ thuật này thì có thể tạo ra bao nhiêu hoán vị có thể đọc được trong một hình. Mình không giỏi toán, nhưng nếu áp dụng liên tiếp hai phép biến đổi trực giao thì nó vẫn là một phép biến đổi trực giao nên vẫn hoạt động phải không?
Hồi đầu năm ngoái đã có một ý tưởng tương tự, và mình cũng nghịch thử kiểu bàn cờ một chút
Ở đây có một con mèo được tạo từ 9 bức tranh mèo theo phong cách các họa sĩ nổi tiếng: https://twitter.com/marekgibney/status/1521500594577584141
Có thể bạn sẽ phải nheo mắt một chút mới thấy được. Mình làm vài cái rồi không hiểu sao lại mất hứng
Ví dụ đảo màu nam/nữ là thứ gây ấn tượng nhất với mình. Xoay thì còn có thể tự xoay trong đầu để hình dung góc nhìn khác, còn đảo màu thì cực khó làm như vậy trong đầu
https://dangeng.github.io/visual_anagrams/static/videos/grid...
Trong khi đó xoay thì thật sự đáng kinh ngạc. Việc pixel không thay đổi là điều thấy rõ hoàn toàn. Khi bạn xoay vật lý cái màn hình, hình ảnh “thay đổi”. Khó mà nghĩ ra ví dụ nào cho thấy ảnh từ diffusion model không chỉ là tiếng vọng của các ảnh có sẵn tốt hơn thế này. Dĩ nhiên nó cũng có mặt đó, nhưng về bản chất đây là lời giải cho bài toán “hãy tìm tập pixel khớp với mô tả của {prompt}”. Ở đây tức là tìm “các pixel khớp với {A} ở hướng này, và khớp với {B} ở hướng kia”
Kỹ thuật và kết quả này khác với các ảnh ControlNet ‘xoắn ốc’ từng nổi như cồn vài tháng trước: https://arstechnica.com/information-technology/2023/09/dream...
Về mặt code thì nó dựa trên DeepFloyd-IF, nên không dễ chạy như các biến thể Stable Diffusion
Hệ sinh thái xung quanh Stable Diffusion nhìn chung thực sự khổng lồ
Có thể mua tranh ghép hình ngoài đời thật như mấy cái ở đây không?
Từng ví dụ ở đây đều cho mình cảm giác kiểu “ừm... được thôi... cũng tạm hiểu...”
Chim cánh cụt/hươu cao cổ có lẽ là ổn nhất, còn bà lão/váy thì gần như chẳng ra bên nào cả
Chim cánh cụt/hươu cao cổ rất gần với cái này: https://www.pinterest.com/pin/giraffepenguin--13398215764267...
Cái còn lại có vẻ được lấy cảm hứng trực tiếp từ đây hoặc tương tự như vậy, chỉ là prompt “young lady” khiến model chọn ra một cái váy. Và không thể nào làm cho mắt và tai, miệng và vòng cổ choker trùng khít hoàn toàn theo kiểu hiện thực như ảnh được: https://www.reddit.com/r/RedditDayOf/comments/35cjn5/the_cla...
Bản vịt/thỏ có thể sắp xếp lại sẽ cực hợp cho trò sliding puzzle. Như vậy sẽ có hai lời giải hợp lệ
Nếu coi các cạnh là các node trong một đồ thị có hướng được nối bằng các cặp lồi và lõm, thì các cặp khả dĩ sẽ kết nối với nhau. Hoán đổi tạo thành một cụm hai cặp, còn các liên kết bổ sung tạo thành một chuỗi bốn phần tử có hai đầu mở. Nếu liên kết đó tiếp tục nối tới nhiều cặp hơn thì có thể hình thành các cụm lớn hơn của cùng một loại lồi và lõm. Theo tính chất đồ thị thì có lẽ phần lớn sẽ như vậy. Muốn biết lý do thì xem nghịch lý tù nhân [0]
Khi đó phần lớn các miếng lồi sẽ khớp với phần lớn các miếng lõm, khiến việc giải puzzle khó hơn rất nhiều.
[0] Video rất hay của Matt Parker https://www.youtube.com/watch?v=a1DUUnhk3uE cũng tốt, nhưng mình còn khuyên xem phần thảo luận tiếp theo của Derek từ Veritasium hơn
Sẽ rất hay nếu tạo những hình như thế này mà trông khác nhau dưới ánh sáng đỏ/xanh dương
Sự bùng nổ sáng tạo mà AI tạo sinh mang lại thật sự đáng kinh ngạc