Διαμόρφωση εικόνων με χρήση νευρωνικών δικτύων: χωρίς μυστικισμό, απλώς ματαίνω. Ostagram: μια υπηρεσία βασισμένη σε νευρωνικό δίκτυο που συνδυάζει φωτογραφίες και στολίδια σε καλλιτεχνικά αριστουργήματα Το νευρωνικό δίκτυο σχεδιάζει εικόνες

Διαμόρφωση εικόνων με χρήση νευρωνικών δικτύων: χωρίς μυστικισμό, απλώς ματαίνω.  Ostagram: μια υπηρεσία βασισμένη σε νευρωνικό δίκτυο που συνδυάζει φωτογραφίες και στολίδια σε καλλιτεχνικά αριστουργήματα Το νευρωνικό δίκτυο σχεδιάζει εικόνες
Διαμόρφωση εικόνων με χρήση νευρωνικών δικτύων: χωρίς μυστικισμό, απλώς ματαίνω. Ostagram: μια υπηρεσία βασισμένη σε νευρωνικό δίκτυο που συνδυάζει φωτογραφίες και στολίδια σε καλλιτεχνικά αριστουργήματα Το νευρωνικό δίκτυο σχεδιάζει εικόνες

Στις πιο συνηθισμένες φωτογραφίες, εμφανίζονται πολλές και όχι πολύ διακριτές οντότητες. Τις περισσότερες φορές, για κάποιο λόγο, τα σκυλιά. Το Διαδίκτυο άρχισε να γεμίζει με τέτοιες εικόνες τον Ιούνιο του 2015, όταν ξεκίνησε το DeepDream της Google, μια από τις πρώτες ανοιχτές υπηρεσίες που βασίζονται σε νευρωνικά δίκτυα για επεξεργασία εικόνας.

Συμβαίνει κάπως έτσι: ο αλγόριθμος αναλύει φωτογραφίες, βρίσκει κομμάτια σε αυτές που του θυμίζουν κάποια οικεία αντικείμενα - και στρεβλώνει την εικόνα σύμφωνα με αυτά τα δεδομένα.

Αρχικά, το έργο δημοσιεύτηκε ως ανοιχτού κώδικα και στη συνέχεια εμφανίστηκαν διαδικτυακές υπηρεσίες στο Διαδίκτυο, που δημιουργήθηκαν σύμφωνα με τις ίδιες αρχές. Ένα από τα πιο βολικά και δημοφιλή είναι το Deep Dream Generator: η επεξεργασία μιας μικρής φωτογραφίας εδώ διαρκεί μόνο περίπου 15 δευτερόλεπτα (προηγουμένως, οι χρήστες έπρεπε να περιμένουν περισσότερο από μία ώρα).

Πώς μαθαίνουν τα νευρωνικά δίκτυα να δημιουργούν τέτοιες εικόνες; Και γιατί, παρεμπιπτόντως, ονομάζονται έτσι;

Με το σχεδιασμό τους, τα νευρωνικά δίκτυα μιμούνται πραγματικά νευρωνικά δίκτυα ενός ζωντανού οργανισμού, αλλά το κάνουν χρησιμοποιώντας μαθηματικούς αλγόριθμους. Έχοντας δημιουργήσει μια βασική δομή, μπορείτε να την εκπαιδεύσετε χρησιμοποιώντας μεθόδους μηχανικής μάθησης. Αν μιλάμε για αναγνώριση προτύπων, τότε χιλιάδες εικόνες πρέπει να περάσουν από το νευρωνικό δίκτυο. Εάν το έργο του νευρωνικού δικτύου είναι διαφορετικό, τότε οι ασκήσεις κατάρτισης θα είναι διαφορετικές.

Οι αλγόριθμοι για το σκάκι, για παράδειγμα, αναλύουν τα σκακιστικά παιχνίδια. Με τον ίδιο τρόπο, ο αλγόριθμος Google DeepMind's AlphaGo στο κινεζικό παιχνίδι go - το οποίο θεωρήθηκε ως σημαντική ανακάλυψη, αφού το go είναι πολύ πιο πολύπλοκο και μη γραμμικό από το σκάκι.

    Μπορείτε να παίξετε με ένα απλοποιημένο μοντέλο νευρωνικού δικτύου και να κατανοήσετε καλύτερα τις αρχές του.

    Το Youtube διαθέτει επίσης μια σειρά ευανάγνωστων κυλίνδρουςγια το πώς λειτουργούν τα νευρωνικά δίκτυα.

Μια άλλη δημοφιλής υπηρεσία είναι το Dreamscope, το οποίο μπορεί όχι μόνο να ονειρεύεται σκύλους, αλλά και να μιμείται διάφορα στυλ ζωγραφικής. Η επεξεργασία εικόνας εδώ είναι επίσης πολύ απλή και γρήγορη (περίπου 30 δευτερόλεπτα).

Προφανώς, το αλγοριθμικό μέρος της υπηρεσίας είναι μια τροποποίηση του προγράμματος "Neural style", το οποίο έχουμε ήδη συζητήσει.

Πιο πρόσφατα, εμφανίστηκε ένα πρόγραμμα που χρωματίζει ρεαλιστικά ασπρόμαυρες εικόνες. Σε προηγούμενες εκδόσεις, παρόμοια προγράμματα είχαν πολύ λιγότερη απόδοση στο έργο τους και θεωρήθηκε μεγάλο επίτευγμα εάν τουλάχιστον το 20% των ανθρώπων δεν μπορούσαν να διακρίνουν μια πραγματική εικόνα από μια εικόνα χρώματος υπολογιστή.

Επιπλέον, ο χρωματισμός εδώ διαρκεί μόνο περίπου 1 λεπτό.

Η ίδια εταιρεία προγραμματιστών ξεκίνησε επίσης μια υπηρεσία που αναγνωρίζει διαφορετικούς τύπους αντικειμένων στις εικόνες.

Αυτές οι υπηρεσίες μπορεί να φαίνονται απλώς διασκεδαστική διασκέδαση, αλλά στην πραγματικότητα, όλα είναι πολύ πιο ενδιαφέροντα. Οι νέες τεχνολογίες εισέρχονται στην πρακτική των ανθρώπινων καλλιτεχνών και αλλάζουν την αντίληψή μας για την τέχνη. Είναι πιθανό ότι σύντομα οι άνθρωποι θα πρέπει να ανταγωνιστούν μηχανές στον τομέα της δημιουργικότητας.

Η διδασκαλία αλγορίθμων για την αναγνώριση προτύπων είναι ένα έργο για το οποίο οι προγραμματιστές της τεχνητής νοημοσύνης αγωνίζονται εδώ και πολύ καιρό. Ως εκ τούτου, τα προγράμματα που χρωματίζουν παλιές εικόνες και ζωγραφίζουν σκύλους στον ουρανό μπορούν να θεωρηθούν μέρος μιας μεγαλύτερης και πιο ενδιαφέρουσας διαδικασίας.

