وب GIS :پیشرفت های اخیر در معماری و برنامه ها – همکاران عزیز،دهه گذشته شاهد توسعه پویا برنامه های کاربردی وب سیستم های اطلاعات جغرافیایی (Web GIS) بوده است. در یک بازه زمانی نسبتاً کوتاه، Web GIS از وبسایتهای سادهای که عمدتاً بر ارائه و انتشار دادهها متمرکز شدهاند، به برنامههای کاربردی آنلاین تعاملی با اهداف مختلف تبدیل شدهاند. از نقطه نظر معماری، این تکامل با دو رویکرد متفاوت به ترکیب کلاسیک سه لایه مشتری-سرور به دست آمده است. مورد اول منطق کلاسیک “Tin Client” را در زمینه معماری سرویس گرا (SOA) گسترش می دهد، که در آن هر دو سطح دسترسی به داده و منطق تجاری در ابر قرار دارند، و عملکردهای کلاینت Web GIS به مقداردهی اولیه رویه های راه دور و نمایش محدود می شوند. نتایج آنها فلسفه ساخت و ساز وب GIS دیگر شامل “مشتری ضخیم” است. و رویکردهای ترکیبی، که در ازای پاسخگویی بهتر و افزایش تعامل، عملکرد بالاتری را از ماشین مشتری طلب می کنند. این پیشرفت ها در طراحی های معماری وب GIS با در دسترس بودن راه حل های سخت افزاری و نرم افزاری جدید تحریک شده است. به ویژه، شتاب سختافزار WebGL امکان معرفی فناوری کلاینت وب GIS کاملاً سهبعدی را با استفاده از کتابخانه منبع باز CesiumJS فراهم کرد، در حالی که ابزارهای DHTML برای پردازش و تجزیه و تحلیل دادههای مکانی مانند Javascript Topology Suite (JSTS) و Cesium Analytics SDK تغییر میدهند. پارادایم Web GIS جلوتر حتی بیشتر به سمت یک کلاینت ضخیم کاملاً تعاملی که کاملاً در داخل یک مرورگر وب قرار دارد. این انعطافپذیری معماری راه را برای طیف گستردهای از برنامههای Web GIS، از وبسایتهای ارائه داده، هموار کرده است. از طریق سیستمهای پشتیبانی تصمیم (DSS) مجهز به قابلیتهای شبیهسازی، سیستمهای پردازش و تجزیه و تحلیل داده از راه دور، راهحلهای نقشهبرداری موبایل، تا برنامههای واقعیت مجازی و واقعیت افزوده. این شماره ویژه در نظر دارد آخرین تحقیقات در زمینه معماری و برنامه های GIS وب را جمع آوری کند. موضوعات این شماره ویژه شامل موارد زیر است اما محدود به آنها نیست:
– کاربردهای جدید از فن آوری های تاسیس شده وب GIS.
– پیاده سازی موبایل GIS وب.
– معماری وب GIS برای پردازش و تجزیه و تحلیل داده های چند بعدی.
– وب GIS برای پردازش و تحلیل داده های بزرگ؛
– کاربردهای واقعیت مجازی (VR) و واقعیت افزوده (AR) وب GIS.
– ادغام هوش مصنوعی در برنامه های GIS وب.
– پیشرفت در Web GIS برای تجزیه و تحلیل Geovisual.
دکتر سعید جوی زاده -09382252774
کلید واژه ها
- وب
- GIS
- وب-GIS
- GIS موبایل
- AR/VR GIS
- ابر GIS
- معماری نرم افزار
- پردازش داده ها
Web GIS در عمل : یک رابط کاربری طبیعی مایکروسافت کینکت برای ناوبری Google Earth
این مقاله استفاده از حسگرهای عمق مانند مایکروسافت کینکت و ایسوس Xtion را برای ارائه یک رابط کاربری طبیعی (NUI) برای کنترل کره های مجازی سه بعدی (سه بعدی) مانند Google Earth (از جمله حالت نمای خیابان آن)، Bing Maps را پوشش می دهد. 3 بعدی و باد جهانی ناسا. این مقاله دستگاه مایکروسافت کینکت را معرفی میکند و به طور مختصر نحوه عملکرد آن (فناوری زیربنایی توسط PrimeSense) و همچنین جذب بازار و پتانسیل کاربردی آن فراتر از هدف اصلی آن به عنوان کنترلکننده سرگرمیهای خانگی و بازیهای ویدیویی را توضیح میدهد. درایورهای مختلف نرم افزار موجود برای اتصال دستگاه کینکت به رایانه شخصی (رایانه شخصی) نیز پوشش داده شده است، و مزایا و معایب مقایسه ای آنها به طور خلاصه مورد بحث قرار گرفته است. ما تعدادی از رویکردها و مثالهای کاربردی را برای کنترل کرههای مجازی سه بعدی با استفاده از حسگر Kinect بررسی میکنیم، سپس Kinoogle را توصیف میکنیم. یک رابط Kinect برای تعامل طبیعی با Google Earth که توسط دانشجویان دانشگاه A&M تگزاس توسعه یافته است. خوانندگان علاقه مند به امتحان کردن برنامه بر روی سخت افزار خود می توانند یک بایگانی Zip (همراه با نسخه به عنوان فایل های اضافی) دانلود کنند.1 ، 2 ، و 3 ) که حاوی “بسته نصب کینوگل برای رایانه های شخصی ویندوز” است. در نهایت، برخی از جنبههای قابلیت استفاده Kinoogle و NUIهای مشابه برای کنترل کرههای مجازی سه بعدی (شامل بهبودهای احتمالی آینده) را مورد بحث قرار میدهیم و تعدادی «سناریوهای استفاده» منحصربهفرد و کاربردی را پیشنهاد میکنیم که در آن چنین NUIهایی میتوانند در جهتیابی سه بعدی مفید باشند. کره مجازی، در مقایسه با ماوس معمولی/موس سه بعدی و رابط های مبتنی بر صفحه کلید.
زمینه
کینکت چیست؟
کینکت که در نوامبر 2010 راه اندازی شد، یک دستگاه ورودی USB (گذرگاه سریال جهانی) توسط مایکروسافت است که کاربران را قادر می سازد تا بدون نیاز به لمس فیزیکی کنترلر بازی یا هر نوع شی، بازی ها و سایر برنامه ها را کنترل کرده و به طور طبیعی با آنها تعامل داشته باشند. Kinect از طریق یک رابط کاربری طبیعی با ردیابی حرکت بدن کاربر و با استفاده از حرکات و دستورات گفتاری [ 1 ، 2 ] به این امر دست می یابد. کینکت رکورد جهانی گینس را به عنوان سریعترین فروش دستگاه الکترونیکی مصرفی با فروش بیش از 10 میلیون دستگاه تا 9 مارس 2011 دارد [ 3 ].
کینکت از فناوری شرکت اسرائیلی PrimeSense استفاده می کند که در زمان واقعی عمق، رنگ و داده های صوتی صحنه اتاق نشیمن را تولید می کند. Kinect در همه شرایط نور اتاق کار می کند، چه در تاریکی کامل و چه در یک اتاق کاملاً روشن، و نیازی به پوشیدن یا نگه داشتن چیزی توسط کاربر ندارد [ 4 ، 5 ] ( ر.ک. Sony’s PlayStation Move و Nitendo Wii Remote controller). PrimeSense همچنین با ایسوس همکاری کرد تا یک دستگاه سازگار با رایانه شخصی مشابه Kinect را توسعه دهد که آنها آن را ASUS Xtion نامیدند و در سه ماهه دوم سال 2011 عرضه کردند [ 2 ، 6 ].
کینکت یک نوار افقی است که با یک محور موتوری به یک پایه کوچک متصل می شود (برای تعقیب کاربر در اطراف، در صورت نیاز)، و به گونه ای طراحی شده است که در بالا یا زیر صفحه نمایش کامپیوتر یا تلویزیون قرار گیرد (شکل 1 ) . این دستگاه دارای دوربین رنگی RGB (قرمز سبز آبی)، حسگر عمق (با استفاده از پروژکتور مادون قرمز–IR و دوربین مادون قرمز) و میکروفون چند آرایه ای با قابلیت حذف نویز (ساخته شده از چهار میکروفون، که می تواند به آن کمک کند) می باشد. برای تشخیص موقعیت یک فرد در فضای سه بعدی (سه بعدی) [ 5 ، 7 ]. Kinect همچنین دارای یک شتابسنج است (احتمالاً برای سنجش شیب و شیب و احتمالاً تثبیتکننده تصویر استفاده میشود [ 7]]). با اجرای سفتافزار اختصاصی (نرمافزار دستگاه داخلی)، این مؤلفهها با هم میتوانند قابلیتهای ضبط حرکت سهبعدی، تشخیص ژستها، تشخیص چهره و قابلیتهای تشخیص صدا را ارائه دهند [ 2 ، 4 ]. (عملکردها، دقت و قابلیت استفاده نیز تا حد زیادی به درایورهای دستگاه و نرمافزار مرتبطی که روی دستگاه میزبان اجرا میشوند (که میتواند رایانه شخصی ویندوز، مک یا لینوکس، یا کنسول بازی ایکسباکس 360 باشد) و برای دسترسی به سختافزار Kinect استفاده میشود، بستگی دارد. بحث در مورد رانندگان در زیر.)
Kinect قادر است به طور همزمان دو کاربر فعال را ردیابی کند [ 2 ، 8 ]. برای ردیابی کل بدن، سر تا پا، فاصله توصیه شده کاربر از حسگر تقریباً 1.8 متر برای یک کاربر است. هنگامی که دو نفر به طور همزمان برای ردیابی وجود دارند، باید تقریباً 2.5 متر از دستگاه فاصله بگیرند. Kinect به حداقل قد کاربر 1 متر نیاز دارد (شکل های فاصله ایستاده و ارتفاع کاربر طبق اطلاعات چاپ شده روی جعبه خرده فروشی مایکروسافت کینکت است).
از آنجایی که مکانیزم شیب موتوری Kinect به انرژی بیشتری نسبت به آنچه که از طریق پورتهای USB تامین میشود نیاز دارد، دستگاه از یک کانکتور اختصاصی استفاده میکند و با یک کابل منبع تغذیه ویژه ارسال میشود که اتصال را به USB و اتصالات برق جداگانه تقسیم میکند و برق از منبع تغذیه تامین میشود. برق از طریق یک آداپتور AC/DC (شکل 1 ).
Kinect را می توان در بریتانیا با قیمت کمتر از 100 پوند برای هر واحد جدید خریداری کرد ( https://Amazon.co.uk قیمت مصرف کننده به پوند، از جمله مالیات بر ارزش افزوده، از جولای 2011).
پشتیبانی از درایور کامپیوتر
در دسامبر 2010، OpenNI و PrimeSense درایورهای منبع باز Kinect و میان افزار ردیابی حرکت (به نام NITE) را برای رایانه های شخصی با ویندوز (7، Vista و XP)، اوبونتو و MacOSX منتشر کردند [9 ، 10 ] . FAAST (Flexible Action and Articulated Skeleton Toolkit) میان افزاری است که در موسسه فناوری های خلاق دانشگاه کالیفرنیای جنوبی (USC) توسعه یافته است که هدف آن تسهیل ادغام کنترل تمام بدن با برنامه های واقعیت مجازی و بازی های ویدیویی هنگام استفاده از عمق سازگار با OpenNI است. حسگرها و درایورها [ 11 ، 12 ].
در ژوئن 2011، مایکروسافت یک کیت توسعه نرم افزاری غیرتجاری Kinect (SDK) را برای ویندوز منتشر کرد که شامل درایورهای رایانه شخصی سازگار با ویندوز 7 برای دستگاه Kinect است (SDK مایکروسافت از نسخه های ویندوز قدیمی یا سایر سیستم عامل ها پشتیبانی نمی کند) [13 ] . SDK مایکروسافت به توسعه دهندگان اجازه می دهد تا برنامه های کاربردی با Kinect را در Microsoft Visual Studio 2010 با استفاده از C++، C# یا Visual Basic بسازند (شکل 2 ). مایکروسافت در حال برنامه ریزی برای انتشار نسخه تجاری Kinect برای Windows SDK با پشتیبانی از قابلیت های پیشرفته تر دستگاه است [ 2 ].
همچنین مجموعه سومی از درایورهای Kinect برای رایانه های شخصی ویندوز، مک و لینوکس توسط پروژه منبع باز OpenKinect (libFreeNect) وجود دارد [ 14 ]. پلتفرم CL NUI آزمایشگاه Code یک درایور امضا شده و SDK برای چندین دستگاه Kinect در ویندوز XP، ویستا و 7 ارائه می دهد [ 15 ].
سه مجموعه از درایورها از نظر توان مالی بسیار متفاوت هستند. برای مثال، کینکت رسمی مایکروسافت برای Windows SDK نیازی به حالت کالیبراسیون ندارد. نسخه ی نمایشی «Shape Game» ارائه شده به همراه SDK بلافاصله پس از نصب SDK، بدون نیاز به کالیبره کردن حالت کاربر، به خوبی (برای یک یا دو کاربر فعال) به خوبی کار می کند [ 8 ]. این به تجربه عالی Kinect Digital Out-Of-Box (OOBE) برای کاربران رایانه شخصی کمک می کند که با OOBE ارائه شده به کاربران کنسول بازی Kinect Xbox 360 قابل مقایسه است [ 16]]. با این حال، مایکروسافت کینکت برای ویندوز SDK بتا (نسخه ژوئن 2011) تشخیص حرکات انگشت/دست یا ردیابی فقط با دست را ارائه نمی دهد و به ردیابی اسکلتی محدود می شود. درایورهای OpenNI از این نظر انعطاف پذیرتر هستند، اما از جنبه منفی، نیاز به حالت کالیبراسیون دارند و فاقد پردازش صوتی پیشرفته (تشخیص گفتار) است که توسط SDK رسمی مایکروسافت ارائه شده است [ 17-20 ] .
برنامه های کاربردی فراتر از بازی کردن
بسیاری از توسعه دهندگان و گروه های تحقیقاتی در سراسر جهان در حال بررسی کاربردهای احتمالی Kinect (و دستگاه های مشابه مانند ASUS Xtion [ 6 ]) هستند که فراتر از هدف اصلی این حسگرها به عنوان کنترل کننده های سرگرمی خانگی و بازی های ویدیویی است [ 2 ، 21 ، 22 ]. . این برنامههای کاربردی جدید شامل کنفرانسهای ویدئویی سه بعدی و پیشرفته (به عنوان مثال، کار انجام شده توسط الیور کریلوس در دانشگاه کالیفرنیا دیویس با ترکیب دو دستگاه Kinect [ 23 ، 24 ]، و تحقیقات “کنفرانس Kinected” توسط Lining Yao، Anthony DeVincenzi و همکاران در آزمایشگاه رسانه MIT برای تقویت تصویربرداری ویدیویی با عمق و صوت کالیبره شده [ 25 ، 26]])؛ استفاده از کینکت برای کمک به پزشکان در تشخیص طیفی از اختلالات روانی در کودکان (تحقیق توسط نیکولاوس پاپانیکوولوپولوس و همکارانش در دانشگاه مینه سوتا [ 27 ]). و استفاده عملی تر از دستگاه برای کنترل نمایشگرهای تصویربرداری پزشکی در حین جراحی بدون نیاز به لمس فیزیکی چیزی، در نتیجه احتمال آلودگی دست در اتاق های عمل را کاهش می دهد (به عنوان مثال، کار انجام شده در پروژه Virtopsy در موسسه پزشکی قانونی دانشگاه از برن، سوئیس [ 28 ]، و سیستمی که در حال حاضر توسط Calvin Law و تیم او در مرکز علوم بهداشتی Sunnybrook تورنتو استفاده می شود [ 29 ]، و همچنین نشان دادن مفهوم مشابه توسط InfoStrat، یک شرکت خدمات فناوری اطلاعات مستقر در ایالات متحده [29]. 30 ]).
برنامه های کاربردی Kinect مبتنی بر رایانه نیز برای کنترل محیط های مجازی سه بعدی غیر بازی (مدل های سه بعدی، جهان های مجازی و کره های مجازی) توسعه یافته اند، به عنوان مثال، [31 ، 32 ] . این محیطها ویژگیهای مشترک زیادی با بازیهای ویدیویی سه بعدی دارند، دامنه هدف اصلی حسگر کینکت. Evoluce، یک شرکت آلمانی متخصص در رابط های کاربر طبیعی، یک راه حل تجاری برای تعامل چند حرکتی با استفاده از فناوری سنجش عمق سه بعدی Kinect تحت ویندوز 7 ارائه می دهد [33 ] . تای فان در موسسه فناوریهای خلاقانه دانشگاه کالیفرنیای جنوبی نرمافزاری را بر اساس جعبه ابزار OpenNI برای کنترل آواتار کاربر در دنیای مجازی سه بعدی Second Life نوشت .و حرکات اجتماعی کاربر را به صورت طبیعی به آواتار منتقل کنید [ 34 ].
FAAST [ 11 ] با کلیدهای اتصال مناسب (برای ترسیم حرکات و حرکات کاربر به عملکردهای مناسب صفحه کلید و ماوس) برای پیمایش Google Earth و نمای خیابان (شکل 3) استفاده شده است [ 35 ، 36 ] . InfoStrat اخیراً استفاده از Motion Framework [ 37 ] خود را برای کنترل نقشه های Bing با حسگر Kinect نشان داده است [ 38 ]. آنها همچنین از GIS (سیستم اطلاعات جغرافیایی) مبتنی بر نقشههای بینگ سفارشی و برنامههای مصورسازی دادهها برای نمایش توانایی Motion Framework خود برای کار با ورودی چند وجهی از حسگر حرکت (مانند مایکروسافت کینکت)، چند لمسی، تشخیص گفتار، قلم، استفاده کردند. و دستگاه های ماوس [ 39 ، 40]. Response Ltd، یک شرکت کوچک مجارستانی، با تکیه بر کار InfoStrat (که حرکات چند لمسی مانند نیشگون گرفتن و زوم را به Kinect آورد)، راه حلی جایگزین برای پیمایش نقشه های Bing با استفاده از حسگر Kinect ایجاد و به نمایش گذاشت، که به ادعای آنها، یک راه حل را ارائه می دهد. بیشتر ‘تجربه شبیه Kinect’ با اجازه دادن به کاربر برای استفاده از کل بدن خود برای کنترل نقشه [ 41 ، 42 ].
Kinoogle: یک رابط Kinect برای تعامل طبیعی با Google Earth
در این مقاله، Kinoogle، یک رابط تعاملی طبیعی برای Google Earth با استفاده از مایکروسافت کینکت را معرفی میکنیم. Kinoogle به کاربر اجازه می دهد تا Google Earth را از طریق یک سری حرکات دست و تمام بدن کنترل کند [ 43 ، 44 ]. ما با توصیف طراحی نرمافزار و ماژولهای زیربنایی Kinoogle شروع میکنیم، سپس دستورالعملهای کاربری دقیقی را برای خوانندگانی که علاقهمند به آزمایش آن هستند ارائه میکنیم.
سخت افزار و نرم افزار شخص ثالث
سخت افزار اصلی مورد استفاده در کینوگل مایکروسافت کینکت است. Kinect یک نقشه عمق را در زمان واقعی ایجاد می کند، که در آن هر پیکسل با تخمینی از فاصله بین سنسور Kinect و نزدیکترین شی در صحنه در محل آن پیکسل مطابقت دارد. بر اساس این نقشه، نرم افزار سیستم کینکت به اپلیکیشن هایی مانند کینوگل اجازه می دهد تا قسمت های مختلف بدن انسان را به صورت سه بعدی به دقت ردیابی کنند. Kinoogle حول یک تنظیمات خاص برای عملکرد طراحی شده است که شامل ایستادن کاربر در حدود یک متر جلوی Kinect، با شانههای موازی با دستگاه، و قرار دادن سنسور در ارتفاع آرنجهای کاربر است.
Kinoogle به طور گسترده از نرم افزار شخص ثالث استفاده می کند که شامل درایورهای OpenNI و NITE Middleware [ 9 ، 10 ]، OpenGL [ 45 ] و Google Earth [ 46] است.]. OpenNI و NITE Middleware هر دو برای دریافت و دستکاری دادههای بهدستآمده از حسگر Kinect استفاده میشوند، در حالی که OpenGL و Google Earth به ترتیب عملکرد گرافیکی سطح پایین و برنامه نقشهبرداری جلویی را ارائه میکنند. OpenNI چارچوبی برای استفاده از دستگاه های رابط کاربری طبیعی (NUI) است و دارای انتزاعاتی است که امکان استفاده از میان افزار را برای پردازش تصاویر و اطلاعات عمقی فراهم می کند. این امکان ردیابی کاربر، ردیابی اسکلت و ردیابی دست را در Kinoogle فراهم می کند. OpenNI به گونهای طراحی شده است که برنامهها را میتوان مستقل از میانافزار خاص مورد استفاده قرار داد و بنابراین به بسیاری از کدهای Kinoogle اجازه میدهد مستقیماً با OpenNI ارتباط برقرار کنند در حالی که از عملکرد NITE Middleware استفاده میکنند. هدف اصلی NITE Middleware پردازش تصویر است که امکان ردیابی نقطه ای دستی و ردیابی اسکلت را فراهم می کند. NITE مسئول ارسال مکان (یعنی مختصات سه بعدی) نقاط دست در هر فریم است. Kinoogle همچنین از OpenGL برای ایجاد یک رابط کاربری گرافیکی (GUI) به شکل نوار منو در بالای صفحه برای ارائه بازخورد بصری به کاربر استفاده می کند (شکل4 ). Kinoogle به عنوان یک بخش جلویی، از Google Earth استفاده میکند، که تصاویر بصری از مکانهای زمین در یک کره سهبعدی را ارائه میکند که کاربر میتواند با حرکت، زوم، چرخش یا کج کردن با یک ماوس معمولی، ماوس سهبعدی، آنها را دستکاری کند. مانند SpaceNavigator [ 47 ]) یا صفحه کلید.
نرم افزار سیستم کینوگل
در سطح بالا، سیستم از چهار شی اصلی تشکیل شده است که به عنوان اتصال به هر یک از اجزای نرم افزار شخص ثالث عمل می کنند. این چهار شی عبارتند از: KinectControl، Kinoogle، EarthControl، و Kinoogle GUI (شکل 5 ). این سیستم مبتنی بر ورودی سخت افزار است، بنابراین به گونه ای طراحی شده است که رویداد محور باشد (به پوشه “کد و مستندات” در فایل های اضافی 1 ، 2 مراجعه کنید ).
KinectControl
اولین شی، KinectControl، با NITE و OpenNI ارتباط برقرار می کند تا داده های مربوطه را از Kinect جمع آوری کند. به عنوان یک “لوله کش” عمل می کند و اشیاء خاصی را برای جمع آوری و ارسال داده های نقطه ای یا اسکلت به کینوگل در محل قرار می دهد. همچنین جریان داده را از سخت افزار Kinect کنترل می کند، مانند توقف داده های نقطه/اسکلت ورودی.
حلقه اصلی در Kinoogle به طور مداوم تابع KinectControl.kinectRun را فراخوانی می کند که به نوبه خود سه فراخوانی ضروری را انجام می دهد:
• context.WaitAndUpdateAll()، که OpenNI را مجبور می کند یک فریم جدید از Kinect دریافت کند و این فریم را برای پردازش به NITE ارسال کند.
• skeletonUpdater.run()، که به تمام داده های اسکلت موجود در گره UserGenerator نگاه می کند. اگر یک اسکلت فعال باشد، تمام داده های موقعیت مشترک را به Kinoogle ارسال می کند. و
• sessionManager.Update()، که sessionManager را مجبور میکند تا دادههای دستی موجود در زمینه فعلی را پردازش کند و تمام کنترلهای مبتنی بر نقطه را با فراخوانی بهروزرسانی کند.
ماژولهای اضافی GestureListener و HandsUpdater با PointControls و SessionManager تماسهای برگشتی را ثبت میکنند. بنابراین، هنگامی که Update() نامیده می شود، callback ها فعال می شوند و رشته از طریق این دو ماژول به Kinoogle و در نهایت به EarthControl می رود.
یکی از مهم ترین اجزای موجود در KinectControl، Fist Detector است. به شکل دست در اطراف نقاط دست نگاه می کند و تعیین می کند که دست بسته است یا باز. سپس این اطلاعات توسط Kinoogle برای تعامل و تعامل با Google Earth استفاده می شود. FistDetector بر اساس محاسبه مساحت بدنه محدب دست و مقایسه آن با مساحت دست است. (بدنه محدب یک شکل هندسی کوچکترین شکل محدب است که تمام نقاط آن شکل را در بر می گیرد.) در این مورد، Fist Detector به ما اجازه می دهد تا ناحیه بین انگشتان باز را کمی کنیم، گویی که دست به صورت شبکه ای است. اگر نسبت دست به بدنه نزدیک به یک باشد، دست به احتمال زیاد بسته است. اگر یک به یک نباشد، دست به احتمال زیاد باز است.
کینوگل
عملکرد اصلی Kinoogle تفسیر داده های نقطه ای از Kinect Control است تا مشخص کند آیا کاربر ژست ها و حالت های خاصی را برای تعامل با Earth Control و Kinoogle GUI ایجاد کرده است یا خیر. Kinoogle مسئول ارتباط بین سه شیء دیگر است که نرم افزار شخص ثالث را کنترل می کنند. این از طریق استفاده از KinoogleMessage که در شیء Message موجود است به دست می آید.
Kinoogle همچنین تشخیص وضعیت های ثابت را انجام می دهد، که با آن کاربر بین حالت های مختلف نقشه (مثلاً پاننگ، زوم) جابجا می شود. هر زمان که کاربر دست های خود را فعال می کند، میانگین مکان عقربه ها در 100 فریم آخر محاسبه می شود. سپس یک جعبه خیالی (300 × 200 پیکسل) در اطراف این مکان متوسط تنظیم می شود. سپس سه ربع وجود دارد که کاربر میتواند دستهای خود را برای تشخیص وضعیت قرار دهد: بالای جعبه، سمت چپ یا سمت راست جعبه. حالتهای مختلف زمانی فعال میشوند که هر دو دست در ربعهای مربوطه در اطراف محل متوسط قرار گیرند. به عنوان مثال، قرار دادن یک دست بالاتر از مکان متوسط و دست دیگر در سمت راست مکان متوسط به عنوان حالت شیب تشخیص داده می شود. چهار حالت نقشه (پنینگ، بزرگنمایی، چرخش و شیب) به شرح زیر پیاده سازی شده است:
• پانینگ بر اساس تشخیص موقعیت (x, y) هر یک از دست ها هنگام درگیر شدن است (شکل 6(a) ). یک متغیر سرعت برای حذف هرگونه حرکت جزئی که منجر به سوسو زدن می شود استفاده می شود.
• زوم کردن به یک حرکت دو دست نیاز دارد (شکل 6(b) )، و با حرکت دادن دست ها به هم نزدیکتر یا دورتر از هم انجام می شود. تشخیص بر اساس محاسبه فاصله بین دست ها برای تعیین اینکه آیا آنها با هم حرکت می کنند یا از هم جدا می شود.
• چرخش (در صفحه) همچنین به یک حرکت دو دستی نیاز دارد (شکل 6(c) )، و تشخیص بر اساس تعیین اینکه آیا عقربه ها در جهت مخالف در امتداد محور ‘y’ حرکت می کنند (یعنی محور عمودی) است.
• شیب (چرخش های خارج از صفحه) نیز یک حرکت دو دستی است (شکل 6(d) ) و بر اساس تشخیص اینکه آیا عقربه ها در جهت مخالف در امتداد محور ‘z’ حرکت می کنند (یعنی محور عمق) است.
در نهایت، Kinoogle همچنین مسئولیت تفسیر دادههای اسکلت را بر عهده دارد، که به کاربران اجازه میدهد با استفاده از حرکات بصری «راه رفتن» و «چرخش» با Google Street View تعامل داشته باشند. برای تشخیص راه رفتن، روی سرعت چرخاندن دست های کاربر تمرکز می کنیم (شکل 7(a) ). یعنی میانگین سرعت بازوهای راست و چپ را بر اساس موقعیت آرنج محاسبه کرده و آن را با یک آستانه ثابت مقایسه می کنیم. به همین ترتیب، برای کنترل زاویه دوربین در نمای خیابان، تشخیص میدهیم که آیا کاربر شانههای خود را میچرخاند یا خیر (شکل 7(b) ). به طور خاص، ما تعیین می کنیم که کدام شانه به سنسور Kinect نزدیکتر است و سپس نمای دوربین را بر اساس تفاوت بین دو شانه می چرخانیم.
EarthControl
EarthControl از اقدامات شبیه سازی شده ماوس و صفحه کلید برای کنترل Google Earth استفاده می کند. شیء پیام های زمینی را از کینوگل دریافت می کند، به عنوان مثال، زمین. interpretMessage(&EarthMessage(Pan, panX, panY)) که سپس برای تعیین ترتیب صحیح اعمال ماوس یا صفحه کلید تفسیر می کند. با حرکت دادن نشانگر در محورهای خاص و نگه داشتن دکمه های خاص ماوس، EarthControl تغییرات مناسب را بر روی نمای نقشه اعمال می کند. سایر عملکردها با شبیه سازی فشار دادن دکمه های مختلف صفحه کلید اجرا می شوند. عملکردهای واقعی ماوس و صفحه کلید از طریق یک سری توابع انجام می شود که در MouseLib با هم گروه بندی شده اند. به طور خاص، MouseLib از API ویندوز (رابط برنامهنویسی برنامه) به نام SendInput استفاده میکند که ساختارهای INPUT را میگیرد و آنها را در جریان ورودی سیستم عامل (OS) قرار میدهد. این ساختارها یا حرکت ماوس یا فشار دادن کلید را نشان می دهد. MouseLib از EarthControl جدا است تا از قابلیت حمل سیستم عامل آینده سیستم Kinoogle اطمینان حاصل کند. به عنوان مثال، کل کدی که مخصوص API ویندوز است در MouseLib نگهداری می شود، به طوری که یک نسخه X-window یا MacOSX می تواند به راحتی جایگزین شود.
EarthControl همچنین دارای دو ویژگی قابل توجه دیگر است که در پاسخ به مشکلات خاص Google Earth ایجاد شده است: سیستم ترمز ماوس و روشی برای جلوگیری از متوالی سریع تک کلیک ها. سیستم ترمز ماوس از جابجایی ناخواسته نمای نقشه در حین حرکت جلوگیری می کند. در ابتدا، دکمه کلیک چپ بلافاصله زمانی که عقربه باز میشود آزاد میشود و باعث میشود که نقشه به حرکت ادامه دهد، که تقریباً خروج نقشه را در یک موقعیت ثابت غیرممکن میکرد. راه حل این مشکل اندازه گیری سرعت نشانگر ماوس در هنگام جدا شدن عقربه بود. اگر نشانگر ماوس با سرعت معینی حرکت کند، “ترمز” درگیر می شود و دکمه ماوس را پایین می کشد و نشانگر را برای مدت معینی ثابت می گذارد.
رابط کاربری گرافیکی Kinoogle
رابط کاربری گرافیکی Kinoogle رابط کاربری را برای سیستم فراهم می کند و به عنوان نوار منو در بالای برنامه پیاده سازی می شود (شکل 4 ). رابط کاربری گرافیکی Kinoogle به عنوان یک رشته مجزا از رشته اصلی Kinoogle اجرا می شود که از طریق GUIMessages که بخشی از شی پیام است، دستورات را دریافت می کند. رابط منو (پنجره و دکمه ها) با یک شی رندر OpenGL پیاده سازی می شود. سه بخش از اطلاعات در نوار منو برای کاربر ترسیم شده است (شکل 8(a)). بخش اول ویژگی های مختلف موجود در حالت فعلی و همچنین فلش های مربوط به حالت را برای فعال کردن یک ویژگی مشخص نشان می دهد. بخش دوم یک دکمه است که برای نشان دادن حالت فعلی به کاربر استفاده می شود. بخش سوم شامل دو الماس است که نشان دهنده دست های کاربر است. جزئیات بیشتر در مورد رابط منو در زیر در زیر “راهنمای کاربر: دستورالعمل های عملیاتی” ارائه شده است.
راهنمای کاربری
نصب سخت افزار و نرم افزار
Kinoogle به مایکروسافت کینکت نیاز دارد که در حال حاضر در سراسر جهان برای خرید از چندین خرده فروش در دسترس است. بسته Kinect شامل سنسور Kinect، علاوه بر یک آداپتور برق با دوشاخه برق و یک اتصال USB است (شکل 1 ). Kinect به انرژی بیشتری نسبت به پورت USB نیاز دارد، بنابراین دوشاخه برق باید قبل از استفاده از دستگاه در پریز برق وارد شود. کانکتور USB باید در رایانه ای که Kinoogle در آن اجرا می شود قرار داده شود (Kinect باید فقط پس از نصب درایور OpenNI/NITE به پورت USB رایانه وصل شود – به زیر مراجعه کنید). Kinoogle همچنین به درایورها و نرم افزارهای شخص ثالث نیاز دارد که بر روی رایانه میزبان نصب شوند. لینک های دانلود نسخه سیستم عامل ویندوز این بسته های نرم افزاری عبارتند از: Google Earth [ 48]، OpenNI [ 49 ] و NITE [ 50 ] (نسخه های x86 (32 بیتی) OpenNI و NITE در هر دو نسخه 32 بیتی و 64 بیتی (x64) مایکروسافت ویندوز به خوبی کار می کنند). فایل های اضافی 1 ، 2 یک آرشیو فشرده حاوی بسته نصب کینوگل برای ویندوز هستند. برای اطمینان از عملکرد قوی آن بر روی چندین دستگاه آزمایش شده است.
دستورالعمل های عملیاتی
کاربر باید قبل از راهاندازی Kinoogle از اجرای Google Earth اطمینان حاصل کند. هنگامی که Kinoogle شروع به کار کرد، نشانگر وضعیت نشان داده شده در شکل 8(a) در بالای صفحه قابل مشاهده خواهد بود. دو الماس رنگی در سمت راست وضعیت ردیابی دست برنامه را نشان می دهد: (i) قرمز نشان می دهد که عقربه مربوطه شناسایی نشده است، (ii) زرد نشان می دهد که عقربه شناسایی شده است اما درگیر نشده است، و (iii) سبز نشان می دهد که عقربه شناسایی شده و همچنین درگیر شده است. شکل 8 (ب) را ببینید . دست ها وقتی در مشت گره می شوند درگیر می شوند.
برای شروع ردیابی دست، کاربر یک دست را تکان میدهد تا زمانی که نشانگر وضعیت HAND1 زرد شود، سپس با دست دیگر نزدیک محل دست اول تکان میدهد تا زمانی که نشانگر HAND2 نیز زرد شود. کاربر ممکن است از هر دو دست برای شروع ردیابی استفاده کند. هنگامی که ردیابی دستی اولیه شد، برنامه به طور خودکار وارد حالت نقشه می شود و نوار منو برای منعکس کننده این تغییر تغییر می کند. شکل 8 (c) را ببینید .
حالت نقشه دارای چهار حالت فرعی است که هر یک شکل متفاوتی از دستکاری نقشه را نشان می دهد:
1. Pan/Zoom: این حالت فرعی پیش فرض در هنگام ورود به حالت نقشه است. این حالت فرعی به کاربر این امکان را می دهد که نقشه را در هر جهتی اسکرول کند و همچنین بزرگنمایی و کوچکنمایی کند. برای پیمایش نقشه، کاربر یک دست را درگیر می کند و آن دست را طوری حرکت می دهد که انگار نقشه را روی یک سطح می کشد. شکل 9 (الف) را ببینید . برای بزرگنمایی، کاربر هر دو دست را از حالت درگیر خارج کرده و آنها را به هم نزدیک می کند، سپس هر دو دست را درگیر کرده و آنها را از هم جدا می کند. شکل 9 (b, c) را ببینید . زوم کردن با درگیر نشدن هر دو دست و جدا کردن آنها از هم، سپس درگیر کردن هر دو دست و نزدیک کردن آنها انجام می شود. شکل 9 (d, e) را ببینید .
2. چرخش: این حالت فرعی به کاربر اجازه می دهد تا زاویه چرخش نقشه را در صفحه x، y تنظیم کند. برای چرخاندن نقشه، کاربر هر دو دست را درگیر می کند و آنها را در جهت های عمودی مخالف حرکت می دهد، یعنی با استفاده از حرکتی شبیه چرخاندن فرمان. شکل 9 (f) را ببینید .
3. Tilt: این حالت فرعی به کاربر اجازه می دهد تا نقشه را خارج از صفحه بچرخاند. برای کج کردن نقشه، کاربر هر دو دست را درگیر می کند و آنها را در جهت مخالف z حرکت می دهد، به عنوان مثال، با استفاده از حرکتی شبیه به چرخش یک میل لنگ (مجموعه زنجیر). شکل 9 (gh) را ببینید .
4. بازنشانی نقشه/نقشه های تاریخی: نقشه را می توان با درگیر نکردن هر دو دست و رساندن آنها به سطح سر کاربر بازنشانی کرد. شکل 10 (د) را ببینید . این همچنین با حرکت مکان نما به انتخابگر دوره زمانی، حالت فرعی Historical Maps را راه اندازی می کند. برای تغییر بازه زمانی، کاربر یک دست را درگیر کرده و نوار لغزنده را به بازه زمانی مورد نظر منتقل می کند. توجه داشته باشید که بازه های زمانی موجود بسته به منطقه ای که مشاهده می شود تغییر می کند. هنگام ورود به حالت فرعی نقشه های تاریخی، زاویه شیب و چرخش نقشه بازنشانی می شود.
برای جابهجایی بین حالتهای فرعی، کاربر باید یک حالت خاص را برای مدت کوتاهی بسازد و نگه دارد (شکل 10 ). فلش های سمت راست هر کادر در شکل 8(c) نشان می دهد که کاربر چگونه باید دست های خود را بگیرد تا وارد آن حالت شود. یک نوار پیشرفت برای حالت هدف پر می شود زمانی که کاربر حالت را نگه می دارد. شکل 8 (د) را ببینید .
Kinoogle همچنین به کاربر اجازه می دهد تا در حالت نمای خیابان با Google Earth تعامل داشته باشد. این حالت با استفاده از حالت Pan/Zoom برای بزرگنمایی هرچه بیشتر در خیابانی که برای نمای خیابان فعال است وارد می شود. Google Earth به طور خودکار به خیابان بزرگنمایی می کند. هنگامی که نقشه روی خیابان بزرگنمایی شد، کاربر باید یک حالت لمسی برای کالیبره کردن Kinoogle برای نمای خیابان ایجاد کند. شکل 10 (ه) را ببینید . همانطور که در شکل 8 (e) نشان داده شده است، برچسب های نشانگر وضعیت نیز تغییر خواهند کرد . وقتی در نمای خیابان هستید، همه کنترلهای حالت نقشه غیرفعال هستند. حالت نمای خیابان دارای سه حالت فرعی اصلی است که به شما امکان می دهد با نقشه تعامل داشته باشید:
• راه رفتن: برای حرکت به جلو، کاربر در حالی که در جای خود ایستاده است، بازوهای خود را تاب می دهد. کاربر مجبور نیست پاهای خود را حرکت دهد، اگرچه ممکن است در صورت تمایل در جای خود راه برود. شکل 11 (الف، ب) را ببینید .
• چرخش: کاربر می تواند نماهای دوربین را با چرخاندن شانه های خود به سمت یا دور از دوربین تغییر دهد. کاربر باید اطمینان حاصل کند که فقط شانه های خود را می چرخاند و تمام بدن خود را نمی چرخاند. شکل 11 (ce) را ببینید .
• خروج: برای خروج از حالت نمای خیابان، کاربر هر دو دست خود را مستقیماً به سمت بیرون دراز می کند. شکل 11 (f) را ببینید . پس از خروج از نمای خیابان، نقشه کوچکنمایی میشود. سپس کاربر باید تشخیص دست را مجدداً آغاز کند تا بتواند دوباره وارد حالت نقشه شود و به دستکاری نقشه ادامه دهد.
بحث و نتایج
امروزه، کره های مجازی سه بعدی آنلاین معمولاً برای تجسم و کشف داده های اپیدمیولوژی فضایی و بهداشت عمومی استفاده می شوند [ 51-55 ] . کاربران معمولاً از یک یا چند دستگاه ورودی معمولی (موس، ماوس سه بعدی و/یا صفحه کلید) برای حرکت در کره های مجازی آنلاین استفاده می کنند. ژستهای بدون دست و تشخیص گفتار، به عنوان مثال، همانطور که توسط حسگر Kinect ارائه میشود، انتظار میرود تعامل انسان و رایانه ما با رابطهای آنلاین و دسکتاپ را در سالهای آینده تغییر دهد [ 56 ، 57 ]. بهبود در نحوه ارتباط ما با کره های مجازی همیشه مورد استقبال قرار می گیرد، مشروط بر اینکه بتوان “سناریوهای استفاده” قانع کننده ای را برای توجیه توصیه و سرمایه گذاری روی آنها در کنار یا در کنار روش های ورودی کامپیوتر موجود تصور کرد.
Kinoogle یک مثال خوب از یک رابط طبیعی با Google Earth و نمای خیابان ارائه می دهد که تنها با استفاده از حرکات و حرکات بدن، بدون نیاز به لمس هیچ دستگاه ورودی فیزیکی (بدن کاربر به کنترل کننده تبدیل می شود). اگر بتواند از قابلیت تشخیص گفتار پیشرفته ارائه شده توسط دستگاه کینکت به عنوان روشی جایگزین برای پیمایش در Google Earth با استفاده از دستورات صوتی علاوه بر حرکات دست و بدن (مثلاً در مواردی که فرد چابکی و چابکی فیزیکی لازم را ندارد، Kinoogle تا حد زیادی بهبود یابد. مهارت برای انجام برخی حرکات «ناجور» یا در مواردی که کنترل دقیق یا سریعتر رابط مورد نیاز است نسبت به آنچه که تنها با حرکات بدن به دست میآید).
سایر پیشرفتهای احتمالی Kinoogle شامل افزودن یک صفحه کلید مجازی روی صفحه با کنترل Kinect برای ورودی متن است (به عنوان مثال، برای تایپ در کادر «Fly To» Google Earth)، مشابه آنچه توسط KinClick [58] برای بسته KinEmote ارائه شده است . تحت ویندوز اجرا می شود [ 59 ]، و احتمالاً نسخه های ویژه ای از کره های مجازی سه بعدی با عناصر رابط بزرگتر، نمادهای بزرگ، و جعبه های محاوره ای یا برگه های سازگار با Kinect را توسعه می دهد تا کاربران Kinect را آسان تر برای پیمایش و انتخاب/جدا کردن انتخاب کنند. آیتم ها و گزینه های صفحه نمایش (به عنوان مثال، کره مجازی “لایه ها” در Google Earth).
راحتی تشخیص ژست و گفتار بدون هندز میتواند در تعدادی از سناریوهای کاربردی و انحصاری «استفاده» که در آنها ورودیهای ماوس یا صفحهنمایش چند لمسی دشوار است، بسیار مفید باشد، مانند هنگام ارائه ارائههایی که شامل کرههای مجازی سهبعدی در یک فضای بزرگ است. صفحه نمایش روی صحنه برای مخاطبان زیادی، به عنوان مثال، این ارائه تلسکوپ جهانی مایکروسافت با استفاده از حسگر کینکت: [ 60 ]. (کینکت همچنین می تواند از دو کاربر فعال/ارائه کننده همزمان پشتیبانی کند.)
GIS مشترک در اتاقهای موقعیت مجازی که شامل تیمهای توزیع شده از کاربران است [ 61 ] یکی دیگر از «سناریوهای استفاده» است که میتواند از ویژگیهای منحصربهفرد Kinect مانند سه بعدی بدون هدست و قابلیتهای ویدئو کنفرانس از راه دور بهرهمند شود [ 23-26 ] ، علاوه بر این استفاده از آن به عنوان حسگر/اشارات حرکتی سه بعدی و تشخیص گفتار NUI برای کنترل یک کره مجازی سه بعدی مشترک در طول ارائه داده های فضایی شبکه ای [ 39 ، 40 ]. استفاده از حسگر کینکت برای ایجاد نقشههای سه بعدی از مکانها و اشیاء دنیای واقعی [ 62 ، 63 ] هنوز برای استفاده جدی اصلاح نشده است، اما ممکن است به زودی با تکامل و بلوغ فناوری به جعبه ابزار حرفهای GIS اضافه شود.
کینکت می تواند یک راه عالی، بسیار کاربردی و سرگرم کننده برای پیمایش نمای خیابان گوگل و کاوش در مکان ها و شهرهای جدید (گردشگری مجازی) باشد. بازخورد بصری به شکل تغییر مناظر خیابان در حین راه رفتن کاربر (عملاً مانند روی تردمیل [ 64 ]) در نمای خیابان می تواند برای تشویق افراد به انجام تمرینات بدنی و سوزاندن کالری با دستگاه کینکت برای دوره های طولانی استفاده شود. زمان، بدون خسته شدن سریع (مثلاً به عنوان بخشی از برنامه های مدیریت چاقی و پیشگیری). این استفاده از کینکت برای اهداف آمادگی جسمانی قبلاً به عنوان یک بازی برای کنسول بازی Xbox 360 [ 65 ] اجرا شده است.
NUIهای تشخیص گفتار و ژستهای هندزفری جایگزین کاملی برای روشهای تعامل مرسوم نیستند. به عنوان مثال، همه کاربران چابکی و چابکی عضلانی لازم، فضای فیزیکی اتاق، یا اندازه صفحه نمایش به اندازه کافی بزرگ (برای مشاهده راحت از حداقل فاصله کاربر از سنسور) برای استفاده از حسگر Kinect و ناوبری معمولی تر در کره های مجازی ندارند. با یک ماوس سه بعدی [ 47 ] یا یک صفحه نمایش چند لمسی گاهی اوقات می توان کنترل دقیق تر و روان تری از نقشه سه بعدی ارائه کرد. با این حال، سنسورهای عمق مانند Microsoft Kinect، ASUS Xtion PRO/PRO Live [ 66 ]، و Lenovo iSec [ 67]] یک روش جایگزین یا مکمل جالب برای تعامل با کرههای مجازی سه بعدی باقی میماند، با برخی برنامههای کاربردی انحصاری که در آنها نمیتوان این دستگاهها را به راحتی با یکدیگر مطابقت داد (مثلاً ارائههای کره مجازی بدون هندزفری برای مخاطبان بزرگ) و سایر برنامههایی که NUI توانایی این را دارد. حسگرها می توانند تجربه کاربر را تا حد زیادی بهبود بخشند (به عنوان مثال، هنگام تعامل با صفحه نمایش های بزرگ و استریوسکوپی در فاصله [ 36 ، 68 ]).
10 نظرات