آشنایی با طبقه بندی ویدیو و شناخت فعالیت های انسانی

ساخت وبلاگ

Image visualizing the process of video classification and human activity recognition.

در این پست ، ما در مورد طبقه بندی ویدیویی خواهیم آموخت. ما برای ایجاد یک طبقه بندی ویدئویی برای تشخیص فعالیت های انسانی ، بیش از رویکردها را طی خواهیم کرد. در اصل ، شما طبقه بندی ویدیو و شناخت فعالیت های انسانی را یاد خواهید گرفت.

طرح کلی:

در اینجا یک طرح کلی برای این پست وجود دارد.

1: درک شناخت فعالیت های انسانی

قبل از صحبت در مورد طبقه بندی ویدیویی ، ابتدا بفهمیم شناخت فعالیت انسانی چیست.

به عبارت ساده ، وظیفه طبقه بندی یا پیش بینی فعالیت/عمل انجام شده توسط شخصی ، به رسمیت شناختن فعالیت نامیده می شود.

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

نگاهی به این عمل backflip که توسط این شخص انجام شده است ، فقط می توانیم با تماشای فیلم کامل بگوییم که این یک عقب است.

اگر بخواهیم مدلی را فقط با یک عکس فوری تصادفی (مانند تصویر زیر) از کلیپ ویدیویی بالا تهیه کنیم ، ممکن است این عمل را نادرست پیش بینی کند.

اگر یک مدل فقط تصویر فوق را ببیند ، به نظر می رسد که شخص در حال سقوط است ، بنابراین پیش بینی سقوط می کند.

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

من به طور انحصاری با opencv.org همکاری کرده ام تا دوره های رسمی را در هوش مصنوعی ، کامپیوتر و یادگیری عمیق برای شما به ارمغان بیاورم تا شما را از اولین مراحل تا تسلط در یک مسیر ساختار یافته قرار دهم.

بنابراین چگونه به رسمیت شناختن فعالیت های انسانی به طور سنتی حل شد؟

متداول ترین و مؤثرترین تکنیک این است که یک سنسور پوشیدنی (به عنوان مثال یک تلفن هوشمند) را به شخص وصل کنید و سپس یک مدل زمانی مانند LSTM را در خروجی داده های سنسور آموزش دهید.

به عنوان مثال به این فیلم نگاهی بیندازید:

اما با مثالهای کافی مانند زیر:

این مدل یاد می گیرد که با استفاده از زمینه محیطی بین دو عمل مشابه تمایز قائل شود.

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

اکنون یک اشکال با این رویکرد وجود دارد.

مسئله این است که این مدل همیشه در مورد پیش بینی هر قاب ویدیویی کاملاً اطمینان نخواهد داشت ، بنابراین پیش بینی ها به سرعت تغییر می کنند و نوسان می کند.

مقادیر پیش بینی شده عبارتند از:

, ,

قرار دادن مقادیر در فرمول:

As 0.97 (Ruing score)>0. 03 (نمره راه رفتن) ، بنابراین پیش بینی = دویدن.

بنابراین فقط با استفاده از فرمول فوق از شر سوسو خلاص خواهید شد.

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

3. روشهای طبقه بندی ویدیو:

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

روش 1: CNN تک فریم:

ما قبلاً ثابت کرده ایم که ابتدایی ترین اجرای طبقه بندی ویدیویی استفاده از یک شبکه طبقه بندی تصویر است. اکنون ، ما یک مدل طبقه بندی تصویر را در هر قاب فیلم اجرا خواهیم کرد و سپس به طور متوسط تمام احتمالات فردی را برای به دست آوردن بردار احتمالات نهایی به طور متوسط انجام خواهیم داد. این رویکرد واقعاً خوب عمل می کند و ما در این پست به اجرای آن خواهیم رسید.

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

روش 2: فیوژن دیررس:

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

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

این رویکرد مدل را قادر می سازد اطلاعات مکانی و زمانی را در مورد ظاهر و حرکت اشیاء در یک صحنه بیاموزد. هر جریان طبقه بندی تصویر (فریم) را به تنهایی انجام می دهد و در پایان ، نمرات پیش بینی شده با استفاده از لایه فیوژن ادغام می شوند.

روش 3: فیوژن اولیه:

این رویکرد بر خلاف فیوژن دیر هنگام است ، زیرا در این روش ، بعد زمانی و بعد کانال (RGB) فیلم در ابتدا قبل از انتقال آن به مدل ذوب می شوند که به لایه اول اجازه می دهد تا بیش از فریم ها کار کند و یاد بگیردبرای شناسایی حرکات پیکسل محلی بین فریم های مجاور.

یک فیلم ورودی از شکل (t x 3 x h x w) با ابعاد زمانی ، سه ابعاد کانال RGB و دو بعد مکانی H و W ، پس از همجوشی ، به یک تانسور شکل تبدیل می شود (3T x H x W).

روش 4: استفاده از CNN با LSTM:

Image visualizing the workings of the concept when using CNN with LSTM’s.

ایده در این رویکرد استفاده از شبکه های حلقوی برای استخراج ویژگی های محلی هر فریم است. خروجی این شبکه های حلقوی مستقل به یک شبکه LSTM چند لایه چند لایه تغذیه می شود تا این اطلاعات استخراج شده را به طور موقت فیوز کند.

برای کسب اطلاعات بیشتر در مورد این رویکرد ، می توانید مقاله "تشخیص عمل در توالی های ویدئویی را با استفاده از LSTM دو جهته عمیق با ویژگی های CNN" توسط امین اولله (IEEE 2017) بخوانید.

روش 5: با استفاده از تشخیص POSE و LSTM:

ایده جالب دیگر استفاده از یک مدل تشخیص خاموش قفسه برای به دست آوردن نکات کلیدی بدن شخص برای هر فریم در این ویدئو و سپس استفاده از نقاط کلیدی استخراج شده و تغذیه آنها به یک شبکه LSTM برای تعیین فعالیت در حال انجامویدئو

روش 6: با استفاده از جریان نوری و CNN:

جریان نوری الگوی حرکت مرئی اشیاء ، لبه ها است و به محاسبه بردار حرکت هر پیکسل در یک قاب ویدیویی کمک می کند. به طور موثری در برنامه های ردیابی حرکت استفاده می شود. بنابراین چرا این کار را با CNN برای ضبط حرکت و زمینه فضایی در یک فیلم ترکیب نمی کنیم. مقاله با عنوان "یک بررسی جامع در مورد رویکردهای نمایشی دست ساز و یادگیری مبتنی بر یادگیری برای شناخت فعالیت های انسانی" ، توسط خداوند بوکس سارگانو (2017) چنین رویکردی را ارائه می دهد.

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

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

مشکل این رویکرد این است که به یک الگوریتم جریان نوری خارجی در خارج از شبکه اصلی متکی است تا جریان نوری برای هر ویدیو پیدا شود.

روش 7: با استفاده از شبکه های آهسته:

مشابه روش قبلی این رویکرد همچنین دارای دو جریان موازی است. یک جریان در یک ویدیوی با وضوح موقت در مقایسه با دیگری کار می کند. کلیه عملیات زمانی و مکانی در یک شبکه واحد انجام می شود.

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

هر دو جریان برای ادغام اطلاعات از شاخه سریع به شاخه آهسته در چند مرحله متصل هستند. برای اطلاعات بیشتر و بینش در مورد این رویکرد ، این مقاله را بخوانید ، "شبکه های آهسته برای تشخیص فیلم" توسط کریستوف فیشننوفر (ICCV 2019).

روش 8: با استفاده از فیوژن 3D CNN / آهسته:

این روش از یک شبکه Convolution سه بعدی استفاده می کند که به شما امکان می دهد با استفاده از یک CNN 3 بعدی ، اطلاعات زمانی و مکانی را پردازش کنید. به این روش نیز رویکرد همجوشی آهسته گفته می شود. بر خلاف فیوژن زودرس و اواخر ، این روش اطلاعات زمانی و مکانی را به آرامی در هر لایه CNN در کل شبکه فیوز می کند.

یک تانسور چهار بعدی (دو بعد مکانی ، یک بعد کانال و یک بعد زمانی) شکل H W C T از طریق مدل عبور می کند و به آن اجازه می دهد تا به راحتی انواع تعامل های زمانی را بین قاب های مجاور بیاموزد.

اشکال با این رویکرد این است که افزایش ابعاد ورودی نیز به طرز چشمگیری نیازهای محاسباتی و حافظه را افزایش می دهد. مقاله با عنوان "شبکه های عصبی سه بعدی برای شناخت اقدامات انسانی" ، توسط Shuiwang Ji (IEEE 2012) توضیح مفصلی از این رویکرد ارائه می دهد.

مقاله ای به نام "طبقه بندی ویدیویی در مقیاس بزرگ با شبکه های عصبی Convolutional" توسط Andrej Karpathy (CVPR 2014) ، مقایسه ای عالی بین برخی از روش های ذکر شده در بالا ارائه می دهد.

4: انواع مشکلات تشخیص فعالیت:

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

بنابراین وظیفه انجام تشخیص فعالیت در یک فیلم می تواند به 3 دسته گسترده تقسیم شود. لطفاً توجه داشته باشید که این یک طبقه بندی رسمی نیست ، اما اینگونه است که من شخصاً آن را تجزیه می کنم.

شناخت فعالیت ساده:

در این نوع ، ما مدلی داریم که در یک کلیپ ویدیویی کوتاه قرار می گیرد و عملکرد جهانی مفرد را که انجام می شود طبقه بندی می کند. تمام روشهای مورد بحث در بخش قبلی در این گروه قرار می گیرند.

شناخت/بومی سازی فعالیت زمانی:

فرض کنید ما یک فیلم طولانی داریم که در فواصل زمانی مختلف شامل یک عمل نیست بلکه چندین اقدام است. پس از آن چه می کردیم؟

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

این روش شبیه به RCNN سریعتر است ، پیشنهاداتی را تولید کرده و سپس طبقه بندی می کند. شما می توانید این مقاله عالی را با عنوان "تجدید نظر در معماری سریعتر R-CNN برای بومی سازی اقدامات زمانی" (CVPR 2018) توسط Yu-Wei Chao بخوانید تا در مورد این مشکل اطلاعات بیشتری کسب کنید.

تشخیص فضا-زمانی:

نوع دیگری از مشکل مشابه با مشکل قبلی این است که ما یک فیلم حاوی چندین نفر داریم. همه آنها اقدامات مختلفی را انجام می دهند. ما باید هر شخص را در ویدیو تشخیص داده و بومی سازی کنیم و فعالیتهایی را که توسط هر فرد انجام می شود طبقه بندی کنیم. بعلاوه ، ما همچنین باید دقیقاً مانند زمان شناخت فعالیت زمانی انجام شود. این مشکل تشخیص فضایی-زمانی نامیده می شود.

همانطور که می بینیم ، این یک مشکل سخت و چالش برانگیز است. در این مقاله ، "AVA: یک مجموعه داده ویدیویی از اقدامات بصری اتمی بومی سازی شده فضایی" ، (CVPR 2018) توسط Chunhui GU یک مجموعه داده عالی برای محققان برای آموزش مدل ها برای این مشکل معرفی می کند.

5: طبقه بندی ویدیویی با استفاده از Keras:

خوب ، اکنون با این تئوری کافی است. بگذارید یک سیستم طبقه بندی ویدیویی اساسی با کروس ایجاد کنیم. ما ابتدا یک طبقه بندی معمولی ایجاد خواهیم کرد ، سپس یک تکنیک متوسط متحرک را پیاده سازی می کنیم و سپس در نهایت یک طبقه بندی کننده ویدیوی CNN را ایجاد می کنیم.

همچنین ، لازم به ذکر است که آدریان رزبروک از PyImagesearch همچنین یک آموزش جالب در مورد طبقه بندی ویدیو را در اینجا منتشر کرده است.

در اینجا مراحل انجام خواهیم داد:

  • مرحله 1: مجموعه داده ها را بارگیری و استخراج کنید
  • مرحله 2: داده ها را با برچسب های آن تجسم کنید
  • مرحله 3: مجموعه داده ها را بخوانید و از پیش پردازش کنید
  • مرحله 4: داده ها را در قطار و مجموعه تست تقسیم کنید
  • مرحله 5: مدل را بسازید
  • مرحله ششم: مدل را کامپایل و آموزش دهید
  • مرحله 7: منحنی های از دست دادن و دقت مدل طرح
  • مرحله 8: با مدل پیش بینی کنید
  • مرحله 9: با استفاده از روش CNN تک فریم

اطمینان حاصل کنید که بسته های PAFY ، YouTube-DL و MoviePy نصب شده اید.

واردات کتابخانه های مورد نیاز:

کد را بارگیری کنید تا به راحتی در طول این آموزش دنبال کنید ، لطفاً با کلیک روی دکمه زیر ، کد را بارگیری کنید. رایگان است!

با وارد کردن کلیه کتابخانه های مورد نیاز شروع کنید.

دانه های Numpy ، Python و Tensorflow را تنظیم کنید تا نتایج مداوم کسب کنید.

مرحله 1: مجموعه داده ها را بارگیری و استخراج کنید

بگذارید با بارگیری مجموعه داده ها شروع کنیم.

UCF50 یک مجموعه داده تشخیص عمل است که شامل:

  • 50 دسته اکشن متشکل از فیلم های واقع گرایانه YouTube
  • 25 گروه فیلم در هر گروه اکشن
  • 133 فیلم متوسط در هر گروه اکشن
  • 199 میانگین تعداد فریم در هر ویدئو
  • 320 میانگین عرض فریم در هر ویدئو
  • 240 فریم متوسط در هر ویدئو
  • 26 فریم متوسط در هر ثانیه در هر ویدئو

پس از بارگیری داده ها ، باید آن را استخراج کنید.

مرحله 2: داده ها را با برچسب های آن تجسم کنید

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

Images from the dataset, with actions labelled.

مرحله 3: مجموعه داده ها را بخوانید و از پیش پردازش کنید

از آنجا که ما قصد داریم از یک معماری طبقه بندی برای آموزش در یک مجموعه داده طبقه بندی ویدیویی استفاده کنیم ، ابتدا نیاز به پردازش مجموعه داده داریم.

اکنون ثابت است ،

  • Image_Height و Image_weight: این اندازه ای است که ما تمام قاب های این فیلم را تغییر اندازه خواهیم داد ، ما این کار را برای جلوگیری از محاسبات غیر ضروری انجام می دهیم.
  • max_images_per_class: حداکثر تعداد تصاویر آموزشی مجاز برای هر کلاس.
  • Dataset_directory: مسیر دایرکتوری حاوی مجموعه داده استخراج شده.
  • classes_list: این لیست کلاس هایی است که ما می خواهیم روی آنها آموزش دهیم ، ما در مورد 4 کلاس در حال آموزش هستیم ، شما می توانید احساس راحتی کنید تا آن را تغییر دهید.
    • تایچی
    • نوسان
    • مسابقه اسب دوانی
    • راه رفتن با یک سگ

    توجه: ممکن است ثابت های Image_Height ، Image_weight و MAX_IMAGES_PER_CLASS برای نتایج بهتر افزایش یابد ، اما هشدار داده می شود که از نظر محاسباتی گران می شوند.

    فریم ها را استخراج ، تغییر اندازه و عادی سازی کنید

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

    این روش یک مسیر فایل ویدیویی را به عنوان ورودی طی می کند. سپس قاب فایل ویدیویی را بر اساس قاب می خواند ، هر قاب را تغییر می دهد ، قاب تغییر یافته را عادی می کند ، قاب نرمال شده را در یک لیست قرار می دهد و سپس در نهایت آن لیست را برمی گرداند.

    ایجاد مجموعه داده ها

    اکنون ما تابع دیگری به نام Create_Dataset () ایجاد خواهیم کرد ، این عملکرد از عملکرد Frame_Extraction () در بالا استفاده می کند و مجموعه داده نهایی پردازش شده ما را ایجاد می کند.

    در اینجا نحوه عملکرد این عملکرد آورده شده است:

    1. از طریق تمام کلاسهای ذکر شده در کلاس_ لیست کنید
    2. اکنون برای هر کلاس از طریق تمام پرونده های ویدیویی موجود در آن تکرار می شود.
    3. در هر فایل ویدیویی با روش frame_extraction تماس بگیرید.
    4. فریم های برگشتی را به لیستی به نام temp_features اضافه کنید
    5. پس از پردازش همه فیلم های یک کلاس ، فریم های ویدیویی را به طور تصادفی انتخاب کنید (برابر با max_images_per_class) و آنها را به لیست بنام ویژگی ها اضافه کنید.
    6. برچسب های فیلم های انتخاب شده را به لیست "برچسب ها" اضافه کنید.
    7. پس از پردازش همه فیلم های همه کلاس ها ، ویژگی ها و برچسب ها را به عنوان آرایه های Numpy برگردانید.

    بنابراین وقتی این عملکرد را صدا می کنید ، دو لیست را برمی گرداند:

    • لیستی از بردارهای ویژگی
    • لیستی از برچسب های مرتبط با آن.

    تماس با روش Create_Dataset که ویژگی ها و برچسب ها را برمی گرداند.

    اکنون ما برچسب های کلاس را به یک بردار رمزگذاری شده داغ تبدیل خواهیم کرد.

    مرحله 4: داده ها را به قطار و مجموعه تست تقسیم کنید

    اکنون ما دو آرایه numpy داریم که یکی شامل همه تصاویر است. مورد دوم شامل تمام برچسب های کلاس در یک قالب رمزگذاری شده داغ است. بگذارید داده های خود را برای ایجاد یک آموزش و یک مجموعه آزمایش تقسیم کنیم. ما باید داده ها را قبل از تقسیم ، که قبلاً انجام داده ایم ، تغییر دهیم.

    مرحله 5: مدل را بسازید

    اکنون زمان آن رسیده است که مدل CNN خود را ایجاد کنیم ، برای این پست ، ما یک مدل طبقه بندی ساده CNN با دو لایه CNN ایجاد می کنیم.

    ساختار مدل را بررسی کنید:

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

    Image showing the steps of plot_model function.

    مرحله ششم: مدل را کامپایل و آموزش دهید

    حالا بگذارید آموزش را شروع کنیم. قبل از انجام این کار ، ما نیز باید مدل را کامپایل کنیم.

    Image showing the output of code, the Training-epochs.

    ارزیابی مدل آموزش دیده خود

    مدل آموزش دیده خود را در مجموعه های تست ویژگی و برچسب ارزیابی کنید.

    مدل خود را ذخیره کنید

    اکنون باید مدل خود را برای اجرای آینده ذخیره کنید.

    مرحله 7: منحنی های از دست دادن و دقت مدل طرح

    بگذارید منحنی های ضرر و دقت خود را ترسیم کنیم.

    The graph showing a comparison of Total Loss with Total Validation Loss.

    Graph comparing the Total Accuracy with Total Validation Accuracy.

    مرحله 8: با مدل پیش بینی کنید:

    اکنون که مدل خود را ایجاد کرده ایم و آموزش داده ایم ، زمان آن رسیده است که آزمایش برخی از فیلم های آزمایشی باشد.

    عملکرد برای بارگیری فیلم های YouTube:

    بگذارید با آزمایش برخی از فیلم های YouTube شروع کنیم. این عملکرد از کتابخانه PAFY برای بارگیری هر ویدیوی YouTube و بازگشت عنوان آن استفاده می کند. ما فقط باید URL را منتقل کنیم.

    عملکرد برای پیش بینی فیلم های زنده با استفاده از میانگین متحرک:

    این عملکرد پیش بینی هایی را در فیلم های زنده با استفاده از Moving_a AVERATION انجام می دهد. ما می توانیم فیلم های ذخیره شده در دیسک را منتقل کنیم یا از وب کم استفاده کنیم. اگر Window_size HyperParameter را به 1 تنظیم کنیم ، این عملکرد مانند یک طبقه بندی کننده معمولی برای پیش بینی قاب های ویدیویی رفتار می کند.

    توجه: در صورت اجرای این نوت بوک در Google Colab نمی توانید از وب کم خود استفاده کنید.

    دانلود یک ویدیوی تست:

    نتایج بدون استفاده از میانگین متحرک:

    ابتدا به ما اجازه می دهیم که وقتی از میانگین متحرک استفاده نمی کنیم ، نتایج را ببینیم ، می توانیم با تنظیم Windows_Size به 1 این کار را انجام دهیم.

    خلاصه:

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

    سپس ما به چندین روش طبقه بندی ویدیویی رفتیم و انواع مختلفی از مشکلات تشخیص فعالیت را در آنجا آموختیم.

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

    سرانجام ، ما دیدیم که چگونه می توان از روش CNN تک فریم برای میانگین پیش بینی ها استفاده کرد تا فعالیت نهایی را به طور مؤثر ارائه دهد.

    مشترک و کد بارگیری

    اگر این مقاله را دوست داشتید و می خواهید کد (C ++ و Python) و نمونه های مورد استفاده در این پست را بارگیری کنید ، لطفاً اینجا را کلیک کنید. از طرف دیگر ، برای دریافت یک راهنمای منبع رایگان رایانه رایانه ای ثبت نام کنید. در خبرنامه ما ، ما آموزش های OPENCV و نمونه هایی را که در C ++/Python نوشته شده است ، به اشتراک می گذاریم ، و الگوریتم ها و اخبار یادگیری ماشین.

    شناخت فعالیت های انسانی یک منطقه تحقیقاتی واقعاً جالب است. در اینجا چند مورد استفاده جذاب برای آن آورده شده است:

    • به طور خودکار فیلم ها را در یک مجموعه یا یک مجموعه داده بر اساس فعالیت IT مرتب کنید.
    • به طور خودکار فیلم ها را در یک مجموعه یا یک مجموعه داده بر اساس فعالیت مرتب کنید.
    • هرگونه فعالیت ممنوع را در مکانی انجام دهید.
    • اگر وظایف یا رویه هایی که توسط کارمندان تازه انجام می شود ، به طور خودکار نظارت کنید ، کارآموزان صحیح هستند یا خیر.

    امیدوارم شما از این آموزش لذت برده باشید. اگر می خواهید رویکردهای بیشتری در مورد طبقه بندی ویدیویی با استفاده از KERA ها ، به عنوان مثال CNN+LSTM را پوشش دهم ، پس در نظرات به من اطلاع دهید.

سیگنال های تجاری...
ما را در سایت سیگنال های تجاری دنبال می کنید

برچسب : نویسنده : عبدالله بوتیمار بازدید : <-PostHit-> تاريخ : سه شنبه 23 خرداد 1402 ساعت: 22:36