Χαιρετισμούς, Χάμπρ! Πιθανότατα έχετε παρατηρήσει ότι το θέμα της μορφοποίησης φωτογραφιών για διάφορα καλλιτεχνικά στυλ συζητείται ενεργά σε αυτές τις ιστοσελίδες στο Διαδίκτυο. Διαβάζοντας όλα αυτά τα δημοφιλή άρθρα, μπορεί να σκεφτείτε ότι η μαγεία συμβαίνει κάτω από το καπό αυτών των εφαρμογών και το νευρωνικό δίκτυο πραγματικά φαντασιώνει και επανασχεδιάζει την εικόνα από την αρχή. Απλώς έτυχε η ομάδα μας να αντιμετωπίσει ένα παρόμοιο έργο: στο πλαίσιο του εσωτερικού εταιρικού hackathon, κάναμε τη στυλιζαρίσματα βίντεο, επειδή η εφαρμογή για φωτογραφίες ήταν ήδη εκεί. Σε αυτήν την ανάρτηση θα καταλάβουμε πώς αυτό το δίκτυο "ξανασχεδιάζει" εικόνες και θα αναλύσουμε τα άρθρα χάρη στα οποία αυτό έγινε δυνατό. Σας συνιστώ να διαβάσετε την τελευταία ανάρτηση πριν διαβάσετε αυτό το υλικό και γενικά με τα βασικά των συνελικτικών νευρωνικών δικτύων. Θα βρείτε μερικούς τύπους, κάποιο κώδικα (θα δώσω παραδείγματα στο Theano και το Lasagne), καθώς και πολλές εικόνες. Αυτή η ανάρτηση οργανώνεται με χρονολογική σειρά της εμφάνισης των άρθρων και, κατά συνέπεια, των ίδιων των ιδεών. Μερικές φορές θα το αραιώσω με την πρόσφατη εμπειρία μας. Εδώ είναι ένα αγόρι από την κόλαση για την προσοχή σας.


Οπτικοποίηση και Κατανόηση των Συνεργατικών Δικτύων (28 Νοεμβρίου 2013)

Πρώτα απ 'όλα, αξίζει να αναφερθεί το άρθρο στο οποίο οι συγγραφείς μπόρεσαν να δείξουν ότι ένα νευρωνικό δίκτυο δεν είναι ένα μαύρο κουτί, αλλά ένα απολύτως ερμηνεύσιμο πράγμα (παρεμπιπτόντως, σήμερα αυτό μπορεί να ειπωθεί όχι μόνο για συνελικτικά δίκτυα για υπολογιστές όραμα). Οι συγγραφείς αποφάσισαν να μάθουν πώς να ερμηνεύουν την ενεργοποίηση των νευρώνων των κρυφών στρωμάτων, για αυτό χρησιμοποίησαν ένα αποεπαναστατικό νευρωνικό δίκτυο (deconvnet), που προτάθηκε αρκετά χρόνια νωρίτερα (παρεμπιπτόντως, από τους ίδιους Seiler και Fergus, οι οποίοι είναι οι συγγραφείς αυτού του δημοσίευση). Ένα αποεπαναστατικό δίκτυο είναι στην πραγματικότητα το ίδιο δίκτυο με περιστροφές και ομάδες, αλλά εφαρμόζεται με αντίστροφη σειρά. Στην αρχική εργασία στο deconvnet, το δίκτυο χρησιμοποιήθηκε σε κατάσταση εκμάθησης χωρίς επίβλεψη για τη δημιουργία εικόνων. Αυτή τη φορά, οι συγγραφείς το εφάρμοσαν απλώς για ένα πέρασμα προς τα πίσω από τα χαρακτηριστικά που αποκτήθηκαν μετά από ένα εμπρός πέρασμα από το δίκτυο στην αρχική εικόνα. Ως αποτέλεσμα, λαμβάνεται μια εικόνα που μπορεί να ερμηνευτεί ως σήμα που προκάλεσε αυτήν την ενεργοποίηση στους νευρώνες. Φυσικά, τίθεται το ερώτημα: πώς να κάνετε μια αντίστροφη διέλευση από τη συνέλιξη και τη μη γραμμικότητα; Και ακόμη περισσότερο μέσω της μέγιστης συγκέντρωσης, αυτό σίγουρα δεν είναι μια ανεστραμμένη λειτουργία. Ας ρίξουμε μια ματιά και στα τρία συστατικά.

Αντίστροφη ReLu

Στα συνελικτικά δίκτυα, η λειτουργία ενεργοποίησης χρησιμοποιείται συχνά ReLu (x) = max (0, x)που καθιστά όλες τις ενεργοποιήσεις στο επίπεδο μη αρνητικές. Κατά συνέπεια, όταν περνάμε πίσω από τη μη γραμμικότητα, είναι επίσης απαραίτητο να έχουμε μη αρνητικά αποτελέσματα. Για αυτό, οι συγγραφείς προτείνουν τη χρήση του ίδιου ReLu. Από την άποψη της αρχιτεκτονικής Theano, πρέπει να παρακάμψετε τη λειτουργία κλίσης λειτουργίας (το απείρως πολύτιμο σημειωματάριο βρίσκεται στις συνταγές λαζάνια, από εκεί θα λάβετε τις λεπτομέρειες για το τι είναι η κατηγορία ModifiedBackprop).

Κατηγορία ZeilerBackprop (ModifiedBackprop): def grad (self, inputs, out_grads): (inp,) = εισόδους (grd,) = out_grads #return (grd * (grd> 0) .astype (inp.dtype),) # ρητά διορθώστε return (self.nonlinearity (grd),) # χρησιμοποιήστε τη δεδομένη μη γραμμικότητα

Αντίστροφη συνέλιξη

Είναι λίγο πιο περίπλοκο εδώ, αλλά όλα είναι λογικά: αρκεί να εφαρμόσουμε τη μεταφερόμενη έκδοση του ίδιου πυρήνα μετατροπής, αλλά στις εξόδους από το αντίστροφο ReLu αντί για το προηγούμενο επίπεδο που χρησιμοποιήθηκε στο μπροστινό πάσο. Αλλά φοβάμαι ότι στα λόγια δεν είναι τόσο προφανές, ας δούμε την απεικόνιση αυτής της διαδικασίας (θα βρείτε ακόμη περισσότερες απεικονίσεις στρεβλώσεων).


Συνέλιξη με βήμα = 1

Συνέλιξη με βήμα = 1 Αντίστροφη έκδοση

Συνέλιξη με βήμα = 2

Συνέλιξη με βήμα = 2 Αντίστροφη έκδοση

Αντίστροφη συγκέντρωση

Αυτή η λειτουργία (σε αντίθεση με τις προηγούμενες), σε γενικές γραμμές, δεν είναι αναστρέψιμη. Ωστόσο, θα θέλαμε να περάσουμε τα μέγιστα κατά κάποιο τρόπο κατά τη διάρκεια της διαδρομής της επιστροφής. Για αυτό, οι συγγραφείς προτείνουν τη χρήση ενός χάρτη για το πού ήταν το μέγιστο κατά τη διάρκεια του άμεσου περάσματος (διακόπτες μέγιστης θέσης). Κατά την αντίστροφη διέλευση, το σήμα εισόδου μετατρέπεται στο unpool έτσι ώστε να διατηρηθεί περίπου η δομή του αρχικού σήματος, είναι πραγματικά πιο εύκολο να το δούμε παρά να το περιγράψουμε.



Αποτέλεσμα

Ο αλγόριθμος απεικόνισης είναι εξαιρετικά απλός:

  1. Κάντε μια ευθεία πάσα.
  2. Επιλέξτε το επίπεδο που μας ενδιαφέρει.
  3. Διορθώστε την ενεργοποίηση ενός ή περισσότερων νευρώνων και επαναφέρετε τους υπόλοιπους.
  4. Βγάλτε το αντίθετο συμπέρασμα.

Κάθε γκρι τετράγωνο στην παρακάτω εικόνα αντιστοιχεί σε μια απεικόνιση ενός φίλτρου (το οποίο χρησιμοποιείται για τη σύμπτυξη) ή των βαρών ενός νευρώνα, και κάθε έγχρωμη εικόνα είναι εκείνο το μέρος της αρχικής εικόνας που ενεργοποιεί τον αντίστοιχο νευρώνα. Για λόγους σαφήνειας, οι νευρώνες μέσα σε ένα στρώμα ομαδοποιούνται σε θεματικές ομάδες. Σε γενικές γραμμές, ξαφνικά αποδείχθηκε ότι το νευρωνικό δίκτυο μαθαίνει ακριβώς αυτό για το οποίο έγραψαν οι Hubel και Weisel στη δουλειά τους για τη δομή του οπτικού συστήματος, για το οποίο τους απονεμήθηκε το Νόμπελ το 1981. Χάρη σε αυτό το άρθρο, έχουμε μια οπτική αναπαράσταση του τι μαθαίνει το νευρωνικό δίκτυο σε κάθε στρώμα. Είναι αυτή η γνώση που θα επιτρέψει αργότερα να χειριστεί το περιεχόμενο της δημιουργούμενης εικόνας, αλλά αυτό είναι ακόμα πολύ μακριά · τα επόμενα χρόνια δαπανήθηκαν για τη βελτίωση των μεθόδων "trepanning" νευρωνικών δικτύων. Επιπλέον, οι συντάκτες του άρθρου πρότειναν έναν τρόπο ανάλυσης του τρόπου με τον οποίο θα χτιστεί καλύτερα η αρχιτεκτονική ενός συνελικτικού νευρωνικού δικτύου για να επιτευχθούν τα καλύτερα αποτελέσματα (αν και δεν κέρδισαν το ImageNet 2013, αλλά έφτασαν στην κορυφή. UPD: αποδεικνύεται ότι κέρδισαν, Clarifai είναι).


Οπτικοποίηση χαρακτηριστικών


Εδώ είναι ένα παράδειγμα απεικόνισης των ενεργοποιήσεων χρησιμοποιώντας το deconvnet, σήμερα αυτό το αποτέλεσμα μοιάζει έτσι, αλλά τότε ήταν μια σημαντική ανακάλυψη.


Χάρτες Saliency χρησιμοποιώντας deconvnet

Deep Inside Convolutional Networks: Visualizing Model Classification Model and Saliency Maps (19 Απριλίου 2014)

Αυτό το άρθρο είναι αφιερωμένο στη μελέτη μεθόδων οπτικοποίησης της γνώσης που περιέχονται σε ένα συνελικτικό νευρωνικό δίκτυο. Οι συγγραφείς προτείνουν δύο μεθόδους απόδοσης με βάση την κλίση κλίσης.

Οπτικοποίηση μοντέλου κλάσης

Φανταστείτε λοιπόν ότι έχουμε ένα εκπαιδευμένο νευρωνικό δίκτυο για να λύσουμε ένα πρόβλημα ταξινόμησης για έναν συγκεκριμένο αριθμό κλάσεων. Ας υποδείξουμε την τιμή ενεργοποίησης του νευρώνα εξόδου, η οποία αντιστοιχεί στην κλάση ντο... Στη συνέχεια, το ακόλουθο πρόβλημα βελτιστοποίησης μας δίνει ακριβώς την εικόνα που μεγιστοποιεί την επιλεγμένη κλάση:



Αυτή η εργασία είναι εύκολο να επιλυθεί χρησιμοποιώντας το Theano. Συνήθως ζητάμε από το πλαίσιο να πάρει το παράγωγο από τις παραμέτρους του μοντέλου, αλλά αυτή τη φορά υποθέτουμε ότι οι παράμετροι είναι σταθερές και το παράγωγο λαμβάνεται από την εικόνα εισόδου. Η ακόλουθη συνάρτηση επιλέγει τη μέγιστη τιμή του επιπέδου εξόδου και επιστρέφει μια συνάρτηση που υπολογίζει το παράγωγο από την εικόνα εισόδου.


def compile_saliency_function (net): "" "Συντάσσει μια συνάρτηση για να υπολογίσει τους χάρτες αξιοπιστίας και τις προβλεπόμενες κλάσεις για μια δεδομένη μικρή παρτίδα εικόνων εισόδου." "" inp = net ["input"]. input_var outp = lasagne.layers.get_output (net ["fc8"], deterministic = True) max_outp = T.max (outp, axis = 1) saliability = theano.grad (max_outp.sum (), wrt = inp) max_class = T.argmax (outp, axis = 1) επιστροφή theano.function (,)

Πιθανότατα έχετε δει περίεργα πρόσωπα σκύλων στο διαδίκτυο - DeepDream. Στο αρχικό άρθρο, οι συγγραφείς χρησιμοποιούν την ακόλουθη διαδικασία για να δημιουργήσουν εικόνες που μεγιστοποιούν την επιλεγμένη τάξη:

  1. Αρχικοποιήστε την αρχική εικόνα με μηδενικά.
  2. Υπολογίστε την τιμή του παραγώγου από αυτήν την εικόνα.
  3. Αλλάξτε την εικόνα προσθέτοντας την εικόνα που προκύπτει από το παράγωγο σε αυτήν.
  4. Επιστρέψτε στο βήμα 2 ή βγείτε από το βρόχο.

Οι εικόνες που προκύπτουν είναι:




Τι γίνεται αν προετοιμάσετε την πρώτη εικόνα με πραγματική φωτογραφία και ξεκινήσετε την ίδια διαδικασία; Αλλά σε κάθε επανάληψη, θα επιλέξουμε μια τυχαία κλάση, θα επαναφέρουμε την υπόλοιπη και θα υπολογίσουμε την τιμή του παραγώγου, τότε έχουμε ένα τόσο βαθύ όνειρο.


Προσοχή 60 MB


Γιατί υπάρχουν τόσα πολλά πρόσωπα και μάτια σκύλων; Είναι απλό: υπάρχουν σχεδόν 200 σκυλιά στην εικόνα των 1000 τάξεων, έχουν μάτια. Υπάρχουν επίσης πολλές τάξεις όπου απλώς υπάρχουν άνθρωποι.

