پایتون یک زبان برنامه نویسی تفسیر شده سطح بالا و عمومی است که توسط Guido Van Rossum اولین بار در سال 1991 منتشر شد، نام پایتون از روی نام بک فیلم کمدی برداشته شده است و این زبان ترکیبی است از زبانهای سطح بالای جاوا و سی و سی پلاس پلاس و همچنین زبانهای تفسیریPerl ,Tel , Scheme از ویژگیهای پایتون می توان به
1- فراگیر بودن در هر پلتفرمی (linux, windows , ios)
2-syntax ساده
3-سبک و کم حجم بودن و مدیریت حافظه بصورت خودکار
4-سطح بالا بودن بدین معنی که کاربر نیازی به کار با رجیسترها و پشته همانند زبان سطح پایین اسمبلی ندارد.
5-برخورداری از کتابخانه های وسیع و قدرتمند
6- شی گرایی که مهمترین ویژگی محسوب می شود
7- متن باز بودن و در دسترس بودن
8- سرعت بالا در مقایسه با سایر برنامه های اسکریپتی
اشاره نمود. ادامه مطلب ...
با استفاده از این دستور به استفاده بهینه تری از حافظه و همچنین کاهش مصرف زمان پردازش دست می یابیم،نتیجه 6 آزمونی که برای جمع دوبردار با 8192 عنصر اجرا شد با استفاده از این دستور و همچنین بدون استفاده از آن در جدول زیر آمده است.
شماره آزمون | با استفاده از دستورcudaDeviceSynchronize | بدون استفاده از دستور cudaDeviceSynchronize |
1 | 2479028microsecond | 2486615microsecond |
2 | 2503691microsecond | 2573641microsecond |
3 | 2576774microsecond | 2570786microsecond |
4 | 2470012microsecond | 2629837microsecond |
5 | 2571920microsecond | 2710080microsecond |
6 | 2495909microsecond | 2618598microsecond |
SIFT |
همانطور که در تصویر بالا مشاهده می کنید دو رادیو طوسی در ویژگی کلیشان تفاوتی دیده نمی شود سپس به مقایسه ویژگی های محلی پرداخته می شود که در قسمت وسط تفاوت مشاهده می شود
در دو عکس فوق به بررسی ویژگیهای شکل پرداخته می شود و نقاطی که تطابق بیشتری دارند بعنوان شی مورد نظر مشخص می شود
یکی از راههای استخراج ویژگی تفاضل گرادیان در مراتب مختلف است که در شکل زیر اورده شده است
و اما چالشها:
1-الگوریتم استخراج ویژگی قوی بایستی نسبت به چرخش یا Rotation مقاوم باشد 2- الگوریتم استخراج ویژگی قوی بایستی نسبت به تغییرات روشنایی مقاوم باشد 3- الگوریتم استخراج ویژگی قوی بایستی نسبت به تغییر مقیاس مقاوم باشد 4- مقاومت در برابر زاویه عکسبرداری نیز یکی دیگر از ویژگی های این الگوریتم است 5- الگوریتم تشخیص ویژگی باید نسبت به نویز هم مقاوم باشد
چون الگوریتم SIFT در برابر تمامی این چالشها مقاوم است از آن به عنوان یک الگوریتم قوی در استخراج ویژگی یاد می شود ، البته باید متذکر این مسئله نیز شد که این الگوریتم در برابر تغییرات روشنایی هنوز بصورت کامل مقاوم نیست.
کاربردها:
1- تطبیق یک مجموعه تصویر (مانند تصاویر پانوراما)
2- شناسایی اشیا (جستجوی یک شی در میان تصویری از اشیا مختلف و یافتن مکان آن شی)
3- ساخت مدل سه بعدی از روی مجموع تصویر (جمع نمودن تصاویر از زوایای مختلف با استفاده از SIFT)
4- ردیابی اشیاء در ویدئو(فریم به فریم)
روند کار Histogram Oriented Gradient بدین صورت است که ابتدا در جهت محور xها وyها از تصویر مشتق گرفته میشود (که همان تفاضل دو پیکسل مجاور می باشد) و دو ماتریس از تصویر بدست می آید (شکل1)
همانطور که در شکل1 مشاهده می شود بافتهایی از تصویر در جهات محور x و y بدست میآید،سپس برای تمامی عکسهای پوشه این کار انجام میشود، بعد از آن ماتریس اندازه از رابطه
بدست میآید(شکل2)
و همچنین ماتریس زوایای موجود در تصویر با فرمول angle=arctan(gy/gx) قابل محاسبه می باشد (شکل 3)
برای کم کردن حجم هیستوگرام زوایا، باقیمانده زوایای بیشتر از 180 درجه را بر 180 محاسبه و جایگزین زاویه اصلی میشود، بدین ترتیب برای تمامی تصاویر این کار انجام می شود، سپس با استفاده از رابطه فاصله اقلیدسی فاصله بین هیستوگرامهای تصاویر محاسبه شده و آن فاصله ای که تا هیستوگرام زاویه تصویر اصلی صفر شد تصویر منطبق میباشد.(شکل 4)