خلاصه
Blob Track TOP با استفاده از کتابخانه OpenCV پیادهسازی شده است.
برای دریافت نتایج این نود، باید یک Info DAT یا Info CHOP به آن وصل کنید. این خروجی، شناسه Blobها، مختصات و اندازه آنها را بر حسب پیکسل گزارش میکند. شناسهی هر Blob جدید افزایش پیدا میکند.
این نود تصویر ورودی را به حالت تکرنگ تبدیل میکند (چون فقط روی یک کانال رنگی کار میکند). برای آمادهسازی بهتر تصویر، بهتر است قبل از آن از یک Monochrome TOP و سپس یک Luma Level TOP استفاده کنید و پارامترهای Black Level، Brightness و Gamma را تنظیم کنید.
کاربرد معمولی این نود: اتصال یک منبع ویدیو (مثلاً Video Device In TOP) به Blob Track TOP.
توجه: در نسخه Pro و Commercial میتوان تعداد نامحدود Blob را دنبال کرد، ولی در نسخه Non-Commercial حداکثر ۲ Blob قابل ردیابی است.
همچنین ببینید: Blob Track CHOP
کاربرد
دو شیوهی اصلی برای استفاده از Blob Track TOP وجود دارد:
1. SimpleBlobDetector
این الگوریتم یکی از روشهای تشخیص Blob در OpenCV است و بهطور خودکار زمانی استفاده میشود که فقط ورودی اول به نود وصل باشد.
مزایا:
نیاز به تصویر پسزمینهی مشخص ندارد.
Blobها را به صورت موقعیت + شعاع برمیگرداند.
محدودیتها:
مستطیلهای Blob همگی مربع خواهند بود.
سرعت پایین دارد، بنابراین لازم است رزولوشن ورودی را پایین بیاورید.
معمولاً فقط زمانی استفاده میشود که پسزمینهی تصویر ناشناخته باشد.
2. Background Subtraction
این روش بهطور خودکار فعال میشود اگر ورودی دوم به نود وصل باشد.
مزایا:
به مراتب سریعتر از SimpleBlobDetector.
مستطیلهای Blob میتوانند هر شکل و اندازهای داشته باشند (فقط مربع نیستند).
محدودیت:
نیاز به داشتن پسزمینهی مشخص دارد.
روش کار:
یک تصویر دودویی از ورودی اول و دوم ساخته میشود (بر اساس پارامتر Threshold). سپس OpenCV کانتور Blobها را پیدا کرده و آنها را به مستطیل تبدیل میکند.
پارامترها – صفحه Blob Track
Reset: همهی دادههای ردیابی و پسزمینهی ذخیرهشده را ریست میکند.
Reset Pulse: همانند Reset ولی بهصورت فوری.
Mono Source: انتخاب کانالی که برای تشخیص Blob استفاده شود.
Luminance
Red / Green / Blue
Alpha
RGB Average
RGBA Average
Draw Blob Bounds: مستطیلهای Blob را روی تصویر رسم میکند.
Blob Bound Color: رنگ مستطیلهای ترسیمی (R, G, B).
Threshold: آستانهی تفاوت بین پسزمینه و ورودی برای ساخت تصویر دودویی.
پارامترها – صفحه Constraints
Minimum Blob Size: حداقل اندازه Blob برای ردیابی.
Maximum Blob Size: حداکثر اندازه Blob برای ردیابی.
Maximum Move Distance: حداکثر فاصلهای که Blob در یک فریم میتواند جابهجا شود و همچنان همان شناسه را حفظ کند.
Delete Nearby Blobs: حذف Blobهایی که بیشازحد به هم نزدیکاند.
Minimum Distance: فاصلهای که برای حذف Blobهای نزدیک در نظر گرفته میشود. Blob کوچکتر حذف میشود.
Delete Area Tolerance: میزان تحمل تفاوت مساحت Blobها هنگام حذف.
Delete Overlapping Blobs: حذف Blobهای رویهمافتاده.
Delete Overlap Tolerance: آستانهی میزان همپوشانی لازم برای حذف Blob.
پارامترها – صفحه Revival
Revive Blobs: فعالسازی بازگردانی Blobهای ازدسترفته (با همان ID).
Revive Time: مدت زمان (ثانیه) که Blob ازدسترفته هنوز قابل بازگردانی است.
Revive Area Difference: آستانه تفاوت مساحت Blob جدید و Blob گمشده.
Revive Distance: آستانه فاصله Blob جدید با Blob گمشده.
Include Lost Blobs in Table: اضافهکردن Blobهای گمشده به جدول Info DAT.
Include Expired Blobs in Table: اضافهکردن Blobهای منقضیشده (غیرقابل بازگردانی) به جدول Info DAT.
Expired Time: مدتزمانی که Blobهای منقضی در جدول باقی میمانند.
پارامترها – صفحه Common
این بخش همان تنظیمات عمومی TOPها است:
Output Resolution (Use Input, Eighth, Quarter, Half, 2X, 4X, 8X, Fit, Limit, Custom)
Resolution (W, H, Res Menu)
Use Global Res Multiplier
Output Aspect (Use Input, Resolution, Custom Aspect)
Aspect (Aspect1, Aspect2, Aspect Menu)
Input Smoothness (Nearest, Linear, Mipmap)
Fill Viewer (Use Input, Fill, Fit Horizontal, Fit Vertical, Fit Best, Fit Outside, Native Resolution)
Viewer Smoothness (Nearest, Linear, Mipmap)
Passes: تعداد دفعات پردازش خروجی.
Channel Mask: انتخاب کانالهای تحت پردازش (R, G, B, A).
Pixel Format: انتخاب فرمت داده پیکسل (۸ بیتی، ۱۶ بیتی، ۳۲ بیتی، RGBA، RGB، Mono، Alpha، sRGB و …).
ورودیهای نود
Input 0: تصویر ورودی
کانالهای Info CHOP
اطلاعات اضافه از طریق Info CHOP در دسترس است.
ویژه Blob Track TOP:
num_blobs: تعداد Blobها
مشترک TOPها:
resx, resy: رزولوشن افقی و عمودی
aspectx, aspecty: نسبت تصویر افقی و عمودی
depth: عمق آرایه (۲D یا ۳D)
gpu_memory_used: مقدار حافظه GPU مصرفشده
مشترک Operatorها:
total_cooks: تعداد دفعات پردازش از شروع
cook_time: مدتزمان آخرین پردازش (ms)
cook_frame / cook_abs_frame: شماره فریم آخرین پردازش
cook_start_time / cook_end_time: زمان شروع و پایان پردازش در فریم
cooked_this_frame: آیا در این فریم پردازش شد (۱ یا ۰)
warnings: تعداد هشدارها
errors: تعداد خطاها