Apakah mungkin untuk melatih jaringan saraf untuk menggambar dengan gaya tertentu?

10

Apakah mungkin untuk melatih jaringan saraf untuk menggambar dengan gaya tertentu? (Jadi itu mengambil gambar dan menggambar ulang dengan gaya yang dilatihnya.)

Apakah ada teknologi yang disetujui untuk hal semacam itu? Saya tahu tentang algoritma DeepArt. Adalah baik untuk mengisi gambar utama dengan pola tertentu (misalnya, gambar vangoghify), tetapi saya mencari sesuatu yang berbeda - yaitu, misalnya, membuat kartun dengan gaya tertentu dari potret input.

zavg
sumber
3
Salah satu hambatan untuk melatih jaring saraf foto-ke-kartun mungkin menemukan set data pelatihan. Sepertinya set data harus berisi foto, dan kartun yang dibuat manusia berdasarkan foto-foto itu. Saya tidak mengetahui adanya set data seperti itu.
Tanner Swett
@TannerSwett Bagaimana menurut Anda berapa banyak gambar yang diperlukan untuk pelatihan semacam itu?
zavg
Saya bukan ahli, jadi saya hanya bisa menebak. Saya pikir Anda membutuhkan setidaknya seribu gambar. Anda mungkin membutuhkan lebih dari itu. Ngomong-ngomong, saya sarankan melihat alat ini: github.com/hardmaru/sketch-rnn Alat itu telah digunakan untuk menghasilkan imitasi karakter Cina; mungkin alat serupa bisa menghasilkan tiruan kartun.
Tanner Swett
Saya mungkin sedikit ketinggalan zaman karena pelatihan NN saya beberapa waktu yang lalu, tetapi jika Anda berpikir hanya melatih jaringan dengan beberapa ribu gambar dan mengharapkannya untuk dapat membuat gambar dengan gaya Anda mungkin menjangkau terlalu jauh - jika Anda berpikir bahwa ini adalah proyek pemula yang baik maka jangan lakukan. Untuk mencapai apa yang Anda gambarkan akan membutuhkan 'banyak' mengutak-atik manual. Pikirkan tentang pengetahuan yang diperlukan untuk menafsirkan gambar dan bukan hanya kecocokan pola.
Peter Scott

Jawaban:

12

Ada makalah yang relevan: LA Gatus, AS Ecker, M Bethge, 2015, A Neural Algorithm of Artistic Style . Mengutip dari abstrak,

Di sini kami memperkenalkan sistem buatan berdasarkan Deep Neural Network yang menciptakan gambar artistik dengan kualitas perseptual tinggi. Sistem menggunakan representasi saraf untuk memisahkan dan menggabungkan kembali konten dan gaya gambar sewenang-wenang, menyediakan algoritma saraf untuk pembuatan gambar artistik.

Berikut ini adalah Gambar 2 dari makalah ini:

masukkan deskripsi gambar di sini

Ada juga implementasi open-source yang sangat populer berdasarkan obor di sini yang cukup mudah digunakan. Lihat tautan untuk contoh lebih lanjut.

Perlu diingat, bahwa perhitungannya berat dan karena itu pemrosesan gambar tunggal adalah ruang lingkup pekerjaan ini.

Sunting: setelah memeriksa proyek DeepArt yang Anda sebutkan, tampaknya ia menggunakan teknik yang sama. Saya tidak yakin mengapa ini bukan yang Anda inginkan, karena konsep transfer gaya bersifat umum.

sascha
sumber
4
Kartun membesar-besarkan dan menyederhanakan fitur apa pun yang mereka gambarkan, menghasilkan bentuk yang sangat berbeda dengan bentuk dalam foto. Saya tidak percaya bahwa gaya transfer jaring saraf yang pernah ada pernah melakukan itu.
Tanner Swett
@TannerSwett Lihat contoh di sini: imgur.com/a/ue6ap . Beberapa dari mereka cukup kartun.
amoeba
@amoeba Mereka memang terlihat kartun, ya, tapi tak satu pun dari mereka memiliki proporsi yang terdistorsi seperti kebanyakan kartun nyata.
Tanner Swett
Kita berbicara tentang transfer gaya di sini. Semua contoh menggunakan gaya a-priori yang dipilih, di mana tidak ada yang kartun (mengapa output harus terlihat kartun, ketika dipelajari di Van Gogh). Mungkin Anda bisa menjalankan proyek open-source (saya tidak punya masalah di masa lalu) dan mencobanya dengan kartun-input.
sascha
7

Ini adalah masalah yang cukup sulit untuk dipecahkan. Anda dapat melihat beberapa contoh di sini tentang bagaimana gaya kartun, misalnya dari Simpson's telah diterapkan pada gambar.

Gambar kartun umumnya tidak memiliki struktur yang memberikan efek artistik ini . Cara termudah untuk mencoba menerapkan ini dalam beberapa cara adalah dengan memiliki pelacak wajah, dan kemudian mencoba untuk meluruskan dua wajah, misalnya wajah kartun dan wajah manusia, dan kemudian menerapkan ini. Itu mungkin membuat Anda di suatu tempat, tetapi mungkin juga terlihat aneh. Anda kemudian dapat membubuhi keterangan landmark dalam gambar untuk membantu lebih lanjut dan melakukan pendaftaran non-kaku sebelum ini. Ini masih agak solusi shitmix, tetapi yang paling dekat saya bisa memikirkan itu bisa bekerja untuk wajah.

Edit:

Komentar oleh @TannerSwett menambahkan sesuatu pada ini, berpotensi untuk mengunjungi beberapa halaman web artis dan mencoba menemukan ilustrasinya dan mencoba mempelajari gaya "mereka". Saya masih tidak berpikir itu akan memuaskan atau menghasilkan data yang cukup, tetapi itu akan menjadi hal yang menarik untuk diuji. Tidak ada solusi yang tersedia secara umum saat ini, tetapi saya pikir itu pasti beberapa orang yang mengerjakan ini, dan kami akan segera melihat hasil yang lebih baik.

Saya pikir mungkin cara untuk pergi bukanlah pendekatan jaringan saraf artistik. Mungkin lebih baik memiliki jaringan yang dapat mengklasifikasikan objek dalam suatu gambar dan kemudian mempelajari korespondensi antara objek dan rekan kartunnya, kemudian memadukan hasilnya dengan cara yang bermakna.

Gumeo
sumber
1
Contoh Simpson itu terlihat sangat mengagumkan bagi saya @Gumeo
FabricioG
1

Seharusnya tidak terlalu rumit untuk dilakukan. Belum membaca artikel yang disebutkan, inilah resep saya:

Encoder Otomatis Variasional

Demo online dengan wajah morphing: http://vdumoulin.github.io/morphing_faces/online_demo.html

dan https://jmetzen.github.io/2015-11-27/vae.html untuk kodez.

Pada dasarnya, ini memberi Anda cara untuk parametrize 'gaya' dalam kasus Anda, misalnya katakanlah seberapa lebar atau tidak jelas seharusnya sapuan kuas. Hal-hal yang tergantung pada gaya tertentu yang ingin Anda tiru.

Pada contoh di atas, wajah 'morphed' atau 'imagined' yang berbeda adalah fungsi dari parameter dalam ruang laten. Pada gambar di bawah itu akan menjadi apa yang Anda dapatkan dengan mengubah barang di tingkat 'kode'.

Inilah ide dasarnya: gambar asli kiri, versi bergaya dari gambar yang sama di sebelah kanan:

masukkan deskripsi gambar di sini

Sekarang, secara teori, jika Anda akan melatih model seperti itu pada gambar normal dan gambar bergaya sebagai target dan menambahkan konvolusi, Anda harus dapat mempelajari filter kernel yang sesuai dengan jenis "sapuan kuas" yang digunakan artis .

Tentu saja, itu berarti bahwa Anda perlu memiliki beberapa contoh gambar dalam versi asli dan bergaya. Dataset semacam itu akan baik untuk disumbangkan ke komunitas - jika Anda akhirnya melakukan ini, saya akan sangat tertarik untuk melihat pekerjaan semacam ini.

Semoga berhasil!

Artikel wiki pada penyandi otomatis akan menjadi titik awal yang baik: https://en.wikipedia.org/wiki/Autoencoder

shuriken x blue
sumber