Class Saliency Extraction

Εάν αυτή η διαδικασία αρχικοποιηθεί με μια πραγματική φωτογραφία, σταματήσει μετά την πρώτη επανάληψη και σχεδιαστεί η τιμή του παραγώγου, τότε θα έχουμε μια τέτοια εικόνα, προσθέτοντας ποια στην αρχική, θα αυξήσουμε την τιμή ενεργοποίησης της επιλεγμένης κλάσης.


Χάρτες Saliency χρησιμοποιώντας παράγωγο


Και πάλι το αποτέλεσμα είναι "έτσι-έτσι". Είναι σημαντικό να σημειωθεί ότι αυτός είναι ένας νέος τρόπος οπτικοποίησης των ενεργοποιήσεων (τίποτα δεν μας εμποδίζει να καθορίσουμε τις τιμές των ενεργοποιήσεων όχι στο τελευταίο επίπεδο, αλλά γενικά σε οποιοδήποτε επίπεδο του δικτύου και να πάρουμε το παράγωγο από την εικόνα εισόδου) Το Το επόμενο άρθρο θα συνδυάσει και τις δύο προηγούμενες προσεγγίσεις και θα μας δώσει ένα εργαλείο για τον τρόπο προσαρμογής της μεταφοράς στυλ, το οποίο θα περιγραφεί αργότερα.

Επιδιώκοντας την απλότητα: Το σύνολο της μετατροπής του δικτύου (13 Απριλίου 2015)

Σε γενικές γραμμές, αυτό το άρθρο δεν αφορά την απεικόνιση, αλλά το γεγονός ότι η αντικατάσταση της συγκέντρωσης με μια συνέλιξη με μεγάλο βήμα δεν οδηγεί σε απώλεια ποιότητας. Αλλά ως υποπροϊόν της έρευνάς τους, οι συγγραφείς πρότειναν έναν νέο τρόπο απεικόνισης χαρακτηριστικών, τον οποίο χρησιμοποίησαν για να αναλύσουν με μεγαλύτερη ακρίβεια όσα μαθαίνει το μοντέλο. Η ιδέα τους είναι η εξής: αν πάρουμε απλώς το παράγωγο, τότε κατά την αποσυγκέντρωση εκείνα τα χαρακτηριστικά που ήταν μικρότερα από το μηδέν στην εικόνα εισόδου δεν επιστρέφουν (χρησιμοποιώντας ReLu για την εικόνα εισόδου). Και αυτό οδηγεί στο γεγονός ότι εμφανίζονται αρνητικές τιμές στην πολλαπλασιαζόμενη πίσω εικόνα. Από την άλλη πλευρά, εάν χρησιμοποιείτε deconvnet, τότε ένα άλλο ReLu λαμβάνεται από το παράγωγο ReLu - αυτό σας επιτρέπει να μην παραλείψετε τις αρνητικές τιμές πίσω, αλλά όπως είδατε, το αποτέλεσμα είναι "έτσι". Τι γίνεται όμως αν συνδυάσετε αυτές τις δύο μεθόδους;




class GuidedBackprop (ModifiedBackprop): def grad (self, inputs, out_grads): (inp,) = εισόδους (grd,) = out_grads dtype = inp.dtype return (grd * (inp> 0) .astype (dtype) * (grd > 0) .astype (dtype),)

Στη συνέχεια, έχετε μια εντελώς καθαρή και ερμηνεύσιμη εικόνα.


Χάρτες Saliency χρησιμοποιώντας Guided Backpropagation

Πήγαινε βαθύτερα

Τώρα ας το σκεφτούμε, τι μας δίνει; Επιτρέψτε μου να σας υπενθυμίσω ότι κάθε στρεπτικό στρώμα είναι μια συνάρτηση που λαμβάνει έναν τρισδιάστατο τανυστή ως είσοδο και εξάγει επίσης έναν τρισδιάστατο τανυστή, ίσως διαφορετικής διάστασης ρεΧ wΧ η; ρε epth είναι ο αριθμός των νευρώνων στο στρώμα, καθένας από τους οποίους δημιουργεί έναν χάρτη χαρακτηριστικών μεγέθους w igth x ηοκτώ.


Ας δοκιμάσουμε το ακόλουθο πείραμα σε ένα δίκτυο VGG-19:



conv1_2

Δεν βλέπεις σχεδόν τίποτα, tk. η περιοχή υποδοχής είναι πολύ μικρή, αυτή είναι η δεύτερη σύμπτυξη 3x3, αντίστοιχα, η συνολική επιφάνεια είναι 5x5. Αλλά αν κάνουμε μεγέθυνση, μπορούμε να δούμε ότι η λειτουργία είναι απλώς ένας ανιχνευτής κλίσης.




conv3_3


conv4_3


conv5_3


πισίνα 5


Τώρα ας φανταστούμε ότι αντί για το μέγιστο στην πλάκα, θα πάρουμε το παράγωγο της τιμής του αθροίσματος όλων των στοιχείων της πλάκας από την εικόνα εισόδου. Τότε η προφανώς δεκτική περιοχή της ομάδας των νευρώνων θα καλύψει ολόκληρη την εικόνα εισόδου. Για τα πρώτα επίπεδα, θα δούμε φωτεινούς χάρτες, από τους οποίους συμπεραίνουμε ότι πρόκειται για ανιχνευτές χρωμάτων, μετά κλίσεις, έπειτα περιγράμματα και ούτω καθεξής προς την κατεύθυνση της περιπλοκής των μοτίβων. Όσο πιο βαθύ είναι το στρώμα, τόσο πιο αμυδρή είναι η εικόνα. Αυτό εξηγείται από το γεγονός ότι τα βαθύτερα στρώματα έχουν ένα πιο περίπλοκο μοτίβο που εντοπίζουν και ένα πολύπλοκο μοτίβο εμφανίζεται λιγότερο συχνά από ένα απλό, και ως εκ τούτου ο χάρτης ενεργοποίησης εξασθενεί. Η πρώτη μέθοδος είναι κατάλληλη για την κατανόηση στρωμάτων με πολύπλοκα μοτίβα και η δεύτερη είναι απλή.


conv1_1


conv2_2


conv4_3


Μπορείτε να κατεβάσετε μια πληρέστερη βάση δεδομένων ενεργοποιήσεων για πολλές εικόνες και.

Ένας νευρωνικός αλγόριθμος καλλιτεχνικού στυλ (2 Σεπ 2015)

Έτσι, έχουν περάσει μερικά χρόνια από την πρώτη επιτυχημένη τριπλή λειτουργία του νευρωνικού δικτύου. Εμείς (με την έννοια της ανθρωπότητας) έχουμε ένα ισχυρό εργαλείο στα χέρια μας που μας επιτρέπει να καταλάβουμε τι μαθαίνει το νευρωνικό δίκτυο και επίσης να αφαιρέσουμε αυτό που δεν θα θέλαμε πραγματικά να μάθει. Οι συντάκτες αυτού του άρθρου αναπτύσσουν μια μέθοδο που επιτρέπει σε μια εικόνα να δημιουργήσει παρόμοιο χάρτη ενεργοποίησης για κάποια εικόνα -στόχο, και ίσως ακόμη και περισσότερες από μία - αυτή είναι η βάση του στυλ. Παρέχουμε λευκό θόρυβο στην είσοδο και με παρόμοια επαναληπτική διαδικασία όπως στο βαθύ όνειρο, φέρνουμε αυτήν την εικόνα σε μια με χάρτες χαρακτηριστικών παρόμοιους με την εικόνα -στόχο.

Απώλεια περιεχομένου

Όπως ήδη αναφέρθηκε, κάθε στρώμα του νευρωνικού δικτύου παράγει έναν τρισδιάστατο τανυστή κάποιας διάστασης.




Ας υποδείξουμε την έξοδο Εγώ-th στρώμα από την είσοδο ως. Στη συνέχεια, αν ελαχιστοποιήσουμε το σταθμισμένο άθροισμα των υπολειμμάτων μεταξύ της εικόνας εισόδου και κάποια εικόνα που στοχεύουμε ντο, τότε παίρνετε ακριβώς αυτό που χρειάζεστε. Πιθανώς.



Για πειράματα με αυτό το άρθρο, μπορείτε να χρησιμοποιήσετε αυτόν τον μαγικό φορητό υπολογιστή, οι υπολογισμοί πραγματοποιούνται εκεί (τόσο στη GPU όσο και στην CPU). Η GPU χρησιμοποιείται για τον υπολογισμό των χαρακτηριστικών του νευρωνικού δικτύου και της τιμής της συνάρτησης κόστους. Ο Θεανό εκδίδει μια συνάρτηση που μπορεί να υπολογίσει τη κλίση της συνάρτησης αντικειμένου eval_gradμε είσοδο εικόνας Χ... Αυτό στη συνέχεια τροφοδοτείται σε lbfgs και ξεκινά μια επαναληπτική διαδικασία.


# Αρχικοποίηση με εικόνα θορύβου generated_image.set_value (floatX (np.random.uniform (-128, 128, (1, 3, IMAGE_W, IMAGE_W))))) x0 = generated_image.get_value (). Astype ("float64") xs = xs.append (x0) # Optimize, αποθηκεύοντας το αποτέλεσμα περιοδικά για i στο εύρος (8): print (i) scipy.optimize.fmin_l_bfgs_b (eval_loss, x0.flatten (), fprime = eval_grad, maxfun = 40) x0 = generated_image.get_value (). astype ("float64") xs.append (x0)

Εάν εκτελέσουμε τη βελτιστοποίηση μιας τέτοιας συνάρτησης, τότε θα έχουμε γρήγορα μια εικόνα παρόμοια με αυτήν -στόχου. Τώρα είμαστε σε θέση να αναδημιουργήσουμε εικόνες από λευκό θόρυβο που μοιάζουν με κάποια εικόνα περιεχομένου.


Απώλεια περιεχομένου: conv4_2



Διαδικασία βελτιστοποίησης




Είναι εύκολο να δείτε δύο χαρακτηριστικά της εικόνας που προκύπτει:

  • τα χρώματα χάθηκαν - αυτό είναι το αποτέλεσμα του γεγονότος ότι σε ένα συγκεκριμένο παράδειγμα χρησιμοποιήθηκε μόνο το στρώμα conv4_2 (ή, με άλλα λόγια, το βάρος w μαζί του ήταν μηδενικό και για τα υπόλοιπα στρώματα ήταν μηδέν). Όπως θυμάστε, είναι τα πρώτα επίπεδα που περιέχουν πληροφορίες σχετικά με τα χρώματα και τις μεταβάσεις κλίσης, και τα μεταγενέστερα περιέχουν πληροφορίες για μεγαλύτερες λεπτομέρειες, τις οποίες παρατηρούμε - τα χρώματα χάνονται, αλλά το περιεχόμενο δεν είναι.
  • κάποια σπίτια "έφυγαν", δηλ. οι ευθείες γραμμές είναι ελαφρώς καμπύλες - αυτό συμβαίνει γιατί όσο βαθύτερο είναι το στρώμα, τόσο λιγότερες πληροφορίες περιέχει για τη χωρική θέση του χαρακτηριστικού (το αποτέλεσμα της χρήσης περιστροφών και δεξαμενών).

Η προσθήκη πρώτων στρωμάτων διορθώνει αμέσως την κατάσταση χρώματος.


Απώλεια περιεχομένου: conv1_1, conv2_1, conv4_2


Ας ελπίσουμε ότι σε αυτό το σημείο, αισθάνεστε ότι μπορείτε να ελέγξετε τι ανασχεδιάζεται στην εικόνα λευκού θορύβου.

Απώλεια στυλ

Και τώρα φτάσαμε στο πιο ενδιαφέρον πράγμα: πώς μπορούμε να μεταφέρουμε το στυλ; Τι είναι το στυλ; Προφανώς, το στυλ δεν είναι κάτι που βελτιστοποιήσαμε στην απώλεια περιεχομένου, επειδή περιέχει πολλές πληροφορίες σχετικά με τις χωρικές θέσεις των χαρακτηριστικών. Έτσι, το πρώτο πράγμα που πρέπει να κάνετε είναι να αφαιρέσετε με κάποιο τρόπο αυτές τις πληροφορίες από τις προβολές που λαμβάνονται σε κάθε επίπεδο.


Ο συγγραφέας προτείνει την ακόλουθη μέθοδο. Παίρνουμε έναν τεντωτήρα στην έξοδο από ένα συγκεκριμένο στρώμα, τον ξεδιπλώνουμε κατά μήκος των χωρικών συντεταγμένων και υπολογίζουμε τον πίνακα συνδιακύμανσης μεταξύ των ζαριών. Ας υποδείξουμε αυτόν τον μετασχηματισμό ως σολ... Τι έχουμε κάνει στην πραγματικότητα; Μπορούμε να πούμε ότι υπολογίσαμε πόσο συχνά τα χαρακτηριστικά μέσα στην πλάκα βρίσκονται σε ζεύγη ή, με άλλα λόγια, προσεγγίσαμε την κατανομή των χαρακτηριστικών στις πλάκες με μια πολλαπλή μεταβλητή κανονική κατανομή.




Στη συνέχεια, το Style Loss εισάγεται ως εξής, όπου μικρό- αυτή είναι μια εικόνα με στυλ:



Ας προσπαθήσουμε για τον Vincent; Κατ 'αρχήν, θα έχουμε κάτι αναμενόμενο - θόρυβος στο στυλ του Βαν Γκογκ, οι πληροφορίες σχετικά με τη χωρική διάταξη των χαρακτηριστικών χάνονται εντελώς.


Βικέντιος




