рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдВ

рдХреНрд╡рд┐рдХ рд╕реНрдЯрд╛рд░реНрдЯ рдЧрд╛рдЗрдб: рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рд╕рд╛рде Ultralytics YOLOv8

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



рд╕рддрд░реНрдХрддрд╛: рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 5 рдЕрдкрдбреЗрдЯ рдФрд░ рд╕реБрдзрд╛рд░ред

рдиреЛрдЯ

рдЗрд╕ рдЧрд╛рдЗрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 4 рдФрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 5 рдХреЗ рд╕рд╛рде рдирд╡реАрдирддрдо рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдУрдПрд╕ рдмреБрдХрд╡рд╛рд░реНрдо (рдбреЗрдмрд┐рдпрди 12) рдЪрд▓рд╛рдиреЗ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреБрд░рд╛рдиреЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЧрд╛рдЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬреИрд╕реЗ рдХрд┐ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 3 рддрдм рддрдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдПрдХ рд╣реА рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдУрдПрд╕ рдмреБрдХрд╡рд╛рд░реНрдо рд╕реНрдерд╛рдкрд┐рдд рд╣реИред

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреНрдпрд╛ рд╣реИ?

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

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╢реНрд░реГрдВрдЦрд▓рд╛ рддреБрд▓рдирд╛

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 3 рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 4 рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 5
CPU рдмреНрд░реЙрдбрдХреЙрдо BCM2837, Cortex-A53 64Bit SoC рдмреНрд░реЙрдбрдХреЙрдо BCM2711, Cortex-A72 64Bit SoC рдмреНрд░реЙрдбрдХреЙрдо BCM2712, Cortex-A76 64Bit SoC
CPU рдЕрдзрд┐рдХрддрдо рдЖрд╡реГрддреНрддрд┐ 1.4 рдЧреАрдЧрд╛рд╣рд░реНрдЯреНрдЬрд╝ 1.8 рдЧреАрдЧрд╛рд╣рд░реНрдЯреНрдЬрд╝ 2.4 рдЧреАрдЧрд╛рд╣рд░реНрдЯреНрдЬрд╝
GPU рд╡реАрдбрд┐рдпреЛрдХреЛрд░ IV рд╡реАрдбрд┐рдпреЛрдХреЛрд░ VI рд╡реАрдбрд┐рдпреЛрдХреЛрд░ VII
GPU рдЕрдзрд┐рдХрддрдо рдЖрд╡реГрддреНрддрд┐ 400 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ 500 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ 800 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ
рдпрд╛рдж 1GB LPDDR2 SDRAM 1GB, 2GB, 4GB, 8GB LPDDR4-3200 SDRAM 4GB, 8GB LPDDR4X-4267 SDRAM
рдкреАрд╕реАрдЖрдИрдИ рдПрди/рдП рдПрди/рдП 1xPCIe 2.0 рдЗрдВрдЯрд░рдлрд╝реЗрд╕
рдореИрдХреНрд╕ рдкрд╛рд╡рд░ рдбреНрд░рд╛ 2.5A@5V 3A@5V 5A@5V (рдкреАрдбреА рд╕рдХреНрд╖рдо)

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдУрдПрд╕ рдХреНрдпрд╛ рд╣реИ?

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

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдУрдПрд╕ рдХреЛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдореЗрдВ рдлреНрд▓реИрд╢ рдХрд░реЗрдВ

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдЕрдкрдирд╛ рд╣рд╛рде рд░рдЦрдиреЗ рдХреЗ рдмрд╛рдж рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдУрдПрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдорд╛рдЗрдХреНрд░реЛ-рдПрд╕рдбреА рдХрд╛рд░реНрдб рдлреНрд▓реИрд╢ рдХрд░реЗрдВ, рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдбрд╛рд▓реЗрдВ рдФрд░ рдУрдПрд╕ рдореЗрдВ рдмреВрдЯ рдХрд░реЗрдВред

рддреИрдпрд╛рд░ рдХрд░рдирд╛ Ultralytics

рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ Ultralytics рдЕрдкрдиреЗ рдЕрдЧрд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдкреИрдХреЗрдЬред рдЖрдк рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдбреЙрдХрд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ

рдЖрд░рдВрдн рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ Ultralytics YOLOv8 рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд┐рдд рдбреЙрдХрд░ рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде рдЪрд▓рдирд╛ рд╣реИред

рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдФрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдпрд╣ arm64v8/рдбреЗрдмрд┐рдпрди рдбреЙрдХрд░ рдЫрд╡рд┐ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрд╛рдпрдерди 3 рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдбреЗрдмрд┐рдпрди 12 (рдХрд┐рддрд╛рдмреА рдХреАрдбрд╝рд╛) рд╢рд╛рдорд┐рд▓ рд╣реИред

t=ultralytics/ultralytics:latest-arm64 && sudo docker pull $t && sudo docker run -it --ipc=host $t

рд╣реЗ рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░, рдЬрд╛рд╣рд┐рд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрд╛рдгреВрди рдШреНрдпрд╛ рдкреНрд░рдпреЛрдЧ NCNN рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдЕрдиреБрднрд╛рдЧ рдкрд░ред

рдбреЙрдХрд░ рдХреЗ рдмрд┐рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ

рдкрджрд╛рд╕реАрди рдХрд░рдирд╛ Ultralytics рдкреИрдХреЗрдЬ

рдпрд╣рд╛рдБ рд╣рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ Ultralytics рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдкреИрдХреЗрдЬ рддрд╛рдХрд┐ рд╣рдо PyTorch рдЕрдиреНрдп рд╡рд┐рднрд┐рдиреНрди рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ред

  1. рдкреИрдХреЗрдЬ рд╕реВрдЪреА рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ, рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдирд╡реАрдирддрдо рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
    
  2. рдкрджрд╛рд╕реАрди рдХрд░рдирд╛ ultralytics рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдкреАрдЖрдИрдкреА рдкреИрдХреЗрдЬ

    pip install ultralytics[export]
    
  3. рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░реЗрдВ

    sudo reboot
    

рдкреНрд░рдпреЛрдЧ NCNN рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░

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

рдореЙрдбрд▓ рдХреЛ рдореЗрдВ рдмрджрд▓реЗрдВ NCNN рдФрд░ рд░рди рдЕрдиреБрдорд╛рди

рд╡рд╣реА YOLOv8n рдореЙрдбрд▓ рдореЗрдВ PyTorch рд╕реНрд╡рд░реВрдк рдХреЛ рдЗрд╕рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ NCNN рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдЕрдиреБрдорд╛рди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЙрджрд╛рд╣рд░рдг

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates 'yolov8n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("yolov8n_ncnn_model")

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to NCNN format
yolo export model=yolov8n.pt format=ncnn  # creates 'yolov8n_ncnn_model'

# Run inference with the exported model
yolo predict model='yolov8n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

рдиреЛрдХ

рд╕рдорд░реНрдерд┐рдд рдирд┐рд░реНрдпрд╛рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдкрд░ рдЬрд╛рдПрдБ Ultralytics рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рдкреНрд░рд▓реЗрдЦрди рдкреГрд╖реНрдаред

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 5 рдмрдирд╛рдо рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 4 YOLOv8 рдорд╛рдирдХ

YOLOv8 рдмреЗрдВрдЪрдорд╛рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдП рдЧрдП рдереЗ Ultralytics рдЧрддрд┐ рдФрд░ рд╕рдЯреАрдХрддрд╛ рдХреЛ рдорд╛рдкрдиреЗ рд╡рд╛рд▓реЗ рдиреМ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбрд▓ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдкрд░ рдЯреАрдо: PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF рд▓рд╛рдЗрдЯ PaddlePaddle, NCNN. рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 5 рдФрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 4 рджреЛрдиреЛрдВ рдкрд░ FP32 рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдкрд░ 640 рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЗрдирдкреБрдЯ рдЫрд╡рд┐ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдП рдЧрдП рдереЗред

рдиреЛрдЯ

рд╣рдордиреЗ рдХреЗрд╡рд▓ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рд╣реИрдВ YOLOv8n рдФрд░ YOLOv8s рдореЙрдбрд▓ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рдореЙрдбрд▓ рдЖрдХрд╛рд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝реЗ рд╣реИрдВ рдФрд░ рд╕рднреНрдп рдкреНрд░рджрд░реНрд╢рди рдХреА рдкреЗрд╢рдХрд╢ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рддреБрд▓рдирд╛ рдЪрд╛рд░реНрдЯ

рдкреНрд░рджрд░реНрд╢рди

NVIDIA рдЬреЗрдЯрд╕рди рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо

NVIDIA рдЬреЗрдЯрд╕рди рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо

рд╡рд┐рд╕реНрддреГрдд рддреБрд▓рдирд╛ рддрд╛рд▓рд┐рдХрд╛

рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбрд▓реЛрдВ (YOLOv8n, YOLOv8s) рдиреМ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ (PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF рд▓рд╛рдЗрдЯ PaddlePaddle, NCNN), рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 4 рдФрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 5 рджреЛрдиреЛрдВ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐, рдЖрдХрд╛рд░, mAP50-95 (B) рдореАрдЯреНрд░рд┐рдХ рдФрд░ рдЕрдиреБрдорд╛рди рд╕рдордп рдорд┐рд▓рддрд╛ рд╣реИред

рдкреНрд░рджрд░реНрд╢рди

рдкреНрд░рд╛рд░реВрдк рдУрд╣рджрд╛ рдбрд┐рд╕реНрдХ рдкрд░ рдЖрдХрд╛рд░ (MB) рдПрдордПрдкреА 50-95 (рдмреА) рдЕрдиреБрдорд╛рди рд╕рдордп (ms/im)
PyTorch тЬЕ 6.2 0.6381 508.61
TorchScript тЬЕ 12.4 0.6092 558.38
ONNX тЬЕ 12.2 0.6092 198.69
OpenVINO тЬЕ 12.3 0.6092 704.70
TF SavedModel тЬЕ 30.6 0.6092 367.64
TF GraphDef тЬЕ 12.3 0.6092 473.22
TF рд▓рд╛рдЗрдЯ тЬЕ 12.3 0.6092 380.67
PaddlePaddle тЬЕ 24.4 0.6092 703.51
NCNN тЬЕ 12.2 0.6034 94.28
рдкреНрд░рд╛рд░реВрдк рдУрд╣рджрд╛ рдбрд┐рд╕реНрдХ рдкрд░ рдЖрдХрд╛рд░ (MB) рдПрдордПрдкреА 50-95 (рдмреА) рдЕрдиреБрдорд╛рди рд╕рдордп (ms/im)
PyTorch тЬЕ 21.5 0.6967 969.49
TorchScript тЬЕ 43.0 0.7136 1110.04
ONNX тЬЕ 42.8 0.7136 451.37
OpenVINO тЬЕ 42.9 0.7136 873.51
TF SavedModel тЬЕ 107.0 0.7136 658.15
TF GraphDef тЬЕ 42.8 0.7136 946.01
TF рд▓рд╛рдЗрдЯ тЬЕ 42.8 0.7136 1013.27
PaddlePaddle тЬЕ 85.5 0.7136 1560.23
NCNN тЬЕ 42.7 0.7204 211.26
рдкреНрд░рд╛рд░реВрдк рдУрд╣рджрд╛ рдбрд┐рд╕реНрдХ рдкрд░ рдЖрдХрд╛рд░ (MB) рдПрдордПрдкреА 50-95 (рдмреА) рдЕрдиреБрдорд╛рди рд╕рдордп (ms/im)
PyTorch тЬЕ 6.2 0.6381 1068.42
TorchScript тЬЕ 12.4 0.6092 1248.01
ONNX тЬЕ 12.2 0.6092 560.04
OpenVINO тЬЕ 12.3 0.6092 534.93
TF SavedModel тЬЕ 30.6 0.6092 816.50
TF GraphDef тЬЕ 12.3 0.6092 1007.57
TF рд▓рд╛рдЗрдЯ тЬЕ 12.3 0.6092 950.29
PaddlePaddle тЬЕ 24.4 0.6092 1507.75
NCNN тЬЕ 12.2 0.6092 414.73
рдкреНрд░рд╛рд░реВрдк рдУрд╣рджрд╛ рдбрд┐рд╕реНрдХ рдкрд░ рдЖрдХрд╛рд░ (MB) рдПрдордПрдкреА 50-95 (рдмреА) рдЕрдиреБрдорд╛рди рд╕рдордп (ms/im)
PyTorch тЬЕ 21.5 0.6967 2589.58
TorchScript тЬЕ 43.0 0.7136 2901.33
ONNX тЬЕ 42.8 0.7136 1436.33
OpenVINO тЬЕ 42.9 0.7136 1225.19
TF SavedModel тЬЕ 107.0 0.7136 1770.95
TF GraphDef тЬЕ 42.8 0.7136 2146.66
TF рд▓рд╛рдЗрдЯ тЬЕ 42.8 0.7136 2945.03
PaddlePaddle тЬЕ 85.5 0.7136 3962.62
NCNN тЬЕ 42.7 0.7136 1042.39

