{"id":394121,"date":"2024-06-29T11:24:57","date_gmt":"2024-06-29T11:24:57","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=394121"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=394121","title":{"rendered":"<span>\u041a\u0430\u043a \u043c\u044b \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0438 Computer Vision \u0438\u0437 \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0433\u0438\u0444\u043a\u0438<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0414\u0435\u043d\u0438\u0441 \u0412\u043b\u0430\u0441\u043e\u0432, \u044f Data Scientist \u0432 \u0423\u0447\u0438.\u0440\u0443. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043e\u043d\u043b\u0430\u0439\u043d-\u0443\u0440\u043e\u043a\u043e\u0432 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0433\u0438\u0444\u043a\u0438 \u2014 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043a\u0430\u0434\u0440\u043e\u0432 \u0441 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u044f\u0440\u043a\u0438\u043c\u0438 \u044d\u043c\u043e\u0446\u0438\u044f\u043c\u0438 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432. \u042d\u0442\u0438 \u0433\u0438\u0444\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0438\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0438 \u0432 e-mail-\u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0435. \u0412\u043c\u0435\u0441\u0442\u0435 \u0441 Data Scientist <a href=\"https:\/\/habr.com\/ru\/users\/DariaV\/\">@DariaV<\/a> \u0414\u0430\u0448\u0435\u0439 \u0412\u0430\u0441\u044e\u043a\u043e\u0432\u043e\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0431\u0435\u0437 \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u0438\u0437\u044b \u0432 Computer Vision, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0441\u0434\u0435\u043b\u0430\u0442\u044c MVP, \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043b\u0435\u0436\u0430\u0442 low-res \u0432\u0438\u0434\u0435\u043e. \u0412 \u043a\u043e\u043d\u0446\u0435 \u0431\u043e\u043d\u0443\u0441 \u2014 \u0432\u0438\u0434\u0436\u0435\u0442 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043a\u0430\u0434\u0440\u043e\u0432.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4a6\/bb2\/707\/4a6bb2707a298a556c71f42f5f3faad7.gif\" width=\"780\" height=\"440\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4a6\/bb2\/707\/4a6bb2707a298a556c71f42f5f3faad7.gif\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0442\u043a\u0443\u0434\u0430 \u0443 \u043d\u0430\u0441 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043c\u044b\u0441\u043b\u044c \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u044d\u043c\u043e\u0446\u0438\u0438? \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u0432 \u0423\u0447\u0438.\u0440\u0443 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c \u043e\u043d\u043b\u0430\u0439\u043d-\u0448\u043a\u043e\u043b\u0443 \u0423\u0447\u0438.\u0414\u043e\u043c\u0430 \u2014 \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u0438\u0434\u0435\u043e-\u0443\u0440\u043e\u043a\u043e\u0432 \u0434\u043b\u044f \u0448\u043a\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432. \u041d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u0430\u043a\u043e\u0439 \u0443\u0440\u043e\u043a \u2014 \u044d\u0442\u043e \u0447\u0438\u0441\u0442\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0438\u0434\u0435\u044f \u00ab\u200e\u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u0442\u044c\u00bb\u200e \u043a \u043d\u0435\u043c\u0443 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438. \u0422\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043a\u043e\u043d\u0432\u0435\u0440\u0441\u0438\u044e, \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0443\u0440\u043e\u043a\u043e\u0432, \u0437\u0430\u043c\u0435\u0440\u0438\u0442\u044c \u0432\u043e\u0432\u043b\u0435\u0447\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441, \u043a\u0430\u043a \u0438 \u0443 \u043d\u0430\u0441, \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0430 RealTime \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u044d\u043c\u043e\u0446\u0438\u0439, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0439\u0442\u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c: \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0443\u0440\u043e\u043a\u043e\u0432.<\/p>\n<h2>\u041c\u0430\u0440\u043a\u0435\u0440\u044b \u043d\u0430\u0447\u0430\u043b\u0430 \u0438 \u043a\u043e\u043d\u0446\u0430 \u0443\u0440\u043e\u043a\u0430<\/h2>\n<p>\u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u043a\u0430\u043c\u0435\u0440\u044b \u0443\u0447\u0435\u043d\u0438\u043a\u0430 \u043d\u0435 \u0440\u0430\u0432\u043d\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0434\u043b\u0438\u043d\u0435 \u0443\u0440\u043e\u043a\u0430. \u0423\u0447\u0435\u043d\u0438\u043a\u0438 \u0447\u0430\u0441\u0442\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0441 \u043e\u043f\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c, \u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0443\u0440\u043e\u043a\u0430 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u0438\u0441\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u044b \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0443\u0440\u043e\u043a\u043e\u043c.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0441\u043e\u043e\u0442\u043d\u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u043a\u0430\u043c\u0435\u0440 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432 \u0438 \u0443\u0447\u0438\u0442\u0435\u043b\u0435\u0439. \u0423\u0447\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0432\u0438\u0434\u0435\u043e \u043f\u043e\u043c\u043e\u0433\u043b\u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043f\u0435\u0440\u0438\u043e\u0434 \u0443\u0440\u043e\u043a\u0430: \u043e\u043d \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043e\u0431\u0435 \u043a\u0430\u043c\u0435\u0440\u044b \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e, \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0432\u0441\u0435\u043c.<\/p>\n<h2>\u0420\u0430\u0437\u0431\u0438\u043b\u0438 \u0432\u0438\u0434\u0435\u043e \u043d\u0430 \u043a\u0430\u0434\u0440\u044b<\/h2>\n<p>\u0414\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043d\u0430\u0440\u0435\u0437\u0430\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u043e\u0442\u0440\u0435\u0437\u043a\u0438 \u0432\u0438\u0434\u0435\u043e \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438. \u041d\u0430\u043c \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443: \u0435\u0441\u043b\u0438 \u0440\u0435\u0431\u0435\u043d\u043e\u043a \u043f\u0440\u043e\u044f\u0432\u0438\u043b \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u044d\u043c\u043e\u0446\u0438\u044e, \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043b\u0438\u0446\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434. \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0433\u0440\u0430\u043d\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043b\u0430 \u0431\u044b \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443, \u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0435 \u043f\u043e\u0432\u043b\u0438\u044f\u043b\u0430 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<h2>\u041d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0435\u0442\u0441\u043a\u0438\u0435 \u0443\u043b\u044b\u0431\u043a\u0438 (\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e)<\/h2>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u0434\u0440\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u043b\u0438\u0446\u043e. \u0415\u0441\u043b\u0438 \u043e\u043d\u043e \u0442\u0430\u043c \u0435\u0441\u0442\u044c, \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u044d\u0442\u043e \u0438\u043b\u0438 \u0443\u0447\u0435\u043d\u0438\u043a, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u044d\u043c\u043e\u0446\u0438\u0438 \u043d\u0430 \u043b\u0438\u0446\u0435. \u0418 \u0442\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u044e\u0430\u043d\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c.<\/p>\n<h3>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 1. \u0420\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u043b\u0438\u0446\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u0445 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u043b\u043e\u0436\u043d\u0435\u0435<\/h3>\n<p>\u0412\u0438\u0434\u0435\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0447\u0430\u0441\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0434\u0430\u0436\u0435 \u0431\u0435\u0437 \u0443\u0447\u0435\u0442\u0430 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u0438 \u0432\u0438\u0434\u0435\u043e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0447\u0435\u043d\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0432 \u0442\u0435\u043c\u043d\u043e\u0439 \u043a\u043e\u043c\u043d\u0430\u0442\u0435, \u0432 \u043a\u0430\u0434\u0440\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u0430\u044f \u043b\u0430\u043c\u043f\u0430 \u0438\u043b\u0438 \u043b\u044e\u0441\u0442\u0440\u0430, \u0437\u0430 \u0441\u043f\u0438\u043d\u043e\u0439 \u0443\u0447\u0435\u043d\u0438\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u044f\u0440\u043a\u043e\u0435 \u043e\u043a\u043d\u043e, \u043b\u0438\u0446\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432 \u043a\u0430\u0434\u0440\u0435 \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e.<\/p>\n<p>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440 DNN Face Detector \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 OpenCV, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0437\u044f\u043b\u0438 \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u0443, \u043d\u0430 \u043d\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u0432\u0430\u043b \u043d\u0435\u0442\u043e\u0447\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043a\u0430\u0434\u0440\u0430\u043c\u0438 \u0438\u0437 \u0432\u0438\u0434\u0435\u043e\u0447\u0430\u0442\u043e\u0432: \u0438\u043d\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043b\u0438\u0446\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043d\u043e \u0435\u0441\u0442\u044c \u0432 \u043a\u0430\u0434\u0440\u0435, \u0438\u0437 \u0434\u0432\u0443\u0445 \u043b\u0438\u0446 \u043d\u0430\u0445\u043e\u0434\u0438\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u0438\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u043b \u043b\u0438\u0446\u0430 \u0442\u0430\u043c, \u0433\u0434\u0435 \u0438\u0445 \u043d\u0435\u0442.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f45\/c84\/8e8\/f45c848e837ebac58906f7a06489ae9a.PNG\" alt=\"\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440 DNN Face Detector \u043c\u043e\u0433 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u0430\u043a \u043b\u0438\u0446\u043e \u0443\u0437\u043e\u0440 \u043d\u0430 \u0437\u0430\u043d\u0430\u0432\u0435\u0441\u043a\u0435, \u0438\u0433\u0440\u0443\u0448\u0435\u0447\u043d\u043e\u0433\u043e \u043c\u0435\u0434\u0432\u0435\u0434\u044f \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0438\u0437 \u043a\u0430\u0440\u0442\u0438\u043d \u043d\u0430 \u0441\u0442\u0435\u043d\u0435 \u0438 \u0441\u0442\u0443\u043b\u0430\" title=\"\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440 DNN Face Detector \u043c\u043e\u0433 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u0430\u043a \u043b\u0438\u0446\u043e \u0443\u0437\u043e\u0440 \u043d\u0430 \u0437\u0430\u043d\u0430\u0432\u0435\u0441\u043a\u0435, \u0438\u0433\u0440\u0443\u0448\u0435\u0447\u043d\u043e\u0433\u043e \u043c\u0435\u0434\u0432\u0435\u0434\u044f \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0438\u0437 \u043a\u0430\u0440\u0442\u0438\u043d \u043d\u0430 \u0441\u0442\u0435\u043d\u0435 \u0438 \u0441\u0442\u0443\u043b\u0430\" width=\"1024\" height=\"279\"\/><figcaption>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440 DNN Face Detector \u043c\u043e\u0433 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u0430\u043a \u043b\u0438\u0446\u043e \u0443\u0437\u043e\u0440 \u043d\u0430 \u0437\u0430\u043d\u0430\u0432\u0435\u0441\u043a\u0435, \u0438\u0433\u0440\u0443\u0448\u0435\u0447\u043d\u043e\u0433\u043e \u043c\u0435\u0434\u0432\u0435\u0434\u044f \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0438\u0437 \u043a\u0430\u0440\u0442\u0438\u043d \u043d\u0430 \u0441\u0442\u0435\u043d\u0435 \u0438 \u0441\u0442\u0443\u043b\u0430<\/figcaption><\/figure>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0443\u0447\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u0437\u044f\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e RetinaNet-\u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430 PyTorch. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0430\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u0430 \u0438 \u0443\u0431\u0435\u0434\u0438\u043b\u0438\u0441\u044c, \u0447\u0442\u043e \u043d\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u0447\u0438\u0442\u0441\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043b\u0438\u0446\u0430. \u0417\u0430\u0442\u0435\u043c \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0443\u044e \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0432\u044b\u0431\u043e\u0440\u043a\u0443, \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044f \u0438 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043d\u043e\u0432\u044b\u0445 \u043a\u0430\u0434\u0440\u0430\u0445: \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u043e\u0442\u043c\u0435\u0447\u0430\u0442\u044c \u043b\u0438\u0446\u0430 \u043d\u0430 \u043a\u0430\u0434\u0440\u0435 \u0441 \u043d\u0443\u043b\u044f.<\/p>\n<p>\u0420\u0430\u0437\u043c\u0435\u0447\u0430\u043b\u0438 \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e: \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u043f\u043e\u0440\u0446\u0438\u0438 \u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u043a\u0430\u0434\u0440\u043e\u0432 \u043c\u044b \u0437\u0430\u043d\u043e\u0432\u043e \u043e\u0431\u0443\u0447\u0430\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u044c. \u0410 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u043a\u0430\u0434\u0440\u043e\u0432, \u043d\u0430\u0440\u0430\u0449\u0438\u0432\u0430\u044f \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0443\u044e \u0432\u044b\u0431\u043e\u0440\u043a\u0443. \u0412\u0441\u0435\u0433\u043e \u043c\u044b \u0440\u0430\u0437\u043c\u0435\u0442\u0438\u043b\u0438 2624 \u043a\u0430\u0434\u0440\u0430 \u0438\u0437 388 \u0432\u0438\u0434\u0435\u043e\u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u0441\u0443\u043c\u043c\u0435 \u0431\u044b\u043b\u043e 3325 \u043b\u0438\u0446.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0431\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432 \u043d\u0430\u0448\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440. \u0412 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0438\u0437 140 \u043a\u0430\u0434\u0440\u043e\u0432 \u0441\u0442\u0430\u0440\u044b\u0439 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u0448\u0435\u043b 150 \u043b\u0438\u0446, \u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b 38. \u041d\u043e\u0432\u044b\u0439 \u0436\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b \u0442\u043e\u043b\u044c\u043a\u043e 5, \u0430 183 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0432\u0435\u0440\u043d\u043e.<\/p>\n<h3>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 2. \u0412 \u043a\u0430\u0434\u0440\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0431\u0435\u043d\u043e\u043a<\/h3>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e-\u0443\u0440\u043e\u043a\u0430\u0445 \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0442\u0438, \u043d\u043e \u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0438, \u0432\u0430\u0436\u043d\u043e \u043d\u0430\u0443\u0447\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c \u043e\u0434\u043d\u0438\u0445 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0434\u0430\u0435\u0442 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u043d\u0430 \u0433\u0438\u0444\u043a\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0443\u0432\u0438\u0434\u0438\u0442 \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u0435\u0431\u0435\u043d\u043a\u0430, \u0430 \u043d\u0435 \u0441\u0435\u0431\u044f. \u0422\u0430\u043a\u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u043d\u0430 \u0443\u0440\u043e\u043a\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438.<\/p>\n<p>\u041c\u044b \u043e\u0431\u0443\u0447\u0438\u043b\u0438 \u0434\u0432\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0443\u0436\u043d\u044b\u0445 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u044b \u0440\u0430\u0437\u043c\u0435\u0442\u0438\u043b\u0438 \u0441\u0430\u043c\u0438.<\/p>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c, \u043a\u043e\u043c\u0443 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043b\u0438\u0446\u043e \u0432 \u043a\u0430\u0434\u0440\u0435: \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044e \u0438\u043b\u0438 \u0443\u0447\u0435\u043d\u0438\u043a\u0443. \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0441 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0432\u0435\u0434\u044c \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u0432\u0437\u0440\u043e\u0441\u043b\u043e\u0433\u043e \u043e\u0442 \u0440\u0435\u0431\u0435\u043d\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u043e. \u042d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u0430\u043a, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0446\u0435\u043b\u043e\u0435 \u0432\u0438\u0434\u0435\u043e. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u0441 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043a\u0430\u0434\u0440\u0430\u043c\u0438, \u0442\u043e \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e:<\/p>\n<ul>\n<li>\n<p>\u0432\u043e\u0437\u0440\u0430\u0441\u0442 \u043b\u044e\u0434\u0435\u0439 \u043d\u0430 \u043a\u0430\u0434\u0440\u0435 \u0441 \u043d\u0438\u0437\u043a\u0438\u043c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c;<\/p>\n<\/li>\n<li>\n<p>\u0434\u0435\u0442\u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 \u043a\u0430\u0434\u0440\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0435\u0441\u044c \u0443\u0440\u043e\u043a, \u0430 \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0435 \u2014 \u043c\u0438\u043d\u0443\u0442\u044b.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043c\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0430 \u0443\u0440\u043e\u043a\u0435 \u00ab\u200e\u043f\u043b\u0435\u0447\u043e\u043c\u00bb\u200e \u0438\u043b\u0438 \u00ab\u200e\u043b\u043e\u043a\u0442\u0435\u043c\u00bb\u200e. \u0422\u0430\u043a \u043c\u044b \u043d\u0430\u0437\u0432\u0430\u043b\u0438 \u0442\u0438\u043f \u043a\u0430\u0434\u0440\u043e\u0432, \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u043c\u0435\u0440\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u0443\u0447\u0435\u043d\u0438\u043a\u0430, \u043d\u043e \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0440\u044f\u0434\u043e\u043c \u0441\u0438\u0434\u0438\u0442 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c. \u041e\u0431\u044b\u0447\u043d\u043e \u043d\u0430 \u0442\u0430\u043a\u0438\u0445 \u0443\u0440\u043e\u043a\u0430\u0445 \u0432\u0438\u0434\u043d\u043e \u043f\u043b\u0435\u0447\u043e \u0441\u0438\u0434\u044f\u0449\u0435\u0433\u043e \u0440\u044f\u0434\u043e\u043c \u0432\u0437\u0440\u043e\u0441\u043b\u043e\u0433\u043e \u0438\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u043e\u043a\u043e\u0442\u044c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/c18\/2a9\/d50\/c182a9d500ec9a9eff8276609f6397fc.jpg\" alt=\"\u041d\u0430 \u0432\u0441\u0435\u0445 \u0442\u0440\u0435\u0445 \u043a\u0430\u0434\u0440\u0430\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u043d\u043e \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u043a\u0430\u0434\u0440\u0443 \u043d\u0430\u0439\u0442\u0438 \u0435\u0433\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e\" title=\"\u041d\u0430 \u0432\u0441\u0435\u0445 \u0442\u0440\u0435\u0445 \u043a\u0430\u0434\u0440\u0430\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u043d\u043e \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u043a\u0430\u0434\u0440\u0443 \u043d\u0430\u0439\u0442\u0438 \u0435\u0433\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e\" width=\"1024\" height=\"455\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c18\/2a9\/d50\/c182a9d500ec9a9eff8276609f6397fc.jpg\" data-blurred=\"true\"\/><figcaption>\u041d\u0430 \u0432\u0441\u0435\u0445 \u0442\u0440\u0435\u0445 \u043a\u0430\u0434\u0440\u0430\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u043d\u043e \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u043a\u0430\u0434\u0440\u0443 \u043d\u0430\u0439\u0442\u0438 \u0435\u0433\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e<\/figcaption><\/figure>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u0438\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u043b\u0435\u0447\u0438. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440 \u043b\u0438\u0446 \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0434\u043e \u043e\u0431\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043a\u0430\u0434\u0440\u0430\u0445 \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0442\u0430\u043a\u0438\u0445 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u043e\u0432 \u043c\u044b \u043d\u0435 \u043d\u0430\u0448\u043b\u0438 \u0432 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u0438 \u0440\u0430\u0437\u043c\u0435\u0442\u0438\u043b\u0438 \u043e\u043a\u043e\u043b\u043e 250 000 \u043a\u0430\u0434\u0440\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u00ab\u200e\u0447\u0430\u0441\u0442\u044c\u00bb\u200e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f, \u0438 \u043a\u0430\u0434\u0440\u044b \u0431\u0435\u0437 \u043d\u0438\u0445. \u0420\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0447\u0430\u0442\u044c \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043b\u0435\u0433\u0447\u0435: \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u0430\u0434\u0440\u044b, \u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0438 \u0432\u0438\u0434\u0435\u043e \u0438 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0438\u043a\u043e\u0432 \u043e\u0442\u043c\u0435\u0447\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e \u0432\u043e\u0442 \u044d\u0442\u0438 15 \u043c\u0438\u043d\u0443\u0442 (900 \u043a\u0430\u0434\u0440\u043e\u0432!) \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b.<\/p>\n<p>\u041d\u0430 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0435 \u0443\u0440\u043e\u043a\u0430 \u0441 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e \u043e\u0431\u0435\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439. \u041e\u043d\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u0443\u0440\u043e\u043a\u0430, \u0430 \u043a\u043e\u0433\u0434\u0430 \u0441\u043a\u043e\u0440\u0435\u0435 \u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u0435\u043c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d49\/214\/337\/d49214337dc74325e69b654e82f6a397.png\" alt=\"\u041d\u0430 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u2014 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0445\u043e\u0442\u044f \u0431\u044b \u00ab\u200e\u043f\u043b\u0435\u0447\u043e\u043c\u00bb\u200e, \u0430 \u043d\u0430 \u043d\u0438\u0436\u043d\u0435\u043c \u2014 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0432 \u043a\u0430\u043c\u0435\u0440\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u0435\u043c\" title=\"\u041d\u0430 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u2014 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0445\u043e\u0442\u044f \u0431\u044b \u00ab\u200e\u043f\u043b\u0435\u0447\u043e\u043c\u00bb\u200e, \u0430 \u043d\u0430 \u043d\u0438\u0436\u043d\u0435\u043c \u2014 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0432 \u043a\u0430\u043c\u0435\u0440\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u0435\u043c\" width=\"1646\" height=\"894\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d49\/214\/337\/d49214337dc74325e69b654e82f6a397.png\"\/><figcaption>\u041d\u0430 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u2014 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0445\u043e\u0442\u044f \u0431\u044b \u00ab\u200e\u043f\u043b\u0435\u0447\u043e\u043c\u00bb\u200e, \u0430 \u043d\u0430 \u043d\u0438\u0436\u043d\u0435\u043c \u2014 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0432 \u043a\u0430\u043c\u0435\u0440\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u0435\u043c<\/figcaption><\/figure>\n<h3>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 3. \u0414\u0435\u0442\u0438 \u0443\u043b\u044b\u0431\u0430\u044e\u0442\u0441\u044f \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443<\/h3>\n<p>\u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043d\u0435 \u0442\u0430\u043a \u0443\u0436 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0443\u043b\u044b\u0431\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0431\u0435\u043d\u043e\u043a \u0438\u043b\u0438 \u043d\u0435\u0442. \u0418 \u0435\u0441\u043b\u0438 \u0441 \u0443\u043b\u044b\u0431\u0447\u0438\u0432\u044b\u043c\u0438 \u0440\u0435\u0431\u044f\u0442\u0430\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435\u0442, \u0442\u043e \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0441\u0434\u0435\u0440\u0436\u0430\u043d\u043d\u044b\u0445 \u0443\u043b\u044b\u0431\u043e\u043a \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430.<\/p>\n<p>\u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043c\u044b \u0432\u0437\u044f\u043b\u0438 \u043f\u0440\u0435\u0434\u043e\u0431\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c ResNet34 \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 fast.ai. \u042d\u0442\u0443 \u0436\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0434\u043b\u044f \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u0432 \u0434\u0432\u0430 \u044d\u0442\u0430\u043f\u0430: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\u0445 <a href=\"https:\/\/github.com\/muxspace\/facial_expressions\"><u>facial_expressions<\/u><\/a> \u0438 <a href=\"https:\/\/github.com\/hromi\/SMILEsmileD\/tree\/master\/SMILEs\"><u>SMILEsmileD<\/u><\/a> \u0441 \u0432\u0435\u0441\u0435\u043b\u044b\u043c\u0438 \u0438 \u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043b\u0438\u0446\u0430\u043c\u0438, \u043f\u043e\u0442\u043e\u043c \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u043e\u043c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 \u0441 \u043a\u0430\u0434\u0440\u0430\u043c\u0438 \u0441 \u043a\u0430\u043c\u0435\u0440 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432. \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0438 \u043f\u043e\u043c\u043e\u0447\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u0447\u0435\u043c \u043a\u0430\u0434\u0440\u044b \u0432\u0438\u0434\u0435\u043e \u0441 \u043f\u043b\u0430\u043d\u0448\u0435\u0442\u043e\u0432 \u0438 \u0432\u0435\u0431-\u043a\u0430\u043c\u0435\u0440 \u043d\u0430\u0448\u0438\u0445 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432.<\/p>\n<p>\u0420\u0430\u0437\u043c\u0435\u0447\u0430\u043b\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0436\u0435\u0442\u0430. \u0412\u0441\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u0430\u043b\u0438\u0441\u044c \u043e\u0434\u043d\u043e\u0439 \u0438 \u0442\u043e\u0439 \u0436\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435 \u043f\u0440\u0435\u0434\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438:<\/p>\n<ol>\n<li>\n<p>\u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0434\u0440\u0430 \u0434\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 64 \u043d\u0430 64 \u043f\u0438\u043a\u0441\u0435\u043b\u044f. \u0412 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0443\u0436\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\u043c \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0439. \u0412 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 \u043c\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u043b\u0438 \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0441 \u043b\u0438\u0446\u043e\u043c \u0434\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u0438 \u043f\u043e\u0442\u043e\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043b\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a \u0447\u0435\u0440\u043d\u043e-\u0431\u0435\u043b\u043e\u0439 \u043f\u0430\u043b\u0438\u0442\u0440\u0435. \u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0447\u0435\u0440\u043d\u043e-\u0431\u0435\u043b\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043d\u0430\u043c \u00ab\u200e\u0447\u0438\u0449\u0435\u00bb\u200e, \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u043e\u0432 \u0443\u0436\u0435 \u0431\u044b\u043b \u0432 \u0447\u0435\u0440\u043d\u043e-\u0431\u0435\u043b\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435. \u041d\u0443 \u0438 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0443\u043b\u044b\u0431\u043a\u0438 \u0446\u0432\u0435\u0442\u0430 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u044b, \u0447\u0442\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b\u043e\u0441\u044c \u0432 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0410\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432 \u0440\u0430\u0437\u044b \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0438 \u0443\u0447\u0435\u0441\u0442\u044c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p>\u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e CLAHE normalizer \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 OpenCV. \u041f\u043e \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u044f\u043c, \u0442\u0430\u043a\u0430\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043b\u0443\u0447\u0448\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442 \u043d\u0430 \u043f\u0435\u0440\u0435\u0441\u0432\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u0442\u0435\u043c\u043d\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445.<\/p>\n<\/li>\n<\/ol>\n<h3>\u0414\u043e\u043e\u0431\u0443\u0447\u0430\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u0443\u043b\u044b\u0431\u043e\u043a<\/h3>\n<h4>1. \u0410\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/h4>\n<p>\u041f\u0440\u0438 \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0436\u0435\u0441\u0442\u043a\u0438\u0435 \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u041e\u0442\u0440\u0430\u0436\u0430\u043b\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043b\u0438 \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u0443\u044e \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u043b\u0438 \u0442\u0440\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u0430 \u0438 \u044f\u0440\u043a\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0411\u0440\u0430\u043b\u0438 \u043d\u0435 \u0432\u0441\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443, \u0430 \u043a\u0432\u0430\u0434\u0440\u0430\u0442, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 60% \u043e\u0442 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0440\u0435\u0437\u0430\u043b\u0438 \u0441 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u0441\u0442\u043e\u0440\u043e\u043d, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0447\u0435\u0440\u043d\u044b\u0439 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u043d\u0430 \u043c\u0435\u0441\u0442\u043e \u043e\u0431\u0440\u0435\u0437\u0430\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0435\u0440\u0432\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0438. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u044b \u043a \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u0430\u044f \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f. \u041e\u043d\u0430 \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u0443\u0447\u0435\u043d\u0438\u043a\u0430, \u043a\u0430\u043c\u0435\u0440\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0441\u043b\u0435\u0433\u043a\u0430 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u0438 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0435\u0433\u043e \u043b\u0438\u0446\u043e \u0432 \u043a\u0430\u0434\u0440\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0435\u0437\u0430\u043d\u043d\u044b\u043c. \u041f\u0440\u0438 \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043b\u0438\u0446\u0430 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0434\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430, \u043e\u0431\u0440\u0435\u0437\u0430\u043d\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0447\u0435\u0440\u043d\u0443\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u044c. \u0411\u0435\u0437 \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0439 \u0442\u0430\u043a\u0438\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0431\u044b\u043b\u043e \u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e, \u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u044d\u0442\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u0431\u044b\u043b\u0438 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b \u0434\u043b\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c7a\/ef9\/789\/c7aef97897bbeaca0debd4043e745d55.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0439 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438. \u0414\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u0434\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044e 64\u044564\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0439 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438. \u0414\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u0434\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044e 64\u044564\" width=\"1600\" height=\"940\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c7a\/ef9\/789\/c7aef97897bbeaca0debd4043e745d55.png\"\/><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0439 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438. \u0414\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u0434\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044e 64\u044564<\/figcaption><\/figure>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0434\u043b\u044f \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0439<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># ! pip freeze | grep fastai # fastai==1.0.44  import fastai  import matplotlib.pyplot as plt from matplotlib import cm from matplotlib import colors import seaborn as sns %matplotlib inline from pylab import rcParams plt.style.use('seaborn-talk') rcParams['figure.figsize'] = 12, 6  path = 'facial_expressions\/images\/'  def _side_cutoff(     x,     cutoff_prob=0.25,     cutoff_intensity=(0.1, 0.25) ):     if np.random.uniform() > cutoff_prob:         return x      # height and width     h, w = x.shape[1:]     h_cutoff = np.random.randint(         int(cutoff_intensity[0]*h), int(cutoff_intensity[1]*h)     )     w_cutoff = np.random.randint(         int(cutoff_intensity[0]*w), int(cutoff_intensity[1]*w)     )          cutoff_side = np.random.choice(         range(4),         p=[.34, .34, .16, .16]     ) # top, bottom, left, right.      if cutoff_side == 0:         x[:, :h_cutoff, :] = 0     elif cutoff_side == 1:         x[:, h-h_cutoff:, :] = 0     elif cutoff_side == 2:         x[:, :, :w_cutoff] = 0     elif cutoff_side == 3:         x[:, :, w-w_cutoff:] = 0     return x  # side cutoff goes frist. side_cutoff = fastai.vision.TfmPixel(_side_cutoff, order=99)  augmentations = fastai.vision.get_transforms(     do_flip=True,     flip_vert=False,     max_rotate=25.0,     max_zoom=1.25,     max_lighting=0.5,     max_warp=0.0,     p_affine=0.5,     p_lighting=0.5,          xtra_tfms = [side_cutoff()] )  def get_example():     return fastai.vision.open_image(         path+'George_W_Bush_0016.jpg',     )  def plots_f(rows, cols, width, height, **kwargs):     [         get_example()         .apply_tfms(             augmentations[0], **kwargs         ).show(ax=ax)         for i,ax in enumerate(             plt.subplots(                 rows,                 cols,                 figsize=(width,height)             )[1].flatten())     ] plots_f(3, 5, 15, 9, size=size)<\/code><\/pre>\n<\/div>\n<\/details>\n<h4>2. \u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0446\u0432\u0435\u0442\u0430<\/h4>\n<p>\u041c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043f\u0440\u0435\u0434\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u043d\u0430 CLAHE \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u042d\u0442\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u044f\u0440\u043a\u043e\u0441\u0442\u044c \u0438 \u0433\u0430\u043c\u043c\u0430 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0435 \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044e, \u0430 \u043f\u043e \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u044f\u043c. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u0439, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0435\u0441\u0442\u044c \u0438 \u0437\u0430\u0442\u0435\u043c\u043d\u0435\u043d\u043d\u044b\u0435 \u0443\u0447\u0430\u0441\u0442\u043a\u0438, \u0438 \u0437\u0430\u0441\u0432\u0435\u0447\u0435\u043d\u043d\u044b\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/508\/976\/a84\/508976a8477a81067807dd3f61ee121d.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0446\u0432\u0435\u0442\u0430 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445 \u0438\u0437 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0446\u0432\u0435\u0442\u0430 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445 \u0438\u0437 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\" width=\"1380\" height=\"718\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/508\/976\/a84\/508976a8477a81067807dd3f61ee121d.png\"\/><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0446\u0432\u0435\u0442\u0430 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445 \u0438\u0437 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430<\/figcaption><\/figure>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0434\u043b\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0446\u0432\u0435\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># pip freeze | grep opencv # > opencv-python==4.5.2.52  import cv2  import matplotlib.pyplot as plt from matplotlib import cm from matplotlib import colors import seaborn as sns %matplotlib inline from pylab import rcParams plt.style.use('seaborn-talk') rcParams['figure.figsize'] = 12, 6   path = 'facial_expressions\/images\/' imgs = [     'Guillermo_Coria_0021.jpg',     'Roger_Federer_0012.jpg', ] imgs = list(     map(         lambda x: path+x, imgs     ) )  clahe = cv2.createCLAHE(     clipLimit=2.0,     tileGridSize=(4, 4) )  rows_cnt = len(imgs) cols_cnt = 4 imsize = 3 fig, ax = plt.subplots(     rows_cnt, cols_cnt,     figsize=(cols_cnt*imsize, rows_cnt*imsize) )  for row_num, f in enumerate(imgs):     img = cv2.imread(f)     col_num = 0          img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)     ax[row_num, col_num].imshow(img, cmap='gray')     ax[row_num, col_num].set_title('bw', fontsize=14)     col_num += 1      img_normed = cv2.normalize(         img,         None,         alpha=0,         beta=1,         norm_type=cv2.NORM_MINMAX,         dtype=cv2.CV_32F     )     ax[row_num, col_num].imshow(img_normed, cmap='gray')     ax[row_num, col_num].set_title('bw normalize', fontsize=14)     col_num += 1          img_hist_normed = cv2.equalizeHist(img)     ax[row_num, col_num].imshow(img_hist_normed, cmap='gray')     ax[row_num, col_num].set_title('bw equalizeHist', fontsize=14)     col_num += 1          img_clahe = clahe.apply(img)     ax[row_num, col_num].imshow(img_clahe, cmap='gray')     ax[row_num, col_num].set_title('bw clahe_norm', fontsize=14)     col_num += 1          for col in ax[row_num]:         col.set_xticks([])         col.set_yticks([])  plt.show()<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u044c, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0443\u044e \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u0443\u043b\u044b\u0431\u043a\u0443 \u043e\u0442 \u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043b\u0438\u0446\u0430 \u0432 \u0441 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c 0.93 \u043f\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0435 ROC AUC. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0435\u0441\u043b\u0438 \u0432\u0437\u044f\u0442\u044c \u0438\u0437 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u043f\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u043c\u0443 \u043a\u0430\u0434\u0440\u0443 \u0441 \u0443\u043b\u044b\u0431\u043a\u043e\u0439 \u0438 \u0431\u0435\u0437, \u0442\u043e \u0441 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e 93% \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0443\u043b\u044b\u0431\u043a\u0438 \u043a\u0430\u0434\u0440\u0443 \u0441 \u0443\u043b\u044b\u0431\u0430\u044e\u0449\u0438\u043c\u0441\u044f \u043b\u0438\u0446\u043e\u043c. \u042d\u0442\u043e\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u043e\u0432. \u041d\u043e \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438: \u0434\u0430\u0436\u0435 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u044d\u043c\u043e\u0446\u0438\u044e \u043d\u0430 \u043b\u0438\u0446\u0435 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430. \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043b\u0438\u0446 \u043a\u0440\u043e\u043c\u0435 \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0439 \u0440\u0430\u0434\u043e\u0441\u0442\u0438 \u0438 \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0439 \u043f\u0435\u0447\u0430\u043b\u0438.<\/p>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0443\u043b\u044b\u0431\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043b\u044e\u0434\u044c\u043c\u0438, \u0440\u0430\u0437\u043c\u0435\u0447\u0430\u044e\u0449\u0438\u043c\u0438 \u0432\u044b\u0431\u043e\u0440\u043a\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043d\u043e\u0433\u043e\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u0438\u0435 \u043b\u0438\u0446\u0430 \u0432\u0438\u0434\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0442\u0447\u0438\u043a \u0440\u0430\u043d\u0435\u0435: \u043f\u043e\u0441\u043b\u0435 \u0441\u0435\u0440\u0438\u0438 \u043a\u0430\u0434\u0440\u043e\u0432 \u0441 \u0443\u043b\u044b\u0431\u0447\u0438\u0432\u044b\u043c\u0438 \u043b\u0438\u0446\u0430\u043c\u0438 \u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u044c \u0443\u043b\u044b\u0431\u0430\u044e\u0449\u0438\u043c\u0441\u044f \u0445\u043c\u0443\u0440\u043e\u0433\u043e \u0440\u0435\u0431\u0435\u043d\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0447\u0443\u0442\u044c \u043f\u0440\u0438\u043f\u043e\u0434\u043d\u044f\u043b \u0443\u0433\u043e\u043b\u043a\u0438 \u0433\u0443\u0431.<\/p>\n<p>\u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0437\u043c\u0435\u0447\u0430\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435, \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0442\u043e\u0436\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0438 \u0441\u043f\u043e\u0440\u044b: \u0443\u043b\u044b\u0431\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0431\u0435\u043d\u043e\u043a \u043d\u0430 \u044d\u0442\u043e\u043c \u043a\u0430\u0434\u0440\u0435 \u0438\u043b\u0438 \u043d\u0435\u0442. \u0412 \u0446\u0435\u043b\u043e\u043c \u044d\u0442\u043e \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043c\u0435\u0448\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438: \u043b\u0435\u0433\u043a\u0438\u0439 \u0448\u0443\u043c \u0432 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f \u0441 \u043f\u0435\u0440\u0435\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<h4>3. \u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043c\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0438<\/h4>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0443 \u043d\u0430\u0441 \u0431\u044b\u043b\u043e \u043e\u043a\u043e\u043b\u043e 5400 \u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u043a\u0430\u0434\u0440\u043e\u0432, \u043d\u0430\u043c \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u044c: \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u0430 \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u041c\u044b \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043b\u0438 \u043a\u0430\u0434\u0440\u044b \u043d\u0430 \u0434\u0432\u0435 \u043f\u043e\u0434\u0432\u044b\u0431\u043e\u0440\u043a\u0438: \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0434\u043b\u044f \u043e\u0446\u0435\u043d\u043a\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 (\u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f), \u0434\u0440\u0443\u0433\u0430\u044f \u2014 \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f (\u0442\u0440\u0435\u0439\u043d). \u041a\u0430\u0436\u0434\u0430\u044f \u0433\u0440\u0443\u043f\u043f\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0430 \u0438\u0437 \u043a\u0430\u0434\u0440\u043e\u0432 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0443\u0447\u0435\u043d\u0438\u043a\u0430\u043c\u0438: \u0435\u0441\u043b\u0438 \u0431\u044b \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u043b\u0438\u0446\u0430 \u043f\u043e\u043f\u0430\u043b\u0438 \u0432 \u0440\u0430\u0437\u043d\u044b\u0435 \u0432\u044b\u0431\u043e\u0440\u043a\u0438, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043e\u0446\u0435\u043d\u043a\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0431\u044b\u043b\u0438 \u0431\u044b \u0437\u0430\u0432\u044b\u0448\u0435\u043d\u044b.<\/p>\n<p>\u041c\u044b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0434\u043e\u043e\u0431\u0443\u0447\u0438\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\u0445 \u0438 \u043f\u043e\u0434\u0432\u044b\u0431\u043e\u0440\u043a\u0430\u0445 \u0440\u0430\u0437\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0438\u0437 \u0442\u0440\u0435\u0439\u043d\u0430 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435. \u041d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0441\u0442\u0435\u0442 \u043f\u043e \u043c\u0435\u0440\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043c\u0430 \u043f\u043e\u0434\u0432\u044b\u0431\u043e\u0440\u043a\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0430\u0437\u043c\u0435\u0442\u0438\u043b\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0435\u0449\u0435 3 \u0442\u044b\u0441. \u043a\u0430\u0434\u0440\u043e\u0432: \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0431\u0443\u0447\u0430\u043b\u0438 \u043d\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0438\u0437 8500 \u043a\u0430\u0434\u0440\u043e\u0432. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0438 \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0449\u0435 \u043d\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u043f\u043b\u0430\u0442\u043e, \u043d\u043e \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u044d\u0442\u043e \u043c\u044b \u043d\u0435 \u0441\u0442\u0430\u043b\u0438.<\/p>\n<p>\u0422\u0430\u043a\u043e\u0435 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435\u043c learning curve, \u0438 \u043e\u043d\u043e \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0430\u0437 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0442\u0435\u0437\u0438\u0441: \u043e\u0431\u044a\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u0441\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435 \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/729\/702\/2b8\/7297022b8be4e023da625d8d40a5616a.png\" alt=\"\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0440\u0430\u0441\u0442\u0435\u0442 \u043f\u043e \u043c\u0435\u0440\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f\" title=\"\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0440\u0430\u0441\u0442\u0435\u0442 \u043f\u043e \u043c\u0435\u0440\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f\" width=\"1800\" height=\"750\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/729\/702\/2b8\/7297022b8be4e023da625d8d40a5616a.png\"\/><figcaption>\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0440\u0430\u0441\u0442\u0435\u0442 \u043f\u043e \u043c\u0435\u0440\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f<\/figcaption><\/figure>\n<h4>4. \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 Google \u0434\u043b\u044f \u043e\u0431\u043e\u0433\u0430\u0449\u0435\u043d\u0438\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0438<\/h4>\n<p>\u041c\u044b \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438 \u0441\u043f\u0430\u0440\u0441\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0435 1000 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c \u0432 \u0434\u0443\u0445\u0435 happy, unhappy, smiling, neutral \u0438 \u0442. \u0434. \u041d\u0435 \u043e\u0436\u0438\u0434\u0430\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0445 \u0433\u043b\u0430\u0437\u0430\u043c\u0438 \u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u043d\u044f\u043b\u0438, \u0447\u0442\u043e \u043d\u0438\u043a\u0430\u043a\u0430\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u044d\u0442\u0438 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u043d\u0435 \u0441\u043f\u0430\u0441\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043e\u0442 \u044d\u0442\u043e\u0439 \u0438\u0434\u0435\u0438 \u0441\u043e\u0432\u0441\u0435\u043c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/65e\/1a7\/2fc\/65e1a72fc6a95089b9683c201242022c.PNG\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c happy \u0438 unhappy\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c happy \u0438 unhappy\" width=\"720\" height=\"278\"\/><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c happy \u0438 unhappy<\/figcaption><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0447\u0435\u0442\u044b\u0440\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u0435\u0441\u0442\u044c \u043b\u0438 \u0432 \u043a\u0430\u0434\u0440\u0435 \u043b\u0438\u0446\u043e;<\/p>\n<\/li>\n<li>\n<p>\u0441 \u043a\u0430\u043a\u043e\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u044d\u0442\u043e\u0442 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0443\u043b\u044b\u0431\u0430\u0435\u0442\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0440\u0435\u0431\u0435\u043d\u043e\u043a \u044d\u0442\u043e \u0438\u043b\u0438 \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0439;<\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u0442\u044c \u043b\u0438 \u0432 \u043a\u0430\u0434\u0440\u0435 \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0439, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043c\u044b \u043d\u0435 \u043d\u0430\u0448\u043b\u0438 \u043b\u0438\u0446\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u044b\u0435 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u043c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<h2>\u0421\u043e\u0431\u0440\u0430\u043b\u0438 \u0433\u0438\u0444\u043a\u0443<\/h2>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430 \u0432\u0438\u0434\u0435\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0438\u043b\u0438 \u0440\u0435\u0431\u0435\u043d\u043a\u0430 \u0438 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u0443\u043b\u044b\u0431\u043a\u0438 \u043d\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u043b\u0438\u0446\u0430\u0445. \u0418\u0437 \u044d\u0442\u0438\u0445 \u043a\u0430\u0434\u0440\u043e\u0432 \u043c\u044b \u0432\u044b\u0431\u0438\u0440\u0430\u043b\u0438 \u043f\u043e 9 \u043a\u0430\u0434\u0440\u043e\u0432 \u0441 \u0443\u043b\u044b\u0431\u043a\u0430\u043c\u0438 \u0440\u0435\u0431\u0435\u043d\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u0433\u0438\u0444\u043a\u0443 \u0431\u0435\u0437 \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430.<\/p>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0432\u0441\u0442\u0430\u0432\u043a\u0443 GIF \u0432 \u043f\u0438\u0441\u044c\u043c\u043e \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435 \u043f\u0438\u0441\u044c\u043c\u0430 \u0431\u044b\u043b \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0435\u0441\u0442\u044c \u043b\u0438 \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 GIF \u043f\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u0443\u0440\u043e\u043a\u0443.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/34a\/294\/2e7\/34a2942e7e6a55e47bce01e013320b34.gif\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0445 GIF \u0441 \u0443\u043b\u044b\u0431\u043a\u0430\u043c\u0438 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043b\u043b\u0435\u0433\u0438 \u0438 \u0435\u0435 \u0434\u0435\u0442\u0435\u0439\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0445 GIF \u0441 \u0443\u043b\u044b\u0431\u043a\u0430\u043c\u0438 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043b\u043b\u0435\u0433\u0438 \u0438 \u0435\u0435 \u0434\u0435\u0442\u0435\u0439\" width=\"380\" height=\"142\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/34a\/294\/2e7\/34a2942e7e6a55e47bce01e013320b34.gif\"\/><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0445 GIF \u0441 \u0443\u043b\u044b\u0431\u043a\u0430\u043c\u0438 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043b\u043b\u0435\u0433\u0438 \u0438 \u0435\u0435 \u0434\u0435\u0442\u0435\u0439<\/figcaption><\/figure>\n<h2>\u0427\u0442\u043e \u043c\u044b \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438?<\/h2>\n<p>\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u0431\u0435\u0437 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u0438\u0437\u044b \u0432 Computer Vision \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0438\u0445 \u044d\u043c\u043e\u0446\u0438\u0438 \u043f\u043e \u0432\u0438\u0434\u0435\u043e (\u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u043f\u043b\u043e\u0445\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430) \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438 \u043c\u043e\u0434\u0435\u043b\u0435\u0439.\u00a0<\/p>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u043c\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u043c \u044d\u0442\u0443 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443, \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442 \u043d\u043e\u0432\u0430\u044f \u0438\u0434\u0435\u044f \u0438\u043b\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c. \u041d\u043e \u0443\u0436\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u043e\u043f\u044b\u0442 \u0431\u044b\u043b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c, \u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0431 \u044d\u043c\u043e\u0446\u0438\u044f\u0445 \u043d\u0430 \u0443\u0440\u043e\u043a\u0430\u0445 \u0443\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0438\u0445 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432 \u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443\u0440\u043e\u043a\u0430. \u041f\u043e\u0434\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u0442\u044c \u0443\u0447\u0438\u0442\u0435\u043b\u044e \u0438\u043b\u0438 \u0443\u0447\u0435\u043d\u0438\u043a\u0443 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435.<\/p>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/aa5\/384\/a6d\/aa5384a6d0463a3b51b39dc31123276a.png\" alt=\"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0434\u0438\u0441\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c \u0443\u0440\u043e\u043a\u0435 \u0431\u044b\u043b \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0434\u0438\u0441\u043a\u043e\u043d\u043d\u0435\u043a\u0442 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0443\u0447\u0435\u043d\u0438\u043a\u0430\" title=\"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0434\u0438\u0441\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c \u0443\u0440\u043e\u043a\u0435 \u0431\u044b\u043b \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0434\u0438\u0441\u043a\u043e\u043d\u043d\u0435\u043a\u0442 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0443\u0447\u0435\u043d\u0438\u043a\u0430\" width=\"2268\" height=\"1664\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aa5\/384\/a6d\/aa5384a6d0463a3b51b39dc31123276a.png\"\/><figcaption>\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0434\u0438\u0441\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c \u0443\u0440\u043e\u043a\u0435 \u0431\u044b\u043b \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0434\u0438\u0441\u043a\u043e\u043d\u043d\u0435\u043a\u0442 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0443\u0447\u0435\u043d\u0438\u043a\u0430<\/figcaption><\/figure>\n<p>\u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 \u0442\u0440\u0435\u043a\u0438\u043d\u0433 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0443\u0447\u0435\u043d\u0438\u043a\u0430 \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0443\u0440\u043e\u043a\u0430. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0445\u043e\u0434 \u0437\u0430\u043d\u044f\u0442\u0438\u044f \u0438 \u043f\u043e\u043d\u044f\u0442\u044c, \u043d\u0443\u0436\u043d\u043e \u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0435\u0433\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435.<\/p>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/404\/531\/570\/4045315704bd8663e237dd08a8c3de7c.png\" width=\"1600\" height=\"459\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/404\/531\/570\/4045315704bd8663e237dd08a8c3de7c.png\"\/><figcaption><\/figcaption><\/figure>\n<h2>\u0412\u0438\u0434\u0436\u0435\u0442\u044b<\/h2>\n<p>\u0412\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u044b \u0440\u0430\u0437\u043c\u0435\u0447\u0430\u043b\u0438 \u0441\u0430\u043c\u0438 \u0438 \u0434\u0435\u043b\u0430\u043b\u0438 \u044d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e (\u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 100 \u043a\u0430\u0434\u0440\u043e\u0432 \u0432 \u043c\u0438\u043d\u0443\u0442\u0443). \u0412 \u044d\u0442\u043e\u043c \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0433\u0430\u043b\u0438 \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u044b\u0435 \u0432\u0438\u0434\u0436\u0435\u0442\u044b:<\/p>\n<ol>\n<li>\n<p>\u0412\u0438\u0434\u0436\u0435\u0442 \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043a\u0430\u0434\u0440\u043e\u0432 \u0441 \u0443\u043b\u044b\u0431\u043a\u0430\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0438\u0434\u0436\u0435\u0442 \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043a\u0430\u0434\u0440\u043e\u0432 \u0441 \u0434\u0435\u0442\u044c\u043c\u0438 \u0438 \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0438\u0434\u0436\u0435\u0442 \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043a\u0430\u0434\u0440\u043e\u0432 \u0441 \u00ab\u200e\u043f\u043b\u0435\u0447\u043e\u043c\u00bb\u200e \u0438\u043b\u0438 \u00ab\u200e\u043b\u043e\u043a\u0442\u0435\u043c\u00bb\u200e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f.<\/p>\n<\/li>\n<\/ol>\n<p>\u041c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043a\u043e\u0434\u043e\u043c \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0438\u0434\u0436\u0435\u0442\u0430 \u043a\u0430\u043a \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u043d\u043e\u0433\u043e. \u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0432\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432 \u043d\u0435\u043c \u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u043d. \u041d\u043e \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434 \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438, \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0447\u0435\u0440\u043f\u043d\u0443\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435.<\/p>\n<p>\u042d\u0442\u043e\u0442 \u0432\u0438\u0434\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0442\u0430\u0439\u043c\u043b\u0430\u0439\u043d \u0432\u0441\u0435\u0433\u043e \u0443\u0440\u043e\u043a\u0430 \u0441 \u043a\u0430\u0434\u0440\u0430\u043c\u0438 \u043d\u0430 \u0440\u0430\u0432\u043d\u044b\u0445 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u0445. \u041f\u043e \u044d\u0442\u0438\u043c \u043a\u0430\u0434\u0440\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0438 \u0432\u0438\u0434\u0435\u043e \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043b\u0438\u0446\u0430 \u0441 \u044d\u0442\u0438\u0445 \u043a\u0430\u0434\u0440\u043e\u0432 \u0432 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443.<\/p>\n<p>\u0412\u044b\u0431\u0440\u0430\u0432 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0432\u0438\u0434\u0435\u043e, \u0433\u0434\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0447\u0435\u043d\u0438\u043a \u0438\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0447\u0430\u0442\u044c \u043b\u0438\u0446\u0430 \u0446\u0435\u043b\u044b\u043c\u0438 \u0434\u0435\u0441\u044f\u0442\u043a\u0430\u043c\u0438 \u0432 \u043e\u0434\u0438\u043d \u043a\u043b\u0438\u043a. \u041a\u043e\u0433\u0434\u0430 \u0432 \u043a\u0430\u0434\u0440\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0439 \u0438 \u0440\u0435\u0431\u0435\u043d\u043e\u043a, \u0432 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043e\u0431\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c. \u041e\u043d\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u043b\u0438\u0446\u0430 \u043f\u043e \u00ab\u200e\u0432\u0437\u0440\u043e\u0441\u043b\u043e\u0441\u0442\u0438\u00bb\u200e \u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043a\u0438. \u041e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445.<\/p>\n<details class=\"spoiler\">\n<summary>\u0412\u0438\u0434\u0435\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0434\u0436\u0435\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e6b\/95d\/d30\/e6b95dd30382f14d82e3334a0d3257c8.gif\" width=\"1152\" height=\"1232\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e6b\/95d\/d30\/e6b95dd30382f14d82e3334a0d3257c8.gif\"\/><figcaption><\/figcaption><\/figure>\n<\/div>\n<\/details>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u044f, \u043a\u0430\u043a\u0438\u0435 \u043b\u0438\u0446\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u0443 \u043c\u043e\u0434\u0435\u043b\u0438 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0435\u043d\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0447\u043a\u043e\u0432 \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u043d\u0430\u0447\u0430\u043b\u0443 \u0441\u0447\u0438\u0442\u0430\u043b\u0430 \u044f\u0432\u043d\u044b\u043c \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u043c \u0432\u0437\u0440\u043e\u0441\u043b\u043e\u0433\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u043a\u0430\u0434\u0440\u044b \u0441 \u0434\u0435\u0442\u044c\u043c\u0438 \u0432 \u043e\u0447\u043a\u0430\u0445, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435.\u00a0<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0432\u0438\u0434\u0436\u0435\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import pandas as pd import numpy as np import datetime import random import os import ipywidgets as widgets from IPython.display import display from pathlib import Path   class BulkLabeler():     def __init__(self, frames_path, annotations_path,                  labels = ['0', '1'],                  predict_fn = None,                  frame_width=120,                  num_frames = 27,                  face_width = 120,                  num_faces = 27,                  myname = '?',                  ):         self.predict_fn = predict_fn         self.labels = labels         self.frames_path = frames_path         self.frame_width = frame_width         self.num_frames = num_frames         self.face_width = face_width         self.num_faces = num_faces         self.myname = myname         self.faces_batch = []                  # get annotations         self.annotations_path = annotations_path         processed_videos = []         if annotations_path.exists():             annotations = pd.read_csv(annotations_path)             processed_videos = annotations.file.str.split('\/').str[-3].unique()         else:             with open(self.annotations_path, 'w') as f:                 f.write('file,label,by,created_at\\n')                  # get list of videos         self.video_ids = [x for x in os.listdir(frames_path)                            if x not in processed_videos]         random.shuffle(self.video_ids)         self.video_ind = -1                  self._make_video_widgets_row()         self._make_frames_row()         self._make_range_slider()         self._make_buttons_row()         self._make_faces_row()         self._make_video_stats_row()                  display(widgets.VBox([self.w_video_row,                               self.w_frames_row,                               self.w_slider_row,                               self.w_buttons_row,                               self.w_faces_row,                               self.w_faces_label,                               self.w_video_stats]))         self._on_next_video_click(0)              ### Video name and next video button          def _make_video_widgets_row(self):         # widgets for current video name and \"Next video\" button         self.w_current_video = widgets.Text(             value='',             description='Current video:',             disabled=False,             layout = widgets.Layout(width='500px')             )                  self.w_next_video_button = widgets.Button(             description='Next video',             button_style='info', # 'success', 'info', 'warning', 'danger' or ''             tooltip='Go to the next video',             icon='right-arrow'         )                  self.w_video_row = widgets.HBox([self.w_current_video, self.w_next_video_button])                  self.w_current_video.observe(self._on_video_change, names='value')         self.w_next_video_button.on_click(self._on_next_video_click)                           def _on_next_video_click(self, _):         while True:             self.video_ind += 1             current_video = self.video_ids[self.video_ind]             if next(os.scandir(self.frames_path\/current_video\/'student_faces'), None) is not None:                 break         self.w_current_video.value = current_video                       def _on_video_change(self, change):         self.video_id = change['new']         self.frame_nums_all = sorted(int(f.replace('.jpg',''))                                       for f in os.listdir(self.frames_path\/self.video_id\/'student_src'))         start, stop = min(self.frame_nums_all), max(self.frame_nums_all)         self.w_range_slider.min = start         self.w_range_slider.max = stop         step = self.frame_nums_all[1] - self.frame_nums_all[0] if len(self.frame_nums_all)>1 else 1         self.w_range_start.step = step         self.w_range_stop.step = step         # change to slider value will cause frames to be redrawn         self.w_range_slider.value = [start, stop]                # reset faces         self.faces_df = None         self._reset_faces_row()         self.w_video_stats.value = f'Video {self.video_id}  no annotations yet.'                   def _close_video_widgets_row(self):         self.w_current_video.close()         self.w_next_video_button.close()         self.w_video_row.close()          ### Video frames box          def _make_frames_row(self):         frame_boxes = []         self.w_back_buttons = {}         self.w_forward_buttons = {}         for i in range(self.num_frames):             back_button = widgets.Button(description='&lt;',layout=widgets.Layout(width='20px',height='20px'))             self.w_back_buttons[back_button] = i             back_button.on_click(self._on_frames_back_click)             label = widgets.Label(str(i+1), layout = widgets.Layout(width=f'{self.frame_width-50}px'))             forward_button = widgets.Button(description='>',layout=widgets.Layout(width='20px',height='20px'))             self.w_forward_buttons[forward_button] = i             forward_button.on_click(self._on_frames_forward_click)             image = widgets.Image(width=f'{self.frame_width}px')             frame_boxes.append(widgets.VBox([widgets.HBox([back_button, label, forward_button]),                                               image]))                      self.w_frames_row = widgets.GridBox(frame_boxes,                                              layout = widgets.Layout(width='100%',                                                                      display='flex',                                                                      flex_flow='row wrap'))               def _on_frames_back_click(self, button):         frame_ind = self.w_back_buttons[button]         frame = int(self.w_frames_row.children[frame_ind].children[0].children[1].value)         start, stop = self.w_range_slider.value         self.w_range_slider.value = [frame, stop]               def _on_frames_forward_click(self, button):         frame_ind = self.w_forward_buttons[button]         frame = int(self.w_frames_row.children[frame_ind].children[0].children[1].value)         start, stop = self.w_range_slider.value         self.w_range_slider.value = [start, frame]              def _close_frames_row(self):         for box in self.w_frames_row.children:             label_row, image = box.children             back, label, forward = label_row.children             image.close()             back.close()             label.close()             forward.close()             box.close()         self.w_frames_row.close()                       ### Frames range slider                          def _make_range_slider(self):         self.w_range_start = widgets.BoundedIntText(                                         value=0,                                         min=0,                                         max=30000,                                         step=1,                                         description='Frames from:',                                         disabled=False,                                         layout = widgets.Layout(width='240px')                                     )         self.w_range_stop = widgets.BoundedIntText(                                         value=30000,                                         min=0,                                         max=30000,                                         step=1,                                         description='to:',                                         disabled=False,                                         layout = widgets.Layout(width='240px')                                     )         self.w_range_slider = widgets.IntRangeSlider(             value=[0, 30000],             min=0,             max=30000,             step=1,             description='',             disabled=False,             continuous_update=False,             orientation='horizontal',             readout=True,             readout_format='d',             layout=widgets.Layout(width='500px')         )         self.w_range_flip = widgets.Button(description='Flip range',             button_style='', # 'success', 'info', 'warning', 'danger' or ''             tooltip='Invert frames selection',             layout = widgets.Layout(width=f'{self.frame_width}px'),             icon='retweet'                                           )                  self.w_range_slider.observe(self._on_slider_change, names='value')         self.w_range_start.observe(self._on_range_start_change, names='value')         self.w_range_stop.observe(self._on_range_stop_change, names='value')         self.w_range_flip.on_click(self._on_range_flip)         self.w_slider_row = widgets.HBox([self.w_range_start,                                           self.w_range_slider,                                           self.w_range_stop,                                           self.w_range_flip])          def _close_range_slider(self):         self.w_range_start.close()         self.w_range_stop.close()         self.w_range_slider.close()         self.w_range_flip.close()         self.w_slider_row.close()               def _on_range_flip(self, _):         start, stop = self.w_range_slider.value         left, right = self.w_range_slider.min, self.w_range_slider.max         if start==left and right==stop:             pass         elif start - left > right - stop:             self.w_range_slider.value=[left, start]         else:             self.w_range_slider.value=[stop, right]                                                       def _on_range_start_change(self, change):         new_start = change['new']         start, stop = self.w_range_slider.value         self.w_range_slider.value = [new_start, stop]                       def _on_range_stop_change(self, change):         new_stop = change['new']         start, stop = self.w_range_slider.value         self.w_range_slider.value = [start, new_stop]                       def _on_slider_change(self, change):         start, stop = change['new']         # update text controls         self.w_range_start.max = stop         self.w_range_start.value = start         self.w_range_stop.min = start         self.w_range_stop.max = self.w_range_slider.max         self.w_range_stop.value = stop         # show frames that fit current selection         frame_nums = [i for i in self.frame_nums_all if i>=start and i&lt;=stop]         N = len(frame_nums)         n = self.num_frames         inds = [int(((N-1)\/(n-1))*i) for i in range(n)]          # load new images into image widgets         for ind, box in zip(inds, self.w_frames_row.children):             frame_num = frame_nums[ind]             filename = self.frames_path\/self.video_id\/'student_src'\/f'{frame_num}.jpg'             with open(filename, \"rb\") as image:                 f = image.read()             label, image = box.children             label.children[1].value = str(frame_num)             image.value = f              ### Buttons row          def _make_buttons_row(self):         labels = list(self.labels)         if self.predict_fn is not None:             labels.append('model')         self.w_default_label = widgets.ToggleButtons(options=labels,                                                       value=self.labels[0],                                                       description='Default label:')                  self.w_next_batch_button = widgets.Button(description='New batch',             button_style='info', # 'success', 'info', 'warning', 'danger' or ''             tooltip='Show next batch of faces from current frame range',             icon='arrow-right'         )         self.w_save_button = widgets.Button(description='Save labels',             button_style='success', # 'success', 'info', 'warning', 'danger' or ''             tooltip='Save current labels',             icon='check'         )         self.w_buttons_row = widgets.HBox([self.w_default_label, self.w_next_batch_button, self.w_save_button])         self.w_next_batch_button.on_click(self._on_next_batch_click)         self.w_save_button.on_click(self._on_save_labels_click)                   def _close_buttons_row(self):         self.w_default_label.close()         self.w_next_batch_button.close()         self.w_save_button.close()         self.w_buttons_row.close()                   def _on_next_batch_click(self, _):         if self.faces_df is None:              self._create_faces_df()         # select a sample from faces_df         start, stop = self.w_range_slider.value         subdf = self.faces_df.loc[lambda df: df.frame_num.ge(start)&amp;                                              df.frame_num.le(stop)&amp;                                              df.label.eq('')]         num_faces = min(len(subdf), self.num_faces)                  if num_faces == 0:             self.faces_batch = []             self.w_faces_label.value = 'No more unlabeled images in this frames range'             self.w_faces_label.layout.visibility = 'visible'             for box in self.w_faces_row.children:                 box.layout.visibility = 'hidden'         else:             self.w_faces_label.layout.visibility = 'hidden'             self.faces_batch = subdf.sample(num_faces).index             # if we have a model then we use it to sort images             if self.predict_fn is not None:                 probs, labels = self._predict()                 # sort faces according to probability                 ind = sorted(range(len(probs)), key=probs.__getitem__)                 self.faces_batch = [self.faces_batch[i] for i in ind]                 labels = [labels[i] for i in ind]             # create labels for each face             if self.w_default_label.value != 'model':                 labels = [self.w_default_label.value]*len(self.faces_batch)             # update faces UI             for facefile, label, box in zip(self.faces_batch, labels, self.w_faces_row.children):                 image, buttons = box.children                 with open(self.frames_path\/facefile, \"rb\") as im:                     image.value = im.read()                 buttons.value = label                 box.layout.visibility = 'visible'             if len(self.faces_batch) &lt; len(self.w_faces_row.children):                 for box in self.w_faces_row.children[len(self.faces_batch):]:                     box.layout.visibility = 'hidden'          def _predict(self):         probs = []         labels = []         for facefile in self.faces_batch:             prob, label = self.predict_fn(self.frames_path\/facefile)             probs.append(prob)             labels.append(label)         self.faces_df.loc[self.faces_batch, 'prob'] = probs         return probs, labels                       def _on_save_labels_click(self, _):         self.w_save_button.description='Saving...'                          with open(self.annotations_path, 'a') as f:             for file, box in zip(self.faces_batch, self.w_faces_row.children):                 label = box.children[1].value                 self.faces_df.at[file,'label'] = label                 print(file, label, self.myname, str(datetime.datetime.now()),sep=',', file=f)                  # update current video statistics         stats = self.faces_df.loc[self.faces_df.label.ne(''),'label'].value_counts().sort_index()         stats_str = ', '.join(f'{label}: {count}' for label, count in stats.items())         self.w_video_stats.value = f'Video {self.video_id}  {stats_str}.'                  self.w_save_button.description = 'Save labels'         # ask for next batch         self._on_next_batch_click(0)              ### Faces row          def _make_faces_row(self):         face_boxes = []         for i in range(self.num_faces):             image = widgets.Image(width=f'{self.face_width}px')             n = len(self.labels)             toggle_buttons_width = int(((self.face_width-5*(n-1))\/n))             toggle_buttons = widgets.ToggleButtons(options=self.labels,                                                     value=self.w_default_label.value,                                                     style=widgets.ToggleButtonsStyle(button_width=f'{toggle_buttons_width}px'))             face_boxes.append(widgets.VBox([image, toggle_buttons]))                      self.w_faces_row = widgets.GridBox(face_boxes,                                             layout = widgets.Layout(width='100%',                                                                     display='flex',                                                                     flex_flow='row wrap'))         self.w_faces_label = widgets.Label()         self._reset_faces_row()               def _close_faces_row(self):         for box in self.w_faces_row.children:             image, buttons = box.children             for w in [image, buttons, box]:                 w.close()         self.w_faces_row.close()         self.w_faces_label.close()               def _reset_faces_row(self):         for box in self.w_faces_row.children:             box.layout.visibility = 'hidden'         self.w_faces_label.layout.visibility = 'visible'         self.w_faces_label.value = 'Press \"New batch\" button to see a new batch of faces'         self.faces_batch = []               ### Video statistics row          def _make_video_stats_row(self):         self.w_video_stats = widgets.Label('No video currently selected')           def _close_video_stats_row(self):         self.w_video_stats.close()                   def _create_faces_df(self):         folder = Path(self.video_id,'student_faces')         df = pd.DataFrame({'file':[folder\/f for f in os.listdir(self.frames_path\/folder)]})         df['frame_num'] = df.file.apply(lambda x: int(x.stem.split('_')[0]))         df['label'] = '' #TODO maybe existing annotations?         df['prob'] = np.nan         df = df.sort_values(by='frame_num').set_index('file')         self.faces_df = df                       def close(self):         self._close_video_widgets_row()         self._close_frames_row()         self._close_range_slider()         self._close_buttons_row()         self._close_faces_row()         self._close_video_stats_row() <\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/563010\/\"> https:\/\/habr.com\/ru\/articles\/563010\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0414\u0435\u043d\u0438\u0441 \u0412\u043b\u0430\u0441\u043e\u0432, \u044f Data Scientist \u0432 \u0423\u0447\u0438.\u0440\u0443. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043e\u043d\u043b\u0430\u0439\u043d-\u0443\u0440\u043e\u043a\u043e\u0432 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0433\u0438\u0444\u043a\u0438 \u2014 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043a\u0430\u0434\u0440\u043e\u0432 \u0441 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u044f\u0440\u043a\u0438\u043c\u0438 \u044d\u043c\u043e\u0446\u0438\u044f\u043c\u0438 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432. \u042d\u0442\u0438 \u0433\u0438\u0444\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0438\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0438 \u0432 e-mail-\u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0435. \u0412\u043c\u0435\u0441\u0442\u0435 \u0441 Data Scientist <a href=\"https:\/\/habr.com\/ru\/users\/DariaV\/\">@DariaV<\/a> \u0414\u0430\u0448\u0435\u0439 \u0412\u0430\u0441\u044e\u043a\u043e\u0432\u043e\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0431\u0435\u0437 \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u0438\u0437\u044b \u0432 Computer Vision, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0441\u0434\u0435\u043b\u0430\u0442\u044c MVP, \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043b\u0435\u0436\u0430\u0442 low-res \u0432\u0438\u0434\u0435\u043e. \u0412 \u043a\u043e\u043d\u0446\u0435 \u0431\u043e\u043d\u0443\u0441 \u2014 \u0432\u0438\u0434\u0436\u0435\u0442 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043a\u0430\u0434\u0440\u043e\u0432.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0442\u043a\u0443\u0434\u0430 \u0443 \u043d\u0430\u0441 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043c\u044b\u0441\u043b\u044c \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u044d\u043c\u043e\u0446\u0438\u0438? \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u0432 \u0423\u0447\u0438.\u0440\u0443 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c \u043e\u043d\u043b\u0430\u0439\u043d-\u0448\u043a\u043e\u043b\u0443 \u0423\u0447\u0438.\u0414\u043e\u043c\u0430 \u2014 \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u0438\u0434\u0435\u043e-\u0443\u0440\u043e\u043a\u043e\u0432 \u0434\u043b\u044f \u0448\u043a\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432. \u041d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u0430\u043a\u043e\u0439 \u0443\u0440\u043e\u043a \u2014 \u044d\u0442\u043e \u0447\u0438\u0441\u0442\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0438\u0434\u0435\u044f \u00ab\u200e\u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u0442\u044c\u00bb\u200e \u043a \u043d\u0435\u043c\u0443 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438. \u0422\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043a\u043e\u043d\u0432\u0435\u0440\u0441\u0438\u044e, \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0443\u0440\u043e\u043a\u043e\u0432, \u0437\u0430\u043c\u0435\u0440\u0438\u0442\u044c \u0432\u043e\u0432\u043b\u0435\u0447\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441, \u043a\u0430\u043a \u0438 \u0443 \u043d\u0430\u0441, \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0430 RealTime \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u044d\u043c\u043e\u0446\u0438\u0439, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0439\u0442\u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c: \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0443\u0440\u043e\u043a\u043e\u0432.<\/p>\n<h2>\u041c\u0430\u0440\u043a\u0435\u0440\u044b \u043d\u0430\u0447\u0430\u043b\u0430 \u0438 \u043a\u043e\u043d\u0446\u0430 \u0443\u0440\u043e\u043a\u0430<\/h2>\n<p>\u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u043a\u0430\u043c\u0435\u0440\u044b \u0443\u0447\u0435\u043d\u0438\u043a\u0430 \u043d\u0435 \u0440\u0430\u0432\u043d\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0434\u043b\u0438\u043d\u0435 \u0443\u0440\u043e\u043a\u0430. \u0423\u0447\u0435\u043d\u0438\u043a\u0438 \u0447\u0430\u0441\u0442\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0441 \u043e\u043f\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c, \u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0443\u0440\u043e\u043a\u0430 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u0438\u0441\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u044b \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0443\u0440\u043e\u043a\u043e\u043c.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0441\u043e\u043e\u0442\u043d\u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u043a\u0430\u043c\u0435\u0440 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432 \u0438 \u0443\u0447\u0438\u0442\u0435\u043b\u0435\u0439. \u0423\u0447\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0432\u0438\u0434\u0435\u043e \u043f\u043e\u043c\u043e\u0433\u043b\u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043f\u0435\u0440\u0438\u043e\u0434 \u0443\u0440\u043e\u043a\u0430: \u043e\u043d \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043e\u0431\u0435 \u043a\u0430\u043c\u0435\u0440\u044b \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e, \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0432\u0441\u0435\u043c.<\/p>\n<h2>\u0420\u0430\u0437\u0431\u0438\u043b\u0438 \u0432\u0438\u0434\u0435\u043e \u043d\u0430 \u043a\u0430\u0434\u0440\u044b<\/h2>\n<p>\u0414\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043d\u0430\u0440\u0435\u0437\u0430\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u043e\u0442\u0440\u0435\u0437\u043a\u0438 \u0432\u0438\u0434\u0435\u043e \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438. \u041d\u0430\u043c \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443: \u0435\u0441\u043b\u0438 \u0440\u0435\u0431\u0435\u043d\u043e\u043a \u043f\u0440\u043e\u044f\u0432\u0438\u043b \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u044d\u043c\u043e\u0446\u0438\u044e, \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043b\u0438\u0446\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434. \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0433\u0440\u0430\u043d\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043b\u0430 \u0431\u044b \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443, \u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0435 \u043f\u043e\u0432\u043b\u0438\u044f\u043b\u0430 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<h2>\u041d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0435\u0442\u0441\u043a\u0438\u0435 \u0443\u043b\u044b\u0431\u043a\u0438 (\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e)<\/h2>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u0434\u0440\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u043b\u0438\u0446\u043e. \u0415\u0441\u043b\u0438 \u043e\u043d\u043e \u0442\u0430\u043c \u0435\u0441\u0442\u044c, \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u044d\u0442\u043e \u0438\u043b\u0438 \u0443\u0447\u0435\u043d\u0438\u043a, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u044d\u043c\u043e\u0446\u0438\u0438 \u043d\u0430 \u043b\u0438\u0446\u0435. \u0418 \u0442\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u044e\u0430\u043d\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c.<\/p>\n<h3>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 1. \u0420\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u043b\u0438\u0446\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u0445 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u043b\u043e\u0436\u043d\u0435\u0435<\/h3>\n<p>\u0412\u0438\u0434\u0435\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0447\u0430\u0441\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0434\u0430\u0436\u0435 \u0431\u0435\u0437 \u0443\u0447\u0435\u0442\u0430 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u0438 \u0432\u0438\u0434\u0435\u043e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0447\u0435\u043d\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0432 \u0442\u0435\u043c\u043d\u043e\u0439 \u043a\u043e\u043c\u043d\u0430\u0442\u0435, \u0432 \u043a\u0430\u0434\u0440\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u0430\u044f \u043b\u0430\u043c\u043f\u0430 \u0438\u043b\u0438 \u043b\u044e\u0441\u0442\u0440\u0430, \u0437\u0430 \u0441\u043f\u0438\u043d\u043e\u0439 \u0443\u0447\u0435\u043d\u0438\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u044f\u0440\u043a\u043e\u0435 \u043e\u043a\u043d\u043e, \u043b\u0438\u0446\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432 \u043a\u0430\u0434\u0440\u0435 \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e.<\/p>\n<p>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440 DNN Face Detector \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 OpenCV, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0437\u044f\u043b\u0438 \u0437\u0430 \u043e\u0441\u043d\u043e\u0432\u0443, \u043d\u0430 \u043d\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u0432\u0430\u043b \u043d\u0435\u0442\u043e\u0447\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043a\u0430\u0434\u0440\u0430\u043c\u0438 \u0438\u0437 \u0432\u0438\u0434\u0435\u043e\u0447\u0430\u0442\u043e\u0432: \u0438\u043d\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043b\u0438\u0446\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043d\u043e \u0435\u0441\u0442\u044c \u0432 \u043a\u0430\u0434\u0440\u0435, \u0438\u0437 \u0434\u0432\u0443\u0445 \u043b\u0438\u0446 \u043d\u0430\u0445\u043e\u0434\u0438\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u0438\u043b\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u043b \u043b\u0438\u0446\u0430 \u0442\u0430\u043c, \u0433\u0434\u0435 \u0438\u0445 \u043d\u0435\u0442.<\/p>\n<figure class=\"full-width\"><figcaption>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440 DNN Face Detector \u043c\u043e\u0433 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u0430\u043a \u043b\u0438\u0446\u043e \u0443\u0437\u043e\u0440 \u043d\u0430 \u0437\u0430\u043d\u0430\u0432\u0435\u0441\u043a\u0435, \u0438\u0433\u0440\u0443\u0448\u0435\u0447\u043d\u043e\u0433\u043e \u043c\u0435\u0434\u0432\u0435\u0434\u044f \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0438\u0437 \u043a\u0430\u0440\u0442\u0438\u043d \u043d\u0430 \u0441\u0442\u0435\u043d\u0435 \u0438 \u0441\u0442\u0443\u043b\u0430<\/figcaption><\/figure>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0443\u0447\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u0437\u044f\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e RetinaNet-\u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430 PyTorch. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0430\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u0430 \u0438 \u0443\u0431\u0435\u0434\u0438\u043b\u0438\u0441\u044c, \u0447\u0442\u043e \u043d\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u0447\u0438\u0442\u0441\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043b\u0438\u0446\u0430. \u0417\u0430\u0442\u0435\u043c \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0443\u044e \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0432\u044b\u0431\u043e\u0440\u043a\u0443, \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044f \u0438 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043d\u043e\u0432\u044b\u0445 \u043a\u0430\u0434\u0440\u0430\u0445: \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u043e\u0442\u043c\u0435\u0447\u0430\u0442\u044c \u043b\u0438\u0446\u0430 \u043d\u0430 \u043a\u0430\u0434\u0440\u0435 \u0441 \u043d\u0443\u043b\u044f.<\/p>\n<p>\u0420\u0430\u0437\u043c\u0435\u0447\u0430\u043b\u0438 \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e: \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0439 \u043f\u043e\u0440\u0446\u0438\u0438 \u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u043a\u0430\u0434\u0440\u043e\u0432 \u043c\u044b \u0437\u0430\u043d\u043e\u0432\u043e \u043e\u0431\u0443\u0447\u0430\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u044c. \u0410 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443 \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u043a\u0430\u0434\u0440\u043e\u0432, \u043d\u0430\u0440\u0430\u0449\u0438\u0432\u0430\u044f \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0443\u044e \u0432\u044b\u0431\u043e\u0440\u043a\u0443. \u0412\u0441\u0435\u0433\u043e \u043c\u044b \u0440\u0430\u0437\u043c\u0435\u0442\u0438\u043b\u0438 2624 \u043a\u0430\u0434\u0440\u0430 \u0438\u0437 388 \u0432\u0438\u0434\u0435\u043e\u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u0441\u0443\u043c\u043c\u0435 \u0431\u044b\u043b\u043e 3325 \u043b\u0438\u0446.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0431\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432 \u043d\u0430\u0448\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440. \u0412 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0438\u0437 140 \u043a\u0430\u0434\u0440\u043e\u0432 \u0441\u0442\u0430\u0440\u044b\u0439 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u0448\u0435\u043b 150 \u043b\u0438\u0446, \u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b 38. \u041d\u043e\u0432\u044b\u0439 \u0436\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b \u0442\u043e\u043b\u044c\u043a\u043e 5, \u0430 183 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0432\u0435\u0440\u043d\u043e.<\/p>\n<h3>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 2. \u0412 \u043a\u0430\u0434\u0440\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0431\u0435\u043d\u043e\u043a<\/h3>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e-\u0443\u0440\u043e\u043a\u0430\u0445 \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0442\u0438, \u043d\u043e \u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0438, \u0432\u0430\u0436\u043d\u043e \u043d\u0430\u0443\u0447\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c \u043e\u0434\u043d\u0438\u0445 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0434\u0430\u0435\u0442 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u043d\u0430 \u0433\u0438\u0444\u043a\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0443\u0432\u0438\u0434\u0438\u0442 \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u0435\u0431\u0435\u043d\u043a\u0430, \u0430 \u043d\u0435 \u0441\u0435\u0431\u044f. \u0422\u0430\u043a\u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u043d\u0430 \u0443\u0440\u043e\u043a\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438.<\/p>\n<p>\u041c\u044b \u043e\u0431\u0443\u0447\u0438\u043b\u0438 \u0434\u0432\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0443\u0436\u043d\u044b\u0445 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u044b \u0440\u0430\u0437\u043c\u0435\u0442\u0438\u043b\u0438 \u0441\u0430\u043c\u0438.<\/p>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c, \u043a\u043e\u043c\u0443 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043b\u0438\u0446\u043e \u0432 \u043a\u0430\u0434\u0440\u0435: \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044e \u0438\u043b\u0438 \u0443\u0447\u0435\u043d\u0438\u043a\u0443. \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0441 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u043e\u0439 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0432\u0435\u0434\u044c \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u0432\u0437\u0440\u043e\u0441\u043b\u043e\u0433\u043e \u043e\u0442 \u0440\u0435\u0431\u0435\u043d\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u043e. \u042d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u0430\u043a, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0446\u0435\u043b\u043e\u0435 \u0432\u0438\u0434\u0435\u043e. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u0441 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043a\u0430\u0434\u0440\u0430\u043c\u0438, \u0442\u043e \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e:<\/p>\n<ul>\n<li>\n<p>\u0432\u043e\u0437\u0440\u0430\u0441\u0442 \u043b\u044e\u0434\u0435\u0439 \u043d\u0430 \u043a\u0430\u0434\u0440\u0435 \u0441 \u043d\u0438\u0437\u043a\u0438\u043c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c;<\/p>\n<\/li>\n<li>\n<p>\u0434\u0435\u0442\u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 \u043a\u0430\u0434\u0440\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0435\u0441\u044c \u0443\u0440\u043e\u043a, \u0430 \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0435 \u2014 \u043c\u0438\u043d\u0443\u0442\u044b.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043c\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0430 \u0443\u0440\u043e\u043a\u0435 \u00ab\u200e\u043f\u043b\u0435\u0447\u043e\u043c\u00bb\u200e \u0438\u043b\u0438 \u00ab\u200e\u043b\u043e\u043a\u0442\u0435\u043c\u00bb\u200e. \u0422\u0430\u043a \u043c\u044b \u043d\u0430\u0437\u0432\u0430\u043b\u0438 \u0442\u0438\u043f \u043a\u0430\u0434\u0440\u043e\u0432, \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u043c\u0435\u0440\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u0443\u0447\u0435\u043d\u0438\u043a\u0430, \u043d\u043e \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0440\u044f\u0434\u043e\u043c \u0441\u0438\u0434\u0438\u0442 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c. \u041e\u0431\u044b\u0447\u043d\u043e \u043d\u0430 \u0442\u0430\u043a\u0438\u0445 \u0443\u0440\u043e\u043a\u0430\u0445 \u0432\u0438\u0434\u043d\u043e \u043f\u043b\u0435\u0447\u043e \u0441\u0438\u0434\u044f\u0449\u0435\u0433\u043e \u0440\u044f\u0434\u043e\u043c \u0432\u0437\u0440\u043e\u0441\u043b\u043e\u0433\u043e \u0438\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u043e\u043a\u043e\u0442\u044c.<\/p>\n<figure class=\"full-width\"><figcaption>\u041d\u0430 \u0432\u0441\u0435\u0445 \u0442\u0440\u0435\u0445 \u043a\u0430\u0434\u0440\u0430\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u043d\u043e \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c\u0443 \u043a\u0430\u0434\u0440\u0443 \u043d\u0430\u0439\u0442\u0438 \u0435\u0433\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e<\/figcaption><\/figure>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u0438\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u043b\u0435\u0447\u0438. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440 \u043b\u0438\u0446 \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0434\u043e \u043e\u0431\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043a\u0430\u0434\u0440\u0430\u0445 \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0442\u0430\u043a\u0438\u0445 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u043e\u0432 \u043c\u044b \u043d\u0435 \u043d\u0430\u0448\u043b\u0438 \u0432 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u0438 \u0440\u0430\u0437\u043c\u0435\u0442\u0438\u043b\u0438 \u043e\u043a\u043e\u043b\u043e 250 000 \u043a\u0430\u0434\u0440\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u00ab\u200e\u0447\u0430\u0441\u0442\u044c\u00bb\u200e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f, \u0438 \u043a\u0430\u0434\u0440\u044b \u0431\u0435\u0437 \u043d\u0438\u0445. \u0420\u0430\u0437\u043c\u0435\u0442\u043a\u0438 \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0447\u0430\u0442\u044c \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043b\u0435\u0433\u0447\u0435: \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u0430\u0434\u0440\u044b, \u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0438 \u0432\u0438\u0434\u0435\u043e \u0438 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0438\u043a\u043e\u0432 \u043e\u0442\u043c\u0435\u0447\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e \u0432\u043e\u0442 \u044d\u0442\u0438 15 \u043c\u0438\u043d\u0443\u0442 (900 \u043a\u0430\u0434\u0440\u043e\u0432!) \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b.<\/p>\n<p>\u041d\u0430 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0435 \u0443\u0440\u043e\u043a\u0430 \u0441 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e \u043e\u0431\u0435\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439. \u041e\u043d\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u0443\u0440\u043e\u043a\u0430, \u0430 \u043a\u043e\u0433\u0434\u0430 \u0441\u043a\u043e\u0440\u0435\u0435 \u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u0435\u043c.<\/p>\n<figure class=\"full-width\"><figcaption>\u041d\u0430 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u2014 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0445\u043e\u0442\u044f \u0431\u044b \u00ab\u200e\u043f\u043b\u0435\u0447\u043e\u043c\u00bb\u200e, \u0430 \u043d\u0430 \u043d\u0438\u0436\u043d\u0435\u043c \u2014 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0432 \u043a\u0430\u043c\u0435\u0440\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u0435\u043c<\/figcaption><\/figure>\n<h3>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 3. \u0414\u0435\u0442\u0438 \u0443\u043b\u044b\u0431\u0430\u044e\u0442\u0441\u044f \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443<\/h3>\n<p>\u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043d\u0435 \u0442\u0430\u043a \u0443\u0436 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0443\u043b\u044b\u0431\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0431\u0435\u043d\u043e\u043a \u0438\u043b\u0438 \u043d\u0435\u0442. \u0418 \u0435\u0441\u043b\u0438 \u0441 \u0443\u043b\u044b\u0431\u0447\u0438\u0432\u044b\u043c\u0438 \u0440\u0435\u0431\u044f\u0442\u0430\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435\u0442, \u0442\u043e \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0441\u0434\u0435\u0440\u0436\u0430\u043d\u043d\u044b\u0445 \u0443\u043b\u044b\u0431\u043e\u043a \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430.<\/p>\n<p>\u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043c\u044b \u0432\u0437\u044f\u043b\u0438 \u043f\u0440\u0435\u0434\u043e\u0431\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c ResNet34 \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 fast.ai. \u042d\u0442\u0443 \u0436\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0434\u043b\u044f \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u0432 \u0434\u0432\u0430 \u044d\u0442\u0430\u043f\u0430: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\u0445 <a href=\"https:\/\/github.com\/muxspace\/facial_expressions\"><u>facial_expressions<\/u><\/a> \u0438 <a href=\"https:\/\/github.com\/hromi\/SMILEsmileD\/tree\/master\/SMILEs\"><u>SMILEsmileD<\/u><\/a> \u0441 \u0432\u0435\u0441\u0435\u043b\u044b\u043c\u0438 \u0438 \u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043b\u0438\u0446\u0430\u043c\u0438, \u043f\u043e\u0442\u043e\u043c \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u043e\u043c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 \u0441 \u043a\u0430\u0434\u0440\u0430\u043c\u0438 \u0441 \u043a\u0430\u043c\u0435\u0440 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432. \u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0438 \u043f\u043e\u043c\u043e\u0447\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u0447\u0435\u043c \u043a\u0430\u0434\u0440\u044b \u0432\u0438\u0434\u0435\u043e \u0441 \u043f\u043b\u0430\u043d\u0448\u0435\u0442\u043e\u0432 \u0438 \u0432\u0435\u0431-\u043a\u0430\u043c\u0435\u0440 \u043d\u0430\u0448\u0438\u0445 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432.<\/p>\n<p>\u0420\u0430\u0437\u043c\u0435\u0447\u0430\u043b\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0436\u0435\u0442\u0430. \u0412\u0441\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u0430\u043b\u0438\u0441\u044c \u043e\u0434\u043d\u043e\u0439 \u0438 \u0442\u043e\u0439 \u0436\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435 \u043f\u0440\u0435\u0434\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438:<\/p>\n<ol>\n<li>\n<p>\u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0434\u0440\u0430 \u0434\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 64 \u043d\u0430 64 \u043f\u0438\u043a\u0441\u0435\u043b\u044f. \u0412 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0443\u0436\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f\u043c \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0439. \u0412 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435 \u043c\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u043b\u0438 \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0441 \u043b\u0438\u0446\u043e\u043c \u0434\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u0438 \u043f\u043e\u0442\u043e\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043b\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a \u0447\u0435\u0440\u043d\u043e-\u0431\u0435\u043b\u043e\u0439 \u043f\u0430\u043b\u0438\u0442\u0440\u0435. \u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0447\u0435\u0440\u043d\u043e-\u0431\u0435\u043b\u044b\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043d\u0430\u043c \u00ab\u200e\u0447\u0438\u0449\u0435\u00bb\u200e, \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u043e\u0432 \u0443\u0436\u0435 \u0431\u044b\u043b \u0432 \u0447\u0435\u0440\u043d\u043e-\u0431\u0435\u043b\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435. \u041d\u0443 \u0438 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0443\u043b\u044b\u0431\u043a\u0438 \u0446\u0432\u0435\u0442\u0430 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u044b, \u0447\u0442\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b\u043e\u0441\u044c \u0432 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0410\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432 \u0440\u0430\u0437\u044b \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0438 \u0443\u0447\u0435\u0441\u0442\u044c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p>\u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e CLAHE normalizer \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 OpenCV. \u041f\u043e \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u044f\u043c, \u0442\u0430\u043a\u0430\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043b\u0443\u0447\u0448\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u044b\u0442\u044f\u0433\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442 \u043d\u0430 \u043f\u0435\u0440\u0435\u0441\u0432\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u0442\u0435\u043c\u043d\u044b\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445.<\/p>\n<\/li>\n<\/ol>\n<h3>\u0414\u043e\u043e\u0431\u0443\u0447\u0430\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u0443\u043b\u044b\u0431\u043e\u043a<\/h3>\n<h4>1. \u0410\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/h4>\n<p>\u041f\u0440\u0438 \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0436\u0435\u0441\u0442\u043a\u0438\u0435 \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u041e\u0442\u0440\u0430\u0436\u0430\u043b\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043b\u0438 \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u0443\u044e \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u043b\u0438 \u0442\u0440\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u0430 \u0438 \u044f\u0440\u043a\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0411\u0440\u0430\u043b\u0438 \u043d\u0435 \u0432\u0441\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443, \u0430 \u043a\u0432\u0430\u0434\u0440\u0430\u0442, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 60% \u043e\u0442 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0440\u0435\u0437\u0430\u043b\u0438 \u0441 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u0441\u0442\u043e\u0440\u043e\u043d, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0447\u0435\u0440\u043d\u044b\u0439 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u043d\u0430 \u043c\u0435\u0441\u0442\u043e \u043e\u0431\u0440\u0435\u0437\u0430\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0435\u0440\u0432\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0432\u044b\u0431\u043e\u0440\u043a\u0438. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u044b \u043a \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u0430\u044f \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f. \u041e\u043d\u0430 \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u0442 \u0443\u0447\u0435\u043d\u0438\u043a\u0430, \u043a\u0430\u043c\u0435\u0440\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0441\u043b\u0435\u0433\u043a\u0430 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u0438 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0435\u0433\u043e \u043b\u0438\u0446\u043e \u0432 \u043a\u0430\u0434\u0440\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0435\u0437\u0430\u043d\u043d\u044b\u043c. \u041f\u0440\u0438 \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043b\u0438\u0446\u0430 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0434\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430, \u043e\u0431\u0440\u0435\u0437\u0430\u043d\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0447\u0435\u0440\u043d\u0443\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u044c. \u0411\u0435\u0437 \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0439 \u0442\u0430\u043a\u0438\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0431\u044b\u043b\u043e \u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e, \u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u0440\u0442\u0438\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u044d\u0442\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u0431\u044b\u043b\u0438 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b \u0434\u043b\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430.<\/p>\n<figure class=\"full-width\"><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0439 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438. \u0414\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u0434\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044e 64\u044564<\/figcaption><\/figure>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0434\u043b\u044f \u0430\u0443\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0439<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># ! pip freeze | grep fastai # fastai==1.0.44  import fastai  import matplotlib.pyplot as plt from matplotlib import cm from matplotlib import colors import seaborn as sns %matplotlib inline from pylab import rcParams plt.style.use('seaborn-talk') rcParams['figure.figsize'] = 12, 6  path = 'facial_expressions\/images\/'  def _side_cutoff(     x,     cutoff_prob=0.25,     cutoff_intensity=(0.1, 0.25) ):     if np.random.uniform() > cutoff_prob:         return x      # height and width     h, w = x.shape[1:]     h_cutoff = np.random.randint(         int(cutoff_intensity[0]*h), int(cutoff_intensity[1]*h)     )     w_cutoff = np.random.randint(         int(cutoff_intensity[0]*w), int(cutoff_intensity[1]*w)     )          cutoff_side = np.random.choice(         range(4),         p=[.34, .34, .16, .16]     ) # top, bottom, left, right.      if cutoff_side == 0:         x[:, :h_cutoff, :] = 0     elif cutoff_side == 1:      <\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-394121","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/394121","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=394121"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/394121\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=394121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=394121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=394121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}