OpenVINO hackathon: Raspberry Pi рдорд╛ рдЖрд╡рд╛рдЬ рд░ рднрд╛рд╡рдирд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрджреИ

рдиреЛрднреЗрдореНрдмрд░ 30 - рдбрд┐рд╕реЗрдореНрдмрд░ 1 Nizhny Novgorod рдорд╛ рдЖрдпреЛрдЬрд┐рдд рднрдПрдХреЛ рдерд┐рдпреЛ OpenVINO hackathonред рд╕рд╣рднрд╛рдЧреАрд╣рд░реВрд▓рд╛рдИ Intel OpenVINO рдЯреВрд▓рдХрд┐рдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЙрддреНрдкрд╛рджрди рд╕рдорд╛рдзрд╛рдирдХреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рднрдирд┐рдпреЛред рдЖрдпреЛрдЬрдХрд╣рд░реВрд▓реЗ рдЕрдиреБрдорд╛рдирд┐рдд рд╡рд┐рд╖рдпрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реЗ рдЬреБрди рдХрд╛рд░реНрдп рдЫрдиреМрдЯ рдЧрд░реНрджрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рддрд░ рдЕрдиреНрддрд┐рдо рдирд┐рд░реНрдгрдп рдЯреЛрд▓реАрд╣рд░реВрдорд╛ рд░рд╣реНрдпреЛред рдердк рд░реВрдкрдорд╛, рдЙрддреНрдкрд╛рджрдирдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдирдЧрд░рд┐рдПрдХрд╛ рдореЛрдбреЗрд▓рд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред

OpenVINO hackathon: Raspberry Pi рдорд╛ рдЖрд╡рд╛рдЬ рд░ рднрд╛рд╡рдирд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрджреИ

рдпрд╕ рд▓реЗрдЦрдорд╛ рд╣рд╛рдореА рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрд╕рд░реА рдЙрддреНрдкрд╛рджрдирдХреЛ рд╣рд╛рдореНрд░реЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдпреМрдВ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдмрддрд╛рдЙрдиреЗрдЫреМрдВ, рдЬрд╕рдХреЛ рд╕рд╛рде рд╣рд╛рдореАрд▓реЗ рдЕрдиреНрддрддрдГ рдкрд╣рд┐рд▓реЛ рд╕реНрдерд╛рди рд▓рд┐рдпреМрдВред

рд╣реНрдпрд╛рдХрд╛рдердирдорд╛ резреж рднрдиреНрджрд╛ рдмрдвреА рдЯрд┐рдордХреЛ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рд░рд╣реЗрдХреЛ рдерд┐рдпреЛ ред рдпреЛ рд░рд╛рдореНрд░реЛ рдЫ рдХрд┐ рддрд┐рдиреАрд╣рд░реВ рдордзреНрдпреЗ рдХреЗрд╣реА рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдмрд╛рдЯ рдЖрдПрдХрд╛ рдЫрдиреНред рд╣реНрдпрд╛рдХрд╛рдердирдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдерд╛рди "рдкреЛрдЪреЗрдирдорд╛ рдХреНрд░реЗрдорд▓рд┐рдВрд╕реНрдХреА" рдХрдореНрдкреНрд▓реЗрдХреНрд╕ рдерд┐рдпреЛ, рдЬрд╣рд╛рдБ рдирд┐рдЬреНрдиреА рдиреЛрднрдЧреЛрд░реЛрдбрдХрд╛ рдкреБрд░рд╛рддрди рддрд╕реНрдмрд┐рд░рд╣рд░реВ рднрд┐рддреНрд░, рдПрдХ рджрд▓рдорд╛ рдЭреБрдгреНрдбрд┐рдПрдХрд╛ рдерд┐рдП! (рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рдореНрдЭрд╛рдЙрдБрдЫреБ рдХрд┐ рдпрд╕ рд╕рдордпрдорд╛ Intel рдХреЛ рдХреЗрдиреНрджреНрд░реАрдп рдХрд╛рд░реНрдпрд╛рд▓рдп Nizhny Novgorod рдорд╛ рд╕реНрдерд┐рдд рдЫ)ред рд╕рд╣рднрд╛рдЧреАрд╣рд░реВрд▓рд╛рдИ рдХреЛрдб рд▓реЗрдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ 10 рдШрдгреНрдЯрд╛ рджрд┐рдЗрдПрдХреЛ рдерд┐рдпреЛ, рд░ рдЕрдиреНрддреНрдпрдорд╛ рдЙрдиреАрд╣рд░реВрд▓реЗ рдЖрдлреНрдиреЛ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддреБрдд рдЧрд░реНрдиреБрдкрд░реНрдиреЗ рдерд┐рдпреЛред рдПрдЙрдЯрд╛ рдЫреБрдЯреНрдЯреИ рдлрд╛рдЗрджрд╛ рднрдиреЗрдХреЛ рдбреЗрдореЛ рд╕рддреНрд░рдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐ рдерд┐рдпреЛ рдХрд┐ рдпреЛрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╕рдмреИ рдХреБрд░рд╛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднрдПрдХреЛ рдерд┐рдпреЛ рд░ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрдорд╛ рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рд░рд╣реЗрдирдиреНред рд╕рд╛рдорд╛рди, рдирд╛рд╕реНрддрд╛, рдЦрд╛рдирд╛, рд╕рдмреИ рдХреБрд░рд╛ рддреНрдпрд╣рд╛рдБ рдкрдирд┐ рдерд┐рдпреЛ!

рдердк рд░реВрдкрдорд╛, рдЗрдВрдЯреЗрд▓рд▓реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдкрдорд╛ рдХреНрдпрд╛рдореЗрд░рд╛рд╣рд░реВ, рд░рд╛рд╕реНрдкрдмреЗрд░реА PI, рдиреНрдпреВрд░рд▓ рдХрдореНрдкреНрдпреБрдЯ рд╕реНрдЯрд┐рдХ 2 рдкреНрд░рджрд╛рди рдЧрд░реНтАНрдпреЛред

рдХрд╛рд░реНрдп рдЪрдпрди

