рд╕рд┐рдиреЗрдЯ - рд╕реАрдкреАрдпреВ рдкрд░ рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛

рдореЗрд░реА рдмрд╛рдЗрдХ

рдкрд░рд┐рдЪрдп


рдирдорд╕реНрдХрд╛рд░, рдкреНрдпрд╛рд░реЗ рдЦрд╝рдмрд░реЛрд╡реАрд╕!

рд╕рд┐рдиреЗрд╕рд┐рд╕ рдореЗрдВ рдореЗрд░реЗ рдХрд╛рдо рдХреЗ рдкрд┐рдЫрд▓реЗ рджреЛ рд╡рд░реНрд╖реЛрдВ рдХреЛ рд╕реАрдиреЗрдЯ рдмрдирд╛рдиреЗ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдирд┐рдХрдЯрддрд╛ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ - рд╕реАрдкреАрдпреВ рдкрд░ рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рджреГрдврд╝ -рддрдВрддреНрд░рд┐рдХрд╛ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реАред рдЗрд╕ рдХрд╛рдо рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореБрдЭреЗ рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬреЛ рдХрд┐ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╕рд╛рд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЕрдиреБрдХреВрд▓рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрди рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╡рд░рдг рд╣реИрдмреНрд░рд╛рд╣рдмрд░ рдХреЗ рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред рдореИрдВ рдЕрдкрдиреЗ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдорд░реНрдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЪрдХреНрд░ рдХреА рдЕрд╡рдзрд┐ рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рдЖрдкрдХреА рд░реБрдЪрд┐ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрд▓рд╕реНрдп рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреА рдореЗрд░реА рдХреНрд╖рдорддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧреАред рдореИрдВ рдЪрдХреНрд░ рдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдмрд╛рдЗрдХ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдмрд╛рдж рдЖрдиреЗ рд╡рд╛рд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдмрддрд╛рдП рдЧрдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдкреНрд░рд╢реНрди:

  1. рдХрдиреНрд╡реЗрдВрд╢рди рд▓реЗрдпрд░: рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрди рдЕрдиреБрдХреВрд▓рди рддрдХрдиреАрдХ
  2. рд╕рдВрд╡рд╛рджреА рдкрд░рдд: рд╢рдореВрдПрд▓ рд╡рд┐рдиреЛрдЧреНрд░рд╛рдж рдХреА рд╡рд┐рдзрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддреЗрдЬреА рд╕реЗ рджреГрдврд╝ рд╕рдВрдХрд▓реНрдк


рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм


рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рддреБрд░рдВрдд рдЙрди рдХрдИ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдЬреЛ рдкрд╛рдардХреЛрдВ рдХреЗ рдкрд╛рд╕ рд╣реЛрдВрдЧреЗред рдЕрдиреБрднрд╡ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдРрд╕рд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рддреБрд░рдВрдд рдЧреБрд╕реНрд╕реЗ рд╡рд╛рд▓реА рдЯрд┐рдкреНрдкрдгреА рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдВрдд рддрдХ рдирд╣реАрдВ рдкрдврд╝рддреЗ рд╣реИрдВред

рдкрд╣рд▓рд╛ рд╕рд╡рд╛рд▓ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдарддрд╛ рд╣реИ: рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреМрди рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЬрдм рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдПрдХреНрд╕реЗрд▓реЗрд░реЗрдЯрд░ рдФрд░ рдЯреЗрдВрд╕рд░ (рдореИрдЯреНрд░рд┐рдХреНрд╕) рдПрдХреНрд╕реАрд▓реЗрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ?
рдореИрдВ рдЬрд╡рд╛рдм рджреВрдВрдЧрд╛ рдХрд┐ рд╣рд╛рдВ - рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реАрдкреАрдпреВ рдкрд░ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рддреИрдпрд╛рд░-рдирд┐рд░реНрдорд┐рдд рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЪрд▓рд╛рдирд╛ рдХрд╛рдлреА рдорд╛рдВрдЧ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рдлреА рдЫреЛрдЯрд╛ рд╣реИред рдЗрд╕рдХреЗ рдХрд╛рд░рдг рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рд╣реИрдВ:

  1. рд╕реАрдкреАрдпреВ рдЕрдзрд┐рдХ рдЖрдо рд╣реИрдВред рд╕рднреА рдорд╢реАрдиреЛрдВ рдореЗрдВ рдПрдХ рдЬреАрдкреАрдпреВ рдирд╣реАрдВ рд╣реЛрддрд╛, рдЦрд╛рд╕рдХрд░ рд╕рд░реНрд╡рд░ред
  2. рдЫреЛрдЯреЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░, GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд▓рд╛рдн рдЫреЛрдЯреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдХрднреА-рдХрднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
  3. рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП GPU рдХреЛ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдорддреМрд░ рдкрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдВрд░рдЪрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЕрдЧрд▓рд╛ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рд╢реНрди: рдЬрдм рдЯреЗрдиреНрд╕рд░рдлрд╝реНрд▓реЛ , рдХреИрдл рдпрд╛ рдПрдордПрдХреНрд╕рдиреЗрдЯ рд╣реЛрддрд╛ рд╣реИ , рддреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?

рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрддреНрддрд░ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:

  1. рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдврд╛рдБрдЪреЗ рд╣рдореЗрд╢рд╛ рдЕрдЪреНрдЫреЗ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ - рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдХрд┐рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрдИ рдореЙрдбрд▓ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдХреЛ рдПрдХ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
  2. рдХреНрд▓рд╛рд╕рд┐рдХ рд░реВрдкрд░реЗрдЦрд╛ рдЬреАрдкреАрдпреВ рдореЙрдбрд▓ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдП рдЧрдП рдереЗ - рдФрд░ рд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреЗ рд╣реИрдВ! рд▓реЗрдХрд┐рди рд╕реАрдкреАрдпреВ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдирдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмреЗрдорд╛рдиреА рд╣реИ рдФрд░ рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реИред
  3. рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ OpenVino рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рд╣реИ - рдЗрдВрдЯреЗрд▓ рд╕реЗ рдПрдХ рд░реВрдкрд░реЗрдЦрд╛, рдЬреЛ рдПрдХ рд╣реА рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рддреБрд░рдВрдд рд╕рд╛рдЗрдХрд┐рд▓ рдХреЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рдХрд┐рд╕реА рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╡рд┐рд╢реНрд╡ рдиреЗрддрд╛ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреЗрд╢реЗрд╡рд░ рд╕рдорд╛рдзрд╛рди рд╣реЛрдиреЗ рдкрд░ рдЕрдкрдиреЗ рд╢рд┐рд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?
рдореЗрд░рд╛ рдЙрддреНрддрд░ рд╣реИ:

  1. Synet рдкрд░ рдХрд╛рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, OpenVino рдЕрднреА рднреА рдЕрдкрдиреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рдерд╛ред рдФрд░ рд╕рдЪ рдореЗрдВ, рдЕрдЧрд░ рдЙрд╕ рд╕рдордп OpenVino рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдерд╛, рддреЛ рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ред
  2. рдЖрдк рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЦреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдзрд┐рдХрддрдо рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдкреНрд░рджрд░реНрд╢рди рдереАред
  3. рдЖрдк рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдЪрд╛рдирдХ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдИ рдкрд░рдд рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ)ред
  4. рдПрдХ рдЯрд░реНрдирдХреА рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реИред
  5. X86 / x86_64 рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдХрд╛рдордХрд╛рдЬ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдЖрд░рдПрдо рдкрд░ред

рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдкрд╛рдардХреЛрдВ рдХреЗ рдкрд╛рд╕ рдЕрдиреНрдп рдкреНрд░рд╢реНрди рдпрд╛ рдЖрдкрддреНрддрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА - рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рднреА рдЙрдирдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓реЗрдЦ рдХрд╛ рдЬрд╡рд╛рдм рджреВрдВрдЧрд╛ред рдЗрд╕ рдмреАрдЪ, рдЪрд▓реЛ рд╕рд┐рдиреЗрдЯ рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░реЗрдВред

рд╕рд┐рдирдЯ рд╢рд╛рд░реНрдЯ рдбрд┐рдЯреЗрд▓реНрд╕


Synet C ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ ред рдХрдо-рд╕реНрддрд░реАрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо- рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдХреВрд▓рди рд╕рд┐рдордб рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдПрдХ рдЕрдиреНрдп рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреЛ рд╕реАрдкреАрдпреВ рдкрд░ рдЫрд╡рд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИред рдФрд░ рдпрд╣ рд╕рд┐рдиреЗрдЯ рдХреА рдПрдХрдорд╛рддреНрд░ рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ (рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдПрдХреАрдХрд░рдг рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреА рдпреЛрдЬрдирд╛ рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛)ред рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЫрд╡рд┐

рдЖрдВрддрд░рд┐рдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рджреЛ-рдЪрд░рдгреАрдп рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: 1) рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореЙрдбрд▓ рдХреЛ рдЗрдирд╡реЗрдВрд╢рди рдЗрдВрдЬрди рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ (рдЕрдЪреНрдЫрд╛)
OpenVINO рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг рд╣реИрдВ )ред 2) рдлрд┐рд░, рдЗрд╕ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕реЗ, рд╕реАрдзреЗ рдЖрдВрддрд░рд┐рдХ Synet рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВред

рдЫрд╡рд┐

Synet рдореЙрдбрд▓ рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ: 1) * .XML - рдПрдХ рдлрд╛рдЗрд▓ рдЬрд┐рд╕рдореЗрдВ рдореЙрдбрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реЛрддрд╛ рд╣реИред 2) * .BIN - рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рднрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ред

рдЫрд╡рд┐

рд╕рд┐рдиреЗрдЯ рдЙрджрд╛рд╣рд░рдг


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреЗрд╣рд░реЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП Synet рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдореВрд▓ рдЗрдВрдЯреНрд░реЗрдВрд╕ рдЗрдВрдЬрди рдореЙрдбрд▓ рдпрд╣рд╛рдБ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред

#define SYNET_SIMD_LIBRARY_ENABLE #include "Synet/Network.h" #include "Synet/Converters/InferenceEngine.h" #include "Simd/SimdDrawing.hpp" typedef Synet::Network<float> Net; typedef Synet::View View; typedef Synet::Shape Shape; typedef Synet::Region<float> Region; typedef std::vector<Region> Regions; int main(int argc, char* argv[]) { Synet::ConvertInferenceEngineToSynet("ie_fd.xml", "ie_fd.bin", true, "synet.xml", "synet.bin"); Net net; net.Load("synet.xml", "synet.bin"); net.Reshape(256, 256, 1); Shape shape = net.NchwShape(); View original; original.Load("faces_0.ppm"); View resized(shape[3], shape[2], original.format); Simd::Resize(original, resized, ::SimdResizeMethodArea); net.SetInput(resized, 0.0f, 255.0f); net.Forward(); Regions faces = net.GetRegions(original.width, original.height, 0.5f, 0.5f); uint32_t white = 0xFFFFFFFF; for (size_t i = 0; i < faces.size(); ++i) { const Region & face = faces[i]; ptrdiff_t l = ptrdiff_t(face.x - face.w / 2); ptrdiff_t t = ptrdiff_t(face.y - face.h / 2); ptrdiff_t r = ptrdiff_t(face.x + face.w / 2); ptrdiff_t b = ptrdiff_t(face.y + face.h / 2); Simd::DrawRectangle(original, l, t, r, b, white); } original.Save("annotated_faces_0.ppm"); return 0; } 

рдЙрджрд╛рд╣рд░рдг рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдиреЛрдЯреЗрдЯ рдЪреЗрд╣рд░реЗ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╕реНрд╡реАрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП:

рдЫрд╡рд┐

рдЕрдм рдЖрдЗрдП рдХрджрдореЛрдВ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЗрддреЗ рд╣реИрдВ:

  1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореЙрдбрд▓ рдХреЛ рдЗрдВрдЯреНрд░реЗрдВрд╕ рдЗрдВрдЬрди рдкреНрд░рд╛рд░реВрдк рд╕реЗ Synet рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

     Synet::ConvertInferenceEngineToSynet("ie_fd.xml", "ie_fd.bin", true, "synet.xml", "synet.bin"); 

    рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдХрджрдо рдПрдХ рдмрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рд░ рдЬрдЧрд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  2. рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдореЙрдбрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:

     Net net; net.Load("synet.xml", "synet.bin"); 
  3. рдЗрдирдкреБрдЯ рдЫрд╡рд┐ рдФрд░ рдмреИрдЪ рдХреЛ рдЖрдХрд╛рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрджрдо (рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдореЙрдбрд▓ рдХреЛ рдЗрдирдкреБрдЯ рдЫрд╡рд┐ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП):

     net.Reshape(256, 256, 1); 
  4. рдЪрд┐рддреНрд░ рд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдЙрд╕реЗ рдореЙрдбрд▓ рдХреЗ рдЗрдирдкреБрдЯ рдЖрдХрд╛рд░ рдореЗрдВ рд▓рд╛рдирд╛:

     View original; original.Load("faces_0.ppm"); View resized(net.NchwShape()[3], net.NchwShape()[2], original.format); Simd::Resize(original, resized, ::SimdResizeMethodArea); 
  5. рдореЙрдбрд▓ рдореЗрдВ рд▓реЛрдб рд╣реЛ рд░рд╣реА рдЫрд╡рд┐:

     net.SetInput(resized, 0.0f, 255.0f); 
  6. рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╕рд╛рд░ рд╢реБрд░реВ рдХрд░рдирд╛:

     net.Forward(); 
  7. рдкрд╛рдП рдЧрдП рдЪреЗрд╣рд░реЛрдВ рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛:

     Regions faces = net.GetRegions(original.width, original.height, 0.5f, 0.5f); 

рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛


рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рд╕рд┐рдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде Synet рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╢рд╛рдпрдж рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Inference Engine рдиреЗ рдХрдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдХрдИ рдмрд╛рд░ рдмрд╛рдпрдкрд╛рд╕ рдХрд┐рдпрд╛ ред
рдЗрд╕рд▓рд┐рдП, рдирд┐рдореНрди рдореЙрдбрд▓ рдХреЗ рд╕реЗрдЯ рд╕реЗ рдПрдХ рдирдореВрдиреЗ рдкрд░ рдЗрдВрдЬреЗрдХреНрд╢рди рдЗрдВрдЬрди (рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдПрдХ рдЙрддреНрдкрд╛рдж) рдФрд░ рд╕рд┐рдиреЗрдЯ рдХреЗ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рдХрд╕реМрдЯреАрд╡рд┐рд╡рд░рдгi7-6700 3.4GHz 4c / 8t FMA / AVX-2i9-7900X 3.3GHz 10c / 20t AVX-512
test_000рд╡рд╛рд╣рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдорд╛рдиреНрдпрддрд╛ (2.4 рдПрдордмреА)1.520 / 1.597 рдПрдордПрд╕ ( -5% )0.772 / 0.690 рдПрдордПрд╕ ( + 12% )
test_001рдЖрдпреБ рд▓рд┐рдВрдЧ рдкрд╣рдЪрд╛рди (8.2 рдПрдордмреА)1.659 / 1.418 рдПрдордПрд╕ ( + 17% )0.988 / 0.804 рдПрдордПрд╕ ( + 23% )
test_002рдлреЗрд╕ рдбрд┐рдЯреЗрдХреНрд╢рди (4.0 рдПрдордмреА)34.26 / 43.17 рдПрдордПрд╕ ( -21% )26.72 / 24.57 рдПрдордПрд╕ ( + 9% )
test_003fрдлреЗрд╕ рдбрд┐рдЯреЗрдХреНрд╢рди (2.2 рдПрдордмреА)12.63 / 14.87 рдПрдордПрд╕ ( -15% )8.680 / 9.326 рдПрдордПрд╕ ( -7% )
test_004рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд▓реЗрдЯ рдорд╛рдиреНрдпрддрд╛ (4.6 рдПрдордмреА)4.350 / 4.871 рдПрдордПрд╕ ( -11% )2.838 / 2.432 рдПрдордПрд╕ ( + 17% )
test_005рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд▓реЗрдЯ рдорд╛рдиреНрдпрддрд╛ (0.7 рдПрдордмреА)0.339 / 0.260 рдПрдордПрд╕ ( + 30% )0.200 / 0.142 рдПрдордПрд╕ ( + 41% )
test_006рдЪреЗрд╣рд░рд╛ рдкрд╣рдЪрд╛рдирдирд╛ (4.2 MB)11.82 / 9.052 рдПрдордПрд╕ ( + 31% )8.200 / 4.559 рдПрдордПрд╕ ( + 80% )
test_007рд╡реНрдпрдХреНрддрд┐ рдХреА рдкрд╣рдЪрд╛рди (3.1 MB)3.567 / 3.402 рдПрдордПрд╕ ( + 5% )2.471 / 1.679 рдПрдордПрд╕ ( + 47% )
рдФрд╕рдд+ 2%+ 25%

