1 puan yazan GN⁺ 2024-10-24 | 1 yorum | WhatsApp'ta paylaş
  • PabloNet, web kamerası görüntüsünü gerçek zamanlı diffusion ile dönüştürüp çerçeve biçimli bir LCD’de gösteren bir cihaz; üretilen görüntülerin bir dizüstü demo’su değil, duvara asılmış fiziksel bir nesne gibi deneyimlenmesini sağlıyor
  • Uygulama, StreamDiffusion tabanlı bir sunucu ile Raspberry Pi 5 istemcisi, 10,1 inç ekran, Pi NoIR kamera, kızılötesi aydınlatma ve standart bir çerçevenin birleşiminden oluşuyor
  • En büyük kısıt düşük kare hızı; TensorRT ve giriş/çıkış görüntülerini sıkıştırma ile iyileştirme yapılmış olsa da tepki hızını artırmak için hâlâ alan var
  • İstenen görsel tarzı yalnızca prompt ile elde etmek zor olduğundan ön işleme filtreleri de denendi; mavi Picasso stili Canny edge detection, mavi renklendirme ve blur birleşimiyle elde edildi
  • Ocak 2025 güncellemesinde, HN tepkilerinin ardından siparişler gelince Pi Zero, 3D baskı montaj aparatı, lazer kesim arka panel ve WiFi dongle içeren, gönderime daha uygun ve daha derli toplu bir sürüme dönüştü

Duvara asılı gerçek zamanlı diffusion çerçevesi

  • PabloNet, web kamerası girdisini alarak gerçek zamanlı görüntü dönüşümü yapar ve sonucu çerçeve formundaki bir LCD’de gösteren bir cihazdır
  • StreamDiffusion’ı dizüstünde çalıştıran ilk deneyler eğlenceliydi, ancak dizüstü form faktörü illüzyonu bozuyor; geçici ve “geeky” hissettiriyordu
  • Duvara asılı bir LCD çerçeveye dönüştürüldüğünde ekran, basit bir görüntüleyici değil sürekliliği olan bir nesne gibi davranıyor
    • Farklı zamanlarda, ruh hâllerinde, ışık koşullarında, nesnelerle ve arkadaşlarla birlikte yeniden karşılaşılabiliyor
    • Yüzler, karanlıkta kızılötesi aydınlatma, nesneler ve arkadaşlarla etkileşim örnek videoları yer alıyor
  • Şu anki en büyük kısıt düşük FPS
    • TensorRT kullanılarak ve giriş/çıkış görüntüleri sıkıştırılarak kare hızı artırıldı
    • Yine de hâlâ geliştirme için çok yer var

Donanım bileşenleri ve görsel stil oluşturma

  • Kendi başınıza yapabilmeniz veya katkıda bulunabilmeniz için istemci ve sunucu kodu pablonet üzerinde yayımlandı
  • İlk donanım yapılandırması:
  • Kamera deliği, matkapla olduğundan daha temiz kesilebildiği için çerçeve kartonuna delgeç ile açıldı
  • Görsel sonuç yalnızca prompt ile oluşturulmadı; ön işleme filtreleri de benzer derecede önemliydi
    • Ön işleme olmadan img2img kullanıldığında sonuçlar çoğu zaman fazla gerçekçi görünüyordu
    • Mavi Picasso stili Canny edge detection, mavi renklendirme ve blur birleşimiyle oluşturuldu

HN tepkilerinden sonra gönderilebilir ikinci sürüm

  • Hacker News başlığından sonra proje ilgi gördü ve beklenmedik siparişler geldi; bunun üzerine gönderime uygun, daha derli toplu bir sürüm yapıldı
  • İkinci sürüm, orijinal cihazdaki zahmetleri azaltacak yönde değişti
    • Eski cihazda, duvara takmadan önce elektronik parçaların düşmemesi için elde tutulması gerekiyordu
    • Yalnızca API çağırmak ve görüntü göstermek için sıradan bir Pi fazla güçlü ve pahalı hissettiriyordu
    • Kablolama durumu da iyi değildi
  • Satın alınan parçalar Fusion 360’ta CAD’e aktarıldı; özel parçalar dört yinelemeden geçirilerek 2 adet 3D baskı montaj aparatı ve lazer kesim arka panel çözümüne ulaşıldı
  • Montaj aparatlarının görevleri:
    • Ekranı çerçeve camı ve kartonuna hizalayarak sabitler
    • Pi Zero’yu ve kamerayı sabitler
    • Duvara asmak için keyhole slot görevi görür
    • Vidalar ve somunlarla düzeneğin çerçeveye sabitlenmesini sağlar
    • Havya ile 3D baskı parçaya yerleştirilen threaded insert ve vidalar sayesinde arka panelin sabitlenmesini sağlar

Kullanıcının kendi başına yönetebileceği kurulum yöntemi

  • Gönderilebilirliği artırmak için kullanıcı affordance’larını çözmek gerekiyordu
    • İlk sürüm, Pi’nin USB portu üzerinden önceden ayarlanmış Bluetooth fare ve klavye kullanıyordu
    • Kullanıcının arka paneli açıp USB hub, kablolu fare ve klavye ile Bluetooth eşleştirmesini kendisinin ayarlaması iyi bir yöntem olarak görülmedi
    • Bunu önlemek için bir WiFi dongle eklendi; böylece Pi, SSH bağlantısı için erişim noktası olarak çalışırken mevcut ağ arayüzü üzerinden internete bağlanabiliyor
  • Kendi başınıza üretim detayları pablonet deposunda görülebilir; üretim talepleri e-posta ile alınabiliyor

1 yorum

 
GN⁺ 2024-10-24
Hacker News yorumları
  • Harika. Koda göz gezdirince düşük kare hızını iyileştirmek için birkaç ipucu görüyorum
    JPEG baytlarını Base64 ile kodlamak payload’u yaklaşık %30’a kadar büyütür ve hem istemci hem sunucu tarafında CPU kullanır. WebSocket ikili payload gönderebildiği için bunu metne çevirmeye gerek yok
    Kayıplı JPEG sıkıştırmayı da kaldırıp, ham RGB baytlarını doğrudan ağ üzerinden göndermeyi düşünmeye değer. Sunucu tarafında sadece Image.frombuffer(…) çağırmak yeterli
    StreamDiffusion, pipeline içinde kapsamlı batch işleme yaptığı için yüksek kare hızlarına çıkabiliyor; burada ise istemci aynı anda yalnızca bir kare gönderip yanıt beklediğinden bu avantajdan yararlanılamıyor. Girdi karelerini kuyruğa alıp batch olarak tüketme yöntemi için şu örneğe bakılabilir: https://github.com/cumulo-autumn/StreamDiffusion/blob/main/e...
    Alternatif olarak SDXL Turbo ve Lightning modellerine de bakmaya değer. img2img’de çok hızlılar, ancak çözünürlükleri sırasıyla 512² veya 1024² piksel ile sınırlı. Hedefin biraz altında görünüyor ama üst seviye tüketici GPU’larında yerel gerçek zamanlı çalıştırma mümkün. Referans kod burada: https://github.com/GradientSurfer/Draw2Img/tree/main

    • Ama bunun mutlaka böyle gerçek zamanlı olması gerekiyor mu diye düşünüyorum. Bir düğme gibi bir şey olsa, kişi poz verip fotoğraf çekse, dönüşümden geçip resim olarak geri gelse ve sonraki fotoğraf çekilene kadar o resim ekranda kalsa daha doğal olmaz mı? Böyle olursa sanatsal yanılsama daha iyi olabilir. Tabii artık “ayna” olmaktan çıkar
    • Tüm bunlardan sonra, ara karelerde yapay zekaya ihtiyaç duymayan 2D interpolasyona da bakmak iyi olur. Bir bloktan diğerine çok hızlı doğrusal interpolasyon yapan hızlı kernel matematiği var
  • “Sanat yapmak zordur. Ama sanat çoğunlukla iç dünyayı ortaya koyma işidir ve teknik bunun yalnızca bir parçasıdır. Sanatın tekniğe bu kadar sert eleme yaptırması üzücü” sözü hakkında; Luddite gibi konuşmak istemem ama teknik uçurumun yalnızca basit bir rahatsızlık olduğu fikrinden şüphe duyuyorum
    Resim öğrenme ya da müzik yapma sürecinin insanın içinde bir şeyleri değiştirdiğini ve daha derin hayat dersleri öğrettiğini düşünüyorum
    “Büyük sanat eserlerini dâhiler yapmaz; deha, fırtına gibi beklenmedik şekilde gelir” diye bir söz duymuştum. Bir sanatçının yapabileceği en iyi şey bu tür fırsatları yetiştirmektir; teknik uçurumu ortadan kaldırmak ise o yetiştirme sürecini, insanın kendini değiştirmesine dair özü ortadan kaldırmak gibi görünüyor
    Ne olduklarını bilmediğimiz ve nasıl ifade edeceğimizi de bilemediğimiz halde sürekli geri dönen bazı derin işleyiş ilkeleri var gibi. Proje eğlenceli ve pek çok kişiye faydalı görünüyor ama bazen bana böyle düşündürüyor

    • “İç dünyayı ortaya koyma” yönünün doğru olduğunu düşünüyorum; bu yüzden bu bana sanattan çok duvar kâğıdına yakın geliyor. Kişinin kendi psikolojisinin derinlerine inip inci çıkarması gibi bir çalışma değil ve bu imgelerde böyle bir nitelik yok
      Projenin tamamında böyle bir nitelik var mı sorusu daha muğlak, ama kişisel olarak hayır derdim. Psikolojik olarak değil, teknik olarak yönlendirilen bir çalışma gibi görünüyor. Elbette ayna güçlü bir sembol olduğu için, bunun psikolojik bir çalışma olduğunu savunan bir sanatçı notu yazılabilir
      Yine de hoşuma gidiyor ve ben yapmış olsaydım gurur duyardım. Ama sanattan çok ustalığa daha yakın
      Ben olsam kare hızını artırmak yerine düşürürdüm. Teknik sınırlarla savaşmak yerine o sınırları kullanma yolu bu. Sistemin yalnızca “iyi” görüntüleri göstermesini ve başka bir “iyi” görüntü üretilene kadar ekranı yenilememesini sağlardım. Görüntünün “iyi” olup olmadığına karar veren kod, sistemin en ilginç kısmı olur ve sanatçının niyetini taşıdığı söylenebilir; bu da onu benim kişisel ölçütlerime göre büyük S ile Sanat’a yaklaştırabilir
      Bob Shaw’un Light of Other Days’indeki gibi görüntü akışını tamponlamayı da denerdim
      Ayrıca Cadılar Bayramı yaklaştığı için, arada bir izleyicinin arkasında duran bir figürü inpaint etme isteği inanılmaz güçlü olurdu
      Görüntü kararlılığı elde etmek için, rastgele görüntüler üretmek yerine bir LLM’in rastgele video filtresi kodu yazmasını sağlayabilir miyiz? “Girdi videosunu kübist gibi gösteren bir video filtresi yaz”, “yağlı boya gibi”, “Flash estetiğinde” gibi. Filtre üretildiyse ve gerçekten çökmüyorsa o filtreye geçmek şeklinde. Mümkün mü bilmiyorum
    • “İçteki bir şeyi ortaya koymak” gibi sözler kitleyi çok kısa süreliğine etkileyebilir, ama iyi sanat için bundan fazlası gerekir. Her sanatın bir dili ve ölçütleri vardır; bunlar sanatçının gerekli tekniği öğrenip gelişirken edindiği şeylerdir
      Mona Lisa yalnızca iyi çizilmiş bir insan resmi değildir. Resim eğitimi almış kişilerin anlayabileceği ayrıntılar ve anlamlarla doludur. Yapay zeka fena olmayan ya da ilginç imgeler üretebilir, ama resmin dilini konuşamaz. Bunu öğrenmek ve takdir etmek için gerçek bir emek gerekir. Fırça kullanma becerisini bir insan beynine ya da yapay zeka aracına enjekte etmek, kişiyi sanatçı yapmaz
    • “Resim ya da müzik öğrenme süreci insanın içinde bir şeyleri değiştirir ve daha derin hayat dersleri öğretir” fikrini güçlü biçimde destekliyorum. Resimden daha basit bir örnek olarak yazı yazmak var. Herkesin anlatacak bir hikâyesi vardır ve herkes yazabilir; ama başkalarının zamanına değecek bir metin ortaya koymak için zanaati günler değil yıllar boyunca bilemek gerekir ve bu süreçte kaçınılmaz olarak kendinizi öğrenir, dünya görüşünüzü kristalleştirirsiniz
    • Bu, “uzmanlar imkânsız der ama amatörler bunu her gün başarır” özdeyişinin ters yönü
      Bazen bir şeye, onlarca yıllık mevcut tarihin şekillendirmediği taze gözlere sahip birinin bakması iyi olabilir
    • Demek ki en büyük sanatı yalnızca boyasını yapmak için bitki yetiştiren insanlar üretebiliyor
  • Bu arada, ekranı sabitlemek için kullanılan çerçevenin bağlantısı erişimi engelliyor
    https://www.leroymerlin.fr/produits/decoration-eclairage/dec...
    Merak edenler için: MILO 21 x 29,7 cm siyah çerçeve. Aşağıdaki bağlantı bende açılıyor
    https://www.leroymerlin.pt/produtos/decoracao-e-tapetes/mold...
    Ayrıca kullanılan ekranı, HMTECH Raspberry Pi Screen 10.1'i bulmak da epey zor. Benzer kalite ve özelliklerde önerebileceğiniz bir ekran var mı?
    Neden kızılötesi aydınlatma ve kızılötesi kamera kullandığını da merak ediyorum

    • Böyle bir şey yapmak için maliyet hesabı yaptığım her seferinde, eski bir Android tableti kiosk moduna alıp web uygulaması olarak yapmak çok daha ucuza geliyor
    • Kızılötesi aydınlatma ve kızılötesi kamera kullanmasının amacı muhtemelen karanlıkta da çalışmasını sağlamak
    • Ekran Amazon'dan alınamaz mı? Gerçi dokunmatik ekran olduğu için biraz fazla kaçıyor gibi; aslında herhangi bir ekran iş görür. Etrafındaki çerçeveyi kendin yapabilirsin
  • “Sanat çoğunlukla iç dünyayı ortaya koymaktır, teknik yalnızca bir kısmıdır” sözüyle ilgili olarak, sanatı hep duyguları koruyan ve üreten bir şey olarak düşündüm. Bu yüzden duvara bantlanmış muz da sanattır, pop müzik de hâlâ sanattır diye düşünüyorum
    Okulun etkisi olabilir ama ben de sık sık “neden?” diye soruyorum
    Bu icadın kendisi kesinlikle bir sanat eseri, ama çıktısı benim gözümde öyle değil. Bulut gibi. Çeşitli şekiller oluşturur; bazıları komik olabilir, bazıları yakınınızdaki birini hatırlatabilir, ama yine de ortalamaya çekilmiş bir rastlantısallıktır
    Yine de gerçekliği bu dijital rastlantısallığa yansıtma fikri kuşkusuz sanat bence. Görsel ya da işitsel olmasa bile yazılım, donanım, kod ve tasarım da sanattır. Yapması zor olduğu için de ilk paragraftaki argümana karşı bir örnek sayılır

    • “Sanat duyguları koruyan ve üreten şeydir” derseniz niyetin rolü belirsizleşir. Öfkeli ve ayrıcalıklı hissederek BMW'mi engelli park yerinde iki yeri kaplayacak şekilde çift sıra park edersem bu sanat mı olur? Kesinlikle duygu uyandırır ve duyguyla ortaya çıkmış bir sonuçtur
    • Sanat insanı içine çekmeli ve konuyu sunma biçimi özgün olmalı. Ayrıca teknik de işin içinde olmalı. Aksi hâlde ucuz ya da yüzeysel hissedildiği anda bütün şey çöker
      Duvara bantlanmış muz sanat değildir. Gündelik bir nesnenin gündelik bir yerleşime konmasından ibarettir
      Onu sanat gibi hissedebilirsiniz, ama o zaman gerçek sanatla yeterince karşılaşmadığınız için deneyim havuzunuz yoktur ya da bugüne kadar yalnızca yüzeysel örnekler görmüş olabilirsiniz
    • Bu zaten “iç dünyayı ortaya koymak” anlamına gelmiyor mu?
  • Kamera çerçeveden başka bir yerde olsa daha havalı olurdu. Sanatsal bir aynaya bakmak biraz sıkıcı görünüyor
    İkincisini yapıp birinin evine koysanız, bir taraftaki kamera görüntüsünü diğer tarafa gönderseniz nasıl olur? Başka birinin “yansımasını” görürsünüz ve ikinizin aynı anda o resme baktığı küçük anlar oluşur. Birkaç tane yapıp kimi gördüğünüzü asla bilmeyecek hâle de getirebilirsiniz. Çerçeve versiyonu Omegle gibi olur

    • Güzel fikir ama asıl gönderinin yazarının gerçekleştirmeye çalıştığı şeyden tamamen farklı bir nesne
      Bunun daha önce kamusal alan sanat yerleştirmesi olarak yapılmış olduğunu hatırlıyorum. Dünyanın farklı yerlerindeki insanları görüp onlarla etkileşime girmeyi sağlıyordu
      Örneğin şu: https://www.inavateonthenet.net/news/article/vc-art-installa...
  • Birkaç eski tip alçak gerilim montaj braketi ve fırçalı duvar plakası alıp (https://www.homedepot.com/p/Carlon-1-Gang-Non-Metallic-Low-V..., https://www.homedepot.com/p/Commercial-Electric-1-Gang-Brush...) güç kablosunu duvarın içinden geçirirseniz çok daha iyi görünür gibi

  • Gerçekten harika bir fikir; kitaplığıma bir tane koymak isterim
    “Mevcut kurulumun başlıca sorunu düşük kare hızı” denmiş ama ben buna sınırlama değil, özellik demek isterim. Görüntüyü bir an işleyip özümsemek için zaman olması kötü değil
    Hatta yenileme aralığını 5-15 dakikaya çıkarmak ve bir şey değiştiğinde ya da hareket algılandığında yeni bir görüntü yakalayıp üretmesini isterdim

  • Görseller arasına yüksek kare hızlı bir morphing efekti eklemeyi düşündün mü? Algılanan kare hızını artırır ve oldukça havalı görünebilir

    • Tüm görüntüyü yaklaşık 8 saniyede 1 kare hızında inpainting yapan bir çalışmada benim kullandığım teknik buydu. Sonucu, bir sonraki yama hazır olana kadar “eriterek” içeri yedirme şeklinde işledim
      https://hardwork.party/aws-epoch-optimizer/
    • Kareler arasında stil değişimi azalmıyorsa, yüksek kare hızı bence daha da kötü görünebilir. Mevcut videodaki kareler gibi her kare çok değişirse dikkat dağıtır ve ciddi miktarda popping oluşur. Belki de asıl gönderinin yazarı kaotik bir his istiyordur
    • Basit bir crossfade bile yeterli olur
  • “Sanat, teknolojiyi fazlasıyla güçlü biçimde filtreliyor. İkisini birbirinden bağımsızlaştırmak mümkün mü?” yönelimi gerçekten hoşuma gidiyor
    Üretken yapay zeka yaklaşımına karşı çıkma nedenlerini anlıyorum; ama gerçekte bazen harika bir fikir aklıma gelse bile onu bizzat yapacak beceriye sahip olmuyorum. Böyle fikirlerin her biri için aylar, yıllar harcayamam; yetkin bir sanatçıya yüzlerce dolar ödeyecek kadar önemli de olmayabiliyor
    Artık insanların istediklerini üretip keyfini çıkarabileceği bir yol var ve bu iyi bir şey. En azından kişisel kullanımda böyle; ticari amaçlarda ise işler biraz daha karmaşıklaşıyor

    • Bu, hayata geçirilmemiş fikirlerin değeri olduğunu varsayıyor. Aslında fikirlere atfettiğimiz değerin, o fikrin başkalarına yayılmasından geldiğini düşünüyorum. Yeterince radikal fikirleri başkalarının anlaması çoğu zaman zor olduğundan, fikri ortaya atan kişinin bizzat bir örnek üretmesi gerekir
      Bu yüzden biri “iyi fikir” dediğinde, asıl kastı daha çok “iyi iş”tir
      İnsanların yapay zeka çalışmasıyla desteklenmiş fikirleri değerli görüp görmeyeceğini zaman gösterecek. Aradaki ayrımı yapabilecek miyiz ki? Kimse bilmiyor
    • Ama ne yazık ki ikisini ayırmayı başaramamış
      Burada sunulan şeyi herhangi biri yapamaz; gerçekliği büken bir makine yapmak için teknik beceri gerektiğini istemeden de olsa doğrulamış oluyor. Üretilen fotoğraflar sanat değil
  • Mevcut kurulumun başlıca sorunu düşük kare hızıysa, belki de tam tersine bunu 0.3~1 fps civarına daha da düşürmek daha iyi olabilir!