ردیابی چندین شی از طریق یادگیری عمیق - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

ردیابی چندین شی از طریق یادگیری عمیق

0 امتیاز
سلام و عرض ادب

دوستانی که ترکینگ کار کردند بخصوص با یادگیری عمیق ، چندتا سوال داشتم ممنون میشم راهنماییم کنید.

1- چهارچوب کلی ترکنیگ چجوری هست ؟ مکانیزمش چجوری هست؟

2- آیا ترکینگ بهتر از دتکشن کار میکند ؟ معیا و مزایا نسبت به همدیگر چیه؟
3- برای ترکینگ آیا لازمه اول دتکشن صورت بگیرد بعد ترکینگ ؟ ترکینگ مستقل نمیتواند کار کند ؟
4- فرضا برای دتکشن مثله ssd قطعا رزولوشن ورودی تاثیر گذاره آیا در ترکینگ هم همینطوره ؟ یا اینکه اگر جای آبجکت بخوبی دتکت بشه بعدش میتوان با کیفیت پایین هم همان آبجکت رو ترکنیگ کرد؟
5- در حال حاضر بهترین الگوریتم برای ترکینگ چیه ؟ روباست و سریع و دقیق باشه

6- الگوریتم خاصی با یادگیری عمیق برای ترکینگ هست یا اینکه الگوریتم های opencv بهتر عمل میکنند
سوال شده بهمن 11, 1397  بوسیله ی minimax (امتیاز 78)   7 20 27
ویرایش شده بهمن 11, 1397 بوسیله ی مصطفی ساتکی

1 پاسخ

0 امتیاز
 
بهترین پاسخ
سلام به فروم خودتون خوش آمیدید

لطفاً در هر پست یک سوال مطرح کنید و سوالات کلی مطرح نکنید.

1- ناحیه اولیه ردیابی در فریم جاری دریافت میشه و سپس استخراج ویژگی صورت می گیره و در فریم بعدی در همسایگی مکانی  ناحیه در فریم قبلی استخراج ویژگی صورت می گیره و میزان همبستگی محاسبه میشه.

2- دو موضوع متفاوت هستند که در برخی از روش ها با هم همپوشانی زیادی دارند.روش های تراکینگ الزاما بر پایه ویژگی های تصویری نیستند.

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

4- بستگی به روشش داره ولی در کل تاثیر گذاره.هر چقدر در روش های ردیابی مبتنی بر ویژگی های تصویر رزولوشن تصویر بالاتر باشه اطلاعات دقیق بدست میاد و برخی الگوریتم ها به حداقل رزولوشن نیازمندند.

5- بله وجود داره خود opencv هم در برخی از روش ها از یادگیری عمیق استفاده می کنه.
پاسخ داده شده بهمن 11, 1397 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد بهمن 11, 1397 بوسیله ی minimax
ممنون از پاسخ های خوبتون.
1- ظاهرا روش های مبتنی بر یادگیری عمیق خیلی کند هستند مثل ROLO  - درسته ؟
2- بنظرتون بهترین روشی که با opencv برای ترکینگ پیاده شده و شما هم بیشتر استفاده میکنید چی هست ؟ طبق تحقیقاتی که انجام دادم بنظر میرسه مون سمپل از همشون تقریبا خوبه درسته ؟
3- اینکه شما در پاسخ ۱ میفرمایید ناحیه اولیه ابجکت باید مشخص شود و سپس استخراج ویژگی صورت میگیره این استخراج ویژگی را دتکشن انجام میده یا ترکینگ ؟ چون بنظر میرسه که وقتی دتکشن محل آبجکت را شناسایی میکند در واقع همان استخراج ویزگی هم انجام میدهد  پس چه لزومی داره دوباره استخراج ویژگی صورت بگیرد ؟
4- دتکشن که محل ابجکت را پیدا میکند فقط مختصات  به ترکر داده میشود یا ویزگی های استخراج شده هم ؟
5 - « سپس استخراج ویژگی صورت می گیره و در فریم بعدی در همسایگی مکانی  ناحیه در فریم قبلی استخراج ویژگی صورت می گیره و میزان همبستگی محاسبه میشه.»
در واقع منظور از همبستگی همان کانولوشن ویژگی های فریم قبلی و فریم بعدی صوت میگیرد در هرجا مقدار کانالوشن در همسایگی محل کاندید بیشتر بود سیستم متوجه میشه که ابجکت داره به اون سمت حرکت میکنه ؟
6- این ترکر ها که استخراج ویژگی انجا میدهند مبتنی بر شبکه های عصبی هستند یا اینکه ویژگی های مثله HOG یا چیزهای دیگه ؟‌ اینجوری که باشه در واقع ترکر مکانیزم ساده ایی دارد درسته ؟
7- در مورد پاسخ دوم تون لطفا یکم بیشتر توضیح دهید یعنی چی لزوما مبتنی بر ویژگی تصویر نیستند مگر ما جز تصویر با چیز دیگری میتوانیم ترک کنیم؟
8-  اگر سیستم یک ابجکتی را ترک کند و سرعت آن ابجکت یدفعه ایی زیاد شود و ترکر نتواند آن را دنبال کند بنظرتون برای مقابله با این روش چه چیزی یا روش هایی را پیشنهاد میکنید ؟ آیا بنظرتون خوب نیست برای مقابله با این روش دتکشن و ترکر همزمان باهم ران شوند و ترکز هرجا که ابجکت را گم کرد از دتکشن کمک بگیرد؟
1-بله
2-اگر دقت خیلی مهمه CSRT اگر سرعت خیلی مهمه MOSSE و اگر هم یک تراکر متعادل در سرعت و دقت نیاز دارید KCF من خودم اغلب از KCF استفاده می کنم
3- چون دیکتکشن بار محاسباتی بالایی داره به همین خاطر در تک فریم دقت خوبی داره برخی از روش های تراکین ممکنه اشتباه کنند که از این طریق جبران میشه .
4-فقط مختصات
5-نه الزاما کانولوشن ،می تونه یکی از روش ها باشه از flow بیشتر استفاده میشه
6- ساده برای چه کسی ؟ منظورتون پیچیدگی محاسباتیه؟ در روش های مختلف متفاوته هر جفت استفاده میشه .روش های مبتنی بر hog از ویژگی های رنگ نیز استفاده می کنند ولی در روش های dnn خود ورودی شبکه 3 کاناله هستش.
7-بله روشی مثل kalman که از فیلد دیگری وارد شده و استفاده میشه.
8- بله همیشه استفاده میشه و در این زمینه نیز چالشی های وجود داره.
برای پاسخ شماره ۸ تون :
شما که میفرمایید همیشه در کنار ترکینگ ، دتکشن هم ران میشه و باهم موازی هم اجرا میشوند اگر روی هم رفته حساب کنیم چون دتکشن بار محساسباتی بالایی دارد لذا در فریم به فریم محل دقیق آبجکت را بخوبی شناسایی میکند اگر اینجوری باشه چه لزومی داره از ترکینگ استفاده بشه؟
و اینکه شما میفرمایید معمولا از KCF استفاده میکنید برای بخش دتکشن معمولا از چه الگوریتمی استفاده میکنید ؟ آیا این دوتا رو همزمان و موازی هم ران میکنید یا اینکه دتکشن به محض اینکه محل ابجکت رو شناسایی کرد دیگر سیستم دتکشن را متوقف میکنید و سیستم ترکینگ به تنهایی اجرا میکنید؟
بستگی داره به محدودیت توان محاسباتی .من الزاما از الگوریتم های شناخته شده همیشه برای شناسایی آبجکت استفاده نمی کنیم چون بارمحاسباتی بالای دارند  و یا اینکه آنها را فیوز می کنم با الگوریتم دست ساز خودم .مهندسی فیچر بخش عمده کار متخصص پردازش تصویر را تشکیل میده شما باید با توجه به محدودیت بارمحاسباتی و حافظه الگوریتم مختلف را ensamble کنید.در الگوریتم های ترکینگ بارمحاسباتی کمتری دارند چون فضای جستجو را از طریق همسایگی آبجکت محدود می کنند الگوریتم شناسایی فقط ناحیه را شناسایی نی کنند ولی الگوریتم های ترک می گن که آبجکت از نقطه a  به نقطه b حرکت کرده.البته در فریم ورک خودم هم کل فعل و انفعال مربوط به دیتکشن و تراکینگ خودم به صورت سفارشی پیاده سازی کردم که در طراحی از الگوریتم های subtraction هم استفاده می کنم .
...