рдлреНрд░рд┐-рдлрд╛рд░реНрдо рд╣реНрдпрд╛рдХрд╛рдердирдХреЛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░реА рдЧрд░реНрдиреЗ рд╕рдмреИрднрдиреНрджрд╛ рдХрдард┐рди рднрд╛рдЧрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдЪреБрдиреМрддреА рдЫрдиреЛрдЯ рдЧрд░реНрдиреБ рд╣реЛред рд╣рд╛рдореАрд▓реЗ рддреБрд░реБрдиреНрддреИ рдЙрддреНрдкрд╛рджрдирдорд╛ рдирднрдПрдХреЛ рдХреБрд░рд╛ рд▓реНрдпрд╛рдЙрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНтАНрдпреМрдВ, рдХрд┐рдирднрдиреЗ рдШреЛрд╖рдгрд╛рд▓реЗ рдпреЛ рдЕрддреНрдпрдиреНрдд рд╕реНрд╡рд╛рдЧрддрдпреЛрдЧреНрдп рдерд┐рдпреЛред

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

  • рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рдпреЛ рдПрдХ рд╕рдВрдпреБрдХреНрдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫ рдЬрд╕рд▓реЗ рдзреНрд╡рдирд┐ рд░ рдЫрд╡рд┐ рджреБрд╡реИрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫ, рдЬрд╕рд▓реЗ рд╢реБрджреНрдзрддрд╛рдорд╛ рд╡реГрджреНрдзрд┐ рдЧрд░реНрдиреБрдкрд░реНрдЫред
  • рдХреНрдпрд╛рдореЗрд░рд╛рд╣рд░реВрдорд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╕рд╛рдБрдШреБрд░реЛ рджреГрд╢реНрдп рдХреЛрдг рд╣реБрдиреНрдЫ; рдареВрд▓реЛ рдХреНрд╖реЗрддреНрд░ рдврд╛рдХреНрди рдПрдХрднрдиреНрджрд╛ рдмрдвреА рдХреНрдпрд╛рдореЗрд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫ; рдзреНрд╡рдирд┐рдорд╛ рддреНрдпрд╕реНрддреЛ рд╕реАрдорд╛ рд╣реБрдБрджреИрдиред

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

рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рд╕рдорд╛рдзрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рддрдпрд╛рд░ рдЧрд░реНрдЫреМрдВ:

  • рд▓рдХреНрд╖реНрдп рдЙрдкрдХрд░рдгрдХреЛ рд╕рд╛рдиреЛ рдЖрдХрд╛рд░
  • рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╕рдЮреНрдЪрд╛рд▓рди
  • рдХрдо рдореВрд▓реНрдп
  • рд╕рдЬрд┐рд▓реЛ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА

рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рд╣рд╛рдореАрд▓реЗ рд▓рдХреНрд╖реНрдп рдЙрдкрдХрд░рдгрдХреЛ рд░реВрдкрдорд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реА Pi 3 c рдЪрдпрди рдЧрд░реНрдЫреМрдВ Intel NCS 2.

рдпрд╣рд╛рдБ NCS рдХреЛ рдПрдЙрдЯрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рдиреЛрдЯ рдЧрд░реНрди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ - рдпрд╕рд▓реЗ рдорд╛рдирдХ CNN рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╣рд░реВрд╕рдБрдЧ рд░рд╛рдореНрд░реЛ рдХрд╛рдо рдЧрд░реНрджрдЫ, рддрд░ рдпрджрд┐ рддрдкрд╛рдЗрдБ рдпрд╕рдорд╛ рдЕрдиреБрдХреВрд▓рди рддрд╣рд╣рд░реВ рднрдПрдХреЛ рдореЛрдбреЗрд▓ рдЪрд▓рд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдирд┐рдореНрди-рд╕реНрддрд░ рдЕрдиреБрдХреВрд▓рдирдХреЛ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рддреНрдпрд╣рд╛рдБ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рд╕рд╛рдиреЛ рдХреБрд░рд╛ рдЫ: рддрдкрд╛рдИрдВрд▓реЗ рдорд╛рдЗрдХреНрд░реЛрдлреЛрди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдПрдХ рдирд┐рдпрдорд┐рдд USB рдорд╛рдЗрдХреНрд░реЛрдлреЛрдирд▓реЗ рдЧрд░реНрдиреЗрдЫ, рддрд░ рдпреЛ RPI рд╕рдБрдЧ рд░рд╛рдореНрд░реЛ рджреЗрдЦрд┐рдиреЗ рдЫреИрдиред рддрд░ рдпрд╣рд╛рдБ рдкрдирд┐ рд╕рдорд╛рдзрд╛рди рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдкрдорд╛ "рдирдЬрд┐рдХреИ рдЫред" рдЖрд╡рд╛рдЬ рд░реЗрдХрд░реНрдб рдЧрд░реНрди, рд╣рд╛рдореАрд▓реЗ рдХрд┐рдЯрдмрд╛рдЯ рднреНрд╡рд╛рдЗрд╕ рдмреЛрдиреЗрдЯ рдмреЛрд░реНрдб рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдЫреМрдВ Google AIY рднреНрд╡рд╛рдЗрд╕ рдХрд┐рдЯ, рдЬрд╕рдорд╛ рдПрдХ рддрд╛рд░рдпреБрдХреНрдд рд╕реНрдЯреЗрд░рд┐рдпреЛ рдорд╛рдЗрдХреНрд░реЛрдлреЛрди рдЫред

Raspbian рдмрд╛рдЯ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН AIY рдкрд░рд┐рдпреЛрдЬрдирд╛ рднрдгреНрдбрд╛рд░ рд░ рдпрд╕рд▓рд╛рдИ рдлреНрд▓реНрдпрд╛рд╕ рдбреНрд░рд╛рдЗрднрдорд╛ рдЕрдкрд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдирд┐рдореНрди рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдорд╛рдЗрдХреНрд░реЛрдлреЛрдирд▓реЗ рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреЗрд░ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдпрд╕рд▓реЗ 5 рд╕реЗрдХреЗрдиреНрдб рд▓рд╛рдореЛ рдЕрдбрд┐рдпреЛ рд░реЗрдХрд░реНрдб рдЧрд░реНрдиреЗрдЫ рд░ рдлрд╛рдЗрд▓рдорд╛ рдмрдЪрдд рдЧрд░реНрдиреЗрдЫ):

arecord -d 5 -r 16000 test.wav

рдореИрд▓реЗ рддреБрд░реБрдиреНрддреИ рдзреНрдпрд╛рди рджрд┐рдиреБрдкрд░реНрдЫ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдлреЛрди рдзреЗрд░реИ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЫ рд░ рд░рд╛рдореНрд░реЛ рдЖрд╡рд╛рдЬ рдЙрдард╛рдЙрдБрдЫред рдпрд╕рд▓рд╛рдИ рдареАрдХ рдЧрд░реНрди, alsamixer рдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН, рдХреНрдпрд╛рдкреНрдЪрд░ рдЙрдкрдХрд░рдгрд╣рд░реВ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдЗрдирдкреБрдЯ рд╕рдВрдХреЗрдд рд╕реНрддрд░рд▓рд╛рдИ 50-60% рдорд╛ рдШрдЯрд╛рдЙрдиреБрд╣реЛрд╕реНред

