시각적 아나그램: 확산 모델로 만드는 다중 시점 광학 착시
(dangeng.github.io)- 하나의 이미지가 회전·뒤집기·색상 반전 같은 변환 뒤 다른 대상으로 보이도록 만드는 다중 시점 광학 착시를, 사전학습 확산 모델로 제로샷 생성함
- 여러 변환 시점에서 각각 노이즈를 추정한 뒤 역시점 변환으로 좌표계를 맞추고, 평균 노이즈로 다음 확산 단계를 진행하는 방식임
- 지원 변환은 회전, 뒤집기, 색상 반전, 기울이기, 직소 퍼즐 재배열, 무작위 패치 순열, 3개 이상 시점까지 넓음
- 변환 함수는 가역이어야 하며, 확산 모델의 노이즈 가정과 맞추려면 선형성과 표준 정규 노이즈의 통계적 일관성이 필요함
- 직교 행렬 조건을 만족하는 픽셀 순열과 색상 반전은 이론 조건에 맞아 활용하기 쉽지만, 시점이 늘어날수록 좋은 착시를 얻기는 어려워짐
변환하면 정체성이 바뀌는 이미지
- Visual Anagrams는 하나의 이미지가 특정 변환을 거치면 외형이나 정체성이 바뀌어 보이는 다중 시점 광학 착시를 생성함
- 별도 학습 없이 기성 확산 모델을 쓰는 제로샷 방식임
- 예시 변환은 다음처럼 다양함
- 직소 퍼즐 재배열: 퍼즐 조각을 나누고 재배열하면 다른 모습으로 보이며, 여러 해답을 가진 직소 퍼즐처럼 동작함
- 뒤집기와 180도 회전: 이미지를 뒤집거나 180도 돌렸을 때 외형이 바뀜
- 90도 회전: 이미지를 90도 회전하면 다른 모습으로 인식됨
- 색상 반전: 색을 반전했을 때 이미지가 달라짐
- 기울이기와 “inner circle rotations”: 기타 변환 예시에 포함됨
- 무작위 패치 순열: 패치를 재배열하며, (64 \times 64) 패치 수까지 늘리면 품질은 낮아지지만 인식 가능한 결과가 나옴
- 두 시점뿐 아니라 세 시점 착시도 만들 수 있지만, 좋은 결과를 얻기는 더 어려움
- 네 시점 착시는 작동시키기 매우 어려웠고, 절반 정도 괜찮은 결과는 하나만 찾음
생성 절차와 이론 조건
- 핵심은 여러 변환 시점에서 확산 모델이 추정한 노이즈를 하나로 합치는 절차임
- 각 시점 (v_i)에서 노이즈를 추정함
- 추정값에 역시점 (v_i^{-1})를 적용해 같은 좌표계로 맞춤
- 정렬된 노이즈 추정값을 평균냄
- 평균 노이즈 추정값으로 확산 단계를 수행함
- 모든 시점 함수가 이 방법에 맞지는 않으며, (v_i)는 먼저 가역이어야 함
- 확산 모델은 노이즈가 섞인 데이터 (\mathbf{x}_t)를 순수 신호 (\mathbf{x}_0)와 노이즈 (\epsilon)의 가중합으로 다룸
- 변환 (v)가 신호와 노이즈의 가중 관계를 유지하려면 선형 변환이어야 함
- 선형 변환은 행렬 (\mathbf{A})로 표현됨
- 확산 모델은 노이즈가 독립 동일분포의 표준 정규분포에서 나온다는 가정으로 학습됨
- 변환된 노이즈도 (\mathbf{A}\epsilon \sim \mathcal{N}(0, I))를 만족해야 함
- 선형 변환에서는 (\mathbf{A})가 직교 행렬이면 이 조건과 동치임
- 따라서 이 방법에서 변환이 작동하기 위한 충분조건은 직교 변환임
- 임의의 직교 변환 대부분은 이미지에서 시각적으로 의미가 없지만, 순열 행렬은 직교 행렬의 부분집합이며 픽셀 재배열로 해석할 수 있음
- 회전, 뒤집기, 기울이기, inner rotations, 직소 재배열, 패치 순열은 특정한 픽셀 재배열로 볼 수 있음
- 색상 반전은 순열은 아니지만 픽셀 값의 부호를 바꾸는 변환이라 직교 변환에 해당함
논문과 실행 자료
- Paper: CVPR 2024 논문 PDF
- arXiv: arXiv 페이지
- Code: Visual Anagrams 코드
- Colab: 실행용 Colab
- Diffusion Illusions: score distillation sampling으로 다중 시점 착시와 다른 시각 효과를 생성함
- Illusion-Diffusion Colab: 유사한 아이디어를 담은 Matthew Tancik의 Colab이며, Visual Anagrams는 착시 품질, 변환 범위, 이론 분석에서 개선됨
- Factorized Diffusion: Visual Anagrams의 후속 작업으로 여러 유형의 하이브리드 착시를 생성함
- Images that Sound: 유사한 기법으로 이미지처럼 보이는 스펙트로그램을 생성함
댓글과 토론
Hacker News 의견들
-
남자/여자 반전이 정말 마음에 듦
같은 기법을 확장하면 한 이미지 안에서 읽을 수 있는 순열을 몇 개나 만들 수 있을지 궁금함. 수학은 잘 모르지만, 직교 변환 두 개를 연속으로 적용해도 여전히 직교 변환이라서 작동하는 걸까?- 남자/여자 예제가 나도 눈에 띄었고 아마 열 번쯤 본 듯함. 어딘가 쓸쓸해 보여서 더 그랬던 것 같음
- 오리와 토끼 모자이크는 정말 웃겼음
- 여기서 말하는 ‘직교 변환’이 보통의 직교 선형 변환/행렬을 뜻한다면, 답은 맞음
-
작년 초에 비슷한 아이디어가 있었고 체커보드 방식도 조금 만져봤음
여기에는 유명 화가 스타일의 고양이 그림 9개로 만든 고양이가 있음: https://twitter.com/marekgibney/status/1521500594577584141
보려면 눈을 좀 가늘게 떠야 할 수도 있음. 몇 개 만들다가 어쩐지 흥미가 식었음- 솔직히 내 눈에는 고양이라기보다 cat-aclysm처럼 보임. 아마 모델이 서로 충돌하는 요구사항에 압도돼서 개별 이미지도 합성 이미지도 딱히 좋지 않게 나온 듯함. 그래도 말한 것처럼 언젠가는 이런 것도 더 잘하게 될 수 있음
- 정말 멋짐. 3x3x3도 가능할까? 그러니까 9x9에서 1칸짜리 고양이 81개, 9칸짜리 고양이 9개, 81칸짜리 고양이 1개가 되는 식으로
-
남자/여자 색상 반전 예제가 가장 인상 깊었음. 회전은 머릿속으로 돌려서 다른 시점을 볼 수 있는데, 색상 반전은 머릿속으로 하기가 아주 어려움
- 대단함. 관심 있는 사람을 위해 링크를 남김. 페이지에 이미지가 많음
https://dangeng.github.io/visual_anagrams/static/videos/grid... - 내겐 반대임. 색상 반전은 1990년대에 유행하던 모프 애니메이션보다 크게 더 인상적이지 않게 느껴짐. 픽셀 데이터 수준에서 색상 반전이 얼마나 단순한지는 이해하지만, 그 단순함이 눈으로는 보이지 않기 때문임. 아무 관련 없는 알파 블렌딩과도 별 차이 없어 보임
반면 회전은 정말 놀라움. 픽셀이 바뀌지 않는다는 게 완벽하게 보임. 화면을 물리적으로 돌리면 이미지가 ‘변함’. 확산 모델 이미지가 기존 이미지의 메아리만은 아니라는 점을 이보다 잘 보여주는 사례는 떠올리기 어려움. 물론 그런 면도 있지만, 본질적으로는 “{프롬프트} 설명에 맞는 픽셀 집합을 찾으라”는 문제의 해답임. 여기서는 “이 방향에서는 {A}에 맞고, 저 방향에서는 {B}에 맞는 픽셀”을 찾는 셈임 - 남자가 보일 때는 찾아보면 여자가 보이는데, 이상하게 반대는 안 됨
- 대단함. 관심 있는 사람을 위해 링크를 남김. 페이지에 이미지가 많음
-
이 기법과 결과는 몇 달 전 유명했던 ‘나선형’ ControlNet 이미지와는 별개임: https://arstechnica.com/information-technology/2023/09/dream...
코드상으로는 DeepFloyd-IF 기반인데, Stable Diffusion 변형만큼 실행하기 쉽지는 않음- 아직 자세히 들여다보지는 않았지만, 이 아이디어를 다른 확산 네트워크에도 쓸 수는 있어야 하지 않을까? 다만 제공된 코드에는 꽤 큰 수정이 필요할 수도 있음. 물론 틀렸다면 바로잡아줘도 좋음
- 이 아이디어가 하필 그 ControlNet 모델로 떠올랐다는 게 늘 이상했음. 같은 이미지들을 다른 여러 ControlNet 모델과 조합해도 훌륭하고 강렬한 결과가 나옴
Stable Diffusion 주변 생태계는 전반적으로 정말 거대함 - 못 봤는데, 뭐가 악명 높았던 거임?
- 오히려 관련 있다고 말하려던 것 아닐까? Ugleh의 원래 ‘나선형’ 이미지는 “Related Links” 섹션에 명시적으로 크레딧이 들어가 있음
-
여기 나온 것 같은 실물 직소 퍼즐을 구매할 수 있나?
- 직접 만들 수도 있음. 다만 위 방법이 크게 확장됐을 때 얼마나 잘 맞을지는 모르겠음 https://www.createjigsawpuzzles.com/
- 이 연구는 DeepFloyd IF를 쓰는데, 상업적 사용이 금지돼 있음. 판매하려면 다른 적절한 이미지 생성기를 찾거나 훈련해야 할 것임
-
예제 하나하나가 전부 “그래... 뭐, 그럴 수도... 어느 정도는” 같은 느낌임
펭귄/기린이 아마 제일 낫고, 노부인/드레스는 둘 중 어느 쪽으로도 거의 안 보임- 그 두 개는 이전에 알려진 앰비그램을 바탕으로 한 것임
펭귄/기린은 이것과 아주 가까움: https://www.pinterest.com/pin/giraffepenguin--13398215764267...
다른 하나는 여기서 직접 영감을 받았거나 비슷한데, “young lady” 프롬프트가 모델이 드레스를 고르게 만든 듯함. 그리고 눈과 귀, 입과 초커를 사진처럼 사실적으로 완전히 동일하게 만드는 건 불가능함: https://www.reddit.com/r/RedditDayOf/comments/35cjn5/the_cla... - 음, 펭귄/기린은 처음 봤을 때 “거꾸로 된 펭귄처럼 보이는데, 기린은 어디 있지?” 싶었음. 다른 것들은 무엇을 의도했는지 바로 보였고
- 그 두 개는 이전에 알려진 앰비그램을 바탕으로 한 것임
-
재배열되는 오리/토끼는 슬라이딩 퍼즐에 쓰면 정말 멋질 것 같음. 유효한 해답이 두 개가 됨
- 확인은 필요하지만, 한 쌍의 ‘돌기와 구멍’을 다른 한 쌍과 바꿀 수 있다면 두 쌍은 모양과 색이 모두 같아야 함. 하지만 서로 맞바꾸는 대신 갈라져서 다른 모서리에 붙는다면 추가 연결이 생김
모서리를 돌기와 구멍의 연결된 방향 그래프 노드로 생각하면, 가능한 쌍들이 연결됨. 맞바꾸기는 두 쌍짜리 군집이고, 추가 연결은 양 끝이 열린 네 원소 사슬임. 그 연결이 더 많은 쌍으로 이어지면 동일한 돌기와 구멍의 더 큰 군집이 생길 수 있음. 그래프 성질상 아마 대부분이 그렇게 될 것임. 이유는 죄수의 역설을 보면 됨 [0]
그러면 대부분의 돌기가 대부분의 구멍에 들어맞게 되어 퍼즐 풀기가 훨씬 어려워짐.
[0] 훌륭한 Matt Parker 영상 https://www.youtube.com/watch?v=a1DUUnhk3uE도 좋지만, 이어지는 Veritasium의 Derek과의 토론을 더 추천함 - 그렇게 재배열 가능한 요소가 많으면 사진 없이는 구분할 수 없는 ‘유효한’ 해답을 아주 많이 만들 수 있어서, 퍼즐이라기보다 예술이 될 것 같음
- 확인은 필요하지만, 한 쌍의 ‘돌기와 구멍’을 다른 한 쌍과 바꿀 수 있다면 두 쌍은 모양과 색이 모두 같아야 함. 하지만 서로 맞바꾸는 대신 갈라져서 다른 모서리에 붙는다면 추가 연결이 생김
-
빨강/파랑 조명 아래에서 서로 다른 것으로 보이는 이런 이미지를 만들면 멋질 듯함
-
생성형 AI가 가져온 창의성의 폭발은 정말 놀라움