Stylization ของภาพโดยใช้เครือข่ายประสาทเทียม: ไม่มีเวทย์มนต์เพียงด้าน Ostagram: บริการตามจำนวนการรวมรูปถ่ายและเครื่องประดับในงานศิลปะชิ้นเอก Neurallet วาดภาพ

Stylization ของภาพโดยใช้เครือข่ายประสาทเทียม: ไม่มีเวทย์มนต์เพียงด้าน Ostagram: บริการตามจำนวนการรวมรูปถ่ายและเครื่องประดับในงานศิลปะชิ้นเอก Neurallet วาดภาพ
Stylization ของภาพโดยใช้เครือข่ายประสาทเทียม: ไม่มีเวทย์มนต์เพียงด้าน Ostagram: บริการตามจำนวนการรวมรูปถ่ายและเครื่องประดับในงานศิลปะชิ้นเอก Neurallet วาดภาพ

เอสเซ้นส์ที่แตกต่างจำนวนมากและไม่สามารถอธิบายได้ในภาพถ่ายธรรมดาที่สุด บ่อยที่สุดสำหรับสุนัขเหตุผลบางอย่าง ภาพของอินเทอร์เน็ตนี้เริ่มเติมเต็มในเดือนมิถุนายน 2558 เมื่อ DeepDream จาก Google เปิดตัว - หนึ่งในบริการเปิดครั้งแรกตามเครือข่ายประสาทเทียมและมีไว้สำหรับการประมวลผลภาพ

มันเกิดขึ้นประมาณ: อัลกอริทึมวิเคราะห์ภาพถ่ายค้นหาชิ้นส่วนที่เตือนเขาถึงวัตถุที่คุ้นเคยและบิดเบือนภาพตามข้อมูลเหล่านี้

ในตอนแรกโครงการถูกโพสต์เป็นรหัสเปิดแล้วบริการออนไลน์ที่สร้างขึ้นบนอินเทอร์เน็ตสร้างขึ้นบนหลักการเดียวกัน หนึ่งในเครื่องกำเนิดความฝันที่สะดวกที่สุดและเป็นที่นิยมมากที่สุดคือการประมวลผลภาพถ่ายขนาดเล็กที่นี่ใช้เวลาเพียงประมาณ 15 วินาที (ผู้ใช้ก่อนหน้านี้ต้องรอมากกว่าหนึ่งชั่วโมง)

เครือข่ายประสาทเรียนรู้ที่จะสร้างภาพดังกล่าวได้อย่างไร และทำไมพวกเขาจึงเรียกใคร

เครือข่ายประสาทในอุปกรณ์ของพวกเขาเลียนแบบเครือข่ายประสาทเทียมจริงของสิ่งมีชีวิต แต่พวกเขาทำด้วยความช่วยเหลือของอัลกอริทึมทางคณิตศาสตร์ โดยการสร้างโครงสร้างพื้นฐานคุณสามารถฝึกอบรมตามวิธีการเรียนรู้ของเครื่อง หากเรากำลังพูดถึงการจดจำภาพแล้วภาพหลายพันภาพจะต้องข้ามผ่านเครือข่ายประสาทเทียม หากงานของระบบประสาทแตกต่างกันการออกกำลังกายการฝึกอบรมจะแตกต่างกัน

อัลกอริทึมสำหรับการเล่นหมากรุกตัวอย่างเช่นวิเคราะห์เกมหมากรุก อัลกอริทึมเดียวกันกับ Google DeepMind ในเกมจีนไป - ซึ่งถูกมองว่าเป็นความก้าวหน้าเนื่องจากมันยากมากขึ้นและคุ้มค่ามากกว่าหมากรุก

    เล่นกับโมเดลเครือข่ายประสาทที่ง่ายขึ้นและมันจะดีกว่าที่จะเข้าใจหลักการของมัน

    YouTube ยังมีชุดของการวาดด้วยมือส่วนบุคคล ลูกกลิ้ง เกี่ยวกับวิธีการทำงานเครือข่ายประสาท

บริการที่เป็นที่นิยมอีกอย่างคือ DreamScope ซึ่งไม่เพียง แต่ฝันถึงสุนัข แต่ยังเลียนแบบสไตล์ที่งดงามต่าง ๆ การประมวลผลภาพที่นี่ยังเกิดขึ้นง่ายมากและรวดเร็ว (ประมาณ 30 วินาที)

เห็นได้ชัดว่าส่วนอัลกอริทึมของบริการคือการปรับเปลี่ยนโปรแกรมสไตล์ประสาทซึ่งเรามีอยู่แล้ว

เมื่อเร็ว ๆ นี้มีโปรแกรมที่วาดภาพขาวดำที่สมจริง ในรุ่นก่อนหน้าโปรแกรมที่คล้ายกันที่รับมือกับงานของพวกเขาอยู่ไกลมากและถือว่าเป็นความสำเร็จที่ยิ่งใหญ่หากอย่างน้อย 20% ของผู้คนไม่สามารถแยกแยะภาพที่แท้จริงจากภาพที่ทาสีด้วยคอมพิวเตอร์

ยิ่งไปกว่านั้นการระบายสีที่นี่ใช้เวลาเพียงประมาณ 1 นาที

บริษัท พัฒนาเดียวกันนี้ยังเปิดตัวบริการที่ตระหนักถึงวัตถุประเภทต่าง ๆ ในรูปภาพ

บริการเหล่านี้อาจดูเหมือนความบันเทิงที่ตลก แต่ในความเป็นจริงทุกอย่างน่าสนใจยิ่งขึ้น เทคโนโลยีใหม่รวมอยู่ในการปฏิบัติของศิลปินของผู้คนและเปลี่ยนความคิดของเราเกี่ยวกับศิลปะ ในไม่ช้าผู้คนจะต้องแข่งขันกับรถยนต์และในด้านความคิดสร้างสรรค์

สอนอัลกอริทึมเพื่อจดจำภาพ - งานที่นักพัฒนาของปัญญาประดิษฐ์ได้ต่อสู้มานานแล้ว ดังนั้นโปรแกรมที่ภาพเก่าสีจะถูกวาดในท้องฟ้าของสุนัขสามารถถือเป็นส่วนหนึ่งของกระบวนการที่ใหญ่กว่าและน่าสนใจ

ทักทายคุณ HABR! แน่นอนคุณสังเกตเห็นว่าหัวข้อของภาพถ่ายสไตล์การจัดแต่งทรงผมสำหรับรูปแบบศิลปะต่าง ๆ มีการกล่าวถึงอย่างแข็งขันในสิ่งเหล่านี้ การอ่านบทความยอดนิยมเหล่านี้ทั้งหมดคุณอาจคิดว่าภายใต้เครื่องดูดควันของแอปพลิเคชันเหล่านี้เวทมนตร์กำลังเกิดขึ้นและเครือข่ายประสาทเทียมจินตนาการจริง ๆ และวาดภาพใหม่จากรอยขีดข่วน มันเกิดขึ้นที่ทีมของเราต้องเผชิญกับงานที่คล้ายกัน: ในกรอบของ Hackaton ขององค์กรภายในเราทำสไตรีไลซ์วิดีโอเพราะ แอปพลิเคชันสำหรับภาพถ่ายนั้นมีอยู่แล้ว ในโพสต์นี้เราจะเข้าใจว่าเครือข่ายนี้ "redraws" ของเครือข่ายนี้และเราจะวิเคราะห์บทความขอบคุณที่มันเป็นไปได้ ฉันแนะนำให้ทำความคุ้นเคยกับโพสต์ล่าสุดก่อนที่จะอ่านเนื้อหานี้และโดยทั่วไปด้วยรากฐานของเครือข่ายประสาทที่มีความสามารถในการแข่งขัน คุณกำลังรอสูตรเล็ก ๆ น้อย ๆ รหัสเล็ก ๆ น้อย ๆ (ตัวอย่างที่ฉันจะนำไปสู่ \u200b\u200bThaeano และ Lasagne) รวมถึงรูปภาพมากมาย โพสต์นี้สร้างขึ้นในขั้นตอนตามลำดับเวลาสำหรับการปรากฏตัวของบทความและตามความคิดของตัวเอง บางครั้งฉันจะเจือจางให้กับประสบการณ์ล่าสุดของเรา นี่คือเด็กชายจากนรกเพื่อดึงดูดความสนใจ


การมองเห็นและทำความเข้าใจกับเครือข่าย Convolutional (28 พ.ย. 2556)

ก่อนอื่นเป็นมูลค่าการกล่าวถึงบทความที่ผู้เขียนสามารถแสดงให้เห็นว่าเครือข่ายประสาทเทียมไม่ใช่กล่องดำ แต่ค่อนข้างเป็นสิ่งที่ตีความได้ (โดยวิธีการในวันนี้มันสามารถพูดได้ไม่เพียง แต่เกี่ยวกับเครือข่าย Convolutional สำหรับคอมพิวเตอร์ วิสัยทัศน์) ผู้เขียนตัดสินใจที่จะเรียนรู้วิธีการตีความการเปิดใช้งานเซลล์ประสาทของเลเยอร์ที่ซ่อนอยู่สำหรับพวกเขาใช้เครือข่ายประสาท deconvolutionary (Deconvnet) ที่เสนอเมื่อหลายปีก่อน (โดยวิธีการที่ Zayler และเฟอร์กัสเดียวกันซึ่งเป็นผู้เขียนและสิ่งนี้ สิ่งพิมพ์) เครือข่าย DeconVolutary เป็นจริงแล้วเครือข่ายเดียวกันกับการชักและบล็อก แต่ใช้ในการสั่งซื้อย้อนกลับ ในการดำเนินการ Deconvnet ดั้งเดิมเครือข่ายถูกนำมาใช้ในโหมดการฝึกอบรมโดยไม่มีครูในการสร้างภาพ ในครั้งนี้ผู้เขียนใช้มันเพียงสำหรับการส่งผ่านตรงข้ามจากสัญญาณที่ได้รับหลังจากผ่านทางตรงผ่านเครือข่ายไปยังภาพต้นฉบับ เป็นผลให้ภาพที่สามารถตีความได้ว่าเป็นสัญญาณที่ทำให้เกิดการเปิดใช้งานนี้บนเซลล์ประสาท โดยธรรมชาติแล้วคำถามเกิดขึ้น: วิธีการทำทางตรงข้ามผ่านการชักชวนและไม่เชิงเส้น? และโดยเฉพาะอย่างยิ่งผ่านการดึงสูงสุดก็ไม่ใช่การดำเนินการคว่ำอย่างแน่นอน พิจารณาองค์ประกอบทั้งสามทั้งหมด

Reverse Relu

ในเครือข่าย Convolutional เป็นฟังก์ชั่นการเปิดใช้งานมักใช้ relu (x) \u003d สูงสุด (0, x)ซึ่งทำให้การเปิดใช้งานทั้งหมดบนชั้นไม่เป็นลบ ดังนั้นเมื่อเนื้อเรื่องผ่านแบบไม่เชิงเส้นจึงจำเป็นต้องได้รับผลลัพธ์ที่ไม่เป็นลบ สำหรับสิ่งนี้ผู้เขียนเสนอให้ใช้ relu เดียวกัน จากมุมมองของสถาปัตยกรรม Thaeano มีความจำเป็นต้องแทนที่การทำงานของการไล่ระดับสีของการดำเนินงาน (แล็ปท็อปที่มีค่าไม่สิ้นสุดอยู่ในสูตรของ Lazagan จากที่นั่นคุณจะจัดการรายละเอียดของสิ่งที่เป็นสำหรับการปรับเปลี่ยน Backprop Class)

Class ZeilerbackProp (modifiedbackprop): DEF Grads (ตัวเอง, อินพุต, out_grads): (inp,) \u003d อินพุต (grd,) \u003d out_grads #return (grd * (grd\u003e 0) .astype (inp.dtype),) # แก้ไขอย่างชัดเจน ส่งคืน (self.nonlinearity (grd),) # ใช้ความไม่เชิงเส้นที่กำหนด

สว่านย้อนกลับ

มันค่อนข้างซับซ้อนมากขึ้นที่นี่ แต่ทุกอย่างเป็นตรรกะ: มันเพียงพอที่จะใช้เคอร์เนลขนชนิดเดียวกัน แต่ไปยังเอาท์พุทจากการรีเมลแทนที่จะเป็นเลเยอร์ก่อนหน้าที่ใช้ในการส่งผ่านโดยตรง แต่ฉันกลัวว่ามันจะไม่ชัดเจนเราจะดูการแสดงภาพของขั้นตอนนี้ (คุณจะพบการสร้างภาพข้อมูลที่ยิ่งใหญ่กว่า)


ตัดด้วย Stride \u003d 1

ตัดด้วย Stride \u003d 1 เวอร์ชั่นย้อนกลับ

ตัดด้วย Stride \u003d 2

ตัดด้วย Stride \u003d 2 เวอร์ชั่นย้อนกลับ

ย้อนกลับดึง

นี่คือการดำเนินการนี้ (ไม่เหมือนกับก่อนหน้า) โดยทั่วไปการพูดไม่คว่ำ แต่เรายังต้องการที่จะผ่านทางที่ตรงกันข้าม สำหรับสิ่งนี้ผู้เขียนเสนอให้ใช้แผนที่ที่มีการส่งผ่านโดยตรงสูงสุด (สวิตช์ตำแหน่งสูงสุด) เมื่อข้อความผกผันสัญญาณอินพุตปรากฏขึ้นจะถูกแปลงเป็นประมาณการบันทึกโครงสร้างของสัญญาณแหล่งที่มามันง่ายมากที่จะเห็นสิ่งที่จะอธิบาย



