рд╕рд┐рдВрдЧрд▓-рдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛
рдкрд┐рдЫрд▓реА
рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрдВрдЯреЗрд▓ рдиреНрдпреВрд░рд▓ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реНрдЯрд┐рдХ 2 рдХреЛ рдЯреИрдВрдХ рдкрд░ рд░рдЦрд╛ рдФрд░ рдЙрд╕ рдкрд░ рд╕рднреА рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЧрдгрдирд╛рдУрдВ рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдЯреЗрдиреНрд╕рд░рдлрд╝реНрд▓реЛ рдФрд░ рдУрдкрдирд╕реАрд╡реА-рдбреАрдПрдирдПрди рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред
рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА рдЬреЛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕рд╛рдордирд╛ рдХрд░ рд▓реА рдереА - рдПрдХ рд╕рд╛рде рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдПрдирд╕реАрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ред рддрдм рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред
рджреВрд╕рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдПрдХ рдореЙрдбрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп, OpenVino рдиреЗ рд╢рдкрде рд▓реЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛:
E: [ncAPI] [ 926029] resetAll:348 Failed to connect to stalled device, rc: X_LINK_ERROR E: [ncAPI] [ 933282] ncDeviceOpen:672 Failed to find suitable device, rc: X_LINK_DEVICE_NOT_FOUND
рдЗрдВрдЯреЗрд▓ рд╕рдкреЛрд░реНрдЯ рдлреЛрд░рдо рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рд╕реЗ, рдПрдХ
рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдкрд╛рдИ рдЧрдИ
редрд╡рд╣рд╛рдБ рд╕реЗ рд╣рдо
рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдП рдЧрдП рдЬрд╣рд╛рдБ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ:
рдПрдХрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдпреЛрдЧ рдкрд░, рдЖрдк рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдо рд╕реЗ рдХрдо рдФрд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
NCS рд╕реЗрд╡рд╛
рдПрдирд╕реАрдПрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпрдХреНрд╖ рдХрд╛рдо рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕реЗрд╡рд╛ рдореЗрдВ рд░рдЦрдирд╛ рдФрд░ рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдПрдкреАрдЖрдИ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд░реЛрдмреЛрдЯ рдФрд░ рдЗрд╕рдХреА рдирдИ рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╡рд┐рд╖рдп рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдПрдирд╕реАрдПрд╕ рдПрдкреАрдЖрдИ рдкрд░ рд╕рд╛рдордЧреНрд░реА рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЖрдХрд░реНрд╖рд┐рдд рд╣реИред
рдПрдирд╕реАрдПрд╕ рдПрдкреАрдЖрдИ
рдирд┐рдореНрди рд╕реНрддрд░ рдкрд░, NCS API рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
- рд▓реЛрдб рдореЙрдбрд▓
- рдЧрдгрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ
- рдореЙрдбрд▓ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- рдореЙрдбрд▓ рдЧреБрдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рдпрджрд┐ рдореЙрдбрд▓ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рд╕рдм рдХреБрдЫ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ, рддреЛ рдЧрдгрдирд╛ рдирд┐рдХрд╛рд╕ рдПрдХ рд╕рдВрджрд░реНрдн-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЯреЗрдВрд╕рд░ рд╣реИ рдЬрд┐рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕рднреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдореЙрдбрд▓ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рднреА рдХрд╛рдлреА рдкрд╛рд░рджрд░реНрд╢реА рд╣реИ, рдФрд░ рдЧреБрдгреЛрдВ рд╕реЗ рдЗрдирдкреБрдЯ рдЯреЗрдВрд╕рд░ рдХрд╛ рдЖрдпрд╛рдо рддреБрд░рдВрдд рдзреНрдпрд╛рди рдореЗрдВ рдЖрддрд╛ рд╣реИ - рдорд╛рдирд╡ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдирд┐рдореНрди рд╕реНрддрд░ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рддрд░реНрдХ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдзрд╛рд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд░реНрдЧреАрдХрд░рдг, рдкрд╣рдЪрд╛рди рдФрд░ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рд╣реИред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рднрд╛рдЬрди рдореЙрдбрд▓ рдПрдирд╕реАрдПрд╕ рдкрд░
рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рдбрд╝рдХ рдФрд░ рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдСрдкрд░реЗрд╢рди рдореЙрдбрд▓ рдХреА рдореВрд▓ рдЧрдгрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдЖрдЙрдЯрдкреБрдЯ рдЯреЗрдВрд╕рд░ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред
рдореБрдЦреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕
рддреЛ, рдореБрдЦреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- POST: / рд▓реЛрдб - рдореЙрдбрд▓ рд▓реЛрдб рдХрд░реЗрдВ
- рдкреЛрд╕реНрдЯ: / рдЕрдирд▓реЛрдб / $ рдореЙрдбрд▓ - рдореЙрдбрд▓ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ (рд╕реЗрд╡рд╛ рд╕реЗ, рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдирд┐рдХрд╛рд▓рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ)
- GET: / рд╕реВрдЪреА - рдореЙрдбрд▓ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: / рдЗрдирдкреБрдЯ / рдЖрдХрд╛рд░ / $ рдореЙрдбрд▓ - рдЗрдирдкреБрдЯ рдЯреЗрдВрд╕рд░ рдХреЗ рдЖрдпрд╛рдо рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ
- POST: / inference / рдлрд╝рд╛рдЗрд▓ / $ рдореЙрдбрд▓ - рдореЗрдореЛрд░реА рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЧрдгрдирд╛ рдХрд░реЗрдВ
- POST: / inference / рдкрд╛рде / $ рдореЙрдбрд▓ - рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЧрдгрдирд╛ рдХрд░реЗрдВ
рдореЗрдореЛрд░реА рдФрд░ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЛ рд╢рдмреНрдж рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
рдпрджрд┐ рдПрдирд╕реАрдПрд╕ рд╕реЗрд╡рд╛ рдФрд░ рдЙрд╕рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╣реА рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЪрд┐рддреНрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪрд╛рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдкрде рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕реЗрд╡рд╛ рд╕реНрд╡рдпрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝ рд▓реЗред
рдпрджрд┐ рдЪрд┐рддреНрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЗрдореЛрд░реА рдореЗрдВ рд╣реИ (рдпрд╛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ), рддреЛ рд╣рдо рдЗрд╕реЗ рд╕реАрдзреЗ рд╡рд╣рд╛рдВ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдЯреЗрд╕реНрдЯ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдореЗрдореЛрд░реА рд╕реЗ рдмрд╛рдЗрдЯреНрд╕ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдирд╛ рдХрд╛рдлреА рдзреАрдорд╛ рд╣реИ (1000 рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдорд╛рдк):
рдореЗрдореЛрд░реА рд╕реЗ: 87.5 рд╕реЗрдХрдВрдб
рдлрд╝рд╛рдЗрд▓ рдкрде: 63.3150 рд╕реЗрдХрдВрдб
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпреЗ рджреЛ рд╡рд┐рдХрд▓реНрдк рдХрд┐рд╕реА рднреА рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ, рджреЛрдиреЛрдВ рд╕рд╛рдорд╛рдиреНрдп рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдиреАрдЪреЗ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдПред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдХреНрд╖реЗрдк рд╡рд┐рдзрд┐ рдПрдХ рдЪрд┐рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рддрд╕реНрд╡реАрд░ рд▓реЗрддреА рд╣реИ рдФрд░ рдПрдХ рд╣реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рдЯреЗрдВрд╕рд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреА рд╣реИред
рдирд┐рдХрд╛рд╕ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреИрд╕реЗ рдХрд░реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЧреНрд░рд╛рд╣рдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реЗрд╡рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ рдЬреЛ рдЖрдЙрдЯрдкреБрдЯ рдЯреЗрдВрд╕рд░ рд╕реЗ рдорд╛рдирд╡ рд░реВрдк рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВред
рд╡рд░реНрдЧреАрдХрд░рдг
рд╡рд░реНрдЧреАрдХрд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЕрд▓рдЧ REST рд╡рд┐рдзрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдЙрдЯрдкреБрдЯ рдЯреЗрдВрд╕рд░ рдХреЛ рдЬреЛрдбрд╝реЗ (рд╡рд░реНрдЧ, рд╕реНрдХреЛрд░) рдХреЗ рдПрдХ рд╕реЗрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреА рд╣реИред
def get_class_tensor(data): ret = [] thr = 0.01 while(True): cls = np.argmax(data) if data[cls] < thr: break; logging.debug(("Class", cls, "score", data[cls])) c = {"class" : int(cls), "score" : int(100 * data[cls])} data[cls] = 0 ret.append(c) return ret def classify(model_id, img): rc, out = run_inference(model_id, img) if not rc: return rc, out return True, get_class_tensor(out)
рд╕рд╛рдорд╛рдиреНрдп рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рджреЛ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдореЗрдореЛрд░реА рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдФрд░ рдбрд┐рд╕реНрдХ рдкрд░ рдПрдХ рдкрдеред
- рдкреЛрд╕реНрдЯ: / рд╡рд░реНрдЧреАрдХреГрдд / рдлрд╝рд╛рдЗрд▓ / $ рдореЙрдбрд▓
- рдкреЛрд╕реНрдЯ: / рд╡рд░реНрдЧреАрдХреГрдд / рдкрде / $ рдореЙрдбрд▓
рдЦреЛрдЬ
рдбрд┐рдЯреЗрдХреНрдЯрд░ рдЖрдЙрдЯрдкреБрдЯ рдЯреЗрдВрд╕рд░ рдореЗрдВ рдПрдХ рд╕реЗрдЯ (рд╡рд░реНрдЧ, рд╕рдВрднрд╛рд╡рдирд╛, рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ) рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдмрд▓реНрдХрд┐ рдмреЛрдЭрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИред
рдЕрд╕рдВрднрд╛рд╡реНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдХрд╛рдЯрддреЗ рд╣реБрдП, рд╣рдо рдЗрд╕реЗ рдПрдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд░реВрдк рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ:
def get_detect_from_tensor(t, rows, cols): score = int(100 * t[2]) cls = int(t[1]) left = int(t[3] * cols) top = int(t[4] * rows) right = int(t[5] * cols) bottom = int(t[6] * rows) return {"class" : cls, "score" : score, "x" : left, "y" : top, "w" : (right - left), "h" : (bottom - top)} def build_detection(data, thr, rows, cols): T = {} for t in data: score = t[2] if score > thr: cls = int(t[1]) if cls not in T: T[cls] = get_detect_from_tensor(t, rows, cols) else: a = T[cls] if a["score"] < score: T[cls] = get_detect_from_tensor(t, rows, cols) return list(T.values()) def detect(model_id, img): rc, out = run_inference(model_id, img) if not rc: return rc, out rows, cols = img.shape[:2] return True, build_detection(out[0], 0.01, rows, cols)
рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рдкреЛрд╕реНрдЯ: / рдкрддрд╛ рд▓рдЧрд╛рдиреЗ / рдлрд╝рд╛рдЗрд▓ / $ рдореЙрдбрд▓
- рдкреЛрд╕реНрдЯ: / рдкрддрд╛ рд▓рдЧрд╛рдиреЗ / рдкрде / $ рдореЙрдбрд▓
рд╡рд┐рднрд╛рдЬрди
рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рдЯреЗрдВрд╕рд░ рдореЗрдВ рдХреНрд▓рд╛рд╕ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЖрдпрд╛рдо рдореЗрдВ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред
рдЗрд╕реЗ рдмрд╕ рдХреНрд▓рд╛рд╕ рдорд╛рд╕реНрдХ рдореЗрдВ рдмрджрд▓реЗрдВ:
def segment(model_id, img): rc, out = run_inference(model_id, img) if not rc: return rc, out out = np.argmax(out, axis=0) out = cv.resize(out, (img.shape[1], img.shape[0]),interpolation=cv.INTER_NEAREST) return True, out
- рдкреЛрд╕реНрдЯ: / рдЦрдВрдб / рдлрд╝рд╛рдЗрд▓ / $ рдореЙрдбрд▓
- POST: / рдЦрдВрдб / рдкрде / $ рдореЙрдбрд▓
рдирд┐рд╖реНрдХрд░реНрд╖
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдХреЗ рдПрдХ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рд╕реЗрд╡рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╡реЙрд▓реНрдпреВрдо рдПрдХ рдЕрд▓рдЧ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдЦреАрдВрдЪ рд░рд╣рд╛ рд╣реИред
рдлрд┐рд░ рд╕реЗ, рдореИрдВ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдордВрдЪ рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдирд╕реАрдПрд╕ рдХреЗ рд╕рд╛рде рдЕрдЬрдЧрд░ рдФрд░ рдУрдкрдирд╡рд┐рдиреЛ рд╣реИрдВред
рд╕рдВрджрд░реНрдн