در این مطلب، ویدئو آموزش OpenCV Python برای مبتدیان 39 – نحوه استفاده از روش های تفریق پس زمینه در OpenCV با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:13:05
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,060 –> 00:00:02,399
سلام بچه ها به ویدیوی بعدی
2
00:00:02,399 –> 00:00:04,560
آموزش رزومه باز برای مبتدیان با استفاده از
3
00:00:04,560 –> 00:00:07,049
پایتون خوش آمدید در این ویدیو می خواهیم
4
00:00:07,049 –> 00:00:09,420
نحوه استفاده از روش تفریق پس زمینه
5
00:00:09,420 –> 00:00:13,440
در CV باز را ببینیم، بنابراین اول از همه
6
00:00:13,440 –> 00:00:16,230
تفریق پس زمینه چیست، بنابراین تفریق پس زمینه
7
00:00:16,230 –> 00:00:19,340
8
00:00:19,340 –> 00:00:22,710
تکنیک رایج و پرکاربرد برای تولید ماسک پیش زمینه
9
00:00:22,710 –> 00:00:26,519
که همچنین به عنوان تصویر باینری
10
00:00:26,519 –> 00:00:30,420
حاوی پیکسل های متعلق
11
00:00:30,420 –> 00:00:34,649
به جسم متحرک یک صحنه شناخته می شود، زمانی که این
12
00:00:34,649 –> 00:00:38,460
تصاویر با استفاده از یک
13
00:00:38,460 –> 00:00:40,940
دوربین ثابت گرفته می شوند و همانطور که از نام آن پیداست،
14
00:00:40,940 –> 00:00:44,040
تفریق پس
15
00:00:44,040 –> 00:00:46,200
زمینه، ماسک پیش زمینه را محاسبه می کند که
16
00:00:46,200 –> 00:00:49,020
تفریق بین فریم فعلی را انجام می دهد.
17
00:00:49,020 –> 00:00:52,860
و مدل پسزمینه شامل
18
00:00:52,860 –> 00:00:56,280
بخش ثابت صحنه است، به عنوان
19
00:00:56,280 –> 00:00:58,890
مثال، روش تفریق پسزمینه را
20
00:00:58,890 –> 00:01:02,100
میتوان در مورد شمارنده بازدیدکننده استفاده کرد
21
00:01:02,100 –> 00:01:05,519
که در آن شما یک دوربین ثابت دارید
22
00:01:05,519 –> 00:01:08,700
که تعداد بازدیدکنندگان را ثبت میکند و در حین یا
23
00:01:08,700 –> 00:01:12,360
خروج از اتاق یا یک دوربین ترافیک دارید.
24
00:01:12,360 –> 00:01:17,000
که می خواهد داده های مختلف
25
00:01:17,000 –> 00:01:21,060
تلماتیکی را از ماشین
26
00:01:21,060 –> 00:01:25,020
در حال حرکت یا داده های ماشین متحرک که توسط
27
00:01:25,020 –> 00:01:28,110
آن دوربین ترافیک گرفته شده است اکنون
28
00:01:28,110 –> 00:01:30,810
چندین الگوریتم وجود دارد که
29
00:01:30,810 –> 00:01:33,390
برای این تفریق پسزمینه معرفی شدهاند
30
00:01:33,390 –> 00:01:36,450
و OpenCV
31
00:01:36,450 –> 00:01:38,790
تعدادی از آنها را پیادهسازی کرده است که میخواهیم آنها را
32
00:01:38,790 –> 00:01:43,500
یکی یکی ببینیم، بنابراین همانطور که میبینید در اینجا من
33
00:01:43,500 –> 00:01:46,140
این مثال را دارم که یک مثال بسیار ساده
34
00:01:46,140 –> 00:01:50,909
ای از گرفتن یک ویدیو و سپس
35
00:01:50,909 –> 00:01:53,820
ما در حال استخراج تک تک فریم
36
00:01:53,820 –> 00:01:58,140
های آن ویدیو و نمایش آن در یک
37
00:01:58,140 –> 00:02:00,869
پنجره هستیم، بنابراین شما می گویید من روش نشان می دهم من
38
00:02:00,869 –> 00:02:03,119
فقط تک تک فریم های
39
00:02:03,119 –> 00:02:06,960
آن ویدیو را نشان می دهم، بنابراین این را از قبل می دانید
40
00:02:06,960 –> 00:02:11,640
از ویدیوهای قبلی نحوه گرفتن
41
00:02:11,640 –> 00:02:13,590
فریم های ویدیویی از
42
00:02:13,590 –> 00:02:17,670
یک فایل ویدیویی یا دوربین زنده، بنابراین وقتی
43
00:02:17,670 –> 00:02:20,400
این کد را اجرا می کنم، می بینید
44
00:02:20,400 –> 00:02:23,580
که افراد کمی در اینجا در حال حرکت هستند
45
00:02:23,580 –> 00:02:28,879
و ما می خواهیم تمام افراد متحرکی را
46
00:02:28,879 –> 00:02:33,480
که در حال حرکت هستند شناسایی کنیم. بنابراین
47
00:02:33,480 –> 00:02:35,870
برای این منظور از چند
48
00:02:35,870 –> 00:02:39,720
روش موجود در OpenCV استفاده می
49
00:02:39,720 –> 00:02:42,629
کنیم، بنابراین اجازه دهید ابتدا کدی بنویسیم و من به
50
00:02:42,629 –> 00:02:45,420
شما توضیح می دهم که این کد قرار است چه
51
00:02:45,420 –> 00:02:49,010
کاری انجام دهد، بنابراین می خواهم یک متغیر
52
00:02:49,010 –> 00:02:53,670
بعد از این خط o تعریف کنم. کد f و من
53
00:02:53,670 –> 00:02:57,920
متغیری به نام F gbg4
54
00:02:57,920 –> 00:03:01,410
foreground/background تعریف می کنم و سپس
55
00:03:01,410 –> 00:03:09,090
فقط CV dot BG s e-g m
56
00:03:09,090 –> 00:03:12,599
را فراخوانی می کنم تا BG s e-g M و سپس
57
00:03:12,599 –> 00:03:14,340
متدی به نام ایجاد پس زمینه را فراخوانی می کنم.
58
00:03:14,340 –> 00:03:18,450
روش تفریق mo G بنابراین این ایجاد
59
00:03:18,450 –> 00:03:21,510
پسزمینه تفریق روش
60
00:03:21,510 –> 00:03:24,359
mog یک الگوریتم تقسیمبندی پسزمینه و پیشزمینه مبتنی بر مخلوط گاوسی
61
00:03:24,359 –> 00:03:27,150
است، بنابراین
62
00:03:27,150 –> 00:03:30,090
با استفاده از این خط، کاری که ما انجام میدهیم این است
63
00:03:30,090 –> 00:03:32,670
که فقط یک شی پسزمینه
64
00:03:32,670 –> 00:03:36,620
تابع را با استفاده از این روش ایجاد میکنیم،
65
00:03:36,620 –> 00:03:41,220
اکنون تفریق پسزمینه mo G را ایجاد میکنیم. این
66
00:03:41,220 –> 00:03:45,109
روش دارای برخی پارامترهای اختیاری مانند
67
00:03:45,109 –> 00:03:49,069
تاریخچه تعداد Kos در مخلوط ها و
68
00:03:49,069 –> 00:03:53,190
آستانه است، اما همه آنها به طور پیش فرض تنظیم شده اند،
69
00:03:53,190 –> 00:03:55,620
بنابراین نیازی به
70
00:03:55,620 –> 00:03:59,040
تنظیم خاصی ندارید مگر اینکه بخواهید
71
00:03:59,040 –> 00:04:00,959
برخی از پارامترهای اختیاری را تغییر دهید،
72
00:04:00,959 –> 00:04:02,819
بنابراین من می خواهم آن را ترک کنم. همه چیز به صورت
73
00:04:02,819 –> 00:04:05,720
پیشفرض است و من
74
00:04:05,720 –> 00:04:09,470
در اینجا هیچ آرگومانی برای این روش ارائه
75
00:04:09,470 –> 00:04:13,109
نمیکنم و بعد از اینکه تک تک فریمها را
76
00:04:13,109 –> 00:04:15,750
در این حلقه ثبت کردم، کاری که
77
00:04:15,750 –> 00:04:18,418
میخواهم انجام دهم این است که یک متغیر جدید ایجاد کنم.
78
00:04:18,418 –> 00:04:22,349
ماسک FG برای ماسک پیشزمینه نامیده میشود، بنابراین
79
00:04:22,349 –> 00:04:25,500
میخواهم فقط بنویسم FG mask برابر است
80
00:04:25,500 –> 00:04:27,360
با و برای بدست آوردن چهار گرم
81
00:04:27,360 –> 00:04:31,409
و ماسک، فقط
82
00:04:31,409 –> 00:04:35,729
روشی به نام اعمال را در این f G B G
83
00:04:35,729 –> 00:04:38,009
یا تصویر تفریق پسزمینه فراخوانی میکنیم، بنابراین
84
00:04:38,009 –> 00:04:41,490
میرویم. فقط F G B G را بگیریم و سپس
85
00:04:41,490 –> 00:04:44,610
متدی به نام
86
00:04:44,610 –> 00:04:47,490
application را در اینجا فراخوانی می کنیم و یک آرگومان می گیرد
87
00:04:47,490 –> 00:04:50,729
که فریمی است که در حال گرفتن آن هستیم
88
00:04:50,729 –> 00:04:54,719
خوب است، بنابراین ما این روش را اعمال کرده
89
00:04:54,719 –> 00:04:59,400
ایم و سپس
90
00:04:59,400 –> 00:05:02,490
ماسک پیش زمینه را با استفاده از متد اعمال می
91
00:05:02,490 –> 00:05:06,029
کنیم. این متغیر تفریقکننده پسزمینه
92
00:05:06,029 –> 00:05:09,210
و تمام است، بنابراین این ماسک پیشزمینه شماست،
93
00:05:09,210 –> 00:05:14,129
بنابراین وقتی من فقط از یک پنجره دیگر استفاده میکنم،
94
00:05:14,129 –> 00:05:18,449
پنجره نمایش داده میشود و این برای فریم FG است،
95
00:05:18,449 –> 00:05:20,330
بگذارید بگوییم که
96
00:05:20,330 –> 00:05:24,389
فریم ماسک FG، بگوییم خوب است، پس فریم ماسک FG
97
00:05:24,389 –> 00:05:27,900
و ما میخواهیم فقط این
98
00:05:27,900 –> 00:05:31,650
آرگومان را اینجا بفرستید تا
99
00:05:31,650 –> 00:05:34,259
ببینیم پس از اعمال متد ایجاد پسزمینه
100
00:05:34,259 –> 00:05:37,979
تفریقگر mog چه نتیجهای به دست میآوریم، بنابراین میتوانید
101
00:05:37,979 –> 00:05:42,270
این تصویر عادی را در اینجا ببینید و همچنین
102
00:05:42,270 –> 00:05:47,039
این افراد متحرک را در
103
00:05:47,039 –> 00:05:50,009
ماسک پیشزمینه درست خواهید دید، بنابراین
104
00:05:50,009 –> 00:05:53,099
subtr دارید پس زمینه را از روی
105
00:05:53,099 –> 00:05:56,310
زمین انجام می دهید و شما به راحتی می توانید
106
00:05:56,310 –> 00:05:59,969
افراد متحرک را در این تصویر
107
00:05:59,969 –> 00:06:03,599
با استفاده از این ماسک شناسایی کنید، همچنین مشاهده خواهید کرد
108
00:06:03,599 –> 00:06:07,439
که
109
00:06:07,439 –> 00:06:09,779
هنگام استفاده از این نوع
110
00:06:09,779 –> 00:06:13,349
تفریق با استفاده از روش ایجاد ایموجی پس زمینه
111
00:06:13,349 –> 00:06:15,839
تفریق کننده، نویز بسیار کمی وجود دارد نه چندان زیاد. یک
112
00:06:15,839 –> 00:06:17,419
روش دیگر که به نام پسزمینه
113
00:06:17,419 –> 00:06:21,120
تفریقکننده mo g2 است که همچنین الگوریتم
114
00:06:21,120 –> 00:06:24,199
پسزمینه مبتنی بر مخلوط گاوسی و الگوریتم تقسیمبندی از روی زمین
115
00:06:24,199 –> 00:06:27,029
است، بنابراین بیایید از آن
116
00:06:27,029 –> 00:06:31,050
روش نیز استفاده کنیم تا این روش مستقیماً
117
00:06:31,050 –> 00:06:34,199
تحت cb2 در دسترس باشد، بنابراین شما فقط باید
118
00:06:34,199 –> 00:06:36,120
نقطه CV را بنویسید و پسزمینه ایجاد
119
00:06:36,120 –> 00:06:40,560
تفریق پسزمینه mo G را ایج