Τι γίνεται όμως αν αντί για στυλιζαρισμένη εικόνα βάλετε μια φωτογραφία; Θα αποκτήσετε ήδη γνωστά χαρακτηριστικά, οικεία χρώματα, αλλά η χωρική θέση χάνεται εντελώς.


Φωτογραφία σε στιλ απώλειας


Σίγουρα αναρωτηθήκατε γιατί υπολογίζουμε τον πίνακα συνδιακύμανσης και όχι κάτι άλλο; Άλλωστε, υπάρχουν πολλοί τρόποι για το πώς να συγκεντρωθούν χαρακτηριστικά, έτσι ώστε να χαθούν οι χωρικές συντεταγμένες. Αυτή είναι πραγματικά μια ανοιχτή ερώτηση και αν πάρετε κάτι πολύ απλό, το αποτέλεσμα δεν θα αλλάξει δραματικά. Ας το ελέγξουμε αυτό, δεν θα υπολογίσουμε τον πίνακα συνδιακύμανσης, αλλά απλώς τη μέση τιμή κάθε πλάκας.




απλή απώλεια στυλ

Combo Loss

Φυσικά, υπάρχει η επιθυμία να αναμειχθούν αυτές οι δύο λειτουργίες κόστους. Στη συνέχεια, θα δημιουργήσουμε μια τέτοια εικόνα από λευκό θόρυβο που θα αποθηκεύονται σε αυτήν χαρακτηριστικά από την εικόνα περιεχομένου (τα οποία συνδέονται με τις χωρικές συντεταγμένες) και θα υπάρχουν επίσης χαρακτηριστικά "στυλ" που δεν συνδέονται με χωρικές συντεταγμένες, π.χ. ελπίζουμε ότι οι λεπτομέρειες της εικόνας περιεχομένου παραμένουν άθικτες, αλλά επανασχεδιάζονται με το επιθυμητό στυλ.



Στην πραγματικότητα, υπάρχει και ένας κανονικοποιητής, αλλά θα τον παραλείψουμε για απλότητα. Μένει να απαντήσουμε στην ακόλουθη ερώτηση: ποια επίπεδα (βάρη) πρέπει να χρησιμοποιηθούν για βελτιστοποίηση; Και φοβάμαι ότι δεν έχω απάντηση σε αυτήν την ερώτηση, ούτε οι συντάκτες του άρθρου. Έχουν μια πρόταση να χρησιμοποιήσουν τα παρακάτω, αλλά αυτό δεν σημαίνει ότι ένας άλλος συνδυασμός θα λειτουργήσει χειρότερα, πολύ μεγάλος χώρος αναζήτησης. Ο μόνος κανόνας που προκύπτει από την κατανόηση του μοντέλου: δεν έχει νόημα η λήψη παρακείμενων στρωμάτων, αφού τα σημάδια τους δεν θα διαφέρουν πολύ μεταξύ τους, επομένως, ένα στρώμα από κάθε ομάδα μετατροπής * _1 προστίθεται στο στυλ.


# Ορίστε απώλειες συνάρτησης απώλειας = # απώλειες απώλειας περιεχομένου.προσθέστε (0.001 * απώλεια_κωδ. (Δυνατότητες φωτογραφίας, gen_features, "conv4_2")) # απώλεια στιλ απώλειας.προσθήκη (0.2e6 * style_loss (art_features, gen_features, "conv1_1")) απώλειες.append . ) loss.append (0.2e6 * style_loss (art_features, gen_features, "conv5_1")) # total variation ποινή.append (0.1e-7 * total_variation_loss (generated_image)) total_loss = άθροισμα (απώλειες)

Το τελικό μοντέλο μπορεί να αναπαρασταθεί ως εξής.




Και εδώ είναι το αποτέλεσμα των σπιτιών με τον Βαν Γκογκ.



Προσπαθεί να ελέγξει τη διαδικασία

Ας θυμηθούμε τα προηγούμενα μέρη, ήδη δύο χρόνια πριν από το τρέχον άρθρο, άλλοι επιστήμονες έχουν ερευνήσει τι πραγματικά μαθαίνει το νευρωνικό δίκτυο. Οπλισμένοι με όλα αυτά τα άρθρα, μπορείτε να δημιουργήσετε οπτικοποιήσεις χαρακτηριστικών διαφορετικών στυλ, διαφορετικών εικόνων, διαφορετικών αναλύσεων και μεγεθών και να προσπαθήσετε να καταλάβετε ποια επίπεδα θα λάβετε με ποιο βάρος. Αλλά ακόμη και η επαναζύγιση των στρωμάτων δεν δίνει πλήρη έλεγχο του τι συμβαίνει. Το πρόβλημα εδώ είναι πιο εννοιολογικό: βελτιστοποιούμε τη λάθος λειτουργία! Πώς, ρωτάς; Η απάντηση είναι απλή: αυτή η συνάρτηση ελαχιστοποιεί τα υπολείμματα ... καταλαβαίνετε την ιδέα. Αλλά αυτό που πραγματικά θέλουμε είναι να μας αρέσει η εικόνα. Ο κυρτός συνδυασμός λειτουργιών απώλειας περιεχομένου και στυλ δεν είναι ένα μέτρο αυτού που το μυαλό μας πιστεύει ότι είναι όμορφο. Παρατηρήθηκε ότι εάν συνεχίσετε το στυλ για πολύ καιρό, τότε η λειτουργία κόστους μειώνεται φυσικά όλο και χαμηλότερα, αλλά η αισθητική ομορφιά του αποτελέσματος πέφτει απότομα.




Λοιπόν, εντάξει, υπάρχει άλλο πρόβλημα. Ας υποθέσουμε ότι βρήκαμε ένα επίπεδο που εξάγει τις δυνατότητες που χρειαζόμαστε. Ας πούμε ότι μερικές υφές είναι τριγωνικές. Αλλά αυτό το επίπεδο εξακολουθεί να περιέχει πολλά άλλα χαρακτηριστικά, για παράδειγμα, κύκλους, τα οποία πραγματικά δεν θέλουμε να δούμε στην εικόνα που προκύπτει. Σε γενικές γραμμές, εάν ήταν δυνατό να προσληφθούν ένα εκατομμύριο Κινέζοι, τότε θα ήταν δυνατό να απεικονίσουμε όλα τα χαρακτηριστικά της εικόνας στυλ και με ωμή δύναμη να σημειώσουμε μόνο αυτά που χρειαζόμαστε και να τα συμπεριλάβουμε μόνο στη συνάρτηση κόστους. Αλλά για ευνόητους λόγους, δεν είναι τόσο εύκολο. Τι γίνεται όμως αν απλώς αφαιρέσουμε τους κύκλους που δεν θέλουμε να δούμε στο αποτέλεσμα από την στιλισμένη εικόνα; Στη συνέχεια, η ενεργοποίηση των αντίστοιχων νευρώνων, οι οποίοι αντιδρούν στους κύκλους, απλά δεν θα λειτουργήσει. Και, φυσικά, τότε αυτό δεν θα εμφανιστεί στην εικόνα που προκύπτει. Είναι το ίδιο με τα λουλούδια. Φανταστείτε μια ζωντανή εικόνα με πολλά χρώματα. Η κατανομή των χρωμάτων θα λερωθεί πολύ σε ολόκληρο τον χώρο, το ίδιο θα είναι και η κατανομή της εικόνας που προκύπτει, αλλά κατά τη διαδικασία βελτιστοποίησης, οι κορυφές που ήταν στο πρωτότυπο πιθανότατα θα χαθούν. Αποδείχθηκε ότι η απλή μείωση του βάθους bit της παλέτας χρωμάτων λύνει αυτό το πρόβλημα. Η πυκνότητα των περισσότερων χρωμάτων θα είναι κοντά στο μηδέν και θα υπάρχουν μεγάλες κορυφές σε αρκετές περιοχές. Έτσι, χειριζόμενοι το πρωτότυπο στο Photoshop, χειριζόμαστε τις δυνατότητες που εξάγονται από την εικόνα. Είναι ευκολότερο για ένα άτομο να εκφράζει οπτικά τις επιθυμίες του παρά να προσπαθεί να τις διατυπώσει στη γλώσσα των μαθηματικών. Αντίο. Ως αποτέλεσμα, οι σχεδιαστές και οι διαχειριστές, οπλισμένοι με Photoshop και σενάρια για την απεικόνιση δυνατοτήτων, πέτυχαν αποτελέσματα τρεις φορές πιο γρήγορα από ό, τι έκαναν μαθηματικοί και προγραμματιστές.


Ένα παράδειγμα χειρισμού του χρώματος και του μεγέθους των χαρακτηριστικών


Or μπορείτε να πάρετε μια απλή εικόνα ως στυλ.



Αποτελέσματα








Και εδώ είναι ένα vidosik, αλλά μόνο με την επιθυμητή υφή

Textures Networks: Feed-forward Synthesis of Textures and Stylized Images (10 Μαρ 2016)

Φαίνεται ότι ήταν δυνατό να σταματήσουμε σε αυτό, αν όχι μια απόχρωση. Ο παραπάνω αλγόριθμος στυλ διαρκεί πολύ. Εάν λάβουμε μια εφαρμογή όπου το lbfgs εκτελείται στην CPU, τότε η διαδικασία διαρκεί περίπου πέντε λεπτά. Εάν ξαναγράψουμε έτσι ώστε η βελτιστοποίηση να πάει στη GPU, τότε η διαδικασία θα διαρκέσει 10-15 δευτερόλεπτα. Αυτό δεν είναι καλό. Perhapsσως οι συντάκτες αυτού και του επόμενου άρθρου σκέφτηκαν το ίδιο. Και οι δύο δημοσιεύσεις δημοσιεύθηκαν ανεξάρτητα με 17 ημέρες διαφορά, σχεδόν ένα χρόνο μετά το προηγούμενο άρθρο. Οι συντάκτες αυτού του άρθρου, όπως και οι συντάκτες του προηγούμενου, ασχολήθηκαν με τη δημιουργία υφών (αν απλώς επαναφέρετε την απώλεια στυλ στο μηδέν, αυτό θα λειτουργήσει). Πρότειναν να βελτιστοποιήσουν όχι μια εικόνα που λαμβάνεται από λευκό θόρυβο, αλλά κάποιο νευρωνικό δίκτυο που παράγει μια τυποποιημένη εικόνα.




Τώρα, εάν η διαδικασία στυλ δεν περιλαμβάνει βελτιστοποίηση, πρέπει να γίνει μόνο ένα άμεσο πέρασμα. Και η βελτιστοποίηση απαιτείται μόνο μία φορά για την εκπαίδευση του δικτύου γεννητριών. Αυτό το άρθρο χρησιμοποιεί μια ιεραρχική γεννήτρια όπου κάθε επόμενη zμέγεθος μεγαλύτερο από το προηγούμενο και λαμβάνεται από θόρυβο στην περίπτωση δημιουργίας υφής και από κάποια βάση εικόνων για εκπαίδευση του στυλίστα. Είναι κρίσιμο να χρησιμοποιείτε κάτι διαφορετικό από το εκπαιδευτικό μέρος του imajnet, αφού Οι δυνατότητες στο εσωτερικό του δικτύου Loss υπολογίζονται από το δίκτυο που εκπαιδεύεται ακριβώς στο τμήμα εκπαίδευσης.



Αντιληπτικές απώλειες για μεταφορά στυλ σε πραγματικό χρόνο και υπερ-ανάλυση (27 Μαρτίου 2016)

Όπως υποδηλώνει το όνομα, οι συγγραφείς, που άργησαν μόλις 17 ημέρες με την ιδέα του δικτύου δημιουργίας, ήταν απασχολημένοι με την αύξηση της ανάλυσης της εικόνας. Φαίνεται ότι εμπνεύστηκαν από την επιτυχία της υπολειπόμενης μάθησης στον πιο πρόσφατο μαγνήτη.




Αντίστοιχα υπολειπόμενο μπλοκ και μπλοκ μετατροπής.



Έτσι, τώρα έχουμε στα χέρια μας, εκτός από τον έλεγχο του στυλ, μια γρήγορη γεννήτρια (χάρη σε αυτά τα δύο άρθρα, ο χρόνος δημιουργίας για μια εικόνα μετριέται σε δεκάδες ms).

Το τελος

Χρησιμοποιήσαμε τις πληροφορίες από τα άρθρα που ελέγχθηκαν και τον κώδικα των συγγραφέων ως σημείο εκκίνησης για να δημιουργήσουμε μια άλλη εφαρμογή στυλ για την πρώτη εφαρμογή στυλ βίντεο:



Δημιουργεί κάτι τέτοιο.


Από τότε που Γερμανοί ερευνητές από το Πανεπιστήμιο του Tübingen παρουσίασαν την ιδέα τους για τη δυνατότητα μεταφοράς του στυλ των διάσημων καλλιτεχνών σε άλλες φωτογραφίες τον Αύγουστο του 2015, άρχισαν να εμφανίζονται υπηρεσίες που έχουν κερδίσει αυτήν την ευκαιρία. Κυκλοφόρησε στη δυτική αγορά και στη ρωσική αγορά - το πλήρες αντίγραφό του.

Για σελιδοδείκτες

Παρά το γεγονός ότι το Ostagram ξεκίνησε τον Δεκέμβριο, άρχισε να κερδίζει γρήγορα δημοτικότητα στα κοινωνικά δίκτυα ακριβώς στα μέσα Απριλίου. Ταυτόχρονα, υπήρχαν λιγότερα από χίλια άτομα στο έργο στο VKontakte από τις 19 Απριλίου.

Για να χρησιμοποιήσετε την υπηρεσία, πρέπει να προετοιμάσετε δύο εικόνες: μια φωτογραφία που πρόκειται να υποβληθεί σε επεξεργασία και μια εικόνα με ένα παράδειγμα του στυλ που θα τοποθετηθεί στην αρχική φωτογραφία.

Η υπηρεσία διαθέτει δωρεάν έκδοση: δημιουργεί μια εικόνα σε ελάχιστη ανάλυση έως 600 pixel κατά μήκος της μεγαλύτερης πλευράς της εικόνας. Ο χρήστης λαμβάνει το αποτέλεσμα μόνο μιας από τις επαναλήψεις εφαρμογής του φίλτρου στη φωτογραφία.

Υπάρχουν δύο πληρωμένες εκδόσεις: Το Premium παράγει μια εικόνα έως 700 pixel στη μεγαλύτερη πλευρά και εφαρμόζει 600 επαναλήψεις επεξεργασίας νευρωνικού δικτύου στην εικόνα (όσο περισσότερες επαναλήψεις, τόσο πιο ενδιαφέρουσα και εντατική είναι η επεξεργασία). Μια τέτοια εικόνα θα κοστίσει 50 ρούβλια.

Στην έκδοση HD, μπορείτε να προσαρμόσετε τον αριθμό των επαναλήψεων: 100 θα κοστίζουν 50 ρούβλια και 1000 - 250 ρούβλια. Σε αυτή την περίπτωση, η εικόνα θα έχει ανάλυση έως και 1200 pixel στη μεγαλύτερη πλευρά και μπορεί να χρησιμοποιηθεί για εκτύπωση σε καμβά: Το Ostagram προσφέρει μια τέτοια υπηρεσία με παράδοση από 1800 ρούβλια.

Τον Φεβρουάριο, εκπρόσωποι του Ostagram, που δεν θα δέχονται αιτήματα για επεξεργασία εικόνας από χρήστες "από χώρες με ανεπτυγμένο καπιταλισμό", αλλά στη συνέχεια πρόσβαση σε επεξεργασία φωτογραφιών για χρήστες VKontakte από όλο τον κόσμο. Κρίνοντας από τον κώδικα Ostagram που δημοσιεύτηκε στο GitHub, αναπτύχθηκε από τον Sergey Morugin, έναν 30χρονο κάτοικο στο Nizhny Novgorod.

Ο TJ επικοινώνησε με τον εμπορικό διευθυντή του έργου, ο οποίος παρουσιάστηκε ως Αντρέι. Σύμφωνα με τον ίδιο, το Ostagram εμφανίστηκε πριν από το Instapainting, αλλά εμπνεύστηκε από ένα παρόμοιο έργο που ονομάζεται Vipart.

Το Ostagram αναπτύχθηκε από μια ομάδα μαθητών από τον Ν.Ν. Alekseeva: μετά από αρχικές δοκιμές σε μια στενή ομάδα φίλων στο τέλος του 2015, αποφασίστηκε να δημοσιοποιηθεί το έργο. Αρχικά, η επεξεργασία εικόνας ήταν εντελώς δωρεάν και σχεδιάστηκε να κερδίσετε χρήματα πουλώντας τυπωμένους πίνακες. Σύμφωνα με τον Andrey, η εκτύπωση ήταν το μεγαλύτερο πρόβλημα: οι φωτογραφίες ανθρώπων που επεξεργάζονται από νευρωνικό δίκτυο σπάνια φαίνονται ευχάριστες στο ανθρώπινο μάτι και ο τελικός πελάτης χρειάζεται πολύ χρόνο για να προσαρμόσει το αποτέλεσμα πριν το εφαρμόσει στον καμβά, κάτι που απαιτεί μεγάλους πόρους μηχανής.

Για την επεξεργασία εικόνας, οι δημιουργοί του Ostagram ήθελαν να χρησιμοποιήσουν διακομιστές cloud του Amazon, αλλά μετά την εισροή χρηστών, έγινε σαφές ότι το κόστος για αυτούς θα ξεπερνούσε τα χίλια δολάρια την ημέρα με ελάχιστη απόδοση επένδυσης. Ο Αντρέι, ο οποίος είναι επίσης επενδυτής στο έργο, νοίκιασε εγκαταστάσεις διακομιστών στο Νίζνι Νόβγκοροντ.

Το κοινό του έργου είναι περίπου χίλια άτομα την ημέρα, αλλά μερικές ημέρες έφτασε τα 40 χιλιάδες άτομα λόγω μεταβάσεων από ξένα μέσα ενημέρωσης που έχουν ήδη παρατηρήσει το έργο πριν από τα εγχώρια (το Ostagram κατάφερε ακόμη και να συνεργαστεί με Ευρωπαίους DJ). Τη νύχτα, όταν η κίνηση είναι χαμηλή, η επεξεργασία εικόνας μπορεί να διαρκέσει 5 λεπτά και κατά τη διάρκεια της ημέρας μπορεί να διαρκέσει έως και μία ώρα.

Εάν παλαιότερα οι ξένοι χρήστες είχαν σκόπιμα περιορισμένη πρόσβαση στην επεξεργασία εικόνας (σκέφτηκαν να ξεκινήσουν τη δημιουργία εσόδων από τη Ρωσία), τώρα το Ostagram υπολογίζει ήδη περισσότερο στο δυτικό κοινό.

Μέχρι σήμερα, οι προοπτικές αποζημίωσης είναι υπό όρους. Εάν κάθε χρήστης πλήρωνε 10 ρούβλια για επεξεργασία, τότε ίσως θα αποπληρωνόταν. […]

Είναι πολύ δύσκολο να κερδίσετε χρήματα στη χώρα μας: οι άνθρωποι μας είναι έτοιμοι να περιμένουν μια εβδομάδα, αλλά δεν θα πληρώσουν δεκάρα για αυτό. Οι Ευρωπαίοι το υποστηρίζουν περισσότερο - όσον αφορά την πληρωμή για επιτάχυνση, βελτίωση της ποιότητας - έτσι το επίκεντρο στρέφεται σε αυτήν την αγορά.

Αντρέι, εκπρόσωπος της Ostagram

Σύμφωνα με τον Αντρέι, η ομάδα του Ostagram εργάζεται σε μια νέα έκδοση του ιστότοπου με μεγαλύτερη έμφαση στην κοινωνικότητα: "Θα μοιάζει με μια γνωστή υπηρεσία, αλλά τι να κάνουμε". Εκπρόσωποι του Facebook στη Ρωσία έχουν ήδη ενδιαφερθεί για το έργο, αλλά η συμφωνία δεν έχει ακόμη φτάσει σε διαπραγματεύσεις για την πώληση.

Παραδείγματα υπηρεσιακών εργασιών

Στη ροή στον ιστότοπο του Ostagram, μπορείτε επίσης να δείτε τον συνδυασμό των εικόνων που κατέληξαν στις τελικές εικόνες: συχνά αυτό είναι ακόμα πιο ενδιαφέρον από το ίδιο το αποτέλεσμα. Σε αυτήν την περίπτωση, τα φίλτρα - εικόνες που χρησιμοποιήθηκαν ως αποτέλεσμα για επεξεργασία - μπορούν να αποθηκευτούν για μελλοντική χρήση.