eulerian video magnification for remote heart rate detection neural network

هدف نهایی این پروژه، ارائه یک روش کارآمد برای پایش ضربان قلب از طریق ویدیو است.

 

 

 استفاده از YOLO و بزرگ‌نمایی اویلری برای تشخیص ضربان قلب از ویدیو

چکیده

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

مقدمه

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

 

ابزارهای مورد استفاده:

  • OpenCV: برای پردازش تصویر و ویدیو
  • YOLO (You Only Look Once): برای تشخیص چهره‌ها در فریم‌های ویدیو
  • FFT (Fast Fourier Transform): برای تحلیل سیگنال‌های زمانی

 روش کار:

بارگذاری ویدیو:

ابتدا ویدیو را بارگذاری و فریم‌ها را استخراج می‌کنیم. سپس فریم‌ها را به فرمت RGB و نوع داده uint8 تبدیل می‌کنیم.

 تشخیص چهره‌ها با استفاده از YOLO:

ما از YOLO برای تشخیص چهره‌ها در فریم‌های ویدیو استفاده می‌کنیم.

علت استفاده از یولو پیشنهاد استاد بود که چهره تشخیص داده شود و در مواردی که چهره ثابت است مدل عدد منفی برمیگرداند يعنی ضربان پیدا نشده

بزرگ‌نمایی اویلری و تحلیل FFT:

در این بخش، ما از روش بزرگ‌نمایی اویلری برای تقویت سیگنال‌های فیزیولوژیکی مانند ضربان قلب استفاده می‌کنیم. هدف این است که تغییرات نامحسوس رنگ پوست که ناشی از جریان خون است را استخراج و تقویت کنیم. برای این منظور از تبدیل لاپلاسی و تبدیل فوریه سریع (FFT) استفاده می‌شود.

ساخت هرم ویدیویی لاپلاسی

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

مراحل ساخت هرم لاپلاسی

  1. ساخت هرم گاوسی:

    • ابتدا تصویر اصلی به مجموعه‌ای از تصاویر گاوسی تبدیل می‌شود که هر تصویر نسبت به تصویر قبلی یک سطح پایین‌گذاری شده است.
    • در هر مرحله، تصویر با استفاده از یک فیلتر پایین‌گذر فیلتر شده و سپس نمونه‌برداری (downsampling) انجام می‌شود تا تصویر کوچکتری به دست آید.
  2. ساخت هرم لاپلاسی:

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

در این کد:

  • cv2.pyrDown(frame) تصویر را به سطح پایین‌تری از هرم گاوسی تبدیل می‌کند.
  • pyr لیستی از سطوح گاوسی برای هر فریم است.
  • lap_video شامل هرم گاوسی برای تمام فریم‌های ویدیو است.
  • cv2.pyrUp(frame) سطح پایین‌تر هرم را به سطح بالاتر بازسازی می‌کند.
  • cv2.add(frame, lap_video[i][level]) سطح بازسازی شده را با تفاوت سطح لاپلاسی جمع می‌کند تا تصویر اصلی بازسازی شود.

 بزرگ‌نمایی اویلری با فیلتر FFT

این مرحله شامل اعمال بزرگ‌نمایی اویلری بر روی ویدیو است. ابتدا، ما سیگنال‌ها را به فرکانس‌های زمانی تبدیل می‌کنیم و سپس فرکانس‌های مورد نظر را تقویت می‌کنیم.

محاسبه ضربان قلب

برای محاسبه ضربان قلب، ما از سیگنال‌های فیلتر شده FFT استفاده می‌کنیم. فرکانسی که دارای بیشترین مقدار قدرت است به عنوان نرخ ضربان قلب انتخاب می‌شود.

 بازسازی ویدیو نهایی

پس از تقویت سیگنال‌ها، ما ویدیو را از هرم لاپلاسی بازسازی می‌کنیم تا تغییرات تقویت شده را نمایش دهیم.

جمع‌بندی و نتیجه‌گیری

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

با این حال، چالش‌هایی مانند تأثیرات نورپردازی و کیفیت ویدیو همچنان وجود دارند که نیاز به بهبود و تحقیق بیشتر دارند. روش‌های پیشرفته‌تر و بهبود الگوریتم‌ها می‌تواند به دقت و کارایی بیشتر در این زمینه منجر شود.

این کد چالش هایی داشت و دقیق نیست