Სარჩევი:

RoboPhoto - მოზაიკის გენერატორი საზოგადოებისთვის: 4 ნაბიჯი
RoboPhoto - მოზაიკის გენერატორი საზოგადოებისთვის: 4 ნაბიჯი

ვიდეო: RoboPhoto - მოზაიკის გენერატორი საზოგადოებისთვის: 4 ნაბიჯი

ვიდეო: RoboPhoto - მოზაიკის გენერატორი საზოგადოებისთვის: 4 ნაბიჯი
ვიდეო: Nintendo 3DS - Chibi-Robo! Photo Finder Trailer 2024, ივლისი
Anonim
Image
Image
RoboPhoto - მოზაიკის გენერატორი საზოგადოებისთვის
RoboPhoto - მოზაიკის გენერატორი საზოგადოებისთვის
RoboPhoto - მოზაიკის გენერატორი საზოგადოებისთვის
RoboPhoto - მოზაიკის გენერატორი საზოგადოებისთვის

RoboPhoto არის რეალურ დროში ფოტომოზაური გენერატორი

RoboPhoto ქმნის მისი მომხმარებლების ფოტომოზაიკას - სანამ ელოდებით.

თანამედროვე ციფრული ტექნიკის გამოყენებით, როგორიცაა გამოსახულების დამუშავება, სახის ამოცნობა და ხელოვნური ინტელექტი, RoboPhoto- ს შეუძლია შექმნას ფოტომოზაიკი ყველა ვიზიტორისაგან, რომლებიც გაივლიან და დააჭირეთ ღილაკს-რეალურ დროში.

ყოველ ჯერზე ღილაკზე დაჭერისას ხდება ფოტოს გადაღება ხელთ მყოფი ადამიანისაგან. მყისიერად თითოეული ფოტო სკანირდება და ინტერპრეტირდება RoboPhoto– ს მიერ. RoboPhoto პროგრამული უზრუნველყოფა შეცვლის ყველა ინდივიდუალურ სურათს - ასე რომ ის გახდება უფრო დიდი გამოსახულების ნაწილი და შემდეგ დაბეჭდავს ამ შეცვლილ სურათს სტიკერზე, რომელსაც აქვს კოორდინატების ნაკრები, რომელიც მიუთითებს თითოეული ფოტოს ადგილმდებარეობას ამ უფრო დიდ სურათში. თითოეულ ვიზიტორს სთხოვენ განათავსონ საკუთარი ფოტო სტიკერი უფრო დიდ ტილოზე, რომელიც შეიცავს მხოლოდ შესაბამის ბადეს.

RoboPhoto– ს მუშაობის დროს შეიქმნება ახალი სურათი. ამ ინდივიდუალური ფოტომასალისგან შემდგარი ფოტომოზაიკა, რომელიც მიბაძავს წინასწარ განსაზღვრულ "სამიზნე სურათს".

RoboPhoto ასევე მუშაობს ერთჯერადი მომხმარებლის რეჟიმში. როდესაც კონფიგურირებულია ამ გზით, RoboPhoto ქმნის ერთი მომხმარებლის სრულ მოზაიკას.

მარაგები

  • Windows 10 კომპიუტერი Visual Studio და IoT პაკეტებით დაინსტალირებული
  • Raspberry Pi 3B+ დაინსტალირებული Microsoft Windows 10 IoT
  • ფერადი ეტიკეტის პრინტერი (Brother VC-500W)
  • დიდი წითელი ღილაკი, რომელიც დამონტაჟებულია კვარცხლბეკზე მომხმარებლის შეყვანისთვის
  • HDMI ეკრანი მომხმარებლის გამოხმაურებისთვის
  • Microsoft Xbox Kinect v2 კამერა- მოპარული ჩემი შვილისგან- ფოტოების გადასაღებად
  • ქსელი (Wifi, LAN)
  • სამიზნე ბადე. ქაღალდის ფურცელი მასზე დაბეჭდილი ბადე -შევსებული კოორდინატებით. ეს ქაღალდის ბადე გამოიყენება როგორც ტილო, სადაც ვიზიტორებს შეუძლიათ თავიანთი ფოტოსურათი მიამაგრონ დანიშნულ კოორდინატებზე. და საბოლოოდ ისინი ერთად ქმნიან საბოლოო შედეგს: მშვენიერი ახალი ფოტომოზაიკა.

გამოიყენეს icrosoft Kinect 2.0 კამერა, რადგან მას შეუძლია სიღრმისეული სურათების გადაღება. ეს ფუნქცია გამოიყენება თითოეული ინდივიდუალური ფოტოგრაფის ვირტუალური მწვანე ეკრანის შესაქმნელად. ამ გზით RoboPhoto– ს შეუძლია შეღებოს ფონი თითოეულ ცალკეულ ფოტოს, რათა შეესაბამებოდეს სამიზნე ნაწილის ფერს მოზაიკის შიგნით.

ნაბიჯი 1: როგორ მუშაობს

როგორ მუშაობს
როგორ მუშაობს
როგორ მუშაობს
როგორ მუშაობს
როგორ მუშაობს
როგორ მუშაობს
როგორ მუშაობს
როგორ მუშაობს

RoboPhoto არის ინსტალაცია, რომელიც შეიცავს კვარცხლბეკს დიდი წითელი ღილაკით, კომპიუტერი ეტიკეტიანი პრინტერით და პატარა IoT მოწყობილობა, რომელიც მართავს მომხმარებლის ინტერფეისს (ეკრანი და ღილაკი). ჩემს შემთხვევაში: RaspBerry 3B+.

  1. RoboPhoto მუშაობს საზოგადოებისთვის ხელმისაწვდომ ადგილას და არის (მისი ჩართვის შემდეგ) თვითდასაქმებული. სირბილისას გამვლელ ვიზიტორებს RoboPhoto წახალისებს დააჭიროთ მის დიდ წითელ ღილაკს.
  2. როდესაც ეს დიდი წითელი ღილაკი დაჭერილი იქნება, RoboPhoto გადაიღებს ვიზიტორის ფოტოს, რომელიც უბრალოდ დააჭირეთ ღილაკს Kinect კამერით.
  3. შემდეგ RoboPhoto გამოიყენებს თავის მოწინავე A. I. და სურათის დამუშავების უნარი შეცვალოს თითოეული ფოტო, რათა შეესაბამებოდეს ნაჭერს მოზაიკის შიგნით. ამის მისაღწევად RoboPhoto ხატავს თითოეული ფოტოს ფონს, რათა შეესაბამებოდეს სამიზნე ნაწილის ფერს წინასწარ დატვირთულ სურათში. რედაქტირების შემდეგ, RoboPhoto ამობეჭდავს რედაქტირებულ ფოტოს სტიკერზე და კოორდინატების ნაკრებთან ერთად, რომლებიც მიუთითებს ამ სტიკერის ადგილმდებარეობას მოზაიკაში.

  4. შემდეგ მომხმარებელს სთხოვენ მოათავსოს სტიკერი მოზაიკის სამიზნე ფურცელზე.
  5. და ამრიგად - მას შემდეგ, რაც ბევრი ადამიანი ეწვევა - გამოჩნდება ახალი ხელოვნების ნიმუში. მოზაიკის შესაქმნელად დაგჭირდებათ ბევრი ინდივიდუალური ნაჭერი. მე მივიღე ღირსეული შედეგი 600 ცალი

RoboPhoto ასევე შეუძლია იმუშაოს ერთჯერადი მომხმარებლის რეჟიმში.

ამ კონფიგურაციაში RoboPhoto ქმნის სრულ მოზაიკას ouf რედაქტირებული ფოტოებით ერთი მომხმარებლისგან. ღილაკზე დაჭერის შემდეგ, RoboPhoto გადაიღებს მომხმარებლის დაახლოებით 600 სხვადასხვა ფოტოს, შემდეგ კი შეასწორებს და დაალაგებს მათ, რათა შექმნან ერთი ახალი მოზაიკა, რომელიც შექმნილია წინასწარ შერჩეული სამიზნე სურათის შემდეგ.

ნაბიჯი 2: აპარატურის აწყობა

აპარატურის აწყობა
აპარატურის აწყობა
აპარატურის აწყობა
აპარატურის აწყობა

როგორც ზემოთ სურათზეა ნაჩვენები, Win 10 კომპიუტერი დაკავშირებულია Kinect კამერასთან. Kinect უნდა იყოს დაკავშირებული USB 3.0 -ით. იმ დროს, როდესაც მე შევქმენი RoboPhoto - არ იყო Raspberry Pi USB 3.0 -ით ხელმისაწვდომი.*

კომპიუტერი ასევე გამოიყენება ბეჭდვისთვის თანდართულ ეტიკეტზე. ჩემს შემთხვევაში Brother VC-500W. საკმაოდ იაფი საყოფაცხოვრებო ფერის ეტიკეტის პრინტერი. თუმცა, ის ძალიან ნელია. უმჯობესია გამოიყენოთ პროფესიონალი, თუ ეს შესაძლებელია.

დიდი წითელი ღილაკი მიმაგრებულია Raspberry Pi 3B+ - ზე. მხოლოდ 4 მავთული არის მიმაგრებული GPIO– ზე. ეს არის ერთადერთი შედუღება, რომელიც საჭიროა ამ ინსტრუქციაში. Pi ასევე გვაწვდის ჩვენს ვიზიტორს 7 '' TFT ეკრანზე HDMI- ით.

მისი მოწესრიგების მიზნით მე ავაშენე ხის კვარცხლბეკი, რომელიც ყველა ამ კომპონენტს იტევს.

კვარცხლბეკის გვერდით, კედელთან, მოთავსებულია ფურცელი, რომელიც შეიცავს სამიზნე ბადეს და კოორდინატებს (A1/A2). იმის გამო, რომ ლეიბლის პრინტერი მე ვიყენებ მაქსიმუმს labelwidth = 2, 5 სმ, ამ კვადრატის ყველა კვადრატი ზომავს 2, 5 სმ x 2, 5 სმ.

*დღეს, Raspberry Pi4 გთავაზობთ USB3.0- ს. Alse W10 შეიძლება გაშვებული იყოს მოწყობილობაზე. ასე რომ თეორიულად შესაძლებელი უნდა იყოს RoboPhoto v2.0 კომპიუტერის გამოყენების გარეშე. ალბათ Covid '19 მომცემს საკმარის დროს საკუთარ თავზე, რომ მალე გამოვაქვეყნო ასეთი ინსტრუქცია.

ნაბიჯი 3: კოდის წერა

კოდის წერა
კოდის წერა
კოდის წერა
კოდის წერა

კოდი

RoboPhoto შეიქმნა VisualStudio– სთან ერთად, როგორც გამოსავალი ორი პროექტით:

  1. Windows Forms პროგრამა კომპიუტერზე მასპინძლობს TCP სერვერს და ამუშავებს Kinect შეყვანას
  2. Raspberry Pi 3B+ მასპინძლობს TCP კლიენტს UWP– ის სათავეში (დაყენებულია როგორც დამწყები აპლიკაცია), რათა გაუმკლავდეს ღილაკზე დაჭერის მოვლენებს და მომხმარებელს მიაწოდოს გამოხმაურება მისი 7’’ TFT ეკრანის საშუალებით.

დიაგრამაზე ზემოთ, მე შევეცადე წარმოგიდგინოთ რას აკეთებს ჩემი რბილი. ვიზუალური სტუდია, რომელიც მე დავწერე ამ (აბსოლუტურად 100% სამუშაო) RoboPhoto გადაწყვეტის შესაქმნელად არის მოცემული ინსტრუქციით. თუმცა, მე უნდა გავაფრთხილო ყველა, ვინც ამ ფაილს გადმოაგდებს: კოდი, რომელიც მე დავწერე, შორს არის ლამაზიდან და ხშირად უკავშირდება ჩემს dev-PC- ს. ამიტომ მე მოვუწოდებ ყველას, რომ შექმნან უკეთესი, ლამაზი და მყარი გადაწყვეტა.

1drv.ms/u/s!Aq7eBym1bHDKkKcigYzt8az9WEYOOg…

ქსელი

მაგალითის კოდში, Pi- ს კოდი განლაგებულია Visual Studio– ს საშუალებით ჩემს ქსელში IPAddress– ზე. თქვენ ალბათ უნდა შეცვალოთ ეს თქვენივე შესაფერისად. ამისათვის - მარჯვენა ღილაკით დააწკაპუნეთ ARM კლიენტის პროექტზე ვიზუალურ სტუდიაში გადაწყვეტის გახსნის შემდეგ, შემდეგ შეარჩიეთ თვისებები და გაააქტიურეთ დისტანციური აპარატის მნიშვნელობა თქვენი Pi- ს IPAddress– ში. ასევე თქვენ უნდა დაუშვათ ტრაფიკი კლიენტიდან სერვერზე პორტში 8123 პორტში Windows Firewall სერვერზე (კომპიუტერი). თუ თქვენ აწარმოებთ გამოსავალს Visual Studio– სგან, მან უნდა მოგთხოვოთ ამის გაკეთება U.

კოდირებისას მე მქონდა ბევრი პრობლემა W32 & UWP– ის სწორად კომუნიკაციისთვის. დავიწყე მუშაობა კლიენტისა და სერვერის ორი ცალკეული კლასის გამოყენებით: resp MyEchoClient.cs (ARM კლიენტში) და ConnectionClient.cs (კლიენტის კავშირები სერვერში).

მოზაიკის ფაილები - საბაჟო კლასი

RoboPhoto ქმნის მოზაიკას სამიზნე გამოსახულების იმიტაციისთვის. ეს სამიზნე სურათი და ყველა ინდივიდუალური ფოტოსურათი, რომლებიც ერთად ქმნიან მოზაიკას, ისევე როგორც თითოეული RoboPhoto- ს ზოგიერთი სხვა თვისება ინახება ფაილურ სისტემაში. ჩემი თანმხლები კოდი იყენებს ფაილების და საქაღალდეების ნაკრებებს c: / tmp / MosaicBuilder. ამ საქაღალდეში კოდი წაიკითხავს ყველა ქვესაქაღალდეს საქაღალდის სახელით, რომელიც იწყება [prj_] - ით, როგორც მოზაიკის პროექტის საქაღალდეები. ყველა ამ [prj_] საქაღალდეში ის შეეცდება გახსნას პროექტის ფაილი სახელწოდებით [_projectdata.txt], რომელიც შეიცავს ყველა ინფორმაციას საჭირო თითოეული პროექტისათვის.

ასეთი პროექტის ფაილი შედგება:

  1. ამ პროექტის სამიზნე სურათის სრული ბილიკი და ფაილის სახელი
  2. სრული გზა, სადაც ინახება ამ პროექტის ინდივიდუალური ფოტომასალა (ნაჭრები)
  3. მოზაიკის სვეტების რაოდენობა
  4. რიგების რაოდენობა, რომელიც მოზაიკა შეიცავს

პროექტების მაგალითი მოცემულია zip ფაილში: / slnBBMosaic2 / wfMosaicServerKinect / bin / x86 / Debug / prj_xxx

C# სერვერის კოდში ყველა მოზაიკის დამუშავება ხდება ინდივიდუალური კლასის საშუალებით: BBMosaicProject.cs

Microsoft Kinect v2.0 - მწვანე ეკრანი

უბრალოდ ფოტოების გადაღება ნებისმიერ კამერას გააკეთებს. მაგრამ მე გამოვიყენე Microsoft Kinect v2.0 ფერადი სურათებისა და სიღრმისეული სურათების დასაკავშირებლად. ამ გზით შეიძლება შეიქმნას მწვანე ეკრანის ეფექტი. Kinect– დან მიღებული ყველა ფერადი სურათის ფონი შეიცვლება ერთგვაროვანი მწვანე ზედაპირით (BBBackgroundRemovalTool.cs).

მითითება Microsoft. Kinect დაემატა სერვერის პროექტს.

ემგუ

იმის გამო, რომ ჩვენ უნდა ვიყოთ დარწმუნებული, რომ ადამიანი არის ფოტოზე, რომელიც გადაღებულია ღილაკის დაჭერისას, RoboPhoto- ს დაემატა სახის ამოცნობის შესაძლებლობები.

www.nuget.org/packages/Emgu. CV/3.4.3.3016

მხოლოდ მაშინ, როდესაც ადამიანი სურათზეა, ამ სურათის მწვანე ეკრანი შეიცვლება ერთიანი ფერადი ზედაპირით, რომლის ფერიც კოდის ტოლია მოზაიკის სამიზნე ნაწილის საშუალო ფერის, ეს სურათი გახდება.

ნაბიჯი 4: მადლობა

Გმადლობთ
Გმადლობთ

გმადლობთ, რომ კითხულობთ ჩემს ინსტრუქციას. ეს იყო ჩემი პირველი. იმედი მაქვს ისიამოვნეთ.

გირჩევთ: