Giriş
- Canva kullanıcıları, yeni Draw aracıyla yaratıcılıklarını ortaya koyup tasarımlarına özel çizimler ekleyebilir.
- Kullanıcıların fare veya trackpad ile çizdiği basit çizgiler ya da şekiller kusurlu olabilir; bunu telafi etmek için Shape Assist özelliği geliştirildi.
- Shape Assist, makine öğrenimini (ML) kullanarak düzensiz karalamaları pürüzsüz vektör grafiklere dönüştürür.
Tasarım açısından değerlendirmeler
- Özellik geliştirilirken, kullanıcı deneyiminin hem hızlı hem doğru olması için sınıflandırma gecikmesi en yüksek öncelik olarak ele alındı.
- Çözüm tarayıcı içinde dağıtılarak gerçek zamanlı şekil tanıma ve çizim desteği sağlandı.
- İnternet bağlantısı gerektirmediği için çevrimdışı durumlarda da erişilebilirlik garanti edildi.
Veri toplama
- Başarılı bir ML modelinin temeli veri toplamaya dayanır ve farklı kullanıcılardan çizim verileri toplandı.
- Kullanıcıların çizdiği çizgiler, x ve y koordinatlarının dizileri olarak kaydedildi; böylece çeşitli stilleri ve varyasyonları içeren bir veri kümesi oluşturuldu.
- Verilerin koordinatlarla kaydedilmesi, veri ön işleme ve çeşitli veri artırma tekniklerinin uygulanması açısından esneklik sağladı.
Model tasarımı ve eğitimi
- Sayfa yükleme süresini olumsuz etkilemeden istemci tarafında çalışacak bir ML modeli tasarlandı.
- CNN yerine koordinatları doğrudan kullanan RNN denemeleri yapılarak model boyutu en aza indirildi.
- Çeşitli hiperparametreler ayarlanarak modelin en uygun özellikleri belirlendi.
- Kullanıcıların çizim hızı farklarını dikkate almak için, her şekli temsil eden nokta sayısı sabitlendi.
- Önemli ayrıntıları korurken nokta sayısını azaltmak için Ramer-Douglas-Peucker (RDP) algoritmasının değiştirilmiş bir sürümü kullanıldı.
Dağıtımda dikkat edilen noktalar
- Model küçük ve hesaplama açısından basit olduğu için tüm işleme istemci uygulaması içinde yürütülebilir.
- Sunucuya bağlanmaya gerek kalmadan özellik tamamen çevrimdışı çalışır.
Model mimarisi
- Model, bir LSTM katmanı ile Gemm (yoğun ya da tam bağlantılı katman) içeren bir yapıdan oluşur.
- Model yaklaşık 250 kilobayt boyutundadır ve istemcide çalıştırılmak üzere doğrudan Typescript ile uygulandı.
Şekil değiştirme
- Kullanıcının çizdiği şekil belirlendikten sonra, vektör grafik gösterimi ile kullanıcının çizim yolunu hassas biçimde hizalamak için şablon eşleme yaklaşımı kullanılır.
Sonuç
- Shape Assist özelliğini dünya ile paylaşmaktan büyük heyecan duyuluyor ve hem profesyonel tasarımcıların hem de karalama yapan kullanıcıların bu özelliği keyifle kullanması umuluyor.
GN⁺ görüşü
Bu yazıdaki en önemli nokta, Canva'nın tarayıcı içinde çalışan bir makine öğrenimi modeli kullanarak kullanıcıların çizdiği şekilleri doğru biçimde tanıyan ve bunları pürüzsüz vektör grafiklere dönüştüren Shape Assist özelliğini geliştirmiş olmasıdır. Bu özellik, kullanıcıya anında geri bildirim sunar ve internet bağlantısı olmadan da kullanılabildiği için erişilebilirliği artırır. Yazının ilgi çekici olmasının nedeni, teknolojideki ilerlemenin yaratıcı işleri nasıl daha kolay ve daha keyifli hale getirebildiğini göstermesidir.
1 yorum
Hacker News görüşleri
RNN yerine
"$1 unistroke recognizer"algoritması, sorun için basit ve zarif bir çözüm"$1 unistroke recognizer", tek bir örnekle eğitildiğinde bile iyi çalışıyorASML, TSMC ve benzeri şirketlerdeki mühendisler, daha küçük ve daha güçlü çipler üretmek için her gün sıvı kalaya lazer atarak son derece kısa dalga boylarında ışık üretiyor
Fare veya trackpad ile düz bir çizgi çizerken bile düzensiz bir şekil ortaya çıkması kolay
Canva'nın çizgi çizmek için kullandığı kütüphaneye ilgi var
20 yıldan uzun süre önce Macromedia Flash'ta serbest biçimli eğriler çizerken eğrileri yumuşatma özelliğine duyulan hayranlık
Ramer-Douglas-Peucker (RDP) algoritmasının bir varyasyonunu geliştirmeye dair bir yorum
Elle çizilmiş gibi görünen "titrek karalama" sürümü, pürüzsüz vektör grafiklerden daha çekici olabilir
Böyle bir özellik uygulanırken kullanıcıya seçim hakkı verilmeli ve etkin olduğu açıkça anlaşılmalı
Model, önceden tanımlanmış 9 şekli tanıyacak şekilde eğitilmiş
Bu özelliğin açık kaynak olması isteniyor