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

ماشین‌های پیدا شده، با مستطیل سبز رنگ مشخص شده‌اند

۱. ۱. مقدمه

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

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

1)سیستم‌های کنترل ترافیک (برای مثال بررسی حجم ترافیک یا شناسایی متخلفین ) [3][16]
2)برنامه‌ریزی شهری[3] [6][16]
3)برای شناسایی یک خودرو که عکس آن در خیابان گرفته شده‌است[2]
4)خودرو‌های بدون راننده
5)هر سیستمی که قصد هدایت خود را در خیابان و محیط‌های شامل خودرو دارد
6)مدیریت پارکینگ‌ها با اعلام ورود خودرو به مکان مورد نظر توسط ماشین(یا برای مثال برای باز کردن اتوماتیک در پارکینگ هنگامی‌که خودرو در مقابل آن قرار می‌گیرد)
7)در صورتی‌که ویژگی‌های خودرو مانند رنگ،مدل،شمارپلاک و غیره را بتوان توسط ماشین شناسایی کرد می‌توان برای تشخیص خودروی سرقت شده، متخلف
و یا هر موردی که در تعقیب است از آن استفاده کرد.[3]

پیدا کردن خودرو در تصویر کمی پیچیده است،زیرا برای مثال صورت انسان ساختار ساده‌تر و انعطاف‌پذیری کمتری دارد[1]، اما خودرو‌ها شکل‌ها و مدل‌های بسیار متفاوتی دارند چون طراحی‌شان با یکدیگر متفاوت است[4].انتظار ما این است که خودرو‌ها مستقل از زاویه دید ما(view) شناسایی شوند.برای این کار باید ماشین را برای تشخیص خودرو از زوایای مختلف تعلیم دهیم[1].

شکل(1) تصویر شامل خودرهای مختلف و خروجی مورد نظر ما که خودروها با کادر قرمز مشخص شدند

۲. ۲. کارهای مرتبط

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

  • در روش اول اشیاء (binary) را در یک چارچوب آماری طبقه‌بندی می‌کنیم.سپس مجموعه‌ای از ویژگی‌ها را بررسی و ارزیابی می‌کنیم.در نهایت به چارچوب لازم برای طبقه‌بندی عکس می‌رسیم. در این روش در واقع یک طبقه بندی سلسله مراتبی جامع برای خودرو انجام می‌دهیم که بتوان به وسیله آن تشخیص داد که قسمت مورد نظر جزئی از خودرو است یا خیر.[1]

    شکل(2) این تصویر پرمعنی ترین نقاط کلیدی خودرو را با رنگ قرمز و نقاط کلیدی زمینه را با رنگ سبز نمایش می دهد.
    • روش دوم استفاده از تکنیک‌های computer vision است .با آنالیز داده باید با استفاده از تصاویر زیاد به الگوریتم بیاموزیم در کدام تصاویر خودرو وجود دارد یا وجود ندارد.سپس ویژگی‌های پرمعنا را از تصویر استخراج کنیم.سپس ماشین ما تشخیص می‌دهد که خودرو کجا قرار دارد یا اینکه اصلا وجود ندارد.[5] [8] [13]

      شکل(3) آنالیز تصویر

    • در روش سوم دنباله ای از تصاویر شامل خودرو داریم ،یعنی فرض می‌کنیم صحنه پویاست. ماشین برای یافتن خودرو سه راه دارد: 1)با متدهای مشخص زمینه را حذف کند2)ویژگی‌ها را با متدهایی استخراج کند3)با استفاده از متدهایی ،قالب‌های متفاوت را در تصویر از یکدیگر جدا کند و اجسام متحرک را در تصویر تشخیص دهد.[6][12]

      شکل(4) شناسایی اجسام متحرک
      شکل(5)شناسایی اجسام متحرک

    • روش چهارم استفاده از ویژگی‌های Haar-like است که ایده اصلی آن به این شرح است:با توجه به ویژگی‌های ساده‌‌ای که طبقه‌بندی کننده در چند مرحله ساماندهی کرده‌است یک شیء را به صورت آبشاری تعریف می‌کنیم(یا به صورت پله پله).سیستم پیشنهادی بر اساس ANN(شبکه عصبی مصنوعی ) کار می‌کند. [7] [9][14][15]

      شکل(6) شناسایی چهره با استفاده از ویژگی مذکور در مراحل مختلف

  • روش پنجم طراحی طبقه‌بندی‌کننده(classifier)ای است که بتواند تشخیص دهد در تصویر ماشینی وجود دارد یا خیر.تفاوت این روش با روش دوم در این است که در این روش علاوه‌بر ویژگی‌های شکلی جسم، هم از ویژگی‌های رنگ و شکل و هم از ویژگی‌هایرنگ به تنهایی استفاده می‌شود. مجموع این اطلاعات برای طبقه‌بندی تصویر کافی است.[10]
    در مقاله‌‌ی [16] با استفاده از DeepLearning سعی بر پیدا‌کردن و شمردن خودرو‌ها از روی عکس‌های هوایی اتوماتیک (UAV Imagery) شده‌است.اما از الگوریتم‌های خاصی برای افزایش کارایی استفاده‌ شده‌است.روش‌های deepLearning برای استخراج ویژگی‌ها (features) نیازی به حجم داده (data) بالا ندارد.

    شکل(7) نمودار متد مورد نظر به کمک یادگیری عمیق

    در شکل 7، CNN در واقع convolutional neural network و SVM در واقع support vector machine هستند.

  • در روش ششم ابتدا اندازه‌ و زاویه‌ی بردار گرادیان همه‌ی پیکسل‌های تصویر را به دست می‌آوریم،سپس پیکسل‌های غیرماکزیمم و پیکسل‌های با اندازه‌ی گرادیان ضعیف حذف می‌شوند. سپس پیکسل‌های باقی‌مانده بر اساس زاویه گرادیان در دو سطح افقی و عمودی چند‌سازی می‌گردند.در مرحله بعد ضرایب خود‌همبسته نگار لبه در هر سطح محاسبه ‌می‌شوند.حال یا ویژگی‌های به‌دست‌آمده با توجه به آموزشی که به ماشین داده‌شده تشخیص می‌دهد که در صحنه خودرو حضور دارد یا نه.[11]
    در نهایت می‌بینیم روش‌های مطرح شده مشابهت زیادی دارند.مثلا ممکن است برداشت شود روش اول و چهارم یا روش دوم و پنجم مثل هم عمل می‌کنند که برداشت غلطی نیست،اما درمقاله‌های مختلف از زوایای متفاوتی به این روش‌ها نگاه کرده‌اند.
    اما در کل می‌توانیم این روش‌ها را در روش سوم ، چهارم ، پنجم و ششم به صورت خلاصه طبقه بندی کنیم.

۳. ۳. آزمایش‌ها

۴. ۴. کارهای آینده

۵. ۵. مراجع

[1] B.Leung, Component-based Car Detection in Street Scenes Images ,Department of Electrical Engineering and Computer Science , 2004
[2] S.Yamaguchi, A Car Detection System Using the neocognitron , IEEE International joint conference on, Singapore , 2002
[3] T.Tang ,S.Zhou, Z.Deng, H.Zou, L.Lei ,Vehicle Detection in Aerial Images Based on Region Convolutional Neural Networks and Hard Negative Example Mining , Sensor ,2017
[4] S.Cheung,A.Chu , Make And Model Recognition of Cars,Department of Computer Engineering University of California ,San Diego , 2008
[5]https://chatbotslife.com/vehicle-detection-and-tracking-using-computer-vision-baea4df65906
[6]R.Hadi ,G.Sulong ,E.George , Vehicle Detection And Tracking Techniques:A Concise Review , Malaysia,Iraq,2014
[7]M.Oliveria,V.Santos,Automatic Detection of Cars in Real Roads using Haar-like Features, Department of Mechanical Engineering, University of Aveiro ,Portugal ,2008
[8] https://github.com/JunshengFu/vehicle-detection
[9]https://github.com/andrewssobral/vehicle_detection_haarcascades
[10]https://github.com/NikolasEnt/Vehicle-Detection-and-Tracking
[11] م.سعادتمند، یک روش جدید برای تشخیص خودرو در تصویر، کنفرانس توسعه کاربردهای صنعتی اطلاعات ارتباطات و محاسبات ، مشهد ، 1390
[12]https://github.com/andrewssobral/simple_vehicle_counting
[13]https://github.com/ckirksey3/vehicle-detection-with-svm
[14]A.Naba, B.Pratma,A.Nadhir ,Haar-like feature based-time neuro car detection system, Indonesia ,2016
[15] Y.Wang,Monocular Vehicle Detection and Tracking, Department of Electrical and Computer Engineering University of California, San Diego
[16]N.Ammour,H.Alhichri,Y.Bazi,B.Benjdira,N.Alajan,M.Zuair,Deep Learning Approach for Car Detection in UAV Imagery,Computer Engineering Department, College of Computer and Information Sciences, King Saud University,2017
[17]https://en.wikipedia.org/wiki/Computer_vision
[18]https://en.wikipedia.org/wiki/Artificial_neural_network
[19](https://en.wikipedia.org/wiki/Deep_learning
پیوندهای مفید

سید ابوالفضل مهدی زاده

با عرض سلام و خسته نباشید
در متن این نوع گزارش‌ها معمولا از لفظ ما استفاده نمی‌کنند. در متن مقالات کنفرانسی که چندین نفر بر روی یک مسئله کار کرده‌اند این کار مرسوم است. بهتر است در این گزارش از لفظ ما استفاده نشود.
شرح مسئله در مقدمه مناسب است. کاربردهای مسئله را به خوبی شرح داده‌اید. بهتر است مشکلات و چالش‌های آن را هم بیشتر ذکر کنید.
برخی از اصطلاحات استفاده شده در این گزارش معادل دارند. برای مثال بینایی ماشین معادل Computer Vision و یادگیری عمیق معادل Deep Learning است. بهتر است معادل فارسی این لغات را ذکر کرده و اصل آن‌ها را در پاورقی ذکر کنید. اصلا از پاورقی استفاده نکردید.
در قسمت کارهای مرتبط ترجمه صورت گرفته روان نیست. بهتر است فقط مطالبی که متوجه شدید را ذکر کنید. آموزش مدل‌های عمیق (شبکه‌های عصبی عمیق) نیازمند حجم بالایی از داده است. در مقاله ذکر شده از شبکه‌ای آموزش دیده برای استخراج ویژگی استفاده شده و ماشین بردار پشتیبان (SVM) وظیفه یادگیری را بر عهده دارد.
در ادامه گزارش حتما مجموعه داده‌ای که قصد استفاده از آن را دارید معرفی کنید. چند نمونه از این داده را آورده و در مورد آن‌ها توضیح دهید.
امیدوارم موارد ذکر شده را رعایت کرده و کیفیت کار و گزارش خود را در مراحل بعد بالا ببرید.
با احترام