{"id":429716,"date":"2024-08-21T21:03:49","date_gmt":"2024-08-21T21:03:49","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=429716"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=429716","title":{"rendered":"<span>\u041c\u044b \u0443\u043c\u0435\u0435\u043c \u0437\u0430\u043c\u0435\u043d\u044f\u0442\u044c \u043c\u0435\u0431\u0435\u043b\u044c \u043d\u0430 \u0444\u043e\u0442\u043e, \u0430 \u0447\u0435\u0433\u043e \u0434\u043e\u0431\u0438\u043b\u0438\u0441\u044c \u0432\u044b? \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0430\u0432\u0442\u043e\u0433\u0435\u043d-\u0447\u0435\u043b\u043b\u0435\u043d\u0434\u0436<\/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>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0418\u0418 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0430 \u043f\u0438\u043a\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438. \u041d\u0430 \u0441\u043c\u0435\u043d\u0443 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043f\u0440\u0438\u0448\u043b\u0438 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u043f\u0441\u0438\u0445\u043e\u0434\u0435\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u0438\u0434\u0435\u043e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443 \u043b\u044e\u0434\u0435\u0439 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f, \u043d\u043e \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0441\u0451. \u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e \u043b\u0438\u0448\u044c \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u0430\u0439\u0441\u0431\u0435\u0440\u0433\u0430. We need to go deeper. \u0425\u0430\u0431\u0440\u0443 \u043d\u0443\u0436\u043d\u044b \u043d\u0435 \u0441\u043c\u0435\u0448\u043d\u044b\u0435 \u043d\u0435\u0439\u0440\u043e(\u0434\u0435)\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043c\u0435\u043c\u044b, \u0430 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e\u0442 \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0418\u0418 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0438 \u043d\u0430 \u043e\u0441\u0442\u0440\u0438\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u0447\u0442\u043e \u043a\u0440\u0443\u0442\u043e\u0435 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435.<\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u041b\u0443\u0433\u043e\u0432\u043e\u0439, \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c Computer Vision \u0432 \u0421\u0430\u043c\u043e\u043b\u0435\u0442\u0435, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u044e \u043e \u0441\u0442\u0430\u0440\u0442\u0435 \u0430\u0432\u0442\u043e\u0433\u0435\u043d-\u0447\u0435\u043b\u043b\u0435\u043d\u0434\u0436\u0430. \u042d\u0442\u043e\u0442 \u0447\u0435\u043b\u043b\u0435\u043d\u0434\u0436 \u2014 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432\u0430 \u0425\u0430\u0431\u0440\u0430 \u0438 \u0421\u0430\u043c\u043e\u043b\u0435\u0442\u0430. \u041f\u0440\u043e \u043f\u0440\u0438\u0437\u044b \u043b\u0443\u0447\u0448\u0438\u043c \u0430\u0432\u0442\u043e\u0440\u0430\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438, \u0430 \u043d\u0430\u0447\u043d\u0443 \u0441 \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u2014 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u0440\u0443\u0433\u0443\u044e \u043c\u0435\u0431\u0435\u043b\u044c \u043d\u0430 \u0444\u043e\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u044c\u0435\u0440\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d4e\/f1b\/5a5\/d4ef1b5a580578010b4b439811b15dc2.PNG\" width=\"780\" height=\"440\"\/><\/figure>\n<p>\u042f \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043f\u0440\u043e \u043d\u0430\u0448\u0435 <a href=\"https:\/\/habr.com\/ru\/companies\/samolet\/articles\/825750\/\"><u>\u0440\u0435\u0448\u0435\u043d\u0438\u0435<\/u><\/a> \u0434\u043b\u044f \u0434\u0438\u0437\u0430\u0439\u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u044c\u0435\u0440\u043e\u0432 \u043d\u0430 \u043b\u0435\u0442\u0443. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0451\u0442 \u043e \u0431\u043e\u043b\u0435\u0435 \u0443\u0437\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435: \u0435\u0441\u0442\u044c \u0444\u043e\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u044c\u0435\u0440\u0430, \u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u2014 \u0430 \u043a\u0430\u043a \u0431\u044b \u0441\u043c\u043e\u0442\u0440\u0435\u043b\u043e\u0441\u044c, \u0435\u0441\u043b\u0438 \u0431\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0434\u0438\u0432\u0430\u043d\u0430 \u0441\u0442\u043e\u044f\u043b \u0434\u0440\u0443\u0433\u043e\u0439? \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0435 \u0440\u0430\u0441\u043f\u043b\u044b\u0432\u0447\u0430\u0442\u043e\u0439 \u0444\u0440\u0430\u0437\u043e\u0439, \u0430 \u0444\u043e\u0442\u043e\u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u2014 \u044d\u0442\u043e \u0438 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0438 \u0432\u0430\u0443-\u044d\u0444\u0444\u0435\u043a\u0442, \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u043e. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a\u0438\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 \u043c\u044b \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0431\u0438\u043b\u0438\u0441\u044c.<\/p>\n<h2>\u042d\u0442\u0430\u043f 1. \u041a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c<\/h2>\n<p>\u041a\u0430\u043a\u043e\u0439 \u0431\u044b \u043d\u0438 \u0431\u044b\u043b\u0430 \u043d\u0430\u0448\u0430 \u043c\u043e\u0434\u0435\u043b\u044c, \u044f\u0441\u043d\u043e, \u0447\u0442\u043e \u043d\u0430 \u0432\u0445\u043e\u0434 \u043e\u043d\u0430 \u0432 \u0442\u043e\u0439 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0442\u0440\u0438 \u0432\u0435\u0449\u0438:<\/p>\n<ul>\n<li>\n<p>\u0444\u043e\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u044c\u0435\u0440\u0430,<\/p>\n<\/li>\n<li>\n<p>\u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c,<\/p>\n<\/li>\n<li>\n<p>\u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435, \u043d\u0430 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u0421 \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u0443\u043d\u043a\u0442\u043e\u043c \u0432\u0441\u0451 \u043f\u043e\u043d\u044f\u0442\u043d\u043e (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435\u0442, \u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u0437\u0436\u0435), \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0430\u0447\u043d\u0451\u043c \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e. \u041a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0439\u043c\u0451\u0442, \u0447\u0442\u043e \u0437\u0430\u043c\u0435\u043d\u0435 \u043f\u043e\u0434\u043b\u0435\u0436\u0438\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u043e\u0442 \u044d\u0442\u043e\u0442 \u0436\u0451\u043b\u0442\u044b\u0439 \u0434\u0438\u0432\u0430\u043d?<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/41b\/251\/0bf\/41b2510bfc9d800257d3c218febb746b.png\" width=\"1024\" height=\"767\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/41b\/251\/0bf\/41b2510bfc9d800257d3c218febb746b.png\"\/><\/figure>\n<p>\u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 (\u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438) \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u0435\u0441\u043b\u0438 \u0435\u0439 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0430\u0434\u0443\u0442 \u043c\u0430\u0441\u043a\u0443 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043f\u0438\u043a\u0441\u0435\u043b\u044f\u043c\u0438, \u043f\u043e\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u043c\u0438 \u0437\u0430\u043c\u0435\u043d\u0435. \u042d\u0442\u043e \u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043b\u044f \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u043d\u043e \u043d\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u041f\u043e\u043a\u0430 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a \u0421\u0430\u043c\u043e\u043b\u0435\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0438\u043f\u0435\u0442\u043a\u043e\u0439 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0438\u043a\u0441\u0435\u043b\u0438, \u043a\u043b\u0438\u0435\u043d\u0442 \u0437\u0430\u0441\u043a\u0443\u0447\u0430\u0435\u0442 \u0438 \u0443\u0439\u0434\u0451\u0442. \u0417\u043d\u0430\u0447\u0438\u0442, \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0443\u0436\u043d\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f UX \u0445\u043e\u0440\u043e\u0448\u043e, \u0435\u0441\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u00ab\u0414\u0438\u0432\u0430\u043d\u00bb \u0438\u0437 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0432\u0441\u0442\u0430\u043b\u0438 \u043d\u0430 \u0440\u0430\u0441\u043f\u0443\u0442\u044c\u0435. \u041c\u043e\u0436\u043d\u043e \u043e\u0431\u0443\u0447\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u0447\u0451\u0442\u043a\u043e \u043f\u043e\u0434 \u0441\u0432\u043e\u0439 \u043a\u0435\u0439\u0441. \u041e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0443 \u043c\u0435\u0431\u0435\u043b\u0438, \u043f\u0440\u0438\u0447\u0451\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430\u0448\u0435\u0439 \u043c\u0435\u0431\u0435\u043b\u0438, \u0438, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u044d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0435\u0439 \u043a\u0440\u0443\u0442\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u0437\u0430\u0434\u0430\u0447\u0435\u0439. \u041d\u043e \u0441\u0432\u043e\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u2014 \u044d\u0442\u043e \u0434\u043e\u043b\u0433\u043e. \u0421\u0431\u043e\u0440 \u0438 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u0432\u0441\u0451 \u043e\u0447\u0435\u043d\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0442\u0430\u0439\u043c-\u0442\u0443-\u043c\u0430\u0440\u043a\u0435\u0442.<\/p>\n<p>\u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c \u2014 \u0432\u0437\u044f\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0438 \u0434\u043e\u043f\u0438\u043b\u0438\u0442\u044c \u043f\u043e\u0434 \u043d\u0430\u0448\u0438 \u043d\u0443\u0436\u0434\u044b. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442\u0430\u043a\u0430\u044f \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u0435\u0435 \u0442\u043e\u043d\u043a\u043e \u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u044e\u0430\u043d\u0441\u044b \u0434\u0438\u0432\u0430\u043d\u043e\u0432. \u0410 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u0412\u0441\u0451-\u0442\u0430\u043a\u0438 SOTA-\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0435\u043b\u0430\u043b\u0438\u0441\u044c \u0443\u043c\u043d\u044b\u043c\u0438 \u043b\u044e\u0434\u044c\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043b\u043e\u0436\u0438\u043b\u0438 \u0432 \u043d\u0438\u0445 \u043c\u043d\u043e\u0433\u043e \u0441\u0438\u043b \u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0418\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0445\u043e\u0442\u044f \u0431\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c, \u0441\u043e\u0431\u0440\u0430\u0442\u044c MVP \u0438\u0437 \u0447\u0435\u0433\u043e \u0431\u043e\u0433 \u043f\u043e\u0441\u043b\u0430\u043b, \u0430 \u0434\u0430\u043b\u044c\u0448\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u0440\u0435\u0448\u0430\u0442\u044c, \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u043b\u0438 \u043d\u0430\u0441 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e.<\/p>\n<p>\u041f\u043e\u0440\u0430\u0437\u043c\u044b\u0441\u043b\u0438\u0432, \u043c\u044b \u0443\u0441\u043c\u0438\u0440\u0438\u043b\u0438 \u0433\u043e\u0440\u0434\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u0448\u043b\u0438 \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u0443\u0442\u0451\u043c.<\/p>\n<h2>\u042d\u0442\u0430\u043f 2. \u0414\u0435\u0442\u0435\u043a\u0446\u0438\u044f<\/h2>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c, \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0434\u0432\u0435 \u2014\u00a0\u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f. \u0414\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u2014\u00a0\u044d\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0438 \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a (bbox). \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0431\u0431\u043e\u043a\u0441\u0430 \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0443\u0436\u0435\u043d \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u0442\u0430\u043f \u2014 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0441\u043a\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u043c\u044b \u0432\u0437\u044f\u043b\u0438 <a href=\"https:\/\/huggingface.co\/docs\/transformers\/en\/model_doc\/grounding-dino\"><u>Grounding DINO<\/u><\/a> \u2014 SOTA-\u043c\u043e\u0434\u0435\u043b\u044c, \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0443\u044e \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e. \u041e\u043d\u0430 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0440\u043e\u043c\u043f\u0442\u044b \u043d\u0430 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0438 \u0438\u0449\u0435\u0442 \u043f\u043e \u043d\u0438\u043c \u043b\u044e\u0431\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f. \u041c\u043e\u0434\u0435\u043b\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0440\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 IDEA \u0432\u044b\u043a\u0430\u0442\u0438\u043b\u0438 <a href=\"https:\/\/github.com\/IDEA-Research\/Grounding-DINO-1.5-API\"><u>\u0432\u0435\u0440\u0441\u0438\u044e 1.5<\/u><\/a>. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u0432\u0437\u044f\u043b\u0438 \u0433\u043e\u0442\u043e\u0432\u0443\u044e \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0441 HuggingFace, \u0431\u0435\u0437 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u0421\u043f\u043e\u0439\u043b\u0435\u0440: \u044d\u0442\u043e\u0433\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a Grounding DINO \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0434\u0438\u0432\u0430\u043d:<\/p>\n<pre><code class=\"python\">text_prompt = \u2018couch\u2019 box_threshold=0.25 text_threshold=0.25<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0446\u0435\u043b\u0438\u043a\u043e\u043c<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import requests  import torch from PIL import Image from transformers import AutoProcessor, AutoModelForZeroShotObjectDetection   def draw_boxes_on_image(img_pil, bbox_info):     img_pil = img_pil.copy()     draw = ImageDraw.Draw(img_pil)          boxes = bbox_info[0]['boxes']     labels = bbox_info[0]['labels']     scores = bbox_info[0]['scores']      font = ImageFont.load_default()     for box, label, score in zip(boxes, labels, scores):         x1, y1, x2, y2 = box         draw.rectangle([x1, y1, x2, y2], outline=\"red\", width=2)         text = f'{label}: {score:.2f}'         text_width, text_height = draw.textsize(text, font=font)         draw.text((x1, y1 - text_height - 2), text, fill=\"red\", font=font)      return img_pil  model_id = \"IDEA-Research\/grounding-dino-base\" processor = AutoProcessor.from_pretrained(model_id, cache_dir=CACHE_DIR) model = AutoModelForZeroShotObjectDetection.from_pretrained(model_id, cache_dir=CACHE_DIR).to(DEVICE)  # inference text = 'couch' inputs = processor(images=img_pil, text=text, return_tensors=\"pt\").to(DEVICE) with torch.no_grad():     outputs = model(**inputs)  bbox_info = processor.post_process_grounded_object_detection(     outputs,     inputs.input_ids,     box_threshold=0.25,     text_threshold=0.25,     target_sizes=[img_pil.size[::-1]] )  # postprocess  bbox_info[0]['boxes'] = bbox_info[0]['boxes'].cpu().numpy() bbox_info[0]['scores'] = bbox_info[0]['scores'].cpu().numpy()  pprint(bbox_info) img_pil_an = draw_boxes_on_image(img_pil, bbox_info)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/e9c\/de1\/ebd\/e9cde1ebdaa2e90f3fdece447721e673.jpg\" width=\"1024\" height=\"767\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e9c\/de1\/ebd\/e9cde1ebdaa2e90f3fdece447721e673.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0410 \u0432\u043e\u0442 \u0442\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0443\u043c\u0431\u0443:<\/p>\n<pre><code class=\"python\">text_prompt = \u2018nightstand\u2019\u2019 box_threshold=0.25 text_threshold=0.25<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/088\/42f\/e08\/08842fe085261537b105c3dc4d795fd5.jpg\" width=\"1024\" height=\"767\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/088\/42f\/e08\/08842fe085261537b105c3dc4d795fd5.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0415\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441 \u2014 \u0447\u0442\u043e\u0431\u044b \u0445\u043e\u0440\u043e\u0448\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0431\u0431\u043e\u043a\u0441\u044b, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0448\u0445\u043e\u043b\u0434\u044b (\u043f\u043e\u0440\u043e\u0433\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0434\u0435\u043b\u0438). \u0421\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0442\u0440\u0435\u0448\u0445\u043e\u043b\u0434 \u2014 \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0441\u043e\u043c\u043d\u0435\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0435\u0431\u0435 \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0432\u044b\u0434\u0430\u0441\u0442 \u0431\u0431\u043e\u043a\u0441. \u0421\u043b\u0438\u0448\u043a\u043e\u043c \u043d\u0438\u0437\u043a\u0438\u0439 \u2014 \u0438 \u043e\u043d\u0430 \u0432\u044b\u0434\u0430\u0441\u0442 \u0438\u0445 \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u043d\u0430 \u0432\u0441\u0451 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0442\u0434\u0430\u043b\u0451\u043d\u043d\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435. \u041e\u0431\u044b\u0447\u043d\u043e \u0432\u0441\u0451 \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438, \u043d\u043e \u0435\u0441\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u0442 \u00ab\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u043e\u0435\u00bb \u0444\u043e\u0442\u043e (\u043d\u0438\u0437\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e, \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0439 \u0440\u0430\u043a\u0443\u0440\u0441, \u043c\u043d\u043e\u0433\u043e \u043c\u0435\u043b\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432), \u0442\u043e \u0432\u044b\u0441\u043e\u043a\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442 \u043e\u0434\u043d\u0430 \u0438\u0437 \u0434\u0432\u0443\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0443\u043b\u0438\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043a\u0435\u0439\u0441\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u00ab\u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439\u00bb: \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043e\u043d \u043f\u0440\u043e\u0441\u0438\u043b \u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0434\u0440\u0443\u0433\u043e\u0435 \u0444\u043e\u0442\u043e. \u041d\u043e \u0441\u043d\u044f\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0435 \u0444\u043e\u0442\u043e \u2014 \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u00ab\u0434\u043e\u0440\u043e\u0433\u0430\u044f\u00bb \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f. \u0418 \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (\u0432\u0440\u0435\u043c\u044f, \u0443\u0441\u0438\u043b\u0438\u044f), \u0438 \u0434\u043b\u044f \u043d\u0430\u0441 (\u0432\u0430\u0443-\u044d\u0444\u0444\u0435\u043a\u0442 \u0438\u0441\u043f\u043e\u0440\u0447\u0435\u043d, \u043a\u043b\u0438\u0435\u043d\u0442 \u043d\u0435\u0434\u043e\u0432\u043e\u043b\u0435\u043d).\u00a0<\/p>\n<p>\u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432, \u043a\u0430\u043a \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u043e\u0444\u0442\u0430:<\/p>\n<ul>\n<li>\n<p>\u0410\u0432\u0442\u043e\u043f\u043e\u0434\u0431\u043e\u0440 \u0442\u0440\u0435\u0448\u0445\u043e\u043b\u0434\u043e\u0432 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u043d\u044f\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u043e\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u043e\u0439 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0430\u043f\u0441\u043a\u0435\u0439\u043b\u0430 (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0435\u0449\u0451 \u043e\u0434\u043d\u043e\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e)<\/p>\n<\/li>\n<li>\n<p>\u0418\u043b\u0438 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0443 1 \u0438 \u043e\u0431\u0443\u0447\u0438\u0442\u044c\/\u0434\u043e\u043e\u0431\u0443\u0447\u0438\u0442\u044c \u0441\u0432\u043e\u044e, \u0431\u043e\u043b\u0435\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043a\u0430 \u0447\u0442\u043e \u043c\u044b \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0431\u0443\u0434\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435\u0435.<\/p>\n<h2>\u042d\u0442\u0430\u043f 3. \u0421\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/h2>\n<p>\u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c bbox, \u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0441\u043a\u0430. \u041d\u0430 \u044d\u0442\u043e\u043c \u0448\u0430\u0433\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 <a href=\"https:\/\/github.com\/facebookresearch\/segment-anything\"><u>Segment Anything Model (SAM)<\/u><\/a> \u2014 \u0435\u0449\u0451 \u043e\u0434\u043d\u0443 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u0443\u044e SOTA-\u043c\u043e\u0434\u0435\u043b\u044c. \u0422\u043e\u0447\u043d\u0435\u0435, \u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 SOTA, \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u044b\u0448\u043b\u0430 <a href=\"https:\/\/github.com\/facebookresearch\/segment-anything-2\"><u>\u0432\u0442\u043e\u0440\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f<\/u><\/a>, \u043c\u044b \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435, \u043d\u043e \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043b\u0438. SAM \u0443\u043c\u0435\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434 \u0440\u0430\u0437\u043d\u044b\u0435 \u0432\u0435\u0449\u0438, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 bbox, \u0430 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0434\u0430\u0451\u0442 \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0441\u043a\u0443.\u00a0<\/p>\n<p>\u0421\u043a\u0440\u0435\u0441\u0442\u0438\u0442\u044c Grounding DINO \u0438 SAM \u2014 \u044d\u0442\u043e \u043d\u0435 \u043d\u0430\u0448\u0435 \u043d\u043e\u0443-\u0445\u0430\u0443. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0434\u0430\u0436\u0435 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 Groundind DINO \u0435\u0441\u0442\u044c <a href=\"https:\/\/github.com\/IDEA-Research\/Grounded-Segment-Anything?tab=readme-ov-file\"><u>\u0441\u0441\u044b\u043b\u043a\u0430<\/u><\/a> \u043d\u0430 \u0441\u0432\u044f\u0437\u043a\u0443 Grounded-SAM. \u041c\u044b \u043d\u0435 \u0441\u0442\u0430\u043b\u0438 \u0431\u0440\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u0443\u044e \u0441\u0432\u044f\u0437\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438, \u043d\u043e \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0434\u0435\u043b\u0430\u0435\u043c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435.<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438.<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import torch from PIL import Image import requests from transformers import SamModel, SamProcessor  model_id = \"facebook\/sam-vit-huge\" model = SamModel.from_pretrained(model_id, cache_dir=CACHE_DIR).to(DEVICE) processor = SamProcessor.from_pretrained(model_id, cache_dir=CACHE_DIR)  boxes = bbox_info[0]['boxes'].tolist() inputs = processor(img_pil, input_boxes=[boxes], return_tensors=\"pt\").to(DEVICE) with torch.no_grad():     outputs = model(**inputs)  masks = processor.image_processor.post_process_masks(     outputs.pred_masks.cpu(), inputs[\"original_sizes\"].cpu(), inputs[\"reshaped_input_sizes\"].cpu(), mask_threshold=-10 ) scores = outputs.iou_scores  numpy_data = masks[0].numpy().astype('uint8') * 255 image_data = numpy_data[0, 0] image = Image.fromarray(image_data)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u0442\u0430\u043a\u043e\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/81a\/ef6\/a37\/81aef6a3706e784cc1eb93d56c9a4bcb.jpg\" width=\"1024\" height=\"767\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/81a\/ef6\/a37\/81aef6a3706e784cc1eb93d56c9a4bcb.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>SAM \u0447\u0435\u0440\u0442\u043e\u0432\u0441\u043a\u0438 \u0445\u043e\u0440\u043e\u0448, \u043d\u043e \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441\u044b. \u0412 \u043a\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0432\u0441\u0451 \u043f\u043e\u0439\u0434\u0451\u0442 \u043d\u0435 \u0442\u0430\u043a?<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441\u043b\u043e\u0436\u043d\u044b\u0435, \u043d\u0435\u0447\u0451\u0442\u043a\u0438\u0435 \u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b, \u0443 \u043c\u043e\u0434\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438 \u0441 \u0438\u0445 \u0442\u043e\u0447\u043d\u044b\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c.<\/p>\n<\/li>\n<li>\n<p>SAM \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u043b\u043e\u0442\u043d\u043e\u0439 \u0441\u0446\u0435\u043d\u0435 \u0441\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0442\u043e\u043b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043b\u043e\u0436\u043a\u0438-\u0432\u0438\u043b\u043a\u0438-\u0442\u0430\u0440\u0435\u043b\u043a\u0438).<\/p>\n<\/li>\n<li>\n<p>\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u2014 \u0438\u0445 \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c \u0442\u0440\u0443\u0434\u043d\u0435\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043b\u043e\u0445\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f..<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0443\u0434\u0430\u0447\u043d\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f bbox \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b. \u041f\u043b\u043e\u0445\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c, \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c, \u0438 \u0442.\u043f.<\/p>\n<p>\u0421\u0430\u043c\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u2014 \u044d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0441\u0446\u0435\u043d\u0430. \u0412\u043e\u0437\u044c\u043c\u0435\u043c \u0441\u0442\u043e\u043b \u0441 \u043f\u043e\u0441\u0443\u0434\u043e\u0439, \u0438\u043b\u0438, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0434\u0438\u0432\u0430\u043d \u0441 \u043f\u043e\u0434\u0443\u0448\u043a\u0430\u043c\u0438. SAM \u043c\u043e\u0436\u0435\u0442 \u0440\u0435\u0448\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u0443\u0448\u043a\u0438 \u2014 \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0434\u0438\u0432\u0430\u043d\u043e\u043c, \u0438 \u043d\u0430 \u0438\u0445 \u043c\u0435\u0441\u0442\u0435 \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u0434\u044b\u0440\u043a\u0438 \u0432 \u043c\u0430\u0441\u043a\u0435. \u0412 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u0441\u043c\u044b\u0441\u043b\u0435 SAM \u0434\u0430\u0436\u0435 \u043f\u0440\u0430\u0432 \u2014 \u043e\u0434\u043d\u0430\u043a\u043e \u043d\u0430\u043c \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043b\u0435\u0433\u0447\u0435, \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<p>\u0412\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e:<\/p>\n<ul>\n<li>\n<p>\u0417\u0430\u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0442\u044c \u0432\u0441\u044e \u0441\u0446\u0435\u043d\u0443 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u2014 \u0442\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u0431\u0431\u043e\u043a\u0441\u044b \u0438 \u0434\u043b\u044f \u0434\u0438\u0432\u0430\u043d\u0430, \u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u0443\u0448\u0435\u043a, \u0438 \u0434\u043b\u044f \u043f\u043b\u0435\u0434\u0430, \u0432\u043e\u043e\u0431\u0449\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e. \u041f\u043e\u0442\u043e\u043c \u043e\u0442\u0434\u0430\u0442\u044c SAM \u043a\u0443\u0447\u0443 \u0431\u0431\u043e\u043a\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c, \u0438 \u043f\u0443\u0441\u0442\u044c \u043e\u043d \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439. \u041e\u0434\u043d\u0430\u043a\u043e \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0432\u0441\u0435\u0433\u043e \u2014 \u0433\u0440\u0443\u0431\u043e\u0435 \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0451\u043c\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0438\u0433\u0440\u0430\u0442\u044c \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u0442\u0440\u0435\u0448\u0445\u043e\u043b\u0434\u0430 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u043a\u0438 (\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 mask_threshold \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043a\u043e\u0434\u0430). \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u0434\u0430\u0442\u044c SAM \u0431\u043e\u043b\u044c\u0448\u0435 \u00ab\u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438\u00bb, \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u0434\u0443\u0448\u043a\u0438 \u2014 \u0447\u0430\u0441\u0442\u044c \u0434\u0438\u0432\u0430\u043d\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0451, \u041d\u0430\u0442\u0430\u0448\u0430, \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0441\u0451 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u044e SAM \u00absegment everything\u00bb. \u041a\u043e\u0433\u0434\u0430 \u0435\u043c\u0443 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u043c\u043f\u0442\u043e\u0432, \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442 \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u0412 \u043c\u0438\u0440\u0435, \u0433\u0434\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u0438 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e, \u044d\u0442\u043e \u043c\u043e\u0433\u043b\u043e \u0431\u044b \u0431\u044b\u0442\u044c \u043b\u0443\u0447\u0448\u0435\u0439 \u043e\u043f\u0446\u0438\u0435\u0439, \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u044d\u0442\u043e \u043d\u0435\u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u043d\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0447\u0442\u043e \u0440\u044f\u0434\u043e\u043c \u0441 \u0431\u0431\u043e\u043a\u0441\u043e\u043c. \u0417\u0430\u043e\u0434\u043d\u043e \u0442\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u043e\u0447\u043d\u044b\u0439 \u0431\u0431\u043e\u043a\u0441 \u2014 \u0435\u0441\u043b\u0438 \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u0447\u0430\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0435 \u0432\u043b\u0435\u0437\u043b\u0430 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u0442\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043c\u0430\u0441\u043a\u0438 (\u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0438\u0436\u0435).<\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u043e\u043f\u044f\u0442\u044c \u0436\u0435 \u0432 \u0444\u0430\u0437\u0435 \u0440\u0435\u0441\u0451\u0440\u0447\u0430, \u043e\u0431\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u043c \u044d\u0442\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441 \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u0434\u0440\u0443\u0433\u0438\u0445. \u0427\u0442\u043e\u0431\u044b \u0432\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u043b\u0438, \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u2014 \u044d\u0442\u043e \u043a\u0440\u0430\u0435\u0432\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u043d\u0435 \u0442\u0430\u043a \u0443\u0436 \u0447\u0430\u0441\u0442\u043e. \u041d\u0430\u0448 MVP \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0438 \u0438\u043c\u0435\u0442\u044c \u0431\u0438\u0437\u043d\u0435\u0441-\u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c. \u041d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0435\u0433\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u0433\u0440\u0430\u043d\u0438\u0447\u043d\u043e.<\/p>\n<h2>\u042d\u0442\u0430\u043f 4. \u041f\u043e\u0441\u0442\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043c\u0430\u0441\u043a\u0438<\/h2>\n<p>\u041a\u0430\u043a \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u043c\u0430\u0441\u043a\u0430, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435, \u0434\u0430\u043b\u0435\u043a\u0430 \u043e\u0442 \u0438\u0434\u0435\u0430\u043b\u0430 \u2014 \u0443 \u043d\u0435\u0451 \u043d\u0435\u0440\u043e\u0432\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0438 \u043c\u0430\u0441\u043a\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0442\u0430\u043c, \u0433\u0434\u0435 \u0438\u0445 \u0432\u0440\u043e\u0434\u0435 \u0431\u044b \u0431\u044b\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e, \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0430\u043c, \u0433\u0434\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c. \u041c\u0430\u0441\u043a\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u0432\u0438\u0434\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0440\u0444\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0438.<\/p>\n<details class=\"spoiler\">\n<summary>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c \u043a\u043e\u0434\u043e\u043c.<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">def refine_img_morphology(img_pil, kernel_size=15, erosion_iter=1, dilation_iter=3):     \"\"\"      - \u0443\u0431\u0440\u0430\u0442\u044c \u0447\u0435\u0440\u043d\u044b\u0435 \u0437\u0430\u0441\u0435\u0447\u043a\u0438 \u0432\u043d\u0435 \u043c\u0430\u0441\u043a\u0438     - \u0431\u0435\u043b\u044b\u0435 \u0437\u0430\u0441\u0435\u0447\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u0430\u0441\u043a\u0438     - \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043c\u0430\u0441\u043a\u0438\u0440\u0443\u0435\u043c\u0443\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u044c (\u043f\u043e \u0444\u043e\u0440\u043c\u0435)          \"\"\"      img_np = np.array(img_pil)          # \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u044f\u0434\u0440\u0430 \u0434\u043b\u044f \u043c\u043e\u0440\u0444\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439     kernel = np.ones((kernel_size, kernel_size), np.uint8)      # \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0431\u0435\u043b\u044b\u0445 \u0437\u0430\u0441\u0435\u0447\u0435\u043a \u0432\u043d\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430     erosion = cv2.erode(img_np, kernel, iterations=erosion_iter)      # \u0417\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430     dilation = cv2.dilate(erosion, kernel, iterations=dilation_iter)     closing = cv2.erode(dilation, kernel, iterations=erosion_iter)      # \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 PIL     if closing.ndim == 3:         closing = cv2.cvtColor(closing, cv2.COLOR_BGR2RGB)     processed_pil_image = Image.fromarray(closing)      return processed_pil_image  mask_l = refine_img_morphology(mask_l)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0440\u043e\u0437\u0438\u0438 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0431\u0435\u043b\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0438, \u0437\u0430\u0442\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0438\u043b\u0430\u0442\u0430\u0446\u0438\u0438 \u0437\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0443\u043c\u0435\u0441\u0442\u043d\u044b\u0435 \u0447\u0451\u0440\u043d\u044b\u0435. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u0443\u0437\u043d\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0441\u0438\u043b\u0443\u044d\u0442 <s>\u043f\u043e\u043a\u0435\u043c\u043e\u043d\u0430<\/s> \u0434\u0438\u0432\u0430\u043d\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/58b\/f56\/c87\/58bf56c87585fe84d4dac630730fa80d.jpg\" width=\"1024\" height=\"767\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/58b\/f56\/c87\/58bf56c87585fe84d4dac630730fa80d.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u041f\u043e\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u043c\u0430\u0441\u043a\u0443 \u0441 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c, \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0430 \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0434\u0438\u0432\u0430\u043d, \u0438 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e\u0434\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0441\u0442\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/dcc\/263\/db1\/dcc263db13b9ffd7e7f88427a2978aa8.jpg\" width=\"1024\" height=\"767\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dcc\/263\/db1\/dcc263db13b9ffd7e7f88427a2978aa8.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u041a\u0441\u0442\u0430\u0442\u0438, \u043d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u043c\u0435\u0442 \u043d\u0430 \u0444\u043e\u0442\u043e, \u043d\u043e \u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0435\u0433\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/research.samsung.com\/blog\/LaMa-New-Photo-Editing-Technology-that-Helps-Removing-Objects-from-Images-Seamlessly\"><u>LaMa<\/u><\/a>. \u0422\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u0441 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u043c\u0443\u0441\u043e\u0440 \u0438\u043b\u0438 \u043c\u0435\u043b\u043a\u0438\u0435 \u043d\u0435\u0443\u0433\u043e\u0434\u043d\u044b\u0435 \u0432\u0435\u0449\u0438. \u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u0435\u0434\u043c\u0435\u0442, \u0442\u0435\u043c \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0435\u0433\u043e \u00ab\u0437\u0430\u0442\u0435\u0440\u0435\u0442\u044c\u00bb \u2014 \u043d\u0435\u0439\u0440\u043e\u043d\u043a\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u0430 \u044d\u0442\u0438\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0443\u0442 \u043c\u044b \u0443\u0431\u0440\u0430\u043b\u0438 \u0442\u0435\u043b\u0435\u0432\u0438\u0437\u043e\u0440:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5ed\/dd8\/b69\/5eddd8b69b765551b56727fd55964c35.png\" width=\"1024\" height=\"768\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5ed\/dd8\/b69\/5eddd8b69b765551b56727fd55964c35.png\"\/><\/figure>\n<h2>\u042d\u0442\u0430\u043f 5. \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430<\/h2>\n<p>\u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0444\u043e\u0442\u043e \u0438 \u043c\u0430\u0441\u043a\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0430 \u043d\u0451\u043c. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438. \u0412\u0440\u043e\u0434\u0435 \u0431\u044b. \u0411\u0435\u0440\u0451\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u0438\u043d\u043f\u0435\u0439\u043d\u0442\u0438\u043d\u0433\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/huggingface.co\/diffusers\/stable-diffusion-xl-1.0-inpainting-0.1\"><u>\u044d\u0442\u0443<\/u><\/a>), \u0434\u0430\u0451\u043c \u0435\u0439 \u0444\u043e\u0442\u043e, \u043c\u0430\u0441\u043a\u0443 \u0438 \u043f\u0440\u043e\u043c\u043f\u0442 \u2014 \u0438 \u0432\u0443\u0430\u043b\u044f, \u043c\u044b \u0432\u0435\u043b\u0438\u043a\u043e\u043b\u0435\u043f\u043d\u044b.<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430.<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">from diffusers import AutoPipelineForInpainting from diffusers.utils import load_image import torch  pipe = AutoPipelineForInpainting.from_pretrained(\"diffusers\/stable-diffusion-xl-1.0-inpainting-0.1\", torch_dtype=torch.float16, variant=\"fp16\").to(\"cuda\")  img_url = \"https:\/\/raw.githubusercontent.com\/CompVis\/latent-diffusion\/main\/data\/inpainting_examples\/overture-creations-5sI6fQgYIuo.png\" mask_url = \"https:\/\/raw.githubusercontent.com\/CompVis\/latent-diffusion\/main\/data\/inpainting_examples\/overture-creations-5sI6fQgYIuo_mask.png\"  image = load_image(img_url).resize((1024, 1024)) mask_image = load_image(mask_url).resize((1024, 1024))  prompt = \"a tiger sitting on a park bench\" generator = torch.Generator(device=\"cuda\").manual_seed(0)  image = pipe(   prompt=prompt,   image=image,   mask_image=mask_image,   guidance_scale=8.0,   num_inference_steps=20,  # steps between 15 and 30 work well for us   strength=0.99,  # make sure to use `strength` below 1.0   generator=generator, ).images[0] <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0411\u044b\u043b\u043e:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/036\/7d2\/d6f\/0367d2d6f942855c08dd62065adb07ad.png\" width=\"1024\" height=\"767\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/036\/7d2\/d6f\/0367d2d6f942855c08dd62065adb07ad.png\"\/><\/figure>\n<p>\u0421\u0442\u0430\u043b\u043e:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/8ff\/8c4\/e0f\/8ff8c4e0f2a5c93d8fd3884d7f344ae2.jpg\" width=\"1024\" height=\"768\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8ff\/8c4\/e0f\/8ff8c4e0f2a5c93d8fd3884d7f344ae2.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0434\u044c\u044f\u0432\u043e\u043b \u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0432 \u0434\u0435\u0442\u0430\u043b\u044f\u0445, \u0438 \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0433\u043b\u044f\u0434\u0435\u0442\u044c\u0441\u044f, \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0448\u044c \u044d\u0442\u0438 \u0434\u0435\u0442\u0430\u043b\u0438 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u044c. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0438\u043d\u043f\u0435\u0439\u043d\u0442\u0438\u043d\u0433\u0435 \u043f\u043e \u043c\u0430\u0441\u043a\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u0438\u043a\u043e\u043c (\u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u044d\u0442\u0430\u043f \u043a\u043e\u0434\u0435\u0440\u0430\/\u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430), \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0445\u043e\u0442\u044c \u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435, \u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u043c. \u041f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0448\u0443\u043c\u044b, \u0437\u0430\u043c\u044b\u043b\u0438\u0432\u0430\u043d\u0438\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0432\u043e\u0442\u0435\u0440\u043c\u0430\u0440\u043a\u0443). \u0412\u0440\u043e\u0434\u0435 \u0431\u044b \u0438 \u043d\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e, \u043d\u043e \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e.<\/p>\n<p>\u0415\u0449\u0451 \u043e\u0434\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u2014 \u0443 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0431\u044b\u0432\u0430\u044e\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0448\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u0442, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0441\u043e\u0442\u0430 \u0438 \u0448\u0438\u0440\u0438\u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0431\u044b\u043b\u0438 \u043a\u0440\u0430\u0442\u043d\u044b \u0432\u043e\u0441\u044c\u043c\u0438. \u0412\u0440\u043e\u0434\u0435 \u0438 \u043c\u0435\u043b\u043e\u0447\u044c, \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0433\u043a\u0430 \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c \u0438\u043b\u0438 \u0441\u0436\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043d\u043e \u0442\u0430\u043a\u0438\u0435 \u0442\u0440\u044e\u043a\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0442\u043e\u0436\u0435 \u043d\u0435 \u043f\u0440\u0438\u0431\u0430\u0432\u044f\u0442.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0439\u0442\u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0443\u0442\u0451\u043c \u2014 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u0430 \u043b\u0438\u0448\u044c \u0442\u0443 \u0435\u0451 \u0447\u0430\u0441\u0442\u044c, \u0433\u0434\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442. \u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u0432\u044b\u0440\u0435\u0437\u0430\u0442\u044c \u0435\u0433\u043e, \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0438 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u0442\u043e \u0436\u0435 \u043c\u0435\u0441\u0442\u043e.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441 \u2014 \u0432\u044b\u0431\u043e\u0440 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430. \u041e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440, \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0441\u0435\u0431\u0435 \u043d\u0443\u0436\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438 \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u0430. \u0422\u0443\u0442 \u0443\u0436\u0435 \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0435 \u043c\u0430\u0448\u0438\u043d\u043b\u0451\u0440\u043d\u0438\u043d\u0433\u043e\u0432\u0430\u044f, \u0430 \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f.<\/p>\n<p>\u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u2014 \u043c\u044b \u0432 \u0438\u0442\u043e\u0433\u0435 \u0432\u044b\u0431\u0440\u0430\u043b\u0438 <a href=\"https:\/\/huggingface.co\/stabilityai\/stable-diffusion-2-inpainting\"><u>stable-diffusion-2-inpainting<\/u><\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0431\u0443\u0447\u0430\u043b\u0430\u0441\u044c \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445 512\u0445512. \u041c\u043e\u0434\u0435\u043b\u044c \u0443\u043c\u0435\u0435\u0442 \u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b, \u043d\u043e \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u043e\u0432\u0435\u0442\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0434\u043b\u044f \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u0438\u0445.<\/p>\n<details class=\"spoiler\">\n<summary>\u0412\u044b\u0440\u0435\u0437\u0430\u0435\u043c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0443 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u043c\u0430\u0441\u043a\u0438<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">def expand_crop_side(current_coords, original_size, target_length):     start, end = current_coords     current_length = end - start      # \u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0434\u043e \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430     delta = target_length - current_length     if delta &lt;= 0:         return current_coords  # \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0443\u0436\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043b\u0438 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u0446\u0435\u043b\u0435\u0432\u043e\u0439      # \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b     expand_one_side = min(delta \/\/ 2, start)     expand_other_side = min(delta - expand_one_side, original_size - end)      # \u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c \u043e\u0431\u0440\u0435\u0437\u043a\u0443     new_start = start - expand_one_side     new_end = end + expand_other_side      # \u041a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u044f, \u0435\u0441\u043b\u0438 \u043e\u0434\u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0434\u043e\u0441\u0442\u0438\u0433\u043b\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b     remaining = delta - (expand_one_side + expand_other_side)     new_start = max(new_start - remaining, 0) if new_end == original_size else new_start     new_end = min(new_end + remaining, original_size) if new_start == 0 else new_end      return (new_start, new_end)   def to_multiplicity_size(start_coord, end_coord, original_size, target_multiple=8):     \"\"\"     \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u0440\u0430\u0442\u043d\u043e\u0441\u0442\u044c \u043a target_multiple     \u0435\u0441\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e - \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u0432 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443     \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 - \u0432 \u043c\u0435\u043d\u044c\u0448\u0443\u044e          \"\"\"          size = end_coord - start_coord     new_size = ((size + target_multiple - 1) \/\/ target_multiple) * target_multiple     diff = new_size - size      # \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440     if end_coord + diff &lt;= original_size:         end_coord += diff     elif start_coord - diff &gt;= 0:         start_coord -= diff     else:         # \u0415\u0441\u043b\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c         new_size = (size \/\/ target_multiple) * target_multiple         diff = size - new_size         end_coord = start_coord + new_size      return start_coord, end_coord           target_width, target_height = 512, 512 original_width, original_height = maskl.size  maskl_np = np.array(maskl) img_np = np.array(img_pil)  # \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043c\u0430\u0441\u043a\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u043c rows, cols = np.where(maskl_np == 255) top, bottom = np.min(rows), np.max(rows) left, right = np.min(cols), np.max(cols)  # \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043e\u0431\u0440\u0435\u0437\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 new_left, new_right = expand_crop_side((left, right), original_width, target_width) new_top, new_bottom = expand_crop_side((top, bottom), original_height, target_height)  # \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u0440\u0435\u0437\u043a\u0443 \u0434\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432, \u043a\u0440\u0430\u0442\u043d\u044b\u043c 8 (\u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 stable diffusion) new_left, new_right = to_multiplicity_size(new_left, new_right, original_width, 8) new_top, new_bottom = to_multiplicity_size(new_top, new_bottom, original_height, 8)  crop_coords = (new_left, new_top, new_right, new_bottom) img_pil_cropped = img_pil.crop(crop_coords).copy() maskl_cropped = maskl.crop(crop_coords).copy()  width, height = img_orig_pil_cropped.size  display_images([img_pil_cropped, maskl_cropped])<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e58\/b66\/ca5\/e58b66ca5c89bf4a4dee81a465635c75.png\" width=\"1174\" height=\"490\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e58\/b66\/ca5\/e58b66ca5c89bf4a4dee81a465635c75.png\"\/><\/figure>\n<details class=\"spoiler\">\n<summary>\u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">from diffusers import StableDiffusionInpaintPipeline, AutoPipelineForInpainting  pipe = StableDiffusionInpaintPipeline.from_pretrained(     \"stabilityai\/stable-diffusion-2-inpainting\",     torch_dtype=torch.float16,     safety_checker=None ).to(DEVICE)  # inference prompt = \"red couch\" generator = torch.Generator(device=DEVICE).manual_seed(4)  img_generated_pil = pipe(     prompt=prompt,     image=img_pil_cropped,     mask_image=maskl_cropped,     guidance_scale=8.0,     num_inference_steps=120,      strength=0.9,     height=height,     width=width,     generator=generator, )  img_generated_pil = img_generated_pil.images[0] display_images([img_generated_pil])<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f75\/e69\/84f\/f75e6984f0463a47a45ca41811eaea08.png\" width=\"483\" height=\"490\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f75\/e69\/84f\/f75e6984f0463a47a45ca41811eaea08.png\"\/><\/figure>\n<details class=\"spoiler\">\n<summary>\u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430 \u0444\u043e\u0442\u043e<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">repainted_image = img_generated_pil.copy() init_image = img_pil_cropped.copy() mask_image_arr = np.array(maskl_cropped.convert(\"L\")).copy()  # Add a channel dimension to the end of the grayscale mask mask_image_arr = mask_image_arr[:, :, None]  # Binarize the mask: 1s correspond to the pixels which are repainted mask_image_arr = mask_image_arr.astype(np.float32) \/ 255.0 mask_image_arr[mask_image_arr &lt; 0.5] = 0 mask_image_arr[mask_image_arr &gt;= 0.5] = 1  # Take the masked pixels from the repainted image and the unmasked pixels from the initial image unmasked_unchanged_image_arr = (1 - mask_image_arr) * init_image + mask_image_arr * repainted_image unmasked_unchanged_image = Image.fromarray(unmasked_unchanged_image_arr.round().astype(\"uint8\"))<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/82f\/b7f\/f88\/82fb7ff886a4141f0ef40b2e30b37f07.jpg\" width=\"1024\" height=\"767\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/82f\/b7f\/f88\/82fb7ff886a4141f0ef40b2e30b37f07.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u043e\u0436\u0435 \u043d\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u0433\u043b\u044f\u0434\u0435\u0442\u044c\u0441\u044f, \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a \u0433\u0440\u0430\u0432\u0438\u0442\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u0434\u0438\u0432\u0430\u043d\u0430 \u0438\u0441\u043a\u0440\u0438\u0432\u0438\u043b\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0442\u0443\u043c\u0431\u043e\u0447\u043a\u0438. \u0422\u0443\u0442 \u0441\u0442\u043e\u0438\u0442 \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0440\u0444\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0430\u0441\u043a\u0438, \u0438\u043b\u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u0442\u044e\u043d\u0438\u0442\u044c \u0433\u0438\u043f\u0435\u0440\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0444\u0435\u0440\u0435\u043d\u0441\u0430. \u041d\u043e \u0434\u0430\u0436\u0435 \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0437\u0430\u0445\u043e\u0434\u0430 \u0432\u044b\u0448\u043b\u043e \u0434\u043e\u0441\u0442\u043e\u0439\u043d\u043e.<\/p>\n<h2>\u042d\u0442\u0430\u043f 6. \u0414\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0432\u043e\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n<p>\u0418\u0442\u0430\u043a, \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u0436\u0451\u043b\u0442\u043e\u0433\u043e \u0434\u0438\u0432\u0430\u043d\u0430 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0434\u0438\u0432\u0430\u043d. \u042d\u0442\u043e \u043a\u0440\u0443\u0442\u043e? \u041a\u0430\u043a \u0448\u043e\u0443\u043a\u0435\u0439\u0441 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u2014 \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e \u0434\u0430. \u041a\u0430\u043a \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u2014 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0434\u0438\u0432\u0430\u043d, \u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0434\u0438\u0432\u0430\u043d \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u2014 \u0438 \u0434\u043b\u044f \u0432\u0430\u0443-\u044d\u0444\u0444\u0435\u043a\u0442\u0430, \u0438 \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u044d\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u0434\u0438\u0432\u0430\u043d \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0434\u0430\u0442\u044c.<\/p>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0430\u0448\u0430 \u043c\u0435\u0431\u0435\u043b\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u043d\u0430\u043c\u0435\u043d\u0438\u0442\u0430, \u0447\u0442\u043e\u0431\u044b Stable Diffusion \u0432\u0441\u0451 \u0437\u043d\u0430\u043b\u0430 \u043f\u0440\u043e \u043d\u0435\u0451 \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u0440\u043e\u043c\u043f\u0442\u0430\u043c\u0438, \u043d\u043e \u044d\u0442\u043e \u043d\u0435\u043d\u0430\u0434\u0451\u0436\u043d\u043e. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442, \u0442\u0443\u0442 \u043d\u0430\u0441 \u043a\u043e\u0440\u043e\u0431\u043e\u0447\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442, \u0438 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043d\u0435 \u0438\u0433\u0440\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u043e\u0440\u043e\u0447\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0412\u043e\u043e\u0431\u0449\u0435 diffusion-based \u043c\u043e\u0434\u0435\u043b\u0438 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0435 \u0438 \u043d\u0435\u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043b\u0438\u0432\u044b\u0435. \u0427\u0442\u043e\u0431\u044b \u0434\u043e\u043e\u0431\u0443\u0447\u0430\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u00ab\u0432 \u043b\u043e\u0431\u00bb, \u043d\u0430\u0434\u043e \u0431\u044b\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u0433\u0430\u0442\u044b\u043c \u0438 \u043e\u0447\u0435\u043d\u044c \u0442\u0435\u0440\u043f\u0435\u043b\u0438\u0432\u044b\u043c \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c, \u2014 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0443\u0439\u0434\u0451\u0442 \u043f\u0440\u043e\u0440\u0432\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u043c\u044b \u043d\u0435 \u043f\u0435\u0440\u0432\u044b\u0435, \u0443 \u043a\u043e\u0433\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0434\u043e\u043e\u0431\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c. \u041a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438 \u0443\u0436\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/huggingface.co\/docs\/peft\/en\/conceptual_guides\/adapter\"><u>\u0430\u0434\u0430\u043f\u0442\u0435\u0440\u044b<\/u><\/a> \u0442\u0438\u043f\u0430 LoRa \u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u0432\u0435\u0440\u0445\u0443 \u0435\u0449\u0451 \u0441\u043b\u043e\u0439 \u0438 \u043e\u0431\u0443\u0447\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0433\u043e. \u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u00ab\u0445\u0430\u043a\u043d\u0443\u0442\u044c\u00bb \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435, \u0438 \u0437\u0430 \u043c\u0430\u043b\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u043e\u0432 \u043d\u0430 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043e\u0432\u0435\u0440\u0444\u0438\u0442\u0430 \u043f\u043e \u044d\u0442\u043e\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 (\u043e\u0431\u044b\u0447\u043d\u043e \u043e\u0432\u0435\u0440\u0444\u0438\u0442 \u2014 \u044d\u0442\u043e \u043f\u043b\u043e\u0445\u043e, \u043d\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e). \u042d\u0442\u043e \u043c\u0435\u0442\u043e\u0434 <a href=\"https:\/\/huggingface.co\/docs\/diffusers\/en\/training\/dreambooth#dreambooth\"><u>dreambooth<\/u><\/a>, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0451\u043c\u043a\u0438\u0439 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 LoRa, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u043d \u043e\u0431\u0435\u0449\u0430\u0435\u0442 \u043b\u0443\u0447\u0448\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e. \u041c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0435 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u043d\u0430 \u0432\u0430\u0443-\u044d\u0444\u0444\u0435\u043a\u0442\u0435 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c dreambooth.<\/p>\n<p>\u0413\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043a\u0438 \u043d\u0430 \u0445\u0430\u0439\u043f\u0435, \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0435, \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441-\u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0432\u043e\u0440\u044f\u0442 \u0447\u0443\u0434\u0435\u0441\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431 \u0434\u0438\u0444\u0444\u0443\u0437\u0435\u0440\u0441 \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043b\u044e\u0431\u043e\u0439 <a href=\"https:\/\/github.com\/huggingface\/diffusers\/blob\/main\/examples\/dreambooth\/train_dreambooth.py\"><u>\u0441\u043a\u0440\u0438\u043f\u0442<\/u><\/a> \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0434 \u043d\u0430\u0448\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u0432\u0435\u0440\u0441\u0438\u044e \u043c\u043e\u0434\u0435\u043b\u0438. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0440\u0430\u0431\u043e\u0447\u0438\u0435 (\u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 Issues \u043f\u0440\u043e\u0435\u043a\u0442\u0430), \u0438\u043d\u043e\u0433\u0434\u0430 \u0434\u0430\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0445\u0430\u0440\u0434\u043a\u043e\u0434\u0438\u0442\u044c \u0438 \u0441\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u043e\u0434 \u0441\u0432\u043e\u0438 \u0445\u043e\u0442\u0435\u043b\u043a\u0438. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0448\u044c, <a href=\"https:\/\/www.reddit.com\/r\/StableDiffusion\/comments\/z9g46h\/i_was_wrong_classifierregularization_images_do\/?utm_source=share&amp;utm_medium=web2x&amp;context=3\"><u>\u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 prior loss \u0438 \u0437\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u043d\u044b class images<\/u><\/a> \u2014 \u0438\u043d\u0430\u0447\u0435 \u0447\u0443\u0434\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442.<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u0432\u0437\u044f\u043b\u0438 <a href=\"https:\/\/github.com\/ShivamShrirao\/diffusers\/tree\/main\/examples\/dreambooth\"><u>\u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435<\/u><\/a>, \u043e\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u043c (\u0431\u044b\u043b\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0435\u0433\u043e \u0437\u0430\u0432\u0435\u0441\u0442\u0438).<\/p>\n<p>\u042d\u0442\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u043e\u0431\u0443\u0447\u0430\u043b\u0438 \u043c\u043e\u0434\u0435\u043b\u044c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c00\/330\/885\/c00330885428bd1b84b52c328db75bcf.PNG\" width=\"663\" height=\"237\"\/><\/figure>\n<p>\u0410 \u0432\u043e\u0442 \u0447\u0442\u043e \u0438\u043c\u0435\u0435\u043c \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/38b\/b5d\/d02\/38bb5dd022278f1c43ffb89a653aac82.png\" width=\"1024\" height=\"767\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/38b\/b5d\/d02\/38bb5dd022278f1c43ffb89a653aac82.png\"\/><\/figure>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0418\u0418-\u043c\u043d\u043e\u0433\u043e\u043d\u043e\u0436\u043a\u0443 \u0438\u0437 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439 \u2014 \u044d\u0442\u043e \u0432\u0435\u0441\u0435\u043b\u043e \u0438 \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043d\u043e \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0431\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e \u0442\u0430\u043a\u0443\u044e \u0441\u043a\u0443\u0447\u043d\u0443\u044e \u0432\u0435\u0449\u044c, \u043a\u0430\u043a \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0441\u0442\u0440\u0435\u043b\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0432 \u043d\u043e\u0433\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0432 \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u043d\u0443\u0436\u043d\u044b\u0439 \u0440\u0430\u043a\u0443\u0440\u0441. \u0423 Stable Diffusion \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c, \u043a\u0430\u043a \u0434\u0438\u0432\u0430\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u0437\u0430\u0434\u0438.<\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043a\u0430\u043a \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441 \u043e\u0432\u0435\u0440\u0444\u0438\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0435 \u043f\u044f\u0442\u044c \u0434\u0438\u0432\u0430\u043d\u043e\u0432, \u0430 \u0442\u044b\u0441\u044f\u0447\u0430. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0438\u0434\u0435\u0438 \u2014 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u043c\u043f\u0442\u0430\u043c\u0438, \u043e\u0442\u0431\u043e\u0440 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0440\u0435\u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043c\u0435\u0431\u0435\u043b\u0438, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u2014 \u043d\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u0442\u0443\u0442 \u0435\u0449\u0451 \u043d\u0435\u043f\u0430\u0445\u0430\u043d\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u0434\u043b\u044f \u0440\u0435\u0441\u0451\u0440\u0447\u0430.<\/p>\n<p>\u0414\u0435\u043c\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/github.com\/AlexeyLugovoy\/data-science-snippets\"><u>\u0443 \u043c\u0435\u043d\u044f \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431\u0435<\/u><\/a>.<\/p>\n<hr\/>\n<p>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u2014 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u0430\u0432\u0442\u043e\u0433\u0435\u043d-\u0447\u0435\u043b\u043b\u0435\u043d\u0434\u0436\u0435. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u043d\u0435 \u043e\u0431\u0437\u043e\u0440\u044b \u0438 \u043d\u0435 \u043d\u0430\u0443\u0447\u043f\u043e\u043f, \u0430 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043e\u0442 \u0442\u0435\u0445, \u043a\u0442\u043e \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0418\u0418. \u041b\u0438\u0448\u044c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0442\u0435\u0445\u043d\u043e\u0445\u0430\u0440\u0434\u043a\u043e\u0440\u0443 \u0425\u0430\u0431\u0440 \u2014 \u0442\u043e\u0440\u0442.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/0e0\/b82\/76b\/0e0b8276b1d003a068691717e8769517.jpeg\" width=\"768\" height=\"768\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0e0\/b82\/76b\/0e0b8276b1d003a068691717e8769517.jpeg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f.<\/p>\n<ul>\n<li>\n<p>\u0427\u0435\u043b\u043b\u0435\u043d\u0434\u0436 \u0431\u0443\u0434\u0435\u0442 \u0438\u0434\u0442\u0438 6 \u043d\u0435\u0434\u0435\u043b\u044c \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438<\/p>\n<\/li>\n<li>\n<p>\u041a \u0443\u0447\u0430\u0441\u0442\u0438\u044e \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0438 \u043f\u043e\u0441\u0442\u044b \u0432 \u043b\u0438\u0447\u043d\u044b\u0445 \u0438 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0431\u043b\u043e\u0433\u0430\u0445, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u0433 \u2014 \u0430\u0432\u0442\u043e\u0433\u0435\u043d-\u0447\u0435\u043b\u043b\u0435\u043d\u0434\u0436.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0432 \u0447\u0435\u043b\u043b\u0435\u043d\u0434\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u044c\u0438, \u043d\u043e \u0438 \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 <a href=\"https:\/\/habr.com\/ru\/posts\/\"><u>\u043f\u043e\u0441\u0442\u044b<\/u><\/a>. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0435\u0441\u0442\u044c \u0447\u0442\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u043e \u0438 \u043f\u043e \u0434\u0435\u043b\u0443, \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e<\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u0412 \u0446\u0435\u043d\u0442\u0440\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u2014 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0418\u0418, \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u0418\u0418-\u0430\u0433\u0435\u043d\u0442\u044b. \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442\u0441\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043d\u044b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0438 \u043f\u043e\u0441\u0442\u044b, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u043b\u0438\u0447\u043d\u043e\u043c \u043e\u043f\u044b\u0442\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043d\u0430 \u0431\u0430\u0437\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0418\u0418. \u0420\u0435\u0440\u0430\u0439\u0442\u044b, \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u043a \u0443\u0447\u0430\u0441\u0442\u0438\u044e \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f<\/p>\n<\/li>\n<\/ul>\n<p>\u00ab\u041d\u043e \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u0441\u043e\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f?\u00bb \u2014 \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u0435 \u0432\u044b. \u0410 \u0437\u0430\u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0438\u0437\u044b. \u0418\u0437 \u043f\u044f\u0442\u0435\u0440\u043a\u0438 \u0441\u0442\u0430\u0442\u0435\u0439 \u0438 \u043f\u043e\u0441\u0442\u043e\u0432-\u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u0441 \u0441\u0430\u043c\u044b\u043c \u0432\u044b\u0441\u043e\u043a\u0438\u043c \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u043e\u043c \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u044b \u0421\u0430\u043c\u043e\u043b\u0435\u0442\u0430 \u0432\u044b\u0431\u0435\u0440\u0443\u0442 \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u043e \u0442\u0440\u0451\u0445 \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u0435\u0439. \u042d\u0442\u0438\u043c \u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u0447\u0438\u043a\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0433\u0440\u0430\u043d\u0442\u044b \u043e\u0442 \u0425\u0430\u0431\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d\u0438 \u0441\u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<ul>\n<li>\n<p>1 \u043c\u0435\u0441\u0442\u043e: \u0431\u043b\u043e\u0433 \u043f\u043e \u0442\u0430\u0440\u0438\u0444\u0443 \u00ab\u0411\u0438\u0437\u043d\u0435\u0441\u00bb \u043d\u0430 \u043f\u043e\u043b\u0433\u043e\u0434\u0430, \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0438 \u043f\u043e\u0441\u0442 \u0432 \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445 \u043e \u0432\u0430\u0448\u0435\u043c \u043a\u0435\u0439\u0441\u0435.<\/p>\n<\/li>\n<li>\n<p>2 \u043c\u0435\u0441\u0442\u043e: \u0431\u043b\u043e\u0433 \u043f\u043e \u0442\u0430\u0440\u0438\u0444\u0443 \u00ab\u0411\u0438\u0437\u043d\u0435\u0441\u00bb \u043d\u0430 \u043f\u043e\u043b\u0433\u043e\u0434\u0430, \u043f\u043e\u0441\u0442 \u0432 \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445 \u043e \u0432\u0430\u0448\u0435\u043c \u043a\u0435\u0439\u0441\u0435.<\/p>\n<\/li>\n<li>\n<p>3 \u043c\u0435\u0441\u0442\u043e: \u0431\u043b\u043e\u0433 \u043f\u043e \u0442\u0430\u0440\u0438\u0444\u0443 \u00ab\u0411\u0438\u0437\u043d\u0435\u0441\u00bb \u043d\u0430 \u043f\u043e\u043b\u0433\u043e\u0434\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432\u0441\u0435 \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442 \u043c\u0435\u0440\u0447 \u043e\u0442 \u0421\u0430\u043c\u043e\u043b\u0435\u0442\u0430 \u2014 \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/67a\/e91\/680\/67ae916808ef0bc405d42839260d1c72.png\" width=\"740\" height=\"420\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/67a\/e91\/680\/67ae916808ef0bc405d42839260d1c72.png\"\/><\/figure>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0441\u0451. \u0410\u0432\u0442\u043e\u0440\u044b, \u0436\u0433\u0438\u0442\u0435 \u0430\u0432\u0442\u043e\u0433\u0435\u043d\u043e\u043c, \u0431\u0443\u0434\u0443 \u0436\u0434\u0430\u0442\u044c \u0432\u0430\u0448\u0438\u0445 \u043a\u0440\u0443\u0442\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439.<\/p>\n<\/p>\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\/835648\/\"> https:\/\/habr.com\/ru\/articles\/835648\/<\/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>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0418\u0418 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0430 \u043f\u0438\u043a\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438. \u041d\u0430 \u0441\u043c\u0435\u043d\u0443 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043f\u0440\u0438\u0448\u043b\u0438 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u043f\u0441\u0438\u0445\u043e\u0434\u0435\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u0438\u0434\u0435\u043e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443 \u043b\u044e\u0434\u0435\u0439 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f, \u043d\u043e \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0441\u0451. \u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e \u043b\u0438\u0448\u044c \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u0430\u0439\u0441\u0431\u0435\u0440\u0433\u0430. We need to go deeper. \u0425\u0430\u0431\u0440\u0443 \u043d\u0443\u0436\u043d\u044b \u043d\u0435 \u0441\u043c\u0435\u0448\u043d\u044b\u0435 \u043d\u0435\u0439\u0440\u043e(\u0434\u0435)\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043c\u0435\u043c\u044b, \u0430 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e\u0442 \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0418\u0418 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0438 \u043d\u0430 \u043e\u0441\u0442\u0440\u0438\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u0447\u0442\u043e \u043a\u0440\u0443\u0442\u043e\u0435 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435.<\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u041b\u0443\u0433\u043e\u0432\u043e\u0439, \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c Computer Vision \u0432 \u0421\u0430\u043c\u043e\u043b\u0435\u0442\u0435, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u044e \u043e \u0441\u0442\u0430\u0440\u0442\u0435 \u0430\u0432\u0442\u043e\u0433\u0435\u043d-\u0447\u0435\u043b\u043b\u0435\u043d\u0434\u0436\u0430. \u042d\u0442\u043e\u0442 \u0447\u0435\u043b\u043b\u0435\u043d\u0434\u0436 \u2014 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0430\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432\u0430 \u0425\u0430\u0431\u0440\u0430 \u0438 \u0421\u0430\u043c\u043e\u043b\u0435\u0442\u0430. \u041f\u0440\u043e \u043f\u0440\u0438\u0437\u044b \u043b\u0443\u0447\u0448\u0438\u043c \u0430\u0432\u0442\u043e\u0440\u0430\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438, \u0430 \u043d\u0430\u0447\u043d\u0443 \u0441 \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u2014 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u0440\u0443\u0433\u0443\u044e \u043c\u0435\u0431\u0435\u043b\u044c \u043d\u0430 \u0444\u043e\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u044c\u0435\u0440\u0430.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u042f \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043f\u0440\u043e \u043d\u0430\u0448\u0435 <a href=\"https:\/\/habr.com\/ru\/companies\/samolet\/articles\/825750\/\"><u>\u0440\u0435\u0448\u0435\u043d\u0438\u0435<\/u><\/a> \u0434\u043b\u044f \u0434\u0438\u0437\u0430\u0439\u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u044c\u0435\u0440\u043e\u0432 \u043d\u0430 \u043b\u0435\u0442\u0443. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0451\u0442 \u043e \u0431\u043e\u043b\u0435\u0435 \u0443\u0437\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435: \u0435\u0441\u0442\u044c \u0444\u043e\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u044c\u0435\u0440\u0430, \u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u2014 \u0430 \u043a\u0430\u043a \u0431\u044b \u0441\u043c\u043e\u0442\u0440\u0435\u043b\u043e\u0441\u044c, \u0435\u0441\u043b\u0438 \u0431\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0434\u0438\u0432\u0430\u043d\u0430 \u0441\u0442\u043e\u044f\u043b \u0434\u0440\u0443\u0433\u043e\u0439? \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0435 \u0440\u0430\u0441\u043f\u043b\u044b\u0432\u0447\u0430\u0442\u043e\u0439 \u0444\u0440\u0430\u0437\u043e\u0439, \u0430 \u0444\u043e\u0442\u043e\u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u2014 \u044d\u0442\u043e \u0438 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0438 \u0432\u0430\u0443-\u044d\u0444\u0444\u0435\u043a\u0442, \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u043e. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a\u0438\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 \u043c\u044b \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0431\u0438\u043b\u0438\u0441\u044c.<\/p>\n<h2>\u042d\u0442\u0430\u043f 1. \u041a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c<\/h2>\n<p>\u041a\u0430\u043a\u043e\u0439 \u0431\u044b \u043d\u0438 \u0431\u044b\u043b\u0430 \u043d\u0430\u0448\u0430 \u043c\u043e\u0434\u0435\u043b\u044c, \u044f\u0441\u043d\u043e, \u0447\u0442\u043e \u043d\u0430 \u0432\u0445\u043e\u0434 \u043e\u043d\u0430 \u0432 \u0442\u043e\u0439 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0442\u0440\u0438 \u0432\u0435\u0449\u0438:<\/p>\n<ul>\n<li>\n<p>\u0444\u043e\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u044c\u0435\u0440\u0430,<\/p>\n<\/li>\n<li>\n<p>\u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c,<\/p>\n<\/li>\n<li>\n<p>\u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435, \u043d\u0430 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u0421 \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u0443\u043d\u043a\u0442\u043e\u043c \u0432\u0441\u0451 \u043f\u043e\u043d\u044f\u0442\u043d\u043e (\u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435\u0442, \u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u0437\u0436\u0435), \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0430\u0447\u043d\u0451\u043c \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e. \u041a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0439\u043c\u0451\u0442, \u0447\u0442\u043e \u0437\u0430\u043c\u0435\u043d\u0435 \u043f\u043e\u0434\u043b\u0435\u0436\u0438\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u043e\u0442 \u044d\u0442\u043e\u0442 \u0436\u0451\u043b\u0442\u044b\u0439 \u0434\u0438\u0432\u0430\u043d?<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0421\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 (\u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438) \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u0435\u0441\u043b\u0438 \u0435\u0439 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0430\u0434\u0443\u0442 \u043c\u0430\u0441\u043a\u0443 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043f\u0438\u043a\u0441\u0435\u043b\u044f\u043c\u0438, \u043f\u043e\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u043c\u0438 \u0437\u0430\u043c\u0435\u043d\u0435. \u042d\u0442\u043e \u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043b\u044f \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u043d\u043e \u043d\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u041f\u043e\u043a\u0430 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a \u0421\u0430\u043c\u043e\u043b\u0435\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0438\u043f\u0435\u0442\u043a\u043e\u0439 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0438\u043a\u0441\u0435\u043b\u0438, \u043a\u043b\u0438\u0435\u043d\u0442 \u0437\u0430\u0441\u043a\u0443\u0447\u0430\u0435\u0442 \u0438 \u0443\u0439\u0434\u0451\u0442. \u0417\u043d\u0430\u0447\u0438\u0442, \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0443\u0436\u043d\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f UX \u0445\u043e\u0440\u043e\u0448\u043e, \u0435\u0441\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u00ab\u0414\u0438\u0432\u0430\u043d\u00bb \u0438\u0437 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0432\u0441\u0442\u0430\u043b\u0438 \u043d\u0430 \u0440\u0430\u0441\u043f\u0443\u0442\u044c\u0435. \u041c\u043e\u0436\u043d\u043e \u043e\u0431\u0443\u0447\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u0447\u0451\u0442\u043a\u043e \u043f\u043e\u0434 \u0441\u0432\u043e\u0439 \u043a\u0435\u0439\u0441. \u041e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0443 \u043c\u0435\u0431\u0435\u043b\u0438, \u043f\u0440\u0438\u0447\u0451\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430\u0448\u0435\u0439 \u043c\u0435\u0431\u0435\u043b\u0438, \u0438, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u044d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0435\u0439 \u043a\u0440\u0443\u0442\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u0437\u0430\u0434\u0430\u0447\u0435\u0439. \u041d\u043e \u0441\u0432\u043e\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u2014 \u044d\u0442\u043e \u0434\u043e\u043b\u0433\u043e. \u0421\u0431\u043e\u0440 \u0438 \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u0432\u0441\u0451 \u043e\u0447\u0435\u043d\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0442\u0430\u0439\u043c-\u0442\u0443-\u043c\u0430\u0440\u043a\u0435\u0442.<\/p>\n<p>\u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c \u2014 \u0432\u0437\u044f\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0438 \u0434\u043e\u043f\u0438\u043b\u0438\u0442\u044c \u043f\u043e\u0434 \u043d\u0430\u0448\u0438 \u043d\u0443\u0436\u0434\u044b. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442\u0430\u043a\u0430\u044f \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u0435\u0435 \u0442\u043e\u043d\u043a\u043e \u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043d\u044e\u0430\u043d\u0441\u044b \u0434\u0438\u0432\u0430\u043d\u043e\u0432. \u0410 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442. \u0412\u0441\u0451-\u0442\u0430\u043a\u0438 SOTA-\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0435\u043b\u0430\u043b\u0438\u0441\u044c \u0443\u043c\u043d\u044b\u043c\u0438 \u043b\u044e\u0434\u044c\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043b\u043e\u0436\u0438\u043b\u0438 \u0432 \u043d\u0438\u0445 \u043c\u043d\u043e\u0433\u043e \u0441\u0438\u043b \u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0418\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0445\u043e\u0442\u044f \u0431\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c, \u0441\u043e\u0431\u0440\u0430\u0442\u044c MVP \u0438\u0437 \u0447\u0435\u0433\u043e \u0431\u043e\u0433 \u043f\u043e\u0441\u043b\u0430\u043b, \u0430 \u0434\u0430\u043b\u044c\u0448\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u0440\u0435\u0448\u0430\u0442\u044c, \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u043b\u0438 \u043d\u0430\u0441 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e.<\/p>\n<p>\u041f\u043e\u0440\u0430\u0437\u043c\u044b\u0441\u043b\u0438\u0432, \u043c\u044b \u0443\u0441\u043c\u0438\u0440\u0438\u043b\u0438 \u0433\u043e\u0440\u0434\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u0448\u043b\u0438 \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u0443\u0442\u0451\u043c.<\/p>\n<h2>\u042d\u0442\u0430\u043f 2. \u0414\u0435\u0442\u0435\u043a\u0446\u0438\u044f<\/h2>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c, \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0434\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0434\u0432\u0435 \u2014\u00a0\u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f. \u0414\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u2014\u00a0\u044d\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0438 \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a (bbox). \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0431\u0431\u043e\u043a\u0441\u0430 \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0443\u0436\u0435\u043d \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u0442\u0430\u043f \u2014 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0441\u043a\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438 \u043c\u044b \u0432\u0437\u044f\u043b\u0438 <a href=\"https:\/\/huggingface.co\/docs\/transformers\/en\/model_doc\/grounding-dino\"><u>Grounding DINO<\/u><\/a> \u2014 SOTA-\u043c\u043e\u0434\u0435\u043b\u044c, \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0443\u044e \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e. \u041e\u043d\u0430 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0440\u043e\u043c\u043f\u0442\u044b \u043d\u0430 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0438 \u0438\u0449\u0435\u0442 \u043f\u043e \u043d\u0438\u043c \u043b\u044e\u0431\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f. \u041c\u043e\u0434\u0435\u043b\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0440\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 IDEA \u0432\u044b\u043a\u0430\u0442\u0438\u043b\u0438 <a href=\"https:\/\/github.com\/IDEA-Research\/Grounding-DINO-1.5-API\"><u>\u0432\u0435\u0440\u0441\u0438\u044e 1.5<\/u><\/a>. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u0432\u0437\u044f\u043b\u0438 \u0433\u043e\u0442\u043e\u0432\u0443\u044e \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0441 HuggingFace, \u0431\u0435\u0437 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u0434\u043e\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u0421\u043f\u043e\u0439\u043b\u0435\u0440: \u044d\u0442\u043e\u0433\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a Grounding DINO \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0434\u0438\u0432\u0430\u043d:<\/p>\n<pre><code class=\"python\">text_prompt = \u2018couch\u2019 box_threshold=0.25 text_threshold=0.25<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0446\u0435\u043b\u0438\u043a\u043e\u043c<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import requests  import torch from PIL import Image from transformers import AutoProcessor, AutoModelForZeroShotObjectDetection   def draw_boxes_on_image(img_pil, bbox_info):     img_pil = img_pil.copy()     draw = ImageDraw.Draw(img_pil)          boxes = bbox_info[0]['boxes']     labels = bbox_info[0]['labels']     scores = bbox_info[0]['scores']      font = ImageFont.load_default()     for box, label, score in zip(boxes, labels, scores):         x1, y1, x2, y2 = box         draw.rectangle([x1, y1, x2, y2], outline=\"red\", width=2)         text = f'{label}: {score:.2f}'         text_width, text_height = draw.textsize(text, font=font)         draw.text((x1, y1 - text_height - 2), text, fill=\"red\", font=font)      return img_pil  model_id = \"IDEA-Research\/grounding-dino-base\" processor = AutoProcessor.from_pretrained(model_id, cache_dir=CACHE_DIR) model = AutoModelForZeroShotObjectDetection.from_pretrained(model_id, cache_dir=CACHE_DIR).to(DEVICE)  # inference text = 'couch' inputs = processor(images=img_pil, text=text, return_tensors=\"pt\").to(DEVICE) with torch.no_grad():     outputs = model(**inputs)  bbox_info = processor.post_process_grounded_object_detection(     outputs,     inputs.input_ids,     box_threshold=0.25,     text_threshold=0.25,     target_sizes=[img_pil.size[::-1]] )  # postprocess  bbox_info[0]['boxes'] = bbox_info[0]['boxes'].cpu().numpy() bbox_info[0]['scores'] = bbox_info[0]['scores'].cpu().numpy()  pprint(bbox_info) img_pil_an = draw_boxes_on_image(img_pil, bbox_info)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<figure class=\"full-width\"><\/figure>\n<p>\u0410 \u0432\u043e\u0442 \u0442\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0443\u043c\u0431\u0443:<\/p>\n<pre><code class=\"python\">text_prompt = \u2018nightstand\u2019\u2019 box_threshold=0.25 text_threshold=0.25<\/code><\/pre>\n<figure class=\"full-width\"><\/figure>\n<p>\u0415\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441 \u2014 \u0447\u0442\u043e\u0431\u044b \u0445\u043e\u0440\u043e\u0448\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0431\u0431\u043e\u043a\u0441\u044b, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0448\u0445\u043e\u043b\u0434\u044b (\u043f\u043e\u0440\u043e\u0433\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0434\u0435\u043b\u0438). \u0421\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0442\u0440\u0435\u0448\u0445\u043e\u043b\u0434 \u2014 \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0441\u043e\u043c\u043d\u0435\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0435\u0431\u0435 \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0432\u044b\u0434\u0430\u0441\u0442 \u0431\u0431\u043e\u043a\u0441. \u0421\u043b\u0438\u0448\u043a\u043e\u043c \u043d\u0438\u0437\u043a\u0438\u0439 \u2014 \u0438 \u043e\u043d\u0430 \u0432\u044b\u0434\u0430\u0441\u0442 \u0438\u0445 \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u043d\u0430 \u0432\u0441\u0451 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0442\u0434\u0430\u043b\u0451\u043d\u043d\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435. \u041e\u0431\u044b\u0447\u043d\u043e \u0432\u0441\u0451 \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438, \u043d\u043e \u0435\u0441\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u0442 \u00ab\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u043e\u0435\u00bb \u0444\u043e\u0442\u043e (\u043d\u0438\u0437\u043a\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e, \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0439 \u0440\u0430\u043a\u0443\u0440\u0441, \u043c\u043d\u043e\u0433\u043e \u043c\u0435\u043b\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432), \u0442\u043e \u0432\u044b\u0441\u043e\u043a\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442 \u043e\u0434\u043d\u0430 \u0438\u0437 \u0434\u0432\u0443\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0443\u043b\u0438\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043a\u0435\u0439\u0441\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u00ab\u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439\u00bb: \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043e\u043d \u043f\u0440\u043e\u0441\u0438\u043b \u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0434\u0440\u0443\u0433\u043e\u0435 \u0444\u043e\u0442\u043e. \u041d\u043e \u0441\u043d\u044f\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0435 \u0444\u043e\u0442\u043e \u2014 \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u00ab\u0434\u043e\u0440\u043e\u0433\u0430\u044f\u00bb \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f. \u0418 \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (\u0432\u0440\u0435\u043c\u044f, \u0443\u0441\u0438\u043b\u0438\u044f), \u0438 \u0434\u043b\u044f \u043d\u0430\u0441 (\u0432\u0430\u0443-\u044d\u0444\u0444\u0435\u043a\u0442 \u0438\u0441\u043f\u043e\u0440\u0447\u0435\u043d, \u043a\u043b\u0438\u0435\u043d\u0442 \u043d\u0435\u0434\u043e\u0432\u043e\u043b\u0435\u043d).\u00a0<\/p>\n<p>\u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432, \u043a\u0430\u043a \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u043e\u0444\u0442\u0430:<\/p>\n<ul>\n<li>\n<p>\u0410\u0432\u0442\u043e\u043f\u043e\u0434\u0431\u043e\u0440 \u0442\u0440\u0435\u0448\u0445\u043e\u043b\u0434\u043e\u0432 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u043d\u044f\u0442\u044c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u043e\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u043e\u0439 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0430\u043f\u0441\u043a\u0435\u0439\u043b\u0430 (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0435\u0449\u0451 \u043e\u0434\u043d\u043e\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e)<\/p>\n<\/li>\n<li>\n<p>\u0418\u043b\u0438 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0443 1 \u0438 \u043e\u0431\u0443\u0447\u0438\u0442\u044c\/\u0434\u043e\u043e\u0431\u0443\u0447\u0438\u0442\u044c \u0441\u0432\u043e\u044e, \u0431\u043e\u043b\u0435\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043a\u0430 \u0447\u0442\u043e \u043c\u044b \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0431\u0443\u0434\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435\u0435.<\/p>\n<h2>\u042d\u0442\u0430\u043f 3. \u0421\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/h2>\n<p>\u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c bbox, \u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0441\u043a\u0430. \u041d\u0430 \u044d\u0442\u043e\u043c \u0448\u0430\u0433\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 <a href=\"https:\/\/github.com\/facebookresearch\/segment-anything\"><u>Segment Anything Model (SAM)<\/u><\/a> \u2014 \u0435\u0449\u0451 \u043e\u0434\u043d\u0443 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u0443\u044e SOTA-\u043c\u043e\u0434\u0435\u043b\u044c. \u0422\u043e\u0447\u043d\u0435\u0435, \u043d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 SOTA, \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u044b\u0448\u043b\u0430 <a href=\"https:\/\/github.com\/facebookresearch\/segment-anything-2\"><u>\u0432\u0442\u043e\u0440\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f<\/u><\/a>, \u043c\u044b \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435, \u043d\u043e \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043b\u0438. SAM \u0443\u043c\u0435\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434 \u0440\u0430\u0437\u043d\u044b\u0435 \u0432\u0435\u0449\u0438, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 bbox, \u0430 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0434\u0430\u0451\u0442 \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0441\u043a\u0443.\u00a0<\/p>\n<p>\u0421\u043a\u0440\u0435\u0441\u0442\u0438\u0442\u044c Grounding DINO \u0438 SAM \u2014 \u044d\u0442\u043e \u043d\u0435 \u043d\u0430\u0448\u0435 \u043d\u043e\u0443-\u0445\u0430\u0443. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0434\u0430\u0436\u0435 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 Groundind DINO \u0435\u0441\u0442\u044c <a href=\"https:\/\/github.com\/IDEA-Research\/Grounded-Segment-Anything?tab=readme-ov-file\"><u>\u0441\u0441\u044b\u043b\u043a\u0430<\/u><\/a> \u043d\u0430 \u0441\u0432\u044f\u0437\u043a\u0443 Grounded-SAM. \u041c\u044b \u043d\u0435 \u0441\u0442\u0430\u043b\u0438 \u0431\u0440\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u0443\u044e \u0441\u0432\u044f\u0437\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438, \u043d\u043e \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0434\u0435\u043b\u0430\u0435\u043c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435.<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438.<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import torch from PIL import Image import requests from transformers import SamModel, SamProcessor  model_id = \"facebook\/sam-vit-huge\" model = SamModel.from_pretrained(model_id, cache_dir=CACHE_DIR).to(DEVICE) processor = SamProcessor.from_pretrained(model_id, cache_dir=CACHE_DIR)  boxes = bbox_info[0]['boxes'].tolist() inputs = processor(img_pil, input_boxes=[boxes], return_tensors=\"pt\").to(DEVICE) with torch.no_grad():     outputs = model(**inputs)  masks = processor.image_processor.post_process_masks(     outputs.pred_masks.cpu(), inputs[\"original_sizes\"].cpu(), inputs[\"reshaped_input_sizes\"].cpu(), mask_threshold=-10 ) scores = outputs.iou_scores  numpy_data = masks[0].numpy().astype('uint8') * 255 image_data = numpy_data[0, 0] image = Image.fromarray(image_data)<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u0442\u0430\u043a\u043e\u0435:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>SAM \u0447\u0435\u0440\u0442\u043e\u0432\u0441\u043a\u0438 \u0445\u043e\u0440\u043e\u0448, \u043d\u043e \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441\u044b. \u0412 \u043a\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0432\u0441\u0451 \u043f\u043e\u0439\u0434\u0451\u0442 \u043d\u0435 \u0442\u0430\u043a?<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441\u043b\u043e\u0436\u043d\u044b\u0435, \u043d\u0435\u0447\u0451\u0442\u043a\u0438\u0435 \u0438\u043b\u0438 \u0440\u0430\u0437\u043c\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b, \u0443 \u043c\u043e\u0434\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438 \u0441 \u0438\u0445 \u0442\u043e\u0447\u043d\u044b\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c.<\/p>\n<\/li>\n<li>\n<p>SAM \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u043b\u043e\u0442\u043d\u043e\u0439 \u0441\u0446\u0435\u043d\u0435 \u0441\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0442\u043e\u043b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043b\u043e\u0436\u043a\u0438-\u0432\u0438\u043b\u043a\u0438-\u0442\u0430\u0440\u0435\u043b\u043a\u0438).<\/p>\n<\/li>\n<li>\n<p>\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u2014 \u0438\u0445 \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c \u0442\u0440\u0443\u0434\u043d\u0435\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043b\u043e\u0445\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f..<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0443\u0434\u0430\u0447\u043d\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f bbox \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b. \u041f\u043b\u043e\u0445\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c, \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c, \u0438 \u0442.\u043f.<\/p>\n<p>\u0421\u0430\u043c\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u2014 \u044d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0441\u0446\u0435\u043d\u0430. \u0412\u043e\u0437\u044c\u043c\u0435\u043c \u0441\u0442\u043e\u043b \u0441 \u043f\u043e\u0441\u0443\u0434\u043e\u0439, \u0438\u043b\u0438, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0434\u0438\u0432\u0430\u043d \u0441 \u043f\u043e\u0434\u0443\u0448\u043a\u0430\u043c\u0438. SAM \u043c\u043e\u0436\u0435\u0442 \u0440\u0435\u0448\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u0443\u0448\u043a\u0438 \u2014 \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0434\u0438\u0432\u0430\u043d\u043e\u043c, \u0438 \u043d\u0430 \u0438\u0445 \u043c\u0435\u0441\u0442\u0435 \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u0434\u044b\u0440\u043a\u0438 \u0432 \u043c\u0430\u0441\u043a\u0435. \u0412 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u0441\u043c\u044b\u0441\u043b\u0435 SAM \u0434\u0430\u0436\u0435 \u043f\u0440\u0430\u0432 \u2014 \u043e\u0434\u043d\u0430\u043a\u043e \u043d\u0430\u043c \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043b\u0435\u0433\u0447\u0435, \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<p>\u0412\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e:<\/p>\n<ul>\n<li>\n<p>\u0417\u0430\u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0442\u044c \u0432\u0441\u044e \u0441\u0446\u0435\u043d\u0443 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u2014 \u0442\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u0431\u0431\u043e\u043a\u0441\u044b \u0438 \u0434\u043b\u044f \u0434\u0438\u0432\u0430\u043d\u0430, \u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u0443\u0448\u0435\u043a, \u0438 \u0434\u043b\u044f \u043f\u043b\u0435\u0434\u0430, \u0432\u043e\u043e\u0431\u0449\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e. \u041f\u043e\u0442\u043e\u043c \u043e\u0442\u0434\u0430\u0442\u044c SAM \u043a\u0443\u0447\u0443 \u0431\u0431\u043e\u043a\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c, \u0438 \u043f\u0443\u0441\u0442\u044c \u043e\u043d \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439. \u041e\u0434\u043d\u0430\u043a\u043e \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u044f \u0432\u0441\u0435\u0433\u043e \u2014 \u0433\u0440\u0443\u0431\u043e\u0435 \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0451\u043c\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0438\u0433\u0440\u0430\u0442\u044c \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u0442\u0440\u0435\u0448\u0445\u043e\u043b\u0434\u0430 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u043a\u0438 (\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 mask_threshold \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043a\u043e\u0434\u0430). \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u0434\u0430\u0442\u044c SAM \u0431\u043e\u043b\u044c\u0448\u0435 \u00ab\u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438\u00bb, \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u0434\u0443\u0448\u043a\u0438 \u2014 \u0447\u0430\u0441\u0442\u044c \u0434\u0438\u0432\u0430\u043d\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0451, \u041d\u0430\u0442\u0430\u0448\u0430, \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0441\u0451 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u044e SAM \u00absegment everything\u00bb. \u041a\u043e\u0433\u0434\u0430 \u0435\u043c\u0443 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u043c\u043f\u0442\u043e\u0432, \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442 \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u0412 \u043c\u0438\u0440\u0435, \u0433\u0434\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u0438 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e, \u044d\u0442\u043e \u043c\u043e\u0433\u043b\u043e \u0431\u044b \u0431\u044b\u0442\u044c \u043b\u0443\u0447\u0448\u0435\u0439 \u043e\u043f\u0446\u0438\u0435\u0439, \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u044d\u0442\u043e \u043d\u0435\u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u043d\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0447\u0442\u043e \u0440\u044f\u0434\u043e\u043c \u0441 \u0431\u0431\u043e\u043a\u0441\u043e\u043c. \u0417\u0430\u043e\u0434\u043d\u043e \u0442\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0442\u043e\u0447\u043d\u044b\u0439 \u0431\u0431\u043e\u043a\u0441 \u2014 \u0435\u0441\u043b\u0438 \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u0447\u0430\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0435 \u0432\u043b\u0435\u0437\u043b\u0430 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0434\u0435\u0442\u0435\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u0442\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043c\u0430\u0441\u043a\u0438 (\u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0438\u0436\u0435).<\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u043e\u043f\u044f\u0442\u044c \u0436\u0435 \u0432 \u0444\u0430\u0437\u0435 \u0440\u0435\u0441\u0451\u0440\u0447\u0430, \u043e\u0431\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u043c \u044d\u0442\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441 \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u0434\u0440\u0443\u0433\u0438\u0445. \u0427\u0442\u043e\u0431\u044b<\/p>\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-429716","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/429716","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=429716"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/429716\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=429716"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=429716"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=429716"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}