بخشی از مقاله

چکیده

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

مقدمه

یکی از زمینههای کاربردی بینایی ماشین، تحلیل صحنه های ترافیکی همچون شمارش تعداد خودروها و ثبت تخلفات رانندگی مانند سرعت و ثبقت غیر مجاز است. از مشکلات موجود در این زمینه میتوان به تنوع زیاد خودروها، وجود خودروها در اندازه و رنگهای مختلف و تغییر شکل خودرو با توجه به موقعیت و فاصله خودرو نسبت به دوربین اشاره کرد. از الگوریتم های گوناگونی جهت شناسایی خودرو استفاده میگردد.

رایج ترین الگوریتم استفاده از تخمین حرکت در اتوبانهای شهری توسط الگوریتمهای مدل مخروطی گوسی و شار نوری و متوسط گیری میباشد

از معایب این روش میتوان به خطای زیاد آن اشاره کرد. چون در اتوبانها به جز خودرو اجسام متحرک زیادی همچون موتور سیکلت، تلویزیونهای تبلیغاتی، حرکت درختان توسط وزش باد و حرکت سایه های وسط خیابان با گذشت زمان وجود دارد. بنابراین بهتر است از ویژگیهای تغییرناپذیر خودرو همچون لبههای افقی و عمودی، چراغهای جلو و عقب، زاویههای عقب خودرو و دیگر ویژگیها استفاده کرد. این مقاله به ارائه روشی جهت شناسایی خودرو توسط ویژگی فیلتر Haar-Like پرداخته است. شناسایی جسم توسط ویولا جونز و ویژگی شبه هار، الگوریتم تشخیص جسم در زمان واقعی3 است که توسط آقایان Paul Viola و Michael Jones ارائه گردیده است. در این روش از 4 عنصر کلیدی Haar-Like feature, AdaBoost algorithm, Integral image, cascade classifier استفاده میشود:[3]

ویژگیهای مستطیلی ساده هستند که فیلترهای Haar-Like نامیده میشود و به عنوان ویژگیهای ورودی به cascade classifier مورد استفاده قرار میگیرند. در شکل - 1 - چند نمونه از فیلترهای Haar-like آورده شده است. با اعمال هر یک از این فیلترها به یک ناحیه خواصی از تصویر، مجموع مقادیر پیکسلهای زیر نواحی سفید رنگ از مجموع مقادیر پیکسلهای موجود در زیر نواحی سیاه رنگ کم میشوند به عبارتی مقدار وزن نواحی سفید رنگ را میتوان 1 و مقادیر عددی پیکسلهای مشکی رنگ را -1 در نظر گرفت. در این مقاله با اعمال این فیلترها بر روی تصاویر ویدئویی، نواحی خودرو شناسایی گردید.

شکل - 1 - انواع مختلف فیلتر .Haar-like

AdaBoost Algorithm

روش یادگیری ماشینAdaboost 4 - الگوریتم یادگیری تقویتی تطبیقی - برای انتخاب ویژگیها و بهبود نتایج به صورت تکراری مورد استفاده قرار میگیرد. ویولا و جونز برای انتخاب کردن یک Haar Feature خاص، از متدی در یادگیری ماشین که Adaboost خوانده میشود استفاده کردند. روش Adaboost برای ساختن یک دسته بند قوی5، تعداد زیادی دسته بند ضعیف6 را با هم ترکیب میکند. ویولا وجونز یک سری از Adaboost classifier ها را به عنوان یک زنجیره فیلتری با هم ترکیب کردند. هر فیلتر یک Adaboost classifier مجزا است که از تعداد کمیweak classifier تشکیل شده است.

اگر هر کدام از این فیلترها در قبول کردن ناحیه ای از تصویر به عنوان خودرو شکست بخوردآن، ناحیه فوراً به-non vehicle دستهبندی میشود. وقتی یک فیلتر یک ناحیه از تصویر را به عنوان خودرو قبول کرد، ناحیه موردنظر وارد فیلتر بعدی در زنجیره میشود. در صورتی که ناحیه موردنظر از تصویر همه فیلترهای زنجیره را با موفقیت پشت سر گذاشت به عنوان vehicle دسته بندی میشود. در این الگوریتم هر سیکل از boosting، یک ویژگی از بین تعداد زیادی از ویژگیهای بالقوه انتخاب میکند که در نهایت کلاسبندی نهایی ترکیب خطی ای از کلاسبندیهای ضعیف اولیه خواهد بود 

Integral Image

تصاویر مجتمع7 که یک روش سریع برای محاسبه مقدار ویژگیهای Haar-Like است. ویولا و جونز برای اینکه از بین صدها نوع Haar Features تشخیص دهند کدام در هر تصویر وجود دارد، از این تکنیک استفاده میکنند. تصویر تجمعی در یک نقطه، یعنی مجموع تمام مقادیر پیکسلهای بالا و سمت چپ. نقاط سیاه رنگ شکل 2 تصویر تجمعی در یک نقطه را نشان میدهد. با داشتن تصویر تجمعی میتوان ویژگیهای شبههار را به سرعت و با اپراتورهای ساده جمع و تفریق محاسبه کرد.

شکل - 2 - تصویر تجمعی در یک نقطه. نقاط سیاه رنگ یعنی مجموع مقادیر پیکسلهای این ناحیه.

Cascade Classifier

یک دستهبند8 آبشاری 9 برای رد کردن سریع پنجرههای خطا و بهبود سرعت است.[7] ,[6] در هر نود درخت یک انشعاب non-vehicle داریم بدین معنی که این تصویر، خودرو نیست. با استفاده از این تکنیک نرخ false negative دارد به حداقل میرسد.

به منظور استفاده از الگوریتم ویولا جونز برای شناسایی خودرو ابتدا نیاز است که فایل آبشاری را به صورت جدا توسط نرم افزار OpenCV10 آموزش داد و یک فایل XML از آن تهیه کرد. نرم افزار OpenCV از طبقهبندی برای تشخیص شیء استفاده میکند. یک بار تعداد زیادی تصویر خودرو موجود در پایگاه داده را برای آموزش به این نرم افزار میدهیم و نتیجه را در یک فایل XML ذخیره میکنیم. سپس میتوان با استفاده از ویژگیهای Haar-Like، خودروها را شناسایی کرد.

برای انجام vehicle detection اولین چیزی که احتیاج داریم یک پایگاه داده از تصاویر خودروهای مختلف است. از پایگاه تصاویر موجود در اینترنت میتوان بدین منظور استفاده کرد. اما تصاویر پایگاه داده استفاده شده در این مقاله را خودمان از ویدیوهای نظارتی تهیه کردیم. پایگاه داده ما شامل 576 تصویر با اندازه های مختلف از انواع خودروها در شرایط متفاوت نورپردازی است. شکل 3 چند نمونه از دیتابیس استفاده شده جهت شناسایی خودرو نشان داده شده است.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید