در این مطلب، ویدئو تشخیص خواب آلودگی عمیق با استفاده از YOLO، Pytorch و Python با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 1:18:34
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,320 –> 00:00:02,480
بنابراین بسیاری از شما از من میخواهید
2
00:00:02,480 –> 00:00:03,840
کاری در
3
00:00:03,840 –> 00:00:06,319
مورد تشخیص شی yolo و yolo انجام دهم، بنابراین کاری که من
4
00:00:06,319 –> 00:00:08,240
انجام دادم این بود که آن را برای
5
00:00:08,240 –> 00:00:10,080
تشخیص خواب آلودگی آزمایش
6
00:00:10,080 –> 00:00:17,920
7
00:00:20,700 –> 00:00:27,800
8
00:00:31,620 –> 00:00:39,869
9
00:00:42,950 –> 00:00:48,079
10
00:00:48,079 –> 00:00:49,280
کردم. نام
11
00:00:49,280 –> 00:00:50,800
نیکلاس رنو است و در این ویدیو ما
12
00:00:50,800 –> 00:00:52,480
از یولو
13
00:00:52,480 –> 00:00:54,480
برای تشخیص اشیا استفاده خواهیم کرد و به طور خاص
14
00:00:54,480 –> 00:00:56,079
از آن برای
15
00:00:56,079 –> 00:00:58,000
تشخیص اینکه چه زمانی خوابآلود هستیم و
16
00:00:58,000 –> 00:01:00,399
چه زمانی بیدار هستیم مدل خاص استفاده میکنیم.
17
00:01:00,399 –> 00:01:02,079
اینکه ما به طور خاص از
18
00:01:02,079 –> 00:01:03,520
مدل yolo استفاده می کنیم
19
00:01:03,520 –> 00:01:05,920
کمی بحث برانگیز است، این
20
00:01:05,920 –> 00:01:07,760
نسخه رسمی yolo نیست، اما گفته می شود
21
00:01:07,760 –> 00:01:10,320
که این یک
22
00:01:10,320 –> 00:01:12,560
پیاده سازی تولیدی مضحک و مفید از
23
00:01:12,560 –> 00:01:13,760
الگوریتم yolo است،
24
00:01:13,760 –> 00:01:15,439
بنابراین ما امروز یولو را پشت سر خواهیم گذاشت.
25
00:01:15,439 –> 00:01:17,119
بیایید نگاهی عمیقتر به آنچه
26
00:01:17,119 –> 00:01:18,080
خواهیم داشت بیندازیم،
27
00:01:18,080 –> 00:01:19,759
بنابراین در این ویدیو
28
00:01:19,759 –> 00:01:21,840
چهار چیز کلیدی را
29
00:01:21,840 –> 00:01:23,759
30
00:01:23,759 –> 00:01:25,840
مرور میکنیم، بنابراین بهطور
31
00:01:25,840 –> 00:01:28,400
خاص، اکنون از ultralytics yolo استفاده میکنیم که ممکن است کمی وارد آن شده باشم.
32
00:01:28,400 –> 00:01:30,079
کمی دعوا در reddit در مورد
33
00:01:30,079 –> 00:01:31,600
اینکه آیا این پیادهسازی رسمی yolo است یا خیر،
34
00:01:31,600 –> 00:01:33,600
اما گفته
35
00:01:33,600 –> 00:01:35,439
میشود این یک پیادهسازی تولید واقعاً خوب
36
00:01:35,439 –> 00:01:36,560
37
00:01:36,560 –> 00:01:38,479
است که با استفاده از مشعل پی ساخته شده است، بنابراین ما میخواهیم از
38
00:01:38,479 –> 00:01:40,320
این اهرم استفاده کنیم که امروز
39
00:01:40,320 –> 00:01:41,840
کاری که میخواهیم انجام دهیم استفاده
40
00:01:41,840 –> 00:01:43,200
از اهرم مدل پایه برای انجام برخی
41
00:01:43,200 –> 00:01:45,119
تشخیص ها و من معتقدم که بر روی
42
00:01:45,119 –> 00:01:46,479
مجموعه داده های کوکو آموزش داده شده است، بنابراین
43
00:01:46,479 –> 00:01:48,159
شما تقریباً 80 کلاس مختلف خواهید داشت که
44
00:01:48,159 –> 00:01:49,520
می توانید
45
00:01:49,520 –> 00:01:51,119
بلافاصله آنها را تشخیص دهید و سپس کاری که ما می
46
00:01:51,119 –> 00:01:52,560
خواهیم انجام دهیم این است که
47
00:01:52,560 –> 00:01:54,320
مدل خوابآلودگی خود را تنظیم کنید
48
00:01:54,320 –> 00:01:55,759
تا بتوانیم تشخیص دهیم که آیا خوابآلود هستیم
49
00:01:55,759 –> 00:01:56,479
50
00:01:56,479 –> 00:01:58,479
یا نه یا کاملاً بیدار هستیم یا نه.
51
00:01:58,479 –> 00:02:00,000
52
00:02:00,000 –> 00:02:01,520
53
00:02:01,520 –> 00:02:02,880
ما میتوانیم
54
00:02:02,880 –> 00:02:04,560
از وبکم خود استفاده کنیم تا بتوانیم
55
00:02:04,560 –> 00:02:05,040
تشخیصهای
56
00:02:05,040 –> 00:02:06,719
بیدرنگ انجام دهیم تا
57
00:02:06,719 –> 00:02:08,160
مشخص کنیم خوابآلود هستیم یا نه، بنابراین میتوانید آن
58
00:02:08,160 –> 00:02:09,199
را بردارید
59
00:02:09,199 –> 00:02:11,840
و به طور بالقوه آن را در ماشین یا
60
00:02:11,840 –> 00:02:13,440
وسیله نقلیه پیادهسازی کنید تا مطمئن شوید که خوابآلود نیستید.
61
00:02:13,440 –> 00:02:15,920
چرت زدن به طور بالقوه باعث ایجاد زنگ هشدار
62
00:02:15,920 –> 00:02:17,280
یا چیزی می شود از پشت این
63
00:02:17,280 –> 00:02:19,599
استفاده کنید تا مطمئن شوید که در جاده بسیار ایمن تر هستید،
64
00:02:19,599 –> 00:02:20,879
65
00:02:20,879 –> 00:02:22,560
بیایید نگاهی بیندازیم که چگونه همه اینها
66
00:02:22,560 –> 00:02:24,480
با هم هماهنگ می شوند، بنابراین ابتدا کاری که ما
67
00:02:24,480 –> 00:02:25,200
می خواهیم انجام دهیم
68
00:02:25,200 –> 00:02:27,840
نصب بسته ultra lytx yolo
69
00:02:27,840 –> 00:02:29,520
است. این یک
70
00:02:29,520 –> 00:02:31,360
پیاده سازی yolo است، بنابراین پیاده سازی
71
00:02:31,360 –> 00:02:33,440
رسمی yolo v4
72
00:02:33,440 –> 00:02:36,800
نیست، آن را yolo v5 می نامند، اما اجازه دهید در
73
00:02:36,800 –> 00:02:38,720
مورد آن آتش ردیت که من
74
00:02:38,720 –> 00:02:39,599
داشتم نظری ندهیم،
75
00:02:39,599 –> 00:02:41,120
بنابراین کاری که ما انجام خواهیم داد این است که
76
00:02:41,120 –> 00:02:42,800
از پیاده سازی ultralytics yolo
77
00:02:42,800 –> 00:02:44,319
استفاده کنیم تا بتوانیم آن را
78
00:02:44,319 –> 00:02:46,879
خوب کنیم. یک مدل خوابآلودگی را تنظیم کنید،
79
00:02:46,879 –> 00:02:49,040
ما از یک تصویر برچسب برای برچسبگذاری تصاویر خود استفاده میکنیم،
80
00:02:49,040 –> 00:02:50,319
بنابراین اگر آموزش
81
00:02:50,319 –> 00:02:52,400
تشخیص جسم تنسورفلو بزرگ من را دیدهاید،
82
00:02:52,400 –> 00:02:54,239
تقریباً شبیه
83
00:02:54,239 –> 00:02:56,000
نحوه برچسبگذاری تصاویرمان است
84
00:02:56,000 –> 00:02:56,560
85
00:02:56,560 –> 00:02:57,760
و در آخر ما میتوانیم
86
00:02:57,760 –> 00:02:59,680
تشخیص دهیم
87
00:02:59,680 –> 00:03:01,360
که آیا بیدار هستیم یا نه
88
00:03:01,360 –> 00:03:04,959
یا لباس میپوشیم تا این کار را انجام دهیم، خوب بچهها به آن برسیم،
89
00:03:04,959 –> 00:03:07,519
بنابراین در این ویدیو
90
00:03:07,519 –> 00:03:08,480
91
00:03:08,480 –> 00:03:10,959
اکنون با تشخیص خوابآلودگی مواجه میشویم
92
00:03:10,959 –> 00:03:12,720
تا انجام دهید که ما قصد داریم ب
93
00:03:12,720 –> 00:03:13,599
94
00:03:13,599 –> 00:03:15,440
شش مرحله کلیدی را پشت سر می گذاریم، بنابراین ابتدا کاری که می
95
00:03:15,440 –> 00:03:17,200
خواهیم انجام دهیم این است که وابستگی های خود را نصب و وارد
96
00:03:17,200 –> 00:03:18,000
97
00:03:18,000 –> 00:03:19,440
کنیم و
98
00:03:19,440 –> 00:03:21,760
واقعاً از pytorch تا حد زیادی برای این کار استفاده می کنیم،
99
00:03:21,760 –> 00:03:23,840
سپس کاری که می خواهیم انجام دهیم این است که بارگذاری کنیم.
100
00:03:23,840 –> 00:03:25,040
آن مدلی که قرار است
101
00:03:25,040 –> 00:03:26,319
از آن استفاده کنیم، بنابراین دوباره از
102
00:03:26,319 –> 00:03:26,720
103
00:03:26,720 –> 00:03:30,159
yolo یا چیزی که به عنوان yolo v5 شناخته میشود استفاده
104
00:03:30,159 –> 00:03:32,640
میکنیم، مانند یک پسوند غیررسمی است که حدس میزنم که
105
00:03:32,640 –> 00:03:34,480
پسوند yolo v4
106
00:03:34,480 –> 00:03:36,480
را بررسی کنیم و سپس آن را بررسی
107
00:03:36,480 –> 00:03:38,080
خواهیم کرد.
108
00:03:38,080 –> 00:03:39,599
با استفاده از مدل پایه که در
109
00:03:39,599 –> 00:03:41,120
مورد کوکو آموزش داده شده است، برخی از تشخیص ها را انجام خواهیم داد، بنابراین اگر قبلاً در
110
00:03:41,120 –> 00:03:42,799
مورد کوکو چیزی نشنیده اید، اساساً مانند این
111
00:03:42,799 –> 00:03:44,720
مجموعه داده منبع باز است که من فکر می کنم
112
00:03:44,720 –> 00:03:46,879
حدود 80 کلاس مختلف دارد،
113
00:03:46,879 –> 00:03:48,560
بنابراین چیز خوبی در مورد کوکو است. این
114
00:03:48,560 –> 00:03:50,080
پیادهسازی به این صورت است که میتوانید آن را امتحان
115
00:03:50,080 –> 00:03:51,599
کنید، برخی از تشخیصها را
116
00:03:51,599 –> 00:03:53,360
حتی بدون تنظیم دقیق مشاهده خواهید کرد،
117
00:03:53,360 –> 00:03:54,720
اما کاری که ما میخواهیم انجام دهیم این است
118
00:03:54,720 –> 00:03:56,799
که با استفاده از کدهای استاندارد جمعآوری تصاویر، تعدادی
119
00:03:56,799 –> 00:03:59,519
تصویر
120
00:03:59,519 –> 00:04:01,519
جمعآوری میکنیم و مدلی را برای تشخیص اینکه آیا یا نه
121
00:04:01,519 –> 00:04:03,040
ما خواب آلود هستیم یا نه و سپس عمل می
122
00:04:03,040 –> 00:04:05,120
کنیم ally برو و
123
00:04:05,120 –> 00:04:05,680
124
00:04:05,680 –> 00:04:07,519
با استفاده از وبکم خود بهصورت بلادرنگ شناساییها را انجام دهیم، بنابراین ما دوباره
125
00:04:07,519 –> 00:04:09,360
همه آنها را با هم جمع میکنیم و اساساً
126
00:04:09,360 –> 00:04:11,920
یک مدل خوابآلودگی تنظیمشده در
127
00:04:11,920 –> 00:04:12,640
پایان این مرحله،
128
00:04:12,640 –> 00:04:14,400
اکنون اولین چیزی که باید ادامه دهیم
129
00:04:14,400 –> 00:04:16,399
و نصب کنیم، pi است. مشعل، بنابراین اگر
130
00:04:16,399 –> 00:04:20,560
به pytorch.org برویم،
131
00:04:20,560 –> 00:04:22,720
کاری که میتوانیم انجام دهیم این است که
132
00:04:22,720 –> 00:04:24,400
به بخش نصب برویم،
133
00:04:24,400 –> 00:04:27,520
روی install کلیک کرده
134
00:04:27,520 –> 00:04:28,880
و سپس کاری که میخواهیم انجام دهیم این است
135
00:04:28,880 –> 00:04:30,240
که نسخهای را که میخواهیم نصب کنیم انتخاب کنیم.
136
00:04:30,240 –> 00:04:32,720
اکنون میتوانیم نسخه پایدار 1.9 را انتخاب کنیم، من میخواهم
137
00:04:32,720 –> 00:04:33,440
138
00:04:33,440 –> 00:04:35,759
نسخه پایدار طولانیمدت را انتخاب کنم
139
00:04:35,759 –> 00:04:37,280
که 1.8.1 است،
140
00:04:37,280 –> 00:04:38,479
زیرا برای من بسیار
141
00:04:38,479 –> 00:04:39,919
ساده کار میکند، اما دوباره با
142
00:04:39,919 –> 00:04:42,160
خیال راحت از هر کدام که میخواهید استفاده کنید
143
00:04:42,160 –> 00:04:43,680
و سپس کاری که میخواهیم انجام دهیم. این است
144
00:04:43,680 –> 00:04:45,680
که انتخاب کنیم از چه سیستم عاملی می خواهیم استفاده کنیم، بنابراین من می
145
00:04:45,680 –> 00:04:46,400
خواهم از ویندوز استفاده کنم
146
00:04:46,400 –> 00:04:48,080
و سپس ما می خواهیم از
147
00:04:48,080 –> 00:04:50,160
چه بسته ای استفاده کنیم، بنابراین pip به من اجازه دهید روی آن زوم
148
00:04:50,160 –> 00:04:51,199
کنم تا بتوانید آن را کمی
149
00:04:51,199 –> 00:04:52,479
بهتر ببینید
150
00:04:52,479 –> 00:04:54,080
، بسته ای است که ما می رویم برای استفاده از pip
151
00:04:54,080 –> 00:04:56,080
و سپس ما از پایتون استفاده می کنیم
152
00:04:56,080 –> 00:04:58,800
و سپس cuda 11.1 را نصب کردم در
153
00:04:58,800 –> 00:05:00,400
دستگاه من، بنابراین من می خواهم انتخاب کنم
154
00:05:00,400 –> 00:05:02,160
که اگر gpu ندارید، خوب است،
155
00:05:02,160 –> 00:05:03,680
فقط کمی
156
00:05:03,680 –> 00:05:05,120
بیشتر طول می کشد تا در واقع به جلو بروید و
157
00:05:05,120 –> 00:05:06,800
این را آموزش دهید، اما همه چیز خوب است،
158
00:05:06,800 –> 00:05:08,840
بنابراین ما می خواهیم چه کنیم این است که
159
00:05:08,840 –> 00:05:10,880
گزینههای مختلفی را که میخواهیم انتخاب کنیم و سپس
160
00:05:10,880 –> 00:05:14,000
میتوانیم آن را کپی کنیم
161
00:05:14,160 –> 00:05:16,160
و به دفترچه یادداشت خود برگردیم و
162
00:05:16,160 –> 00:05:17,680
بیایید با مرحله اول شروع کنیم، بنابراین کاری که
163
00:05:17,680 –> 00:05:19,199
میخواهیم انجام دهیم این است که ابتدا مشعل pi را نصب کنیم،
164
00:05:19,199 –> 00:05:20,639
من فقط یک مشعل را اضافه میکنم.
165
00:05:20,639 –> 00:05:23,759
علامت تعجب را بچسبانید و سپس
166
00:05:23,759 –> 00:05:25,440
من از شر سه مورد در اینجا خلاص میشوم و
167
00:05:25,440 –> 00:05:26,400
آن را اجرا
168
00:05:26,400 –> 00:05:28,160
میکنم و فکر میکنم از قبل pytorch را
169
00:05:28,160 –> 00:05:29,759
در این کرنل yolo نصب کردهام،
170
00:05:29,759 –> 00:05:32,000
بنابراین ما باید خوب برویم، بله
171
00:05:32,000 –> 00:05:34,880
و طبق معمول همه اینها کد
172
00:05:34,880 –> 00:05:36,320
موجود قرار است در داخل یک
173
00:05:36,320 –> 00:05:37,199
نوت بوک مشتری
174
00:05:37,199 –> 00:05:40,160
از طریق github در دسترس باشد، بنابراین من چیزهای خامی را
175
00:05:40,160 –> 00:05:41,919
که در این آموزش می نویسیم و
176
00:05:41,919 –> 00:05:43,680
همچنین کدهای اصلاح شده را اضافه می کنم تا بتوانید یک
177
00:05:43,680 –> 00:05:45,120
نسخه پاک شده داشته باشید،
178
00:05:45,120 –> 00:05:47,039
اما فعلا اجازه دهید به کار خود ادامه دهیم.
179
00:05:47,039 –> 00:05:49,360
اکنون pytorch را نصب کردهایم
180
00:05:49,360 –> 00:05:50,960
، کاری که باید انجام دهیم در
181
00:05:50,960 –> 00:05:52,639
واقع g است o جلوتر باشید و
182
00:05:52,639 –> 00:05:55,039
این مدل ultralytics yellow v5
183
00:05:55,039 –> 00:05:56,880
را بگیرید، بنابراین اگر نسخه low v5 خود را تایپ کنم، فکر میکنم
184
00:05:56,880 –> 00:05:57,759
فقط یک نسخه
185
00:05:57,759 –> 00:06:01,919
وجود دارد، اوه، خوب شاید
186
00:06:01,919 –> 00:06:04,000
نباید low v5 شما باشد، ما میرویم،
187
00:06:04,000 –> 00:06:05,199
188
00:06:05,199 –> 00:06:07,919
بنابراین این هم اکنون اجرای ultralytics yolo v5
189
00:06:07,919 –> 00:06:09,280
دوباره
190
00:06:09,280 –> 00:06:12,160
همانطور که در مقدمه گفتم،
191
00:06:12,160 –> 00:06:14,160
در مورد نامگذاری این مدل خاص کمی بحث و جدل وجود دارد،
192
00:06:14,160 –> 00:06:15,759
به
193
00:06:15,759 –> 00:06:16,720
خصوص به
194
00:06:16,720 –> 00:06:19,039
این دلیل که شبیه یک شاخه رسمی از پیاده سازی
195
00:06:19,039 –> 00:06:20,000
yolo v4
196
00:06:20,000 –> 00:06:22,080
نیست، اما من این را پیدا کردم و
197
00:06:22,080 –> 00:06:23,520
در واقع واقعاً بسیار خوب عمل کرد،
198
00:06:23,520 –> 00:06:24,240
مخصوصاً
199
00:06:24,240 –> 00:06:26,240
برای پیاده سازی های تولیدی مشابه. و
200
00:06:26,240 –> 00:06:27,680
به خصوص برای
201
00:06:27,680 –> 00:06:30,720
پیاده سازی های عملی، بنابراین من
202
00:06:30,720 –> 00:06:32,240
قصد نداشتم واقعاً این توالت واقعی را
203
00:06:32,240 –> 00:06:34,080
در مورد تشخیص خواب آلودگی بسازم،
204
00:06:34,080 –> 00:06:34,800
اما می خواستم
205
00:06:34,800 –> 00:06:36,000
بیایید آن را بررسی کنیم و ببینیم که چگونه پیش
206
00:06:36,000 –> 00:06:37,840
می رود و نتایج نهایی
207
00:06:37,840 –> 00:06:39,680
واقعاً واقعاً شگفت انگیز بود، بنابراین
208
00:06:39,680 –> 00:06:41,680
دوباره کمی روی طعمه کلیک کنید
209
00:06:41,680 –> 00:06:43,360
تا انتها بچسبید و نتایج کامل را ببینید،
210
00:06:43,360 –> 00:06:44,960
اما باز هم
211
00:06:44,960 –> 00:06:45,840
واقعاً خیلی
212
00:06:45,840 –> 00:06:47,600
خوب است، بنابراین ما برای
213
00:06:47,600 –> 00:06:48,960
به دست آوردن چه کاری انجام خواهیم داد این است که ما این مخزن را شبیه سازی می کنیم،
214
00:06:48,960 –> 00:06:50,560
بنابراین می توانید ببینید که
215
00:06:50,560 –> 00:06:51,440
یک دستور git clone در
216
00:06:51,440 –> 00:06:54,160
آنجا وجود دارد، بنابراین ما آن را شبیه سازی می کنیم و
217
00:06:54,160 –> 00:06:55,520
می توانید اینجا ببینید که اساساً این همان
218
00:06:55,520 –> 00:06:57,199
چیزی است که ما می خواهیم ادامه دهیم و این
219
00:06:57,199 –> 00:06:58,720
کار را انجام دهیم. میخواهیم آن را شبیهسازی کنیم، در آن سیدی میزنیم
220
00:06:58,720 –> 00:07:00,319
و سپس
221
00:07:00,319 –> 00:07:01,440
نیازمندیهای
222
00:07:01,440 –> 00:07:03,840
اجرای yolo v5 را نصب میکنیم، بنابراین اگر
223
00:07:03,840 –> 00:07:05,440
این را کپی
224
00:07:05,440 –> 00:07:07,280
کنیم، در یادداشتی به شما نشان میدهم که چگونه این کار را انجام دهید و
225
00:07:07,280 –> 00:07:09,120
دوباره به داخل ما میرویم. نوت بوک
226
00:07:09,120 –> 00:07:11,520
یک سلول جدید اضافه می کند، بنابراین من علامت تعجب را تایپ می کنم
227
00:07:11,520 –> 00:07:13,280
و سپس git clone
228
00:07:13,280 –> 00:07:15,039
که ممکن است کمی طول بکشد،
229
00:07:15,039 –> 00:07:16,479
من قبلاً آن را شبیه سازی کرده ام، بنابراین
230
00:07:16,479 –> 00:07:18,080
نیازی به ادامه دادن و شبیه سازی آن نیست، اما
231
00:07:18,080 –> 00:07:19,840
با این فرض که من یک کلون
232
00:07:19,840 –> 00:07:21,440
نداشتم، آن را ادامه می دهد و شبیه سازی می کند،
233
00:07:21,440 –> 00:07:24,880
بنابراین اجازه دهید به شما نشان دهم که چگونه به نظر می رسد،
234
00:07:25,680 –> 00:07:27,440
بنابراین اگر این خطا را در اینجا دریافت کردید که
235
00:07:27,440 –> 00:07:29,039
اساساً فقط یک هشدار است که
236
00:07:29,039 –> 00:07:30,800
می گوید قبلاً آن را شبیه سازی کرده اید یا دارید
237
00:07:30,800 –> 00:07:32,720
قبلاً آن را دریافت کردم،
238
00:07:32,720 –> 00:07:34,720
بنابراین در پوشه من می توانید ببینید که من قبلاً
239
00:07:34,720 –> 00:07:37,360
یک پوشه به نام yolo v5 دارم و این
240
00:07:37,360 –> 00:07:38,720
اساساً چیزی است که می خواهید دریافت کنید.
241
00:07:38,720 –> 00:07:40,720
شبیه سازی شده است، بنابراین اگر ما برویم و نگاهی بیندازیم
242
00:07:40,720 –> 00:07:43,039
که
243
00:07:43,120 –> 00:07:46,080
همه چیزهایی که در اینجا می بینید به
244
00:07:46,080 –> 00:07:47,120
تازگی در اینجا شبیه سازی شده است،
245
00:07:47,120 –> 00:07:49,360
بنابراین اساساً اکنون می
246
00:07:49,360 –> 00:07:51,120
توانیم از اجرای yolo v5
247
00:07:51,120 –> 00:07:52,240
استفاده کنیم، اما
248
00:07:52,240 –> 00:07:54,080
قبل از انجام این کار باید یکی را انجام دهیم.
249
00:07:54,080 –> 00:07:55,199
چیز دیگری که ما نیاز داریم برای نصب
250
00:07:55,199 –> 00:07:57,520
وابستگیها در داخل این فایل نیازمندیها،
251
00:07:57,520 –> 00:08:00,240
بنابراین کاری که قرار است
252
00:08:00,240 –> 00:08:00,639
انجام
253
00:08:00,639 –> 00:08:02,479
شود این است که مطمئن شویم همه
254
00:08:02,479 –> 00:08:03,759
این
255
00:08:03,759 –> 00:08:06,639
وابستگیها یا ماژولهای کتابخانههای مختلف را
256
00:08:06,639 –> 00:08:07,759
هر چه میخواهید
257
00:08:07,759 –> 00:08:08,800
آنها را بنامید، داشته باشیم. مطمئن باشید
258
00:08:08,800 –> 00:08:10,560
که همه اینها را نصب کرده ایم، پس بیایید ادامه دهیم
259
00:08:10,560 –> 00:08:12,000
و این را اجرا کنیم، من معتقدم که ما
260
00:08:12,000 –> 00:08:14,160
از قبل مشعل و چشم انداز مشعل را
261
00:08:14,160 –> 00:08:16,160
نصب کرده ایم، ادامه خواهد داد
262
00:08:16,160 –> 00:08:18,319
و بقیه کارها را برای ما انجام خواهد داد، پس بیایید ادامه دهیم و
263
00:08:18,319 –> 00:08:20,560
این کار را انجام دهیم.
264
00:08:20,560 –> 00:08:23,199
میتوانیم ادامه دهیم و این
265
00:08:23,199 –> 00:08:25,639
دستور را در اینجا بگیریم، بنابراین pippin نیازمندیهای ما را دید.txt
266
00:08:25,639 –> 00:08:27,599
و ما فقط
267
00:08:27,599 –> 00:08:29,039
میخواهیم دستور دیگری را اضافه کنیم، بنابراین ابتدا
268
00:08:29,039 –> 00:08:31,199
باید در آن پوشه سی دی قرار دهیم، بنابراین cd
269
00:08:31,199 –> 00:08:34,159
yolo v5 و سپس کاری که میخواهیم انجام دهیم این است که
270
00:08:34,159 –> 00:08:35,200
pip کنیم. نصب
271
00:08:35,200 –> 00:08:36,880
dash مورد نیاز ما از te xt به
272
00:08:36,880 –> 00:08:38,240
طور موثر کاری که ما انجام می دهیم این
273
00:08:38,240 –> 00:08:40,399
است که از خط فرمان خود
274
00:08:40,399 –> 00:08:42,240
در آن پوشه yolo v5 می نشینیم و سپس
275
00:08:42,240 –> 00:08:43,760
آن نیازمندی هایی
276
00:08:43,760 –> 00:08:46,480
را که در فایل requires.txt مشاهده کردید نصب می
277
00:08:46,480 –> 00:08:48,640
کنیم، اجازه دهید اجرا کنیم که به نظر می رسد
278
00:08:48,640 –> 00:08:50,320
قبلاً همه آنها را نصب کرده ایم.
279
00:08:50,320 –> 00:08:53,120
خطاها وجود دارد و این تقریباً
280
00:08:53,120 –> 00:08:53,600
281
00:08:53,600 –> 00:08:56,000
هسته اصلی نصب خوب است و انجام شده است، اجازه دهید
282
00:08:56,000 –> 00:08:57,680
سریعاً خلاصه کنیم، بنابراین کاری که ما انجام
283
00:08:57,680 –> 00:08:58,640
دادیم این است که
284
00:08:58,640 –> 00:09:00,320
pytorch را از طریق این خط در اینجا نصب کرده ایم و
285
00:09:00,320 –> 00:09:01,680
به یاد داشته باشید که ما فقط
286
00:09:01,680 –> 00:09:02,959
تنظیمات خود را که می خواستیم انجام دادیم،
287
00:09:02,959 –> 00:09:05,040
رفتیم و دستور را در آن کپی کردیم.
288
00:09:05,040 –> 00:09:06,959
پس از آن ما رفتیم و آن مخزن را شبیه سازی کردیم و سپس رفتیم و
289
00:09:06,959 –> 00:09:08,320
290
00:09:08,320 –> 00:09:11,360
موارد را در داخل requirement.txt نصب کردیم
291
00:09:11,360 –> 00:09:13,839
از اینجا به بعد همه چیز
292
00:09:13,839 –> 00:09:15,200
از نظر کاری که باید
293
00:09:15,200 –> 00:09:16,880
انجام دهیم کاملاً ساده است، بنابراین کلون کردن زیادی وجود ندارد
294
00:09:16,880 –> 00:09:17,920
و نصب آن
295
00:09:17,920 –> 00:09:20,320
واقعاً آهسته است. جدا از تصویر برچسب، ما
296
00:09:20,320 –> 00:09:21,600
باید این کار را نیز انجام دهیم، اما
297
00:09:21,600 –> 00:09:23,040
خوب است، ما آن را بررسی خواهیم کرد،
298
00:09:23,040 –> 00:09:24,240
بنابراین اکنون که یک سری
299
00:09:24,240 –> 00:09:26,240
چیزها را نصب کرده ایم، اکنون باید
300
00:09:26,240 –> 00:09:27,920
آن را وارد نوت بوک خود کنیم، پس بیایید برویم پیش بروید
301
00:09:27,920 –> 00:09:37,600
و این کار را انجام دهید،
302
00:09:37,600 –> 00:09:40,880
که مجموعه اولیه
303
00:09:40,880 –> 00:09:42,480
وابستگی های ما نصب یا
304
00:09:42,480 –> 00:09:43,760
وارد شده در نوت بوک ما است، بنابراین
305
00:09:43,760 –> 00:09:45,120
بعداً می خواهیم یک سری چیزها
306
00:09:45,120 –> 00:09:45,760
را نیز وارد کنیم،
307
00:09:45,760 –> 00:09:47,920
اما در حال حاضر این چهار
308
00:09:47,920 –> 00:09:49,360
وابستگی کلیدی ما هستند که باید
309
00:09:49,360 –> 00:09:51,200
ادامه دهیم و مدل ما را بارگیری کنید و
310
00:09:51,200 –> 00:09:53,600
برخی از تشخیص های اولیه را انجام دهید،
311
00:09:53,600 –> 00:09:55,920
بنابراین آنچه که من رفتم و در آنجا خواندم مشعل واردات است،
312
00:09:55,920 –> 00:09:57,920
313
00:09:57,920 –> 00:09:59,440
سپس من رفته ام و از
314
00:09:59,440 –> 00:10:01,360
matplotlib import pi نمودار
315
00:10:01,360 –> 00:10:03,839
به صورت plt نوشته ام، بنابراین این مشعل واردات خط اول قرار است
316
00:10:03,839 –> 00:10:05,519
مشعل pi را وارد کند
317
00:10:05,519 –> 00:10:07,120
، خط دوم
318
00:10:07,120 –> 00:10:08,640
میخواهیم matplotlib را وارد کنیم تا بتوانیم
319
00:10:08,640 –> 00:10:10,000
کمی رندر انجام دهیم،
320
00:10:10,000 –> 00:10:12,320
سپس من رفتهام و import numpy را
321
00:10:12,320 –> 00:10:13,279
بهعنوان np نوشتم
322
00:10:13,279 –> 00:10:14,720
و این فقط به ما کمک میکند
323
00:10:14,720 –> 00:10:16,399
تا کمی تغییر داده کنیم، بنابراین
324
00:10:16,399 –> 00:10:17,760
اگر قبلاً با numpy کار نکردهاید.
325
00:10:17,760 –> 00:10:18,720
اساساً
326
00:10:18,720 –> 00:10:22,160
این یک کتابخانه تبدیل آرایه واقعاً قدرتمند
327
00:10:22,160 –> 00:10:23,920
از پایتون است، بنابراین
328
00:10:23,920 –> 00:10:24,560
باز هم
329
00:10:24,560 –> 00:10:25,920
فوق العاده قدرتمند است که می توانید یکسری
330
00:10:25,920 –> 00:10:27,279
کارها را با آن انجام دهید و سپس وارد cv2 شدیم،
331
00:10:27,279 –> 00:10:27,680
332
00:10:27,680 –> 00:10:29,760
بنابراین opencv
333
00:10:29,760 –> 00:10:31,920
را به نوت بوک ما وارد می کند و به شما اجازه می دهد
334
00:10:31,920 –> 00:10:34,000
برای شروع
335
00:10:34,000 –> 00:10:36,240
خوب، اکنون کار بعدی که باید
336
00:10:36,240 –> 00:10:37,680
انجام دهیم، تقریباً مرحله
337
00:10:37,680 –> 00:10:39,519
اول انجام شده است، بنابراین ما رفتیم و
338
00:10:39,519 –> 00:10:40,959
مشعل pi را نصب کردیم، رفتیم و
339
00:10:40,959 –> 00:10:41,839
مخزن خود را
340
00:10:41,839 –> 00:10:44,079
از github کلون کردیم و سپس رفتیم و
341
00:10:44,079 –> 00:10:45,880
نصب کردیم وابستگیها از
342
00:10:45,880 –> 00:10:47,920
فایل requires.txt
343
00:10:47,920 –> 00:10:49,839
بنابراین و سپس ما نیز
344
00:10:49,839 –> 00:10:51,440
دستهای از وابستگیها را به نوتبوک خود وارد کردهایم،
345
00:10:51,440 –> 00:10:52,959
اکنون کار بعدی که باید انجام دهیم این است که
346
00:10:52,959 –> 00:10:54,800
در واقع به جلو برویم و مدل خود را بارگذاری کنیم، بنابراین
347
00:10:54,800 –> 00:11:01,839
بیایید ادامه دهیم و این کار را
348
00:11:02,640 –> 00:11:05,120
خوب انجام دهیم. من رفتهام و یک خط را
349
00:11:05,120 –> 00:11:06,240
آنجا سوار کردهام حالا اجازه دهید توضیح دهم
350
00:11:06,240 –> 00:11:08,640
که واقعاً چه کاری انجام میدهد، بنابراین این در
351
00:11:08,640 –> 00:11:10,720
واقع مدل اولترالیتیک از پیش آموزشدیدهشده را
352
00:11:10,720 –> 00:11:13,200
از مرکز مشعل بارگیری میکند، بنابراین اگر
353
00:11:13,200 –> 00:11:15,200
به torchhub بروم
354
00:11:15,200 –> 00:11:16,720
و این شبیه به هاب تنسورفلو
355
00:11:16,720 –> 00:11:18,320
باشد، معادل مشعل pi است.
356
00:11:18,320 –> 00:11:21,200
و اگر ما واقعاً برویم و به دنبال uh
357
00:11:21,200 –> 00:11:22,640
چگونه برویم و
358
00:11:22,640 –> 00:11:28,880
اینجا را جستجو کنیم، اجازه دهید uh ultra lytics را
359
00:11:28,880 –> 00:11:31,920
در اینجا امتحان کنیم we go yellow v5، بنابراین کاری که
360
00:11:31,920 –> 00:11:33,920
اساسا انجام می دهد این است که
361
00:11:33,920 –> 00:11:35,120
مدل از پیش آموزش دیده را
362
00:11:35,120 –> 00:11:37,200
از pytorch hub دانلود می کند، بنابراین این یک
363
00:11:37,200 –> 00:11:39,120
مکان است. جایی که مدل ها می توانند باشند میزبانی شده است
364
00:11:39,120 –> 00:11:40,880
و ما در واقع از
365
00:11:40,880 –> 00:11:42,480
مدل پایه استفاده خواهیم کرد اکنون چند
366
00:11:42,480 –> 00:11:43,680
مدل مختلف وجود دارد که در واقع
367
00:11:43,680 –> 00:11:45,120
از این طریق در دسترس
368
00:11:45,120 –> 00:11:46,959
369
00:11:46,959 –> 00:11:48,079
370
00:11:48,079 –> 00:11:49,839
371
00:11:49,839 –> 00:11:51,360
هستند. باور کنید که این یک مدل بسیار بزرگ
372
00:11:51,360 –> 00:11:52,720
است
373
00:11:52,720 –> 00:11:54,560
و به نوعی مقایسه
374
00:11:54,560 –> 00:11:56,320
بین هر یک از این مدل های مختلف را به شما نشان می دهد،
375
00:11:56,320 –> 00:11:57,600
بنابراین ما
376
00:11:57,600 –> 00:11:58,959
برای شروع از مدل کوچک استفاده می کنیم، اما اگر می خواهید
377
00:11:58,959 –> 00:12:00,320
از یک مدل بزرگتر یا یک
378
00:12:00,320 –> 00:12:02,880
مدل هاردکورتر استفاده کنید، قطعاً
379
00:12:02,880 –> 00:12:05,760
میتوانیم اکنون کاری که میخواهیم انجام دهیم این
380
00:12:05,760 –> 00:12:06,959
است که در واقع آن را بارگذاری
381
00:12:06,959 –> 00:12:09,440
کنیم، بنابراین آنچه من نوشتم این است که مدل
382
00:12:09,440 –> 00:12:10,000
برابر با
383
00:12:10,000 –> 00:12:13,120
بار نقطهای مرکز مشعل است و سپس
384
00:12:13,120 –> 00:12:14,720
از بستهای عبور کردهام که
385
00:12:14,720 –> 00:12:16,880
میخواهیم از ultra lytics به جلو استفاده کنیم.
386
00:12:16,880 –> 00:12:19,200
yolo v5 را اسلش کنید و سپس
387
00:12:19,200 –> 00:12:20,240
مدل واقعی را
388
00:12:20,240 –> 00:12:21,600
که میخواهم در این مورد خاص استفاده
389
00:12:21,600 –> 00:12:23,040
کنم، بررسی کردم، زیرا نسخههای
390
00:12:23,040 –> 00:12:24,000
مختلف yolo v5
391
00:12:24,000 –> 00:12:26,720
وجود دارد، به یاد داشته باشید که نسخه کوچک متوسط بزرگ و ف
392
00:12:26,720 –> 00:12:28,079
ق بزرگ وجود دارد، بنابراین ما می
393
00:12:28,079 –> 00:12:29,360
رویم. باید از کوچکتر
394
00:12:29,360 –> 00:12:32,399
برای سبکوزن و سریع نگهداشتن چیزها استفاده کنیم
395
00:12:32,399 –> 00:12:34,320
و سپس کاری که انجام دادهایم و انجام دادهایم این است
396
00:12:34,320 –> 00:12:35,519
که همه آنها را دانلود کردهایم، میخواهیم
397
00:12:35,519 –> 00:12:36,959
آن را در متغیری به نام model ذخیره کنیم
398
00:12:36,959 –> 00:12:38,160
تا خط کامل
399
00:12:38,160 –> 00:12:40,880
مدل برابر با نقطه مشعل باشد. dot load و
400
00:12:40,880 –> 00:12:42,240
سپس پارامتر اول
401
00:12:42,240 –> 00:12:45,120
ultra litix فوروارد اسلش yolo v5 است و
402
00:12:45,120 –> 00:12:46,880
سپس پارامتر دوم یا
403
00:12:46,880 –> 00:12:48,240
آرگومان دوم yolo
404
00:12:48,240 –> 00:12:53,839
v5s است، بنابراین اگر من آن را اجرا کنم اکنون
405
00:12:53,920 –> 00:12:56,240
ادامه می یابد و آن را بارگذاری می کند
406
00:12:56,240 –> 00:12:57,519
و می توانید ببینید که
407
00:12:57,519 –> 00:13:00,560
gpu من را گرفته است. در آنجا
408
00:13:00,560 –> 00:13:02,639
هنوز منتظریم تا قیمتهای 30 90
409
00:13:02,639 –> 00:13:05,360
پایین بیایند
410
00:13:05,440 –> 00:13:07,519
بچهها خیلی خوب است، بنابراین اکنون رفته و
411
00:13:07,519 –> 00:13:09,360
دانلود شده است و ما اکنون رفتهایم و
412
00:13:09,360 –> 00:13:10,000
آن را در
413
00:13:10,000 –> 00:13:12,399
نوتبوک خود بارگذاری کردهایم، بنابراین میتوانید ببینید که
414
00:13:12,399 –> 00:13:13,920
ما هیچ خطایی در آنجا نداشتیم، بنابراین اگر ما بروید و
415
00:13:13,920 –> 00:13:17,040
به مدل ما نگاهی بیندازید اکنون
416
00:13:17,040 –> 00:13:18,720
می توانید ببینید که در واقع می
417
00:13:18,720 –> 00:13:20,639
توانید به تمام لایه
418
00:13:20,639 –> 00:13:21,519
های مختلف موجود
419
00:13:21,519 –> 00:13:22,720
در داخل این مدل نگاهی بیندازید و می توانید ببینید که این مدل
420
00:13:22,720 –> 00:13:25,360
بسیار بزرگ است، بنابراین ما
421
00:13:25,360 –> 00:13:27,040
یکسری کانولوشن داریم. بعلاوه
422
00:13:27,040 –> 00:13:30,160
من معتقدم که این یک
423
00:13:30,160 –> 00:13:32,000
واحد خطی سیگموئید بود یک دسته کامل از
424
00:13:32,000 –> 00:13:33,760
چیزها در داخل این
425
00:13:33,760 –> 00:13:35,200
وجود دارد و یک دسته از سرهای پیش بینی
426
00:13:35,200 –> 00:13:37,200
نیز از این موضوع بیرون می آیند،
427
00:13:37,200 –> 00:13:39,519
اما خیلی خوب است که ما نیازی به کاوش زیاد
428
00:13:39,519 –> 00:13:40,880
در معماری مجدد نداریم،
429
00:13:40,880 –> 00:13:42,480
من در زیر مجموعه ای از پیوندها را در مورد این موضوع قرار خواهم داد.
430
00:13:42,480 –> 00:13:43,920
خوب، بنابراین شما می توانید به آن نگاهی بیندازید،
431
00:13:43,920 –> 00:13:44,399
432
00:13:44,399 –> 00:13:46,000
کاری که ما اکنون می خواهیم انجام دهیم این
433
00:13:46,000 –> 00:13:47,680
است که برخی از تشخیص های اولیه را انجام دهیم،
434
00:13:47,680 –> 00:13:49,360
به عنوان مثال بگوییم که ما می خواستیم مواردی را
435
00:13:49,360 –> 00:13:50,000
436
00:13:50,000 –> 00:13:51,600
در داخل یک تصویر شناسایی کنیم، در واقع می توانیم آن را انجام دهیم،
437
00:13:51,600 –> 00:13:53,279
بنابراین ابتدا آنچه را که می خواهیم انجام دهیم. این کار این
438
00:13:53,279 –> 00:13:54,639
است که یک تصویر را بگیرم و من
439
00:13:54,639 –> 00:13:56,639
تصویری را که آنها در مستندات رسمی استفاده میکنند، میگیرم،
440
00:13:56,639 –> 00:13:59,040
بنابراین بیایید آن را امتحان
441
00:13:59,040 –> 00:14:00,079
کنیم تا یک متغیر جدید
442
00:14:00,079 –> 00:14:01,279
به نام تصویر ایجاد کنیم و سپس از یک
443
00:14:01,279 –> 00:14:03,839
پیوند
444
00:14:06,160 –> 00:14:09,199
عبور کنیم. باید dot com باشد،
445
00:14:09,199 –> 00:14:10,639
بنابراین آنچه من
446
00:14:10,639 –> 00:14:12,399
رفتم و نوشتم تصویر برابر است و سپس
447
00:14:12,399 –> 00:14:14,000
از یک رشته عبور کردم و دوباره این فقط
448
00:14:14,000 –> 00:14:15,760
برای تشخیص اولیه اولیه ما
449
00:14:15,760 –> 00:14:18,079
است که از مجموعه داده های کوکو خارج می شود، بنابراین
450
00:14:18,079 –> 00:14:21,120
اگر واقعاً تایپ کنید در کلاس های کوکو اجازه
451
00:14:21,120 –> 00:14:22,880
دهید این را به شما نشان دهم
452
00:14:22,880 –> 00:14:24,959
تا یک دسته از d وجود داشته باشد کلاس های متفاوتی
453
00:14:24,959 –> 00:14:26,560
که شما در داخل کوکو در دسترس
454
00:14:26,560 –> 00:14:28,160
دارید درست است، بنابراین شما یک نفر را دارید که بیایید
455
00:14:28,160 –> 00:14:30,160
روی این شخص
456
00:14:30,160 –> 00:14:32,000
457
00:14:32,000 –> 00:14:33,760
458
00:14:33,760 –> 00:14:35,839
459
00:14:35,839 –> 00:14:38,399
بزرگنمایی کنیم. چند روزی است
460
00:14:38,399 –> 00:14:39,920
و واقعاً ماشینها را
461
00:14:39,920 –> 00:14:41,440
خیلی خوب در ویدیوی ترافیک انتخاب کرده است،
462
00:14:41,440 –> 00:14:42,880
بنابراین واقعاً خیلی جالب است، بنابراین ممکن است
463
00:14:42,880 –> 00:14:44,079
464
00:14:44,079 –> 00:14:46,000
بعداً این موضوع را تغییر دهیم، اما در حال حاضر میتوانید ببینید
465
00:14:46,000 –> 00:14:47,519
که دستهای از کلاسهای مختلف
466
00:14:47,519 –> 00:14:48,399
در
467
00:14:48,399 –> 00:14:50,639
داخل این خط پایه موجود هستند مدل، بنابراین ما
468
00:14:50,639 –> 00:14:51,680
قصد داریم از آن ها استفاده کنیم
469
00:14:51,680 –> 00:14:53,279
و دوباره پیوندی به
470
00:14:53,279 –> 00:14:54,800
آن را نیز
471
00:14:54,800 –> 00:14:57,040
در توضیحات زیر قرار می
472
00:14:57,040 –> 00:14:59,040
دهم، اما فعلاً بیایید جلو برویم و برخی از تشخیص ها
473
00:14:59,040 –> 00:15:01,120
را انجام دهیم تا کاری که می توانیم انجام دهیم این است که بتوانیم آن
474
00:15:01,120 –> 00:15:02,480
تصویر را به مدل خود منتقل کنیم. بنابراین من میتوانم
475
00:15:02,480 –> 00:15:04,240
نتایج برابر با
476
00:15:04,240 –> 00:15:07,360
مدل و سپس تصویر را تایپ کنم و سپس میتوانیم
477
00:15:07,360 –> 00:15:13,839
نتایج را چاپ کنیم.
478
00:15:15,600 –> 00:15:17,199
خوب چاپ کنید، بنابراین میتوانید ببینید که ما چند
479
00:15:17,199 –> 00:15:18,720
نتیجه گرفتهایم و
480
00:15:18,720 –> 00:15:20,160
اجازه دهید در واقع به
481
00:15:20,160 –> 00:15:22,079
خط کدها یا دو خط از آن نگاهی بیندازیم. کدی را که
482
00:15:22,079 –> 00:15:23,519
نوشتیم و سپس نگاهی
483
00:15:23,519 –> 00:15:24,480
به نحوه کارکرد
484
00:15:24,480 –> 00:15:26,720
آن بیندازیم، بنابراین ما نتایج را معادل مدل نوشتیم
485
00:15:26,720 –> 00:15:27,920
و سپس از
486
00:15:27,920 –> 00:15:29,040
تصویری که میخواهیم
487
00:15:29,040 –> 00:15:30,959
شناسایی کنیم و آن تصویر فقط یک
488
00:15:30,959 –> 00:15:33,199
رشته است، عبور کردهایم. این در اینجا
489
00:15:33,199 –> 00:15:35,040
و سپس من results.print را نوشته ام و
490
00:15:35,040 –> 00:15:36,959
این در واقع
491
00:15:36,959 –> 00:15:38,959
نتایج آن مدل تشخیص شی را چاپ
492
00:15:38,959 –> 00:15:40,399
می کند، اما رندر نمی شود، بنابراین من به شما نشان خواهم داد که چگونه
493
00:15:40,399 –> 00:15:42,399
این کار را در یک ثانیه انجام دهید
494
00:15:42,399 –> 00:15:43,920
تا در واقع چه چیزی در داخل آن وجود دارد.
495
00:15:43,920 –> 00:15:45,600
این تصویر 101 است، بنابراین ما فقط
496
00:15:45,600 –> 00:15:46,560
از یک تصویر عبور کرده ایم
497
00:15:46,560 –> 00:15:48,079
و این ابعاد
498
00:15:48,079 –> 00:15:50,079
تصویر است، بنابراین 720 است، اما بیایید روی
499
00:15:50,079 –> 00:15:52,399
آن 720 در 1280 بزرگنمایی
500
00:15:52,399 –> 00:15:55,040
کنیم، دو نفر شناسایی شده است، بنابراین دو نفر
501
00:15:55,040 –> 00:15:56,560
در کلاس افراد
502
00:15:56,560 –> 00:15:58,320
و دو کراوات، بنابراین این افراد باید
503
00:15:58,320 –> 00:16:00,240
استفاده از کراوات به ما
504
00:16:00,240 –> 00:16:00,800
سرعت داده است،
505
00:16:00,800 –> 00:16:02,959
بنابراین در این مورد هزار
506
00:16:02,959 –> 00:16:04,959
و صد و هزار
507
00:16:04,959 –> 00:16:07,279
و سیصد و هفده میلی ثانیه است
508
00:16:07,279 –> 00:16:09,120
و سپس به ما زمان برای
509
00:16:09,120 –> 00:16:10,000
510
00:16:10,000 –> 00:16:12,959
استنتاج ثانیه ها در هر شکل تصویر داده می شود، بنابراین
511
00:16:12,959 –> 00:16:14,000
دوباره به شما یک دسته می دهد. o
512
00:16:14,000 –> 00:16:16,399
در حال حاضر در حال حاضر
513
00:16:16,399 –> 00:16:17,920
ما در حال رندر کردن چیزی
514
00:16:17,920 –> 00:16:19,519
نیستیم، بنابراین ممکن است بخواهیم رندرهایی انجام دهیم،
515
00:16:19,519 –> 00:16:23,839
بنابراین بیایید ادامه دهیم و این کار را انجام دهیم
516
00:16:32,160 –> 00:16:34,240
و شما بروید، بنابراین ما اکنون رفته ایم و
517
00:16:34,240 –> 00:16:36,160
کلاس های مختلف خود را ترسیم کرده ایم
518
00:16:36,160 –> 00:16:37,839
تا بتوانید ببینید در آنجا که تصویر
519
00:16:37,839 –> 00:16:39,600
تصویری از زین الدین زیدان است و می توانید
520
00:16:39,600 –> 00:16:41,120
ببینید که از بین رفته است و
521
00:16:41,120 –> 00:16:43,279
کلاس افراد را برای او شناسایی کرده است، بنابراین
522
00:16:43,279 –> 00:16:44,399
تمام راه را در بدن او
523
00:16:44,399 –> 00:16:47,279
می گذراند، همچنین کراوات او را شناسایی کرده است و دوباره
524
00:16:47,279 –> 00:16:47,680
نمی دانم
525
00:16:47,680 –> 00:16:49,519
این مرد احتمالاً یک نفر است رفیق فوتبالی،
526
00:16:49,519 –> 00:16:51,440
من احتمالاً
527
00:16:51,440 –> 00:16:52,480
در نظرات برای آن آتش میگیرم،
528
00:16:52,480 –> 00:16:54,639
اما طبقه شخص
529
00:16:54,639 –> 00:16:56,800
و همچنین مقداری از کراوات او را نیز شناسایی
530
00:16:56,800 –> 00:16:57,680
می کند،
531
00:16:57,680 –> 00:16:59,199
بنابراین بیایید در واقع این موضوع را
532
00:16:59,199 –> 00:17:01,040
کمی از بین ببریم تا در واقع از آن چه چیزی بدست آوریم
533
00:17:01,040 –> 00:17:02,160
. نتایج حاصل
534
00:17:02,160 –> 00:17:05,520
از این مدل است، بنابراین اگر من نتایج را تایپ
535
00:17:05,520 –> 00:17:07,039
کنم، می توانید ببینید که در حال حاضر این فقط
536
00:17:07,039 –> 00:17:08,880
کلاس پایه است، اما اگر ما در واقع
537
00:17:08,880 –> 00:17:11,919
نقطه و سپس tab را تایپ کنیم، مجموعه کاملی
538
00:17:11,919 –> 00:17:13,199
از اجزای مختلف
539
00:17:13,199 –> 00:17:14,959
از این وجود دارد، بنابراین می توانید ببینید که ما
540
00:17:14,959 –> 00:17:16,480
در واقع قادر به دریافت
541
00:17:16,480 –> 00:17:19,119
th مختصات e y x y و این
542
00:17:19,119 –> 00:17:20,720
همه مختصات مختلف را
543
00:17:20,720 –> 00:17:22,720
برای مدل خاص خود به ما می دهد، بنابراین می توانید ببینید
544
00:17:22,720 –> 00:17:23,919
که x y
545
00:17:23,919 –> 00:17:26,319
x y دارد، من معتقدم که این مورد ممکن است
546
00:17:26,319 –> 00:17:28,000
در واقع ماتریس اطمینان را
547
00:17:28,000 –> 00:17:28,559
نیز داشته باشد،
548
00:17:28,559 –> 00:17:30,559
اما این
549
00:17:30,559 –> 00:17:32,320
مختصات مدل خاص خود را به ما می دهد
550
00:17:32,320 –> 00:17:34,160
که چه چیز دیگری می توانیم اگر نقطه را تایپ کنیم،
551
00:17:34,160 –> 00:17:36,640
نشان می
552
00:17:36,640 –> 00:17:40,320
دهد که قرار است چه کاری انجام دهد، اوه،
553
00:17:40,320 –> 00:17:41,919
در واقع آه، آه، در واقع
554
00:17:41,919 –> 00:17:44,400
کل تصویر را به
555
00:17:44,400 –> 00:17:46,160
طور کاملاً جداگانه باز می کند، من در
556
00:17:46,160 –> 00:17:47,200
واقع با این تصویر بازی نکرده ام، اما این
557
00:17:47,200 –> 00:17:49,039
به شما این ایده را می دهد که برای آنچه ممکن است،
558
00:17:49,039 –> 00:17:53,200
میتوانید در results.render نیز تایپ کنید
559
00:17:53,840 –> 00:17:55,840
و این در واقع
560
00:17:55,840 –> 00:17:57,120
تصویر را
561
00:17:57,120 –> 00:17:58,799
از تصویر با ردیابیهایی که روی آن کشیده شده است برمیگرداند
562
00:17:58,799 –> 00:18:00,080
، بنابراین دوباره واقعاً سریع است
563
00:18:00,080 –> 00:18:02,160
که میتواند آن تصویر را واقعاً ترسیم کند،
564
00:18:02,160 –> 00:18:04,559
بنابراین آنچه را که در واقع رفتهایم و
565
00:18:04,559 –> 00:18:06,400
برای رندر کردن آن به این صورت انجام شده است، من
566
00:18:06,400 –> 00:18:08,320
ابتدا شروع کردم و مطمئن شدم که می توانیم
567
00:18:08,320 –> 00:18:10,400
با استفاده از matplotlib به
568
00:18:10,400 –> 00:18:12,559
صورت خطی رندر کنیم، بنابراین از جادوهای درون خطی استفاده کردم و
569
00:18:12,559 –> 00:18:15,280
علامت درصد را نوشتم matplotlib inl ine و
570
00:18:15,280 –> 00:18:16,240
سپس ما رفتیم و از
571
00:18:16,240 –> 00:18:18,240
تابع matplotlib i am show استفاده کردیم تا
572
00:18:18,240 –> 00:18:19,520
در واقع برویم و رندر کنیم،
573
00:18:19,520 –> 00:18:21,200
بنابراین اگر واقعاً به
574
00:18:21,200 –> 00:18:23,120
شکل این مدل
575
00:18:23,120 –> 00:18:25,200
که شکلی ندارد نگاهی بیندازید، ما اینجا چه داریم
576
00:18:25,200 –> 00:18:26,960
، پس بیایید آن را قرار دهیم. در یک آرایه numpy
577
00:18:26,960 –> 00:18:29,840
578
00:18:31,280 –> 00:18:34,240
و اگر شکل را تایپ کنیم،
579
00:18:34,559 –> 00:18:36,960
می بینید که در
580
00:18:36,960 –> 00:18:38,960
مجموعه دیگری از آرایه ها کپسوله شده است تا
581
00:18:38,960 –> 00:18:40,880
با استفاده از matplotlib رندر کنیم، باید
582
00:18:40,880 –> 00:18:43,520
اساساً این را فشرده و
583
00:18:43,520 –> 00:18:45,440
فقط این مؤلفه ها را استخراج کنیم، بنابراین ما 720
584
00:18:45,440 –> 00:18:47,520
در 1280 در 3 را می خواهیم. بنابراین اگر ما این
585
00:18:47,520 –> 00:18:49,799
تابع آرایه numpy dot را به
586
00:18:49,799 –> 00:18:51,200
numpy.squeeze تغییر
587
00:18:51,200 –> 00:18:52,880
می دهیم، می بینید که ما آن را دریافت خواهیم کرد
588
00:18:52,880 –> 00:18:54,559
و سپس برای رندر کردن آن،
589
00:18:54,559 –> 00:18:56,799
فقط می توانیم plot.imshow را که یک
590
00:18:56,799 –> 00:18:57,440
591
00:18:57,440 –> 00:19:00,080
تابع matplotlib داخلی است تایپ کنیم و از شکل نقطه خلاص شویم.
592
00:19:00,080 –> 00:19:00,640
593
00:19:00,640 –> 00:19:02,320
و این به ما این امکان را میدهد
594
00:19:02,320 –> 00:19:03,679
که تصویر خود
595
00:19:03,679 –> 00:19:05,200
را رندر کنیم تا برای اولین بار نشان دهیم که
596
00:19:05,200 –> 00:19:06,720
من فقط نمودار نقطه
597
00:19:06,720 –> 00:19:08,160
نشان میدهم و همچنین به ما اجازه میدهد
598
00:19:08,160 –> 00:19:09,679
در واقع به جلو برویم و
599
00:19:09,679 –> 00:19:11,120
تصویر خود را
600
00:19:11,120 –> 00:19:12,640
بسیار عالی ارائه دهیم، بنابراین دوباره این
601
00:19:12,640 –> 00:19:13,919
واقعاً بسیار سبک وزن است و به
602
00:19:13,919 –> 00:19:15,360
شما نشان می دهد چه چیزی از نظر تشخیص امکان پذیر است
603
00:19:15,360 –> 00:19:16,799
اکنون
604
00:19:16,799 –> 00:19:18,880
بیایید تصویری از ترافیک ماشین پیدا کنیم بنابراین
605
00:19:18,880 –> 00:19:20,640
606
00:19:20,640 –> 00:19:22,640
من شخصا فکر می کنم این بسیار جالب است بنابراین
607
00:19:22,640 –> 00:19:24,000
می توانید
608
00:19:24,000 –> 00:19:26,160
یک دسته کامل از کلاس ها را از
609
00:19:26,160 –> 00:19:27,760
ماشین ها
610
00:19:27,760 –> 00:19:29,120
استخراج
611
00:19:29,120 –> 00:19:34,559
کنید. من این یکی را نمی دانم
612
00:19:36,799 –> 00:19:40,400
و اگر ما تصویر خود را در یک برگه جدید باز کنیم،
613
00:19:40,400 –> 00:19:43,360
بنابراین فقط می خواهیم آدرس تصویر را کپی
614
00:19:43,360 –> 00:19:45,679
615
00:19:45,679 –> 00:19:48,240
کنیم، خوب است، بیایید ببینیم
616
00:19:48,240 –> 00:19:49,280
که آیا این کار می کند،
617
00:19:49,280 –> 00:19:51,600
بنابراین اگر اکنون آن پیوند را برداریم و آن را زیرنویس
618
00:19:51,600 –> 00:19:52,640
کنیم،
619
00:19:52,640 –> 00:19:55,760
اینجاست. یک لینک غول پیکر ببینید آیا درست کار می کند،
620
00:19:55,760 –> 00:19:57,520
بنابراین در واقع از بین رفته است و آن کلاس ها را شناسایی کرده است
621
00:19:57,520 –> 00:19:58,720
622
00:19:58,720 –> 00:20:00,960
و دوباره تمام کاری که من
623
00:20:00,960 –> 00:20:02,240
برای رفتن و تشخیص روی یک
624
00:20:02,240 –> 00:20:03,679
تصویر کاملاً متفاوت باید انجام دهم این است که از
625
00:20:03,679 –> 00:20:04,880
طریق پیوند جدید عبور
626
00:20:04,880 –> 00:20:06,320
کنم، بنابراین آنچه انجام دادم این است که رفتم و یک تصویر پیدا کردیم
627
00:20:06,320 –> 00:20:08,240
و فقط این
628
00:20:08,240 –> 00:20:11,360
متغیر تصویر را در اینجا به روز کردیم و با اجرای
629
00:20:11,360 –> 00:20:12,880
این خط بعدی می توانید
630
00:20:12,880 –> 00:20:14,799
نتایج برابر با model.image را ببینید، بنابراین ما رفته ایم
631
00:20:14,799 –> 00:20:16,880
و آن تصویر را دوباره به مدل خود منتقل کرده
632
00:20:16,880 –> 00:20:18,720
و نتایج را در یک
633
00:20:18,720 –> 00:20:20,640
متغیر نتایج ذخیره کرده ایم و سپس با نوشتن
634
00:20:20,640 –> 00:20:22,320
نتایج چاپ ما میتوانیم
635
00:20:22,320 –> 00:20:24,720
همه این ابردادهها را در اینجا دریافت کنیم، بنابراین میتوانید ببینید
636
00:20:24,720 –> 00:20:25,520
که شناسایی شده است
637
00:20:25,520 –> 00:20:28,880
38 ماشین ماوس عقب مانده است
638
00:20:28,880 –> 00:20:31,120
شناسایی شده است 38 ماشین و همچنین
639
00:20:31,120 –> 00:20:32,559
چهار کامیون مختلف شناسایی شده است و میتوانید ببینید
640
00:20:32,559 –> 00:20:34,240
که سرعت ما را به ما داده است، بنابراین اگر ما اکنون ما واقعاً
641
00:20:34,240 –> 00:20:35,280
سریع است.
642
00:20:35,280 –> 00:20:37,919
بروید و این تصویر را رندر کنید که چقدر
643
00:20:37,919 –> 00:20:39,520
جالب است، بنابراین در واقع
644
00:20:39,520 –> 00:20:42,000
تمام کلاس های مختلف را
645
00:20:42,000 –> 00:20:43,760
که در واقع از بین رفته اند و شناسایی شده اند را رندر می کند،
646
00:20:43,760 –> 00:20:45,440
بنابراین تمام ماشین ها را
647
00:20:45,440 –> 00:20:47,039
شناسایی می کند، کامیون ها را
648
00:20:47,039 –> 00:20:48,559
کاملاً باحال تشخیص می دهد و با
649
00:20:48,559 –> 00:20:50,320
فواصل اطمینان معقول تا آنجا به
650
00:20:50,320 –> 00:20:51,039
651
00:20:51,039 –> 00:20:52,559
آنجا می رسد. این شخصاً شبیه یکی
652
00:20:52,559 –> 00:20:53,840
از جالبترین مدلهایی است که من
653
00:20:53,840 –> 00:20:55,280
با آن کار کردهام و دوباره میتوانیم این تابع
654
00:20:55,280 –> 00:20:56,720
را در اینجا اجرا کنیم، این فقط یک کپی
655
00:20:56,720 –> 00:20:57,760
از آن است، اما به
656
00:20:57,760 –> 00:20:59,760
نوعی توضیح میدهد که چگونه کار میکند، اما به
657
00:20:59,760 –> 00:21:00,960
شما نشان میدهد که چگونه میتوانید بسازید.
658
00:21:00,960 –> 00:21:02,799
تشخیصهای پایه با استفاده از این
659
00:21:02,799 –> 00:21:04,480
مدل خاص بسیار
660
00:21:04,480 –> 00:21:06,400
جالب است، اکنون میتوانیم این کار را با
661
00:21:06,400 –> 00:21:08,799
opencv نیز انجام دهیم و آن را در زمان واقعی انجام
662
00:21:08,799 –> 00:21:11,840
دهیم، بنابراین بیایید ادامه دهیم و این کار را انجام دهیم،
663
00:21:11,840 –> 00:21:13,280
بنابراین احتمالاً باید بگویم که این کار است
664
00:21:13,280 –> 00:21:14,720
p سه اکنون انجام شد، بنابراین ما رفتیم
665
00:21:14,720 –> 00:21:16,400
و تعدادی تشخیص اولیه
666
00:21:16,400 –> 00:21:17,919
انجام دادیم، بنابراین ما رفتیم و تصاویر خود را گرفتیم،
667
00:21:17,919 –> 00:21:19,520
با استفاده از تصویری که رفته بودیم، برخی از تشخیصها را با استفاده از
668
00:21:19,520 –> 00:21:21,120
تصویری که رفته بودیم و آنها را نیز رندر کردیم،
669
00:21:21,120 –> 00:21:22,559
اما اکنون کاری که میخواهیم انجام دهیم این است
670
00:21:22,559 –> 00:21:23,840
که به مرحله 4
671
00:21:23,840 –> 00:21:25,679
که در آن اکنون می خواهیم این کار را در زمان واقعی
672
00:21:25,679 –> 00:21:27,600
انجام دهیم برای این کار از یک حلقه opencv بسیار
673
00:21:27,600 –> 00:21:28,640
رایج استفاده
674
00:21:28,640 –> 00:21:30,720
می کنیم که در آن واقعاً می توانیم به
675
00:21:30,720 –> 00:21:32,480
تصویر از وب کم خود دسترسی پیدا کنیم و
676
00:21:32,480 –> 00:21:34,080
این کار را با مدل پایه خود انجام خواهیم داد. برای
677
00:21:34,080 –> 00:21:45,840
شروع، اجازه دهید این کار را انجام دهیم،
678
00:21:56,320 –> 00:21:59,360
بنابراین آنچه که من رفتم و در آنجا نوشتم این است که
679
00:21:59,360 –> 00:22:01,520
اگر تا به حال هر یک از آموزش های استاندارد بینایی کامپیوتر من را تماشا کرده اید، این
680
00:22:01,520 –> 00:22:03,440
681
00:22:03,440 –> 00:22:05,039
برای شما بسیار آشنا به نظر می
682
00:22:05,039 –> 00:22:07,440
رسد، فقط دسترسی به وب کم ما است و
683
00:22:07,440 –> 00:22:09,520
اجازه می دهد ما میتوانیم
684
00:22:09,520 –> 00:22:12,559
در زمان واقعی ردیابی کنیم، بنابراین آنچه من نوشتم این است
685
00:22:12,559 –> 00:22:15,280
که cap برابر است با ضبط ویدیوی نقطهای cv2 و
686
00:22:15,280 –> 00:22:17,760
این فقط دسترسی به وبکم ما است
687
00:22:17,760 –> 00:22:19,440
زیرا وبکم من دستگاه ضبط ویدیو
688
00:22:19,440 –> 00:22:21,280
صفر است، اما دوباره اگر
689
00:22:21,280 –> 00:22:22,720
فید بلادرنگ دریافت نکردید، فقط بازی کنید با
690
00:22:22,720 –> 00:22:23,919
این کار ممکن است کار کند
691
00:22:23,919 –> 00:22:25,600
یا ممکن است لازم باشد آن را از صفر تغییر دهید
692
00:22:25,600 –> 00:22:27,200
به یک به دو، بنابراین
693
00:22:27,200 –> 00:22:29,280
در مک من، دستگاه ضبط ویدیوی دو
694
00:22:29,280 –> 00:22:30,960
در دستگاه ویندوز من، دستگاه ضبط ویدیوی
695
00:22:30,960 –> 00:22:32,000
یک است
696
00:22:32,000 –> 00:22:33,440
و سپس آنچه که اساساً میگوییم این است
697
00:22:33,440 –> 00:22:34,799
که از طریق فید
698
00:22:34,799 –> 00:22:36,320
وبکم خود حلقه میزنیم، بنابراین آنچه را که ابتدا
699
00:22:36,320 –> 00:22:38,159
بررسی میکنیم این است که آیا دستگاه ضبط ما هنوز باز است یا نه
700
00:22:38,159 –> 00:22:40,880
، بنابراین در حالی که cap
701
00:22:40,880 –> 00:22:42,080
باز است
702
00:22:42,080 –> 00:22:43,600
و سپس ما در حال خواندن عکس خود هستیم بنابراین
703
00:22:43,600 –> 00:22:45,840
cap.read و
704
00:22:45,840 –> 00:22:47,280
متغیرها را
705
00:22:47,280 –> 00:22:49,679
از آن دستگاه ضبط استخراج یا باز می کنیم، بنابراین فریم کامای قرمز
706
00:22:49,679 –> 00:22:51,760
برابر با cap.read
707
00:22:51,760 –> 00:22:52,799
و چه چیزی است. شما در واقع
708
00:22:52,799 –> 00:22:55,360
یک مقدار بازگشتی به اضافه قاب
709
00:22:55,360 –> 00:22:57,280
یا تصویر از وب کم شما است
710
00:22:57,280 –> 00:22:58,919
و سپس آنچه من نوشته ام
711
00:22:58,919 –> 00:23:01,200
cv2.iamshow است که از
712
00:23:01,200 –> 00:23:02,960
نام فریم عبور می کند، بنابراین این زمانی است که شما در واقع
713
00:23:02,960 –> 00:23:04,960
می روید و شما را رندر می کنید. یک پاپآپ کوچک ظاهر میشود
714
00:23:04,960 –> 00:23:07,280
و نوار بالایی به نام
715
00:23:07,280 –> 00:23:08,960
هر چیزی که در اینجا عبور میکنید نامگذاری میشود، بنابراین اگر میخواهم
716
00:23:08,960 –> 00:23:11,360
به آن زرد v5 یا ultra lytics
717
00:23:11,360 –> 00:23:11,760
یا
718
00:23:11,760 –> 00:23:13,679
تشخیص خوابآلودگی نامیده شود، تنها کاری که باید انجام
719
00:23:13,679 –> 00:23:15,520
دهید این است که این متغیر را در اینجا
720
00:23:15,520 –> 00:23:17,039
تغییر دهید و تغییر میکند. چه چیزی
721
00:23:17,039 –> 00:23:18,480
پس از آن استدلال بعدی که ما ارائه شده است «
722
00:23:18,480 –> 00:23:20,080
از فریم عبور کردهایم»، پس
723
00:23:20,080 –> 00:23:22,320
هر چیزی که در زیر آن قرار دارد، مربوط به
724
00:23:22,320 –> 00:23:24,400
خارج شدن از این
725
00:23:24,400 –> 00:23:26,240
726
00:23:26,240 –> 00:23:28,240
قاب است.
727
00:23:28,240 –> 00:23:29,679
728
00:23:29,679 –> 00:23:32,000
این کار را انجام دهید،
729
00:23:32,000 –> 00:23:32,799
ما بررسی می کنیم که
730
00:23:32,799 –> 00:23:36,960
آیا cv2.weightkey10 و 0xff
731
00:23:36,960 –> 00:23:38,880
برابر است با دستور q، بنابراین این چیزی است
732
00:23:38,880 –> 00:23:41,120
که برای انجام آن بررسی نوشته
733
00:23:41,120 –> 00:23:43,039
ایم و اگر آن بررسی
734
00:23:43,039 –> 00:23:44,240
بگذرد، از این
735
00:23:44,240 –> 00:23:45,679
حلقه خارج می شویم، بنابراین می رویم برای خارج شدن از این
736
00:23:45,679 –> 00:23:47,120
حلقه while و سپس
737
00:23:47,120 –> 00:23:48,559
کمی پاکسازی انجام می دهیم،
738
00:23:48,559 –> 00:23:50,799
بنابراین دستگاه ضبط خود را آزاد می کنیم، بنابراین وب کم خود را آزاد کنید
739
00:23:50,799 –> 00:23:53,120
و همچنین تمام پنجره ها را از بین
740
00:23:53,120 –> 00:23:54,320
می بریم تا ببینید که ما. یک
741
00:23:54,320 –> 00:23:55,679
پاپآپ کوچک دریافت میکنیم که آن را از بین میبریم
742
00:23:55,679 –> 00:23:56,400
، پس
743
00:23:56,400 –> 00:23:58,000
بیایید ادامه دهیم و این را اجرا کنیم و
744
00:23:58,000 –> 00:23:59,760
این در واقع شناسایی نمیکند،
745
00:23:59,760 –> 00:24:00,799
هنوز این
746
00:24:00,799 –> 00:24:03,200
فقط دسترسی به فید زمان واقعی است، بنابراین
747
00:24:03,200 –> 00:24:05,120
بیایید این را اجرا
748
00:24:05,120 –> 00:24:08,240
کنیم مطمئن شویم کار میکند
749
00:24:11,919 –> 00:24:13,520
ما باید یک پاپ آپ داشته باشیم تا
750
00:24:13,520 –> 00:24:16,960
بتوانیم سرم را ببینید
751
00:24:17,279 –> 00:24:19,200
تا مشکلی پیش نیاید بنابراین، در حال حاضر همه چیز
752
00:24:19,200 –> 00:24:20,640
خوب و خوب به نظر می رسد،
753
00:24:20,640 –> 00:24:21,919
اما آنچه که ما در واقع می خواهیم انجام دهیم این است که
754
00:24:21,919 –> 00:24:23,600
با استفاده از مدل yolo به درستی برخی از تشخیص ها را انجام دهیم،
755
00:24:23,600 –> 00:24:25,200
بنابراین بیایید از این کار خارج شویم
756
00:24:25,200 –> 00:24:26,720
و این کد را به روز کنیم تا
757
00:24:26,720 –> 00:24:28,000
فقط چند خط وجود داشته باشد که باید به ترتیب به
758
00:24:28,000 –> 00:24:33,840
روز رسانی کنیم. برای اینکه تشخیصهایمان
759
00:24:37,279 –> 00:24:39,840
درست شود، بنابراین اولین تغییری وجود دارد
760
00:24:39,840 –> 00:24:40,720
که انجام دادهایم و
761
00:24:40,720 –> 00:24:42,320
ابتدا آنچه را که واقعاً
762
00:24:42,320 –> 00:24:44,799
میخواهیم انجام دهیم و انجام میدهیم این است که برخی تشخیصها را انجام دهیم،
763
00:24:44,799 –> 00:24:46,320
بنابراین برای انجام آن،
764
00:24:46,320 –> 00:24:48,400
از مدل yolo خود استفاده میکنیم. و ما
765
00:24:48,400 –> 00:24:49,520
از فریمی
766
00:24:49,520 –> 00:24:51,600
که از وبکم دریافت میکنیم عبور میکنیم، بنابراین به یاد داشته باشید
767
00:24:51,600 –> 00:24:53,600
که وقتی cap.read را اجرا میکنیم، اکنون
768
00:24:53,600 –> 00:24:54,799
مقدار بازگشتی
769
00:24:54,799 –> 00:24:57,200
به اضافه فریم خود را برمیگردانیم تا
770
00:24:57,200 –> 00:24:58,960
تشخیص دهیم آنچه باید انجام دهیم پاس دادن است.
771
00:24:58,960 –> 00:24:59,679
آن
772
00:24:59,679 –> 00:25:01,200
فریم مدل خود را دریافت می کنیم و ما نتایج خود را به دست می آوریم
773
00:25:01,200 –> 00:25:03,520
که تفاوتی با
774
00:25:03,520 –> 00:25:06,480
آنچه که اکنون در اینجا آورده ایم ندارد.
775
00:25:06,480 –> 00:25:07,919
776
00:25:07,919 –> 00:25:10,720
777
00:25:10,720 –> 00:25:12,400
آن
778
00:25:12,400 –> 00:25:13,200
نتایج،
779
00:25:13,200 –> 00:25:14,799
پس بیایید این کار را انجام دهیم، بنابراین کاری که میخواهیم
780
00:25:14,799 –> 00:25:16,960
انجام دهیم اجرای res است نقطههای
781
00:25:16,960 –> 00:25:20,080
ults رندر میشوند و ما آن را
782
00:25:20,080 –> 00:25:22,159
در داخل تابع numpy خود قرار میدهیم که
783
00:25:22,159 –> 00:25:26,240
آن را فشرده میکند، بنابراین
784
00:25:27,520 –> 00:25:28,880
mp.squeeze بیایید مطمئن شویم که به اندازه کافی
785
00:25:28,880 –> 00:25:31,039
براکت گرفتهایم، بله خوب است، بنابراین
786
00:25:31,039 –> 00:25:33,120
این تنها تغییر است، بنابراین قبل از اینجا چیزی که
787
00:25:33,120 –> 00:25:34,799
داشتیم اجازه دهید فقط آن را برش دهم تا
788
00:25:34,799 –> 00:25:35,919
به
789
00:25:35,919 –> 00:25:37,440
جای آن قاب داشته باشیم، کاری که
790
00:25:37,440 –> 00:25:39,760
میخواهیم انجام دهیم این است که از روش results.render استفاده میکنیم،
791
00:25:39,760 –> 00:25:40,960
زیرا به یاد داشته باشید که
792
00:25:40,960 –> 00:25:43,360
روش results.render فقط
793
00:25:43,360 –> 00:25:46,960
آرایه تصویر را برمیگرداند، بنابراین اگر تایپ کنم نتایج
794
00:25:46,960 –> 00:25:49,600
نقطه رندر بنابراین چیزی که ما
795
00:25:49,600 –> 00:25:50,320
از
796
00:25:50,320 –> 00:25:52,559
این نتیجه می گیریم آرایه numpy یا نمایش
797
00:25:52,559 –> 00:25:53,919
آرایه
798
00:25:53,919 –> 00:25:56,080
از تصویر است تا در واقع
799
00:25:56,080 –> 00:25:57,360
آن را رندر کنیم، در واقع باید آن را
800
00:25:57,360 –> 00:25:58,880
به یک تابع رندر
801
00:25:58,880 –> 00:26:00,320
در این مورد خاص که می خواهیم منتقل کنیم.
802
00:26:00,320 –> 00:26:02,960
برای استفاده از cv2.iamshow برای انجام این کار
803
00:26:02,960 –> 00:26:04,720
و به یاد داشته باشید که باید نتایج را فشرده
804
00:26:04,720 –> 00:26:06,400
کنیم، بنابراین باید آن را از
805
00:26:06,400 –> 00:26:06,960
آن
806
00:26:06,960 –> 00:26:09,679
آرایه بزرگ استخراج کنیم و اگر اکنون برویم و این را اجرا کنیم،
807
00:26:09,679 –> 00:26:10,159
808
00:26:10,159 –> 00:26:13,919
باید نتایجی به دست آوریم، پس بیایید آن را امتحان کنیم،
809
00:26:17,440 –> 00:26:19,279
خوب است، اگر شما یک پاپ آپ کوچک دریافت کنید و
810
00:26:19,279 –> 00:26:21,520
کاملاً خوب بسته می شود فقط ادامه دهید
811
00:26:21,520 –> 00:26:25,840
و دوباره آن را باحال اجرا کنید
812
00:26:27,679 –> 00:26:29,200
تا بتوانید ببینید که خیلی خوب کار می
813
00:26:29,200 –> 00:26:30,480
کند، آن را به عنوان یک تلفن همراه تشخیص می دهد،
814
00:26:30,480 –> 00:26:31,440
اما اگر من
815
00:26:31,440 –> 00:26:33,360
واقعاً یک تلفن همراه را پرتاب کنم، می توانید
816
00:26:33,360 –> 00:26:35,279
ببینید که همانطور که تلفن همراه روی
817
00:26:35,279 –> 00:26:35,679
818
00:26:35,679 –> 00:26:38,400
هدفون انجام می دهد، کار می کند چیست؟
819
00:26:38,400 –> 00:26:40,400
میگویم برنامهای از راه دور
820
00:26:40,400 –> 00:26:41,760
را صدا میزند و نمیخواهد این کار را انجام دهد، من
821
00:26:41,760 –> 00:26:43,520
سعی میکنم چیز دیگری پیدا کنم،
822
00:26:43,520 –> 00:26:46,640
اوه، در مورد iPad چه
823
00:26:47,760 –> 00:26:49,679
میگویم که ipad یک صندلی است که خیلی
824
00:26:49,679 –> 00:26:51,840
خوب است، اگر صفحه سبز را پایین بیاوریم
825
00:26:51,840 –> 00:26:54,400
826
00:26:55,760 –> 00:26:58,080
تا بتوانید آن را ببینید. شناسایی یک سری
827
00:26:58,080 –> 00:26:59,200
چیز در پسزمینه، بنابراین
828
00:26:59,200 –> 00:27:01,679
مبل را تشخیص
829
00:27:01,679 –> 00:27:03,279
میدهد، تشخیص میدهد که من تمام صندلیها را روی
830
00:27:03,279 –> 00:27:05,120
میز ناهار خوری خود دارم، حتی
831
00:27:05,120 –> 00:27:06,559
گیاه گلدانی را در اینجا تشخیص میدهد که بسیار
832
00:27:06,559 –> 00:27:08,240
جالب است،
833
00:27:08,240 –> 00:27:10,080
بنابراین میتوانید آن را
834
00:27:10,080 –> 00:27:11,200
خیلی سریع ببینید. اکنون میتوانیم آن را
835
00:27:11,200 –> 00:27:12,960
اجرا و آزمایش
836
00:27:12,960 –> 00:27:14,640
کنیم، ما فقط
837
00:27:14,640 –> 00:27:16,320
با استفاده از زمان واقعی آن را انجام میدهیم و
838
00:27:16,320 –> 00:27:18,159
با استفاده از یک مدل دقیق انجام نمیدهیم، بنابراین ممکن است
839
00:27:18,159 –> 00:27:20,000
بخواهیم این را کمی بهبود بخشیم
840
00:27:20,000 –> 00:27:21,679
و در واقع خوب باشیم. کوک کن و
841
00:27:21,679 –> 00:27:23,279
چیزی بساز در واقع خاص است، اما قبل
842
00:27:23,279 –> 00:27:24,559
از انجام این کار، می خواهم یک چیز دیگر را به شما نشان دهم،
843
00:27:24,559 –> 00:27:25,120
844
00:27:25,120 –> 00:27:27,200
بنابراین در حال حاضر ما آن را با استفاده از وب کم خود انجام می دهیم،
845
00:27:27,200 –> 00:27:29,279
اما اگر می خواهید این کار را
846
00:27:29,279 –> 00:27:31,039
با استفاده از یک ویدیو انجام دهید، اجازه دهید من به شما نشان دهم که چگونه
847
00:27:31,039 –> 00:27:33,360
این کار را انجام دهید
848
00:27:33,360 –> 00:27:35,679
تا از این قاب خارج شوید
849
00:27:35,679 –> 00:27:37,039
تنها کاری که باید انجام دهید این است که q را روی
850
00:27:37,039 –> 00:27:38,320
صفحه کلید خود بزنید و حالا آن را ببندید
851
00:27:38,320 –> 00:27:39,279
،
852
00:27:39,279 –> 00:27:41,279
مثلاً میخواهیم این کار را
853
00:27:41,279 –> 00:27:43,440
با استفاده از یک ویدیو انجام دهیم، حالا من یک ویدیو
854
00:27:43,440 –> 00:27:45,440
از دادههای ترافیکی دارم که در جستجوی آن بودم. اخیراً
855
00:27:45,440 –> 00:27:46,080
856
00:27:46,080 –> 00:27:47,440
اجازه دهید به شما نشان دهم که چگونه به نظر می رسد، بنابراین به
857
00:27:47,440 –> 00:27:50,240
آن ترافیک می
858
00:27:52,960 –> 00:27:55,200
گویند و به طرز مسخره ای کوچک است،
859
00:27:55,200 –> 00:27:57,279
860
00:27:57,279 –> 00:27:58,799
بنابراین می توانید ببینید که فقط یک تصویر از یک
861
00:27:58,799 –> 00:28:00,960
دسته ماشین است،
862
00:28:00,960 –> 00:28:03,039
حالا بگویید مثلاً ما می خواستیم
863
00:28:03,039 –> 00:28:04,720
تشخیص شی خود را در آن ویدیو انجام دهیم که چگونه
864
00:28:04,720 –> 00:28:06,559
آیا میخواهیم این کار را انجام دهیم،
865
00:28:06,559 –> 00:28:09,919
بنابراین نام فایل ترافیک.mp4 نامیده میشود،
866
00:28:09,919 –> 00:28:11,120
بنابراین تنها کاری که باید انجام
867
00:28:11,120 –> 00:28:13,120
دهیم تا بتوانیم یک ویدیو را
868
00:28:13,120 –> 00:28:14,960
بهجای دوربین خارج از وبکم خود شناسایی کنیم
869
00:28:14,960 –> 00:28:16,880
، این است که این مقدار را در اینجا تغییر دهیم، بنابراین اگر من
870
00:28:16,880 –> 00:28:19,120
871
00:28:19,120 –> 00:28:22,720
نقطه ترافیک mp4 را تایپ کنم، شما. اکنون میخواهم
872
00:28:22,720 –> 00:28:23,520
873
00:28:23,520 –> 00:28:25,440
از آن ویدیو ردیابی دریافت کنم، من پاپآپ i را دارم t
874
00:28:25,440 –> 00:28:27,120
بسته است، بیایید دوباره آن را اجرا کنیم
875
00:28:27,120 –> 00:28:29,279
تا بتوانید ببینید که اکنون با ویدیوی ما باز می شود
876
00:28:29,279 –> 00:28:30,240
877
00:28:30,240 –> 00:28:32,240
و می توانید همه آن تشخیص ها را در
878
00:28:32,240 –> 00:28:33,679
زمان واقعی مشاهده کنید و ببینید چقدر سریع است.
879
00:28:33,679 –> 00:28:34,240
880
00:28:34,240 –> 00:28:36,559
881
00:28:36,559 –> 00:28:38,480
882
00:28:38,480 –> 00:28:40,240
اگرچه ممکن است مدل رسمی yolo
883
00:28:40,240 –> 00:28:42,000
v4 نباشد، به نظر می رسد که چقدر خوب است،
884
00:28:42,000 –> 00:28:42,640
885
00:28:42,640 –> 00:28:44,720
همه ماشین های موجود در قاب را تشخیص می دهد و به طرز
886
00:28:44,720 –> 00:28:47,279
مضحکی سریع است و همچنین
887
00:28:47,279 –> 00:28:48,960
بسیار عالی است، بنابراین منظورم این است که می توانید ببینید
888
00:28:48,960 –> 00:28:51,440
که
889
00:28:51,440 –> 00:28:52,320
با این بسیار
890
00:28:52,320 –> 00:28:54,080
درست، امکانات زیادی وجود دارد. اکنون فقط روی مدل پایه کوکو آموزش داده شده
891
00:28:54,080 –> 00:28:56,480
است، اما اگر بخواهیم
892
00:28:56,480 –> 00:28:58,640
برویم و این را روی چیز دیگری آموزش دهیم چه اتفاقی میافتد،
893
00:28:58,640 –> 00:28:59,200
894
00:28:59,200 –> 00:29:00,640
مثلاً بگوییم میخواستیم برویم و
895
00:29:00,640 –> 00:29:02,159
مدل خود را دقیق تنظیم کنیم، قطعاً میتوانید این
896
00:29:02,159 –> 00:29:03,200
کار را نیز انجام دهید،
897
00:29:03,200 –> 00:29:04,799
اما در حال حاضر فقط نگاه کنید با سرعت
898
00:29:04,799 –> 00:29:08,559
این موضوع، منظورم این است که خیلی خوب است، درست است
899
00:29:10,880 –> 00:29:13,120
که شما این را کمی بزرگتر می کنید،
900
00:29:13,120 –> 00:29:15,679
نمی خواهد بزرگتر شود،
901
00:29:25,600 –> 00:29:27,760
نه خیلی کهنه، درست است به اندازه کافی خوب است
902
00:29:27,760 –> 00:29:28,960
به آن نگاه کنید، اجازه دهید آن را
903
00:29:28,960 –> 00:29:29,279
ببندیم،
904
00:29:29,279 –> 00:29:31,360
پس خوب است تا چه کار کنیم زیر است
905
00:29:31,360 –> 00:29:34,080
این را بردارید و آن را به عنوان صفر رها کنید،
906
00:29:34,080 –> 00:29:36,880
بنابراین مرحله چهار اکنون انجام شده است، بنابراین ما
907
00:29:36,880 –> 00:29:37,200
اکنون
908
00:29:37,200 –> 00:29:38,960
رفته ایم و تشخیص زمان واقعی خود را انجام داده ایم،
909
00:29:38,960 –> 00:29:40,399
بنابراین اگر به
910
00:29:40,399 –> 00:29:42,000
کارهایی که تاکنون انجام داده ایم نگاهی بیندازیم، به نوعی سرعت آن را
911
00:29:42,000 –> 00:29:42,559
طی
912
00:29:42,559 –> 00:29:44,320
کرده ایم.
913
00:29:44,320 –> 00:29:46,000
ما رفتیم و وابستگیهای خود را نصب و وارد کردیم، رفتیم و
914
00:29:46,000 –> 00:29:47,840
مدل خود را از torchhub بارگذاری
915
00:29:47,840 –> 00:29:49,919
کردیم، سپس رفتیم و برخی از تشخیصها را
916
00:29:49,919 –> 00:29:51,200
به یاد آوردیم که همه چیزهایی را که برای تشخیص با تصاویر نیاز داشتیم به یاد بیاوریم،
917
00:29:51,200 –> 00:29:53,039
احتمالاً
918
00:29:53,039 –> 00:29:54,320
این را با
919
00:29:54,320 –> 00:29:57,760
تصاویر بهروزرسانی کردیم، بنابراین کاری که ما بعداً رفتیم و انجام دادیم این بود
920
00:29:57,760 –> 00:29:59,440
که یک دستگاه را گرفتیم. آن را به مدل خود پیوند دهید
921
00:29:59,440 –> 00:30:01,200
و توانستیم
922
00:30:01,200 –> 00:30:03,120
شناسایی کنیم و سپس
923
00:30:03,120 –> 00:30:04,399
با یک ویدیو
924
00:30:04,399 –> 00:30:06,799
و وبکم خود تشخیصهای بیدرنگ انجام دادیم، اکنون آنچه میخواهیم
925
00:30:06,799 –> 00:30:08,159
ادامه دهیم و انجام دهیم این است که در واقع
926
00:30:08,159 –> 00:30:10,480
یک مدل سفارشی را آموزش دهیم
927
00:30:10,480 –> 00:30:12,720
تا اینکه فقط روی آن آموزش داده شود. کلاسهای کوکو
928
00:30:12,720 –> 00:30:14,159
میگویند برای مثال ما میخواستیم
929
00:30:14,159 –> 00:30:16,640
با استفاده از برچسبهای سفارشی برویم و این را آموزش
930
00:30:16,640 –> 00:30:18,080
دهیم، کاری که میخواهیم ادامه دهیم و انجام دهیم این است که
931
00:30:18,080 –> 00:30:20,960
اکنون آشکارساز خوابآلودگی خود را آموزش دهیم،
932
00:30:20,960 –> 00:30:24,559
بنابراین اولین کاری که باید انجام دهیم این
933
00:30:24,559 –> 00:30:26,559
است که تعدادی عکس جمعآوری کنیم و سپس
934
00:30:26,559 –> 00:30:28,799
آنها را برچسب گذاری کنیم. پس من میرم ng برای کپی کردن این حلقه در
935
00:30:28,799 –> 00:30:29,760
اینجا
936
00:30:29,760 –> 00:30:31,600
و ما تقریباً از
937
00:30:31,600 –> 00:30:33,039
همین حلقه استفاده می کنیم تا جلو
938
00:30:33,039 –> 00:30:35,279
برویم و تصاویر خشک و غیر خواب آلود خود را جمع آوری کنیم،
939
00:30:35,279 –> 00:30:37,440
بنابراین برای شروع با
940
00:30:37,440 –> 00:30:39,440
آن باید چند
941
00:30:39,440 –> 00:30:40,880
وابستگی اضافی وارد کنیم، پس بیایید
942
00:30:40,880 –> 00:30:43,679
ادامه دهید و این کار را خوب انجام دهید،
943
00:30:44,799 –> 00:30:47,039
بنابراین من رفتم و سه
944
00:30:47,039 –> 00:30:48,559
خط مختلف کد را در آنجا نوشتم، بنابراین
945
00:30:48,559 –> 00:30:50,000
ابتدا آنچه را که نوشته ایم
946
00:30:50,000 –> 00:30:53,679
import uuid است، بنابراین import uuid
947
00:30:53,679 –> 00:30:55,120
و سپس ما رفته ایم و وارد
948
00:30:55,120 –> 00:30:56,720
کرده ایم و از آن استفاده می کنیم. uid برای ایجاد یک
949
00:30:56,720 –> 00:30:58,159
شناسه
950
00:30:58,159 –> 00:31:01,600
منحصربهفرد شناسه منحصربهفرد استفاده میشود و
951
00:31:01,600 –> 00:31:03,039
این برای
952
00:31:03,039 –> 00:31:04,480
نامگذاری واقعی تصاویر استفاده میشود، بنابراین ما در واقع
953
00:31:04,480 –> 00:31:06,640
تصاویر را در زمان واقعی از خودم جمعآوری میکنیم
954
00:31:06,640 –> 00:31:08,000
تا بروم و این تشخیص خواب آلودگی را انجام
955
00:31:08,000 –> 00:31:09,120
956
00:31:09,120 –> 00:31:10,720
دهیم، بنابراین ما این کار را انجام میدهیم و سپس
957
00:31:10,720 –> 00:31:12,880
از Import OS استفاده میکنیم تا در واقع
958
00:31:12,880 –> 00:31:14,640
مسیرهای فایلمان را افزایش دهیم یا با آن کار کنیم،
959
00:31:14,640 –> 00:31:16,640
فقط انجام این کار را بسیار تمیزتر میکند
960
00:31:16,640 –> 00:31:18,399
و سپس از زمان استفاده میکنیم
961
00:31:18,399 –> 00:31:20,240
تا کمی بین هر یک
962
00:31:20,240 –> 00:31:21,760
از تصاویر فاصله داشته باشیم. ما در واقع
963
00:31:21,760 –> 00:31:22,960
964
00:31:22,960 –> 00:31:25,200
اکنون به جمع آوری آنچه می توانیم ادامه می دهیم در واقع انجام این کار این است که
965
00:31:25,200 –> 00:31:26,720
این کد را در اینجا به روز کنید تا نه تنها
966
00:31:26,720 –> 00:31:28,880
فید زمان واقعی را ضبط کنید، بلکه
967
00:31:28,880 –> 00:31:30,080
تصاویر را
968
00:31:30,080 –> 00:31:32,559
برای کلاس های مختلف خود ذخیره کنید، بنابراین بیایید ادامه دهیم
969
00:31:32,559 –> 00:31:33,360
970
00:31:33,360 –> 00:31:34,960
و این به روز رسانی ها را انجام دهیم در واقع شما می دانید
971
00:31:34,960 –> 00:31:36,320
که اگر این را از ابتدا بنویسیم احتمالاً چه چیزی تمیزتر می شود.
972
00:31:36,320 –> 00:31:37,840
ترجیح میدهم
973
00:31:37,840 –> 00:31:39,039
این کار را از ابتدا انجام دهیم،
974
00:31:39,039 –> 00:31:39,760
975
00:31:39,760 –> 00:31:42,240
پس بیایید ادامه دهیم و این کار را انجام دهیم، اجازه دهید
976
00:31:42,240 –> 00:31:43,919
چند سلول در زیر اضافه کنیم تا بتوانیم
977
00:31:43,919 –> 00:31:46,320
این کار
978
00:31:46,320 –> 00:31:49,120
را انجام
979
00:31:57,760 –> 00:32:00,559
دهیم.
980
00:32:00,559 –> 00:32:02,799
اکنون باید سه متغیر کلیدی را تعریف کنیم،
981
00:32:02,799 –> 00:32:04,159
اگر
982
00:32:04,159 –> 00:32:05,919
دوره کامل تشخیص شی تنسورفلو
983
00:32:05,919 –> 00:32:07,840
را که من
984
00:32:07,840 –> 00:32:08,960
ساختهام تماشا کردهاید، واقعاً
985
00:32:08,960 –> 00:32:10,399
مشابه خواهد بود، بنابراین ابتدا کاری که میخواهیم
986
00:32:10,399 –> 00:32:12,320
انجام دهیم این است که یک مسیر تصویر ایجاد کنیم و اینجا
987
00:32:12,320 –> 00:32:13,200
جایی است که ما انجام میدهیم. میخواهیم
988
00:32:13,200 –> 00:32:16,000
تصاویر یا دادههای تصویر خود را ذخیره کنیم
989
00:32:16,000 –> 00:32:17,039
990
00:32:17,039 –> 00:32:18,320
و برای انجام این کار،
991
00:32:18,320 –> 00:32:21,039
مسیر زیر خط تصاویر را با مسیر نقطهای os نوشتهام
992
00:32:21,039 –> 00:32:23,519
و سپس
993
00:32:23,519 –> 00:32:24,320
مشخص کردهام
994
00:32:24,320 –> 00:32:25,919
که میخواهیم پوشه بالای ما
995
00:32:25,919 –> 00:32:28,000
چیست و چه چیزی میخواهیم. پوشه بعدی به b
996
00:32:28,000 –> 00:32:29,919
بنابراین، اساساً همه تصاویر ما
997
00:32:29,919 –> 00:32:32,080
در داخل پوشه ای به نام
998
00:32:32,080 –> 00:32:33,760
تصاویر اسلش داده به جلو ذخیره می شوند، بنابراین در واقع
999
00:32:33,760 –> 00:32:35,760
زیرپوشه ای از پوشه داده ما است
1000
00:32:35,760 –> 00:32:36,480
1001
00:32:36,480 –> 00:32:37,840
وای که متفاوت بود،
1002
00:32:37,840 –> 00:32:39,840
به این شکل خواهد بود، بنابراین داده ها به جلو،
1003
00:32:39,840 –> 00:32:40,720
تصاویر را
1004
00:32:40,720 –> 00:32:44,640
مانند آن julio اسلش می کنند. و سپس
1005
00:32:44,640 –> 00:32:45,600
1006
00:32:45,600 –> 00:32:47,120
دو نوع مختلف تصویر را جمع آوری می کنیم، بنابراین
1007
00:32:47,120 –> 00:32:48,480
دو کلاس خواهیم داشت که
1008
00:32:48,480 –> 00:32:50,240
با آنها کار می کنیم،
1009
00:32:50,240 –> 00:32:53,120
بنابراین اساساً من زنده به نظر می رسم و
1010
00:32:53,120 –> 00:32:54,159
روی آن به نظر می رسم و
1011
00:32:54,159 –> 00:32:55,919
نه آنچه را که دارم. به نظر میرسم یا احساس
1012
00:32:55,919 –> 00:32:57,840
میکنم الان و بعد خوابآلود به نظر میرسم،
1013
00:32:57,840 –> 00:32:59,600
مثل اینکه کمی پایین و ژولیده به نظر میرسم
1014
00:32:59,600 –> 00:33:01,279
و شاید چشمهایم را میبندم
1015
00:33:01,279 –> 00:33:03,200
و سپس پارامتر سوم یا
1016
00:33:03,200 –> 00:33:04,720
متغیر سومی که وارد آن شدهام و
1017
00:33:04,720 –> 00:33:06,159
در واقع اجازه دهید به برچسبها نگاهی بیندازیم
1018
00:33:06,159 –> 00:33:07,919
. برای انجام این کار، برچسبها را
1019
00:33:07,919 –> 00:33:09,600
برابر نوشتهام و سپس در داخل
1020
00:33:09,600 –> 00:33:11,519
پرانتزهای مربع، دو رشته را از میان دو رشته عبور دادم،
1021
00:33:11,519 –> 00:33:13,360
بنابراین اولی بیدار خواهد بود،
1022
00:33:13,360 –> 00:33:16,240
دومی خوابآلود خواهد بود،
1023
00:33:16,240 –> 00:33:17,360
سپس متغیر بعدی که مشخص کردم این
1024
00:33:17,360 –> 00:33:19,360
است. تعداد امام ges که
1025
00:33:19,360 –> 00:33:20,159
میخواهم جمعآوری
1026
00:33:20,159 –> 00:33:22,080
کنم، بنابراین تعداد تصاویر زیر خط یا تصاویر را
1027
00:33:22,080 –> 00:33:23,279
1028
00:33:23,279 –> 00:33:25,679
با 20 نوشتهام. اکنون آنچه که میتوانیم
1029
00:33:25,679 –> 00:33:26,640
انجام دهیم این است
1030
00:33:26,640 –> 00:33:27,840
که در واقع این
1031
00:33:27,840 –> 00:33:29,760
سلولها را اجرا نکردهایم، بنابراین آنچه که میتوانیم جلو برویم و انجام دهیم
1032
00:33:29,760 –> 00:33:32,559
در واقع اکنون اهرم است. این تکههای
1033
00:33:32,559 –> 00:33:34,240
اطلاعات، بنابراین کاری که ما
1034
00:33:34,240 –> 00:33:36,000
میخواهیم انجام دهیم این است که برچسبهای خود را حلقه
1035
00:33:36,000 –> 00:33:37,919
بزنیم و بنابراین
1036
00:33:37,919 –> 00:33:39,519
ابتدا تصاویری را برای بیداری جمعآوری میکنیم و سپس
1037
00:33:39,519 –> 00:33:41,440
تصاویری را برای خوابآلودگی
1038
00:33:41,440 –> 00:33:43,840
و برای هر یک از آنها جمعآوری میکنیم. این برچسبها
1039
00:33:43,840 –> 00:33:46,080
را برای هر کدام 20 تصویر جمعآوری
1040
00:33:46,080 –> 00:33:47,440
میکنیم و در نهایت کاری که میخواهیم
1041
00:33:47,440 –> 00:33:49,120
انجام دهیم این است که آنها را
1042
00:33:49,120 –> 00:33:51,519
با استفاده از یک کتابخانه یا بستهای به نام
1043
00:33:51,519 –> 00:33:52,960
تصویر برچسب برچسبگذاری کنیم، بنابراین من به شما نشان خواهم داد که چگونه
1044
00:33:52,960 –> 00:33:54,159
آن را تنظیم کنید.
1045
00:33:54,159 –> 00:33:56,080
اما فعلا بیایید ادامه دهیم و شروع به
1046
00:33:56,080 –> 00:34:07,840
نوشتن این حلقه کنیم،
1047
00:34:09,040 –> 00:34:12,000
بنابراین این چهار خط
1048
00:34:12,000 –> 00:34:13,119
اول کد نوشته شده ما هستند،
1049
00:34:13,119 –> 00:34:14,560
بنابراین اولین خطی که من نوشتم
1050
00:34:14,560 –> 00:34:16,320
cap برابر است با cv2
1051
00:34:16,320 –> 00:34:19,199
dot capture capture و سپس
1052
00:34:19,199 –> 00:34:20,719
از دستگاه ضبط ویدیو عبور کردم
1053
00:34:20,719 –> 00:34:22,480
صفر پس دوباره با کاری که اینجا انجام می دهیم فرقی نمی
1054
00:34:22,480 –> 00:34:23,760
1055
00:34:23,760 –> 00:34:25,599
کند خط بعدی که من
1056
00:34:25,599 –> 00:34:27,280
نوشتم شروع یک حلقه است،
1057
00:34:27,280 –> 00:34:29,440
بنابراین برای برچسب در برچسب ها، بنابراین ما فقط
1058
00:34:29,440 –> 00:34:30,800
می خواهیم از طریق برچسب های خود
1059
00:34:30,800 –> 00:34:32,079
در اینجا حلقه بزنیم، بنابراین اگر این کار را
1060
00:34:32,079 –> 00:34:35,520
برای برچسب در
1061
00:34:35,520 –> 00:34:38,480
برچسب ها انجام دهیم، پس اگر رفتیم و چاپ کردیم یک
1062
00:34:38,480 –> 00:34:40,719
برچسب را به
1063
00:34:40,719 –> 00:34:42,399
درستی بیرون بیاوریم، بنابراین تمام کاری که ما در
1064
00:34:42,399 –> 00:34:43,760
آنجا انجام می دهیم این است که از طریق هر یک از برچسب های خود حلقه می زنیم،
1065
00:34:43,760 –> 00:34:44,719
1066
00:34:44,719 –> 00:34:46,079
سپس کاری که می خواهیم انجام دهیم این است که من
1067
00:34:46,079 –> 00:34:47,280
واقعاً این را چاپ می کنم تا
1068
00:34:47,280 –> 00:34:48,879
در واقع ببینیم چه زمانی جمعآوری
1069
00:34:48,879 –> 00:34:50,639
یا انتقال بین برچسبها
1070
00:34:50,639 –> 00:34:52,560
به طوری که من چاپ نوشتم و سپس در داخل
1071
00:34:52,560 –> 00:34:54,079
یک رشته نوشتم، بنابراین من جمعآوری
1072
00:34:54,079 –> 00:34:55,760
تصاویر را برای آن نوشتم و سپس
1073
00:34:55,760 –> 00:34:57,680
چند بریس فرفری قرار دادم، بنابراین این
1074
00:34:57,680 –> 00:34:59,040
به ما اجازه میدهد تا
1075
00:34:59,040 –> 00:35:01,119
قالببندی رشتهای را انجام دهیم و به ما تزریق کنیم.
1076
00:35:01,119 –> 00:35:02,240
متغیر در آن
1077
00:35:02,240 –> 00:35:04,079
سپس فرمت نقطه نوشتم و
1078
00:35:04,079 –> 00:35:05,440
از برچسبهایمان عبور کردهام، بنابراین این
1079
00:35:05,440 –> 00:35:07,200
عملاً فقط
1080
00:35:07,200 –> 00:35:08,800
برچسبهای مختلف را
1081
00:35:08,800 –> 00:35:10,880
در داخل یک رشته زیبا چاپ میکند، بنابراین اگر بروم و
1082
00:35:10,880 –> 00:35:12,480
اجرا کنم،
1083
00:35:12,480 –> 00:35:17,119
باید برچسبها را انتخاب کنم.
1084
00:35:17,119 –> 00:35:18,880
بنابراین ابتدا
1085
00:35:18,880 –> 00:35:20,880
باید تصاویر را برای بیدار جمع آوری کند و سپس
1086
00:35:20,880 –> 00:35:23,119
جمع آوری تصاویر برای خواب آلودگی، سپس کاری
1087
00:35:23,119 –> 00:35:24,320
که می خواهیم انجام دهیم این است
1088
00:35:24,320 –> 00:35:25,599
1089
00:35:25,599 –> 00:35:27,680
که وقتی بین هر یک از
1090
00:35:27,680 –> 00:35:28,800
برچسب های مختلف خود جابه جا
1091
00:35:28,800 –> 00:35:30,320
می شویم، پنج ثانیه بخوابیم، سپس کاری که می خواهیم انجام دهیم این است که اکنون می خواهیم
1092
00:35:30,320 –> 00:35:32,000
20 بار حلقه بزنیم. ما
1093
00:35:32,000 –> 00:35:33,440
هر یک از تصاویری را که میخواهیم جمعآوری کنیم حلقه میزنیم،
1094
00:35:33,440 –> 00:35:34,160
1095
00:35:34,160 –> 00:35:37,599
پس بیایید ادامه دهیم و این کار را انجام دهیم، اجازه دهید
1096
00:35:37,599 –> 00:35:39,119
کمی تفسیر نیز اضافه کنیم، بنابراین این
1097
00:35:39,119 –> 00:35:39,760
اولین حلقه
1098
00:35:39,760 –> 00:35:43,040
حلقه از طریق برچسبها
1099
00:35:43,040 –> 00:35:46,320
است، این حلقه حلقه دوم از طریق
1100
00:35:46,320 –> 00:35:49,760
تصاویر یا محدوده تصویر است.
1101
00:35:49,760 –> 00:35:59,839
بیایید این کار را درست انجام دهیم،
1102
00:36:04,560 –> 00:36:07,440
بنابراین این سه خط
1103
00:36:07,440 –> 00:36:08,800
کد بعدی است، بنابراین من میخواهم این کار را گام
1104
00:36:08,800 –> 00:36:10,079
به گام انجام دهم تا فقط در آن
1105
00:36:10,079 –> 00:36:11,440
پرواز نکنیم و توضیح نمیدهم
1106
00:36:11,440 –> 00:36:13,440
که چه چیزی مینویسم، بنابراین چه چیزی را مرور کردم.
1107
00:36:13,440 –> 00:36:14,800
و تمام شد این است که ما می خواهیم
1108
00:36:14,800 –> 00:36:16,880
تمام
1109
00:36:16,880 –> 00:36:18,480
شماره های مختلف تصویر خود را حلقه بزنیم، بنابراین به یاد داشته باشید که ما محدوده
1110
00:36:18,480 –> 00:36:19,760
ای داریم که می خواهیم
1111
00:36:19,760 –> 00:36:21,760
برای هر یک از این کلاس ها 20 تصویر جمع آوری کنیم،
1112
00:36:21,760 –> 00:36:22,640
1113
00:36:22,640 –> 00:36:24,960
بنابراین من 4 تا را نوشتم. تصویر زیر خط
1114
00:36:24,960 –> 00:36:26,560
num در
1115
00:36:26,560 –> 00:36:28,640
تعداد محدوده تصاویر زیر خط که
1116
00:36:28,640 –> 00:36:30,560
قرار است حلقه th باشد تقریباً این مقدار را
1117
00:36:30,560 –> 00:36:32,160
در نظر گرفتیم و سپس عملاً
1118
00:36:32,160 –> 00:36:33,359
کمی از
1119
00:36:33,359 –> 00:36:34,720
قالب بندی رشته ای مشابه آنچه در اینجا انجام دادیم استفاده کرده ایم،
1120
00:36:34,720 –> 00:36:35,280
1121
00:36:35,280 –> 00:36:36,720
اما این بار قصد
1122
00:36:36,720 –> 00:36:38,640
داریم تصاویر را جمع آوری کنیم و سپس
1123
00:36:38,640 –> 00:36:39,760
برچسب را چاپ کنیم
1124
00:36:39,760 –> 00:36:41,760
و سپس شماره تصویر، بنابراین
1125
00:36:41,760 –> 00:36:43,440
ما واقعاً از چه تصویری استفاده می کنیم،
1126
00:36:43,440 –> 00:36:45,359
و سپس هیچ تفاوتی با نحوه دسترسی
1127
00:36:45,359 –> 00:36:47,040
ما به وب کم
1128
00:36:47,040 –> 00:36:49,280
قبل از نوشتن کاما قرمز، برابر با
1129
00:36:49,280 –> 00:36:50,800
cap.read است، بنابراین ما می خواهیم
1130
00:36:50,800 –> 00:36:53,040
فید را از وب کم خود بخوانیم، بنابراین اگر ما
1131
00:36:53,040 –> 00:36:54,800
نگاهی بیندازید که
1132
00:36:54,800 –> 00:36:58,000
شبیه انجام این کار است، بنابراین بیایید این را کپی کنیم
1133
00:36:58,000 –> 00:37:00,400
، آن را در داخل آن قرار دهیم تا بتوانید ببینید
1134
00:37:00,400 –> 00:37:02,000
که ابتدا تصاویر جمع آوری شده
1135
00:37:02,000 –> 00:37:03,440
را برای بیدار چاپ می کند و سپس
1136
00:37:03,440 –> 00:37:05,280
تصاویر جمع آوری شده را برای تصویر بیدار شماره
1137
00:37:05,280 –> 00:37:05,760
1138
00:37:05,760 –> 00:37:07,760
0 تا آخر چاپ می کند. 20. بنابراین از 0 شروع می
1139
00:37:07,760 –> 00:37:10,240
شود اما در 19 به پایان می رسد. بنابراین 20 تصویر
1140
00:37:10,240 –> 00:37:12,320
و سپس کاری که ما در واقع می خواهیم انجام
1141
00:37:12,320 –> 00:37:14,400
دهیم این است که به وب کم خود دسترسی
1142
00:37:14,400 –> 00:37:15,920
خواهیم داشت و می خواهیم عکسی
1143
00:37:15,920 –> 00:37:17,520
مانند عکس گرفتن و گرفتن عکس بگیریم. ما
1144
00:37:17,520 –> 00:37:19,200
آن را در دیسک خود ذخیره می کنیم و به یاد داشته باشید که
1145
00:37:19,200 –> 00:37:20,800
آن را در داخل ذخیره می کنیم پوشه داده ما
1146
00:37:20,800 –> 00:37:22,160
و
1147
00:37:22,160 –> 00:37:24,240
مخصوصاً پوشه images در داخل آن پوشه،
1148
00:37:24,240 –> 00:37:25,760
بنابراین بیایید جلو برویم و این کار را انجام
1149
00:37:25,760 –> 00:37:27,520
دهیم و احتمالاً باید
1150
00:37:27,520 –> 00:37:28,960
آن پوشه را نیز ایجاد کنیم، بنابراین بیایید به
1151
00:37:28,960 –> 00:37:30,400
جلو برویم و ابتدا این کار را
1152
00:37:30,400 –> 00:37:32,960
انجام دهیم تا به قسمت اصلی بروم پوشه ای
1153
00:37:32,960 –> 00:37:34,960
که دارم کار می کنم yolo v5
1154
00:37:34,960 –> 00:37:37,280
و می خواهم یک پوشه به نام data ایجاد کنم
1155
00:37:37,280 –> 00:37:39,359
1156
00:37:39,359 –> 00:37:40,640
و سپس داخل آن
1157
00:37:40,640 –> 00:37:44,160
پوشه ای به نام images
1158
00:37:44,400 –> 00:37:48,400
cool ایجاد کنم، اجازه دهید روی آن درست بزرگنمایی کنم،
1159
00:37:49,680 –> 00:37:51,280
بنابراین اگر نگاهی به آن بیندازیم این
1160
00:37:51,280 –> 00:37:53,760
پوشه سطح بالای من است، بنابراین اگر وارد داده ها
1161
00:37:53,760 –> 00:37:55,680
و تصاویر شوم، همه تصاویر ما
1162
00:37:55,680 –> 00:37:56,960
در اینجا نوشته می شوند، بنابراین به یاد داشته باشید که فقط
1163
00:37:56,960 –> 00:37:58,240
باید یک پوشه سطح بالا
1164
00:37:58,240 –> 00:38:00,240
به نام داده ایجاد کنید و سپس یک پوشه ثانویه
1165
00:38:00,240 –> 00:38:02,880
به نام images
1166
00:38:03,200 –> 00:38:05,680
خوب حالا بیایید ادامه دهیم و این کار را تمام کنید
1167
00:38:05,680 –> 00:38:07,359
، بنابراین ابتدا یک
1168
00:38:07,359 –> 00:38:09,280
نام منحصر به فرد برای تصویر خود ایجاد می کنیم، سپس تصویر خود را
1169
00:38:09,280 –> 00:38:11,680
ذخیره می کنیم و سپس در واقع آن را جمع
1170
00:38:11,680 –> 00:38:14,400
بندی
1171
00:38:16,839 –> 00:38:19,839
1172
00:38:34,880 –> 00:38:37,920
می کنیم، بنابراین ما رفته ایم و
1173
00:38:37,920 –> 00:38:39,359
چهار خط مختلف کد را در آنجا قرار می دهیم،
1174
00:38:39,359 –> 00:38:40