วิชวลแอนะแกรม: ภาพลวงตาหลายมุมมองที่สร้างด้วยโมเดลการแพร่กระจาย
(dangeng.github.io)- สร้างภาพลวงตาหลายมุมมองที่ทำให้ ภาพเดียวดูเป็นวัตถุคนละอย่าง หลังผ่านการแปลงอย่างการหมุน การพลิก หรือการกลับค่าสี ได้แบบ zero-shot ด้วยโมเดลการแพร่กระจายที่ผ่านการพรีเทรนไว้แล้ว
- วิธีการคือประเมินนอยส์ในแต่ละมุมมองของการแปลง จากนั้นใช้การแปลงผกผันของมุมมองนั้นเพื่อจัดพิกัดให้อยู่ในกรอบเดียวกัน แล้วใช้ค่านอยส์เฉลี่ยเพื่อทำขั้นตอนการแพร่กระจายถัดไป
- การแปลงที่รองรับมีตั้งแต่ การหมุน, การพลิก, การกลับค่าสี, การเอียง, การจัดเรียงจิ๊กซอว์ใหม่, การสลับแพตช์แบบสุ่ม ไปจนถึงมากกว่า 3 มุมมอง
- ฟังก์ชันการแปลงต้องเป็นแบบผกผันได้ และเพื่อให้สอดคล้องกับสมมติฐานเรื่องนอยส์ของโมเดลการแพร่กระจาย จึงต้องมี ความเป็นเชิงเส้น และ ความสอดคล้องทางสถิติ ของนอยส์เกาส์เซียนมาตรฐาน
- การสลับพิกเซลและการกลับค่าสีที่เป็นไปตามเงื่อนไขเมทริกซ์ตั้งฉากนั้นใช้งานได้ง่ายตามเงื่อนไขทางทฤษฎี แต่เมื่อจำนวนมุมมองเพิ่มขึ้น การได้ภาพลวงตาที่ดีจะยากขึ้น
ภาพที่เปลี่ยนตัวตนเมื่อถูกแปลง
- Visual Anagrams สร้าง ภาพลวงตาหลายมุมมอง ที่เมื่อภาพเดียวผ่านการแปลงบางอย่างแล้ว รูปลักษณ์หรือตัวตนที่รับรู้จะเปลี่ยนไป
- เป็นแนวทางแบบ zero-shot ที่ใช้โมเดลการแพร่กระจายที่มีอยู่แล้วโดยไม่ต้องฝึกเพิ่ม
- ตัวอย่างการแปลงมีหลากหลาย เช่น
- การจัดเรียงจิ๊กซอว์ใหม่: เมื่อแบ่งเป็นชิ้นจิ๊กซอว์แล้วนำมาจัดเรียงใหม่ ภาพจะดูเป็นอีกสิ่งหนึ่ง และทำงานคล้ายจิ๊กซอว์ที่มีหลายคำตอบ
- การพลิกและการหมุน 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: ไฟล์ PDF ของงานวิจัย CVPR 2024
- arXiv: หน้า arXiv
- Code: โค้ดของ Visual Anagrams
- Colab: Colab สำหรับทดลองใช้งาน
- Diffusion Illusions: สร้างภาพลวงตาหลายมุมมองและเอฟเฟกต์ภาพอื่น ๆ ด้วย score distillation sampling
- Illusion-Diffusion Colab: Colab ของ Matthew Tancik ที่ใช้แนวคิดคล้ายกัน โดย Visual Anagrams ปรับปรุงด้านคุณภาพของภาพลวงตา ช่วงของการแปลง และการวิเคราะห์เชิงทฤษฎี
- Factorized Diffusion: งานต่อยอดจาก Visual Anagrams ที่สร้างภาพลวงตาไฮบริดหลายประเภท
- Images that Sound: ใช้เทคนิคคล้ายกันเพื่อสร้างสเปกโตรแกรมที่ดูเหมือนภาพ
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ชอบ การกลับด้านชาย/หญิง มากจริง ๆ
ถ้าขยายเทคนิคเดียวกันนี้ต่อไป สงสัยว่าจะสร้าง permutation ที่อ่านได้ภายในภาพเดียวได้กี่แบบ ผมไม่ค่อยรู้คณิตศาสตร์นัก แต่เป็นเพราะเมื่อใช้การแปลงเชิงตั้งฉากสองครั้งต่อเนื่องกัน ผลลัพธ์ก็ยังเป็นการแปลงเชิงตั้งฉากอยู่ เลยทำงานได้หรือเปล่า?
ต้นปีที่แล้วมีไอเดียคล้าย ๆ กัน และเคยลองเล่น วิธีแบบ checkerboard อยู่บ้าง
ตรงนี้มีภาพแมวที่สร้างจากภาพแมว 9 ภาพในสไตล์จิตรกรชื่อดัง: https://twitter.com/marekgibney/status/1521500594577584141
อาจต้องหรี่ตาสักหน่อยถึงจะเห็น ลองทำไปไม่กี่ภาพแล้วก็ไม่รู้ทำไมความสนใจก็ลดลง
ตัวอย่าง การกลับสีชาย/หญิง น่าประทับใจที่สุด การหมุนยังพอหมุนในหัวเพื่อดูอีกมุมมองได้ แต่การกลับสีนี่ทำในหัวได้ยากมาก
https://dangeng.github.io/visual_anagrams/static/videos/grid...
ในทางกลับกัน การหมุนนี่น่าทึ่งจริง ๆ เห็นได้อย่างสมบูรณ์ว่าพิกเซลไม่ได้เปลี่ยนไป ถ้าหมุนหน้าจอจริง ๆ ภาพก็ ‘เปลี่ยน’ ผมนึกตัวอย่างที่แสดงได้ดีกว่านี้ไม่ออกว่า ภาพจาก diffusion model ไม่ได้เป็นเพียงเสียงสะท้อนของภาพเดิม ๆ แน่นอนว่ามันมีแง่นั้นอยู่บ้าง แต่โดยแก่นแล้วมันคือคำตอบของปัญหา “จงหาชุดพิกเซลที่ตรงกับคำอธิบาย {พรอมป์ต์}” ในที่นี้ก็คือการหา “พิกเซลที่จากทิศทางนี้ตรงกับ {A} และจากอีกทิศทางหนึ่งตรงกับ {B}”
เทคนิคและผลลัพธ์นี้แยกต่างหากจากภาพ ControlNet ‘เกลียว’ ที่เคยดังเมื่อไม่กี่เดือนก่อน: https://arstechnica.com/information-technology/2023/09/dream...
ในเชิงโค้ดมันอิง DeepFloyd-IF จึงไม่ได้รันง่ายเท่ากับสายแยกของ Stable Diffusion
ระบบนิเวศรอบ ๆ Stable Diffusion โดยรวมแล้วใหญ่มากจริง ๆ
มี จิ๊กซอว์จริง แบบที่เห็นในนี้ให้ซื้อไหม?
ตัวอย่างแต่ละอันให้ความรู้สึกประมาณว่า “อืม... ก็ได้มั้ง... ในระดับหนึ่ง” ทั้งหมด
เพนกวิน/ยีราฟ น่าจะดีที่สุด ส่วนหญิงชรา/ชุดเดรสนี่แทบไม่ดูเหมือนทั้งสองอย่าง
เพนกวิน/ยีราฟใกล้เคียงกับอันนี้มาก: https://www.pinterest.com/pin/giraffepenguin--13398215764267...
อีกอันได้แรงบันดาลใจโดยตรงจากที่นี่หรือคล้ายกัน แต่พรอมป์ต์ “young lady” ดูเหมือนจะทำให้โมเดลเลือกชุดเดรส และเป็นไปไม่ได้ที่จะทำให้ตากับหู ปากกับ choker เหมือนกันเป๊ะ ๆ แบบภาพถ่ายจริง: https://www.reddit.com/r/RedditDayOf/comments/35cjn5/the_cla...
เป็ด/กระต่าย ที่จัดเรียงใหม่ได้น่าจะเหมาะกับการทำเป็น sliding puzzle มาก ๆ จะมีคำตอบที่ถูกต้องสองแบบ
ถ้าคิดว่าขอบเป็นโหนดของกราฟมีทิศทางที่เชื่อมกันด้วยเดือยและรู คู่ที่เป็นไปได้ก็จะเชื่อมต่อกัน การสลับคือคลัสเตอร์สองคู่ ส่วนการเชื่อมต่อเพิ่มเติมคือโซ่สี่องค์ประกอบที่ปลายทั้งสองเปิดอยู่ ถ้าการเชื่อมต่อนั้นนำไปสู่คู่อื่น ๆ อีก ก็อาจเกิดคลัสเตอร์ขนาดใหญ่ของเดือยและรูที่เหมือนกันได้ จากคุณสมบัติของกราฟ น่าจะส่วนใหญ่เป็นแบบนั้น เหตุผลดูได้จาก prisoner’s paradox [0]
ถ้าเป็นอย่างนั้น เดือยส่วนใหญ่ก็จะเข้ากับรูส่วนใหญ่ได้ ทำให้การแก้พัซเซิลยากขึ้นมาก
[0] วิดีโอของ Matt Parker ที่ยอดเยี่ยม https://www.youtube.com/watch?v=a1DUUnhk3uE ก็ดี แต่ผมแนะนำการถกต่อกับ Derek จาก Veritasium มากกว่า
ถ้าทำภาพแบบนี้ที่ดูเป็นคนละอย่างกันภายใต้แสงแดง/น้ำเงินได้น่าจะเจ๋ง
การระเบิดของความคิดสร้างสรรค์ ที่ generative AI นำมานั้นน่าทึ่งจริง ๆ