рдЬреИрд╕рд╛ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, AVX2 (i7-6700) рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рдорд╢реАрди рдкрд░ рдЗрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, Synet рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдЖрдорддреМрд░ рдкрд░ Inference рдЗрдВрдЬрди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдореЙрдбрд▓ рд╕реЗ рдореЙрдбрд▓ рдореЗрдВ рдмрд╣реБрдд рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ)ред AVX-512 (i9-7900X) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╡рд╛рд▓реА рдорд╢реАрди рдкрд░, Synet рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдФрд╕рддрди рдЗрдВрдЬрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдФрд╕рддрди 25% рдЕрдзрд┐рдХ рд╣реИред

рд╕рднреА рдорд╛рдк рдкрд░реАрдХреНрд╖рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдереЗ, рдЬреЛ Synet рдореЗрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдкрд╛рдардХ рд╕реНрд╡рдпрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ:

 git clone -b master --recurse-submodules -v https://github.com/ermig1979/Synet.git synet cd synet ./build.sh inference_engine ./test.sh 

рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди


рдореИрдВ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛:

  1. рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЖрдХрд╛рд░ рдореЗрдВ рдЫреЛрдЯреА рд╣реИ, рдЖрд╕рд╛рдиреА рд╕реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред
  2. рдЙрдЪреНрдЪ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдкреНрд░рджрд░реНрд╢рди рджрд┐рдЦрд╛рддрд╛ рд╣реИред
  3. рдореЛрдмрд╛рдЗрд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (ARM-NEON рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ)ред

рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рд╡рд┐рдкрдХреНрд╖, рдЬрд╣рд╛рдВ рдЙрдирдХреЗ рдмрд┐рдирд╛:

  1. GPU рдФрд░ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖ рддреНрд╡рд░рдХ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред
  2. рдорд▓реНрдЯреА-рдХреЛрд░ рд╕реАрдкреАрдпреВ рдкрд░ рдПрдХ рдХрд╛рд░реНрдп рдХрд╛ рдЦрд░рд╛рдм рд╕рдорд╛рдирд╛рдВрддрд░ред
  3. INT8 (рднрд╛рд░ рдХрд╛ рдкрд░рд┐рдорд╛рдгреАрдХрд░рдг) рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВред

рдирд┐рд╖реНрдХрд░реНрд╖


Synet рд╡рд░реНрддрдорд╛рди рдореЗрдВ Kipod рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рд╡реАрдбрд┐рдпреЛ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб-рдЖрдзрд╛рд░рд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИред рд╢рд╛рдпрдж рдЙрд╕рдХреЗ рдкрд╛рд╕ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ :)ред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреА рд╣реИ, рдореИрдВ рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд╛рддреЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛:

  1. рдирдП рдореЙрдбрд▓, рдкрд░рддреЛрдВ, рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
  2. INT8 рдкреНрд░рд╛рд░реВрдк (рдорд╛рддреНрд░рд╛ рднрд╛рд░) рдореЗрдВ рдкреВрд░реНрдгрд╛рдВрдХ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
  3. GPU рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рдорд░реНрдердиред
  4. ONNX рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВред

рдпрд╣ рд╕реВрдЪреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреВрд░ рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕реЗ рд╕рдореБрджрд╛рдп рдХреА рд░рд╛рдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдкреВрд░рдХ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ - рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ! рдЙрдкрдХрд░рдг рдХреЛ рди рдХреЗрд╡рд▓ рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реЗрдЦрдХ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рдЗрдирдХрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
Synet рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╕рдордп, рдЬреЛ рдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛, рдореИрдВрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЗрд╕рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдбрд╛рд▓рд╛ - рд╣реБрдб рдХреЗ рддрд╣рдд рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рд╡рд░рдг рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛:

  1. рдХрдиреНрд╡реЗрдВрд╢рди рд▓реЗрдпрд░: рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрди рдЕрдиреБрдХреВрд▓рди рддрдХрдиреАрдХ
  2. рд╕рдВрд╡рд╛рджреА рдкрд░рдд: рд╢рдореВрдПрд▓ рд╡рд┐рдиреЛрдЧреНрд░рд╛рдж рдХреА рд╡рд┐рдзрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддреЗрдЬреА рд╕реЗ рджреГрдврд╝ рд╕рдВрдХрд▓реНрдк

Source: https://habr.com/ru/post/hi471074/


All Articles