Агуулгын хүснэгт:

RoboPhoto - Олон нийтэд зориулсан мозайк үүсгэгч: 4 алхам
RoboPhoto - Олон нийтэд зориулсан мозайк үүсгэгч: 4 алхам

Видео: RoboPhoto - Олон нийтэд зориулсан мозайк үүсгэгч: 4 алхам

Видео: RoboPhoto - Олон нийтэд зориулсан мозайк үүсгэгч: 4 алхам
Видео: Florence, Italy Walking Tour - NEW - 4K with Captions: Prowalk Tours 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 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: Код бичих

Код бичих
Код бичих
Код бичих
Код бичих

Код

RoboPhoto нь VisualStudio -ийн тусламжтайгаар хоёр төслийн шийдэл болгон бүтээгдсэн болно.

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

Дээрх диаграм дээр миний зөөлөн хийж байгаа зүйлийн талаар танд өгөхийг хичээсэн. Үүнийг бий болгохын тулд бичсэн Visual Studio (үнэхээр 100% ажилладаг) RoboPhoto шийдлийг энэхүү зааварчилгаагаар хангаж өгсөн болно. Гэсэн хэдий ч би энэ файлыг доош буулгаж буй бүх хүмүүст анхааруулах ёстой: Миний бичсэн код нь тийм ч хол биш бөгөөд ихэнхдээ миний dev-PC-тэй холбоотой байдаг. Тиймээс би хүн бүрийг илүү сайн, илүү сайн, тогтвортой шийдлийг бий болгохыг уриалж байна.

1drv.ms/u/s!Aq7eBym1bHDKkKcigYzt8az9WEYOOg…

Сүлжээ

Жишээ кодонд Pi -ийн кодыг Visual Studio -ээр дамжуулан миний сүлжээнд байгаа IPAddress -д байршуулдаг. Та үүнийг өөрийнхөөрөө тааруулж өөрчлөх хэрэгтэй болов уу. Үүнийг хийхийн тулд шийдлийг Visual Studio дээр нээсний дараа ARM клиент төсөл дээр хулганы баруун товчийг дараад шинж чанаруудыг сонгоод Remote машиныг өөрийн Pi -ийн IP хаяг руу оруулна уу. Мөн та сервер дээрх (PC) 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 - Greenscreen

Зүгээр л зураг авахын тулд ямар ч камер хийх болно. Гэхдээ би Microsoft Kinect v2.0 -ийг ашиглан өнгөт дүрс, гүнзгийрүүлсэн зургийг нэгтгэсэн. Ингэснээр ногоон дэлгэцийн эффект үүсгэж болно. Kinect -аас хүлээн авсан бүх өнгөт зургийн арын дэвсгэрийг жигд ногоон гадаргуугаар солино (BBBackgroundRemovalTool.cs).

Microsoft. Kinect -ийн лавлагаа серверийн төсөлд нэмэгдсэн.

EMGU

Товчлуур дарагдсан үед авсан гэрэл зураг дээр хүн байгаа гэдэгт итгэлтэй байх ёстой тул RoboPhoto -д нүүр таних чадвар нэмэгдсэн.

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

Зөвхөн зураг дотор байгаа хүн байх үед энэ зурган дээрх ногоон дэлгэцийг жигд өнгөтэй гадаргуугаар солих бөгөөд энэ зурган дээрх мозайк дахь зорилтот хэрэгслийн дундаж өнгөтэй тэнцэх өнгөний кодтой болно.

Алхам 4: Баярлалаа

Баярлалаа
Баярлалаа

Миний зааврыг уншсанд баярлалаа. Энэ бол миний анхных байсан. Танд таалагдсан гэж найдаж байна.

Зөвлөмж болгож буй: