مریم مرادی
مریم مرادی
خواندن ۱۳ دقیقه·۳ سال پیش

ارائه معماری مناسب برای سامانه تشخیص شی و افزودن اطلاعات در بستر واقعیت افزوده موبایل

چکیده:

معماری نرم‌افزار، کدگذاری انتخاب توسعه‌دهندگان نرم‌افزار در طراحی است و یک هسته اصلی برای طراحی نرم‌افزار تعریف می‌کند. با افزایش پیچیدگی نرم افزار، استفاده از معماری نرم افزار اهمیت بیشتری پیدا می‌کند. معماری‌های متفاوتی می‌توان برای یک سامانه نرم افزاری ارائه شود که باید متناسب با نیازمندی‌های آن باشد. برای مثال یک نرم افزار تعاملی بلادرنگ، نیازمندی‌های بسیار متفاوتی با نیازمندی‌های یک سیستم مبتنی بر تراکنش دارد.

واقعیت افزوده دنیای واقعی مشاهده شده از طریق رابط کامپیوتری را با شی مجازی تولید شده توسط کامپیوتر ترکیب می‌کند. با ظهور دستگاه های تلفن همراه قدرتمند، برنامه‌های کاربردی واقعیت افزوده موبایل (MAR) مورد توجه قرار گرفتند. محدودیت منابع در موبایل، چالش اصلی واقعیت افزوده موبایل است. اکثر تحقیقات حوزه MAR در حوزه‌ی فناوری مربوط به آن است و به طراحی و معماری آن توجه چندانی نشده است. این امر منجر به کمبود ادبیات معماری و طراحی برای MAR شده است. نیاز اصلی که یک معماری MAR باید برآورده کند، پردازش کارآمد بلادرنگ جریان های داده مانند فریم های ویدئویی و داده های حسگر است.

در این تحقیق با مقایسه انواع معماری در این حوزه، معماری متناسب با نیازمندی‌های سامانه تشخیص شی و افزودن اطلاعات در بستر واقعیت افزوده موبایل ارائه می‌شود.

تعریف:

واقعیت افزوده (AR) دنیای واقعی را که از طریق رابط کامپیوتری مشاهده می‌شود، با شی مجازی تولید شده توسط کامپیوتر ترکیب می‌کند. در دهه گذشته گوشی‌های موبایل بسیار پیشرفت کرده اند. واحدهای پردازش مرکزی چند هسته‌ای (CPU)، واحدهای پردازش گرافیکی (GPU) و نمایشگرهای با وضوح بالا همراه با دوربین‌ها و حسگرهای پیشرفته با قابلیت تشخیص موقعیت، جهت‌گیری و حرکت به آن افزوده شده است. از این رو اجرای برنامه‌های پیچیده واقعیت افزوده در موبایل امکان پذیر شده است. همچنین با توجه به فراگیر بودن دستگاه‌های تلفن همراه در دنیای مدرن، این سامانه‌ها بسیار محبوب شده اند.

اولین قدم در مسیر طراحی یک نرم‌افزار منسجم، معماری آن نرم‌افزار است که پایه‌ای برای طراحی باقی اجزا است. معماری نرم افزار در واقع ترسیم زیرساخت بنیادی برای ساخت نرم افزار بر آن است.

بهترین معماری برای یک سامانه، متناسب ترین معماری با توجه به نیازمندی‌های سامانه است و باید گویای آن سامانه نیز باشد. مهم‌ترین نیاز سامانه‌های واقعیت افزوده موبایل، پردازش و اجرای کارآمد و بلادرنگ است که باید معماری متناسب با آن باشد. سامانه مدنظر در این پژوهش، سامانه تشخیص شی و افزودن اطلاعات در بستر واقعیت افزوده موبایل است. در این سامانه ابتدا یک فریم تصویر گرفته شده توسط دوربین وارد سیستم می‌شود، در زیر سیستم تشخیص اشیا، شی موجود در تصویر، تشخیص داده شده و مکان دوربین نسبت به شی تخمین زده می‌شود سپس اطلاعات مربوط به شی از پایگاه داده محلی بازیابی می‌شود و در صورت عدم وجود اطلاعات کافی، اطلاعات مربوطه از وب بازیابی و کاوش می‌شود. این اطلاعات به زیر سیستم ثبت و اجرای شی مجازی، فرستاده می‌شود و اطلاعات در مکان تخمین زده شده افزوده می‌شود.

در بخش‌های بعد، ابتدا معماری‎های مطرح در این حوزه بررسی می‌شود. سپس در بخش بعد، معماری متناسب برای سیستم مذکور معرفی می‌شود و بخش آخر شامل جمع‌بندی و نتیجه‌گیری است.

معماری‌های پیشین:

پژوهش‌های بسیاری در حوزه پیاده سازی واقعیت افزوده و واقعیت افزوده در موبایل انجام شده است. اکثر این پژوهش‌ها بر پیاده سازی یک برنامه کاربردی خاص همانند برنامه راهنمای گردشگری تمرکز دارند و بسیار اندک به معماری یا طراحی آن سامانه پرداخته شده است. طبق گفته‌ی آقای بوچ و همکارانش، ویژگی‎های معماری شامل موارد زیر است:

  • ماژول‌بندی: سیستم به صورت چند ماژول جداگانه نمایش داده شود.
  • انسجام: اجزای یک ماژول یک وظیفه یا هدف مشترک داشته باشند.
  • وابستگی کم: وابستگی غیر ضروری به ماژول‌های دیگر نباشد.
  • کپسوله‌سازی عملکرد: از رابط ها برای دسترسی به ماژول ها یا اجزا استفاده شود.
  • انتزاع عملکرد سیستم : کپسوله سازی برای نمایش تمام عملکردهای ارائه شده توسط سیستم استفاده شود.

در سال 1988 آقای رایچر معماری مبتنی بر MVC3را توصیف کرد که شامل ماژول‌های برنامه، زمینه، تعامل، ردیابی، نمایش و دنیای واقعی است. پیاده سازی این معماری آسان و سریع است. سیستم امنیت دارد. امکان توسعه وجود دارد و رفع خطا آسان‌ اما پر هزینه است. این معماری انعطاف پذیری کمی دارد. درک معماری آن برای توسعه دهنده دشوار است. در صورت بزرگ بودن سیستم کنترل آن دشوار است.

معماری سطح بالا مبتنی بر MVC
معماری سطح بالا مبتنی بر MVC

یک معماری عمومی برای برنامه های چند رسانه ای توسط فرانسوا 2003 پیشنهاد شد که می‌تواند برای استفاده در واقعیت افزوده موبایل مناسب باشد. این معماری با نام SAI شناخته می‌شود و بر سه جزء سلول، منابع و پالس استوار است. سلول‌ها در خطوط لوله مرتب شده‌ اند و داده‌های دریافتی را پردازش می‌کنند و نتیجه را به سلول بعدی ارسال می‌کنند. داده‌ها می‌توانند پایدار باشند، به عنوان مثال، داده های ثابت مانند تنظیمات یا غیرثابت مانند فریم‌های ویدئویی یا صوتی است. داده پایدار در منابع متصل به سلول های خاص حاوی داده های پایدار نگهداری می‌شوند. در حالی که منابع، داده های ثابتی را نگه می‌دارند، پالس ها داده های غیرثابتی را به صورت دوره ای ارسال می‌کند. پالس همراه با مهر زمان، از طریق خط لوله سلول‌ها منتشر می‌شود و هر سلول می‌تواند داده‌های موجود در پالس را استخراج کرده و روی آن کار کند. پیاده سازی این معماری سریع است. امکان توسعه وجود دارد. این معماری انعطاف پذیری کمی دارد. در صورت بزرگ بودن سیستم کنترل آن دشوار است و برای سیستم بلادرنگ مناسب نیست.

معماری قسمت بندی ویدئو با SAI
معماری قسمت بندی ویدئو با SAI

جریان های داده به طور سنتی با استفاده از الگوی معماری PIPES و FILTERS در سال 1996 پردازش می‌شوند. فیلترها مراحل پردازش را کپسوله می‌کنند و می‌توانند همزمان با فیلترهای دیگر، زمانی که داده‌ها در دسترس هستند، اجرا شوند. داده ها از طریق لوله ها میان فیلترها منتقل می‌شوند و پردازش صورت می‌گیرد. این الگو پردازش جریان‌های بی‌درنگ یا تعاملی دارای معایبی از جمله عدم وجود بازخورد، سربار سرعت و تاخیر غیر ضروری است. یک جایگزین برای این الگوی معماری، الگوی خط لوله موازی در سال 2012 است که از فیلترهای موازی نیز پشتیبانی می‌کند و می‌تواند همزمان بیش از یک داده جریان را پردازش کند. پیاده‌سازی این الگو پیچیده‌تر است و باید امکان داده‌های خارج از ترتیب را فراهم کند.

الگوی معماری Task Graph در سال 2010، برای سامانه واقعیت افزوده موبایل که قادر به پردازش چندین جریان داده بلادرنگ باشد، مناسب است.

ساختار این معماری به صورت یک گراف جهتدار بدون دور است که گره ها وظایف هستند و یال‌ها وابستگی‌های جریان داده هستند و جریان داده می تواند در امتداد آن‌ها جریان یابد. از آنجایی که بسته های داده جریان می‌توانند بزرگ باشند، برای مثال فریم های ویدئویی، پس کپی مکرر داده ها میان گره‌ها نامطلوب و ناکارآمد است. یک راه حل بهتر ترکیب این الگو با الگوی منبع اشتراکی است و توکن نشان دهنده داده‌های میان گره‌ها ارسال شود و به داده‌های واقعی در منبع مشترک دسترسی پیدا کرد.

فناوری در حال پیاده‌سازی باید از موازی سازی پشتیبانی کند و اجزا باید به گونه‌ای طراحی شوند که بتوانند از پردازش مورد بعدی در جریان پشتیبانی کنند و توان عملیاتی بیشینه شود. همچنین می توان سایر اشکال موازی سازی را در نمودار ترکیب کرد. به عنوان مثال، یک گره وظیفه ممکن است از الگوی map reduce pattern استفاده کند. این معماری به همراه ترکیب با الگوهای ذکر شده برای پردازش بلادرنگ در سیستم‌ مناسب است.

شکل زیر یک نمونه معماری برای دوربین های تکی عقب و جلو است. گره های دایره ای سمت چپ کد مدیریت دوربین اندروید را مشخص می کنند که در Kotlin7 همراه با تبدیل مبتنی بر RenderScript8 (یا CPU) فرمت ویدیوی YUV به RGB برای پردازش مبتنی بر CV مورد نیاز است.

معماری نمونه
معماری نمونه

مدل چند لایه به طور معمول در طراحی واقعیت افزوده موبایل استفاده می‌شود. آقای اشمالستیگ و همکاران از مدل 3 لایه در سیستم خود استفاده کردند. اولین لایه یک پایگاه داده است. لایه دوم جهت پیوند و تعامل پایگاه داده و برنامه ها است و داده های خام را به لایه سوم که برنامه ها در آن قرار دارند تبدیل می‌کند. سپس در یک معماری دیگر، تونیس یک مدل 4 لایه با لایه پایین ارائه خدمات ارتباطی و تعامل، لایه دوم شامل اجزای اصلی واقعیت افزوده، ردیف سوم با ماژول های سطح بالا متشکل از اجزای اساسی و لایه بالایی مسئول تعامل کاربر طراحی کرد. یک معماری لایه‌ای پیشنهادی در cloudiAR پلتفرمی برای توسعه برنامه های واقعیت افزوده موبایل ارائه می‌دهد که استفاده آسان برای توسعه دهندگان فراهم می‌آورد. عملکرد بلادرنگ با برون سپاری محاسبات فشرده به فضای ابری است. همچنین وجود لایه انتزاعی برای محصور کردن سخت افزارهای متنوع در دستگاه های تلفن همراه قابلیت مقیاس‌پذیری در دستگاه‌های مختلف را فراهم می‌کند. از آنجایی که منطق برنامه از اجرا و نمایش جدا می شود، توسعه سریع برنامه ها را با این چارچوب امکان پذیر است.

معماری پلتفرم cloudiar
معماری پلتفرم cloudiar

به طور کلی توسعه و تست در معماری چند لایه آسان است. معمولا کارایی بالایی دارند. اما با افزایش نیازمندی‌ها جداسازی بخش‌های مختلف دشوار می‌شود و تغییرات در این معماری چابک نیست.

یک معماری دیگر، معماری سرویس‌گرا به نام SOMARA است که از چارچوب سرویس وب به عنوان یک سیستم پشتیبان استفاده می‌کند و میان مشتری واقعیت افزوده موبایل و ارائه‌دهندگان خدمات باز مشارکت‌کننده ارتباط ایجاد می‌کند. پلتفرم واقعیت افزوده موبایل محتوای دیجیتال را درخواست می کند و آنها را در محیط های واقعیت افزوده شخصی اعمال می‌کند. در این معماری سه جزء اصلی شامل کلاینت، چارچوب خدمات وب و ارائه دهندگان محتوای وب سرویس وجود دارد.

معماری سرویس گرا SOMARA
معماری سرویس گرا SOMARA

معماری مبتنی بر سرویس انعطاف پذیر است و تغییرات در آن آسان است و امکان توسعه سریع وجود دارد. اما بار سیستم بالا می‌رود و سرعت پاسخ نیز کم است و در سیستم‌های بلادرنگ مناسب نیست.

یک معماری دیگر بر پایه کلاینت-سرور که به طور خاص برای یک برنامه کاربردی توریستی طراحی شده است. سرور یک پایگاه داده توسعه یافته مانند MySQL است که اطلاعات خاص را نگهداری می‌کند. اطلاعات بر اساس درخواست مکان به واحد مربوطه فرستاده می‌شود. پایگاه داده از طریق یک سرویس وب REST-full با مشتری در ارتباط است.

معماری کلاینت-سرور
معماری کلاینت-سرور

فن‌آوری‌های ارتباطی نوظهور 5G در برنامه‌های واقعیت افزوده موبایل از جهت تأخیر بسیار کم و نرخ داده بسیار بالا نقش مهمی دارد. در معماری مبتنی بر ابر، سیستم واقعیت افزوده موبایل در مدل مشتری-سرور عمل می کند. دستگاه های واقعیت افزوده موبایل که برنامه های ترمینال را اجرا می کنند کلاینت نامیده می شوند. سرور واقعیت افزوده در فضای ابری قرار دارد و از هر نقطه‌ای از طریق اینترنت قابل دسترسی است. دستگاه ها تصاویر را می‌گیرند، پردازش هایی انجام می دهند، تصاویر را به سرور منتقل می کنند و تقویت های دریافت شده از سرور را نمایش می دهند. سرور ابر واقعیت افزوده وظایف محاسباتی فشرده تری را در پردازش تصویر انجام می دهد. سرور مشتری معمولاً پردازش را به سرور که منابع محاسباتی بالایی دارد می‌سپارد و فقط پردازش های اولیه، فشرده‌سازی و کدگذاری تصویر را انجام می‌دهد. این روش در عمر باتری، ارتقای آسان نرم افزار، عیب یابی نرم افزار تاثیر مثبت دارد. اما نقطه ضعف اصلی افزایش تاخیر ارتباط است. سیستم واقعیت افزوده موبایل مبتنی بر ابر دارای یک نقطه خرابی است.

شمای کلی استفاده از فضای ابری
شمای کلی استفاده از فضای ابری

در برخی موارد استفاده از واقعیت افزوده موبایل باید تأخیر بسیار کمی داشته باشد که معماری مبتنی بر ابر آن را تضمین نمی‌کند. محاسبات لبه ای مناسب‌ترین الگوی محاسباتی برای خدمت به آن موارد است. معماری مبتنی بر لبه همچنین به عنوان یک مدل سرور مشتری عمل می‌کند که در آن سرور واقعیت افزوده در لبه شبکه میزبانی می‌شود. دستگاه های ترمینال واقعیت افزوده موبایل همان حداقل عملکرد را در معماری مبتنی بر ابر انجام می دهند. سرور واقعیت افزوده وظایف محاسباتی فشرده مانند پیش پردازش، ردیابی و رندر تقویت ها را اجرا می‌کند. معماری مبتنی بر لبه برای ارائه برنامه‌های کاربردی با تأخیر کم، مناسب‌تر است. عملکرد واقعیت افزوده کمتر از معماری مبتنی بر ابر به پیوندهای زیرساخت بستگی دارد زیرا سرور در لبه مستقر است. سرورهای لبه ارتباطات قابل اعتمادتری را نسبت به معماری مبتنی بر ابر تضمین می‌کنند. اما خرابی سرور واقعیت افزوده لبه کل سیستم را تحت تأثیر قرار می دهد. همچنین سربار عملیاتی بالاتر در مقایسه با معماری مبتنی بر ابر نیز یک اشکال است.

شمای کلی استفاده از لبه
شمای کلی استفاده از لبه

معماری ترکیبی برای یک شبکه واقعیت افزوده موبایل دارای یک گره ابری و یک گره لبه همراه با شبکه واقعیت افزوده مشتری است. توابع واقعیت افزوده تعاملی مهم تأخیر باید در گره لبه اجرا شوند زیرا تأخیر کلی شبکه مستقیماً به طول مسیر سیگنال و تعداد عناصر مسیریابی واسطه مربوط می شود. برنامه‌هایی که به تأخیر بسیار کم نیاز ندارند در گره ابر میزبانی می‌شوند. از مزایای معماری ترکیبی، کاهش تاخیر است. پردازش لبه وابستگی برنامه را به پیوندهای زیرساخت کاهش می دهد و ارتباطات قابل اطمینان تر را تضمین می کند. اما به طور کلی پیچیده تر از معماری های دیگر است و سربار عملیاتی دارد.

معماری ترکیبی
معماری ترکیبی

معماری پیشنهادی:

معماری یک سیستم باید نیازمندی‌ها و محدودیت‌های اولیه مربوط به طراحی سیستم را در نظر بگیرد. درک کاربر از یک سیستم واقعیت افزوده موبایل به میزان پاسخگویی آن بستگی دارد، بنابراین نیاز اولیه برای سیستم واقعیت افزوده، پردازش جریان های ویدئویی و داده های حسگر به صورت بلادرنگ است. بنابراین انتخاب یک معماری بهینه برای پردازش جریان‌های داده بلادرنگ ضروری است. با توجه به محدودیت باتری گوشی موبایل، برنامه‌های کاربردی که بر آن اجرا می‌شوند باید از نظر مصرف انرژی و شارژ باتری، بهینه باشند. بنابراین کارایی سیستم واقعیت افزوده در موبایل اهمیت دارد. حافظه و قدرت پردازشی گوشی موبایل محدود است و برنامه‌های کاربردی ویژه گوشی موبایل باید از نظر میزان حافظه و پردازش مورد نیاز، متناسب با منابع باشند. همچنین سیستم مدنظر نیاز دارد تا در تمام مکان‌ها قابل اجرا باشد و محدود به یک مکان بسته نباشد.

با توجه به معماری‌های پیشین که در بخش قبل بررسی شد و نیازمندی‌های سیستم بهترین معماری برای سامانه تشخیص شی و افزودن اطلاعات در بستر واقعیت افزوده موبایل ارائه شده است.

طبق الگوی TASK GRAPH اگر هر نود را یک وظیفه و یال‌ها وابستگی درنظر گرفته شود، به این ترتیب گراف زیر تولید می‎شود.

گراف وظایف
گراف وظایف

با توجه به نیازمندی‌ها و محدودیت‌های سخت افزاری، معماری این سامانه به الگوی معماری کلاینت-سرور و استفاده از فضای ابری است. کامپوننت تشخیص اشیا، بازیابی اطلاعات و پایگاه داده در فضای ابری خواهد بود. در فضای محلی، پایگاه داده محلی و کامپوننت اجرا و نمایش واقعیت افزوده قرار داده می‌شود. معماری ارائه شده به این شکل است.

نمودار زمینه سیستم
نمودار زمینه سیستم
نمودار نگهدارنده و کامپوننت سیستم
نمودار نگهدارنده و کامپوننت سیستم



نتیجه گیری:

اولین قدم در مسیر طراحی یک نرم‌افزار منسجم، معماری آن نرم‌افزار است که پایه‌ای برای طراحی باقی اجزا است. معماری نرم افزار در واقع ترسیم زیرساخت بنیادی برای ساخت نرم افزار بر آن است. واقعیت افزوده دنیای واقعی مشاهده شده از طریق رابط کامپیوتری را با شی مجازی تولید شده توسط کامپیوتر ترکیب می‌کند. با ظهور دستگاه های تلفن همراه قدرتمند، برنامه‌های کاربردی واقعیت افزوده موبایل مورد توجه قرار گرفتند.

نیاز اصلی که یک معماری واقعیت افزوده موبایل باید برآورده کند، پردازش کارآمد بلادرنگ جریان های داده مانند فریم های ویدئویی و داده های حسگر است. در این تحقیق با مقایسه انواع معماری در این حوزه، یک معماری متناسب با نیازمندی‌های سامانه تشخیص شی و افزودن اطلاعات در بستر واقعیت افزوده موبایل ارائه شد.

منابع:

Munro, Donald, A. P. Calitz, and Dieter Vogts. "Architecture and Architectural Patterns for Mobile Augmented Reality." South African Computer Journal 33, no. 1 (2021): 59-78.
Alvarado, Luis Antonio Rivera, Eduardo López Domínguez, Yesenia Hernández Velázquez, Saúl Domínguez Isidro, and Cora Beatriz Excelente Toledo. "Layered software architecture for the development of mobile learning objects with augmented reality." IEEE Access 6 (2018): 57897-57909.
Huang, Zhanpeng, Weikai Li, Pan Hui, and Christoph Peylo. "CloudRidAR: A cloud-based architecture for mobile augmented reality." In Proceedings of the 2014 workshop on Mobile augmented reality and robotic technology-based systems, pp. 29-34. 2014.
Benbelkacem, Samir, Nadia Zenati-Henda, Djamel Aouam, Yousra Izountar, and Samir Otmane. "MVC-3DC: Software architecture model for designing collaborative augmented reality and virtual reality systems." Journal of King Saud University-Computer and Information Sciences 32, no. 4 (2020): 433-446.
Siriwardhana, Yushan, Pawani Porambage, Madhusanka Liyanage, and Mika Ylianttila. "A Survey on Mobile Augmented Reality With 5G Mobile Edge Computing: Architectures, Applications, and Technical Aspects." IEEE Communications Surveys & Tutorials 23, no. 2 (2021): 1160-1192.
Rattanarungrot, Sasithorn, and Martin White. "A service-oriented mobile augmented reality architecture for personalized museum environments." In 2014 International Conference on Virtual Systems & Multimedia (VSMM), pp. 277-284. IEEE, 2014.
Panou, Chris, Lemonia Ragia, Despoina Dimelli, and Katerina Mania. "An architecture for mobile outdoors augmented reality for cultural heritage." ISPRS International Journal of Geo-Information 7, no. 12 (2018): 463.
معماری نرم افزارمعماری نرم افزار بهشتیواقعیت افزوده
شاید از این پست‌ها خوشتان بیاید