در این مطلب، ویدئو تشخیص شی YOLO با استفاده از OpenCV و Python | پروژه های پایتون | آموزش پایتون | ادورکا با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:47:20
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,210 –> 00:00:07,440
[موسیقی]
2
00:00:07,440 –> 00:00:09,360
سلام به همه این
3
00:00:09,360 –> 00:00:11,280
جونیت از edureka است و من به همه شما خوش آمد می گویم به این
4
00:00:11,280 –> 00:00:13,280
جلسه که در آن در مورد
5
00:00:13,280 –> 00:00:15,360
تشخیص اشیا با استفاده از الگوریتم yolo
6
00:00:15,360 –> 00:00:16,800
و opencv صحبت خواهم کرد،
7
00:00:16,800 –> 00:00:18,480
بنابراین بدون تاخیر بیشتر اجازه
8
00:00:18,480 –> 00:00:20,640
دهید نگاهی به دستور کار
9
00:00:20,640 –> 00:00:21,840
امروز بیندازیم. در این جلسه با
10
00:00:21,840 –> 00:00:23,519
درک اینکه بینایی کامپیوتر چیست
11
00:00:23,519 –> 00:00:24,800
و چرا به آن نیاز
12
00:00:24,800 –> 00:00:26,320
داریم، هر دو روش یادگیری ماشینی و یادگیری عمیق برای تشخیص اشیا را مورد بحث قرار خواهیم داد، در
13
00:00:26,320 –> 00:00:28,160
14
00:00:28,160 –> 00:00:29,599
15
00:00:29,599 –> 00:00:31,439
مورد اینکه چگونه
16
00:00:31,439 –> 00:00:33,680
opencv می تواند برای پیش پردازش تصاویر ما استفاده شود صحبت
17
00:00:33,680 –> 00:00:34,480
18
00:00:34,480 –> 00:00:36,480
خواهیم کرد. در مورد هر دو
19
00:00:36,480 –> 00:00:38,800
الگوریتم yolo و cnn برای تشخیص اشیا صحبت
20
00:00:38,800 –> 00:00:40,719
کنید و ببینید که چگونه می توانیم آن را پیاده سازی کنیم
21
00:00:40,719 –> 00:00:42,719
قبل از اینکه
22
00:00:42,719 –> 00:00:44,320
عضو کانال خود شویم و نماد زنگ را بزنید تا
23
00:00:44,320 –> 00:00:46,640
در مورد فناوری های روز به روز بمانید
24
00:00:46,640 –> 00:00:48,079
و همچنین اگر به دنبال
25
00:00:48,079 –> 00:00:49,920
گواهینامه آموزش آنلاین در پایتون هستید، بررسی
26
00:00:49,920 –> 00:00:51,360
کنید. پیوند داده شده در کادر توضیحات
27
00:00:51,360 –> 00:00:52,640
زیر
28
00:00:52,640 –> 00:00:54,559
برای شروع به ما اطلاع دهید
29
00:00:54,559 –> 00:00:57,039
که بینایی کامپیوتر چیست و چرا به آن نیاز داریم،
30
00:00:57,039 –> 00:00:59,440
پس بینایی کامپیوتر چیست،
31
00:00:59,440 –> 00:01:01,359
کامپیوتر بینایی اساساً با
32
00:01:01,359 –> 00:01:03,039
هر چیزی که انسان می تواند ببیند و
33
00:01:03,039 –> 00:01:04,000
درک کند سر و کار
34
00:01:04,000 –> 00:01:05,600
دارد، کارهای زیادی وجود دارد که ما انسان ها به
35
00:01:05,600 –> 00:01:07,600
طور ناخودآگاه انجام می دهیم که فکر
36
00:01:07,600 –> 00:01:09,119
نمی کنیم حتی ارزش ذکر کردن را داشته باشد،
37
00:01:09,119 –> 00:01:11,200
اما برای یک کامپیوتر یادگیری
38
00:01:11,200 –> 00:01:12,240
انجام یا حتی
39
00:01:12,240 –> 00:01:14,080
تلاش برای تقلید از چنین چیزهایی بسیار
40
00:01:14,080 –> 00:01:16,000
دشوار است درک بهتر
41
00:01:16,000 –> 00:01:18,080
از چیزی که من در مورد آن صحبت می
42
00:01:18,080 –> 00:01:20,159
کنم تصور کنید به بیرون از پنجره نگاه کنید چه
43
00:01:20,159 –> 00:01:21,840
می بینید ممکن است در یک
44
00:01:21,840 –> 00:01:23,360
ساختمان اداری نشسته اید و یک ترافیک
45
00:01:23,360 –> 00:01:24,479
بیرون را می بینید،
46
00:01:24,479 –> 00:01:26,640
بنابراین آیا تا به حال تعجب کرده اید که چگونه
47
00:01:26,640 –> 00:01:28,080
چیزی را تشخیص می دهید یا کسی
48
00:01:28,080 –> 00:01:29,920
را می شناسید که چگونه می توانید به کسی نگاه کنید
49
00:01:29,920 –> 00:01:31,360
و بدانید که او چه کسی است،
50
00:01:31,360 –> 00:01:33,360
ناخودآگاه می بینید که ما در
51
00:01:33,360 –> 00:01:35,119
52
00:01:35,119 –> 00:01:38,159
هر تصویری که می بینید، اشیاء را شناسایی می کنیم، سپس سعی می
53
00:01:38,159 –> 00:01:40,159
کنیم رابطه ای بین شیء وجود داشته باشد
54
00:01:40,159 –> 00:01:42,799
تا صحنه یا مکان را شناسایی کنیم،
55
00:01:42,799 –> 00:01:44,560
تنها در این صورت ایده ای از آنچه در آن اتفاق می افتد به دست می آوریم.
56
00:01:44,560 –> 00:01:45,920
یک تصویر
57
00:01:45,920 –> 00:01:47,360
گاهی اوقات میتوانیم به یک
58
00:01:47,360 –> 00:01:49,200
تصویر ناقص نیز نگاه کنیم و از دانش
59
00:01:49,200 –> 00:01:50,880
و تجربه قبلی خود برای تعیین
60
00:01:50,880 –> 00:01:52,320
اینکه چه چیزی
61
00:01:52,320 –> 00:01:54,159
از آن کم است استفاده کنیم. sks of computer
62
00:01:54,159 –> 00:01:56,719
vision در مورد وظایف مختلف بینایی کامپیوتر صحبت
63
00:01:56,719 –> 00:01:57,600
64
00:01:57,600 –> 00:01:59,680
می کنیم، ما می توانیم کارهای مختلفی مانند
65
00:01:59,680 –> 00:02:01,840
طبقه بندی اشیاء تشخیص اشیا
66
00:02:01,840 –> 00:02:03,360
را انجام دهیم، شرح تصاویر و
67
00:02:03,360 –> 00:02:05,439
بازسازی تصویر، مطمئنم ممکن است از شما
68
00:02:05,439 –> 00:02:07,040
بپرسید که این کار چه کاری را به درستی انجام می دهد،
69
00:02:07,040 –> 00:02:09,038
بنابراین اجازه دهید اکنون هر یک از آنها را به طور خلاصه مورد بحث قرار دهیم.
70
00:02:09,038 –> 00:02:10,080
71
00:02:10,080 –> 00:02:11,920
تشخیص توانایی
72
00:02:11,920 –> 00:02:14,480
تشخیص شی یا شناسایی شیء در هر
73
00:02:14,480 –> 00:02:16,080
تصویر داده شده به درستی است،
74
00:02:16,080 –> 00:02:17,920
سپس طبقه بندی تصویر را داریم که
75
00:02:17,920 –> 00:02:19,680
اساساً به این معنی است که تشخیص
76
00:02:19,680 –> 00:02:22,160
دهیم شی به چه کلاسی تعلق دارد،
77
00:02:22,160 –> 00:02:24,160
شرح تصویر چیزی نیست جز نگاه کردن به یک
78
00:02:24,160 –> 00:02:26,080
تصویر و توصیف آنچه
79
00:02:26,080 –> 00:02:27,280
در یک تصویر در
80
00:02:27,280 –> 00:02:29,120
آخر اتفاق می افتد. حداقل ما
81
00:02:29,120 –> 00:02:30,400
بازسازی
82
00:02:30,400 –> 00:02:32,239
تصویر در بازسازی تصویر داریم، ما
83
00:02:32,239 –> 00:02:34,080
اساساً این توانایی را داریم که آنچه را که
84
00:02:34,080 –> 00:02:35,120
در یک تصویر گم
85
00:02:35,120 –> 00:02:37,440
شده است شناسایی کنیم تا آن را بازسازی کنیم، اکنون که
86
00:02:37,440 –> 00:02:39,200
تشخیص اشیا را گذرانده ایم و
87
00:02:39,200 –> 00:02:41,360
دانشی در مورد آنچه می توانیم با آن انجام دهیم به دست آوریم
88
00:02:41,360 –> 00:02:44,000
، حالا ببینیم چگونه آن را انجام دهیم. دو
89
00:02:44,000 –> 00:02:45,840
رویکرد اصلی برای تشخیص اشیا وجود دارد
90
00:02:45,840 –> 00:02:47,599
که یک رویکرد یادگیری ماشینی و یک
91
00:02:47,599 –> 00:02:48,959
l عمیق است رویکرد کسب درآمد
92
00:02:48,959 –> 00:02:50,640
هر دوی این رویکردها قادر به
93
00:02:50,640 –> 00:02:52,640
یادگیری و شناسایی اشیاء هستند،
94
00:02:52,640 –> 00:02:54,400
اما اجرای آنها بسیار
95
00:02:54,400 –> 00:02:56,640
متفاوت است. شروع با
96
00:02:56,640 –> 00:02:58,080
رویکرد
97
00:02:58,080 –> 00:03:00,000
یادگیری ماشینی یادگیری ماشینی استفاده از
98
00:03:00,000 –> 00:03:01,920
هوش مصنوعی برای
99
00:03:01,920 –> 00:03:03,840
یادگیری کامپیوترها از داده هایی است
100
00:03:03,840 –> 00:03:04,959
که
101
00:03:04,959 –> 00:03:06,720
در اینجا به آنها داده می شود. می تواند به
102
00:03:06,720 –> 00:03:08,959
تنهایی تصمیماتی مشابه تصمیمات انسان
103
00:03:08,959 –> 00:03:10,959
بگیرد. این به رایانه توانایی یادگیری
104
00:03:10,959 –> 00:03:12,800
و پیش بینی بر اساس داده ها
105
00:03:12,800 –> 00:03:14,640
و اطلاعاتی را می دهد که
106
00:03:14,640 –> 00:03:16,400
از طریق تعامل دنیای واقعی به آن داده می شود و
107
00:03:16,400 –> 00:03:18,640
یادگیری ماشینی مشاهده ای
108
00:03:18,640 –> 00:03:20,480
اساساً فرآیند استفاده از الگوریتم ها است.
109
00:03:20,480 –> 00:03:21,599
تجزیه و تحلیل داده ها
110
00:03:21,599 –> 00:03:23,200
و سپس یادگیری پیش بینی و
111
00:03:23,200 –> 00:03:25,760
تعیین چیزها بر اساس داده های داده شده
112
00:03:25,760 –> 00:03:27,200
روش های یادگیری ماشینی برای تشخیص اشیا را
113
00:03:27,200 –> 00:03:29,360
غربال می
114
00:03:29,360 –> 00:03:31,200
کنیم، سپس ماشین بردار پشتیبانی را داریم و
115
00:03:31,200 –> 00:03:33,120
سپس چارچوب تشخیص شی بی سیم جان را داریم
116
00:03:33,120 –> 00:03:34,799
117
00:03:34,799 –> 00:03:36,720
که به روش بعدی می رویم که
118
00:03:36,720 –> 00:03:38,879
یادگیری عمیق است. یادگیری که به
119
00:03:38,879 –> 00:03:40,640
آن یادگیری ساختار یافته عمیق نیز گفته می شود
120
00:03:40,640 –> 00:03:42,239
کلاسی از الگوریتم یادگیری ماشینی
121
00:03:42,239 –> 00:03:43,280
122
00:03:43,280 –> 00:03:44,959
یادگیری عمیق از رویکرد چند لایه
123
00:03:44,959 –> 00:03:46,799
برای استخراج ویژگی سطح بالا
124
00:03:46,799 –> 00:03:48,959
از دادههایی که برای آن
125
00:03:48,959 –> 00:03:50,959
126
00:03:50,959 –> 00:03:52,799
ارائه میشود
127
00:03:52,799 –> 00:03:54,159
128
00:03:54,159 –> 00:03:56,400
استفاده میکند.
129
00:03:56,400 –> 00:04:01,840
130
00:04:02,640 –> 00:04:04,319
یادگیری عمیق نیز تحت تأثیر
131
00:04:04,319 –> 00:04:06,159
شبکه عصبی مصنوعی موجود در
132
00:04:06,159 –> 00:04:07,439
مغز ما است.
133
00:04:07,439 –> 00:04:08,879
بیشتر روش یادگیری عمیق
134
00:04:08,879 –> 00:04:10,560
پیاده سازی شبکه عصبی برای دستیابی به
135
00:04:10,560 –> 00:04:11,360
نتایج
136
00:04:11,360 –> 00:04:13,040
137
00:04:13,040 –> 00:04:15,040
138
00:04:15,040 –> 00:04:16,880
139
00:04:16,880 –> 00:04:18,399
است.
140
00:04:18,399 –> 00:04:19,918
یکی از روش های یادگیری عمیق برای
141
00:04:19,918 –> 00:04:22,079
تشخیص اشیاء عبارتند از: rcnn
142
00:04:22,079 –> 00:04:24,960
الگوریتم سریعتر rcnn yolo و
143
00:04:24,960 –> 00:04:26,800
rcnn سریعتر
144
00:04:26,800 –> 00:04:28,800
در حال حرکت در مورد ابزار منبع باز
145
00:04:28,800 –> 00:04:31,040
به نام opencv opencv
146
00:04:31,040 –> 00:04:33,680
یک کتابخانه منبع باز بزرگ برای
147
00:04:33,680 –> 00:04:34,560
148
00:04:34,560 –> 00:04:36,800
یادگیری ماشین بینایی کامپیوتری و پردازش تصویر است
149
00:04:36,800 –> 00:04:38,400
و اکنون نقش اصلی را ایفا می کند. نقش در
150
00:04:38,400 –> 00:04:40,080
عملیات بلادرنگ که
151
00:04:40,080 –> 00:04:41,759
در سیستم امروزی بسیار مهم است em
152
00:04:41,759 –> 00:04:44,000
با استفاده از opencv میتوانیم
153
00:04:44,000 –> 00:04:46,560
تصاویر ویدیوها را برای شناسایی
154
00:04:46,560 –> 00:04:48,479
چهره اشیا یا حتی دستخط یک
155
00:04:48,479 –> 00:04:50,800
انسان زمانی که با کتابخانههای مختلف ادغام میشود
156
00:04:50,800 –> 00:04:52,400
157
00:04:52,400 –> 00:04:54,080
، از قبل پردازش
158
00:04:54,080 –> 00:04:57,120
159
00:04:57,120 –> 00:04:59,199
کنیم.
160
00:04:59,199 –> 00:05:01,199
ابزار opencv برای پیش پردازش دادههای ما
161
00:05:01,199 –> 00:05:02,880
به من اجازه میدهد به سرعت به ویرایشگر کد خود بروم
162
00:05:02,880 –> 00:05:04,880
و به شما نشان دهم چگونه میتوانم از آن
163
00:05:04,880 –> 00:05:07,440
برای دستکاری تصاویرمان
164
00:05:07,440 –> 00:05:09,199
استفاده کنم، همانطور که میبینید در اینجا میبینید من از
165
00:05:09,199 –> 00:05:11,520
google collab خود به عنوان یک ویرایشگر کد استفاده میکنم،
166
00:05:11,520 –> 00:05:14,400
پس به من اجازه دهید سریع نامی را در اینجا
167
00:05:14,400 –> 00:05:15,759
به عنوان نسخه آزمایشی
168
00:05:15,759 –> 00:05:17,680
بگذارید و اجازه دهید با نوشتن کدمان شروع کنم،
169
00:05:17,680 –> 00:05:19,280
بنابراین ممکن است در ابتدا از خود بپرسید که چگونه می
170
00:05:19,280 –> 00:05:19,840
171
00:05:19,840 –> 00:05:22,000
توانم opencv خود را به درستی نصب کنم، بنابراین
172
00:05:22,000 –> 00:05:24,000
برای نصب opencv خود بسیار ساده است
173
00:05:24,000 –> 00:05:27,039
تنها کاری که باید انجام دهید این است که pip install
174
00:05:27,039 –> 00:05:30,240
open است. cv python
175
00:05:30,400 –> 00:05:32,080
بسیار خوب است و پس از این تنها کاری که باید
176
00:05:32,080 –> 00:05:34,160
انجام دهید این است که اینتر را تغییر دهید
177
00:05:34,160 –> 00:05:36,320
زیرا من از google collab استفاده می کنم در اینجا از
178
00:05:36,320 –> 00:05:38,320
قبل در سیستم ما ساخته شده است، اما اگر
179
00:05:38,320 –> 00:05:40,080
می خواهید این را در سیستم خود دانلود کنید،
180
00:05:40,080 –> 00:05:41,840
می توانید این را امتحان کنید دستور شما
181
00:05:41,840 –> 00:05:42,880
pr
182
00:05:42,880 –> 00:05:46,080
اکنون انتخاب کنید، اجازه دهید opencv import
183
00:05:46,080 –> 00:05:49,520
cv2 و همچنین یک matplotlib
184
00:05:49,520 –> 00:05:53,840
واردات matplotlib را به عنوان پورت تامین وارد کنیم
185
00:05:53,840 –> 00:05:55,600
و سپس اجازه دهید numpy خود را نیز وارد کنیم، بسیار
186
00:05:55,600 –> 00:05:57,600
187
00:05:57,600 –> 00:06:00,960
خوب، اجازه دهید من به سرعت این جریمه را اجرا کنم
188
00:06:00,960 –> 00:06:02,639
و اجازه دهید اکنون یک تصویر در اینجا داشته باشیم،
189
00:06:02,639 –> 00:06:05,680
بیایید یک تصویر متغیر بدهیم
190
00:06:05,680 –> 00:06:07,520
و اجازه دهید ببینید چگونه میتوانیم تصویر خود را
191
00:06:07,520 –> 00:06:10,319
با استفاده از opencv به سمت راست
192
00:06:10,319 –> 00:06:13,600
بخوانیم، بنابراین cv2 dot تصویر را بخوانیم و سپس قرار
193
00:06:13,600 –> 00:06:15,280
است یک آدرس اینترنتی
194
00:06:15,280 –> 00:06:17,199
ارسال کنیم، بنابراین اجازه دهید من اکنون سریع
195
00:06:17,199 –> 00:06:20,880
تصویر خود را در اینجا آپلود کنم، بسیار
196
00:06:20,880 –> 00:06:22,639
خوب، میتوانید ببینید که من چند تصویر دارم
197
00:06:22,639 –> 00:06:24,000
در اینجا اجازه دهید من
198
00:06:24,000 –> 00:06:27,360
سریعا این تصویر را انتخاب کنید و آپلود کنید
199
00:06:27,360 –> 00:06:30,000
خوب اجازه دهید مسیر را برای این کپی کنم و
200
00:06:30,000 –> 00:06:32,800
آن را در
201
00:06:33,840 –> 00:06:35,840
اینجا بچسبانم، بنابراین دلیل استفاده از نقطه
202
00:06:35,840 –> 00:06:37,280
در اینجا این است که ما در یک
203
00:06:37,280 –> 00:06:38,240
دایرکتوری هستیم،
204
00:06:38,240 –> 00:06:40,960
بنابراین اجازه دهید این قسمت را در اینجا اجرا کنم.
205
00:06:40,960 –> 00:06:41,440
206
00:06:41,440 –> 00:06:44,560
و بیایید نوع این تصویر
207
00:06:44,560 –> 00:06:46,160
را ببینیم، خواهید دید
208
00:06:46,160 –> 00:06:48,479
که اگر میخواهید یک
209
00:06:48,479 –> 00:06:49,120
تصویر را
210
00:06:49,120 –> 00:06:51,599
با استفاده از opencv 2 بخوانید، درست به ما یک آرایه numpy میدهد، تصویر به شکل
211
00:06:51,599 –> 00:06:52,560
212
00:06:52,560 –> 00:06:55,759
bgr خواهد بود که مخفف آبی سبز و
213
00:06:55,759 –> 00:06:56,160
قرمز است.
214
00:06:56,160 –> 00:06:58,560
اما ما این را نمی خواهیم خوب قبل از
215
00:06:58,560 –> 00:07:00,160
اینکه جلوتر بروم اجازه دهید فقط به شما نشان
216
00:07:00,160 –> 00:07:01,440
دهم اندازه و شکل
217
00:07:01,440 –> 00:07:05,440
این خوب است، بنابراین شکل نقطه تصویر
218
00:07:05,440 –> 00:07:07,759
و اجازه دهید اینتر را بزنم، در اینجا خواهید دید
219
00:07:07,759 –> 00:07:09,039
که عرض
220
00:07:09,039 –> 00:07:10,400
داریم و ارتفاع داریم و این
221
00:07:10,400 –> 00:07:12,720
تعداد کانال ها و دلیل اینکه
222
00:07:12,720 –> 00:07:14,160
ما تعداد کانال داریم این است که این
223
00:07:14,160 –> 00:07:15,440
یک تصویر رنگی است، بنابراین
224
00:07:15,440 –> 00:07:16,639
rgnb خواهد بود،
225
00:07:16,639 –> 00:07:19,280
زیرا ما از opencv 2 برای
226
00:07:19,280 –> 00:07:20,080
بازسازی تصویر خود استفاده می
227
00:07:20,080 –> 00:07:22,880
کنیم، باید آن را به عقب برگردانیم، بنابراین اجازه
228
00:07:22,880 –> 00:07:24,720
دهید سریع به شما نشان دهم که تصویر ما چگونه به نظر می رسد.
229
00:07:24,720 –> 00:07:25,039
230
00:07:25,039 –> 00:07:27,599
برای خواندن تصویر ما از
231
00:07:27,599 –> 00:07:28,639
232
00:07:28,639 –> 00:07:32,880
نقطه plt استفاده میکنم، من تصویر را نشان میدهم
233
00:07:35,120 –> 00:07:37,039
خوب است، بنابراین این تصویر ما است اکنون ممکن
234
00:07:37,039 –> 00:07:38,639
است تعجب کنید که
235
00:07:38,639 –> 00:07:41,039
cv باز نمیشود
236
00:07:41,039 –> 00:07:41,680
روش داخلی خود را برای
237
00:07:41,680 –> 00:07:44,400
ترسیم یک تصویر دارد، اما بله opencv یک تصویر داخلی دارد.
238
00:07:44,400 –> 00:07:46,160
-در روش رسم یک تصویر یا
239
00:07:46,160 –> 00:07:47,039
نمایش یک تصویر است،
240
00:07:47,039 –> 00:07:49,039
اما متاسفانه توسط
241
00:07:49,039 –> 00:07:51,680
google collab یا notebook
242
00:07:51,680 –> 00:07:53,919
jupyter پشتیبانی نمی شود و همانطور که قبلاً اشاره کردم که opencv
243
00:07:53,919 –> 00:07:56,639
تصویر را با فرمت bgr می خواند، می
244
00:07:56,639 –> 00:07:58,000
توانید ببینید که رنگ
245
00:07:58,000 –> 00:08:00,639
در اینجا معکوس شده است. اجازه دهید سریع این را اجرا
246
00:08:00,639 –> 00:08:01,360
کنم n
247
00:08:01,360 –> 00:08:04,000
بنابراین برای اینکه رنگ را به درستی تغییر دهید،
248
00:08:04,000 –> 00:08:05,520
اجازه دهید آن را به عنوان
249
00:08:05,520 –> 00:08:08,560
تصویر بدهم یا اجازه دهید آن را به عنوان تصویر جدید به
250
00:08:08,560 –> 00:08:10,000
درستی بدهم، بنابراین
251
00:08:10,000 –> 00:08:13,280
تصویر جدید برابر با
252
00:08:13,280 –> 00:08:16,639
رنگ cv2 است.
253
00:08:16,639 –> 00:08:19,360
254
00:08:19,360 –> 00:08:20,400
255
00:08:20,400 –> 00:08:22,319
قرار است این
256
00:08:22,319 –> 00:08:23,919
فرمت را به کدام فرمت تبدیل کنیم، بنابراین
257
00:08:23,919 –> 00:08:25,199
258
00:08:25,199 –> 00:08:28,639
رنگ cv2 نقطه اوکی خواهد بود و حالا باید
259
00:08:28,639 –> 00:08:30,560
این را از bgr
260
00:08:30,560 –> 00:08:33,839
به rgb تبدیل کنیم تا بتوانید اینجا را ببینید، بنابراین اجازه دهید
261
00:08:33,839 –> 00:08:35,519
من سریع این را اجرا کنم و
262
00:08:35,519 –> 00:08:38,000
قبل از آن اجازه دهید من این تصویر را به درستی رسم می کنم،
263
00:08:38,000 –> 00:08:40,559
بنابراین
264
00:08:40,559 –> 00:08:45,200
من مطمئن هستم که تصویر جدید
265
00:08:46,320 –> 00:08:48,160
خوب است، پس اگر در اینجا با خطا مواجه شدیم،
266
00:08:48,160 –> 00:08:49,440
بیایید ببینیم چرا این خطا را درست دریافت می کنیم،
267
00:08:49,440 –> 00:08:50,399
268
00:08:50,399 –> 00:08:54,560
بنابراین قبل از آن اجازه دهید این را در اینجا اجرا کنم، بسیار
269
00:08:54,560 –> 00:08:56,000
خوب، ما این خطا را دریافت می
270
00:08:56,000 –> 00:08:58,399
کنیم زیرا ما گفتن دمو مقیاس بندی درست است، پس بیایید
271
00:08:58,399 –> 00:09:01,040
ببینیم کجا داریم اشتباه می کنیم،
272
00:09:01,040 –> 00:09:02,560
خوب، می توانید ببینید که ما
273
00:09:02,560 –> 00:09:04,080
در اینجا درست یک خطا دریافت می کنیم و دلیل اینکه
274
00:09:04,080 –> 00:09:05,600
خطا می گیریم
275
00:09:05,600 –> 00:09:06,560
این است که
276
00:09:06,560 –> 00:09:08,480
ما کاما خود را در اینجا قرار نداده ایم و bgr می شود
277
00:09:08,480 –> 00:09:09,920
278
00:09:09,920 –> 00:09:11,839
بسیار خوب پس به رنگ آبی سبز قرمز
279
00:09:11,839 –> 00:09:12,959
تا rgb
280
00:09:12,959 –> 00:09:14,560
an خواهد بود اجازه دهید من سریعاً این را در
281
00:09:14,560 –> 00:09:16,800
اینجا اجرا کنم،
282
00:09:18,320 –> 00:09:23,839
خوب اجازه دهید تصویر را از ابتدا دوباره اجرا کنم،
283
00:09:31,440 –> 00:09:33,600
خوب و اجازه دهید اکنون ببینیم که این تصویر چگونه
284
00:09:33,600 –> 00:09:35,760
به نظر می رسد، بنابراین
285
00:09:35,760 –> 00:09:39,040
من خوب نشان می دهم و سپس ما می خواهیم
286
00:09:39,040 –> 00:09:41,120
تصویر جدید خود را اینجا قرار
287
00:09:41,120 –> 00:09:44,160
دهیم و اجازه دهید ببینید اکنون چگونه به نظر می رسد،
288
00:09:44,160 –> 00:09:45,760
بنابراین همانطور که می توانید در اینجا ببینید، تفاوت زیادی وجود دارد،
289
00:09:45,760 –> 00:09:47,440
خوب است،
290
00:09:47,440 –> 00:09:49,440
بنابراین اینجا ما یک اتوبوس رنگ آبی و یک
291
00:09:49,440 –> 00:09:50,800
اتوبوس قرمز در پشت داریم
292
00:09:50,800 –> 00:09:52,080
و می توانید ببینید که
293
00:09:52,080 –> 00:09:53,600
اینجا یک اتوبوس زرد است تفاوت زیادی وجود دارد.
294
00:09:53,600 –> 00:09:55,440
و یک اتوبوس آبی در پشت،
295
00:09:55,440 –> 00:09:56,959
بنابراین دلیل اینکه ما این را دریافت کردیم این بود
296
00:09:56,959 –> 00:09:58,800
که میدانید این در واقع
297
00:09:58,800 –> 00:10:00,000
تصویر اصلی است
298
00:10:00,000 –> 00:10:02,000
و
299
00:10:02,000 –> 00:10:04,640
هر بار که آن را از cv2 برمیداریم
300
00:10:04,640 –> 00:10:06,880
اینطور به نظر میرسد، پس اجازه دهید ما اکنون ببینیم چند
301
00:10:06,880 –> 00:10:08,640
پیش پردازش دیگر یا عملیات اساسی
302
00:10:08,640 –> 00:10:09,839
که می توانیم این
303
00:10:09,839 –> 00:10:11,360
کار را برای شروع انجام دهیم، بیایید ببینیم چگونه می توانیم
304
00:10:11,360 –> 00:10:12,959
تصاویر خود را تقسیم
305
00:10:12,959 –> 00:10:14,320
کنیم و وقتی می گویم تصویر
306
00:10:14,320 –> 00:10:15,680
خود را تقسیم کنیم، همه کانال های مختلف را تقسیم می کنیم،
307
00:10:15,680 –> 00:10:16,399
308
00:10:16,399 –> 00:10:18,560
بنابراین اگر می توانید اینجا را ببینید، ما
309
00:10:18,560 –> 00:10:19,839
در اینجا شکل می
310
00:10:19,839 –> 00:10:22,240
دهیم که x y داریم و سپس ha نیز داریم سه
311
00:10:22,240 –> 00:10:23,839
تا درست است، پس بعد از تقسیم شدن،
312
00:10:23,839 –> 00:10:24,640
یکی
313
00:10:24,640 –> 00:10:26,640
درست میشود، پس اجازه دهید ببینیم چگونه میتوانیم این کار را انجام دهیم،
314
00:10:26,640 –> 00:10:29,040
بنابراین
315
00:10:30,720 –> 00:10:32,800
واضح است که ما سه
316
00:10:32,800 –> 00:10:34,240
کانال درست داریم، بنابراین r
317
00:10:34,240 –> 00:10:36,240
g و b که مخفف قرمز سبز و
318
00:10:36,240 –> 00:10:38,640
آبی است و سپس تنها کاری که باید انجام دهیم این است.
319
00:10:38,640 –> 00:10:39,920
تقسیم نقطه cv2
320
00:10:39,920 –> 00:10:43,040
و تصویر جدید بسیار خوب است، بنابراین
321
00:10:43,040 –> 00:10:44,959
اجازه دهید اکنون به سرعت این را اجرا کنیم، اما
322
00:10:44,959 –> 00:10:46,880
قبل از آن، بیایید شکل
323
00:10:46,880 –> 00:10:50,079
را چاپ کنیم، بنابراین چاپ کنیم تا
324
00:10:50,079 –> 00:10:50,720
شکل r را داشته باشیم
325
00:10:50,720 –> 00:10:52,880
که چیزی جز r در اینجا نیست و
326
00:10:52,880 –> 00:10:54,160
به طور مشابه این کار را برای g انجام خواهیم داد.
327
00:10:54,160 –> 00:10:58,079
و b right، بنابراین اجازه دهید من این را کپی
328
00:10:58,320 –> 00:10:59,920
کنم و مقادیر را تغییر
329
00:10:59,920 –> 00:11:01,519
دهم تا سبز
330
00:11:01,519 –> 00:11:04,720
و آبی سبز و آبی شود،
331
00:11:04,720 –> 00:11:08,240
بنابراین اجازه دهید سریع این را اجرا کنم،
332
00:11:08,240 –> 00:11:10,079
خب، ما کل آرایه را
333
00:11:10,079 –> 00:11:13,440
در اینجا دریافت می کنیم، بنابراین کاری که ما انجام خواهیم داد شکل نقطه r است
334
00:11:13,440 –> 00:11:15,760
و همان کاری را که در اینجا به صورت b
335
00:11:15,760 –> 00:11:16,959
dot انجام
336
00:11:16,959 –> 00:11:19,519
می دهیم و حتی برای g شکل g نقطه خواهد بود
337
00:11:19,519 –> 00:11:20,560
338
00:11:20,560 –> 00:11:23,440
و اجازه دهید این را اجرا کنم تا
339
00:11:23,440 –> 00:11:24,800
اینجا را ببینید ما کانال دیگری نداریم
340
00:11:24,800 –> 00:11:25,760
341
00:11:25,760 –> 00:11:27,600
اما اگر بخواهم این را چاپ کنم
342
00:11:27,600 –> 00:11:30,480
تصویر جدید 720 کاما 2 یا 1 2
343
00:11:30,480 –> 00:11:33,040
8 0 کاما 3 خواهد بود بسیار خوب پس این همه چیز
344
00:11:33,040 –> 00:11:34,560
در مورد spl است اکنون تصویر ما را
345
00:11:34,560 –> 00:11:36,399
در نظر می گیریم اگر می خواهید تصویر ما را به درستی ادغام کنید، چه کاری باید انجام
346
00:11:36,399 –> 00:11:38,480
دهید، بنابراین بسیار ساده است، ما
347
00:11:38,480 –> 00:11:39,360
348
00:11:39,360 –> 00:11:42,160
برای این کار ادغام نقطه ی cv2 را داریم، بنابراین بیایید به
349
00:11:42,160 –> 00:11:42,720
همین نام
350
00:11:42,720 –> 00:11:46,720
تصویر جدید بگذاریم، این
351
00:11:46,720 –> 00:11:49,440
ادغام نقطه ی cv2 خواهد بود و ما می رویم
352
00:11:49,440 –> 00:11:50,399
کانال ها
353
00:11:50,399 –> 00:11:52,000
و این به شکل یک تاپل خواهد بود،
354
00:11:52,000 –> 00:11:53,680
بنابراین r j
355
00:11:53,680 –> 00:11:56,720
و b کاملاً درست می شود، بنابراین اینگونه می توانیم
356
00:11:56,720 –> 00:11:57,839
تصویر خود را ادغام کنیم،
357
00:11:57,839 –> 00:11:59,680
بیایید ببینیم چگونه می توانیم اندازه تصویر را به
358
00:11:59,680 –> 00:12:01,600
درستی تغییر دهیم، بنابراین بیایید عملیات دیگری را ببینیم
359
00:12:01,600 –> 00:12:05,279
که در آن می خواهیم اندازه را تغییر دهیم. تصویر
360
00:12:07,120 –> 00:12:08,800
خوب است ابتدا ما به یک مقیاس درست نیاز داریم
361
00:12:08,800 –> 00:12:10,560
چیزی نیست جز اینکه چقدر می
362
00:12:10,560 –> 00:12:12,560
خواهیم اندازه درست را تغییر دهیم، بنابراین بیایید مقیاس را
363
00:12:12,560 –> 00:12:14,000
برابر با 10 در
364
00:12:14,000 –> 00:12:15,839
نظر بگیریم و سپس به
365
00:12:15,839 –> 00:12:17,200
عرض
366
00:12:17,200 –> 00:12:18,720
آن نیز نیاز داریم که نشان دهنده عرض باشد و این
367
00:12:18,720 –> 00:12:20,560
می شود یک مقدار صحیح
368
00:12:20,560 –> 00:12:23,760
خوب است و سپس ما تصویر خواهیم داشت یا این
369
00:12:23,760 –> 00:12:24,959
تصویر جدید خواهد بود،
370
00:12:24,959 –> 00:12:28,160
بنابراین شکل نقطه تصویر جدید
371
00:12:28,160 –> 00:12:30,160
و سپس همانطور که همه ما می دانیم این شکل به
372
00:12:30,160 –> 00:12:31,839
ما یک تاپل می دهد، بنابراین ما می خواهیم
373
00:12:31,839 –> 00:12:33,519
مقدار را به درستی پاس کنیم، بنابراین این شکل خواهد بود.
374
00:12:33,519 –> 00:12:36,000
شکل موجود در یک حالت خوب است و سپس
375
00:12:36,000 –> 00:12:37,600
آن را کوچک می کنیم y
376
00:12:37,600 –> 00:12:39,680
ضریب مقیاس ما که بله است و سپس
377
00:12:39,680 –> 00:12:41,200
آن را بر 100 تقسیم می کنیم
378
00:12:41,200 –> 00:12:42,959
و به همین ترتیب این کار را برای ارتفاع انجام می دهیم
379
00:12:42,959 –> 00:12:45,040
،
380
00:12:45,040 –> 00:12:46,480
بنابراین تنها چیزی که
381
00:12:46,480 –> 00:12:48,800
در اینجا تغییر می کند h است
382
00:12:48,800 –> 00:12:51,519
و سپس آن را با صفر تغییر می دهیم و
383
00:12:51,519 –> 00:12:53,440
بقیه همه چیز باقی می ماند. به همین
384
00:12:53,440 –> 00:12:56,000
ترتیب، اکنون کاری که ما انجام خواهیم داد این است که یک تاپل در اینجا ایجاد می کنیم،
385
00:12:56,000 –> 00:12:57,600
بنابراین به آن یک
386
00:12:57,600 –> 00:12:58,399
بعد
387
00:12:58,399 –> 00:13:02,079
کم نور می دهیم و این دارای عرض و
388
00:13:02,079 –> 00:13:02,800
ارتفاع خواهد بود
389
00:13:02,800 –> 00:13:04,480
و اکنون برای اینکه کاری را که انجام می دهیم تغییر شکل
390
00:13:04,480 –> 00:13:06,800
دهیم، ابتدا باید داشته باشیم. یک متغیر در اینجا
391
00:13:06,800 –> 00:13:11,040
تغییر اندازه می دهد و این چیزی نیست جز
392
00:13:11,040 –> 00:13:14,160
تغییر اندازه cv2 dot و سپس
393
00:13:14,160 –> 00:13:15,600
تصویر اصلی
394
00:13:15,600 –> 00:13:20,399
و سپس بعد تصویر جدید را
395
00:13:20,399 –> 00:13:22,320
کاملاً خوب منتقل می کنیم و سپس
396
00:13:22,320 –> 00:13:24,320
درون یابی خود را
397
00:13:24,320 –> 00:13:25,760
که چیزی جز یک استدلال بر سر آن نیست منتقل می کنیم.
398
00:13:25,760 –> 00:13:27,680
در اینجا
399
00:13:27,680 –> 00:13:30,880
و سپس ما باید cv2 dot init area
400
00:13:30,880 –> 00:13:34,240
cv2 dot fine
401
00:13:34,240 –> 00:13:36,800
پس اجازه دهید اکنون این را اجرا کنیم و
402
00:13:36,800 –> 00:13:38,399
قبل از آن بیایید اندازه را به درستی چاپ کنیم،
403
00:13:38,399 –> 00:13:38,959
بنابراین
404
00:13:38,959 –> 00:13:42,160
شکل نقطه را تغییر اندازه
405
00:13:42,160 –> 00:13:46,079
دهید و اجازه دهید این را اجرا کنیم
406
00:13:46,240 –> 00:13:48,480
تا همانطور که می بینید در اینجا
407
00:13:48,480 –> 00:13:49,920
اندازه تصویر خود را کاهش داده ایم.
408
00:13:49,920 –> 00:13:51,440
اما تعداد کانال ها
409
00:13:51,440 –> 00:13:53,839
تغییر نکرده است اما مقدار آن تغییر نکرده است h
410
00:13:53,839 –> 00:13:56,959
چیزی شبیه به 720 بود و 1080
411
00:13:56,959 –> 00:14:00,399
به 72 و 182 کاهش یافته است،
412
00:14:00,399 –> 00:14:02,079
بسیار خوب، بنابراین اجازه دهید اکنون عملیات دیگری را ببینیم
413
00:14:02,079 –> 00:14:04,240
که می توانیم در اینجا انجام
414
00:14:04,240 –> 00:14:06,560
دهیم بسیار خوب، بنابراین بیایید یک عملیات دیگر را ببینیم
415
00:14:06,560 –> 00:14:08,240
که چیزی نیست جز
416
00:14:08,240 –> 00:14:17,839
عملیات چرخش،
417
00:14:19,279 –> 00:14:21,839
بسیار خوب، بنابراین به طور مشابه ما بدیهی است که باید انجام دهیم.
418
00:14:21,839 –> 00:14:23,360
قد و وزن آن
419
00:14:23,360 –> 00:14:24,639
بالا خواهد بود
420
00:14:24,639 –> 00:14:28,000
و بعد عرض آن خوب است و حالا
421
00:14:28,000 –> 00:14:32,560
تصویر جدیدی خواهیم داشت و سپس شکل
422
00:14:32,560 –> 00:14:34,320
می گیریم و همه می دانیم که یک تاپلی
423
00:14:34,320 –> 00:14:36,240
درست به ما می دهد بنابراین همه مقادیر از
424
00:14:36,240 –> 00:14:37,360
صفر تا را خواهیم داشت
425
00:14:37,360 –> 00:14:39,839
خوب است و اکنون باید مرکز را محاسبه
426
00:14:39,839 –> 00:14:41,440
427
00:14:41,440 –> 00:14:43,040
کنیم، بنابراین ما فقط یک متغیر را به
428
00:14:43,040 –> 00:14:45,040
جای مرکز می دهیم تا به عنوان c
429
00:14:45,040 –> 00:14:48,240
بگیریم و سپس مقدار w را دوبرابر
430
00:14:48,240 –> 00:14:51,279
2 خواهیم داشت و سپس ارتفاع را نیز با
431
00:14:51,279 –> 00:14:51,920
2 خواهیم داشت
432
00:14:51,920 –> 00:14:53,279
زیرا این چگونه مرکز را درست محاسبه می کنیم
433
00:14:53,279 –> 00:14:54,959
و حالا
434
00:14:54,959 –> 00:14:56,839
فرض کنید می خواهیم این را با
435
00:14:56,839 –> 00:14:59,519
زاویه 90 درجه
436
00:14:59,519 –> 00:15:02,800
بچرخانیم، خوب است، بنابراین اکنون کاری که انجام می دهیم این است
437
00:15:02,800 –> 00:15:05,279
که باید یک متغیر را تعریف کنیم، مثلاً m و
438
00:15:05,279 –> 00:15:07,040
سپس cv2
439
00:15:07,040 –> 00:15:11,120
dot دریافت کنیم. ماتریس چرخش بسیار
440
00:15:11,120 –> 00:15:13,519
خوب است و اکنون میخواهیم از مقدار مرکزی
441
00:15:13,519 –> 00:15:14,639
442
00:15:14,639 –> 00:15:16,639
oh که c در اینجاست عبور کنیم سپس
443
00:15:16,639 –> 00:15:18,000
یک زاویه خواهیم داشت
444
00:15:18,000 –> 00:15:19,760
و در عین حال ضریب مقیاس را نیز خواهیم داشت
445
00:15:19,760 –> 00:15:21,279
که
446
00:15:21,279 –> 00:15:23,199
اوه ما نمیخواهیم تصویر خود را درست تغییر شکل
447
00:15:23,199 –> 00:15:24,480
دهیم، نمیخواهیم اندازه تصویر را کاهش دهیم،
448
00:15:24,480 –> 00:15:24,959
449
00:15:24,959 –> 00:15:27,040
بنابراین یکی را کنار میگذاریم. اینجا و اکنون ما
450
00:15:27,040 –> 00:15:28,320
باید به راست بچرخیم، بنابراین
451
00:15:28,320 –> 00:15:32,000
90 درجه بچرخانیم
452
00:15:32,000 –> 00:15:35,199
و این برابر با cv2 dot
453
00:15:35,199 –> 00:15:37,759
wrap خواهد بود و حالا میخواهیم
454
00:15:37,759 –> 00:15:40,800
تصویر خود را که تصویر جدید است منتقل کنیم
455
00:15:40,800 –> 00:15:43,440
و سپس m را در اینجا خواهیم داشت که
456
00:15:43,440 –> 00:15:44,399
چیزی نیست جز
457
00:15:44,399 –> 00:15:46,560
شیء در اینجا که در حال بازگشت است
458
00:15:46,560 –> 00:15:48,000
و سپس مشخصاً ارتفاع و عرض
459
00:15:48,000 –> 00:15:49,199
خوب است، بنابراین این مقدار تاپلی خواهد
460
00:15:49,199 –> 00:15:50,320
461
00:15:50,320 –> 00:15:52,800
بود و بیایید اکنون ببینیم که چگونه به
462
00:15:52,800 –> 00:15:53,600
نظر می رسد
463
00:15:53,600 –> 00:15:55,279
خوب است، بنابراین در اینجا ما با یک خطای
464
00:15:55,279 –> 00:15:56,959
c تعریف نشده است
465
00:15:56,959 –> 00:15:59,519
، اجازه دهید ما سریع این کار را انجام دهید، به جای
466
00:15:59,519 –> 00:16:00,880
اینکه ببینید که اینجا 2 می شود،
467
00:16:00,880 –> 00:16:02,800
زیرا ما ارتفاع خود را پیدا می کنیم
468
00:16:02,800 –> 00:16:05,600
و اجازه می دهیم این را اجرا کنم.
469
00:16:05,600 –> 00:16:07,199
470
00:16:07,199 –> 00:16:08,959
471
00:16:08,959 –> 00:16:10,560
472
00:16:10,560 –> 00:16:13,199
درجه در خلاف جهت عقربه های ساعت، پس بیایید اکنون
473
00:16:13,199 –> 00:16:14,720
این را چاپ کنیم و ببینیم که چگونه l به نظر می
474
00:16:14,720 –> 00:16:15,759
رسد
475
00:16:15,759 –> 00:16:19,759
نقطه plt من خوب نشان می دهم
476
00:16:19,759 –> 00:16:21,680
بنابراین همانطور که می بینید در اینجا
477
00:16:21,680 –> 00:16:25,920
ما تصویر خود را در خلاف جهت عقربه های ساعت 90 درجه چرخانده ایم
478
00:16:26,000 –> 00:16:27,839
بنابراین در حال حرکت به جلو اجازه دهید ببینیم چگونه
479
00:16:27,839 –> 00:16:30,480
شبکه عصبی کانولوشن خوب کار می
480
00:16:30,480 –> 00:16:32,240
کند بنابراین شبکه عصبی کانولوشن
481
00:16:32,240 –> 00:16:34,560
cnn یا شبکه عصبی کانولوشن
482
00:16:34,560 –> 00:16:36,240
چیست؟ یک کلاس از
483
00:16:36,240 –> 00:16:37,680
شبکه های عصبی یادگیری عمیق
484
00:16:37,680 –> 00:16:39,279
آنچه که من در اینجا می خواهم بگویم این است که
485
00:16:39,279 –> 00:16:41,360
cnn را به عنوان یک الگوریتم یادگیری ماشینی
486
00:16:41,360 –> 00:16:43,759
در نظر بگیرید که می تواند یک تصویر ورودی را
487
00:16:43,759 –> 00:16:45,120
به یک شیء اختصاص دهد
488
00:16:45,120 –> 00:16:46,800
و سپس بتواند
489
00:16:46,800 –> 00:16:48,880
بین یک شی و cnn دیگر تمایز قائل شود.
490
00:16:48,880 –> 00:16:51,199
با استخراج ویژگیها
491
00:16:51,199 –> 00:16:52,240
از تصاویر کار میکند
492
00:16:52,240 –> 00:16:54,000
هر cnn شامل سه
493
00:16:54,000 –> 00:16:55,759
چیز زیر است: یک لایه ورودی که یک
494
00:16:55,759 –> 00:16:57,120
تصویر در مقیاس خاکستری است،
495
00:16:57,120 –> 00:16:58,880
سپس لایه خروجی را داریم
496
00:16:58,880 –> 00:17:00,959
که برچسبهای باینری یا چند کلاسه است
497
00:17:00,959 –> 00:17:02,639
و سپس لایههای مخفی داریم که
498
00:17:02,639 –> 00:17:04,079
حاوی
499
00:17:04,079 –> 00:17:06,720
لایه کانولوشن relu و سپس ما همچنین
500
00:17:06,720 –> 00:17:07,679
لایه های ادغام شده
501
00:17:07,679 –> 00:17:09,280
داریم در نهایت
502
00:17:09,280 –> 00:17:10,959
برای انجام
503
00:17:10,959 –> 00:17:12,079
طبقه بندی
504
00:17:12,079 –> 00:17:13,760
که درک نور مصنوعی بسیار مهم است شبکه عصبی
505
00:17:13,760 –> 00:17:15,520
مصنوعی خواهیم داشت. شبکه l یا یک
506
00:17:15,520 –> 00:17:17,520
n برای انجام طبقه
507
00:17:17,520 –> 00:17:18,720
بندی چند کلاسه،
508
00:17:18,720 –> 00:17:20,400
اجازه دهید من به سرعت به سراغ بوم بروم و به
509
00:17:20,400 –> 00:17:23,760
شما نشان دهم که چگونه معماری cnn
510
00:17:23,760 –> 00:17:26,160
کاملاً درست است، بنابراین همانطور که قبلاً ذکر کردم
511
00:17:26,160 –> 00:17:27,919
وقتی با cnn درست سروکار داریم
512
00:17:27,919 –> 00:17:29,360
، سه چیز خواهیم داشت
513
00:17:29,360 –> 00:17:31,840
که چیزی نیست. اما تصویر ورودی را در
514
00:17:31,840 –> 00:17:33,440
نظر بگیرید که در اینجا یک تصویر ورودی داریم
515
00:17:33,440 –> 00:17:35,919
516
00:17:36,160 –> 00:17:37,840
و این یک تصویر در مقیاس خاکستری است، بنابراین
517
00:17:37,840 –> 00:17:39,840
تعداد کانال در اینجا یک می شود،
518
00:17:39,840 –> 00:17:43,120
بیایید اندازه تصویر را 10 در نظر بگیریم
519
00:17:43,120 –> 00:17:44,799
و سپس اندازه تصویر را نیز در
520
00:17:44,799 –> 00:17:46,160
اینجا 10 خواهیم داشت.
521
00:17:46,160 –> 00:17:47,840
در واقع ما اندازه تصویر 10 را نخواهیم داشت،
522
00:17:47,840 –> 00:17:49,840
بنابراین این فقط برای
523
00:17:49,840 –> 00:17:51,840
این است که ما بفهمیم و اکنون
524
00:17:51,840 –> 00:17:53,200
کاری که
525
00:17:53,200 –> 00:17:55,679
انجام می دهیم این است که با عبور از یک
526
00:17:55,679 –> 00:17:58,320
فیلتر کانولوشن
527
00:17:58,320 –> 00:18:01,120
که اندازه سه است، کانولوشن انجام می دهیم. و سه
528
00:18:01,120 –> 00:18:03,039
این فیلتر کانولوشن از تک تک
529
00:18:03,039 –> 00:18:05,039
قسمت های این تصویر می گذرد
530
00:18:05,039 –> 00:18:07,520
و تمام ویژگی های مهم را استخراج می
531
00:18:07,520 –> 00:18:09,520
کند، به عنوان مثال این لایه پیچیدگی
532
00:18:09,520 –> 00:18:11,280
درست است، بنابراین بیایید این نام را در اینجا
533
00:18:11,280 –> 00:18:14,720
به عنوان لایه
534
00:18:14,720 –> 00:18:17,280
کانولوشن بگذاریم، حالا این لایه کانولوشن را می توانیم داشته باشیم.
535
00:18:17,280 –> 00:18:18,320
مضربی از آنها
536
00:18:18,320 –> 00:18:20,240
خوب است، ما می توانیم مانند فرض کنید 35
537
00:18:20,240 –> 00:18:21,520
لایه کانولوشن داشته باشیم
538
00:18:21,520 –> 00:18:23,520
و هر یک از این 35 لایه کانولوشن
539
00:18:23,520 –> 00:18:25,360
مسئول
540
00:18:25,360 –> 00:18:28,160
استخراج ویژگی های بسیار خاصی هستند، خوب، بنابراین اکنون برای
541
00:18:28,160 –> 00:18:28,799
مثال
542
00:18:28,799 –> 00:18:31,039
بیایید فکر کنیم که
543
00:18:31,039 –> 00:18:32,480
در اینجا 35 لایه داریم
544
00:18:32,480 –> 00:18:34,559
و اکنون این لایه دچار کانولوشن می شود.
545
00:18:34,559 –> 00:18:38,080
درست است، بنابراین این پیچیدگی است،
546
00:18:38,160 –> 00:18:40,400
ما یک تصویر جدید در اینجا دریافت خواهیم کرد و
547
00:18:40,400 –> 00:18:43,840
تصویر جدید چیزی شبیه به آن خواهد بود
548
00:18:44,640 –> 00:18:46,160
و ما یک تصویر جدید در اینجا دریافت خواهیم کرد و
549
00:18:46,160 –> 00:18:47,679
تصویر جدید چیزی شبیه به
550
00:18:47,679 –> 00:18:49,600
این خواهد بود، همان تصویر واقعی که در
551
00:18:49,600 –> 00:18:50,240
ابتدا داشت.
552
00:18:50,240 –> 00:18:52,320
تک کانال بعد از انجام
553
00:18:52,320 –> 00:18:54,559
کانولوشن 35
554
00:18:54,559 –> 00:18:57,840
لایه یا ابعاد خواهد داشت، باید بگویم
555
00:18:57,840 –> 00:19:00,400
که این 35 خواهد بود و اندازه در
556
00:19:00,400 –> 00:19:02,160
اینجا از 10 به 8 کاهش می یابد
557
00:19:02,160 –> 00:19:04,720
.
558
00:19:05,280 –> 00:19:06,799
بنابراین اگر این را درست متوجه نشدید،
559
00:19:06,799 –> 00:19:08,480
اجازه دهید سریع به شما بفهمانم
560
00:19:08,480 –> 00:19:10,240
که چه اتفاقی می افتد. در اینجا، بنابراین آنچه قرار است
561
00:19:10,240 –> 00:19:11,760
در اینجا اتفاق بیفتد این است که این
562
00:19:11,760 –> 00:19:13,440
فیلترها در اینجا، درست این
563
00:19:13,440 –> 00:19:15,360
سه فیلتر متقاطع سه فیلتر
564
00:19:15,360 –> 00:19:17,280
هستند، آنها روی هر قسمت از این تصویر خواهند رفت،
565
00:19:17,280 –> 00:19:19,760
خوب است، پس حالا بیایید یک عکس بگیریم
566
00:19:19,760 –> 00:19:20,799
ماتریس d درست است،
567
00:19:20,799 –> 00:19:22,720
بنابراین بیایید واضحاً این ده متقاطع ده را در نظر بگیریم
568
00:19:22,720 –> 00:19:24,160
یا فقط برای مثال، من
569
00:19:24,160 –> 00:19:25,600
می خواهم پنج متقاطع پنج را ترسیم کنم،
570
00:19:25,600 –> 00:19:27,360
بنابراین این ماتریس سه متقاطع سه
571
00:19:27,360 –> 00:19:28,960
در اینجا قرار می گیرد، بسیار
572
00:19:28,960 –> 00:19:31,120
خوب، سپس یک گام وجود خواهد داشت
573
00:19:31,120 –> 00:19:32,960
، چیزی جز نحوه حرکت این ماتریس نیست
574
00:19:32,960 –> 00:19:34,559
و سپس این ضربه دوم خواهد بود،
575
00:19:34,559 –> 00:19:36,160
بنابراین از هر سه ماتریس متقاطع سه عبور
576
00:19:36,160 –> 00:19:37,039
می کند
577
00:19:37,039 –> 00:19:38,799
و سپس در سراسر تصویر به
578
00:19:38,799 –> 00:19:40,880
خوبی عبور می کند و سپس
579
00:19:40,880 –> 00:19:42,640
در اینجا تصویری خواهیم داشت که به هشت متقاطع هشت کاهش می یابد،
580
00:19:42,640 –> 00:19:44,240
اما پس از آن خواهیم داشت.
581
00:19:44,240 –> 00:19:45,200
تعداد بیشتری از ویژگی ها
582
00:19:45,200 –> 00:19:47,600
که چیزی جز 32 ویژگی یا 35
583
00:19:47,600 –> 00:19:48,720
ویژگی نیست در اینجا
584
00:19:48,720 –> 00:19:50,320
اکنون همانطور که در اینجا می بینید،
585
00:19:50,320 –> 00:19:52,320
ابعاد بسیار زیادی داریم، بنابراین برای غلبه بر این
586
00:19:52,320 –> 00:19:54,320
به ابعاد شکسته منجر می شود،
587
00:19:54,320 –> 00:19:56,160
کاری که ما
588
00:19:56,160 –> 00:19:58,400
انجام خواهیم داد این از طریق یک لایه max pool
589
00:19:58,400 –> 00:20:00,160
است
590
00:20:00,160 –> 00:20:01,840
و در اینجا ما سعی نمیکنیم که
591
00:20:01,840 –> 00:20:03,760
در اینجا هیچ گونه عملی را کاهش دهیم یا انجام دهیم،
592
00:20:03,760 –> 00:20:06,080
همه این لایه max pool این کار را انجام میدهد
593
00:20:06,080 –> 00:20:08,480
معمولاً 2 متقاطع 2 درست است،
594
00:20:08,480 –> 00:20:11,440
خوب این ماتریس 2 متقاطع 2 است، بنابراین
595
00:20:11,440 –> 00:20:13,120
این لایه max pool چه خواهد کرد انجام دهید
596
00:20:13,120 –> 00:20:14,559
از تک تک لایههای این
597
00:20:14,559 –> 00:20:17,280
تصویر در اینجا عبور میکند،
598
00:20:18,720 –> 00:20:20,559
بنابراین بیایید فکر کنیم که این لایه حداکثر
599
00:20:20,559 –> 00:20:22,480
استخر درست است و این در
600
00:20:22,480 –> 00:20:23,280
اینجا در این
601
00:20:23,280 –> 00:20:26,000
چهار پیکسل قرار میگیرد و
602
00:20:26,000 –> 00:20:27,120
مثلاً فرض کنید این دارای شش
603
00:20:27,120 –> 00:20:30,000
هفت و نه است و درست یازده است.
604
00:20:30,000 –> 00:20:31,360
اینها چیزی نیستند به جز مقادیر احتمال
605
00:20:31,360 –> 00:20:32,159
606
00:20:32,159 –> 00:20:34,159
درست است و حداکثر
607
00:20:34,159 –> 00:20:35,919
مقدار را از این قسمت انتخاب می کند، بنابراین
608
00:20:35,919 –> 00:20:36,640
چیزی شبیه
609
00:20:36,640 –> 00:20:38,559
به ایجاد یک پیکسل
610
00:20:38,559 –> 00:20:40,640
خواهد بود و این می تواند 11 باشد. اکنون ممکن است از خود بپرسید که
611
00:20:40,640 –> 00:20:41,280
612
00:20:41,280 –> 00:20:43,360
چرا مقدار 11 را می دهد. خوب می بینید
613
00:20:43,360 –> 00:20:44,960
همانطور که اشاره کردم اینها مقادیر احتمال
614
00:20:44,960 –> 00:20:45,760
هستند درست
615
00:20:45,760 –> 00:20:48,000
زیرا 11 بالاترین مقدار است و نشان
616
00:20:48,000 –> 00:20:48,799
می دهد که
617
00:20:48,799 –> 00:20:50,080
11 جایی است که ما بالاترین
618
00:20:50,080 –> 00:20:52,080
احتمال آن ویژگی خاص را داریم به
619
00:20:52,080 –> 00:20:54,159
طور مشابه این
620
00:20:54,159 –> 00:20:57,039
از همه جعبه ها عبور می
621
00:20:57,840 –> 00:21:00,000
کند و اکنون اندازه یک
622
00:21:00,000 –> 00:21:01,200
تصویر کاهش می یابد
623
00:21:01,200 –> 00:21:04,080
بسیار خوب، بنابراین اجازه دهید من به سرعت به شما نشان دهم که چه چیزی،
624
00:21:04,080 –> 00:21:05,280
پس اکنون ما می خواهیم
625
00:21:05,280 –> 00:21:07,840
لایه حداکثر استخر را پس از این بگذرانیم،
626
00:21:07,840 –> 00:21:09,440
اندازه تصویر به نصف
627
00:21:09,440 –> 00:21:11,679
کاهش می یابد که 4 متقاطع 4
628
00:21:11,679 –> 00:21:17,840
bu است. t تعداد فیلترها در حال حاضر تغییر نمی کند،
629
00:21:17,919 –> 00:21:19,760
ما می توانیم آن را از
630
00:21:19,760 –> 00:21:21,440
یک لایه کانولوشن دیگری عبور دهیم، می دانم که می
631
00:21:21,440 –> 00:21:22,000
خواهم بگویم
632
00:21:22,000 –> 00:21:24,080
همه این مراحل می توانند دوباره تکرار شوند،
633
00:21:24,080 –> 00:21:25,840
اما وقتی کار درست
634
00:21:25,840 –> 00:21:28,559
را تمام کرد، کل لایه را صاف می کنیم و این
635
00:21:28,559 –> 00:21:29,600
یک
636
00:21:29,600 –> 00:21:32,880
شبکه عصبی مصنوعی ساده خواهد بود
637
00:21:32,880 –> 00:21:34,960
و هر بار که در اینجا اتفاق میافتد این است
638
00:21:34,960 –> 00:21:36,240
که از چندین لایه عبور میکنیم
639
00:21:36,240 –> 00:21:37,679
640
00:21:37,679 –> 00:21:41,440
یا میتوانم بگویم لایههای عمیق
641
00:21:43,280 –> 00:21:44,960
خوب است و سپس میتوانیم
642
00:21:44,960 –> 00:21:46,400
طبقهبندی خود را در اینجا انجام دهیم
643
00:21:46,400 –> 00:21:47,919
و یک چیز مهم دیگر که من
644
00:21:47,919 –> 00:21:49,440
فراموش کردم در اینجا ذکر کنم
645
00:21:49,440 –> 00:21:51,440
به منظور افزایش خطی بودن،
646
00:21:51,440 –> 00:21:53,039
ما در اینجا یک تابع فعال سازی نیز خواهیم داشت،
647
00:21:53,039 –> 00:21:53,919
648
00:21:53,919 –> 00:21:57,360
معمولاً من از raylu استفاده می
649
00:21:57,440 –> 00:21:59,520
کنم، امیدوارم که شما بدانید رایلوریت چیست، بنابراین
650
00:21:59,520 –> 00:22:01,200
عملکرد فعال سازی پس از
651
00:22:01,200 –> 00:22:02,640
رسیدن به یک آستانه
652
00:22:02,640 –> 00:22:04,720
مشخص است. آن قسمت را فعال می کند، بنابراین کاری که relu
653
00:22:04,720 –> 00:22:06,799
انجام می دهد این است که نمودار برای بارگذاری مجدد
654
00:22:06,799 –> 00:22:07,440
655
00:22:07,440 –> 00:22:10,080
اینگونه عمل می کند و در اینجا از صفر و یک و
656
00:22:10,080 –> 00:22:11,200
اکنون به منظور انجام
657
00:22:11,200 –> 00:22:12,400
طبقه بندی
658
00:22:12,400 –> 00:22:14,320
در آخرین لایه خروجی ما در سمت راست است. من
659
00:22:14,320 –> 00:22:16,159
یک تابع فعالسازی به نام
660
00:22:16,159 –> 00:22:18,000
661
00:22:18,000 –> 00:22:20,159
softmax را ارسال میکنم، زیرا softmax به من احتمالی را میدهد
662
00:22:20,159 –> 00:22:21,280
که از
663
00:22:21,280 –> 00:22:23,840
منهای یک تا بعلاوه یک متغیر است،
664
00:22:23,840 –> 00:22:27,039
بنابراین همه چیز در مورد شبکه عصبی پیچشی
665
00:22:27,039 –> 00:22:28,880
با استفاده از یادگیری عمیق است، ما میتوانیم
666
00:22:28,880 –> 00:22:30,240
با استفاده از
667
00:22:30,240 –> 00:22:32,720
مدل rcnn که مخفف عبارت است، اشیا را شناسایی کنیم. شبکه کانولوشن مبتنی بر منطقه
668
00:22:32,720 –> 00:22:33,919
669
00:22:33,919 –> 00:22:36,400
یا با استفاده از روش yolo، بنابراین
670
00:22:36,400 –> 00:22:38,880
من در مورد الگوریتم yolo
671
00:22:38,880 –> 00:22:40,559
صحبت خواهم کرد، ممکن است تعجب کنید که چرا
672
00:22:40,559 –> 00:22:42,320
ما دو خانواده متفاوت برای تشخیص شی داریم،
673
00:22:42,320 –> 00:22:42,960
674
00:22:42,960 –> 00:22:44,640
خوب می بینید که تفاوت زیادی
675
00:22:44,640 –> 00:22:46,400
بین خانواده اویلر و
676
00:22:46,400 –> 00:22:49,360
رویکرد مبتنی بر rcnn وجود دارد. در رویکرد مبتنی
677
00:22:49,360 –> 00:22:51,360
بر rcnn بیشتر بر
678
00:22:51,360 –> 00:22:52,799
تقسیم یک تصویر به قسمتها تمرکز میکند
679
00:22:52,799 –> 00:22:54,720
و سپس مقادیر احتمالی را به
680
00:22:54,720 –> 00:22:56,640
آن بخش اختصاص میدهد و هر قسمتی
681
00:22:56,640 –> 00:22:57,919
که احتمال بالاتری
682
00:22:57,919 –> 00:22:59,600
دارد، جایی است که ما یک شی را در نظر میگیریم
683
00:22:59,600 –> 00:23:01,919
در حالی که چارچوب زرد
684
00:23:01,919 –> 00:23:04,320
روی کل تصویر به عنوان یک مورد تمرکز میکند. کل
685
00:23:04,320 –> 00:23:06,480
و جعبه های کران کننده را پیش بینی می کند و سپس
686
00:23:06,480 –> 00:23:08,080
احتمال کلاس را محاسبه می کند
687
00:23:08,080 –> 00:23:10,559
تا جعبه ها را فامیل برچسب گذاری کند. ly از
688
00:23:10,559 –> 00:23:12,480
چارچوب yolo بسیار سریع است در مقایسه با
689
00:23:12,480 –> 00:23:13,760
690
00:23:13,760 –> 00:23:15,520
الگوریتم زرد rcnn که طی
691
00:23:15,520 –> 00:23:18,240
سالهایی که برای اولین بار با yolo v1 شروع به تکامل کرده است،
692
00:23:18,240 –> 00:23:20,000
این مدل yolo unified نیز نامیده میشود
693
00:23:20,000 –> 00:23:21,919
و دلیل این امر این است
694
00:23:21,919 –> 00:23:24,000
که
695
00:23:24,000 –> 00:23:26,240
مدل تشخیص و طبقهبندی اشیا را با هم به عنوان یک واحد متحد میکند.
696
00:23:26,240 –>