در این مطلب، ویدئو آموزش انتقال سبک عصبی با تنسورفلو و پایتون در 10 دقیقه با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:14:16
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,160 –> 00:00:02,560
در درس امروز میخواهم
2
00:00:02,560 –> 00:00:04,160
پرترهای از خودتان به
3
00:00:04,160 –> 00:00:17,920
سبک امپرسیونیستی
4
00:00:21,840 –> 00:00:23,359
مونه بکشید بچهها اسم من نیکلاس
5
00:00:23,359 –> 00:00:24,960
رنو است و در ویدیوی امروز ما قصد
6
00:00:24,960 –> 00:00:26,240
داریم به انتقال سبک عصبی نگاهی بیندازیم،
7
00:00:26,240 –> 00:00:28,480
بیایید
8
00:00:28,480 –> 00:00:29,599
نگاهی عمیقتر بیندازیم. در مورد آنچه که ما قرار است تجربه کنیم،
9
00:00:29,599 –> 00:00:31,039
بنابراین ابتدا
10
00:00:31,039 –> 00:00:33,600
انتقال سبک عصبی چیست،
11
00:00:33,600 –> 00:00:35,680
انتقال سبک عصبی فرآیند
12
00:00:35,680 –> 00:00:36,079
استفاده از
13
00:00:36,079 –> 00:00:38,559
یک شبکه عصبی برای گرفتن سبک از
14
00:00:38,559 –> 00:00:39,360
یک تصویر
15
00:00:39,360 –> 00:00:41,280
و اعمال آن بر روی یک تصویر کاملا متفاوت است،
16
00:00:41,280 –> 00:00:42,800
بنابراین ما
17
00:00:42,800 –> 00:00:45,120
ابتدا تصویر سبک را به تصویر می کشیم و ما
18
00:00:45,120 –> 00:00:46,640
تصویر دوم یا تصویری را که می
19
00:00:46,640 –> 00:00:48,320
خواهیم استایل را
20
00:00:48,320 –> 00:00:50,640
روی تصویر محتوا اعمال کنیم، می نامیم و سپس از آن نتیجه می
21
00:00:50,640 –> 00:00:52,399
گیریم یک تصویر تلطیف شده است، بنابراین می
22
00:00:52,399 –> 00:00:53,920
توانید از اسلاید ببینید که ما
23
00:00:53,920 –> 00:00:56,399
یک سبک داریم. تصویری از یکی از
24
00:00:56,399 –> 00:00:57,039
نقاشی های معروف مونه
25
00:00:57,039 –> 00:00:58,640
و سپس یک تصویر محتوا داریم
26
00:00:58,640 –> 00:01:00,559
که نمایه ای از خودم است،
27
00:01:00,559 –> 00:01:02,719
سپس انتقال سبک عصبی را اعمال می کنیم تا
28
00:01:02,719 –> 00:01:04,640
در واقع ادامه دهیم و
29
00:01:04,640 –> 00:01:06,320
تصویر تولید شده خود را تولید کنیم، بنابراین اکنون
30
00:01:06,320 –> 00:01:08,799
به طور خلاصه این انتقال سبک عصبی است.
31
00:01:08,799 –> 00:01:10,080
بیایید نگاهی بیندازیم به آنچه که
32
00:01:10,080 –> 00:01:11,680
قرار است در این ویدیو پوشش دهیم،
33
00:01:11,680 –> 00:01:12,720
بنابراین اولین کاری که میخواهیم
34
00:01:12,720 –> 00:01:14,799
انجام دهیم این است که یک
35
00:01:14,799 –> 00:01:16,400
مدل انتقال سبک عصبی از پیش آموزشدیده را از
36
00:01:16,400 –> 00:01:17,920
هاب مدل تنسورفلو دانلود کنیم، بنابراین این
37
00:01:17,920 –> 00:01:19,280
کار آن را سریعتر میکند. برای
38
00:01:19,280 –> 00:01:20,799
آموزش، سپس تصاویر خود را از قبل پردازش می کنیم
39
00:01:20,799 –> 00:01:22,080
یا به نحوه
40
00:01:22,080 –> 00:01:24,000
پیش پردازش تصاویر خود برای انتقال سبک عصبی نگاهی می اندازیم،
41
00:01:24,000 –> 00:01:24,799
42
00:01:24,799 –> 00:01:26,560
سپس در واقع ادامه می
43
00:01:26,560 –> 00:01:28,320
دهیم و این کار را انجام می دهیم تا در واقع سبک خود را اعمال کنیم.
44
00:01:28,320 –> 00:01:29,600
45
00:01:29,600 –> 00:01:31,439
به تصویر محتوای خود منتقل کنید و نتیجه را تجسم کنید،
46
00:01:31,439 –> 00:01:33,280
بیایید نگاهی بیندازیم که چگونه
47
00:01:33,280 –> 00:01:34,400
همه چیز با هم تطبیق میکند،
48
00:01:34,400 –> 00:01:36,000
بنابراین در ابتدا همانطور که
49
00:01:36,000 –> 00:01:38,159
50
00:01:38,159 –> 00:01:40,079
میگفتم یک مدل انتقال سبک عصبی از پیش آموزشدیده را از هاب تنسورفلو دانلود میکنیم،
51
00:01:40,079 –> 00:01:42,000
بنابراین این فقط میخواهیم خیلی
52
00:01:42,000 –> 00:01:43,600
سریعتر پیش برویم و
53
00:01:43,600 –> 00:01:44,320
مدل خود را آموزش
54
00:01:44,320 –> 00:01:46,240
دهیم، سپس سبک
55
00:01:46,240 –> 00:01:48,479
و تصاویر محتوای خود را در پایتون بارگذاری میکنیم تا
56
00:01:48,479 –> 00:01:49,920
در نوتبوک jupyter خود
57
00:01:49,920 –> 00:01:51,680
، کمی پیشپردازش را
58
00:01:51,680 –> 00:01:53,280
با tensorflow اعمال کنیم و سپس ما
59
00:01:53,280 –> 00:01:54,000
قصد داریم انجام دهیم در
60
00:01:54,000 –> 00:01:56,320
واقع برنامه است مدل انتقال سبک خود را
61
00:01:56,320 –> 00:01:58,799
به استایل و تصاویر محتوای ما بسازید
62
00:01:58,799 –> 00:02:01,119
تا بتوانیم تصویر تولید شده
63
00:02:01,119 –> 00:02:02,640
خود یا یک تصویر تلطیف شده تولید کنیم،
64
00:02:02,640 –> 00:02:04,320
سپس کاری که ما انجام می دهیم این است که آن را تجسم می کنیم
65
00:02:04,320 –> 00:02:06,159
و اگر می خواهید می توانید
66
00:02:06,159 –> 00:02:06,560
با استفاده از
67
00:02:06,560 –> 00:02:09,758
opencv آماده انجام آن نیز خروجی بگیرید. بیایید خوب به آن برسیم،
68
00:02:09,758 –> 00:02:12,319
بنابراین برای انجام
69
00:02:12,319 –> 00:02:13,920
انتقال سبک دیواری،
70
00:02:13,920 –> 00:02:16,000
چهار کار کلیدی وجود دارد که باید انجام دهیم،
71
00:02:16,000 –> 00:02:17,440
ابتدا باید
72
00:02:17,440 –> 00:02:19,440
وابستگیها و مدل از پیش آموزشدیده خود را وارد کنیم،
73
00:02:19,440 –> 00:02:20,959
سپس کاری که میخواهیم انجام دهیم نوشتن یک
74
00:02:20,959 –> 00:02:23,040
عملکردی برای پیش پردازش تصویر و
75
00:02:23,040 –> 00:02:25,280
بارگذاری آن است، سپس
76
00:02:25,280 –> 00:02:27,280
تصاویر خود را که آپلود یا بارگذاری کرده ایم تجسم می
77
00:02:27,280 –> 00:02:28,879
کنیم و سپس در واقع انتقال سبک عصبی یا سبک سازی خود را انجام می دهیم،
78
00:02:28,879 –> 00:02:31,440
79
00:02:31,440 –> 00:02:33,200
بنابراین ابتدا اجازه دهید ادامه دهیم و
80
00:02:33,200 –> 00:02:34,720
وابستگی های خود را وارد کنیم. پنج وابستگی کلیدی وجود
81
00:02:34,720 –> 00:02:36,560
دارد که به آنها نیاز خواهیم داشت،
82
00:02:36,560 –> 00:02:39,360
اینها عبارتند از tensorflow hub tensorflow
83
00:02:39,360 –> 00:02:40,400
matplotlib
84
00:02:40,400 –> 00:02:42,319
و ما همچنین به numpy و opencv نیاز
85
00:02:42,319 –> 00:02:46,640
داریم، بنابراین بیایید به جلو برویم و همه
86
00:02:48,840 –> 00:02:51,840
اینها را درست وارد کنیم،
87
00:02:54,640 –> 00:02:57,120
بنابراین این وابستگیهای ما هستند،
88
00:02:57,120 –> 00:02:57,760
89
00:02:57,760 –> 00:02:59,680
بنابراین ما پنج مورد را وارد کردهایم. بخش endency همانطور که میگفتم
90
00:02:59,680 –> 00:03:01,840
، بنابراین ما هاب تنسورفلو را وارد کردهایم،
91
00:03:01,840 –> 00:03:03,840
بنابراین برای انجام این کار،
92
00:03:03,840 –> 00:03:06,879
هاب زیرخط تنسورفلو را بهعنوان هاب
93
00:03:06,879 –> 00:03:07,760
94
00:03:07,760 –> 00:03:09,440
نوشتیم، سپس تنسورفلو را وارد کردیم، بنابراین برای انجام این کار،
95
00:03:09,440 –> 00:03:11,519
import tensorflow را بهعنوان tf نوشتیم،
96
00:03:11,519 –> 00:03:12,959
بنابراین این بدان معناست که ما ما
97
00:03:12,959 –> 00:03:14,720
قادر خواهیم بود به tensorflow به عنوان tf
98
00:03:14,720 –> 00:03:16,480
در تمام طول مدت اشاره کنیم، سپس ما
99
00:03:16,480 –> 00:03:18,560
matplotlib را از matplotlib
100
00:03:18,560 –> 00:03:21,360
import pi نمودار به عنوان plt وارد کردیم، بنابراین این بدان معناست که
101
00:03:21,360 –> 00:03:23,120
هر زمان که به طرح pi یا
102
00:03:23,120 –> 00:03:24,400
matplotlib اشاره می کنیم، فقط
103
00:03:24,400 –> 00:03:25,680
plt را می نویسیم
104
00:03:25,680 –> 00:03:27,440
و سپس ما ‘ numpy را وارد کرده ایم بنابراین برای انجام
105
00:03:27,440 –> 00:03:29,760
آن، نوشته ایم import numpy mp است و سپس opencv را وارد کرده ایم،
106
00:03:29,760 –> 00:03:31,920
بنابراین برای انجام
107
00:03:31,920 –> 00:03:34,239
این کار، import cb2 را نوشتیم،
108
00:03:34,239 –> 00:03:35,680
اکنون کار بعدی که می خواهیم انجام دهیم این است که
109
00:03:35,680 –> 00:03:37,519
در واقع موارد از پیش آموزش دیده خود را بارگذاری کنیم. مدل
110
00:03:37,519 –> 00:03:39,360
بنابراین در این مورد ما از مدل سبک سازی
111
00:03:39,360 –> 00:03:41,519
تصویر دلخواه از قبل آموزش دیده
112
00:03:41,519 –> 00:03:44,080
از tensorflow hub استفاده می کنیم همانطور
113
00:03:44,080 –> 00:03:45,519
که می گفتم از اینجا می گیریم
114
00:03:45,519 –> 00:03:47,120
115
00:03:47,120 –> 00:03:48,799
و برای گرفتن آن فقط می توانیم
116
00:03:48,799 –> 00:03:50,879
آدرس اینترنتی را کپی کنیم و من
117
00:03:50,879 –> 00:03:53,280
یک پیوند به این را در داخل توضیحات
118
00:03:53,280 –> 00:03:54,879
زیر قرار خواهم داد و همچنین
119
00:03:54,879 –> 00:03:56,560
کل دفترچه یادداشت jupyter، بنابراین شما می توانید
120
00:03:56,560 –> 00:03:58,799
در واقع کل این دفترچه یادداشت را بردارید
121
00:03:58,799 –> 00:04:00,640
و خیلی سریع از آن عبور
122
00:04:00,640 –> 00:04:02,000
کنید، می توانید آن را بردارید و
123
00:04:02,000 –> 00:04:03,360
در کمترین زمان آن را اجرا کنید،
124
00:04:03,360 –> 00:04:05,439
بنابراین به جای کپی کردن این آدرس اینترنتی،
125
00:04:05,439 –> 00:04:06,959
من در واقع به هنگامی
126
00:04:06,959 –> 00:04:08,239
که مدل خود را بارگذاری می کنیم، آن را بنویسید،
127
00:04:08,239 –> 00:04:09,760
بنابراین برای بارگذاری مدل
128
00:04:09,760 –> 00:04:12,640
خود، از روش hub.load استفاده می
129
00:04:12,640 –> 00:04:16,080
کنیم، پس بیایید جلوتر برویم و آن را کاملاً بارگذاری
130
00:04:23,840 –> 00:04:26,000
کنیم تا مدل ما بارگیری
131
00:04:26,000 –> 00:04:27,520
شود تا بارگذاری شود. مدل
132
00:04:27,520 –> 00:04:30,160
ما از روش hub.load استفاده کردهایم بنابراین
133
00:04:30,160 –> 00:04:31,919
hub.load و سپس از
134
00:04:31,919 –> 00:04:33,280
طریق پیوند به مدلی که میخواهیم
135
00:04:33,280 –> 00:04:35,280
دانلود کنیم، عبور دادهایم، بنابراین در این مورد
136
00:04:35,280 –> 00:04:37,280
مدل سبکسازی را داریم، اما انبوهی
137
00:04:37,280 –> 00:04:38,639
از مدلهای دیگر وجود دارد. که
138
00:04:38,639 –> 00:04:39,759
میتوانید از اینجا دانلود کنید،
139
00:04:39,759 –> 00:04:41,360
بنابراین مدلهای تصویری مدلهای متنی مدلهای
140
00:04:41,360 –> 00:04:43,199
ویدیویی مدلهای صوتی
141
00:04:43,199 –> 00:04:44,479
مجموعهای از مدلها وجود دارد که میتوانید با آنها
142
00:04:44,479 –> 00:04:46,400
بازی کنید و سپس کاری که ما رفتهایم و
143
00:04:46,400 –> 00:04:48,160
انجام دادهایم این است که آن مدل را
144
00:04:48,160 –> 00:04:50,240
در یک متغیر به نام مدل ذخیره کردهایم. دوباره
145
00:04:50,240 –> 00:04:52,160
کل این لینک https
146
00:04:52,160 –> 00:04:54,960
به جلو اسلش tf h است ub.dev فوروارد اسلش
147
00:04:54,960 –> 00:04:56,800
گوگل فوروارد اسلش سرخابی به جلو
148
00:04:56,800 –> 00:04:57,840
اسلش اسلش
149
00:04:57,840 –> 00:05:01,400
دلخواه تصویر dash
150
00:05:01,400 –> 00:05:04,240
v1-256 به جلو اسلش دو دوباره من قصد دارم
151
00:05:04,240 –> 00:05:05,759
این لینک را در
152
00:05:05,759 –> 00:05:07,600
داخل توضیحات زیر قرار
153
00:05:07,600 –> 00:05:09,120
دهم بنابراین اگر اکنون آن را از اینجا دریافت نکرده اید نیازی به نگرانی
154
00:05:09,120 –> 00:05:10,240
نیست کار بعدی که قرار است
155
00:05:10,240 –> 00:05:12,240
انجام دهیم این است که تابعی را تعریف کنیم
156
00:05:12,240 –> 00:05:14,000
که از آن برای بارگذاری تصاویر
157
00:05:14,000 –> 00:05:15,680
و پیش پردازش آنها استفاده می کنیم، بنابراین اولین کاری
158
00:05:15,680 –> 00:05:16,960
که می خواهیم انجام دهیم این است
159
00:05:16,960 –> 00:05:18,800
که تصویر خود را با استفاده از tensorflow بارگذاری کنیم.
160
00:05:18,800 –> 00:05:20,880
رمزگشایی آن و اطمینان از اینکه
161
00:05:20,880 –> 00:05:22,720
سه کانال دارد، سپس آن را مجدداً قالب بندی می
162
00:05:22,720 –> 00:05:24,479
کنیم و مطمئن می شویم که در
163
00:05:24,479 –> 00:05:27,360
قالب float 32 باشد و در آخر،
164
00:05:27,360 –> 00:05:28,880
165
00:05:28,880 –> 00:05:30,960
یک محور جدید اضافه می کنیم، زیرا مدل ما انتظار دارد این
166
00:05:30,960 –> 00:05:32,479
باشد. در داخل
167
00:05:32,479 –> 00:05:34,400
آرایه خودش و سپس کاری که میخواهیم انجام دهیم این است
168
00:05:34,400 –> 00:05:36,080
که تصویر خود را برگردانیم، بنابراین بیایید ادامه دهیم و
169
00:05:36,080 –> 00:05:36,720
170
00:05:36,720 –> 00:05:39,840
این تابع را
171
00:05:55,600 –> 00:05:57,919
کاملاً تعریف کنیم، بنابراین تابع تصویر بارگذاری ما
172
00:05:57,919 –> 00:05:58,639
173
00:05:58,639 –> 00:06:00,639
تعریف شده است، بنابراین برای انجام آن،
174
00:06:00,639 –> 00:06:02,880
شش خط کد نوشتهایم و خط اول
175
00:06:02,880 –> 00:06:05,039
نام تابع ما را به این صورت تعریف می کند
176
00:06:05,039 –> 00:06:06,000
این مورد ما آن را
177
00:06:06,000 –> 00:06:08,400
بارگذاری تصویر زیر خط نامگذاری کرده ایم، سپس به
178
00:06:08,400 –> 00:06:10,400
آن تابع انتظار می رود که
179
00:06:10,400 –> 00:06:11,840
از مسیر تصویر خود عبور کنیم، بنابراین در این
180
00:06:11,840 –> 00:06:13,360
مورد تصاویری که قرار است استفاده
181
00:06:13,360 –> 00:06:15,759
کنیم در همان دایرکتوری با
182
00:06:15,759 –> 00:06:16,639
نوت بوک های jupyter ما
183
00:06:16,639 –> 00:06:18,560
قرار دارند. تصاویر داخل یک
184
00:06:18,560 –> 00:06:20,400
زیر شاخه را از طریق
185
00:06:20,400 –> 00:06:22,639
مسیر کامل به آن تصویر از جمله
186
00:06:22,639 –> 00:06:24,479
نام واقعی تصویر عبور می دهید، سپس کاری که
187
00:06:24,479 –> 00:06:26,000
ما انجام می دهیم این است که از برخی از
188
00:06:26,000 –> 00:06:28,080
کمک کننده های tensorflow i o برای خواندن در
189
00:06:28,080 –> 00:06:29,280
فایل خود استفاده می کنیم تا tf
190
00:06:29,280 –> 00:06:31,360
dot io dot خوانده شود. فایل و سپس ما
191
00:06:31,360 –> 00:06:32,960
از مسیر تصویر خود عبور می کنیم
192
00:06:32,960 –> 00:06:34,400
و دوباره همه این
193
00:06:34,400 –> 00:06:36,080
موارد را در یک متغیر به نام image ذخیره
194
00:06:36,080 –> 00:06:37,600
می کنیم، بنابراین در انتها آن تصویر را برمی گردانیم
195
00:06:37,600 –> 00:06:38,880
و سپس کاری که انجام می
196
00:06:38,880 –> 00:06:40,560
دهیم این است که مطمئن شویم که تصویر ما دارای
197
00:06:40,560 –> 00:06:43,319
سه کانال است، بنابراین از tf.image.decodeimage استفاده
198
00:06:43,319 –> 00:06:44,960
می کنیم و
199
00:06:44,960 –> 00:06:46,240
از تصویر خود عبور می کنیم و سپس
200
00:06:46,240 –> 00:06:48,240
کانال ها را برابر با سه قرار می دهیم، سپس
201
00:06:48,240 –> 00:06:50,720
نوع d یا نوع داده خود را تبدیل
202
00:06:50,720 –> 00:06:52,479
می کنیم و مطمئن می شویم که دارای
203
00:06:52,479 –> 00:06:54,240
فرمت float32 است،
204
00:06:54,240 –> 00:06:56,120
بنابراین برای انجام این کار ما wri کرده ایم
205
00:06:56,120 –> 00:06:58,400
tten tf.image.convert نوع تصویری
206
00:06:58,400 –> 00:06:59,759
که از تصویر ما می
207
00:06:59,759 –> 00:07:03,039
گذرد و نوع داده را روی tf.float32 تنظیم می
208
00:07:03,039 –> 00:07:04,400
کنیم و سپس مطمئن می شویم که
209
00:07:04,400 –> 00:07:06,479
تصویر ما داخل یک آرایه جدید است، بنابراین
210
00:07:06,479 –> 00:07:08,639
از tf.newaxis عبور می کنیم
211
00:07:08,639 –> 00:07:10,160
تا تصویر خود را می گذرانیم و سپس
212
00:07:10,160 –> 00:07:12,160
از یک نمایه کننده عبور می کنیم که
213
00:07:12,160 –> 00:07:13,680
اساساً