ผลลัพธ์

อัลกอริทึมการสร้างภาพนั้นง่ายมาก:

  1. ทำผ่านโดยตรง
  2. เลือกเลเยอร์ที่น่าสนใจให้เรา
  3. การเปิดใช้งานที่ปลอดภัยของเซลล์ประสาทอย่างน้อยหนึ่งเซลล์และรีเซ็ตส่วนที่เหลือ
  4. ทำเอาต์พุตย้อนกลับ

สี่เหลี่ยมสีเทาแต่ละอันในภาพด้านล่างสอดคล้องกับการสร้างภาพตัวกรอง (ซึ่งใช้สำหรับการสนทนา) หรือน้ำหนักของเซลล์ประสาทหนึ่งภาพและแต่ละภาพสีเป็นส่วนหนึ่งของภาพต้นฉบับที่เปิดใช้งานเซลล์ประสาทที่สอดคล้องกัน เพื่อความชัดเจนเซลล์ประสาทภายในหนึ่งชั้นจะถูกจัดกลุ่มเป็นกลุ่มใจ โดยทั่วไปแล้วมันก็ทันใดนั้นเครือข่ายประสาทเทียมได้เรียนรู้สิ่งที่ Hewubel และ Weizel เขียนเกี่ยวกับโครงสร้างของระบบภาพซึ่งรางวัลโนเบลในปี 1981 ได้รับเกียรติ ด้วยบทความนี้เราได้รับการแสดงภาพของสิ่งที่เรียนรู้เครือข่ายประสาทเทียมในแต่ละชั้น มันเป็นความรู้เหล่านี้ที่จะช่วยให้คุณสามารถจัดการเนื้อหาของภาพที่สร้างขึ้นในภายหลัง แต่ก่อนหน้านั้นไม่กี่ปีต่อไปนี้ได้ผ่านการปรับปรุงวิธีการของ "ทรยศ" เครือข่ายประสาทเทศนา นอกจากนี้ผู้เขียนบทความที่เสนอวิธีการวิเคราะห์ว่ามันจะดีกว่าที่จะสร้างสถาปัตยกรรมเครือข่ายประสาทสัมผัสที่ดีกว่าเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด (แม้ว่า imagenet 2013 พวกเขาไม่ชนะ แต่เข้ามาด้านบน; อัพเดต: ทากิกลายเป็นชนะ Clarifai คือพวกเขาเป็น)


การสร้างภาพ


นี่คือตัวอย่างของการเปิดใช้งานการเปิดใช้งานโดยใช้ Deconvnet วันนี้ผลนี้เป็นเช่นนั้นดังนั้นมันจึงเป็นความก้าวหน้า


แผนที่ความน่าเชื่อถือโดยใช้ Deconvnet

ลึกเข้าไปข้างในเครือข่าย Convolutional: การแสดงภาพแบบจำลองการจำแนกภาพและแผนที่ความทรงตา (19 เม.ย. 2557)

บทความนี้อุทิศให้กับการศึกษาวิธีการมองเห็นความรู้ที่อยู่ในเครือข่ายประสาทเทียมที่มีความสามารถ ผู้เขียนมีสองวิธีในการสร้างภาพตามเชื้อสายไล่ระดับสี

การสร้างภาพรุ่นระดับ

ดังนั้นลองจินตนาการว่าเรามีเครือข่ายประสาทที่ผ่านการฝึกอบรมเพื่อแก้ปัญหาการจำแนกประเภทสำหรับบางจำนวน แสดงถึงมูลค่าของการเปิดใช้งานของเซลล์ประสาทเอาท์พุทซึ่งสอดคล้องกับชั้นเรียน ค.. จากนั้นงานต่อไปของการเพิ่มประสิทธิภาพทำให้เรามีภาพที่เพิ่มคลาสที่เลือก:



งานนี้ง่ายต่อการตัดสินใจใช้ Thaeano เรามักจะถามกรอบการทำอนุพันธ์ตามพารามิเตอร์ของโมเดล แต่คราวนี้เราเชื่อว่าพารามิเตอร์ได้รับการแก้ไขและอนุพันธ์ถูกยึดผ่านภาพอินพุต ฟังก์ชั่นต่อไปนี้เลือกค่าสูงสุดของเลเยอร์เอาต์พุตและส่งคืนฟังก์ชั่นที่คำนวณอนุพันธ์ของอิมเมจอินพุต


def compile_salianty_function: "" "รวบรวมฟังก์ชั่นในการคำนวณแผนที่ความเงียบและคลาสที่คาดการณ์ไว้สำหรับการส่งสัญญาณการป้อนข้อมูลที่กำหนด" "" inp \u003d net ["อินพุต"] input_var outp \u003d lasagne.layers.get_output (net ["fc8 "], delerministic \u003d true) max_outp \u003d t.max (outp, axis \u003d 1) sellivery \u003d theano.grad (max_outp.sum (), wrt \u003d inp) max_class \u003d t.argmax (outp, axis \u003d 1) ส่งคืน theano ฟังก์ชั่น ()

คุณอาจเห็นภาพเด็กฝึกงานกับสุนัขของสุนัข - Deepdream ในบทความต้นฉบับผู้เขียนใช้กระบวนการต่อไปนี้เพื่อสร้างภาพที่เพิ่มคลาสที่เลือกให้สูงสุด:

  1. เริ่มต้นภาพเริ่มต้นของศูนย์
  2. คำนวณค่าของอนุพันธ์ในภาพนี้
  3. เปลี่ยนภาพโดยการเพิ่มรูปภาพผลลัพธ์จากอนุพันธ์
  4. กลับไปที่จุดที่ 2 หรือออกจากวงจร

ภาพดังกล่าวจะได้รับ:




และถ้าคุณเริ่มต้นภาพแรกของภาพถ่ายจริงและเรียกใช้กระบวนการเดียวกัน? แต่ในการวนซ้ำแต่ละครั้งเราจะเลือกคลาสสุ่มรีเซ็ตส่วนที่เหลือและคำนวณมูลค่าของอนุพันธ์จากนั้นมันจะเป็นความฝันที่ลึกล้ำ


ข้อควรระวัง 60 MB


ทำไมต้องเผชิญกับสุนัขและดวงตามากมาย? ทุกอย่างง่าย ๆ : ในกรณีที่มีสุนัขเกือบ 200 ตัวจาก 1,000 ชั้นเรียนพวกเขามีตา รวมถึงหลาย ๆ ชั้นเรียนที่ผู้คนมี

การสกัดระดับใต้สี

หากกระบวนการนี้เริ่มต้นด้วยภาพถ่ายจริงให้หยุดหลังจากการทำซ้ำครั้งแรกและปฏิเสธมูลค่าของอนุพันธ์จากนั้นเราจะได้รับภาพดังกล่าวโดยการเพิ่มสิ่งที่เป็นต้นฉบับเราจะเพิ่มมูลค่าของการเปิดใช้งานของคลาสที่เลือก .


แผนที่ความน่าเชื่อถือโดยใช้อนุพันธ์


ผลลัพธ์อีกครั้ง "ดังนั้น" เป็นสิ่งสำคัญที่จะต้องทราบว่านี่เป็นวิธีการใหม่ในการมองเห็นการเปิดใช้งาน (ไม่มีอะไรป้องกันเราจากการแก้ไขค่าการเปิดใช้งานที่ไม่ได้อยู่ในเลเยอร์สุดท้าย แต่โดยทั่วไปในเลเยอร์ใด ๆ ของเครือข่ายและใช้อนุพันธ์ของอิมเมจอินพุต) บทความต่อไปจะรวมกันทั้งสองวิธีก่อนหน้านี้และให้เครื่องมือแก่เราในการปรับแต่งบริการรถรับส่งเป็นสไตล์ที่จะอธิบายในภายหลัง

String for Simplicity: Net Convolutional ทั้งหมด (13 เม.ย. 2558)

บทความนี้โดยทั่วไปพูดไม่ได้เกี่ยวกับการสร้างภาพ แต่การเปลี่ยนการสนทนาของ Pullea ด้วยฟางขนาดใหญ่ไม่ได้นำไปสู่การสูญเสียคุณภาพ แต่เป็นผลพลอยได้จากการวิจัยของพวกเขาผู้เขียนเสนอวิธีการใหม่ในการมองเห็นคุณสมบัติซึ่งพวกเขานำไปใช้กับการวิเคราะห์ที่แม่นยำยิ่งขึ้นของสิ่งที่เรียนรู้รูปแบบ ความคิดของพวกเขามีดังนี้: ถ้าเราใช้อนุพันธ์จากนั้นด้วยการ deconvolutions คุณสมบัติเหล่านั้นที่อยู่ในภาพอินพุตน้อยกว่าศูนย์ (การใช้ relu สำหรับภาพอินพุต) ไม่ได้กลับมาในระหว่าง deconvolution และสิ่งนี้นำไปสู่ความจริงที่ว่าค่าลบปรากฏขึ้นบนภาพกลับที่ป้องกันไว้ ในทางกลับกันถ้าคุณใช้ deconvnet จากนั้น relu อื่นจะถูกนำมาจากอนุพันธ์ Relu - ช่วยให้คุณไม่ส่งคืนค่าลบ แต่เมื่อคุณเห็นผลลัพธ์มันจะกลายเป็น "ดังนั้น" แต่ถ้าคุณรวมทั้งสองวิธีนี้?




คลาส guiddebackprop (modifiedbackprop): DEF Grad (ตนเอง, อินพุต, out_grads): (inp,) \u003d อินพุต (GRD,) \u003d out_grads dtype \u003d inp.dtype กลับ (grd * (inp\u003e 0) .astype (Dtype) * (GRD \u003e 0) .astype (Dtype),)

จากนั้นมันจะกลายเป็นภาพที่สะอาดและตีความได้อย่างสมบูรณ์


แผนที่ความน่าเชื่อถือโดยใช้ Backpropagation นำทาง

ไปลึกมาก

ตอนนี้ลองคิดดูสิว่ามันให้อะไรกับเรา ให้ฉันเตือนคุณว่าแต่ละเลเยอร์โค้ชแต่ละเล่มเป็นฟังก์ชั่นที่รับเทนเซอร์สามมิติและเอาต์พุตไปยังเอาต์พุตยังให้เท็นเซอร์สามมิติบางทีมิติอื่น d. เอ็กซ์ ว. เอ็กซ์ เอช.; d.epth คือจำนวนของเซลล์ประสาทในเลเยอร์แต่ละตัวจะสร้างแผ่น (แผนที่คุณสมบัติ) ว.igth X. เอช.แปด.


ลองทดลองใช้การทดลองต่อไปนี้ในเครือข่าย VGG-19:



cONV1_2

ใช่คุณเกือบจะไม่เห็นอะไรเลยเพราะ บริเวณสูตรอาหารมีขนาดเล็กมากนี่คือการสนทนาที่สองของ 3x3 ตามลำดับพื้นที่ทั้งหมดคือ 5x5 แต่การเพิ่มขึ้นเราจะเห็นว่าคุณสมบัติเป็นเพียงเครื่องตรวจจับการไล่ระดับสี




conv3_3


conv4_3


conv5_3


pool5


และตอนนี้เราจะจินตนาการว่าแทนที่จะเป็นจำนวนสูงสุดในการจู่โจมเราจะใช้มูลค่าอนุพันธ์ขององค์ประกอบทั้งหมดของลูกเต๋าในภาพอินพุต เห็นได้ชัดว่าพื้นที่สูตรของกลุ่ม neuron จะครอบคลุมภาพอินพุตทั้งหมด สำหรับชั้นต้นเราจะเห็นการ์ดสดใสซึ่งเราสรุปได้ว่าสิ่งเหล่านี้เป็นเครื่องตรวจจับดอกไม้จากนั้นไล่ระดับสีแล้วพรมแดนและอื่น ๆ ในทิศทางของภาวะแทรกซ้อนของรูปแบบ ยิ่งเลเยอร์ลึกยิ่งมันเป็นภาพที่น่าเบื่อมากขึ้นปรากฎ นี่คือคำอธิบายของความจริงที่ว่าชั้นที่ลึกกว่ารูปแบบที่ซับซ้อนมากขึ้นซึ่งพวกเขาตรวจจับและรูปแบบที่ซับซ้อนปรากฏขึ้นบ่อยครั้งง่ายดังนั้นแผนที่การเปิดใช้งานจะยึด วิธีแรกเหมาะสำหรับการทำความเข้าใจเลเยอร์ที่มีรูปแบบที่ซับซ้อนและที่สองเป็นเพียงความเรียบง่าย


cONV1_1


conv2_2


conv4_3


คุณสามารถดาวน์โหลดฐานข้อมูลการเปิดใช้งานที่สมบูรณ์เพิ่มเติมสำหรับรูปภาพหลายภาพและ

อัลกอริทึมประสาทของสไตล์ศิลปะ (2 ก.ย. 2558)

