OpenVINO hackathon: Raspberry Pi рд╡рд░ рдЖрд╡рд╛рдЬ рдЖрдгрд┐ рднрд╛рд╡рдирд╛ рдУрд│рдЦрдгреЗ

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

OpenVINO hackathon: Raspberry Pi рд╡рд░ рдЖрд╡рд╛рдЬ рдЖрдгрд┐ рднрд╛рд╡рдирд╛ рдУрд│рдЦрдгреЗ

рдпрд╛ рд▓реЗрдЦрд╛рдд рдЖрдореНрд╣реА рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреНрдпрд╛ рдЙрддреНрдкрд╛рджрдирд╛рдЪрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд╕рд╛ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдпрд╛рдмрджреНрджрд▓ рд╕рд╛рдВрдЧреВ, рдЬреНрдпрд╛рд╕рд╣ рдЖрдореНрд╣реА рд╢реЗрд╡рдЯреА рдкреНрд░рдердо рд╕реНрдерд╛рди рдорд┐рд│рд╡рд▓реЗ.

рд╣реЕрдХрд╛рдереЙрдирдордзреНрдпреЗ 10 рд╣реВрди рдЕрдзрд┐рдХ рд╕рдВрдШ рд╕рд╣рднрд╛рдЧреА рдЭрд╛рд▓реЗ рд╣реЛрддреЗ. рддреНрдпрд╛рдВрдЪреНрдпрд╛рдкреИрдХреА рдХрд╛рд╣реА рдЗрддрд░ рдкреНрд░рджреЗрд╢рд╛рддреВрди рдЖрд▓реЗ рд╣реЗ рдЫрд╛рди рдЖрд╣реЗ. рд╣реЕрдХрд╛рдереЙрдирдЪреЗ рдард┐рдХрд╛рдг рд╣реЛрддреЗ тАЬрдХреНрд░реЗрдорд▓рд┐рдВрд╕реНрдХреА рдСрди рдкреЛрдЪреЗрдитАЭ рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕, рдЬрд┐рдереЗ рдирд┐рдЭрдиреА рдиреЛрд╡реНрд╣рдЧреЛрд░реЛрдбрдЪреА рдкреНрд░рд╛рдЪреАрди рдЫрд╛рдпрд╛рдЪрд┐рддреНрд░реЗ рдЖрдд рдЯрд╛рдВрдЧрд▓реЗрд▓реА рд╣реЛрддреА. (рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдард╡рдг рдХрд░реВрди рджреЗрддреЛ рдХреА рдпрд╛рдХреНрд╖рдгреА рдЗрдВрдЯреЗрд▓рдЪреЗ рдХреЗрдВрджреНрд░реАрдп рдХрд╛рд░реНрдпрд╛рд▓рдп рдирд┐рдЭрдиреА рдиреЛрд╡реНрд╣рдЧреЛрд░реЛрдб рдпреЗрдереЗ рдЖрд╣реЗ). рд╕рд╣рднрд╛рдЧреАрдВрдирд╛ рдХреЛрдб рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА 26 рддрд╛рд╕рд╛рдВрдЪрд╛ рдЕрд╡рдзреА рджреЗрдгреНрдпрд╛рдд рдЖрд▓рд╛ рд╣реЛрддрд╛ рдЖрдгрд┐ рд╢реЗрд╡рдЯреА рддреНрдпрд╛рдВрдирд╛ рддреНрдпрд╛рдВрдЪреЗ рд╕рдорд╛рдзрд╛рди рд╕рд╛рджрд░ рдХрд░рд╛рдпрдЪреЗ рд╣реЛрддреЗ. рдирд┐рдпреЛрдЬрд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдЧреЛрд╖реНрдЯ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реА рдЧреЗрд▓реА рдЖрдгрд┐ рд╕рд╛рджрд░реАрдХрд░рдгрд╛рдд рдХрд▓реНрдкрдирд╛ рд░рд╛рд╣реВ рдирдпреЗрдд рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбреЗрдореЛ рд╕рддреНрд░рд╛рдЪреА рдЙрдкрд╕реНрдерд┐рддреА рд╣рд╛ рд╡реЗрдЧрд│рд╛ рдлрд╛рдпрджрд╛ рд╣реЛрддрд╛. рд╡реНрдпрд╛рдкрд╛рд░реА, рдлрд░рд╛рд│, рдЕрдиреНрди, рд╕рд░реНрд╡ рдХрд╛рд╣реА рддрд┐рдереЗрд╣реА рд╣реЛрддреЗ!

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЗрдВрдЯреЗрд▓рдиреЗ рд╡реИрдХрд▓реНрдкрд┐рдХрд░рд┐рддреНрдпрд╛ рдХреЕрдореЗрд░реЗ, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкреАрдЖрдп, рдиреНрдпреВрд░рд▓ рдХреЙрдореНрдкреНрдпреВрдЯ рд╕реНрдЯрд┐рдХ 2 рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ.

рдХрд╛рд░реНрдп рдирд┐рд╡рдб

рдлреНрд░реА-рдлреЙрд░реНрдо рд╣реЕрдХрд╛рдереЙрдирдЪреА рддрдпрд╛рд░реА рдХрд░рдгреНрдпрд╛рдЪрд╛ рд╕рд░реНрд╡рд╛рдд рдХрдареАрдг рднрд╛рдЧ рдореНрд╣рдгрдЬреЗ рдЖрд╡реНрд╣рд╛рди рдирд┐рд╡рдбрдгреЗ. рдЖрдореНрд╣реА рддрд╛рдмрдбрддреЛрдм рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рдЖрдгрдгреНрдпрд╛рдЪреЗ рдард░рд╡рд▓реЗ рдЬреЗ рдЕрджреНрдпрд╛рдк рдЙрддреНрдкрд╛рджрдирд╛рдд рдирд╡реНрд╣рддреЗ, рдХрд╛рд░рдг рд╣реЗ рдЕрддреНрдпрдВрдд рд╕реНрд╡рд╛рдЧрддрд╛рд░реНрд╣ рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рдШреЛрд╖рдгреЗрдиреЗ рдореНрд╣рдЯрд▓реЗ рдЖрд╣реЗ.

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

  • рд╕рд┐рджреНрдзрд╛рдВрддрд╛рдиреБрд╕рд╛рд░, рдПрдХ рдПрдХрддреНрд░рд┐рдд рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рддрдпрд╛рд░ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ рдЬреЗ рдзреНрд╡рдиреА рдЖрдгрд┐ рдкреНрд░рддрд┐рдорд╛ рджреЛрдиреНрд╣реАрд╡рд░ рдХрд╛рд░реНрдп рдХрд░реЗрд▓, рдЬреНрдпрд╛рдореБрд│реЗ рдЕрдЪреВрдХрддрд╛ рд╡рд╛рдвреЗрд▓.
  • рдХреЕрдореЗрд░реНтАНрдпрд╛рдВрдордзреНрдпреЗ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдЕрд░реБрдВрдж рдкрд╛рд╣рдгреНрдпрд╛рдЪрд╛ рдХреЛрди рдЕрд╕рддреЛ; рдПрдХ рдореЛрдареЗ рдХреНрд╖реЗрддреНрд░ рдХрд╡реНрд╣рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдХреЕрдореЗрд░реЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддрд╛рдд; рдЖрд╡рд╛рдЬрд╛рд▓рд╛ рдЕрд╢реА рдорд░реНрдпрд╛рджрд╛ рдирд╕рддреЗ.

рдЪрд▓рд╛ рдХрд▓реНрдкрдирд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реВрдпрд╛: рдХрд┐рд░рдХреЛрд│ рд╡рд┐рднрд╛рдЧрд╛рдЪреА рдХрд▓реНрдкрдирд╛ рдЖрдзрд╛рд░ рдореНрд╣рдгреВрди рдШреЗрдК. рддреБрдореНрд╣реА рд╕реНрдЯреЛрдЕрд░ рдЪреЗрдХрдЖрдЙрдЯрд╡рд░ рдЧреНрд░рд╛рд╣рдХрд╛рдВрдЪреЗ рд╕рдорд╛рдзрд╛рди рдореЛрдЬреВ рд╢рдХрддрд╛. рдЬрд░ рдЧреНрд░рд╛рд╣рдХрд╛рдВрдкреИрдХреА рдПрдХ рд╕реЗрд╡реЗрдмрджреНрджрд▓ рдЕрд╕рдорд╛рдзрд╛рдиреА рдЕрд╕реЗрд▓ рдЖрдгрд┐ рддреНрдпрд╛рдЪрд╛ рдЯреЛрди рд╡рд╛рдврд╡реВ рд▓рд╛рдЧрд▓рд╛, рддрд░ рддреБрдореНрд╣реА рддрд╛рдмрдбрддреЛрдм рдорджрддреАрд╕рд╛рдареА рдкреНрд░рд╢рд╛рд╕рдХрд╛рд▓рд╛ рдХреЙрд▓ рдХрд░реВ рд╢рдХрддрд╛.
рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЖрдореНрд╣рд╛рд▓рд╛ рдорд╛рдирд╡реА рдЖрд╡рд╛рдЬ рдУрд│рдЦ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ, рд╣реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕реНрдЯреЛрдЕрд░ рдХрд░реНрдордЪрд╛рд░реНрдпрд╛рдВрдирд╛ рдЧреНрд░рд╛рд╣рдХрд╛рдВрдкрд╛рд╕реВрди рд╡реЗрдЧрд│реЗ рдХрд░рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддреАрд╕рд╛рдареА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓. рдмрд░рдВ, рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рд╕реНрдЯреЛрдЕрд░ рдХрд░реНрдордЪрд╛рд░реНтАНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд░реНрддрдирд╛рдЪреЗ рд╕реНрд╡рддрдГ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдгреЗ, рд╕рдВрдШрд╛рддреАрд▓ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдЪреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрдИрд▓, рдЪрд╛рдВрдЧрд▓реЗ рд╡рд╛рдЯрддреЗ!

рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рд╕рдорд╛рдзрд╛рдирд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХрддрд╛ рддрдпрд╛рд░ рдХрд░рддреЛ:

  • рд▓рдХреНрд╖реНрдп рд╕рд╛рдзрди рд▓рд╣рд╛рди рдЖрдХрд╛рд░
  • рд░рд┐рдЕрд▓ рдЯрд╛рдЗрдо рдСрдкрд░реЗрд╢рди
  • рдХрдореА рдХрд┐рдВрдордд
  • рд╕реБрд▓рдн рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА

рдкрд░рд┐рдгрд╛рдореА, рдЖрдореНрд╣реА рд▓рдХреНрд╖реНрдп рдЙрдкрдХрд░рдг рдореНрд╣рдгреВрди рд░рд╛рд╕реНрдкрдмреЗрд░реА Pi 3 c рдирд┐рд╡рдбрддреЛ рдЗрдВрдЯреЗрд▓ рдПрдирд╕реАрдПрд╕ 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 рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧрд╛рд╕рд╛рдареА рд╕рддреНрдп/рдЕрд╕рддреНрдп рджрд░реНрд╢рд╡реЗрд▓, рдЬреЗ рднрд╛рдЧрд╛рдордзреНрдпреЗ рдорддрд╛рдЪреА рдЙрдкрд╕реНрдерд┐рддреА рдХрд┐рдВрд╡рд╛ рдЕрдиреБрдкрд╕реНрдерд┐рддреАрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ.

рдЪрд▓рд╛ рдЦрд╛рд▓реАрд▓ рддрд░реНрдХ рд▓рд╛рдЧреВ рдХрд░реВрдпрд╛:

  • рдЬрд┐рдереЗ рдорддрджрд╛рди рдЕрд╕реЗрд▓ рддреЗ рддреБрдХрдбреЗ рдЖрдореНрд╣реА рдпрд╛рджреАрдд рдЬреЛрдбреВ; рдЬрд░ рдорддрджрд╛рди рдирд╕реЗрд▓ рддрд░ рдЖрдореНрд╣реА рд░рд┐рдХрд╛рдореНрдпрд╛ рддреБрдХрдбреНрдпрд╛рдВрдЪрд╛ рдХрд╛рдЙрдВрдЯрд░ рд╡рд╛рдврд╡реВ.
  • рдЬрд░ рд░рд┐рдХрд╛рдореНрдпрд╛ рддреБрдХрдбреНрдпрд╛рдВрдЪрд╛ рдХрд╛рдЙрдВрдЯрд░ >=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 = []

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрдирдордзреНрдпреЗ рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбреЗрд▓реНрд╕ рд╢реЛрдзрдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрд▓реА рдЖрд╣реЗ, рдЧреАрдердм, Google рд╡рд░ рдЬрд╛, рдкрд░рдВрддреБ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╡рд░ рдЖрдореНрд╣рд╛рд▓рд╛ рдорд░реНрдпрд╛рджрд╛ рдЖрд╣реЗрдд. рд╣рд╛ рдПрдХ рдХрдареАрдг рднрд╛рдЧ рдЖрд╣реЗ, рдХрд╛рд░рдг рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛рд╡рд░реАрд▓ рдореЙрдбреЗрд▓реНрд╕рдЪреА рдЪрд╛рдЪрдгреА рдШреНрдпрд╛рд╡реА рд▓рд╛рдЧреЗрд▓ рдЖрдгрд┐ рддреНрдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рддреНрдпрд╛рдВрдирд╛ OpenVINO рдЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рд╕реНрд╡рд░реВрдк - IR (рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд░рд┐рдкреНрд░реЗрдЭреЗрдВрдЯреЗрд╢рди) рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рд╛. рдЖрдореНрд╣реА рдЧреАрдердмрдордзреВрди рд╕реБрдорд╛рд░реЗ 5-7 рднрд┐рдиреНрди рдирд┐рд░рд╛рдХрд░рдгреЗ рд╡рд╛рдкрд░реВрди рдкрд╛рд╣рд┐рд▓реА рдЖрдгрд┐ рдЬрд░ рднрд╛рд╡рдирд╛ рдУрд│рдЦрдгреНрдпрд╛рдЪреЗ рдореЙрдбреЗрд▓ рддреНрд╡рд░рд┐рдд рдХрд╛рд░реНрдп рдХреЗрд▓реЗ рддрд░ рдЖрд╡рд╛рдЬ рдУрд│рдЦрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣рд╛рд▓рд╛ рдЬрд╛рд╕реНрдд рд╡реЗрд│ рдерд╛рдВрдмрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ - рддреЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╡рд╛рдкрд░рддрд╛рдд.

рдЖрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рдЧреЛрд╖реНрдЯреАрдВрд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЛ:

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

рдкреБрдвреЗ рдЖрдкрдг рд╕рд┐рджреНрдзрд╛рдВрддрд╛рдкрд╛рд╕реВрди рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВрди рдореЙрдбреЗрд▓реНрд╕рдЪреЗ рд░реВрдкрд╛рдВрддрд░ рдХрд░рдгреНрдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓реВ. OpenVINO рдордзреНрдпреЗ рдЕрдиреЗрдХ рдореЙрдбреНрдпреВрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд:

  • рдореЙрдбреЗрд▓ рдкреНрд░рд╛рдгреАрд╕рдВрдЧреНрд░рд╣рд╛рд▓рдп рдЙрдШрдбрд╛, рдЬреНрдпрд╛ рдореЙрдбреЗрд▓реНрд╕рдордзреВрди рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдЖрдгрд┐ рдЖрдкрд▓реНрдпрд╛ рдЙрддреНрдкрд╛рджрдирд╛рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ
  • рдореЙрдбреЗрд▓ рдСрдкреНрдЯрд┐рдордЭрд░, рдЬреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣реА рд╡рд┐рд╡рд┐рдз рдлреНрд░реЗрдорд╡рд░реНрдХ рдлреЙрд░рдореЕрдЯрдордзреВрди (рдЯреЗрдиреНрд╕рд░рдлреНрд▓реЛ, рдУрдПрдирдПрдирдПрдХреНрд╕ рдЗ.) рдореЙрдбреЗрд▓рдЪреЗ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд░рд┐рдкреНрд░реЗрдЭреЗрдВрдЯреЗрд╢рди рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░реВ рд╢рдХрддрд╛, рдЬреНрдпрд╛рд╕рд╣ рдЖрдореНрд╣реА рдкреБрдвреЗ рдХрд╛рдо рдХрд░реВ.
  • Inference Engine рддреБрдореНрд╣рд╛рд▓рд╛ Intel рдкреНрд░реЛрд╕реЗрд╕рд░, Myriad chips рдЖрдгрд┐ 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++ API рдордзреНрдпреЗ рдЙрдкрд╕реНрдерд┐рдд рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рджрд┐рд╕рддреЗ, рдкрд░рдВрддреБ рдЖрдореНрд╣реА рдЗрддрдХреЗ рджреВрд░ рдЦреЛрджрд▓реЗ рдирд╛рд╣реА рдЖрдгрд┐ рдореЙрдбреЗрд▓рдкреИрдХреА рдПрдХрд╛рд╕рд╛рдареА рддреЗ рдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реЗ.
    рдкреБрдвреЗ, рдбреАрдПрдирдПрди рдореЙрдбреНрдпреВрд▓рджреНрд╡рд╛рд░реЗ рдУрдкрдирд╕реАрд╡реНрд╣реАрдордзреНрдпреЗ IR рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рдЖрдзреАрдЪ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдореЙрдбреЗрд▓ рд▓реЛрдб рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВрдпрд╛ рдЖрдгрд┐ рддреНрдпрд╛рд╕ рдлреЙрд░рд╡рд░реНрдб рдХрд░реВ.

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

    рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рддреАрд▓ рд╢реЗрд╡рдЯрдЪреА рдУрд│ рддреБрдореНрд╣рд╛рд▓рд╛ рдиреНрдпреВрд░рд▓ рдХреЙрдореНрдкреНрдпреБрдЯ рд╕реНрдЯрд┐рдХрд╡рд░ рдЧрдгрдирд╛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ, рдкреНрд░реЛрд╕реЗрд╕рд░рд╡рд░ рдореВрд▓рднреВрдд рдЧрдгрдирд╛ рдХреЗрд▓реА рдЬрд╛рддреЗ, рдкрд░рдВрддреБ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рд╣реЗ рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░ рдирд╛рд╣реА, рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрдЯрд┐рдХрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓.

    рдкреБрдвреЗ, рддрд░реНрдХрд╢рд╛рд╕реНрддреНрд░ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗ: рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдСрдбрд┐рдУрд▓рд╛ рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдХрд╛рд░рд╛рдЪреНрдпрд╛ рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЛ (рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рддреЗ 0.4 s рдЖрд╣реЗ), рдЖрдореНрд╣реА рдпрд╛рдкреИрдХреА рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдВрдбреЛрд▓рд╛ MFCC рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рддреЛ, рдЬреНрдпрд╛рд▓рд╛ рдЖрдореНрд╣реА рдирдВрддрд░ рдЧреНрд░реАрдбрдордзреНрдпреЗ рдлреАрдб рдХрд░рддреЛ:

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

    рдкреБрдвреЗ, рд╕рд░реНрд╡ рд╡рд┐рдВрдбреЛрд╕рд╛рдареА рд╕рд░реНрд╡рд╛рдд рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдЧ рдШреЗрдК. рдПрдХ рд╕реЛрдкрд╛ рдЙрдкрд╛рдп, рдкрд░рдВрддреБ рд╣реЕрдХрд╛рдереЙрдирд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рдлрд╛рд░рд╕реЗ рдЕрдкреНрд░рд╕реНрддреБрдд рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА, рдлрдХреНрдд рддреБрдордЪреНрдпрд╛рдХрдбреЗ рд╡реЗрд│ рдЕрд╕реЗрд▓ рддрд░рдЪ. рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрдЬреВрди рдмрд░реЗрдЪ рдХрд╛рдо рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ, рддрд░ рдЪрд▓рд╛ рдкреБрдвреЗ рдЬрд╛рдК - рдЖрдореНрд╣реА рдЖрд╡рд╛рдЬ рдУрд│рдЦ рд╣рд╛рддрд╛рд│реВ. рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдкреВрд░реНрд╡-рд░реЗрдХреЙрд░реНрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЖрд╡рд╛рдЬрд╛рдВрдЪреЗ рд╕реНрдкреЗрдХреНрдЯреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓. рдереЛрдбрд╛ рд╡реЗрд│ рд╢рд┐рд▓реНрд▓рдХ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЖрдореНрд╣реА рд╢рдХреНрдп рддрд┐рддрдХреЗ рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░реВ.

    рдЕрд░реНрдерд╛рдд, рдЖрдореНрд╣реА рд╡реНрд╣реЙрдЗрд╕ рдЙрддрд╛рд░рд╛ рд░реЗрдХреЙрд░реНрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдпрд╛рд░ рдХрд░рддреЛ (рд╣реЗ рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗрдЪ рдХрд╛рд░реНрдп рдХрд░рддреЗ, рдХреАрдмреЛрд░реНрдбрд╡рд░реВрди рд╡реНрдпрддреНрдпрдп рдЖрдгрд▓реНрдпрд╛рд╡рд░рдЪ рддреЛ рдЖрд╡рд╛рдЬ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд╕реЗрд╡реНрд╣ рдХрд░реЗрд▓).

    рдЪрд▓рд╛ рдкреНрд░рдпрддреНрди рдХрд░реВ:

    python3 voice_db/record_voice.py test.wav

    рдЖрдореНрд╣реА рдЕрдиреЗрдХ рд▓реЛрдХрд╛рдВрдЪреЗ рдЖрд╡рд╛рдЬ рд░реЗрдХреЙрд░реНрдб рдХрд░рддреЛ (рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рддреАрди рдЯреАрдо рд╕рджрд╕реНрдп)
    рдкреБрдвреЗ, рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдХреЙрд░реНрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡реНрд╣реЙрдИрд╕рд╕рд╛рдареА рдЖрдореНрд╣реА рд╡реЗрдЧрд╡рд╛рди рдлреЛрд░рд┐рдпрд░ рдЯреНрд░рд╛рдиреНрд╕рдлреЙрд░реНрдо рдХрд░рддреЛ, рд╕реНрдкреЗрдХреНрдЯреНрд░реЛрдЧреНрд░рд╛рдо рдорд┐рд│рд╡рддреЛ рдЖрдгрд┐ рддреЛ numpy рдЕреЕрд░реЗ (.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 рд╡рд░ рдЖрд╡рд╛рдЬ рдЖрдгрд┐ рднрд╛рд╡рдирд╛ рдУрд│рдЦрдгреЗ
    рдЖрдореНрд╣реА рдорд╛рдЧреВрди рдХрдиреЗрдХреНрд╢рдирдЪреА рд╡рд╛рдЯ рдкрд╛рд╣рдд рдЖрд╣реЛрдд

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

    OpenVINO hackathon: Raspberry Pi рд╡рд░ рдЖрд╡рд╛рдЬ рдЖрдгрд┐ рднрд╛рд╡рдирд╛ рдУрд│рдЦрдгреЗ
    рдЕрджреНрдпрддрдирд┐рдд рдЕрдВрджрд╛рдЬрд╛рдВрд╕рд╣ рдореБрдЦрдкреГрд╖реНрда

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

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

    рдорд▓рд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдЖрдордЪреНрдпрд╛ рд╕реЛрд▓реНрдпреВрд╢рдирдЪреА рдПрдХреВрдг рдХрд┐рдВрдордд $150 рд╣реЛрддреА:

    • рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 3 ~ $35
    • Google AIY рд╡реНрд╣реЙрдЗрд╕ рдмреЛрдиреЗрдЯ (рддреБрдореНрд╣реА рд░рд┐рд╕реНрдкреАрдХрд░ рдлреА рдШреЗрдК рд╢рдХрддрд╛) ~ 15$
    • рдЗрдВрдЯреЗрд▓ NCS 2 ~ 100$

    рдХрд╕реЗ рд╕реБрдзрд╛рд░рд╛рдпрдЪреЗ:

    • рдХреНрд▓рд╛рдпрдВрдЯрдХрдбреВрди рдиреЛрдВрджрдгреА рд╡рд╛рдкрд░рд╛ - рдпрд╛рджреГрдЪреНрдЫрд┐рдХрдкрдгреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓рд╛ рдордЬрдХреВрд░ рд╡рд╛рдЪрдгреНрдпрд╛рд╕ рд╕рд╛рдВрдЧрд╛
    • рдЖрдгрдЦреА рдХрд╛рд╣реА рдореЙрдбреЗрд▓реНрд╕ рдЬреЛрдбрд╛: рддреБрдореНрд╣реА рдЖрд╡рд╛рдЬрд╛рджреНрд╡рд╛рд░реЗ рд▓рд┐рдВрдЧ рдЖрдгрд┐ рд╡рдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реВ рд╢рдХрддрд╛
    • рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЖрд╡рд╛рдЬ рд╡реЗрдЧрд│реЗ рдХрд░рд╛ (рдбрд╛рдпрд░рд╛рдпрдЭреЗрд╢рди)

    рднрд╛рдВрдбрд╛рд░: https://github.com/vladimirwest/OpenEMO

    OpenVINO hackathon: Raspberry Pi рд╡рд░ рдЖрд╡рд╛рдЬ рдЖрдгрд┐ рднрд╛рд╡рдирд╛ рдУрд│рдЦрдгреЗ
    рдердХрд▓реЛ рдкрдг рдЖрдирдВрджреА рдЖрд╣реЛрдд

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

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