рд╣рдорд╛рд░реЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░реЗрдВ

рдЙрдкрд░реЛрдХреНрдд рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Ultralytics рд╕рднреА рдирд┐рд░реНрдпрд╛рдд рдкреНрд░рд╛рд░реВрдкреЛрдВ рдкрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ, рдЗрд╕ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдПрдВ:

рдЙрджрд╛рд╣рд░рдг

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
results = model.benchmarks(data="coco8.yaml", imgsz=640)
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml imgsz=640

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдо рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдЯреАрдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЪрд▓рд╛рдП рдЬрд╛рдиреЗ рдХреЗ рд╕рдордп рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрднрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рддред data='coco8.yaml' (4 val images), ordata='coco.yaml'' (5000 val images).

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреИрдорд░рд╛ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ

рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╡реАрдбрд┐рдпреЛ рдлрд╝реАрдб рдХреЛ рд╣рдерд┐рдпрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдСрдирдмреЛрд░реНрдб MIPI CSI рдХрдиреЗрдХреНрдЯрд░ рдЖрдкрдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд╛рд╕реНрдкрдмреЗрд░реА PI рдХреИрдорд░рд╛ рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ, рд╣рдордиреЗ рд╡реАрдбрд┐рдпреЛ рдлреАрдб рдХреЛ рд╣рдерд┐рдпрд╛рдиреЗ рдФрд░ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреИрдорд░рд╛ рдореЙрдбреНрдпреВрд▓ 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ YOLOv8 рдореЙрдбрд▓ред

рдиреЛрдЯ

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 5 рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 4 (15-рдкрд┐рди рдмрдирд╛рдо 22-рдкрд┐рди) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЫреЛрдЯреЗ рд╕реАрдПрд╕рдЖрдИ рдХрдиреЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреИрдорд░рд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 15-рдкрд┐рди рд╕реЗ 22pin рдПрдбрд╛рдкреНрдЯрд░ рдХреЗрдмрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдХреИрдорд░реЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ

рдХреИрдорд░реЗ рдХреЛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдирд┐рдореНрди рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдЖрдкрдХреЛ рд▓рдЧрднрдЧ 5 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдХреИрдорд░реЗ рд╕реЗ рд▓рд╛рдЗрд╡ рд╡реАрдбрд┐рдпреЛ рдлрд╝реАрдб рджреЗрдЦрдиреА рдЪрд╛рд╣рд┐рдПред

rpicam-hello

рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рдЕрдиреБрдорд╛рди

рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреИрдорд░рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ 2 рддрд░реАрдХреЗ рд╣реИрдВ YOLOv8 рдореЙрдбрд▓ред

рдЙрдкрдпреЛрдЧ

рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ picamera2рдЬреЛ рдХреИрдорд░рд╛ рдФрд░ рдЕрдиреБрдорд╛рди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдУрдПрд╕ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдЖрддрд╛ рд╣реИ YOLOv8 рдореЙрдбрд▓ред

рдЙрджрд╛рд╣рд░рдг

import cv2
from picamera2 import Picamera2

from ultralytics import YOLO

# Initialize the Picamera2
picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280, 720)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

while True:
    # Capture frame-by-frame
    frame = picam2.capture_array()

    # Run YOLOv8 inference on the frame
    results = model(frame)

    # Visualize the results on the frame
    annotated_frame = results[0].plot()

    # Display the resulting frame
    cv2.imshow("Camera", annotated_frame)

    # Break the loop if 'q' is pressed
    if cv2.waitKey(1) == ord("q"):
        break

# Release resources and close windows
cv2.destroyAllWindows()

рд╣рдореЗрдВ рдЯреАрд╕реАрдкреА рд╕реНрдЯреНрд░реАрдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ rpicam-vid рдХрдиреЗрдХреНрдЯреЗрдб рдХреИрдорд░реЗ рд╕реЗ рддрд╛рдХрд┐ рд╣рдо рдЗрд╕ рд╕реНрдЯреНрд░реАрдо URL рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ рдЬрдм рд╣рдо рдмрд╛рдж рдореЗрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣реЗ рд╣реЛрдВред TCP рд╕реНрдЯреНрд░реАрдо рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдЖрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред

rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВ rpicam-vid рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкреНрд░рд▓реЗрдЦрди рдкрд░ рдЙрдкрдпреЛрдЧ

рдЙрджрд╛рд╣рд░рдг

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Run inference
results = model("tcp://127.0.0.1:8888")
yolo predict model=yolov8n.pt source="tcp://127.0.0.1:8888"

рдиреЛрдХ

рдпрджрд┐ рдЖрдк рдЫрд╡рд┐/рд╡реАрдбрд┐рдпреЛ рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЕрдиреБрдорд╛рди рд╕реНрд░реЛрддреЛрдВ рдкрд░ рд╣рдорд╛рд░реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдЪрд▓рд╛рдиреЗ рдкрд░ рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдПрдВ рд╣реИрдВ YOLOv8.

  1. рдПрд╕рдПрд╕рдбреА рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ

    24x7 рдирд┐рд░рдВрддрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдПрд╕рдПрд╕рдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдирд┐рд░рдВрддрд░ рд▓реЗрдЦрди рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИред рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 5 рдкрд░ рдСрдирдмреЛрд░реНрдб PCIe рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде, рдЕрдм рдЖрдк рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 5 рдХреЗ рд▓рд┐рдП NVMe рдмреЗрд╕ рдЬреИрд╕реЗ рдПрдбреЗрдкреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ SSDs рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

  2. рдЬреАрдпреВрдЖрдИ рдХреЗ рдмрд┐рдирд╛ рдлреНрд▓реИрд╢

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

рдЕрдЧрд▓реЗ рдХрджрдо

рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рдкрд░ рдмрдзрд╛рдИ YOLO рдЕрдкрдиреЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░! рдЖрдЧреЗ рд╕реАрдЦрдиреЗ рдФрд░ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП, рдпрд╛рддреНрд░рд╛ рдХрд░реЗрдВ Ultralytics YOLOv8 рдбреЙрдХреНрд╕ рдФрд░ рдХрд╢реНрдореАрд░ рд╡рд░реНрд▓реНрдб рдлрд╛рдЙрдВрдбреЗрд╢рдиред

рдкрд╛рд╡рддреА рдФрд░ рдЙрджреНрдзрд░рдг

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

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

рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди

рдореИрдВ рдХреИрд╕реЗ рд╕реЗрдЯ рдЕрдк рдХрд░реВрдБ Ultralytics YOLOv8 рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░?

рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Ultralytics YOLOv8 рдбреЙрдХрд░ рдХреЗ рдмрд┐рдирд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░, рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:

  1. рдкреИрдХреЗрдЬ рд╕реВрдЪреА рдЕрджреНрдпрддрди рдХрд░реЗрдВ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ pip:
    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
    
  2. рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛ Ultralytics рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬ:
    pip install ultralytics[export]
    
  3. рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд░реАрдмреВрдЯ рдХрд░реЗрдВ:
    sudo reboot
    

рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП, рджреЗрдЦреЗрдВ рдбреЙрдХрд░ рдХреЗ рдмрд┐рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ рдЕрдиреБрднрд╛рдЧред

рдореБрдЭреЗ рдХреНрдпреЛрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП Ultralytics YOLOv8рдХрд╛ NCNN рдПрдЖрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдкреНрд░рд╛рд░реВрдк?

Ultralytics YOLOv8рдХрд╛ NCNN рдкреНрд░рд╛рд░реВрдк рдореЛрдмрд╛рдЗрд▓ рдФрд░ рдПрдореНрдмреЗрдбреЗрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ, рдЬреЛ рдЗрд╕реЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдПрдЖрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рдмрдирд╛рддрд╛ рд╣реИред NCNN рдПрдЖрд░рдПрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдХрд░ рдЕрдиреБрдорд╛рди рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдп рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬ рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕рдорд░реНрдерд┐рдд рдирд┐рд░реНрдпрд╛рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдкрд░ рдЬрд╛рдПрдБ Ultralytics рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкреГрд╖реНрдаред

рдореИрдВ рдПрдХ YOLOv8 рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ NCNN рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░реВрдк?

рдЖрдк рдПрдХ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ PyTorch YOLOv8 рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ NCNN рдпрд╛ рддреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рд░реВрдк Python рдирд╣реАрдВ рддреЛ CLI рдЖрджреЗрд╢:

рдЙрджрд╛рд╣рд░рдг

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Export the model to NCNN format
model.export(format="ncnn")  # creates 'yolov8n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("yolov8n_ncnn_model")

# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to NCNN format
yolo export model=yolov8n.pt format=ncnn  # creates 'yolov8n_ncnn_model'

# Run inference with the exported model
yolo predict model='yolov8n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рджреЗрдЦреЗрдВ рдкреНрд░рдпреЛрдЧ NCNN рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдЕрдиреБрднрд╛рдЧ рдкрд░ ред

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 4 рдФрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 5 рдХреЗ рдмреАрдЪ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИрдВ рдЬреЛ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВ YOLOv8?

рдореБрдЦреНрдп рдЕрдВрддрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • CPUрд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 4 рдмреНрд░реЙрдбрдХреЙрдо BCM2711, рдХреЙрд░реНрдЯреЗрдХреНрд╕-рдП 72 64-рдмрд┐рдЯ рдПрд╕рдУрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 5 рдмреНрд░реЙрдбрдХреЙрдо BCM2712, рдХреЙрд░реНрдЯреЗрдХреНрд╕-рдП 76 64-рдмрд┐рдЯ рдПрд╕рдУрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
  • рдЕрдзрд┐рдХрддрдо CPU рдЖрд╡реГрддреНрддрд┐: рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 4 рдХреА рдЕрдзрд┐рдХрддрдо рдЖрд╡реГрддреНрддрд┐ 1.8GHz рд╣реИ, рдЬрдмрдХрд┐ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 5 2.4GHz рддрдХ рдкрд╣реБрдВрдЪрддреА рд╣реИред
  • рдореЗрдореЛрд░реА: рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 4 8GB рддрдХ LPDDR4-3200 SDRAM рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 5 рдореЗрдВ LPDDR4X-4267 SDRAM рд╣реИ, рдЬреЛ 4GB рдФрд░ 8GB рд╡реЗрд░рд┐рдПрдВрдЯ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдпреЗ рд╕рдВрд╡рд░реНрджреНрдзрди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рддреЗ рд╣реИрдВ YOLOv8 рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 5 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 4 рдкрд░ рдореЙрдбрд▓ред рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╢реНрд░реГрдВрдЦрд▓рд╛ рддреБрд▓рдирд╛ рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВред

рдореИрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреИрдорд░рд╛ рдореЙрдбреНрдпреВрд▓ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ Ultralytics YOLOv8?

рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреИрдорд░рд╛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ YOLOv8 рдЕрдиреБрдорд╛рди:

  1. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ picamera2:

    import cv2
    from picamera2 import Picamera2
    
    from ultralytics import YOLO
    
    picam2 = Picamera2()
    picam2.preview_configuration.main.size = (1280, 720)
    picam2.preview_configuration.main.format = "RGB888"
    picam2.preview_configuration.align()
    picam2.configure("preview")
    picam2.start()
    
    model = YOLO("yolov8n.pt")
    
    while True:
        frame = picam2.capture_array()
        results = model(frame)
        annotated_frame = results[0].plot()
        cv2.imshow("Camera", annotated_frame)
    
        if cv2.waitKey(1) == ord("q"):
            break
    
    cv2.destroyAllWindows()
    
  2. TCP рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:

    rpicam-vid -n -t 0 --inline --listen -o tcp://127.0.0.1:8888
    
    from ultralytics import YOLO
    
    model = YOLO("yolov8n.pt")
    results = model("tcp://127.0.0.1:8888")
    

рд╡рд┐рд╕реНрддреГрдд рд╕реЗрдЯрдЕрдк рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП, рдХреИрдорд░рд╛ рдЕрдиреБрднрд╛рдЧ рдХреЗ рд╕рд╛рде рдЕрдиреБрдорд╛рди рдкрд░ рдЬрд╛рдПрдВред



рдмрдирд╛рдпрд╛ рдЧрдпрд╛ 2023-11-12, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-07-05
рд▓реЗрдЦрдХ: рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (9), рдЗрд╡реЛрд░рдЭреВ331 (1), рд▓рдХреНрд╖рдВрдерд╛рдж (2)

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