OpenVINO hackathon: Raspberry Pi рдорд╛ рдЖрд╡рд╛рдЬ рд░ рднрд╛рд╡рдирд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрджреИ
рд╣рд╛рдореА рдлрд╛рдИрд▓рдХреЛ рд╕рд╛рде рд╢рд░реАрд░рд▓рд╛рдИ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрдЫреМрдВ рд░ рд╕рдмреИ рдХреБрд░рд╛ рдлрд┐рдЯ рд╣реБрдиреНрдЫ, рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рдврдХреНрдХрдирд▓реЗ рдмрдиреНрдж рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ

рдПрдХ рд╕реВрдЪрдХ рдмрдЯрди рдердкреНрджреИ

AIY рднреНрд╡рд╛рдЗрд╕ рдХрд┐рдЯрд▓рд╛рдИ рдЕрд▓рдЧ рд░рд╛рдЦреНрджрд╛, рд╣рд╛рдореАрд▓реЗ рдпрд╛рдж рдЧрд░реНрдЫреМрдВ рдХрд┐ рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ RGB рдмрдЯрди рдЫ, рдЬрд╕рдХреЛ рдмреНрдпрд╛рдХрд▓рд╛рдЗрдЯ рд╕рдлреНрдЯрд╡реЗрдпрд░рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рд╣рд╛рдореА "Google AIY Led" рдЦреЛрдЬреНрдЫреМрдВ рд░ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдЫреМрдВ: https://aiyprojects.readthedocs.io/en/latest/aiy.leds.html
рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рднрд╛рд╡рдирд╛рд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рдпреЛ рдмрдЯрди рдХрд┐рди рдкреНрд░рдпреЛрдЧ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╣рд╛рдореАрд╕рдБрдЧ рдХреЗрд╡рд▓ 7 рдХрдХреНрд╖рд╛рд╣рд░реВ рдЫрдиреН, рд░ рдмрдЯрдирдорд╛ 8 рд░рдВрдЧрд╣рд░реВ рдЫрдиреН, рдкрд░реНрдпрд╛рдкреНрдд!

рд╣рд╛рдореА рдмрдЯрдирд▓рд╛рдИ GPIO рдорд╛рд░реНрдлрдд рднреНрд╡рд╛рдЗрд╕ рдмреЛрдиреЗрдЯрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрдЫреМрдВ, рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рд▓реЛрдб рдЧрд░реНрдЫреМрдВ (рддрд┐рдиреАрд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ AIY рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдмрд╛рдЯ рд╡рд┐рддрд░рдг рдХрд┐рдЯрдорд╛ рд╕реНрдерд╛рдкрд┐рдд рдЫрдиреН)

from aiy.leds import Leds, Color
from aiy.leds import RgbLeds

рдПрдЙрдЯрд╛ рдбрд┐рдХреНрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ рдЬрд╕рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╡рдирд╛рдХреЛ RGB Tuple рдХреЛ рд░реВрдкрдорд╛ рд░ aiy.leds.Leds рд╡рд░реНрдЧрдХреЛ рд╡рд╕реНрддреБрдХреЛ рд░реВрдкрдорд╛ рд╕рдореНрдмрдиреНрдзрд┐рдд рд░рдВрдЧ рд╣реБрдиреЗрдЫ, рдЬрд╕рдХреЛ рдорд╛рдзреНрдпрдордмрд╛рдЯ рд╣рд╛рдореА рд░рдВрдЧ рдЕрдкрдбреЗрдЯ рдЧрд░реНрдиреЗрдЫреМрдВ:

led_dict = {'neutral': (255, 255, 255), 'happy': (0, 255, 0), 'sad': (0, 255, 255), 'angry': (255, 0, 0), 'fearful': (0, 0, 0), 'disgusted':  (255, 0, 255), 'surprised':  (255, 255, 0)} 
leds = Leds()

рд░ рдЕрдиреНрддрдорд╛, рднрд╛рд╡рдирд╛рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдирдпрд╛рдБ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдкрдЫрд┐, рд╣рд╛рдореА рдмрдЯрдирдХреЛ рд░рдВрдЧ (рдХреБрдЮреНрдЬреА рджреНрд╡рд╛рд░рд╛) рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдбреЗрдЯ рдЧрд░реНрдиреЗрдЫреМрдВред

leds.update(Leds.rgb_on(led_dict.get(classes[prediction])))

OpenVINO hackathon: Raspberry Pi рдорд╛ рдЖрд╡рд╛рдЬ рд░ рднрд╛рд╡рдирд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрджреИ
рдмрдЯрди, рдЬрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН!

рдЖрд╡рд╛рдЬ рд╕рдВрдЧ рдХрд╛рдо

рд╣рд╛рдореА рдорд╛рдЗрдХреНрд░реЛрдлреЛрдирдмрд╛рдЯ рд╕реНрдЯреНрд░рд┐рдо рдХреНрдпрд╛рдкреНрдЪрд░ рдЧрд░реНрди paudio рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ рд░ рдЖрд╡рд╛рдЬ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрди рд░ рдЖрд╡рд╛рдЬ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди webrtcvadред рдердк рд░реВрдкрдорд╛, рд╣рд╛рдореА рдПрдЙрдЯрд╛ рд▓рд╛рдо рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВ рдЬрд╕рдорд╛ рд╣рд╛рдореА рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рд░реВрдкрдорд╛ рднреНрд╡рд╛рдЗрд╕ рдЕрдВрд╢рд╣рд░реВ рдердкреНрдиреЗ рд░ рд╣рдЯрд╛рдЙрдиреЗрдЫреМрдВред

Webrtcvad рдХреЛ рдЖрдкреВрд░реНрддрд┐ рдЧрд░рд┐рдПрдХреЛ рдЯреБрдХреНрд░рд╛рдХреЛ рдЖрдХрд╛рд░рдорд╛ рд╕реАрдорд┐рддрддрд╛ рднрдПрдХреЛ рд╣реБрдирд╛рд▓реЗ - рдпреЛ 10/20/30ms рдмрд░рд╛рдмрд░ рд╣реБрдиреБрдкрд░реНрдЫ, рд░ рднрд╛рд╡рдирд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рдореЛрдбреЗрд▓рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг (рдЬрд╕рд░реА рд╣рд╛рдореА рдкрдЫрд┐ рдЬрд╛рдиреНрдЫреМрдВ) 48kHz рдбрд╛рдЯрд╛рд╕реЗрдЯрдорд╛ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рд╣рд╛рдореА рдЧрд░реНрдиреЗрдЫреМрдВред рдЖрдХрд╛рд░ 48000├Ч20ms/1000├Ч1(рдореЛрдиреЛ)=960 рдмрд╛рдЗрдЯреНрд╕рдХреЛ рднрд╛рдЧрд╣рд░реВ рдЦрд┐рдЪреНрдиреБрд╣реЛрд╕реНред Webrtcvad рд▓реЗ рдпреА рдкреНрд░рддреНрдпреЗрдХ рдЯреБрдХреНрд░рд╛рдХреЛ рд▓рд╛рдЧрд┐ True/False рдлрд░реНрдХрд╛рдЙрдиреЗрдЫ, рдЬреБрди рднрд╛рдЧрдорд╛ рднреЛрдЯрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐ рд╡рд╛ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред

рдирд┐рдореНрди рддрд░реНрдХ рд▓рд╛рдЧреВ рдЧрд░реМрдВ:

  • рдЬрд╣рд╛рдБ рднреЛрдЯ рдЫ, рддреНрдпреЛ рдЯреБрдХреНрд░рд╛рд▓рд╛рдИ рд╣рд╛рдореА рд╕реВрдЪреАрдорд╛ рдердкреНрдиреЗрдЫреМрдБ, рднреЛрдЯ рдирднрдПрдХреЛ рдЦрдгреНрдбрдорд╛ рдЦрд╛рд▓реА рдЯреБрдХреНрд░рд╛рдХреЛ рдХрд╛рдЙрдиреНрдЯрд░ рдмрдврд╛рдЙрдБрдЫреМрдБ ред
  • рдпрджрд┐ рдЦрд╛рд▓реА рдЯреБрдХреНрд░рд╛рд╣рд░реВрдХреЛ рдХрд╛рдЙрдиреНрдЯрд░ >=30 (600 ms) рд╣реЛ рднрдиреЗ, рд╣рд╛рдореА рд╕рдВрдЪрд┐рдд рдЦрдгреНрдбрд╣рд░реВрдХреЛ рд╕реВрдЪреАрдХреЛ рдЖрдХрд╛рд░ рд╣реЗрд░реНрдЫреМрдВ; рдпрджрд┐ рдпреЛ > 250 рдЫ рднрдиреЗ, рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд▓рд╛рдордорд╛ рдердкреНрдЫреМрдВ; рдпрджрд┐ рд╣реЛрдЗрди рднрдиреЗ, рд╣рд╛рдореА рд▓рдореНрдмрд╛рдЗрд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдЫреМрдВред рд░реЗрдХрд░реНрдбрдХреЛ рд╕реНрдкрд┐рдХрд░ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рдореЛрдбреЗрд▓рдорд╛ рдлрд┐рдб рдЧрд░реНрди рдкрд░реНрдпрд╛рдкреНрдд рдЫреИрдиред
  • рдпрджрд┐ рдЦрд╛рд▓реА рдЯреБрдХреНрд░рд╛рд╣рд░реВрдХреЛ рдХрд╛рдЙрдиреНрдЯрд░ рдЕрдЭреИ рдкрдирд┐ <30 рдЫ, рд░ рд╕рдВрдЪрд┐рдд рдЦрдгреНрдбрд╣рд░реВрдХреЛ рд╕реВрдЪреАрдХреЛ рдЖрдХрд╛рд░ 300 рднрдиреНрджрд╛ рдмрдвреА рдЫ рднрдиреЗ, рд╣рд╛рдореА рдердк рд╕рдЯреАрдХ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреАрдХреЛ рд▓рд╛рдЧрд┐ рд▓рд╛рдордорд╛ рдЯреБрдХреНрд░рд╛ рдердкреНрдиреЗрдЫреМрдВред (рдХрд┐рдирдХрд┐ рднрд╛рд╡рдирд╛рд╣рд░реБ рд╕рдордп рд╕рдВрдЧреИ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреЗ рдЧрд░реНрджрдЫ)

 def to_queue(frames):
    d = np.frombuffer(b''.join(frames), dtype=np.int16)
    return d

framesQueue = queue.Queue()
def framesThreadBody():
    CHUNK = 960
    FORMAT = pyaudio.paInt16
    CHANNELS = 1
    RATE = 48000

    p = pyaudio.PyAudio()
    vad = webrtcvad.Vad()
    vad.set_mode(2)
    stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)
    false_counter = 0
    audio_frame = []
    while process:
        data = stream.read(CHUNK)
        if not vad.is_speech(data, RATE):
            false_counter += 1
            if false_counter >= 30:
                if len(audio_frame) > 250:              
                    framesQueue.put(to_queue(audio_frame,timestamp_start))
                    audio_frame = []
                    false_counter = 0

        if vad.is_speech(data, RATE):
            false_counter = 0
            audio_frame.append(data)
            if len(audio_frame) > 300:                
                    framesQueue.put(to_queue(audio_frame,timestamp_start))
                    audio_frame = []

рдпреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрдирдорд╛ рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЛрдбреЗрд▓рд╣рд░реВ рдЦреЛрдЬреНрдиреЗ рд╕рдордп рд╣реЛ, github, Google рдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН, рддрд░ рд╕рдореНрдЭрдиреБрд╣реЛрд╕реН рдХрд┐ рд╣рд╛рдореАрд╕рдБрдЧ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рдорд╛ рд╕реАрдорд┐рддрддрд╛ рдЫред рдпреЛ рдПрдХрджрдо рдЧрд╛рд╣реНрд░реЛ рднрд╛рдЧ рд╣реЛ, рдХрд┐рдирдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛рдорд╛ рдореЛрдбреЗрд▓рд╣рд░реВ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреБрдкрд░реНрджрдЫ, рд░ рдердк рд░реВрдкрдорд╛, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ OpenVINO рдХреЛ рдЖрдиреНрддрд░рд┐рдХ рдврд╛рдБрдЪрд╛рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН - IR (рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡)ред рд╣рд╛рдореАрд▓реЗ github рдмрд╛рдЯ рд▓рдЧрднрдЧ 5-7 рдлрд░рдХ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдпреМрдВ, рд░ рдпрджрд┐ рднрд╛рд╡рдирд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрдиреЗ рдореЛрдбреЗрд▓рд▓реЗ рддреБрд░реБрдиреНрддреИ рдХрд╛рдо рдЧрд░реНрдпреЛ рднрдиреЗ, рдЖрд╡рд╛рдЬ рдкрд╣рд┐рдЪрд╛рдирдХреЛ рд╕рд╛рде рд╣рд╛рдореАрд▓реЗ рд▓рд╛рдореЛ рд╕рдордп рдкрд░реНрдЦрдиреБрдкрд░реНтАНрдпреЛ - рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдердк рдЬрдЯрд┐рд▓ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреНред

рд╣рд╛рдореА рдирд┐рдореНрдирдорд╛ рдлреЛрдХрд╕ рдЧрд░реНрдЫреМрдВ:

  • рд╕реНрд╡рд░рдмрд╛рдЯ рдирд┐рд╕реНрдХреЗрдХрд╛ рднрд╛рд╡рдирд╛рд╣рд░реБ - https://github.com/alexmuhr/Voice_Emotion
    рдпреЛ рдирд┐рдореНрди рд╕рд┐рджреНрдзрд╛рдиреНрдд рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдЧрд░реНрджрдЫ: рдЕрдбрд┐рдпреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рд╛рдЗрдЬрдХреЛ рдкрд░рд┐рдЪреНрдЫреЗрджрд╣рд░реВрдорд╛ рдХрд╛рдЯрд┐рдПрдХреЛ рдЫ, рдпреА рдкреНрд░рддреНрдпреЗрдХ рдЦрдгреНрдбрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореАрд▓реЗ рдЪрдпрди рдЧрд░реНрдЫреМрдВ MFCC рд░ рддреНрдпрд╕рдкрдЫрд┐ CNN рдорд╛ рдЗрдирдкреБрдЯрдХреЛ рд░реВрдкрдорд╛ рдмреБрдЭрд╛рдЙрдиреБрд╣реЛрд╕реН
  • рдЖрд╡рд╛рдЬ рдкрд╣рд┐рдЪрд╛рди - https://github.com/linhdvu14/vggvox-speaker-identification
    рдпрд╣рд╛рдБ, MFCC рдХреЛ рд╕рдЯреНрдЯрд╛, рд╣рд╛рдореА рд╕реНрдкреЗрдХреНрдЯреНрд░реЛрдЧреНрд░рд╛рдорд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдЫреМрдВ, FFT рдкрдЫрд┐ рд╣рд╛рдореАрд▓реЗ CNN рд▓рд╛рдИ рд╕рд┐рдЧреНрдирд▓ рдлрд┐рдб рдЧрд░реНрдЫреМрдВ, рдЬрд╣рд╛рдБ рдЖрдЙрдЯрдкреБрдЯрдорд╛ рд╣рд╛рдореАрд▓реЗ рдЖрд╡рд╛рдЬрдХреЛ рднреЗрдХреНрдЯрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкрд╛рдЙрдБрдЫреМрдВред

рдЕрд░реНрдХреЛ рд╣рд╛рдореА рд╕рд┐рджреНрдзрд╛рдиреНрддрдмрд╛рдЯ рд╕реБрд░реБ рдЧрд░реЗрд░ рдореЛрдбреЗрд▓рд╣рд░реВ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВред OpenVINO рдорд╛ рдзреЗрд░реИ рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН:

  • рдореЛрдбреЗрд▓ рдЪрд┐рдбрд┐рдпрд╛рдЦрд╛рдирд╛ рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН, рдЬрд╕рдмрд╛рдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рд░ рддрдкрд╛рдИрдВрдХреЛ рдЙрддреНрдкрд╛рджрдирдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ
  • Model Optimzer, рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдлреНрд░реЗрдорд╡рд░реНрдХ рдврд╛рдБрдЪрд╛рд╣рд░реВ (Tensorflow, ONNX рдЖрджрд┐) рдмрд╛рдЯ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдврд╛рдБрдЪрд╛рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЬрд╕рдХреЛ рд╕рд╛рде рд╣рд╛рдореА рдердк рдХрд╛рдо рдЧрд░реНрдиреЗрдЫреМрдВред
  • рдЗрдиреНрдлрд░реЗрдиреНрд╕ рдЗрдиреНрдЬрд┐рдирд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ Intel рдкреНрд░реЛрд╕реЗрд╕рд░, Myriad рдЪрд┐рдкреНрд╕ рд░ Neural Compute Stick Accelerators рдорд╛ IR рдврд╛рдБрдЪрд╛рдорд╛ рдореЛрдбреЗрд▓рд╣рд░реВ рдЪрд▓рд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
  • OpenCV рдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рдХреБрд╢рд▓ рд╕рдВрд╕реНрдХрд░рдг (рдЗрдиреНрдлрд░рдиреНрд╕ рдЗрдиреНрдЬрд┐рди рд╕рдорд░реНрдерди рд╕рдВрдЧ)
    IR рдврд╛рдБрдЪрд╛рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдореЛрдбреЗрд▓ рджреБрдИ рдлрд╛рдЗрд▓рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ: .xml рд░ .binред
    рдореЛрдбреЗрд▓рд╣рд░реВрд▓рд╛рдИ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдореЛрдбреЗрд▓ рдЕрдиреБрдХреВрд▓рдХ рдорд╛рд░реНрдлрдд IR рдврд╛рдБрдЪрд╛рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░рд┐рдиреНрдЫ:

    python /opt/intel/openvino/deployment_tools/model_optimizer/mo_tf.py --input_model speaker.hdf5.pb --data_type=FP16 --input_shape [1,512,1000,1]

    --data_type рддрдкрд╛рдИрдВрд▓рд╛рдИ рдбреЗрдЯрд╛ рдврд╛рдБрдЪрд╛ рдЪрдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬреБрди рдореЛрдбреЗрд▓рд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫред FP32, FP16, INT8 рд╕рдорд░реНрдерд┐рдд рдЫрдиреНред рдЗрд╖реНрдЯрддрдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЫрдиреЛрдЯрд▓реЗ рд░рд╛рдореНрд░реЛ рдкреНрд░рджрд░реНрд╢рди рдмрдврд╛рдЙрди рд╕рдХреНрдЫред
    --input_shape рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рдЖрдпрд╛рдо рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫред рдпрд╕рд▓рд╛рдИ рдЧрддрд┐рд╢реАрд▓ рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ C++ рдПрдкреАрдЖрдИрдорд╛ рд░рд╣реЗрдХреЛ рджреЗрдЦрд┐рдиреНрдЫ, рддрд░ рд╣рд╛рдореАрд▓реЗ рддреНрдпреЛ рдЯрд╛рдврд╛ рдЦрдиреНрди рд╕рдХреЗрдиреМрдВ рд░ рдпрд╕рд▓рд╛рдИ рдПрдЙрдЯрд╛ рдореЛрдбреЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдлрд┐рдХреНрд╕ рдЧрд░реНрдпреМрдВред
    рдЕрд░реНрдХреЛ, рдкрд╣рд┐рд▓реЗ рдиреИ рд░реВрдкрд╛рдиреНрддрд░рд┐рдд рдореЛрдбреЗрд▓рд▓рд╛рдИ IR рдврд╛рдБрдЪрд╛рдорд╛ DNN рдореЛрдбреНрдпреБрд▓ рдорд╛рд░реНрдлрдд OpenCV рдорд╛ рд▓реЛрдб рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВ рд░ рдпрд╕рд▓рд╛рдИ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реМрдВред

    import cv2 as cv
    emotionsNet = cv.dnn.readNet('emotions_model.bin',
                              'emotions_model.xml')
    emotionsNet.setPreferableTarget(cv.dnn.DNN_TARGET_MYRIAD)

    рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдЕрдиреНрддрд┐рдо рд░реЗрдЦрд╛рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдиреНрдпреВрд░рд▓ рдХрдореНрдкреНрдпреБрдЯ рд╕реНрдЯрд┐рдХрдорд╛ рдЧрдгрдирд╛рд╣рд░реВ рдкреБрди: рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЖрдзрд╛рд░рднреВрдд рдЧрдгрдирд╛рд╣рд░реВ рдкреНрд░реЛрд╕реЗрд╕рд░рдорд╛ рдЧрд░рд┐рдиреНрдЫ, рддрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИрдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдпрд╕рд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрди, рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕реНрдЯрд┐рдХ рдЪрд╛рд╣рд┐рдиреНрдЫред

    рдЕрд░реНрдХреЛ, рддрд░реНрдХ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЫ: рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдЕрдбрд┐рдпреЛрд▓рд╛рдИ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░рдХреЛ рд╡рд┐рдиреНрдбреЛрдЬрдорд╛ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрдЫреМрдВ (рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдпреЛ реж.рек рд╕реЗрдХреЗрдиреНрдб рд╣реЛ), рд╣рд╛рдореА рдпреА рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдиреНрдбреЛрдЬрд▓рд╛рдИ MFCC рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдЫреМрдВ, рдЬрд╕рд▓рд╛рдИ рд╣рд╛рдореА рддреНрдпрд╕рдкрдЫрд┐ рдЧреНрд░рд┐рдбрдорд╛ рдлрд┐рдб рдЧрд░реНрдЫреМрдВ:

    emotionsNet.setInput(MFCC_from_window)
    result = emotionsNet.forward()

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

    рдЕрд░реНрдерд╛рддреН, рд╣рд╛рдореАрд▓реЗ рдЖрд╡рд╛рдЬрдХреЛ рдЕрдВрд╢ рд░реЗрдХрд░реНрдб рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ (рдпрд╕рд▓реЗ рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдЭреИрдВ рдХрд╛рдо рдЧрд░реНрдЫ, рдХрд┐рдмреЛрд░реНрдбрдмрд╛рдЯ рдмрд╛рдзрд╛ рдЖрдПрдорд╛ рдорд╛рддреНрд░ рдпрд╕рд▓реЗ рдЖрд╡рд╛рдЬрд▓рд╛рдИ рдлрд╛рдЗрд▓рдорд╛ рдмрдЪрдд рдЧрд░реНрдиреЗрдЫ)ред

    рдкреНрд░рдпрд╛рд╕ рдЧрд░рд╛реИрдБ:

    python3 voice_db/record_voice.py test.wav

    рд╣рд╛рдореА рдзреЗрд░реИ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдХреЛ рдЖрд╡рд╛рдЬ рд░реЗрдХрд░реНрдб рдЧрд░реНрдЫреМрдВ (рд╣рд╛рдореНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рддреАрди рдЯреЛрд▓реА рд╕рджрд╕реНрдпрд╣рд░реВ)
    рдЕрд░реНрдХреЛ, рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдХрд░реНрдб рдЧрд░рд┐рдПрдХреЛ рдЖрд╡рд╛рдЬрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореА рджреНрд░реБрдд рдлреЛрд░рд┐рдпрд░ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдЫреМрдВ, рд╕реНрдкреЗрдХреНрдЯреНрд░реЛрдЧреНрд░рд╛рдо рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫреМрдВ рд░ рдпрд╕рд▓рд╛рдИ numpy array (.npy) рдХреЛ рд░реВрдкрдорд╛ рдмрдЪрдд рдЧрд░реНрдЫреМрдВ:

    for file in glob.glob("voice_db/*.wav"):
            spec = get_fft_spectrum(file)
            np.save(file[:-4] + '.npy', spec)

    рдлрд╛рдЗрд▓рдорд╛ рдердк рд╡рд┐рд╡рд░рдгрд╣рд░реВ create_base.py
    рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдЬрдм рд╣рд╛рдореА рдореБрдЦреНрдп рд▓рд┐рдкрд┐ рдЪрд▓рд╛рдЙрдБрдЫреМрдВ, рд╣рд╛рдореАрд▓реЗ рд╕реБрд░реБрдорд╛ рдпреА рд╕реНрдкреЗрдХреНрдЯреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВрдмрд╛рдЯ рдПрдореНрдмреЗрдбрд┐рдЩрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫреМрдВ:

    for file in glob.glob("voice_db/*.npy"):
        spec = np.load(file)
        spec = spec.astype('float32')
        spec_reshaped = spec.reshape(1, 1, spec.shape[0], spec.shape[1])
        srNet.setInput(spec_reshaped)
        pred = srNet.forward()
        emb = np.squeeze(pred)

    рдзреНрд╡рдирд┐ рдЧрд░рд┐рдПрдХреЛ рдЦрдгреНрдбрдмрд╛рдЯ рдЗрдореНрдмреЗрдбрд┐рдЩ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдкрдЫрд┐, рд╣рд╛рдореА рдбрд╛рдЯрд╛рдмреЗрд╕рдХрд╛ рд╕рдмреИ рдЖрд╡рд╛рдЬрд╣рд░реВ (рдЬрддрд┐ рд╕рд╛рдиреЛ, рдмрдвреА рд╕рдореНрднрд╛рд╡рд┐рдд) рдорд╛ рдХреЛрд╕рд╛рдЗрди рджреВрд░реА рд▓рд┐рдПрд░ рдпреЛ рдХрд╕рдХреЛ рд╣реЛ рднрдиреЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫреМрдВ - рдбреЗрдореЛрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореАрд▓реЗ рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рд╕реЗрдЯ рдЧрд░реНрдЫреМрдВред реж.рей рд╕рдореНрдо):

            dist_list = cdist(emb, enroll_embs, metric="cosine")
            distances = pd.DataFrame(dist_list, columns = df.speaker)

    рдЕрдиреНрддрдорд╛, рдо рдиреЛрдЯ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ рдХрд┐ рдЕрдиреБрдорд╛рди рдЧрддрд┐ рдЫрд┐рдЯреЛ рдерд┐рдпреЛ рд░ рдпрд╕рд▓рд╛рдИ 1-2 рдердк рдореЛрдбреЗрд▓рд╣рд░реВ рдердкреНрди рд╕рдореНрднрд╡ рдмрдирд╛рдпреЛ (рдирдореВрдирд╛ 7 рд╕реЗрдХреЗрдиреНрдб рд▓рд╛рдореЛ рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдорд╛рдирдХреЛ рд▓рд╛рдЧрд┐ 2.5 рд▓рд╛рдЧреНрдпреЛ)ред рд╣рд╛рдореАрд╕рдБрдЧ рдЕрдм рдирдпрд╛рдБ рдореЛрдбреЗрд▓рд╣рд░реВ рдердкреНрдиреЗ рд╕рдордп рдерд┐рдПрди рд░ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд▓реЗрдЦреНрдирдорд╛ рдХреЗрдиреНрджреНрд░рд┐рдд рдерд┐рдпреЛред

    рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ

    рдПрдЙрдЯрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдмрд┐рдиреНрджреБ: рд╣рд╛рдореА рдШрд░рдмрд╛рдЯ рд░рд╛рдЙрдЯрд░ рд▓рд┐рдиреНрдЫреМрдВ рд░ рд╣рд╛рдореНрд░реЛ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрдЕрдк рдЧрд░реНрдЫреМрдВ, рдпрд╕рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдЙрдкрдХрд░рдг рд░ рд▓реНрдпрд╛рдкрдЯрдкрд╣рд░реВ рдЬрдбрд╛рди рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрджрдЫред

    рдмреНрдпрд╛рдХрдЗрдиреНрдб рдЕрдЧрд╛рдбрд┐ рд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдмреАрдЪрдХреЛ рдЕрдиреНрдд-рджреЗрдЦрд┐-рдЕрдиреНрдд рд╕рдиреНрджреЗрд╢ рдЪреНрдпрд╛рдирд▓ рд╣реЛ, рд╡реЗрдмрд╕рдХреЗрдЯ рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреАрдорд╛ рдЖрдзрд╛рд░рд┐рдд (http рдУрднрд░ tcp рдкреНрд░реЛрдЯреЛрдХрд▓)ред

    рдкрд╣рд┐рд▓реЛ рдЪрд░рдг рднрдиреЗрдХреЛ рд░рд╛рд╕реНрдкрдмреЗрд░реАрдмрд╛рдЯ рдкреНрд░рд╢реЛрдзрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБ рд╣реЛ, рдЕрд░реНрдерд╛рддреН, json рдорд╛ рдкреНрдпрд╛рдХ рдЧрд░рд┐рдПрдХрд╛ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреАрдХрд░реНрддрд╛рд╣рд░реВ, рдЬреБрди рддрд┐рдиреАрд╣рд░реВрдХреЛ рдпрд╛рддреНрд░рд╛рдХреЛ рдЖрдзрд╛ рдмрд╛рдЯреЛрдорд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реБрдиреНрдЫрдиреН рддрд╛рдХрд┐ рдЕрд╡рдзрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рднрд╛рд╡рдирд╛рддреНрдордХ рдкреГрд╖реНрдарднреВрдорд┐рдХреЛ рдмрд╛рд░реЗрдорд╛ рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдпреЛ рдкреНрдпрд╛рдХреЗрдЯ рддреНрдпрд╕рдкрдЫрд┐ рдлреНрд░рдиреНрдЯрдПрдиреНрдбрдорд╛ рдкрдард╛рдЗрдиреНрдЫ, рдЬрд╕рд▓реЗ рд╕рджрд╕реНрдпрддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рд░ рд╡реЗрдмрд╕рдХреЗрдЯ рдЕрдиреНрддреНрдп рдмрд┐рдиреНрджреБрдмрд╛рдЯ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред рд╕рдореНрдкреВрд░реНрдг рдмреНрдпрд╛рдХрдПрдиреНрдб рдореЗрдХрд╛рдирд┐рдЬрдо рдЧреЛрд▓рд╛рдЩ рднрд╛рд╖рд╛рдорд╛ рдмрдирд╛рдЗрдПрдХреЛ рдЫ; рдпреЛ рдЫрд╛рдирд┐рдПрдХреЛ рд╣реЛ рдХрд┐рдирднрдиреЗ рдпреЛ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдЫ, рдЬреБрди рдЧреЛрд░рд╛рдЙрдЯрд┐рдирд╣рд░реВрд▓реЗ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрджрдЫред
    рдЕрдиреНрддрд┐рдо рдмрд┐рдиреНрджреБ рдкрд╣реБрдБрдЪ рдЧрд░реНрджрд╛, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рджрд░реНрддрд╛ рд░ рд╕рдВрд░рдЪрдирд╛ рдорд╛ рдкреНрд░рд╡реЗрд╢, рддреНрдпрд╕рдкрдЫрд┐ рдЙрдирдХреЛ рд╕рдиреНрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реБрдиреНрдЫред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд░ рд╕рдиреНрджреЗрд╢ рджреБрдмреИ рд╕рд╛рдЭрд╛ рд╣рдмрдорд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╣рд╛рдБрдмрд╛рдЯ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рдердк рдкрдард╛рдЗрдПрдХрд╛ рдЫрдиреН (рд╕рджрд╕реНрдпрддрд╛ рд▓рд┐рдЗрдПрдХреЛ рдЕрдЧрд╛рдбрд┐), рд░ рдпрджрд┐ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ рдЬрдбрд╛рди рдмрдиреНрдж рдЧрд░реНрджрдЫ (рд░рд╛рд╕реНрдкрдмреЗрд░реА рд╡рд╛ рдЕрдЧрд╛рдбрд┐), рддреНрдпрд╕рдкрдЫрд┐ рдЙрд╕рдХреЛ рд╕рджрд╕реНрдпрддрд╛ рд░рджреНрдж рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рдЙрд╕рд▓рд╛рдИ рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫред рд╣рдмред

    OpenVINO hackathon: Raspberry Pi рдорд╛ рдЖрд╡рд╛рдЬ рд░ рднрд╛рд╡рдирд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрджреИ
    рд╣рд╛рдореА рдкрдЫрд╛рдбрд┐рдмрд╛рдЯ рдЬрдбрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВ

    Front-end рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдЧрддрд┐ рджрд┐рди рд░ рд╕рд░рд▓ рдмрдирд╛рдЙрди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ JavaScript рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реЛред рдпрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдЙрджреНрджреЗрд╢реНрдп рдмреНрдпрд╛рдХ-рдПрдиреНрдб рд╕рд╛рдЗрдбрдорд╛ рд░ рд╕реАрдзрд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИрдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдорд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рд╛рдкреНрдд рдбрд╛рдЯрд╛ рдХрд▓реНрдкрдирд╛ рдЧрд░реНрдиреБ рд╣реЛред рдкреГрд╖реНрдардорд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рд╕реЗрдХреНрд╢рдирд▓ рд░рд╛рдЙрдЯрд┐рдЩ рдЫ, рддрд░ рд░реБрдЪрд┐рдХреЛ рдореБрдЦреНрдп рдкреГрд╖реНрда рдореБрдЦреНрдп рдкреГрд╖реНрда рд╣реЛ, рдЬрд╣рд╛рдБ рд╡реЗрдмрд╕рдХреЗрдЯ рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреА рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рд░реНрднрд░рдмрд╛рдЯ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордпрдорд╛ рдбреЗрдЯрд╛рдХреЛ рдирд┐рд░рдиреНрддрд░ рдкреНрд░рд╡рд╛рд╣ рдкреНрд░рд╛рдкреНрдд рд╣реБрдиреНрдЫред Raspberry Pi рд▓реЗ рдЖрд╡рд╛рдЬ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдБрджрдЫ, рдпреЛ рджрд░реНрддрд╛ рдЧрд░рд┐рдПрдХреЛ рдбрд╛рдЯрд╛рдмреЗрд╕рдмрд╛рдЯ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реНрдпрдХреНрддрд┐рдХреЛ рд╣реЛ рдХрд┐ рд╣реЛрдЗрди рднрдиреЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫ, рд░ рдЧреНрд░рд╛рд╣рдХрд▓рд╛рдИ рд╕рдореНрднрд╛рд╡реНрдпрддрд╛ рд╕реВрдЪреА рдкрдард╛рдЙрдБрджрдЫред рдЧреНрд░рд╛рд╣рдХрд▓реЗ рднрд░реНрдЦрд░рдХреЛ рд╕рд╛рдиреНрджрд░реНрднрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ, рд╡реНрдпрдХреНрддрд┐рдХреЛ рдЕрд╡рддрд╛рд░ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рдкреНрд░рд╛рдп: рдорд╛рдЗрдХреНрд░реЛрдлреЛрдирдорд╛ рдмреЛрд▓реЗрдХреЛ рдерд┐рдпреЛ, рд╕рд╛рдерд╕рд╛рдереИ рдЙрд╕рд▓реЗ рд╢рдмреНрджрд╣рд░реВ рдЙрдЪреНрдЪрд╛рд░рдг рдЧрд░реНрдиреЗ рднрд╛рд╡рдирд╛ред

    OpenVINO hackathon: Raspberry Pi рдорд╛ рдЖрд╡рд╛рдЬ рд░ рднрд╛рд╡рдирд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрджреИ
    рдЕрдкрдбреЗрдЯ рдЧрд░рд┐рдПрдХреЛ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреАрдХреЛ рд╕рд╛рде рдЧреГрд╣ рдкреГрд╖реНрда

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

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

    рдорд▓рд╛рдИ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рд╣рд╛рдореНрд░реЛ рд╕рдорд╛рдзрд╛рдирдХреЛ рдХреБрд▓ рд▓рд╛рдЧрдд $ 150 рдерд┐рдпреЛ:

    • рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 3 ~ $ 35
    • рдЧреБрдЧрд▓ рдПрдЖрдИрд╡рд╛рдИ рднреНрд╡рд╛рдЗрд╕ рдмреЛрдиреЗрдЯ (рддрдкрд╛рдИрдБрд▓реЗ рд░реЗрд╕реНрдкреАрдХрд░ рд╢реБрд▓реНрдХ рд▓рд┐рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ) ~ резрел$
    • Intel NCS 2 ~ 100$

    рдХрд╕рд░реА рд╕реБрдзрд╛рд░ рдЧрд░реНрдиреЗ:

    • рдЧреНрд░рд╛рд╣рдХрдмрд╛рдЯ рджрд░реНрддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН - рдЕрдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛ рдЙрддреНрдкрдиреНрди рднрдПрдХреЛ рдкрд╛рда рдкрдвреНрди рд╕реЛрдзреНрдиреБрд╣реЛрд╕реН
    • рдХреЗрд╣реА рдердк рдореЛрдбреЗрд▓рд╣рд░реВ рдердкреНрдиреБрд╣реЛрд╕реН: рддрдкрд╛рдИрдВ рдЖрд╡рд╛рдЬ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЩреНрдЧ рд░ рдЙрдореЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
    • рдПрдХреИ рд╕рд╛рде рдЖрд╡рд╛рдЬрд╣рд░реВ рдЕрд▓рдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдбрд╛рдпрд░рд╛рдЗрдЬреЗрд╢рди)

    рднрдгреНрдбрд╛рд░: https://github.com/vladimirwest/OpenEMO

    OpenVINO hackathon: Raspberry Pi рдорд╛ рдЖрд╡рд╛рдЬ рд░ рднрд╛рд╡рдирд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрджреИ
    рдердХрд┐рдд рддрд░ рд╣рд╛рдореА рдЦреБрд╕реА рдЫреМрдВ

    рдЕрдиреНрддрдорд╛, рдо рдЖрдпреЛрдЬрдХ рд░ рд╕рд╣рднрд╛рдЧреАрд╣рд░реВрд▓рд╛рдИ рдзрдиреНрдпрд╡рд╛рдж рднрдиреНрди рдЪрд╛рд╣рдиреНрдЫреБред рдЕрдиреНрдп рдЯреЛрд▓реАрд╣рд░реВрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдордзреНрдпреЗ, рд╣рд╛рдореАрд▓реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдкрдорд╛ рдирд┐: рд╢реБрд▓реНрдХ рдкрд╛рд░реНрдХрд┐рдЩ рдард╛рдЙрдБрд╣рд░реВрдХреЛ рдирд┐рдЧрд░рд╛рдиреАрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рдзрд╛рди рдорди рдкрд░рд╛рдЙрдиреБрднрдпреЛред рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐, рдпреЛ рдЙрддреНрдкрд╛рджрди рд░ рд╡рд┐рдХрд╛рд╕рдорд╛ рдбреБрдмрд╛рдЙрдиреЗ рдПрдХ рдЬрдВрдЧрд▓реА рд░реВрдкрдорд╛ рд░рд╛рдореНрд░реЛ рдЕрдиреБрднрд╡ рдерд┐рдпреЛред рдорд▓рд╛рдИ рдЖрд╢рд╛ рдЫ рдХрд┐ рдПрдЖрдИ рд╡рд┐рд╖рдпрд╣рд░реВ рд╕рд╣рд┐рдд рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдорд╛ рдердк рд░ рдердк рд░реЛрдЪрдХ рдШрдЯрдирд╛рд╣рд░реВ рдЖрдпреЛрдЬрд┐рдд рд╣реБрдиреЗрдЫрдиреНред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди