بخشی از مقاله
چکیده
استفاده از فرآیند ضبط حرکت برای پویانمایی شخصیت کامپیوتری و تقلید حرکت، یک مقوله نسبتا جدیدی است و در ساخت بازیهای کامپیوتری کاربرد بسیاری دارد. در طول فرآیند ضبط حرکت، یک حرکت پویا ضبط میشود و به دادههای مناسبی ترجمه میشود که این دادهها از دنبال کردن یک سری نقاط کلیدی از هدف مورد بررسی، در طول زمان به دست میآیند و با آن دادهها میتوان کارهای زیادی از جمله ساخت مجدد آن حرکت در فضای سهبعدی انجام داد. در این مقاله با استفاده از دادههای به دست آمده از دوربین کینکت و مفاهیم بینایی ماشین، حرکت بازوی یک عامل انسانی توسط بازوی ربات واقعی در سهبعد در یک محیط کنترلنشده مورد تقلید قرار میگیرد.
برای تقلید حرکت به ازای هر فریم از ویدئو، مقادیر لازم جهت تعیین فضای پارامتری حرکت محاسبه میشوند و بازوی ربات با تنظیم این مقادیر بهروزرسانی میشود که به این فرآیند، برآورد حالت گویند. برخی از ویژگیهای لازم مثل موقعیت مفاصل به طور مستقیم از کینکت به دست میآیند؛ درحالیکه ویژگیهایی مثل موقعیت نوک انگشتان شست و اشاره طی رویکرد اشاره شده در مقاله به دست میآیند. در پایان با مقایسهی حرکت بازوی انسان و حرکت بازوی ربات توسط نمودارهایی که مسیر طیشده و تغییرات زاویهی برخی مفاصل برای این دو را نشان میدهند؛ موثر بودن روش پیشنهادی در تقلید عملکرد بازوی انسانی نشان داده میشود. در این مقاله از بازوی ربات واقعی به عنوان مدل استفاده شده است؛ درحالیکه میتوان از همین ایده برای کنترل بازوی یک شخصیت کامپیوتری جهت ساخت بازی کامپیوتری نیز استفاده کرد.
کلمات کلیدی: برآورد حالت، داده عمق، ضبط حرکت بدون نشانهگذاری، کینکت، مدل سهبعدی
-1مقدمه
برآورد حالت1به فرآیندی گفته میشود که طی آن مشخص میشود که اعضای بدن انسان نسبت به هم چه پیکربندی دارند .[1] برآورد حالت دست یک موضوع تحقیقی مهم است که کاربردهای متنوعی در حوزه تعامل انسان با کامپیوتر مثل تشخیص ژست، ساخت انیمیشن و کنترل ربات دارد. با توجه به انعطاف بالای دست، ضبط حرکت دست یک وظیفه چالش-برانگیز است. روشهای مبتنی بر بینایی و مبتنی بر سنسور بسیاری برای حل این مشکل ارائه شدهاند. در سیستمهای مبتنی بر سنسور، از سختافزارهای خاصی برای ضبط حرکت استفاده میشود. این نوع سیستمها اندازهگیریهای دقیقی را فراهم میکنند و در عملکردهای زمان واقعی میتوانند به کار گرفته شوند؛ اما چنین سیستمهایی گران و مایه زحمت هستند.
روش-های مبتنی بر بینایی، جایگزینهای ارزانی برای معادلهای مبتنی بر سنسور هستند و برای تعاملات انسان و کامپیوتر طبیعیتر عمل میکنند.در حالت کلی روشهای برآورد حالت دست مبتنی بر بینایی به دو دسته تقسیم میشوند: روشهای مبتنی بر ظاهر1 و روشهای مبتنی بر مدل.2 در روشهای مبتنی بر ظاهر، تصویر ورودی یا ویژگیهای استخراج شده از آن با پایگاه دادهای که شامل تصاویر دوبعدی و یا ویژگیهای اشکال مختلف دست میباشند، مقایسه میشود و نزدیکترین حالت به تصویر ورودی به دست میآید. این روش به آموزش جهت به دست آوردن تابع نگاشت نیاز دارد .[2]در روشهای مبتنی بر مدل، از یک مدل اولیه استفاده میشود و این مدل به طور پیوسته به وسیلهی ویژگیهای استخراج شده از روی تصویر ورودی بهروز میشود. از این رو اطلاعات مطلوبی شامل حالت در هر زمان فراهم میشود. این روشها به محاسبات زیادی نیازمند هستند و در عمل پیادهسازی آنها به صورت آنی امکانپذیر نیست .[2] برآورد حالت دست با استفاده از تصاویر به دست آمده از دوربینها - رنگی یا عمق - شامل سه مرحله زیر میباشد:
1.تشخیص محل دست و جداسازی آن
2.استخراج ویژگی
3.تنظیم پارامترهای مدل مورد استفاده با ویژگیهای استخراج شده و در نتیجه بهروزرسانی مدل
در مرحله تشخیص محل دست و جداسازی آن، ویژگیها و علائمی برای یافتن ناحیهای از تصویر که شامل دست است استخراج میگردد. ویژگیهای استفاده شده در تشخیص مکان دست در دوربینهای رنگی را میتوان به دو دسته ویژگیهای رنگی و شکلی تقسیمبندی کرد. در ویژگیهای رنگی از رنگ دست یا علائمی که بر روی دست گذاشته می-شوند، جهت تشخیص مکان دست استفاده میشود. یکی از مهمترین مزایای دوربین عمق نسبت به دوربینهای معمولی، جداسازی بهتر دست است. در بسیاری از مقالهها از یک حد آستانه جهت جداسازی دست استفاده شده است. در این روش فرض شده است که دست از سایر اعضای بدن جلوتر قرار میگیرد. این روش به صورت مستقیم در [3] تا [6] استفاده شده است.برای استخراج ویژگیهای لازم جهت برآورد حالت، بسته به مدل استفاده شده و نوع کاربردی که آنالیز ژست دست به دنبال دارد؛ ویژگیهایی از قبیل موقعیت نوک انگشتان، تعداد انگشتان، موقعیت کف دست3 و زاویههای بین مفاصل دست میتوانند استخراج شوند. در ادامه برخی از روشهای استخراج ویژگی مطرح میشود.
-2مروری بر کارهای گذشته
در [7] و [8] برای پیدا کردن نوک انگشتان ابتدا کانتور4و پوسته محدب5 اطراف دست پیدا میشود و سپس محل تلاقی این دو ویژگی محاسبه میشود. نوک انگشتان به همراه نقاط دیگری پیدا شدهاند. نقاط اضافی در دو مرحله حذف میشوند. ابتدا نقاط بر اساس فاصله، کلاستربندی شده و از میان نقاط نزدیک به هم تنها یک نقطه باقی میماند. پس از آن با استفاده از روش تطبیق سه نقطه6، نقاط اضافی باقیمانده از مرحله قبل حذف میگردند. در این روش برای هر نقطه باقیمانده، یک نقطه قبل و یک نقطه بعد از آن در فاصلههای مشخص بر روی کانتور در نظر گرفته میشود. سپس فاصله خط گذرنده از این دو نقطه تا نقطه انتخابی محاسبه میشود.
اگر این فاصله از مقدار مشخصی کمتر باشد آن نقطه حذف میشود. مبنای کار این است که انگشتان به دلیل اینکه ماهیت استوانهای دارند؛ اگر فاصله نقطه نوک انگشت از نقاط اطراف محاسبه شود نسبت به سایر نقاط که در سطوح هموارتری قرار دارند از نظر اندازه بیشتر خواهد بود.در [9] با استفاده از دادههای عمق به دست آمده از کینکت، ژستهایی که توسط پلیس کنترل ترافیک انجام می-شود، تشخیص داده شده است. در این مقاله بردار ویژگی که ژست کنترل ترافیک را توصیف میکند؛ شامل زوایای نسبی بین مفاصل اسکلت میباشد و از کلاسهبند ماشین بردار پشتیبان - SVM - 1 برای تشخیص ژست استفاده شده است.
در [10] و [11] سیستمی مبتنی بر استفاده از کینکت برای تعامل انسان با ربات طراحی شده است. در این سیستم، کینکت ژستهای مختلف بدن را تشخیص داده و یک واسطهی تعاملی بین انسان و ربات تولید میشود. لازم به ذکر است که در این مقالهها از ژستهای ایستا استفاده شده است. روند کلی در این مقالهها را میتوان در چهار گام - 1 جمع-آوری ژستهای بدن در فضای سهبعدی به وسیلهی کینکت - 2 پردازش تصاویر به دست آمده از کینکت و تعریف ماژولهای ژست - 3 2 انتقال دستورات و دادههای متناسب با ماژول ژست تشخیص داده شده و - 4 اجرای عملکرد مناسب توسط ربات خلاصه کرد.
در [12] سیستم تشخیص ژست پویای دست به صورت درون خطی3 با استفاده از دوربین RGB-D ارائه شده است. قبل از دنبال کردن دستها، با استفاده از تصاویر عمق و الگوریتم نگاشت فاصله چمفر4، دستها تشخیص داده شده و موقعیتشان معلوم شده است. این سیستم هم از اطلاعات رنگی و هم اطلاعات عمق در فرآیند دنبال کردن دست استفاده کرده است. برای اینکه مسیر حرکت دست مشخص شود لازم است که نقطه شروع و پایان مسیر حرکت تشخیص داده شود که برای حل این مسئله، در حین عملیات دنبال کردن دست از دو ژست ثابت، یکی دست در حالت کاملا باز و دیگری دست در حالت مشت استفاده شده است. در پایان از مدل مخفی مارکوف با ساختار تسمه چپ به راست5 به منظور طبقهبندی هر دنباله از مسیرها استفاده شده است.
در این تحقیق هدف این است تا با استفاده از روش ضبط حرکت بدون نشانهگذاری و بر اساس مبانی بینایی ماشین، حرکت بازوی یک عامل انسانی، توسط بازوی ربات در یک محیط کنترل نشده تقلید شود. این مسئله را برآورد حالت مبتنی بر مدل گویند. بدین منظور رویکردی برای استخراج ویژگیهای لازم جهت توصیف فضای پارامتری حرکت بازو ارائه میشود. به منظور استخراج ویژگیها از ترکیب دادههای عمق، رنگی و اسکلت به دست آمده از کینکت و برای نمایش، از دادههای رنگی استفاده شده است. برخی از ویژگیها به طور مستقیم از اطلاعات عمق و اسکلت به ازای هر فریم استخراج میشوند؛ در حالیکه دیگر ویژگیها با به کارگیری مفاهیم بینایی ماشین به دست میآیند. در نهایت با بهروزرسانی بازوی ربات موجود از طریق تنظیم پارامترهای مربوط به مفاصل ربات، حالت برآورد شده به ازای هر فریم به دست میآید.
-3مفاهیم اولیه
-1-3درجهبندی عملیاتی ربات
در این تحقیق از بازوی ربات RoboTEK II ST240 استفاده شده است که با سه درجه آزادی دورانی از گروه رباتهای آرنجی میباشد و فاقد درجهبندی دقیق است. بازوی ربات مورد استفاده دارای واسط گرافیکی - شکل - 1 است. در واسط گرافیکی، مفصلهای مورد استفاده و محدودهی کاری هر مفصل نشان داده شده است. محدوده کاری هر مفصل در واسط