در این مطلب، ویدئو آموزش OpenCV Python برای مبتدیان 24 – تشخیص حرکت و ردیابی با استفاده از Opencv Contours با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:19:15
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,060 –> 00:00:02,370
سلام بچه ها به ویدیوی بعدی در مورد
2
00:00:02,370 –> 00:00:04,560
آموزش باز CV برای مبتدیان با استفاده از
3
00:00:04,560 –> 00:00:07,109
پایتون در این ویدیو خوش آمدید، من به
4
00:00:07,109 –> 00:00:09,599
شما نشان می دهم که چگونه می توانید یک سیستم
5
00:00:09,599 –> 00:00:12,059
تشخیص و ردیابی حرکت بسیار ابتدایی و ساده
6
00:00:12,059 –> 00:00:16,260
با استفاده از Python و CV باز ایجاد کنید، بنابراین اجازه دهید به
7
00:00:16,260 –> 00:00:18,779
شما نشان دهم که چه چیزی ما در پایان این ویدیو می خواهیم به آن برسیم،
8
00:00:18,779 –> 00:00:23,580
بنابراین من این
9
00:00:23,580 –> 00:00:26,849
ویدیو را دارم که یک ویدیوی نمونه است و می
10
00:00:26,849 –> 00:00:29,720
توانید ببینید که چند نفر در داخل این ویدیو قدم می زنند،
11
00:00:29,720 –> 00:00:33,570
اکنون کاری که می خواهم اینجا انجام دهم
12
00:00:33,570 –> 00:00:36,440
این است که می خواهم این مستطیل ها را
13
00:00:36,440 –> 00:00:42,180
در اطراف این متحرک ها نشان دهم. افراد یا افراد بنابراین
14
00:00:42,180 –> 00:00:45,360
این در حال ترک خوردن است و وقتی حرکتی
15
00:00:45,360 –> 00:00:48,329
رخ می دهد من همچنین می خواهم این نوع
16
00:00:48,329 –> 00:00:51,360
وضعیت را نشان دهم که وضعیت حرکت است زیرا
17
00:00:51,360 –> 00:00:54,690
شخصی در داخل ویدیو حرکت می کند بنابراین
18
00:00:54,690 –> 00:00:57,930
اگر کسی حرکت نمی کند وضعیت خالی خواهد بود
19
00:00:57,930 –> 00:01:01,350
و اگر کسی در حال حرکت است
20
00:01:01,350 –> 00:01:05,369
این وضعیت حرکت خواهد بود، بنابراین این
21
00:01:05,369 –> 00:01:07,590
چیزی است که ما در
22
00:01:07,590 –> 00:01:12,689
پایان این ویدیو به آن دست خواهیم یافت، بنابراین سعی می کنیم تک تک افراد را
23
00:01:12,689 –> 00:01:16,590
ردیابی کنیم و همچنین
24
00:01:16,590 –> 00:01:20,310
قرار است این شخص را با این مستطیل ردیابی کنیم
25
00:01:20,310 –> 00:01:24,119
و همچنین نشان خواهیم داد
26
00:01:24,119 –> 00:01:27,360
وضعیت به عنوان حرکت زمانی که شخصی در داخل ویدیو حرکت می کند
27
00:01:27,360 –> 00:01:31,470
، بنابراین بیایید شروع کنیم، بنابراین
28
00:01:31,470 –> 00:01:35,340
برای شروع، من این کد اصلی را دارم
29
00:01:35,340 –> 00:01:39,450
که فقط یک ویدیو را با استفاده از کلاس ضبط ویدیو می خواند
30
00:01:39,450 –> 00:01:43,829
و سپس اگر این ویدیو
31
00:01:43,829 –> 00:01:46,799
معتبر باشد، من فقط این
32
00:01:46,799 –> 00:01:50,790
فریم را با فریم در داخل پنجره I’m show
33
00:01:50,790 –> 00:01:54,630
و مطمئن هستم که شما ممکن است همه
34
00:01:54,630 –> 00:01:56,549
این کدها را بدانید زیرا من به شما
35
00:01:56,549 –> 00:02:00,299
گام به گام نحوه گرفتن ویدیو یا
36
00:02:00,299 –> 00:02:04,380
نحوه خواندن فریم های ویدیو را با استفاده از
37
00:02:04,380 –> 00:02:09,209
روش ضبط ویدیو به شما نشان داده ام. فقط
38
00:02:09,209 –> 00:02:12,989
برای بارگذاری این ویدیو و نمایش آن فریم به
39
00:02:12,989 –> 00:02:13,590
فریم
40
00:02:13,590 –> 00:02:15,989
با استفاده از روشهای I am show، بنابراین اجازه دهید
41
00:02:15,989 –> 00:02:19,319
ابتدا این کد را برای شروع با آن اجرا
42
00:02:19,319 –> 00:02:22,290
کنم تا ویدیوی اصلی ما به این شکل باشد، بنابراین
43
00:02:22,290 –> 00:02:25,020
برخی افراد در حال حرکت هستند، اما ما میخواهیم
44
00:02:25,020 –> 00:02:27,180
حرکت هر کدام را دنبال کنیم و هر
45
00:02:27,180 –> 00:02:29,900
شخص و همچنین ما می خواهیم
46
00:02:29,900 –> 00:02:33,599
مستطیل هایی را در اطراف آنها نشان دهیم هر کسی که در حال حرکت است،
47
00:02:33,599 –> 00:02:37,980
بنابراین بیایید شروع کنیم، بنابراین در زیر این
48
00:02:37,980 –> 00:02:41,160
خط کد ضبط ویدیو، کاری که من می خواهم انجام دهم این
49
00:02:41,160 –> 00:02:44,580
است که اول از همه می خواهم دو
50
00:02:44,580 –> 00:02:49,920
فریم از نمونه سرپوش را بخوانم، بنابراین من
51
00:02:49,920 –> 00:02:52,920
فقط این کد را کپی کرده و
52
00:02:52,920 –> 00:02:57,660
آن را پیست می کند پس این فریم اول ما خواهد
53
00:02:57,660 –> 00:03:00,959
بود و به همین ترتیب من
54
00:03:00,959 –> 00:03:05,610
فقط فریم دوم را می خوانم به همین سادگی
55
00:03:05,610 –> 00:03:08,519
ما فقط دو فریم یا یکی
56
00:03:08,519 –> 00:03:11,519
پس از دیگری اوکی اعلام می کنیم و دیگر به
57
00:03:11,519 –> 00:03:15,569
این کد نیاز نداریم پس اول از همه من.
58
00:03:15,569 –> 00:03:18,209
m یک تفاوت را اعلام می کنیم و
59
00:03:18,209 –> 00:03:24,690
از CB برای نقطه گذاری B به عنوان روش تفاوت استفاده می کنیم، بنابراین
60
00:03:24,690 –> 00:03:27,239
تفاوت مطلق، ما می خواهیم
61
00:03:27,239 –> 00:03:29,280
تفاوت بین
62
00:03:29,280 –> 00:03:33,540
فریم اول و فریم دوم را پیدا کنیم، بنابراین این
63
00:03:33,540 –> 00:03:37,350
روش تفاوت ABS برای یافتن
64
00:03:37,350 –> 00:03:40,079
تفاوت مطلق بین فریم است.
65
00:03:40,079 –> 00:03:43,769
فریم اول و فریم دوم اکنون زمانی که
66
00:03:43,769 –> 00:03:46,709
تفاوت داریم،
67
00:03:46,709 –> 00:03:50,940
این تفاوت را به حالت مقیاس خاکستری تبدیل
68
00:03:50,940 –> 00:03:55,350
می کنیم، بنابراین فقط می گوییم خاکستری
69
00:03:55,350 –> 00:04:01,639
برابر است با رنگ تبدیل نقطه ای C v2 بنابراین رنگ CVT
70
00:04:01,639 –> 00:04:05,190
و اولین پارامتر در اینجا خواهد
71
00:04:05,190 –> 00:04:08,730
بود. تفاوت ما که بین دو فریم پیدا کرده ایم،
72
00:04:08,730 –> 00:04:10,709
بنابراین من می خواهم
73
00:04:10,709 –> 00:04:13,560
تفاوت را به عنوان اولین آرگومان منتقل کنم و
74
00:04:13,560 –> 00:04:17,279
آرگومان دوم CB خواهد بود – نقطه ما
75
00:04:17,279 –> 00:04:20,700
می خواهیم این BG را رنگ خود را
76
00:04:20,700 –> 00:04:24,000
به حالت مقیاس خاکستری تبدیل کنیم و چرا آن را پیدا می کنیم.
77
00:04:24,000 –> 00:04:27,389
خارج از هفتم e حالت خاکستری این
78
00:04:27,389 –> 00:04:30,720
ناشنوا زیرا
79
00:04:30,720 –> 00:04:33,629
در مراحل بعدی قرار است کانتور را پیدا کنیم و
80
00:04:33,629 –> 00:04:35,849
در آخرین ویدیو یاد گرفتیم که
81
00:04:35,849 –> 00:04:39,360
در این
82
00:04:39,360 –> 00:04:42,750
حالت مقیاس خاکستری در مقایسه
83
00:04:42,750 –> 00:04:47,039
با حالت رنگی یا حالت B gr ساده تر است بنابراین هنگامی
84
00:04:47,039 –> 00:04:49,740
که این حالت مقیاس خاکستری را داشتیم،
85
00:04:49,740 –> 00:04:55,530
فقط قاب مقیاس خاکستری خود را محو می کنیم، بنابراین
86
00:04:55,530 –> 00:04:57,840
فقط متغیری
87
00:04:57,840 –> 00:05:01,710
به نام blur را اعلام می کنیم و سپس
88
00:05:01,710 –> 00:05:05,719
تاری گاوسی را روی متغیر خاکستری خود اعمال می کنیم،
89
00:05:05,719 –> 00:05:11,460
بنابراین اولین پارامتر را ببینید v2 dot Gaussian blur
90
00:05:11,460 –> 00:05:15,030
اینجا خاکستری خواهد بود، بنابراین
91
00:05:15,030 –> 00:05:18,690
بیایید این پارامتر انگور را که
92
00:05:18,690 –> 00:05:20,159
در اینجا تقسیم کردهایم تعریف کنیم
93
00:05:20,159 –> 00:05:22,560
، پارامتر دوم در اینجا چشمهای مورد
94
00:05:22,560 –> 00:05:25,199
یا بینایی هسته است، بنابراین فرض کنید
95
00:05:25,199 –> 00:05:27,810
میخواهیم اندازه هسته 5 را با کاما
96
00:05:27,810 –> 00:05:32,219
5 ارائه دهیم و پارامتر سوم در اینجا سیگما خواهد بود.
97
00:05:32,219 –> 00:05:34,620
مقدار X بنابراین ما
98
00:05:34,620 –> 00:05:38,969
فقط 0 را در اینجا به عنوان مقدار Sigma X پاس می
99
00:05:38,969 –> 00:05:41,550
کنیم، اکنون
100
00:05:41,550 –> 00:05:44,849
آستانه را می یابیم، بنابراین فقط می خواهیم بگوییم
101
00:05:44,849 –> 00:05:47,430
زیر خط، زیرا به این
102
00:05:47,430 –> 00:05:51,210
متغیر اول و سپس متغیر دوم نیاز
103
00:05:51,210 –> 00:05:55,199
نداریم. le will be trash برابر است با
104
00:05:55,199 –> 00:05:58,379
آستانه نقطه CB 2 و اولین پارامتری
105
00:05:58,379 –> 00:06:02,279
که می گیرد منبع است بنابراین
106
00:06:02,279 –> 00:06:06,120
تصویر تار خود را به عنوان
107
00:06:06,120 –> 00:06:09,210
منبع ارسال می کنیم و سپس پارامتر دوم
108
00:06:09,210 –> 00:06:13,379
در اینجا مقدار آستانه خواهد بود بنابراین ما
109
00:06:13,379 –> 00:06:16,740
فقط می خواهیم 20 را در اینجا ارائه دهید،
110
00:06:16,740 –> 00:06:20,389
سپس حداکثر مقدار آستانه 255 خواهد بود،
111
00:06:20,389 –> 00:06:26,039
سپس نوع آن CV به نقطه
112
00:06:26,039 –> 00:06:28,050
Tresh باینری خواهد بود، بنابراین در مرحله بعدی کاری که
113
00:06:28,050 –> 00:06:29,550
میخواهیم انجام دهیم این است که
114
00:06:29,550 –> 00:06:32,969
تصویر آستانه را گشاد میکنیم تا
115
00:06:32,969 –> 00:06:36,630
تمام حفرهها را پر کنیم. برای پیدا
116
00:06:36,630 –> 00:06:39,630
کردن خطوط بهتر، بنابراین
117
00:06:39,630 –> 00:06:41,249
روشی به نام CV to dot
118
00:06:41,249 –> 00:06:43,229
late وجود دارد، بنابراین ما فقط
119
00:06:43,229 –> 00:06:46,259
متغیری به نام dilated را اعلام می کنیم و سپس
120
00:06:46,259 –> 00:06:50,719
این روش را اعمال می کنیم تا CB 2 dot
121
00:06:50,719 –> 00:06:53,999
dilate که آرگومان کمی نیاز دارد.
122
00:06:53,999 –> 00:06:56,609
123
00:06:56,609 –> 00:06:59,189
تاریخ آستانه ما باشد، نسخه تصویر
124
00:06:59,189 –> 00:07:01,799
، آرگومان دوم در اینجا هسته خواهد بود،
125
00:07:01,799 –> 00:07:04,499
بنابراین هسته، بیایید بگوییم فعلاً
126
00:07:04,499 –> 00:07:06,989
ما هیچکدام را در اینجا ارائه نمی دهیم، بنابراین
127
00:07:06,989 –> 00:07:10,709
اندازه هسته هیچ خواهد بود و سپس
128
00:07:10,709 –> 00:07:14,039
پارامتر سوم، تعداد
129
00:07:14,039 –> 00:07:16,589
تکرار خواهد بود. ns بنابراین بیایید تعداد تکرارها را ارائه دهیم
130
00:07:16,589 –> 00:07:18,719
و تعداد
131
00:07:18,719 –> 00:07:20,849
تکرارهایی که قرار است در اینجا ارائه کنیم
132
00:07:20,849 –> 00:07:24,179
سه خواهد بود بنابراین اگر کار نکرد
133
00:07:24,179 –> 00:07:26,279
می توانیم تعداد تکرارها را کم یا زیاد
134
00:07:26,279 –> 00:07:28,499
کنیم در مرحله بعدی کاری که
135
00:07:28,499 –> 00:07:30,029
می خواهیم انجام دهیم این است ما میخواهیم
136
00:07:30,029 –> 00:07:33,269
کانتور را پیدا کنیم، همانطور که همه شما میدانید که
137
00:07:33,269 –> 00:07:35,939
روش کانتور یا کانتور ریز
138
00:07:35,939 –> 00:07:38,759
دو نتیجه به شما میدهد یکی
139
00:07:38,759 –> 00:07:41,849
خطوط خطوط و دیگری سلسله مراتب است، بنابراین
140
00:07:41,849 –> 00:07:44,159
ما فقط میگوییم کانتور و
141
00:07:44,159 –> 00:07:46,829
نتیجه دوم را میرویم. فقط
142
00:07:46,829 –> 00:07:48,719
میگوییم خطخط، زیرا قرار نیست
143
00:07:48,719 –> 00:07:52,739
از این نتیجه دوم استفاده کنیم و سپس
144
00:07:52,739 –> 00:07:57,559
فقط میگوییم CV
145
00:07:57,559 –> 00:08:00,389
برای پیدا کردن خطوط خطوط و میخواهیم
146
00:08:00,389 –> 00:08:04,199
خطوط روی این تصویر گشاد شده را پیدا کنیم، بنابراین
147
00:08:04,199 –> 00:08:06,839
میخواهیم بگوییم گشاد شده حالا آرگومان بعدی
148
00:08:06,839 –> 00:08:09,659
در اینجا حالت خواهد بود، بنابراین
149
00:08:09,659 –> 00:08:12,719
حالتی که ما در اینجا استفاده می
150
00:08:12,719 –> 00:08:15,929
کنیم، درخت زیر خط نویسنده خواهد بود، بنابراین
151
00:08:15,929 –> 00:08:19,409
من فقط درخت زیرخط ETR خود را می نویسم
152
00:08:19,409 –> 00:08:23,429
که بیشتر مورد استفاده قرار می گیرد و سپس
153
00:08:23,429 –> 00:08:26,369
آرگومان بعدی در اینجا روش خواهد بود،
154
00:08:26,369 –> 00:08:31,219
بنابراین روش در اینجا خواهد شد زنجیره نقطهای C v2 تقریباً
155
00:08:31,219 –> 00:08:34,708
ساده است و وقتی
156
00:08:34,708 –> 00:08:37,589
خطوط خود را داشتیم، فقط خطوط را ترسیم
157
00:08:37,589 –> 00:08:40,500
میکنیم، زیرا قبلاً
158
00:08:40,500 –> 00:08:43,129
خطوط را پیدا کردهایم، بنابراین میخواهیم بگوییم خطوط را بکشید
159
00:08:43,129 –> 00:08:46,500
و اولین آرگومان
160
00:08:46,500 –> 00:08:49,379
در اینجا فریم یک خواهد بود زیرا میخواهیم
161
00:08:49,379 –> 00:08:52,309
برای اعمال تمام خطوط روی
162
00:08:52,309 –> 00:08:55,140
قاب اصلی به درستی، بنابراین
163
00:08:55,140 –> 00:08:57,660
میخواهیم تمام خطوطی را
164
00:08:57,660 –> 00:08:59,940
که با استفاده از همه این روشها پیدا کردهایم،
165
00:08:59,940 –> 00:09:03,720
روی فریم یک اعمال کنیم و سپس
166
00:09:03,720 –> 00:09:07,680
آرگومان دوم در اینجا کانتور خواهد بود،
167
00:09:07,680 –> 00:09:12,180
بنابراین شما میتوانید خطوط را در اینجا بدهید
168
00:09:12,180 –> 00:09:16,290
و سومین آرگومان در اینجا کانتور I D خواهد بود،
169
00:09:16,290 –> 00:09:17,730
170
00:09:17,730 –> 00:09:20,850
من فقط می توانم بگویم منهای یک که
171
00:09:20,850 –> 00:09:24,240
همه خطوط را اعمال می کند و آرگومان سوم
172
00:09:24,240 –> 0