ดังนั้นส่งผ่านสองสามปีจากช่วงเวลาของการเป็นครั้งแรกที่ประสบความสำเร็จในการใช้เครือข่ายประสาทเทียม เรา (ในแง่ - ในมนุษยชาติ) มีเครื่องมือที่ทรงพลังในมือซึ่งทำให้สามารถเข้าใจสิ่งที่เรียนรู้เครือข่ายประสาทและลบสิ่งที่เราไม่ชอบที่จะเรียนรู้ ผู้เขียนบทความนี้กำลังพัฒนาวิธีการที่อนุญาตให้หนึ่งภาพสร้างการ์ดเปิดใช้งานที่คล้ายกันสำหรับภาพเป้าหมายและบางทีอาจไม่ใช่สิ่งเดียว - นี่คือพื้นฐานของการปรับแต่ง เราให้บริการเสียงสีขาวบนทางเข้าและกระบวนการวนซ้ำที่คล้ายกันเช่นเดียวกับในความฝันที่ลึกล้ำเรานำเสนอภาพนี้กับสิ่งนี้ซึ่งมีสัญญาณของสัญญาณมีความคล้ายคลึงกับภาพเป้าหมาย

การสูญเสียเนื้อหา

ดังที่ได้กล่าวไปแล้วแต่ละชั้นของเครือข่ายประสาทจะผลิตเท็นเซอร์สามมิติบางมิติ




แสดงให้เห็น ผม.เลเยอร์จากทางเข้าเป็น จากนั้นถ้าเราลดการกระจายน้ำหนักถ่วงน้ำหนักระหว่างอิมเมจอินพุต และบางภาพที่เรามุ่งมั่น ค.จากนั้นปรากฎว่าสิ่งที่คุณต้องการ อาจ.



สำหรับการทดลองกับบทความนี้แล็ปท็อปมายากลนี้สามารถใช้การคำนวณเกิดขึ้นที่นั่น (ทั้งบน GPU และ CPU) GPU ใช้ในการคำนวณคุณสมบัติของเครือข่ายประสาทและค่าของฟังก์ชั่นต้นทุน Thano ให้ฟังก์ชั่นที่สามารถคำนวณการไล่ระดับสีของฟังก์ชั่นเป้าหมาย eval_grad ในภาพอินพุต เอ็กซ์. จากนั้นทั้งหมดนี้ให้บริการใน LBFGS และกระบวนการวนซ้ำจะเปิดตัว


# เริ่มต้นด้วยภาพเสียง generated_image.set_value (floatx (np.random.uniform (-128, 128, (1, 3, image_w, image_w)))) x0 \u003d generated_image.get_value () Astype ("float64") xs \u003d xs.append (x0) # ปรับให้เหมาะสมประหยัดผลลัพธ์เป็นระยะ ๆ สำหรับ i ในช่วง (8): พิมพ์ (i) scipy.optimize.fmin_loss, x0.flatten (), fprime \u003d alv_grad, maxfun \u003d 40) x0 \u003d generated_image.get_value (), Astype ("float64") xsappend (x0)

หากเราเริ่มการเพิ่มประสิทธิภาพของฟังก์ชั่นดังกล่าวเราจะได้ภาพที่คล้ายกับเป้าหมายอย่างรวดเร็ว ตอนนี้เราสามารถสร้างภาพที่คล้ายกับเนื้อหาเนื้อหาบางอย่าง


การสูญเสียเนื้อหา: CONV4_2



การเพิ่มประสิทธิภาพกระบวนการ




ง่ายต่อการสังเกตคุณสมบัติสองของภาพที่ได้รับ:

  • สีที่หายไป - นี่คือผลลัพธ์ของความจริงที่ว่าในตัวอย่างที่เฉพาะเจาะจงใช้เพียงชั้นของ conv4_2 (หรือในคำอื่น ๆ น้ำหนัก w ถูกใช้กับมันและสำหรับชั้นศูนย์ที่เหลืออยู่); ในขณะที่คุณจำได้ว่ามันเป็นเลเยอร์แรกที่มีข้อมูลเกี่ยวกับสีและการเปลี่ยนการไล่ระดับสีและในภายหลังมีข้อมูลเกี่ยวกับไอเท็มขนาดใหญ่ที่เราสังเกตเห็น - สีที่สูญหายและไม่มีเนื้อหา
  • บ้านบางแห่ง "ไป", I.e. เส้นตรงบิดเล็กน้อย - นี่เป็นเพราะชั้นที่ลึกกว่าข้อมูลน้อยเกี่ยวกับตำแหน่งเชิงพื้นที่ของคุณสมบัติที่มีอยู่ (ผลของการใช้มัดและหน้าผา)

การเพิ่มเลเยอร์ต้นแก้ไขสถานการณ์ด้วยดอกไม้ทันที


การสูญเสียเนื้อหา: CONV1_1, CONV2_1, CONV4_2


ฉันหวังว่าสำหรับจุดนี้คุณรู้สึกว่าคุณสามารถจัดการสิ่งที่จะบิดเบือนภาพจากเสียงสีขาว

การสูญเสียสไตล์

ดังนั้นเราจึงน่าสนใจที่สุด: สิ่งที่เราจะผ่านสไตล์? สไตล์คืออะไร เห็นได้ชัดว่าสไตล์ไม่ใช่ว่าเราได้ปรับให้เหมาะสมในการสูญเสียเนื้อหา "E เพราะมีข้อมูลจำนวนมากเกี่ยวกับตำแหน่งเชิงพื้นที่ของคุณสมบัติดังนั้นสิ่งแรกที่ต้องทำคือวิธีใด ๆ ในการลบข้อมูลนี้ออกจากการเป็นตัวแทนที่ได้รับ แต่ละเลเยอร์


ผู้เขียนเสนอวิธีดังต่อไปนี้ เราใช้เท็นเซอร์ที่ทางออกจากบางชั้นเราจะขยายพิกัดเชิงพื้นที่และพิจารณาเมทริกซ์ Covariance ระหว่างตาย แสดงถึงการแปลงนี้เป็น กรัม. เราทำอะไรจริง ๆ อาจกล่าวได้ว่าเรานับความถี่ในการพบสัญญาณภายในลูกเต๋าในคู่หรือในคำอื่น ๆ เราประมาณการกระจายสัญญาณในการตายด้วยการกระจายแบบปกติหลายมิติ




จากนั้นการสูญเสียสไตล์จะถูกป้อนดังต่อไปนี้ที่ไหน s. - นี่คือภาพที่มีสไตล์:



ลองทำวินเซนต์กันไหม เราได้รับในหลักการสิ่งที่คาดหวังเป็นเสียงรบกวนในรูปแบบของ Van Gogh ข้อมูลเกี่ยวกับตำแหน่งเชิงพื้นที่ของคุณสมบัติหายไปอย่างสมบูรณ์


Vincent




และถ้าคุณใส่ภาพถ่ายแทนสไตล์? ปรากฎคุณสมบัติที่คุ้นเคยแล้วสีที่คุ้นเคย แต่ตำแหน่งเชิงพื้นที่หายไปอย่างสมบูรณ์


ภาพถ่ายที่มีการสูญเสียสไตล์


แน่นอนคุณสงสัยเกี่ยวกับทำไมเราต้องคำนวณเมทริกซ์ Covariance และไม่ใช่อย่างอื่น? ท้ายที่สุดมีหลายวิธีในการรวมสัญญาณเพื่อให้พิกัดเชิงพื้นที่หายไป นี่เป็นคำถามที่เปิดจริงและถ้าคุณใช้บางสิ่งที่ง่ายมากผลลัพธ์จะไม่เปลี่ยนแปลงอย่างมาก ลองตรวจสอบว่าเราจะคำนวณเมทริกซ์ Covariance แต่เพียงแค่ค่าเฉลี่ยของลูกเต๋าแต่ละลูก




การสูญเสียสไตล์ที่เรียบง่าย

การสูญเสียรวม

ตามธรรมชาติความปรารถนาเกิดขึ้นเพื่อผสมทั้งสองฟังก์ชั่นเหล่านี้ของค่าใช้จ่าย จากนั้นเราจะสร้างจากเสียงสีขาวที่จะมีสัญญาณจากเนื้อหาเนื้อหา (ซึ่งมีผลผูกพันกับพิกัดเชิงพื้นที่) และสัญญาณ "สไตล์" ที่ไม่ได้เชื่อมโยงกับพิกัดเชิงพื้นที่เช่นนี้ เราหวังว่ารายละเอียดของเนื้อหาของเนื้อหาจะยังคงอยู่จากสถานที่ของพวกเขา แต่จะถูกวาดใหม่ด้วยสไตล์ที่ต้องการ



ในความเป็นจริงนอกจากนี้ยังมี quallizer แต่เราจะกำหนดมันเพื่อความเรียบง่าย มันยังคงตอบคำถามต่อไป: ใช้เลเยอร์ (น้ำหนัก) แบบไหนเมื่อเพิ่มประสิทธิภาพ? และฉันกลัวว่าฉันไม่มีคำตอบสำหรับคำถามนี้และผู้เขียนบทความด้วย พวกเขามีข้อเสนอที่จะใช้สิ่งต่อไปนี้ แต่มันไม่ได้หมายความว่าการรวมกันอื่นจะทำงานแย่ไปกว่าพื้นที่การค้นหามากเกินไป กฎเดียวที่ตามมาจากความเข้าใจของแบบจำลอง: มันไม่มีเหตุผลที่จะนำเลเยอร์ใกล้เคียงเพราะ พวกเขาจะไม่แตกต่างจากสัญญาณจากกันและกันเนื่องจากมีการเพิ่มสไตล์ผ่านเลเยอร์จากแต่ละกลุ่ม Conv * _1


# กำหนดความสูญเสียฟังก์ชั่นการสูญเสีย \u003d # การสูญเสียการสูญเสียเนื้อหา (0.001 * content_loss (photo_features, gen_features, "conv4_2")) # การสูญเสียการสูญเสียสไตล์ .Append (0.2E6 * style_loss (art_features, gen_features, "conv1_1")) การสูญเสีย (art_features, gen_features, "conv2_1")) losses.append (0.2E6 * style_loss (art_features, gen_features, "conv3_1")) losses.append (0.2E6 * style_loss (art_features, gen_features, "conv4_1")) การสูญเสีย (conv4_1 ")) losses.append ( 0.2E6 * style_loss (art_features, gen_features, "conv5_1")) # การสูญเสียโทษรวมการสูญเสียโทษ .append (0.1e-7 * total_variation_loss (generated_image)) total_loss \u003d ผลรวม (ขาดทุน)

รุ่นสุดท้ายสามารถแสดงในรูปแบบต่อไปนี้




แต่ผลของบ้านที่มีแวนโก๊ะ



พยายามควบคุมกระบวนการ

โปรดจำไว้ว่าชิ้นส่วนก่อนหน้านี้เป็นเวลาสองปีก่อนบทความปัจจุบันนักวิทยาศาสตร์คนอื่น ๆ ที่ตรวจสอบสิ่งที่เรียนรู้เครือข่ายประสาท ติดอาวุธกับบทความเหล่านี้ทั้งหมดคุณสามารถรักษาการสร้างภาพของคุณสมบัติของรูปแบบต่าง ๆ ภาพต่าง ๆ ใบอนุญาตและขนาดต่างๆและพยายามเข้าใจว่าเลเยอร์ใดที่มีน้ำหนักที่จะใช้ แต่แม้แต่การปูกระเบื้องของเลเยอร์ไม่สามารถควบคุมสิ่งที่เกิดขึ้นได้อย่างเต็มที่ ปัญหาที่นี่มีความคิดมากขึ้น: เราไม่ได้ปรับให้เหมาะสมฟังก์ชั่นนั้น! คุณถามอย่างไร คำตอบนั้นง่าย: คุณสมบัตินี้ช่วยลดความสามารถที่เหลือ ... ดีคุณเข้าใจ แต่สิ่งที่เราต้องการจริงๆคือเราชอบภาพ การรวมกันของการรวมกันของเนื้อหาและคุณสมบัติการสูญเสียสไตล์ไม่ใช่การวัดความจริงที่ว่าจิตใจของเราพิจารณาความสวยงาม มันได้รับการตั้งข้อสังเกตว่าหากคุณยังคงสไตไลซ์ต่อไปนานเกินไปฟังก์ชั่นค่าใช้จ่ายอยู่ด้านล่างและต่ำกว่า แต่ความงามที่สวยงามของผลลัพธ์ลดลงอย่างรวดเร็ว




โอเคมีปัญหาอีกประการหนึ่ง สมมติว่าเราพบเลเยอร์ที่ลบสัญญาณที่คุณต้องการ สมมติว่ามีพื้นผิวรูปสามเหลี่ยม แต่เลเยอร์นี้ยังคงมีสัญญาณอื่น ๆ อีกมากมายเช่นแวดวงที่เราไม่ต้องการเห็นในภาพที่เกิดขึ้น โดยทั่วไปหากคุณสามารถจ้างคนจีนล้านคนคุณสามารถมองเห็นคุณสมบัติทั้งหมดของสไตล์ของสไตล์และความเจริญรุ่งเรืองที่สมบูรณ์เพียงแค่จดบันทึกสิ่งที่เราต้องการและมีเพียงพวกเขาในฟังก์ชั่นค่าใช้จ่ายเท่านั้น แต่ด้วยเหตุผลที่ชัดเจนนี่ไม่ใช่เรื่องง่าย แต่ถ้าเราเพิ่งลบวงกลมทั้งหมดที่เราไม่ต้องการเห็นผลลัพธ์จากสไตล์ของสไตล์? จากนั้นพวกเขาก็ไม่ทำงานเปิดใช้งานเซลล์ประสาทที่เกี่ยวข้องที่ตอบสนองต่อวงกลม และแน่นอนในภาพที่เกิดขึ้นมันจะไม่ปรากฏขึ้น เหมือนกันกับดอกไม้ ลองนึกภาพภาพที่สดใสพร้อมสีมากมาย การกระจายของสีจะมีข้อบกพร่องมากตลอดพื้นที่เช่นเดียวกับการกระจายของภาพที่เกิดขึ้น แต่ในกระบวนการเพิ่มประสิทธิภาพยอดเขาที่อยู่บนต้นฉบับอาจสูญหาย มันกลับกลายเป็นว่าการลดลงอย่างง่ายในสีจานสีสามารถแก้ปัญหานี้ได้ ความหนาแน่นของการกระจายของสีส่วนใหญ่จะเป็นศูนย์และจะมียอดเขาขนาดใหญ่ในหลายส่วน ดังนั้นโดยการจัดการต้นฉบับใน Photoshop เราจัดการสัญญาณที่ดึงมาจากภาพ บุคคลนั้นง่ายกว่าที่จะแสดงความปรารถนาของเขาด้วยสายตามากกว่าพยายามที่จะกำหนดพวกเขาในภาษาของคณิตศาสตร์ จนกระทั่ง เป็นผลให้นักออกแบบและผู้จัดการติดอาวุธที่มี Photoshop และสคริปต์เพื่อแสดงให้เห็นถึงสัญญาณความสำเร็จในเวลาสามเท่าของผลลัพธ์ดีกว่าคณิตศาสตร์กับโปรแกรมเมอร์ที่ทำ


ตัวอย่างของการจัดการสีและขนาดของคุณสมบัติ


และคุณสามารถใช้ภาพที่เรียบง่ายเป็นสไตล์



ผล








และนี่คือวิดเจ็ต แต่มีเพียงพื้นผิวที่ต้องการเท่านั้น

เครือข่ายพื้นผิว: การสังเคราะห์การป้อนไปข้างหน้าของพื้นผิวและภาพที่เก๋ไก๋ (10 มี.ค. 2016)

ดูเหมือนว่าสิ่งนี้อาจหยุดได้หากไม่ได้อยู่ในความแตกต่างกัน อัลกอริทึมของ Stylization ที่อธิบายไว้ข้างต้นทำงานเป็นเวลานานมาก หากคุณรับรู้ที่ LBFGS เริ่มทำงานในซีพียูกระบวนการใช้เวลาห้านาที หากคุณเขียนใหม่เพื่อให้ทั้งการเพิ่มประสิทธิภาพไปยัง GPU กระบวนการจะใช้เวลา 10-15 วินาที มันไม่ดีทุกที่ บางทีผู้เขียนของสิ่งนี้และบทความต่อไปคิดเกี่ยวกับสิ่งเดียวกัน สิ่งพิมพ์ทั้งสองออกมาอย่างอิสระด้วยความแตกต่างของ 17 วันหลังจากเกือบปีหลังจากบทความก่อนหน้านี้ ผู้เขียนบทความปัจจุบันรวมถึงผู้เขียนของก่อนหน้านี้มีส่วนร่วมในการสร้างพื้นผิว (ถ้าคุณเพียงแค่รีเซ็ตการสูญเสียสไตล์ประมาณจะประสบความสำเร็จ) พวกเขาเสนอให้เพิ่มประสิทธิภาพภาพที่ได้จากเสียงสีขาว แต่เครือข่ายประสาทบางรุ่นที่สร้างภาพที่เก๋ไก๋




ตอนนี้ถ้ากระบวนการ stylization ไม่รวมการเพิ่มประสิทธิภาพใด ๆ จำเป็นต้องใช้ข้อความตรงเท่านั้น และจำเป็นต้องมีการปรับให้เหมาะสมเพียงครั้งเดียวเพื่อออกกำลังกายเครือข่าย บทความนี้ใช้ตัวสร้างแบบลำดับชั้นที่ทุก ๆ ต่อไป z. ขนาดนั้นมากกว่าหนึ่งก่อนหน้านี้และไม่เกินเสียงในกรณีของการสร้างพื้นผิวและจากฐานภาพบางอย่างสำหรับสไตลิสต์ เป็นสิ่งสำคัญที่จะใช้สิ่งที่แตกต่างจากส่วนการฝึกอบรมของ Imajne เพราะ คุณสมบัติภายในเครือข่ายการสูญเสียจะถูกคำนวณโดยเครือข่ายที่ผ่านการฝึกอบรมในส่วนการฝึกอบรม



การสูญเสียการรับรู้สำหรับการถ่ายโอนสไตล์แบบเรียลไทม์และความละเอียดสูง (27 มี.ค. 2016)

ดังที่เห็นได้จากชื่อผู้เขียนที่มาสายเพียง 17 วันโดยมีความคิดเกี่ยวกับเครือข่ายการสร้างมีส่วนร่วมในการเพิ่มความละเอียดของภาพ เห็นได้ชัดว่าพวกเขาได้รับแรงบันดาลใจจากความสำเร็จของการเรียนรู้ที่เหลือในเหตุการณ์ล่าสุด




ดังนั้นบล็อกที่ตกค้างและบล็อกสะสม



ดังนั้นตอนนี้เรามีอยู่ในมือของคุณนอกเหนือจากการควบคุม stylization ยังมีเครื่องกำเนิดไฟฟ้าที่รวดเร็ว (ด้วยบทความทั้งสองนี้เวลารุ่นของภาพเดียววัดด้วย MS ของ MS)

ตอนจบ

ข้อมูลจากบทความที่พิจารณาแล้วและรหัสผู้เขียนที่เราใช้เป็นจุดเริ่มต้นเพื่อสร้างแอปพลิเคชันอื่นสำหรับการจัดแต่งทรงผมวิดีโอ stylization แรก:



สร้างบางสิ่งเช่นนั้น


ตั้งแต่ในเดือนสิงหาคม 2558 นักวิจัยชาวเยอรมันจากมหาวิทยาลัย Tubingen ส่งการเลือกสไตล์ของศิลปินที่มีชื่อเสียงไปยังภาพถ่ายอื่น ๆ บริการเริ่มปรากฏว่าโอกาสนี้ได้รับการสร้างรายได้ ในตลาดตะวันตกที่เขาเปิดตัวและในรัสเซีย - สำเนาเต็มของเขา

ที่คั่นหน้า

แม้จะมีข้อเท็จจริงที่ว่า Ostagram เปิดตัวในเดือนธันวาคมเขาเริ่มได้รับความนิยมอย่างรวดเร็วในเครือข่ายสังคมในช่วงกลางเดือนเมษายน ในเวลาเดียวกันมีผู้คนน้อยกว่าหนึ่งพันคนในโครงการใน Vkontakte ในวันที่ 19 เมษายน

ในการใช้บริการคุณต้องเตรียมสองภาพ: ภาพถ่ายที่จะประมวลผลและรูปภาพที่มีตัวอย่างของสไตล์สำหรับการซ้อนทับในภาพต้นฉบับ

บริการมีรุ่นฟรี: มันสร้างภาพในความละเอียดน้อยที่สุดสูงสุด 600 พิกเซลตามด้านที่ยาวที่สุดของภาพ ผู้ใช้ได้รับผลลัพธ์ของการวนซ้ำของตัวกรองที่ใช้กับภาพถ่ายเท่านั้น

รุ่นที่จ่ายเงินที่สอง: พรีเมี่ยมให้ภาพสูงถึง 700 พิกเซลตามด้านที่ยาวที่สุดและใช้กับภาพของการทำซ้ำ 600 การประมวลผลเครือข่ายประสาทเทียม (การวนซ้ำมากขึ้นการประมวลผลที่น่าสนใจและเข้มข้นยิ่งขึ้น) หนึ่งภาพรวมดังกล่าวจะเป็น 50 รูเบิล

ในรุ่น HD คุณสามารถตั้งค่าจำนวนการวนซ้ำได้: 100 จะมีค่าใช้จ่าย 50 รูเบิลและ 1,000 - 250 รูเบิล ในกรณีนี้ภาพจะมีความละเอียดสูงถึง 1200 พิกเซลตามด้านที่ยาวที่สุดและสามารถใช้ในการพิมพ์บนผ้าใบ: Ostagram เสนอบริการดังกล่าวพร้อมจัดส่งจาก 1800 รูเบิล

ในเดือนกุมภาพันธ์ตัวแทน Ostagram ที่จะไม่ยอมรับการร้องขอการประมวลผลภาพจากผู้ใช้จาก "ประเทศที่มีทุนนิยมที่พัฒนาแล้ว" แต่จากนั้นเข้าถึงการประมวลผลภาพถ่ายสำหรับผู้ใช้ "Vkontakte" จากทั่วโลก ตัดสินโดยรหัส Ostagram ที่เผยแพร่ใน Github, Sergei Morugin ผู้มีถิ่นที่อยู่ 30 ปีของ Nizhny Novgorod มีส่วนร่วมในการพัฒนา

TJ ติดต่อผู้อำนวยการเชิงพาณิชย์ของโครงการที่ได้รับการแนะนำโดย Andrey ตามที่เขาพูดว่า Ostagram ปรากฏตัวต่อหน้า Intapainting แต่เขาได้รับแรงบันดาลใจจากโครงการที่คล้ายกันที่เรียกว่า Vipart

การพัฒนาของ Ostagram มีส่วนร่วมในกลุ่มนักเรียนจาก NSTU Alekseeva: หลังจากการทดสอบครั้งแรกในกลุ่มเพื่อนแคบในปลายปี 2558 โครงการได้ตัดสินใจที่จะเปิดเผยต่อสาธารณะ ในขั้นต้นการประมวลผลภาพฟรีสมบูรณ์และมีการวางแผนที่จะหารายได้จากการขายภาพวาดที่พิมพ์ ตามที่ Andrei ตราประทับกลายเป็นปัญหาที่ใหญ่ที่สุด: ผู้คนถ่ายภาพที่ได้รับการรักษาด้วยยานพาหนะประสาทไม่ค่อยดูดีสำหรับดวงตาของมนุษย์และลูกค้าขั้นสุดท้ายจำเป็นต้องปรับแต่งผลลัพธ์เป็นเวลานานก่อนที่จะใช้กับผืนผ้าใบซึ่งต้องใช้ทรัพยากรเครื่องขนาดใหญ่ .

สำหรับการประมวลผลภาพผู้สร้างของ Ostagram ต้องการใช้เซิร์ฟเวอร์คลาวด์ของ Amazon แต่หลังจากการไหลเข้าของผู้ใช้เห็นได้ชัดว่าค่าใช้จ่ายของพวกเขาจะเกินหนึ่งพันดอลลาร์ต่อวันด้วยการลงทุนน้อยที่สุด Andrei พร้อมกันเป็นนักลงทุนของโครงการให้เช่าอำนาจเซิร์ฟเวอร์ใน Nizhny Novgorod

อย่างไรก็ตามผู้ชมโครงการอยู่ที่ประมาณหนึ่งพันคนต่อวันในบางวันเธอถึง 40,000 คนที่ค่าใช้จ่ายในการเปลี่ยนจากสื่อต่างประเทศที่มีการจัดการโครงการก่อนในประเทศ (Ostagram แม้จะมีการเพิ่มขึ้นกับ DJS ในยุโรป) . ในเวลากลางคืนเมื่อการจราจรต่ำการประมวลผลภาพสามารถเกิดขึ้นได้ใน 5 นาทีและวันที่จะใช้เวลานานถึงหนึ่งชั่วโมง

หากผู้ใช้ต่างประเทศก่อนหน้านี้มีการ จำกัด การประมวลผลภาพอย่างมีสติ (เพื่อเริ่มต้นการสร้างรายได้เพื่อเริ่มต้นด้วยรัสเซีย) ตอนนี้ Ostagram กำลังนับบนผู้ชมชาวตะวันตกแล้ว

จนถึงปัจจุบันโอกาสในการคืนทุนเป็นเงื่อนไข หากผู้ใช้แต่ละคนจ่ายเงินสำหรับการประมวลผล 10 รูเบิลแล้วอาจจะเดือด [... ]

เรายากที่จะสร้างรายได้จากประเทศของเรา: เราพร้อมที่จะรอหนึ่งสัปดาห์ แต่จะไม่จ่ายเงินสำหรับมัน ชาวยุโรปสำหรับเรื่องนี้เป็นที่นิยมมากขึ้น - ในแง่ของการจ่ายเงินสำหรับการยกระดับการปรับปรุงคุณภาพ - ดังนั้นการปฐมนิเทศไปสู่ตลาด

Andrei ตัวแทน Ostagram

จากข้อมูลของ Andrei ทีมงาน Ostagram กำลังทำงานในเว็บไซต์รุ่นใหม่ที่มีอคติใหญ่ในสังคม: "มันจะคล้ายกับบริการที่รู้จักกันดี แต่จะทำอย่างไร" โครงการมีความสนใจในตัวแทนของ Facebook ในรัสเซียแล้ว แต่ก่อนการเจรจาต่อรองในการขายไม่ถึงบริการ

ตัวอย่างการให้บริการ

ใน Ribbon บนเว็บไซต์ Ostagram ก็เป็นไปได้ที่จะเห็นการรวมกันของภาพที่เปิดออกรูปภาพสุดท้าย: มักจะน่าสนใจยิ่งกว่าผลลัพธ์ ในเวลาเดียวกันฟิลเตอร์เป็นภาพที่ใช้เป็นผลกระทบสำหรับการประมวลผล - สามารถบันทึกได้สำหรับการใช้งานต่อไป