рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рд╣реА рд╢реАрд░реНрд╖рдХ рд╣реИ, рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╕реНрдиреИрдкрдЪреИрдЯ рдХреЗ рд▓рд┐рдП рд▓реЗрдВрд╕ рдХреЛ dlib рдФрд░ openCV рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рд╣реИ, рдФрд░ рдЖрдЬ рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдореИрдиреБрдЕрд▓ рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд╕реАрдзреЗ рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдпрд╣рд╛рдБ рд╣рдо рдХреНрдпрд╛ рд╣реИ:
Pix2pix рдХреНрдпрд╛ рд╣реИ?
рдпрд╣ рд╡рд┐рд╡рд╛рдж рдиреЗрдЯрд╡рд░реНрдХ (рдЖрдорддреМрд░ рдкрд░ Pix2pix рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЫрд╡рд┐ рдХреЛ рдПрдХ рдЫрд╡рд┐ рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред
"Pix2pix" рдирд╛рдо рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдЫрд╡рд┐ рдХреЛ рдЕрдкрдиреА рд╕рдВрдмрдВрдзрд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдЫрд╡рд┐ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
Pix2pix рдХреА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрд╕рдХреА рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛ рд╣реИ ред рдКрдкрд░ рджрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдпрд╛ рдПрдХ рдирдпрд╛ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдкрд╣рд▓реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, pix2pix рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдФрд░ рдЫреЛрдЯреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рдирд╛ рд╕реАрдЦрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 400 рдЬреЛрдбрд╝реА рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдФрд░ рджреЛ рдШрдВрдЯреЗ рд╕реЗ рдХрдо рд╕рдордп рдореЗрдВ рдкрд╛рд╕реНрдХрд▓ рдЯрд╛рдЗрдЯрди рдПрдХреНрд╕ рдЬреАрдкреАрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдереЗред
Pix2pix рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
pix2pix рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд╕реАрдЦрдиреЗ рд╡рд╛рд▓реЗ рджреЛ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
- рдЬрдирдХ
- discriminator
рдЬрдирд░реЗрдЯрд░ рдЗрдирдкреБрдЯ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рд╕реЗ рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рдЫрд╡рд┐ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рд╡реЗрдЪрдХ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ рдпрд╛ рдЙрддреНрдкрдиреНрдиред
рдЬрдм рдЬрдирд░реЗрдЯрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓реЛрдЧреЛрдВ рд╕реЗ рдЕрдкреНрд░рднреЗрджреНрдп (рднреЗрджрднрд╛рд╡рдкреВрд░реНрдг) рдЪрд┐рддреНрд░ рдмрдирд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЙрди рдкрд░ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рднреЗрджрднрд╛рд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рд╡рд┐рд╡реЗрдЪрдХ рдЬрдирд┐рдд рдЪрд┐рддреНрд░реЛрдВ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдлрд┐рд░ рд╕реЗ рдЬрдирд░реЗрдЯрд░ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╡рд┐рд╡реЗрдЪрдХ рдХреЛ рдзреЛрдЦрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдЦреЗред
рдЗрд╕ рддрд░рд╣ рдХреА "рд╣рдерд┐рдпрд╛рд░реЛрдВ рдХреА рджреМрдбрд╝" рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрднреНрдпрд╛рд╕
рд╣рдо рд╕реНрдиреИрдкрдЪреИрдЯ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдЬрдирд░реЗрдЯрд░ рдХреЛ 256x256 рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ (рдмрдбрд╝реЗ рдЖрдХрд╛рд░реЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА)ред рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдореИрдВрдиреЗ рдХрдИ рдЪреЗрд╣рд░реЗ рдХреА рдЫрд╡рд┐рдпрд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХреАрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ "рдардЧ рдЬреАрд╡рди рдЪрд╢реНрдорд╛" рдлрд╝рд┐рд▓реНрдЯрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдпрд╣ рдЗрди рдЬреЛрдбрд╝реЛрдВ рдХреА рддрд░рд╣ рдХреБрдЫ рдмрд╛рд╣рд░ рдХрд░ рджреЗрдЧрд╛:
рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, TensorFlow рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Pix2pix рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд▓реЗрдВред рдЗрд╕реЗ рдХреНрд▓реЛрди рдХрд░реЗрдВ рдФрд░ Tensorflow рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХрдорд╛рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧреА:
python pix2pix.py --mode train --output_dir dir_to_save_checkpoint --max_epochs 200 --input_dir dir_with_training_data --which_direction AtoB
рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛ_рдирдпрди рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреА рджрд┐рд╢рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред AtoB рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдЫрд╡рд┐ A (рдмрд╛рдПрдВ, рдмрд┐рдирд╛ рдЪрд╢реНрдореЗ) рдХреЛ рдЫрд╡рд┐ B (рджрд╛рдПрдВ, рдЪрд╢реНрдореЗ рдХреЗ рд╕рд╛рде) рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╡реИрд╕реЗ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ pix2pix рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд╡рд┐ рд╕реЗ рдореВрд▓ рдЫрд╡рд┐ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╕реАрдЦ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреА рджрд┐рд╢рд╛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред
рдЖрдк рдЯреЗрдВрд╕рд░рдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкреНрд░рдЧрддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
tensorboard --logdir=dir_to_save_checkpoint
рдЬреИрд╕реЗ рд╣реА рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рдкрд░ рдкрд░рд┐рдгрд╛рдо рдХрд╛рдлреА рдЕрдЪреНрдЫреЗ рд╣реЛ рдЧрдП рд╣реИрдВ, рдЖрдк рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдордирдорд╛рдиреЗ рдбреЗрдЯрд╛ рдкрд░ рдореЙрдбрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдирд┐рдореНрди рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
python pix2pix.py --mode train --output_dir dir_to_save_checkpoint --max_epochs 200 --input_dir dir_with_training_data --which_direction AtoB --checkpoint dir_of_saved_checkpoint
рдирд┐рд╖реНрдХрд░реНрд╖
Pix2pix-type рдЬреЗрдиреЗрд░рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХреЛрдВ рдХреЗ рдЖрдЧрдорди рд╕реЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдореЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдФрд░ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдХреА рдХрд╛рдлреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЦреБрд▓ рдЬрд╛рддреА рд╣реИрдВред