{"id":487164,"date":"2026-07-13T21:04:17","date_gmt":"2026-07-13T21:04:17","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=487164"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=487164","title":{"rendered":"\u041e\u0446\u0435\u043d\u043a\u0430 \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u043e\u0432 YOLO \u043d\u0430 Raspberry Pi 5 HAT+"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 <a href=\"https:\/\/habr.com\/ru\/articles\/1048976\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 yolo8n \u0432 HEF-\u0444\u0430\u0439\u043b \u0434\u043b\u044f \u043d\u0435\u0439\u0440\u043e\u0447\u0438\u043f\u0430 HAILO-8L \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 HAT+. \u0412 \u044d\u0442\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u044f \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u044e \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 YOLO \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0436\u0435 \u0447\u0438\u043f\u0430. <\/p>\n<h3>\u0417\u0430\u0434\u0443\u043c\u043a\u0430<\/h3>\n<p>\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0441\u0435 \u044d\u0442\u043e \u0438 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u043e\u0441\u044c. \u042f \u0440\u0435\u0448\u0438\u043b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u043d\u0430 \u0431\u0430\u0437\u0435 \u043c\u0430\u043b\u0438\u043d\u043a\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0432\u043e\u0435\u0439 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438. \u0414\u0430, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0438 \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442 \u0432 \u0441\u0432\u043e\u0438 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u043c\u0435\u0440\u044b \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u044e\u0449\u0438\u0435 \u043b\u044e\u0434\u0435\u0439 \u0438 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0432 \u043a\u0430\u0434\u0440\u0435. \u041d\u043e \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 Xiaomi \u044f \u0441\u0434\u0435\u043b\u0430\u043b  \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u043c\u043d\u0435 \u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u043a: \u043b\u044e\u0434\u0435\u0439 \u0438\u043d\u043e\u0433\u0434\u0430 \u043d\u0435 \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u0442, \u0430 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0447\u0430\u0441\u0442\u044b\u0435 (\u0432\u0435\u0442\u0435\u0440 \u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0432\u0435\u0442\u043a\u0438, \u0442\u0440\u0430\u0432\u0443, \u043d\u0430\u0441\u0435\u043a\u043e\u043c\u044b\u0435 \u043b\u0435\u0442\u0430\u044e\u0442 \u0438 \u0442\u0434.). \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0432\u0441\u0435 \u0432\u0438\u0434\u0435\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0434\u0443\u0442 \u0447\u0435\u0440\u0435\u0437 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0438\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 NAS. \u041f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0438\u0434\u0435\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c, \u043d\u043e \u0432\u043d\u0435\u0441\u0442\u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u0432\u043e\u0435\u0439 \u043b\u0435\u043f\u0442\u044b \u0432 \u0432\u0438\u0434\u0435 \u043b\u0438\u0447\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d\u043a\u0438 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0439 \u0441 \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u0438 \u0434\u043e\u043f \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0435\u0449\u0435 \u0447\u0442\u043e-\u0442\u043e \u043d\u0430\u043f\u0438\u0448\u0443 \u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0443\u043c\u043a\u0438. \u0410 \u043f\u043e\u043a\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0435\u0439\u0440\u043e\u043d\u043a\u0443 \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438.<\/p>\n<h3>\u0417\u0430\u0434\u0430\u0447\u0430<\/h3>\n<p>\u0411\u0435\u0440\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u0434\u0435\u043b\u0435\u0439 YOLO \u0438 \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0438\u0445 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 \u0434\u043b\u044f \u0438\u043c\u0435\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u043d\u0435\u0439\u0440\u043e\u0447\u0438\u043f\u0430 \u043c\u0430\u043b\u0438\u043d\u043a\u0438 \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0438\u0445 \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430, \u0447\u0442\u043e\u0431\u044b:<\/p>\n<ol>\n<li>\n<p>\u0412\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e: \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0432\u0438\u0434\u0435\u043e \u0441\u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u0439\u0440\u043e\u0447\u0438\u043f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0438 \u0441\u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0442\u044f\u043d\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0434\u043d\u043e\u0433\u043e.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0439\u0440\u043e\u0447\u0438\u043f\u0430 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439.<\/p>\n<\/li>\n<\/ol>\n<p>\u042f \u0440\u0435\u0448\u0438\u043b \u0432\u0437\u044f\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0443\u043b \u043c\u043e\u0434\u0435\u043b\u0435\u0439:<\/p>\n<ul>\n<li>\n<p>YOLO8n<\/p>\n<\/li>\n<li>\n<p>YOLO8s<\/p>\n<\/li>\n<li>\n<p>YOLO10n<\/p>\n<\/li>\n<li>\n<p>YOLO10s<\/p>\n<\/li>\n<li>\n<p>YOLO12n<\/p>\n<\/li>\n<li>\n<p>YOLO12s<\/p>\n<\/li>\n<li>\n<p>YOLO26n<\/p>\n<\/li>\n<li>\n<p>YOLO26s<\/p>\n<\/li>\n<\/ul>\n<h3>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f HEF<\/h3>\n<p>\u0412 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442 \u044f \u0440\u0435\u0448\u0438\u043b \u0432\u0437\u044f\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438, \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432 onnx \u0444\u043e\u0440\u043c\u0430\u0442 \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0432\u0445\u043e\u0434\u0430 (640, 640). \u0412 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0434\u043b\u044f \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443 \u0431\u0440\u0430\u0442\u044c (640, 480). \u0412 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u044d\u0442\u043e \u043d\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e. \u0414\u0435\u0439\u0441\u0442\u0432\u0443\u044f \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438, \u0433\u043e\u0442\u043e\u0432\u0438\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. <\/p>\n<ol>\n<li>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0435 har \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u0430\u0436\u0434\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u043c \u0447\u0435\u0440\u0435\u0437 <a href=\"http:\/\/netron.app\" rel=\"noopener noreferrer nofollow\">netron.app<\/a> \u0438 \u0431\u0435\u0440\u0435\u043c \u043e\u0442\u0442\u0443\u0434\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0443\u0437\u043b\u043e\u0432.  \u041e\u0431\u0440\u0430\u0437\u0435\u0446 \u043d\u0438\u0436\u0435:<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"python\">from hailo_sdk_client import ClientRunner    TARGET_CHIP = \"hailo8l\"  END_NODES = [      \"\/model.22\/cv2.0\/cv2.0.2\/Conv\",      \"\/model.22\/cv3.0\/cv3.0.2\/Conv\",      \"\/model.22\/cv2.1\/cv2.1.2\/Conv\",      \"\/model.22\/cv3.1\/cv3.1.2\/Conv\",      \"\/model.22\/cv2.2\/cv2.2.2\/Conv\",      \"\/model.22\/cv3.2\/cv3.2.2\/Conv\",  ]    print(\"\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 har\")  runner = ClientRunner(hw_arch=TARGET_CHIP)  runner.translate_onnx_model(      \"yolo8n.onnx\",      end_node_names=END_NODES  )    print(\"\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 har \u0444\u0430\u0439\u043b\u0430 \u043c\u043e\u0434\u0435\u043b\u0438\")  runner.save_har(\"yolo8n.har\")<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u043e\u0434\u0435\u043b\u044b\u0432\u0430\u044f \u0442\u0430\u043a \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b, \u0447\u0442\u043e \u0443 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 12n \u0438 12s \u0443\u0437\u043b\u044b reshape \u0438 transpose \u043f\u0440\u043e\u043d\u0438\u0437\u044b\u0432\u0430\u044e\u0442 \u0432\u0441\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044f\u0441\u044c \u0432 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u0443\u0436\u0435 \u043e\u0442 \u0441\u0430\u043c\u043e\u0439 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b. \u0410 \u043d\u0430\u0434\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0448 \u043d\u0435\u0439\u0440\u043e\u0447\u0438\u043f \u043d\u0435 \u043f\u0435\u0440\u0435\u0432\u0430\u0440\u0438\u0432\u0430\u0435\u0442. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 8 \u0441\u0435\u0440\u0438\u0438 \u043e\u0442\u0441\u0435\u043a\u0430\u043b\u0438 \u0438\u0445, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0434\u043b\u044f \u043d\u0435\u0439\u0440\u043e\u0447\u0438\u043f\u0430 \u0432\u0441\u0435, \u0447\u0442\u043e \u0438\u043c \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u041f\u043e\u0447\u0438\u0442\u0430\u0432 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u044f \u043f\u0440\u0438\u0448\u0435\u043b \u043a \u0432\u044b\u0432\u043e\u0434\u0443, \u0447\u0442\u043e \u043d\u0430\u0448 Hailo \u0447\u0438\u043f \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0432\u0430\u0440\u0438\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e 12 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044d\u0442\u043e\u0439 \u0441\u0435\u0440\u0438\u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0441\u043e\u0432\u0441\u0435\u043c \u0438\u043d\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u043c\u043e\u0434\u0435\u043b\u0438, \u0432\u0437\u044f\u0432 \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0431\u043b\u043e\u043a\u0438 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0434\u043e\u0431\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0435\u0440\u043e\u0432, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0447\u0435\u0433\u043e \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043c\u043d\u043e\u0433\u043e \u0442\u0430\u043a\u0438\u0445 \u043d\u0435\u043f\u0435\u0440\u0435\u0432\u0430\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0447\u0438\u043f\u043e\u043c \u0443\u0437\u043b\u043e\u0432. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0442 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 12 \u0441\u0435\u0440\u0438\u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0438 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u0448\u0435\u0441\u0442\u044c\u044e \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u043c\u0438\u0441\u044f.<\/p>\n<ol start=\"2\">\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f HAR \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u043c \u0438\u0445 \u0441\u043d\u043e\u0432\u0430 \u0447\u0435\u0440\u0435\u0437 <a href=\"http:\/\/netron.app\" rel=\"noopener noreferrer nofollow\">netron.app<\/a> \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043d\u0430\u0448\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u043d\u043e\u0432\u044b\u043c\u0438 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0443\u0437\u043b\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u0438\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0438 alls. \u0414\u043b\u044f 8 \u0441\u0435\u0440\u0438\u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043a\u043e\u043d\u0444\u0438\u0433 json, \u0435\u0433\u043e \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443, \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440. \u0414\u043b\u044f 10 \u0438 26 \u0441\u0435\u0440\u0438\u0438 \u043d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0443 alls, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0438\u043c\u0435\u043d\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. \u0410 json \u0434\u043b\u044f \u043d\u0438\u0445 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d.<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"python\">nomalization1 = normalization([0.0, 0.0, 0.0], [255.0, 255.0, 255.0])  change_output_activation(conv48, sigmoid)  change_output_activation(conv59, sigmoid)  change_output_activation(conv69, sigmoid) <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"python\">nomalization1 = normalization([0.0, 0.0, 0.0], [255.0, 255.0, 255.0])  change_output_activation(conv64, sigmoid)  change_output_activation(conv80, sigmoid)  change_output_activation(conv94, sigmoid)  <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<ol start=\"3\">\n<li>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0430\u043c\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432 \u0446\u0435\u043b\u043e\u043c \u0442\u0430\u043a\u0430\u044f (\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f 10n):<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"python\">import numpy as np  from PIL import Image  from hailo_sdk_client import ClientRunner  from ultralytics.utils import DATASETS_DIR  from ultralytics.data.utils import check_det_dataset      model = \"yolo10n.onnx\"  MODEL = 'yolo10n'  CALIB_IMAGES = 128  TARGET_CHIP = \"hailo8l\"  END_NODES = [      \"\/model.23\/one2one_cv3.0\/one2one_cv3.0.2\/Conv\",      \"\/model.23\/one2one_cv3.1\/one2one_cv3.1.2\/Conv\",      \"\/model.23\/one2one_cv3.2\/one2one_cv3.2.2\/Conv\",      \"\/model.23\/one2one_cv2.0\/one2one_cv2.0.2\/Conv\",      \"\/model.23\/one2one_cv2.1\/one2one_cv2.1.2\/Conv\",      \"\/model.23\/one2one_cv2.2\/one2one_cv2.2.2\/Conv\",  ]    print(\"\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 har\")  runner = ClientRunner(hw_arch=TARGET_CHIP)  runner.translate_onnx_model(\"yolo10n.onnx\", end_node_names=END_NODES)    print(\"\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c alls\")  runner.load_model_script(\"yolo10n.alls\")    print(\"\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\")  check_det_dataset(\"coco128.yaml\")  calib_dir = DATASETS_DIR\/\"coco128\"\/\"images\"\/\"train2017\"  image_files = list(calib_dir.glob(\"*.jpg\")) + list(calib_dir.glob(\"*.png\"))  if not image_files:      raise FileNotFoundError(f\"No calibration images found in {calib_dir}\")    calibset = np.zeros((CALIB_IMAGES, 640, 640, 3), dtype=np.float32)  for i in range(CALIB_IMAGES):      img = Image.open(np.random.choice(image_files)).convert(\"RGB\").resize((640, 640))      calibset[i] = np.array(img, dtype=np.float32)    print(\"\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0432\u0435\u0441\u0430 \u043a \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0443\")  runner.optimize(calibset)    print(\"\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e har-\u0444\u0430\u0439\u043b\u0430\")  runner.save_har(f\"{MODEL}.o.har\")    print(\"\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f hef-\u0444\u0430\u0439\u043b\u0430\")  hef = runner.compile()  with open(f\"{MODEL}.hef\", \"wb\") as f:      f.write(hef)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u0430\u043a \u0438\u0442\u043e\u0433, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c HEF-\u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u043f\u0435\u0440\u0435\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u0438\u0445 \u043d\u0430 Raspberry Pi 5.<\/p>\n<h3>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430<\/h3>\n<p>\u0415\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0448\u0442\u0443\u043a\u0430, \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0432\u0438\u0436\u043a\u0430 Hailort Cli \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0441 \u0440\u0443\u0447\u043d\u044b\u043c \u0437\u0430\u043c\u0435\u0440\u043e\u043c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438. \u042f \u0440\u0435\u0448\u0438\u043b \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0438 \u0437\u0430\u043e\u0434\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438. <\/p>\n<ol>\n<li>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043c\u0435\u0442\u043e\u0434 \u0441 hailort. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0441\u0440\u0435\u0434\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0430\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0438 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0448 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 HEF \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. (\u041d\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \u044d\u0442\u043e \u043c\u043e\u044f \u043b\u0438\u0447\u043d\u0430\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u0439). \u0418 \u0432\u043e\u0442 \u043a\u0430\u043a\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b:<\/p>\n<\/li>\n<\/ol>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f66\/a5d\/a10\/f66a5da105d6653a9db64989c06d326d.png\" width=\"1023\" height=\"803\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f66\/a5d\/a10\/f66a5da105d6653a9db64989c06d326d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f66\/a5d\/a10\/f66a5da105d6653a9db64989c06d326d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/399\/61e\/af7\/39961eaf7ab60e0563a29be7594ca546.png\" width=\"1022\" height=\"770\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/399\/61e\/af7\/39961eaf7ab60e0563a29be7594ca546.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/399\/61e\/af7\/39961eaf7ab60e0563a29be7594ca546.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<ol start=\"2\">\n<li>\n<p>\u0417\u0430\u0442\u0435\u043c \u0440\u0430\u0434\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u0437\u043c\u0435\u0440\u0438\u043c \u0432\u0440\u0435\u043c\u044f. \u0417\u0430\u043e\u0434\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u043c \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0430.  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0430\u0437\u043e\u0433\u0440\u0435\u0432\u0430 \u0447\u0438\u043f\u0430 \u0434\u043b\u044f \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430 \u0443\u0441\u0442\u0440\u043e\u0438\u043b \u0435\u043c\u0443 \u0446\u0438\u043a\u043b \u0438\u0437 110 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. \u0422\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u0442\u044c, 100 \u0440\u0430\u0437\u043e\u0433\u0440\u0435\u0432\u043e\u0447\u043d\u044b\u0445 \u0438 10 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0445, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0440\u0435\u0434\u043d\u0435\u0435.<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"python\">import osimport numpy as npfrom hailo_platform import (    HEF,    ConfigureParams,    FormatType,    HailoStreamInterface,    InferVStreams,    InputVStreamParams,    OutputVStreamParams,    VDevice,)from time import perf_counterfrom PIL import Image, ImageDrawfrom collections import defaultdict, deque# ConfigurationMODELS_DIR = \".\/hef\/\"IMAGES_DIR = \".\/images\/\"            models = sorted([m for m in os.listdir(MODELS_DIR) if m.endswith(\".hef\")])imgs   = sorted([i for i in os.listdir(IMAGES_DIR) if i.endswith(\".jpg\")])            IMGSZ = (640, 640)CONF = 0.25params = VDevice.create_params()target = VDevice(params)for model in models:    timings = defaultdict(lambda: deque(maxlen=10))    # Load HEF and connect to device    hef = HEF(os.path.join(MODELS_DIR, model))    configure_params = ConfigureParams.create_from_hef(hef, interface=HailoStreamInterface.PCIe)    network_groups = target.configure(hef, configure_params)    network_group = network_groups[0]    network_group_params = network_group.create_params()    # Setup I\/O virtual streams    input_vstreams_params = InputVStreamParams.make(network_group, quantized=False, format_type=FormatType.FLOAT32)    output_vstreams_params = OutputVStreamParams.make(network_group, quantized=False, format_type=FormatType.FLOAT32)    input_name = hef.get_input_vstream_infos()[0].name    # Inference    with InferVStreams(network_group, input_vstreams_params, output_vstreams_params) as pipeline:        with network_group.activate(network_group_params):            for idx, img in enumerate(imgs):                # Preprocess                orig = Image.open(os.path.join(IMAGES_DIR, img)).convert(\"RGB\")                ow, oh = orig.size                resized = orig.resize((IMGSZ[0],IMGSZ[1]))                input_data = np.expand_dims(np.array(resized, dtype=np.float32), axis=0)  # (1,640,640,3)                for i in range(110):                    start_time = perf_counter()                    raw = pipeline.infer({input_name: input_data})                    inf_time = (perf_counter() - start_time) * 1000                    timings[img].append(inf_time)                    output_key = next(iter(raw.keys()))                    batch_dets = raw[output_key][0]  # shape: (num_classes, max_dets, 5)                                           print(\"*\" * 150)    print(f\"Model: {model}\")    print(\"*\" * 150)            print(\"                         \", end=\" \")    for img in imgs:        print(f\"{img}\", end=\" \" * (20 - len(img)))    print(\"\")            print(\"avg_inf_time(ms) =       \", end=\" \")        for img in imgs:         tm = sum(timings[img]) \/ 10          print(f\"{tm:.2f}\", end=\" \" * 15)    print(\"\\n\\n\\n\\n\")<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 \u043f\u043e\u0434\u043e\u043f\u044b\u0442\u043d\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u0437\u044f\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438\u0437 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 VisDrone, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u0434 \u0440\u0443\u043a\u043e\u0439, \u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0438\u0437 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430. \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430 \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0435\u0441\u0442\u044c \u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u0430\u044f \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u044f. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u043e\u0442:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/246\/dac\/82b\/246dac82b3d1a80d85ae892d0f955ddf.png\" width=\"1209\" height=\"927\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/246\/dac\/82b\/246dac82b3d1a80d85ae892d0f955ddf.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/246\/dac\/82b\/246dac82b3d1a80d85ae892d0f955ddf.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h3>\u0418\u0442\u043e\u0433<\/h3>\n<p>\u0420\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c, \u0433\u0434\u0435-\u0442\u043e \u043f\u043e\u0441\u0438\u043b\u044c\u043d\u0435\u0435, \u0433\u0434\u0435-\u0442\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e. \u0421\u0442\u043e\u0438\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u043c\u043e\u0434\u0435\u043b\u0438 8 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0432 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0435\u0449\u0435 NMS \u0440\u0430\u043c\u043e\u043a, \u0447\u0442\u043e \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u043e \u0432 alls \u043a\u043e\u043d\u0444\u0438\u0433\u0435 (\u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u044d\u0442\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u043c\u043e\u0434\u0435\u043b\u044c\u044e yolo8n \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 3\u043c\u0441. <\/p>\n<p>\u0414\u043b\u044f \u043c\u043e\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c 2 \u0438\u043b\u0438 3 \u043f\u043e\u0442\u043e\u043a\u0430. \u041d\u0435\u0441\u043e\u043c\u043d\u0435\u043d\u043d\u043e, \u0443\u0437\u043a\u0438\u043c \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043d\u044b\u043c \u0433\u043e\u0440\u043b\u044b\u0448\u043a\u043e\u043c \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438 \u043f\u043e\u0441\u0442\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430. \u0418, \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430, \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0441 nano \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439. <\/p>\n<h3>PS.<\/h3>\n<p>\u041f\u0440\u043e\u0432\u0435\u043b \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043e\u043f\u044b\u0442 \u0434\u043e\u0431\u0430\u0432\u043e\u0447\u043d\u044b\u0439. \u0422\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u043c\u043e\u0433\u0443 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441 \u043d\u0430 \u0441\u0442\u0430\u0440\u0448\u0438\u0445 \u0447\u0438\u043f\u0430\u0445 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 Hailo, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a 8 \u0438 10 \u0438\u0437-\u0437\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u043e\u043d\u044b\u0445, \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0441\u0445\u0438\u0442\u0440\u0438\u0442\u044c \u0438 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043b, \u0447\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e benchmark \u043d\u0430 \u0434\u0432\u0438\u0436\u043a\u0435 hailort \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u0442 \u044d\u0442\u043e \u0431\u0435\u0437 \u0436\u0435\u043b\u0435\u0437\u0430. \u0421\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043b HEF-\u0444\u0430\u0439\u043b \u0434\u043b\u044f yolo8n \u043f\u043e\u0434 \u0447\u0438\u043f Hailo-8 (\u0430 \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u0441\u0430\u043c\u044b\u0439 \u043c\u043b\u0430\u0434\u0448\u0438\u0439 Hailo-8L) \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c benchmark:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/15e\/d8a\/3ff\/15ed8a3ff58e5335d86b647b25df2845.png\" width=\"1086\" height=\"140\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/15e\/d8a\/3ff\/15ed8a3ff58e5335d86b647b25df2845.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/15e\/d8a\/3ff\/15ed8a3ff58e5335d86b647b25df2845.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041e\u0431\u043c\u0430\u043d\u0443\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c, \u0432\u0441\u0435\u043c \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u0434\u043d\u044f =)<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1058804\/\">https:\/\/habr.com\/ru\/articles\/1058804\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 yolo8n \u0432 HEF-\u0444\u0430\u0439\u043b \u0434\u043b\u044f \u043d\u0435\u0439\u0440\u043e\u0447\u0438\u043f\u0430 HAILO-8L \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 HAT+. \u0412 \u044d\u0442\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u044f \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u044e \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 YOLO \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0436\u0435 \u0447\u0438\u043f\u0430. \u0417\u0430\u0434\u0443\u043c\u043a\u0430\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0441\u0435 \u044d\u0442\u043e \u0438 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u043e\u0441\u044c. \u042f \u0440\u0435\u0448\u0438\u043b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u043d\u0430 \u0431\u0430\u0437\u0435 \u043c\u0430\u043b\u0438\u043d\u043a\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0432\u043e\u0435\u0439 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438. \u0414\u0430, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0438 \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442 \u0432 \u0441\u0432\u043e\u0438 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u043c\u0435\u0440\u044b \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u044e\u0449\u0438\u0435 \u043b\u044e\u0434\u0435\u0439 \u0438 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0432 \u043a\u0430\u0434\u0440\u0435. \u041d\u043e \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 Xiaomi \u044f \u0441\u0434\u0435\u043b\u0430\u043b  \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u043c\u043d\u0435 \u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043e\u043a: \u043b\u044e\u0434\u0435\u0439 \u0438\u043d\u043e\u0433\u0434\u0430 \u043d\u0435 \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u0442, \u0430 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0447\u0430\u0441\u0442\u044b\u0435 (\u0432\u0435\u0442\u0435\u0440 \u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0432\u0435\u0442\u043a\u0438, \u0442\u0440\u0430\u0432\u0443, \u043d\u0430\u0441\u0435\u043a\u043e\u043c\u044b\u0435 \u043b\u0435\u0442\u0430\u044e\u0442 \u0438 \u0442\u0434.). \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0432\u0441\u0435 \u0432\u0438\u0434\u0435\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0434\u0443\u0442 \u0447\u0435\u0440\u0435\u0437 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0438\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 NAS. \u041f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0438\u0434\u0435\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c, \u043d\u043e \u0432\u043d\u0435\u0441\u0442\u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u0432\u043e\u0435\u0439 \u043b\u0435\u043f\u0442\u044b \u0432 \u0432\u0438\u0434\u0435 \u043b\u0438\u0447\u043d\u043e\u0439 \u043d\u0435\u0439\u0440\u043e\u043d\u043a\u0438 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0439 \u0441 \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u0438 \u0434\u043e\u043f \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0435\u0449\u0435 \u0447\u0442\u043e-\u0442\u043e \u043d\u0430\u043f\u0438\u0448\u0443 \u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0443\u043c\u043a\u0438. \u0410 \u043f\u043e\u043a\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0435\u0439\u0440\u043e\u043d\u043a\u0443 \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438.\u0417\u0430\u0434\u0430\u0447\u0430\u0411\u0435\u0440\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u0434\u0435\u043b\u0435\u0439 YOLO \u0438 \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0438\u0445 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 \u0434\u043b\u044f \u0438\u043c\u0435\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u043d\u0435\u0439\u0440\u043e\u0447\u0438\u043f\u0430 \u043c\u0430\u043b\u0438\u043d\u043a\u0438 \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0438\u0445 \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430, \u0447\u0442\u043e\u0431\u044b:\u0412\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e: \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0432\u0438\u0434\u0435\u043e \u0441\u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u0439\u0440\u043e\u0447\u0438\u043f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0438 \u0441\u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0442\u044f\u043d\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0434\u043d\u043e\u0433\u043e.\u041f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0439\u0440\u043e\u0447\u0438\u043f\u0430 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439.\u042f \u0440\u0435\u0448\u0438\u043b \u0432\u0437\u044f\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0443\u043b \u043c\u043e\u0434\u0435\u043b\u0435\u0439:YOLO8nYOLO8sYOLO10nYOLO10sYOLO12nYOLO12sYOLO26nYOLO26s\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f HEF\u0412 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442 \u044f \u0440\u0435\u0448\u0438\u043b \u0432\u0437\u044f\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438, \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432 onnx \u0444\u043e\u0440\u043c\u0430\u0442 \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0432\u0445\u043e\u0434\u0430 (640, 640). \u0412 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0434\u043b\u044f \u0432\u0438\u0434\u0435\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443 \u0431\u0440\u0430\u0442\u044c (640, 480). \u0412 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u044d\u0442\u043e \u043d\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e. \u0414\u0435\u0439\u0441\u0442\u0432\u0443\u044f \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438, \u0433\u043e\u0442\u043e\u0432\u0438\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0435 har \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u0430\u0436\u0434\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u043c \u0447\u0435\u0440\u0435\u0437 netron.app \u0438 \u0431\u0435\u0440\u0435\u043c \u043e\u0442\u0442\u0443\u0434\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0443\u0437\u043b\u043e\u0432.  \u041e\u0431\u0440\u0430\u0437\u0435\u0446 \u043d\u0438\u0436\u0435:from hailo_sdk_client import ClientRunner    TARGET_CHIP = &#171;hailo8l&#187;  END_NODES = [      &#171;\/model.22\/cv2.0\/cv2.0.2\/Conv&#187;,      &#171;\/model.22\/cv3.0\/cv3.0.2\/Conv&#187;,      &#171;\/model.22\/cv2.1\/cv2.1.2\/Conv&#187;,      &#171;\/model.22\/cv3.1\/cv3.1.2\/Conv&#187;,      &#171;\/model.22\/cv2.2\/cv2.2.2\/Conv&#187;,      &#171;\/model.22\/cv3.2\/cv3.2.2\/Conv&#187;,  ]    print(&#171;\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 har&#187;)  runner = ClientRunner(hw_arch=TARGET_CHIP)  runner.translate_onnx_model(      &#171;yolo8n.onnx&#187;,      end_node_names=END_NODES  )    print(&#171;\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 har \u0444\u0430\u0439\u043b\u0430 \u043c\u043e\u0434\u0435\u043b\u0438&#187;)  runner.save_har(&#171;yolo8n.har&#187;)\u041f\u0440\u043e\u0434\u0435\u043b\u044b\u0432\u0430\u044f \u0442\u0430\u043a \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b, \u0447\u0442\u043e \u0443 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 12n \u0438 12s \u0443\u0437\u043b\u044b reshape \u0438 transpose \u043f\u0440\u043e\u043d\u0438\u0437\u044b\u0432\u0430\u044e\u0442 \u0432\u0441\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044f\u0441\u044c \u0432 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u0443\u0436\u0435 \u043e\u0442 \u0441\u0430\u043c\u043e\u0439 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b. \u0410 \u043d\u0430\u0434\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0448 \u043d\u0435\u0439\u0440\u043e\u0447\u0438\u043f \u043d\u0435 \u043f\u0435\u0440\u0435\u0432\u0430\u0440\u0438\u0432\u0430\u0435\u0442. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 8 \u0441\u0435\u0440\u0438\u0438 \u043e\u0442\u0441\u0435\u043a\u0430\u043b\u0438 \u0438\u0445, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0434\u043b\u044f \u043d\u0435\u0439\u0440\u043e\u0447\u0438\u043f\u0430 \u0432\u0441\u0435, \u0447\u0442\u043e \u0438\u043c \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u041f\u043e\u0447\u0438\u0442\u0430\u0432 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u044f \u043f\u0440\u0438\u0448\u0435\u043b \u043a \u0432\u044b\u0432\u043e\u0434\u0443, \u0447\u0442\u043e \u043d\u0430\u0448 Hailo \u0447\u0438\u043f \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0432\u0430\u0440\u0438\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e 12 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044d\u0442\u043e\u0439 \u0441\u0435\u0440\u0438\u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0441\u043e\u0432\u0441\u0435\u043c \u0438\u043d\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u043c\u043e\u0434\u0435\u043b\u0438, \u0432\u0437\u044f\u0432 \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0431\u043b\u043e\u043a\u0438 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0434\u043e\u0431\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0435\u0440\u043e\u0432, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0447\u0435\u0433\u043e \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043c\u043d\u043e\u0433\u043e \u0442\u0430\u043a\u0438\u0445 \u043d\u0435\u043f\u0435\u0440\u0435\u0432\u0430\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0447\u0438\u043f\u043e\u043c \u0443\u0437\u043b\u043e\u0432. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0442 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 12 \u0441\u0435\u0440\u0438\u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0438 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u0448\u0435\u0441\u0442\u044c\u044e \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u043c\u0438\u0441\u044f.\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f HAR \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u043c \u0438\u0445 \u0441\u043d\u043e\u0432\u0430 \u0447\u0435\u0440\u0435\u0437 netron.app \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043d\u0430\u0448\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u043d\u043e\u0432\u044b\u043c\u0438 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0443\u0437\u043b\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u0438\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0438 alls. \u0414\u043b\u044f 8 \u0441\u0435\u0440\u0438\u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043a\u043e\u043d\u0444\u0438\u0433 json, \u0435\u0433\u043e \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443, \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440. \u0414\u043b\u044f 10 \u0438 26 \u0441\u0435\u0440\u0438\u0438 \u043d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0443 alls, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0438\u043c\u0435\u043d\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. \u0410 json \u0434\u043b\u044f \u043d\u0438\u0445 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d.nomalization1 = normalization([0.0, 0.0, 0.0], [255.0, 255.0, 255.0])  change_output_activation(conv48, sigmoid)  change_output_activation(conv59, sigmoid)  change_output_activation(conv69, sigmoid) nomalization1 = normalization([0.0, 0.0, 0.0], [255.0, 255.0, 255.0])  change_output_activation(conv64, sigmoid)  change_output_activation(conv80, sigmoid)  change_output_activation(conv94, sigmoid)  \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0430\u043c\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432 \u0446\u0435\u043b\u043e\u043c \u0442\u0430\u043a\u0430\u044f (\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f 10n):import numpy as np  from PIL import Image  from hailo_sdk_client import ClientRunner  from ultralytics.utils import DATASETS_DIR  from ultralytics.data.utils import check_det_dataset      model = &#171;yolo10n.onnx&#187;  MODEL = &#8216;yolo10n&#8217;  CALIB_IMAGES = 128  TARGET_CHIP = &#171;hailo8l&#187;  END_NODES = [      &#171;\/model.23\/one2one_cv3.0\/one2one_cv3.0.2\/Conv&#187;,      &#171;\/model.23\/one2one_cv3.1\/one2one_cv3.1.2\/Conv&#187;,      &#171;\/model.23\/one2one_cv3.2\/one2one_cv3.2.2\/Conv&#187;,      &#171;\/model.23\/one2one_cv2.0\/one2one_cv2.0.2\/Conv&#187;,      &#171;\/model.23\/one2one_cv2.1\/one2one_cv2.1.2\/Conv&#187;,      &#171;\/model.23\/one2one_cv2.2\/one2one_cv2.2.2\/Conv&#187;,  ]    print(&#171;\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 har&#187;)  runner = ClientRunner(hw_arch=TARGET_CHIP)  runner.translate_onnx_model(&#171;yolo10n.onnx&#187;, end_node_names=END_NODES)    print(&#171;\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c alls&#187;)  runner.load_model_script(&#171;yolo10n.alls&#187;)    print(&#171;\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442&#187;)  check_det_dataset(&#171;coco128.yaml&#187;)  calib_dir = DATASETS_DIR\/&#187;coco128&#8243;\/&#187;images&#187;\/&#187;train2017&#8243;  image_files = list(calib_dir.glob(&#171;*.jpg&#187;)) + list(calib_dir.glob(&#171;*.png&#187;))  if not image_files:      raise FileNotFoundError(f&#187;No calibration images found in {calib_dir}&#187;)    calibset = np.zeros((CALIB_IMAGES, 640, 640, 3), dtype=np.float32)  for i in range(CALIB_IMAGES):      img = Image.open(np.random.choice(image_files)).convert(&#171;RGB&#187;).resize((640, 640))      calibset[i] = np.array(img, dtype=np.float32)    print(&#171;\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0432\u0435\u0441\u0430 \u043a \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0443&#187;)  runner.optimize(calibset)    print(&#171;\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e har-\u0444\u0430\u0439\u043b\u0430&#187;)  runner.save_har(f&#187;{MODEL}.o.har&#187;)    print(&#171;\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f hef-\u0444\u0430\u0439\u043b\u0430&#187;)  hef = runner.compile()  with open(f&#187;{MODEL}.hef&#187;, &#171;wb&#187;) as f:      f.write(hef)\u041a\u0430\u043a \u0438\u0442\u043e\u0433, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c HEF-\u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u043f\u0435\u0440\u0435\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u0438\u0445 \u043d\u0430 Raspberry Pi 5.\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430\u0415\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0448\u0442\u0443\u043a\u0430, \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0432\u0438\u0436\u043a\u0430 Hailort Cli \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0441 \u0440\u0443\u0447\u043d\u044b\u043c \u0437\u0430\u043c\u0435\u0440\u043e\u043c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438. \u042f \u0440\u0435\u0448\u0438\u043b \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0438 \u0437\u0430\u043e\u0434\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438. \u041f\u0435\u0440\u0432\u044b\u043c \u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043c\u0435\u0442\u043e\u0434 \u0441 hailort. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0441\u0440\u0435\u0434\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0430\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0438 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043d\u0430\u0448 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 HEF \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. (\u041d\u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \u044d\u0442\u043e \u043c\u043e\u044f \u043b\u0438\u0447\u043d\u0430\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u0439). \u0418 \u0432\u043e\u0442 \u043a\u0430\u043a\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b:\u0417\u0430\u0442\u0435\u043c \u0440\u0430\u0434\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u0437\u043c\u0435\u0440\u0438\u043c \u0432\u0440\u0435\u043c\u044f. \u0417\u0430\u043e\u0434\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u043c \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0430.  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0430\u0437\u043e\u0433\u0440\u0435\u0432\u0430 \u0447\u0438\u043f\u0430 \u0434\u043b\u044f \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430 \u0443\u0441\u0442\u0440\u043e\u0438\u043b \u0435\u043c\u0443 \u0446\u0438\u043a\u043b \u0438\u0437 110 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. \u0422\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u0442\u044c, 100 \u0440\u0430\u0437\u043e\u0433\u0440\u0435\u0432\u043e\u0447\u043d\u044b\u0445 \u0438 10 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0445, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0440\u0435\u0434\u043d\u0435\u0435.import osimport numpy as npfrom hailo_platform import (    HEF,    ConfigureParams,    FormatType,    HailoStreamInterface,    InferVStreams,    InputVStreamParams,    OutputVStreamParams,    VDevice,)from time import perf_counterfrom PIL import Image, ImageDrawfrom collections import defaultdict, deque# ConfigurationMODELS_DIR = &#171;.\/hef\/&#187;IMAGES_DIR = &#171;.\/images\/&#187;            models = sorted([m for m in os.listdir(MODELS_DIR) if m.endswith(&#171;.hef&#187;)])imgs   = sorted([i for i in os.listdir(IMAGES_DIR) if i.endswith(&#171;.jpg&#187;)])            IMGSZ = (640, 640)CONF = 0.25params = VDevice.create_params()target = VDevice(params)for model in models:    timings = defaultdict(lambda: deque(maxlen=10))    # Load HEF and connect to device    hef = HEF(os.path.join(MODELS_DIR, model))    configure_params = ConfigureParams.create_from_hef(hef, interface=HailoStreamInterface.PCIe)    network_groups = target.configure(hef, configure_params)    network_group = network_groups[0]    network_group_params = network_group.create_params()    # Setup I\/O virtual streams    input_vstreams_params = InputVStreamParams.make(network_group, quantized=False, format_type=FormatType.FLOAT32)    output_vstreams_params = OutputVStreamParams.make(network_group, quantized=False, format_type=FormatType.FLOAT32)    input_name = hef.get_input_vstream_infos()[0].name    # Inference    with InferVStreams(network_group, input_vstreams_params, output_vstreams_params) as pipeline:        with network_group.activate(network_group_params):            for idx, img in enumerate(imgs):                # Preprocess                orig = Image.open(os.path.join(IMAGES_DIR, img)).convert(&#171;RGB&#187;)                ow, oh = orig.size                resized = orig.resize((IMGSZ[0],IMGSZ[1]))                input_data = np.expand_dims(np.array(resized, dtype=np.float32), axis=0)  # (1,640,640,3)                for i in range(110):                    start_time = perf_counter()                    raw = pipeline.infer({input_name: input_data})                    inf_time = (perf_counter() &#8212; start_time) * 1000                    timings[img].append(inf_time)                    output_key = next(iter(raw.keys()))                    batch_dets = raw[output_key][0]  # shape: (num_classes, max_dets, 5)                                           print(&#171;*&#187; * 150)    print(f&#187;Model: {model}&#187;)    print(&#171;*&#187; * 150)            print(&#187;                         &#171;, end=&#187; &#171;)    for img in imgs:        print(f&#187;{img}&#187;, end=&#187; &#187; * (20 &#8212; len(img)))    print(&#171;&#187;)            print(&#171;avg_inf_time(ms) =       &#171;, end=&#187; &#171;)        for img in imgs:         tm = sum(timings[img]) \/ 10          print(f&#187;{tm:.2f}&#187;, end=&#187; &#187; * 15)    print(&#171;\\n\\n\\n\\n&#187;)\u0412 \u043f\u043e\u0434\u043e\u043f\u044b\u0442\u043d\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u0437\u044f\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438\u0437 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430 VisDrone, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u0434 \u0440\u0443\u043a\u043e\u0439, \u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0438\u0437 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430. \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430 \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0435\u0441\u0442\u044c \u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u0430\u044f \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u044f. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u043e\u0442:\u0418\u0442\u043e\u0433\u0420\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c, \u0433\u0434\u0435-\u0442\u043e \u043f\u043e\u0441\u0438\u043b\u044c\u043d\u0435\u0435, \u0433\u0434\u0435-\u0442\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e. \u0421\u0442\u043e\u0438\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-487164","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/487164","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=487164"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/487164\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=487164"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=487164"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=487164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}