Мазмұны:

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 бір пайдаланушының толық мозаикасын жасайды.

Жабдықтар

  • Visual Studio және IoT пакеттері бар Windows 10 компьютері
  • Microsoft Windows 10 IoT орнатылған Raspberry Pi 3B+
  • Түсті жапсырмалы принтер (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 бір пайдаланушыдан өңделген фотосуреттердің толық мозаикасын жасайды. Түймені басқаннан кейін RoboPhoto пайдаланушының 600-ге жуық түрлі фотосуреттерін түсіреді, содан кейін олардың барлығын алдын ала таңдалған кескіннен кейін жасалған бір жаңа мозаика қалыптастыру үшін өңдейді және реттейді.

2 -қадам: аппараттық құралдарды жинау

Аппараттық құралдарды жинау
Аппараттық құралдарды жинау
Аппараттық құралдарды жинау
Аппараттық құралдарды жинау

Жоғарыдағы суретте көрсетілгендей, Win 10 ДК Kinect камерасына қосылған. Kinect USB 3.0 арқылы қосылуы керек. Мен RoboPhoto жасаған кезде - USB 3.0 бар Raspberry Pi жоқ*.

ДК қоса берілген жапсырма принтеріне басып шығаруды өңдеу үшін де қолданылады. Менің жағдайда ағайынды VC-500W. Тұрмыстық түсті жапсырманың арзан принтері. Алайда, бұл өте баяу. Мүмкін болса, кәсіби мамандарды қолданған дұрыс.

Үлкен қызыл түйме Raspberry Pi 3B+-ке бекітілген. GPIO -ға тек 4 сым бекітілген. Бұл нұсқаулықта қажет жалғыз дәнекерлеу. Pi сонымен қатар келушілерге HDMI арқылы 7 дюймдік TFT экраны арқылы жауап береді.

Оны ретке келтіру үшін мен осы компоненттердің барлығын ұстайтын ағаш тұғыр жасадым.

Тұғырдың жанында қабырғаға мақсатты тор мен координаттары бар қағаз парағы орналастырылған (A1/A2). Мен қолданған жапсырма принтері жапсырма ені = 2, 5 см -ге дейін максималды болғандықтан, бұл тордағы барлық квадраттар 2, 5см х 2, 5см.

*Бүгінде Raspberry Pi4 USB3.0 ұсынады. Басқа W10 құрылғыда іске қосылуы мүмкін. Демек, компьютерді пайдаланбай RoboPhoto v2.0 құру теориялық тұрғыдан мүмкін болуы керек. Мүмкін, Covid '19 маған жақын арада осындай нұсқаулықты шығаруға жеткілікті уақыт береді.

3 -қадам: кодты жазу

Кодексті жазу
Кодексті жазу
Кодексті жазу
Кодексті жазу

Код

RoboPhoto VisualStudio көмегімен екі жобадан тұратын шешім ретінде құрылды:

  1. Компьютердегі Windows Forms қосымшасы TCP серверін орналастырады және Kinect кірісін өңдейді
  2. Raspberry Pi 3B+ UWP басқаратын қосымшаның ішінде TCP клиентін орналастырады (стартап-қосымша ретінде орнатылады) Button басу оқиғаларын өңдеуге және пайдаланушыға 7 дюймдік TFT экраны арқылы кері байланыс беруге мүмкіндік береді.

Жоғарыдағы диаграммада мен сізге жұмсақтықтың не істеп жатқаны туралы түсінік беруге тырыстым. Мен оны жазу үшін жазған Visual Studio (мүлдем 100% жұмыс істейтін) RoboPhoto шешімі осы нұсқаулықпен қамтамасыз етілген. Бірақ мен бұл файлды төмен түсіретіндердің барлығына ескертуім керек: мен жазған код әдемі емес және көбінесе менің жеке компьютеріме байланысты. Сондықтан мен барлығын жақсы, жақсы және тұрақты шешім жасауға шақырамын.

1drv.ms/u/s!Aq7eBym1bHDKkKcigYzt8az9WEYOOg…

Желі

Мысал кодында Pi коды Visual Studio арқылы менің желідегі IPAddress -ке орналастырылады. Сіз мұны өзіңізге сәйкес етіп өзгертуіңіз керек шығар. Мұны істеу үшін - Visual Studio бағдарламасында шешімді ашқаннан кейін ARM клиенттік жобасын тінтуірдің оң жақ түймешігімен нұқыңыз, содан кейін қасиеттерді таңдаңыз және Remote машинасының мәнін өзіңіздің Pi IP мекенжайына жасаңыз. Сондай -ақ, сервердегі Windows Firewall ішіндегі 8123 портындағы клиенттен серверге трафикке рұқсат беру қажет. Егер сіз шешімді 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 -қадам: рахмет

Рақмет сізге
Рақмет сізге

Менің нұсқаулықты оқығаныңыз үшін рахмет. Бұл менің бірінші болды. Сізге ұнады деп үміттенемін.

Ұсынылған: