рдкрд╛рдпрдерди рдореЗрдВ рдЧрд╣рд░реА рд╢рд┐рдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЪреЗрд╣рд░рд╛ рдкрд╣рдЪрд╛рди рдореЙрдбрд▓ рдмрдирд╛рдирд╛

рдЕрдиреБрд╡рд╛рджрдХ рдРрд▓реЗрдирд╛ рдмреЛрд░реНрдиреЛрд╡реЛрд▓рдХреЛрд╡рд╛ рдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдиреЗрдЯреЛрд▓реЙрдЬреА рдХреЗ рд▓рд┐рдП рдлреЗрд╕рди рд╢реЗрдЦ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд▓реЗрдЦ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдХреИрд╕реЗ рдЪреЗрд╣рд░реЗ рдХреА рдкрд╣рдЪрд╛рди рдХрд╛ рдПрдХ рдореЙрдбрд▓ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕реЗ рдХрд┐рди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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


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

рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рддрдХрдиреАрдХ рдЪреЗрд╣рд░рд╛ рдкрд╣рдЪрд╛рди рд╣реИред рдЬрдм рд╕рд╣реА рдФрд░ рдиреИрддрд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рдЬреАрд╡рди рдХреЗ рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкреНрд░рднрд╛рд╡реА рдЪреЗрд╣рд░рд╛ рдкрд╣рдЪрд╛рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдХреЛ рджреЗрдЦрдХрд░ рддреИрдпрд╛рд░реА рдХрд░реЗрдВ рдФрд░ рдкреНрд░реЗрд░рд┐рдд рд╣реЛрдВ:


рдЪреЗрд╣рд░рд╛ рдкрд╣рдЪрд╛рди: рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ


рдпрд╣рд╛рдБ рдЪреЗрд╣рд░рд╛ рдкрд╣рдЪрд╛рди рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдХреБрдЫ рд╕рдВрднрд╛рд╡рд┐рдд рдХреНрд╖реЗрддреНрд░ рд╣реИрдВред

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

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


рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЧрд┐рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрд╣рд░рд╛ рдкрд╣рдЪрд╛рди ред рдХрд┐рд╕реА рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЗрд╣рд░рд╛ рдкрд╣рдЪрд╛рди рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рд╕рдореНрдореЗрд▓рди рдпрд╛ рд╕рдВрдЧреАрдд рдХрд╛рд░реНрдпрдХреНрд░рдо)ред рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЧрд┐рдирдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдПрдХ рдХреИрдорд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рдЪреЗрд╣рд░реЗ рдХреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдЧрдВрддреБрдХреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рдордп рдмрдЪрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред



рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрдЕрдк: рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ


рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдУрдкрди рд╕реЛрд░реНрд╕ рдЯреВрд▓реНрд╕ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдХреЗ рдлреЗрд╕ рд░рд┐рдХрдЧреНрдирд┐рд╢рди рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ:

  • рд▓реЗрдиреЛрд╡реЛ E470 рдерд┐рдВрдХрдкреИрдб рд▓реИрдкрдЯреЙрдк (рдХреЛрд░ i5 7 рд╡реАрдВ рдЬреЗрди) рдкрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЗ рдЪреЗрд╣рд░реЗ рдХреА рдкрд╣рдЪрд╛рди рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдХреИрдорд░рд╛ (рд▓реЙрдЬрд┐рдЯреЗрдХ C920)ред рдЖрдк рдЕрдкрдиреЗ рд▓реИрдкрдЯреЙрдк рдХреЗ рдмрд┐рд▓реНрдЯ-рдЗрди рдХреИрдорд░рд╛ рдпрд╛ рдХреИрдордХреЙрд░реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рдЙрдкрдпреБрдХреНрдд рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЗ рд╡реАрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╣реИред
  • рддреЗрдЬреА рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред
  • рд╣рдордиреЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рдЙрдмрдВрдЯреВ 18.04 рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рд╣рдорд╛рд░реЗ рдЪреЗрд╣рд░реЗ рдХреА рдкрд╣рдЪрд╛рди рдореЙрдбрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЗрди рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред

рдЪрд░рдг 1: рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реЗрдЯрдЕрдк


рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреИрдорд░рд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЙрдмрдВрдЯреВ рдХреЗ рд╕рд╛рде, рдпрд╣ рд╕рд░рд▓ рд╣реИ: рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:

  1. рд╡реЗрдм рдХреИрдорд░рд╛ рдХреЛ рд▓реИрдкрдЯреЙрдк рд╕реЗ тАЛтАЛрдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ рдкрд░ ls /dev/video* рдЯрд╛рдЗрдк рдХрд░рдХреЗ рд╕рднреА рдХрдиреЗрдХреНрдЯреЗрдб рд╡реАрдбрд┐рдпреЛ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдирддреАрдЬрддрди, рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рд╡реАрдбрд┐рдпреЛ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред
  2. рд╡реЗрдмрдХреИрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдХрдорд╛рдВрдб рдЬрд╛рд░реА рдХрд░реЗрдВред рдпрджрд┐ рд╡реЗрдмрдХреИрдо рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рддреЛ рдирдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХрдорд╛рдВрдб рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрдЧрд╛ред
  3. рдЗрд╕рдХреЗ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╡реЗрдмрдХреИрдо рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдмрдВрдЯреВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЪреАрдЬрд╝ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЪрд░рдг 2: рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реЗрдЯрдЕрдк


рдЪрд░рдг 2.1: рдкрд╛рдпрдерди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХреЛрдб рдкрд╛рдпрдерди (рд╕рдВрд╕реНрдХрд░рдг 3.5) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд╛рдпрдерди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдбреЗрдЯрд╛ рдХреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдкрд╛рдпрдерди рд╡рд┐рддрд░рдг рдПрдирд╛рдХреЛрдВрдбрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред

рдЪрд░рдг 2.2: OpenCV рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

OpenCV рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬрд┐рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрд╝рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред OpenCV рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ pip рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 pip3 install opencv-python 

рд╕реНрдЯреЗрдк 2.3: face_recognition API рд╕реЗрдЯ рдХрд░реЗрдВ

рд╣рдо face_recognition API рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдкрд╛рдпрдерди рдлреЗрд╕ рд░рд┐рдХрдЧреНрдирд┐рд╢рди API рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

 pip install dlib pip install face_recognition 

рдХреА рд╢реБрд░реВрдЖрдд


рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдлрд┐рд░ рд╕рдордЭрд╛рдПрдВрдЧреЗ рдХрд┐ рд╣рдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ред

рдкреВрд░реНрд╡рд╛рднреНрдпрд╛рд╕


рдПрдХ face_detector.py рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдФрд░ рдлрд┐рд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ:

 # import libraries import cv2 import face_recognition # Get a reference to webcam video_capture = cv2.VideoCapture("/dev/video1") # Initialize variables face_locations = [] while True: # Grab a single frame of video ret, frame = video_capture.read() # Convert the image from BGR color (which OpenCV uses) to RGB color (which face_recognition uses) rgb_frame = frame[:, :, ::-1] # Find all the faces in the current frame of video face_locations = face_recognition.face_locations(rgb_frame) # Display the results for top, right, bottom, left in face_locations:  # Draw a box around the face  cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2) # Display the resulting image cv2.imshow('Video', frame) # Hit 'q' on the keyboard to quit! if cv2.waitKey(1) & 0xFF == ord('q'):  break # Release handle to the webcam video_capture.release() cv2.destroyAllWindows() 

рдлрд┐рд░ рдЗрд╕ рдкрд╛рдпрдерди рдлрд╛рдЗрд▓ рдХреЛ рдЯрд╛рдЗрдк рдХрд░рдХреЗ рдЪрд▓рд╛рдПрдВ:

 python face_detector.py 

рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдлреЗрд╕ рд░рд┐рдХрдЧреНрдирд┐рд╢рди рдореЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рд╡рд┐рдВрдбреЛ рдЦреБрд▓ рдЬрд╛рдПрдЧреАред


рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдПрдВ рдФрд░ рд╕рдордЭрд╛рдПрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдХреЛрдб рдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛:

  1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛, рдЬрд┐рд╕ рдкрд░ рд╡реАрдбрд┐рдпреЛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  2. рдлрд┐рд░ рд╣рдордиреЗ рдлреНрд░реЗрдо рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╡реАрдбрд┐рдпреЛ рдХреИрдкреНрдЪрд░ рдлреНрд░реЗрдо рдмрдирд╛рдпрд╛ред
  3. рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЫрд╡рд┐ рдореЗрдВ рд╕рднреА рдЪреЗрд╣рд░реЛрдВ рдХрд╛ рд╕реНрдерд╛рди рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ред
  4. рдирддреАрдЬрддрди, рдЗрди рдлрд╝реНрд░реЗрдореЛрдВ рдХреЛ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрди: рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ , рдЬрд╣рд╛рдВ рдЪреЗрд╣рд░реЗ рд╕реНрдерд┐рдд рд╣реИрдВред

рдЪреЗрд╣рд░рд╛ рдкрд╣рдЪрд╛рди рдЖрд╡реЗрджрди рдЙрджрд╛рд╣рд░рдг


рдпрд╣ рд╕рдм рдордЬрд╝рд╛ рдЦрддреНрдо рдирд╣реАрдВ рд╣реИред рд╣рдо рдПрдХ рдФрд░ рдЕрдЪреНрдЫреА рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ: рд╣рдо рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрд╡реЗрджрди рдХрд╛ рдПрдХ рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВрдЧреЗред рд╣рдо рдХреЛрдб рдореЗрдВ рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

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



рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдбреЗрдЯрд╛рд╣реИрдХ рд╕рдорд┐рдЯ 2017 рд╕рдореНрдореЗрд▓рди рдХреЗ рд╡рдХреНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рднрд╛рд╖рдг рдХреЗ рд╕рд╛рде YouTube рдкрд░ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░реЗрдВ:

 import cv2 import face_recognition 

рдлрд┐рд░ рд╣рдо рд╡реАрдбрд┐рдпреЛ рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рд▓рдВрдмрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

 input_movie = cv2.VideoCapture("sample_video.mp4") length = int(input_movie.get(cv2.CAP_PROP_FRAME_COUNT)) 

рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрд╕реА рдХреЗ рд╕рдорд╛рди рдЖрд╡рд╢реНрдпрдХ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдФрд░ рдлреНрд░реЗрдо рджрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВред

рд╣рдо рд╕реНрдкреАрдХрд░ рдЫрд╡рд┐ рдХреЛ рд╡реАрдбрд┐рдпреЛ рдкрд░ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдореВрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ:

 image = face_recognition.load_image_file("sample_image.jpeg") face_encoding = face_recognition.face_encodings(image)[0] known_faces = [ face_encoding, ] 

рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЪрдХреНрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╣реЛрдЧрд╛:

  • рд╡реАрдбрд┐рдпреЛ рд╕реЗ рдлреНрд░реЗрдо рдирд┐рдХрд╛рд▓реЗрдВред
  • рд╕рднреА рдЪреЗрд╣рд░реЗ рдЦреЛрдЬреЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкрд╣рдЪрд╛рдиреЗрдВред
  • рдПрдХ рдирдпрд╛ рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рдПрдВ рдЬреЛ рдореВрд▓ рдлреНрд░реЗрдо рдХреЛ рд╕реНрдкреАрдХрд░ рдХреЗ рдЪреЗрд╣рд░реЗ рдХреЗ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред

рдЖрдЗрдП рдЙрд╕ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ рдЬреЛ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛:

 # Initialize variables face_locations = [] face_encodings = [] face_names = [] frame_number = 0 while True: # Grab a single frame of video ret, frame = input_movie.read() frame_number += 1 # Quit when the input video file ends if not ret:  break # Convert the image from BGR color (which OpenCV uses) to RGB color (which face_recognition uses) rgb_frame = frame[:, :, ::-1] # Find all the faces and face encodings in the current frame of video face_locations = face_recognition.face_locations(rgb_frame, model="cnn") face_encodings = face_recognition.face_encodings(rgb_frame, face_locations) face_names = [] for face_encoding in face_encodings:  # See if the face is a match for the known face(s)  match = face_recognition.compare_faces(known_faces, face_encoding, tolerance=0.50)  name = None  if match[0]:      name = "Phani Srikant"  face_names.append(name) # Label the results for (top, right, bottom, left), name in zip(face_locations, face_names):  if not name:      continue      # Draw a box around the face  cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)  # Draw a label with a name below the face  cv2.rectangle(frame, (left, bottom - 25), (right, bottom), (0, 0, 255), cv2.FILLED)       font = cv2.FONT_HERSHEY_DUPLEX  cv2.putText(frame, name, (left + 6, bottom - 6), font, 0.5, (255, 255, 255), 1) # Write the resulting image to the output video file print("Writing frame {} / {}".format(frame_number, length)) output_movie.write(frame) # All done! input_movie.release() cv2.destroyAllWindows() 

рдХреЛрдб рдЖрдкрдХреЛ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛:


рд╕рдВрдкрд╛рджрдХреЛрдВ рд╕реЗ


рд╡рд┐рд╖рдп рдкрд░ рдиреЗрдЯреЛрд▓реЙрдЬреА рдкрд╛рдареНрдпрдХреНрд░рдо:

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


All Articles