Мазмуну:

RoboPhoto - коомчулук үчүн мозаикалык генератор: 4 кадам
RoboPhoto - коомчулук үчүн мозаикалык генератор: 4 кадам

Video: RoboPhoto - коомчулук үчүн мозаикалык генератор: 4 кадам

Video: RoboPhoto - коомчулук үчүн мозаикалык генератор: 4 кадам
Video: 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 PC
  • 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 PC Kinect камерасына туташкан. Kinect USB 3.0 аркылуу туташышы керек. Мен RoboPhoto жаратканымда - USB 3.0 менен Raspberry Pi жок болчу*.

ПК тиркелген этикеткага басып чыгарууну иштетүү үчүн дагы колдонулат. Менин учурда бир тууган VC-500W. Бир кыйла арзан үй түстүү этикетка принтери. Бирок, бул өтө жай. Мүмкүн болсо профессионалистти колдонгонуңуз жакшы.

Чоң кызыл баскыч Raspberry Pi 3B+тиркелет. GPIOго болгону 4 зым тиркелет. Бул ушул Нускамада талап кылынган жалгыз ширетүү. Pi ошондой эле HDMI аркылуу 7 TFT экраны аркылуу биздин конокко кайтарым берет.

Аны иретке келтирүү үчүн, мен бул компоненттердин бардыгын камтыган жыгачтан пьедестал курдум.

Пьедесталдын жанында, дубалга каршы, максаттуу сетка жана координаттары бар кагаз баракчасы жайгаштырылган (A1/A2). Мен колдонгон энбелгилердин принтери максималдуу түрдө labelwidth = 2, 5 см болгондуктан, бул тордогу бардык квадраттар 2, 5cm x 2, 5cm.

*Бүгүн, Raspberry Pi4 USB3.0 сунуш кылат. Alse W10 түзмөктө иштетилиши мүмкүн. Ошентип, теориялык жактан ЖК колдонбостон RoboPhoto v2.0 түзүү мүмкүн болушу керек. Балким, Covid '19 мага жакында мындай Нускаманы жарыялоо үчүн жетиштүү убакыт берет.

3 -кадам: Код жазуу

Код жазуу
Код жазуу
Код жазуу
Код жазуу

Code

RoboPhoto VisualStudio менен эки долбоор менен чечим катары түзүлгөн:

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

Жогорудагы диаграммада мен сизге менин жумшагым эмне кылып жатканын түшүнүүгө аракет кылдым. Мен муну түзүү үчүн жазган Visual Studio (таптакыр 100% иштеген) RoboPhoto чечими ушул Нускамалык менен камсыздалган. Бирок мен бул файлды түшүргөндөрдүн баарына эскертүүм керек: Мен жазган код сулуу эмес жана көбүнчө менин dev-PCге байланган. Ошентип, мен бардыгын жакшыраак, жагымдуу жана туруктуу чечим чыгарууга үндөйм.

1drv.ms/u/s!Aq7eBym1bHDKkKcigYzt8az9WEYOOg…

Тармак

Мисал кодунда, Пинин коду 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 шилтемеси сервер долбооруна кошулду.

EMGU

Биз баскыч басылганда тартылган сүрөттө адамдын бар экенине ишенишибиз керек, анткени RoboPhotoго жүздү таануу мүмкүнчүлүктөрү кошулган.

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

Сүрөттө бир адам болгондо гана, бул сүрөттөгү жашыл экрандын ордуна бирдей түстүү бет пайда болот, мозаиканын болуучу объектисинин орточо түсүнө барабар болгон түстүү коддор бул сүрөттө болот.

4 -кадам: рахмат

Рахмат
Рахмат

Менин көрсөтмөмдү окуганыңыз үчүн рахмат. Бул менин биринчи болгон. Сизге жакты деп үмүттөнөм.

Сунушталууда: