{"id":269859,"date":"2015-12-08T12:20:03","date_gmt":"2015-12-08T09:20:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=269859"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=269859","title":{"rendered":"\u041a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0430 Kinect v2 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e OpenCV \u043d\u0430 Python"},"content":{"rendered":"<p>       \u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u043c\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u043f\u0430\u0440\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u043e\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441 \u043a\u0430\u043d\u0430\u043b\u043e\u043c \u0434\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0438 \u0440\u0435\u0448\u0438\u043b\u0438 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Kinect v2. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442\u0441\u044f \u043d\u0430 Python, \u0442\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c Kinect \u0438\u0437 Python, \u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e, \u0442\u0430\u043a \u043a\u0430\u043a Kinect \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0432\u043d\u043e\u0441\u0438\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u043a\u0430\u0434\u0440\u044b \u0438 \u0434\u0430\u0435\u0442 \u0441\u0430\u043d\u0442\u0438\u043c\u0435\u0442\u0440\u043e\u0432\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0433\u043b\u0443\u0431\u0438\u043d\u044b.<\/p>\n<p>  \u0414\u043e \u044d\u0442\u043e\u0433\u043e \u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0438\u043c\u0435\u043b \u0434\u0435\u043b\u0430 \u043d\u0438 \u0441 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u043c \u0437\u0440\u0435\u043d\u0438\u0435\u043c, \u043d\u0438 \u0441 OpenCV, \u043d\u0438 \u0441 Kinect. \u0418\u0441\u0447\u0435\u0440\u043f\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e, \u043a\u0430\u043a \u0441\u043e \u0432\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u0445\u043e\u0437\u044f\u0439\u0441\u0442\u0432\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043c\u043d\u0435 \u043d\u0430\u0439\u0442\u0438 \u0442\u043e\u0436\u0435 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c, \u0442\u0430\u043a \u0447\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u043f\u043e\u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f. \u0418 \u044f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u043b\u0438\u0448\u043d\u0438\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0411\u044b\u0442\u044c \u043c\u043e\u0436\u0435\u0442, \u043e\u043d\u0430 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435\u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0434\u043b\u044f \u043a\u0430\u043a\u043e\u0433\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0442\u0440\u0430\u0436\u0434\u0443\u0449\u0435\u0433\u043e,<s> \u0430 \u0435\u0449\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0434\u043b\u044f \u0433\u0430\u043b\u043e\u0447\u043a\u0438 \u0432 \u043e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u0438<\/s>.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/fa0\/4ae\/2d7\/fa04ae2d7d414303b1cd224d7416b8f2.png\" alt=\"image\"\/><br \/>  <a name=\"habracut\"><\/a><br \/>  <u>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f<\/u>: Windows 8 \u0438 \u0432\u044b\u0448\u0435, Kinect SDK 2.0, USB 3.0. <\/p>\n<p>  \u0422\u0430\u0431\u043b\u0438\u0446\u0430 I. \u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 Kinect v2:  <\/p>\n<table>\n<tr>\n<td>\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 RGB \u043a\u0430\u043c\u0435\u0440\u044b, \u043f\u0438\u043a\u0441.<\/td>\n<td>1920 x 1080<\/td>\n<\/tr>\n<tr>\n<td>\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u0440\u0430\u043a\u0440\u0430\u0441\u043d\u043e\u0439 (\u0418\u041a) \u043a\u0430\u043c\u0435\u0440\u044b, \u043f\u0438\u043a\u0441.<\/td>\n<td>512 x 424<\/td>\n<\/tr>\n<tr>\n<td>\u0423\u0433\u043b\u044b \u043e\u0431\u0437\u043e\u0440\u0430 RGB \u043a\u0430\u043c\u0435\u0440\u044b, \u00ba<\/td>\n<td>84.1 x 53.8<\/td>\n<\/tr>\n<tr>\n<td>\u0423\u0433\u043b\u044b \u043e\u0431\u0437\u043e\u0440\u0430 \u0418\u041a \u043a\u0430\u043c\u0435\u0440\u044b, \u00ba<\/td>\n<td>70.6 x 60.0<\/td>\n<\/tr>\n<tr>\n<td>\u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u0434\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043c.<\/td>\n<td>0.6 \u2014 8.0<sup>1<\/sup> <\/td>\n<\/tr>\n<tr>\n<td>\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u044a\u0435\u043c\u043a\u0438 RGB \u043a\u0430\u043c\u0435\u0440\u044b, \u0413\u0446<\/td>\n<td>30<\/td>\n<\/tr>\n<tr>\n<td>\u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0441\u044a\u0435\u043c\u043a\u0438 \u0418\u041a \u043a\u0430\u043c\u0435\u0440\u044b, \u0413\u0446<\/td>\n<td>30<\/td>\n<\/tr>\n<\/table>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">1<\/b><\/p>\n<div class=\"spoiler_text\">\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443. <a href=\"https:\/\/dev.windows.com\/en-us\/kinect\/hardware\">\u0422\u0443\u0442<\/a> \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043e 0.5\u20134.5 \u043c., \u043f\u043e \u0444\u0430\u043a\u0442\u0443 \u044f \u043f\u043e\u043b\u0443\u0447\u0430\u043b ~0.6-8.0 \u043c.   <\/div>\n<\/div>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u0435\u0440\u0435\u0434\u043e \u043c\u043d\u043e\u0439 \u0441\u0442\u043e\u044f\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<ol>\n<li>\u0437\u0430\u0432\u0435\u0441\u0442\u0438 Kinect \u043d\u0430 Python;<\/li>\n<li>\u043e\u0442\u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u0430\u0442\u044c RGB \u0438 \u0418\u041a \u043a\u0430\u043c\u0435\u0440\u044b;<\/li>\n<li>\u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043a\u0430\u0434\u0440\u043e\u0432 RGB \u0438 \u0418\u041a;<\/li>\n<li>\u043e\u0442\u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043d\u0430\u043b \u0433\u043b\u0443\u0431\u0438\u043d\u044b.<\/li>\n<\/ol>\n<p>  \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0441\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u0443\u043d\u043a\u0442\u0435.<\/p>\n<h4><b>1. Kinect v2 \u0438 Python<\/b><\/h4>\n<p>  \u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b, \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u044f \u0441 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u043c \u0437\u0440\u0435\u043d\u0438\u0435\u043c \u0434\u0435\u043b \u043d\u0435 \u0438\u043c\u0435\u043b, \u043d\u043e \u0434\u043e \u043c\u0435\u043d\u044f \u0434\u043e\u0445\u043e\u0434\u0438\u043b\u0438 \u0441\u043b\u0443\u0445\u0438, \u0447\u0442\u043e \u0431\u0435\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 OpenCV \u0442\u0443\u0442 \u043d\u0438\u043a\u0443\u0434\u0430. \u0410 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u043d\u0435\u0439 \u0435\u0441\u0442\u044c \u0446\u0435\u043b\u044b\u0439 <a href=\"http:\/\/docs.opencv.org\/3.0.0\/d9\/d0c\/group__calib3d.html\">\u043c\u043e\u0434\u0443\u043b\u044c <\/a>\u0434\u043b\u044f \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0438 \u043a\u0430\u043c\u0435\u0440, \u0442\u043e \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u044f \u0441\u043e\u0431\u0440\u0430\u043b OpenCV \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Python 3 \u043f\u043e\u0434 Windows 8.1. \u0422\u0443\u0442 \u043d\u0435 \u043e\u0431\u043e\u0448\u043b\u043e\u0441\u044c \u0431\u0435\u0437 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0440\u043e\u043a\u0438, \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u044e\u0449\u0435\u0439 \u0441\u0431\u043e\u0440\u043a\u0443 open-sour\u0441e \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 Windows, \u043d\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0431\u0435\u0437 \u043e\u0441\u043e\u0431\u044b\u0445 \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u043e\u0432 \u0438 \u0432 \u0446\u0435\u043b\u043e\u043c \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 <a href=\"http:\/\/docs.opencv.org\/master\/d5\/de5\/tutorial_py_setup_in_windows.html#gsc.tab=0\">\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 <\/a>\u043e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. <br \/>  \u0421 Kinect-\u043e\u043c \u0436\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u043e\u043b\u044c\u0448\u0435. \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 SDK \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f C#, \u0421++ \u0438 JavaScript. \u0415\u0441\u043b\u0438 \u0437\u0430\u0439\u0442\u0438 \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e OpenCV <a href=\"http:\/\/docs.opencv.org\/3.0-rc1\/d7\/df5\/tutorial_ug_highgui.html\">\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 <\/a> \u0432\u0432\u043e\u0434 \u0441 3D \u043a\u0430\u043c\u0435\u0440, \u043d\u043e \u043a\u0430\u043c\u0435\u0440\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430 \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 OpenNI. OpenNI \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 Kinect, \u0430 \u0432\u043e\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0434\u0430\u0432\u043d\u0438\u0439 Kinect v2 \u2014 \u043d\u0435\u0442. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0434\u043e\u0431\u0440\u044b\u0435 \u043b\u044e\u0434\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 <a href=\"https:\/\/github.com\/kaorun55\/OpenNI2-Kinect2Driver\">\u0434\u0440\u0430\u0439\u0432\u0435\u0440 <\/a>\u0434\u043b\u044f Kinect v2 \u043f\u043e\u0434 OpenNI. \u041e\u043d \u0434\u0430\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044e\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \u0441 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 NiViewer, \u043d\u043e \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441 OpenCV \u0432\u044b\u043b\u0435\u0442\u0430\u0435\u0442 \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u043e\u0431\u0440\u044b\u0435 \u043b\u044e\u0434\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438<a href=\"https:\/\/github.com\/kinect\/PyKinect2\"> Python-\u043e\u0431\u0435\u0440\u0442\u043a\u0443<\/a> \u043d\u0430\u0434 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c SDK. \u041d\u0430 \u043d\u0435\u0439 \u044f \u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f.<\/p>\n<h4><b>2. \u041a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0430 \u043a\u0430\u043c\u0435\u0440<\/b><\/h4>\n<p>  \u041a\u0430\u043c\u0435\u0440\u044b \u043d\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b, \u0438\u0441\u043a\u0430\u0436\u0430\u044e\u0442 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0438 \u043d\u0443\u0436\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0435. \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Kinect \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439, \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u044d\u0442\u0438 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \u043a\u0430\u043a \u043d\u0430 RGB \u043a\u0430\u043c\u0435\u0440\u0435, \u0442\u0430\u043a \u0438 \u043d\u0430 \u0434\u0430\u0442\u0447\u0438\u043a\u0435 \u0433\u043b\u0443\u0431\u0438\u043d\u044b. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0418\u041a \u043a\u0430\u043c\u0435\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u043e\u043c \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0433\u043b\u0443\u0431\u0438\u043d\u044b, \u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0418\u041a \u043a\u0430\u0434\u0440\u044b \u0434\u043b\u044f \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0438, \u0430 \u0437\u0430\u0442\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0439 \u0441 \u043a\u0430\u0434\u0440\u043e\u0432 \u0433\u043b\u0443\u0431\u0438\u043d\u044b.<\/p>\n<p>  \u041a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0430 \u043a\u0430\u043c\u0435\u0440\u044b \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0446\u0435\u043b\u044c\u044e \u0443\u0437\u043d\u0430\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u0430\u043c\u0435\u0440\u044b, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2014 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043a\u0430\u043c\u0435\u0440\u044b \u0438 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u0438.<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/43f\/3ff\/9e5\/43f3ff9e56d94ba0bf206ec38ce737a2.png\" alt=\"image\" height=\"400\" width=\"444\"\/><\/p>\n<p>  \u041c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 \u043a\u0430\u043c\u0435\u0440\u044b \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0432\u0438\u0434\u0430:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/61d\/95f\/272\/61d95f27296b4a80b058799edc53756d.png\"\/> \u0433\u0434\u0435<\/p>\n<p>  (<i>\u0441<sub>u<\/sub>, c<sub>v<\/sub><\/i>) \u2014 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 (\u0442\u043e\u0447\u043a\u0438 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u043e\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u0441\u0438 \u0441 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c\u044e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0432 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u0430\u043c\u0435\u0440\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0442\u043e\u0447\u043d\u043e \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0430 \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430);<\/p>\n<p>  <i>f<sub>u<\/sub>, f<sub>v<\/sub><\/i> \u2014 \u0444\u043e\u043a\u0443\u0441\u043d\u043e\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <i>f<\/i>, \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u043d\u043e\u0435 \u0432 \u0448\u0438\u0440\u0438\u043d\u0435 \u0438 \u0432\u044b\u0441\u043e\u0442\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u044f.<\/p>\n<p>  \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u0432\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0432\u0438\u0434\u0430 \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u0438: \u0440\u0430\u0434\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u044f \u0438 \u0442\u0430\u043d\u0433\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u044f.<\/p>\n<p>  <u>\u0420\u0430\u0434\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u044f<\/u> \u2014 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043d\u0435\u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0430\u0440\u0430\u0431\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u044b \u043b\u0438\u043d\u0437\u044b. \u0418\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0434\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u0435\u0439, \u0440\u0430\u0432\u043d\u044b 0 \u0432 \u043e\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0446\u0435\u043d\u0442\u0440\u0435 \u0441\u0435\u043d\u0441\u043e\u0440\u0430 \u0438 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u044e\u0442 \u043a \u043a\u0440\u0430\u044f\u043c. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0440\u0430\u0434\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u044f \u0432\u043d\u043e\u0441\u0438\u0442 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0432\u043a\u043b\u0430\u0434 \u0432 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  <u>\u0422\u0430\u043d\u0433\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u044f<\/u> \u2014 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043b\u0438\u043d\u0437\u044b \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a2d\/34e\/f76\/a2d34ef76130433586b5106c179e6669.png\"\/><\/p>\n<p>  \u0414\u043b\u044f \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e <a href=\"http:\/\/docs.opencv.org\/2.4\/doc\/tutorials\/calib3d\/camera_calibration\/camera_calibration.html\">\u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f<\/a>:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ffd\/b2a\/718\/ffdb2a718a1b4702930f4af387515157.png\"\/><\/p>\n<p>  \u0433\u0434\u0435 (<i>u,v<\/i>) \u2014 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u044f,<br \/>  (<i>u<sub>corrected<\/sub>,v<sub>corrected<\/sub><\/i>) \u2014 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0439,<br \/>  <i>k<sub>1<\/sub>, k<sub>2<\/sub>, k<sub>3<\/sub><\/i> \u2014 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0440\u0430\u0434\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u0438,<br \/>  <i>p<sub>1<\/sub>, p<sub>2<\/sub> <\/i> \u2014 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0442\u0430\u043d\u0433\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u0438,<br \/>  <i> r<sup>2<\/sup>=u<sup>2<\/sup>+v<sup>2<\/sup>.<\/i><\/p>\n<p>  \u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043a\u0430\u043c\u0435\u0440\u044b (\u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u0438, \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043a\u0430\u043c\u0435\u0440\u044b) \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u044d\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (<i>ReEr, Reprojection Error<\/i>). <i>ReEr <\/i>\u2014 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u0432 \u043f\u0438\u043a\u0441\u0435\u043b\u044f\u0445) \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0435\u0439 <i>P&#8217;<\/i> \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u0447\u043a\u0438 <i>P<\/i> \u043d\u0430 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0438 \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0435\u0439 <i>P&#187;<\/i> \u044d\u0442\u043e\u0439 \u0436\u0435 \u0442\u043e\u0447\u043a\u0438 <i>P<\/i>, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043a\u0430\u043c\u0435\u0440\u044b.<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/83f\/15b\/255\/83f15b25525f48fcbf3e917689a67e1f.png\" alt=\"image\" height=\"356\" width=\"400\"\/><\/p>\n<p>  \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0438 \u043a\u0430\u043c\u0435\u0440\u044b \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0448\u0430\u0433\u043e\u0432:<\/p>\n<p>  1) c\u0434\u0435\u043b\u0430\u0442\u044c 20-30 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 <s>\u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0435\u0439<\/s> \u0448\u0430\u0445\u043c\u0430\u0442\u043d\u043e\u0439 \u0434\u043e\u0441\u043a\u0438;<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a77\/4f0\/58d\/a774f058dd01405e9391df228a2acea4.png\" alt=\"image\" height=\"572\" width=\"1000\"\/><\/p>\n<p>  2) \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438;<\/p>\n<pre><code class=\"python\">found, corners = cv2.findChessboardCorners(img, #\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \t\t\t\t\t    PATTERN_SIZE,#\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0442\u043e\u0447\u0435\u043a, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 6x8  \t\t\t\t\t    flags)#\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0438\u0441\u043a\u0430 \u0442\u043e\u0447\u0435\u043a <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/856\/8f8\/e09\/8568f8e092794e36a902296d0337f931.png\"\/><\/p>\n<p>  3) \u043d\u0430\u0439\u0442\u0438 \u0442\u0430\u043a\u0438\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442 <i>ReEr<\/i>.<\/p>\n<pre><code class=\"python\">ReEr, camera_matrix, dist_coefs, rvecs, tvecs = cv2.calibrateCamera(obj_points,#\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u0430                                                                      #(\u0445', y', z'=0)                                                                     img_points,#\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f (u,v)                                                                     (w, h),#\u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f                                                                     None,#\u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043a\u0430\u043c\u0435\u0440\u044b                                                                     None, #\u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u0438                                                                     criteria = criteria,#\u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 ReEr \t\t                                                    flags = flags)#\u043a\u0430\u043a\u0438\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c <\/code><\/pre>\n<p>  \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0434\u043b\u044f RGB \u043a\u0430\u043c\u0435\u0440\u044b \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <i>ReEr <\/i>\u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u043e 0.3 \u043f\u0438\u043a\u0441\u0435\u043b\u044f, \u0430 \u0434\u043b\u044f \u0418\u041a \u043a\u0430\u043c\u0435\u0440\u044b \u2014 0.15. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u0438:<\/p>\n<pre><code class=\"python\">img = cv2.undistort(img, camera_matrix, dist_coefs) <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/39d\/1f7\/746\/39d1f774669f498aa5d667c9f76e530b.png\"\/><\/p>\n<h4><b>3. \u0421\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043a\u0430\u0434\u0440\u043e\u0432 \u0441 \u0434\u0432\u0443\u0445 \u043a\u0430\u043c\u0435\u0440<\/b><\/h4>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/1a9\/330\/541\/1a93305411f348a8881a1a87b0139b3a.png\" height=\"444\" width=\"400\"\/><\/p>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043b\u044f \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u043a\u0430\u043a \u0433\u043b\u0443\u0431\u0438\u043d\u0443 (Z \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0443), \u0442\u0430\u043a \u0438 \u0446\u0432\u0435\u0442, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0438\u0437 \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043d\u0430 \u043a\u0430\u0434\u0440\u0435 \u0433\u043b\u0443\u0431\u0438\u043d\u044b \u0432 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0418\u041a \u043a\u0430\u043c\u0435\u0440\u044b [2]:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/eef\/3cb\/3b3\/eef3cb3b37764d6f9f0b8014c84896a7.png\"\/><\/p>\n<p>  \u0433\u0434\u0435 (<i>x<sub>1<\/sub>,y<sub>1<\/sub>,z<sub>1<\/sub><\/i>) \u2014 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0442\u043e\u0447\u043a\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0418\u041a \u043a\u0430\u043c\u0435\u0440\u044b,<br \/>  <i>z<sub>1<\/sub><\/i> \u2014 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0439 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c \u0433\u043b\u0443\u0431\u0438\u043d\u044b,<br \/>  (<i>u<sub>1<\/sub>,v<sub>1<\/sub><\/i>) \u2014 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u043d\u0430 \u043a\u0430\u0434\u0440\u0435 \u0433\u043b\u0443\u0431\u0438\u043d\u044b,<br \/>  <i>c<sub>1,u<\/sub>, c<sub>1,v<\/sub><\/i> \u2014 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043e\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u0418\u041a \u043a\u0430\u043c\u0435\u0440\u044b, <br \/>  <i>f<sub>1,u<\/sub>, f<sub>1,v<\/sub><\/i> \u2014 \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0438 \u0444\u043e\u043a\u0443\u0441\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0418\u041a \u043a\u0430\u043c\u0435\u0440\u044b.<\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0418\u041a \u043a\u0430\u043c\u0435\u0440\u044b \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 RGB \u043a\u0430\u043c\u0435\u0440\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430<i> T<\/i> \u0438 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f <i>R<\/i>:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/139\/483\/292\/1394832929d648e891f4920a958a9cb8.png\"\/><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0438\u0437 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 RGB \u043a\u0430\u043c\u0435\u0440\u044b \u043a \u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c RGB \u043a\u0430\u0434\u0440\u0430:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/305\/db9\/532\/305db953214d446d88f25bd712f3233f.png\"\/><\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043b\u044f \u043f\u0438\u043a\u0441\u0435\u043b\u044f (<i>u<sub>1<\/sub>, v<sub>1<\/sub><\/i>) \u043a\u0430\u0434\u0440\u0430 \u0433\u043b\u0443\u0431\u0438\u043d\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f RGB \u043a\u0430\u0434\u0440\u0430 (<i>u<sub>2<\/sub>, v<sub>2<\/sub><\/i>).<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/04c\/17e\/1b5\/04c17e1b551b4361a3d0b0e30754dc55.png\"\/><\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435, \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0434\u0432\u043e\u0438\u0442\u0441\u044f. \u0422\u0430\u043a\u043e\u0439 \u0436\u0435 \u044d\u0444\u0444\u0435\u043a\u0442 \u043c\u043e\u0436\u043d\u043e <a href=\"http:\/\/www.bryancook.net\/2014\/03\/mapping-between-kinect-color-and-depth.html\">\u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c <\/a>\u0438 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 <i>CoordinateMapper <\/i>\u0438\u0437 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e SDK. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0435\u0441\u043b\u0438 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <i>bodyIndexFrame <\/i>(\u043f\u043e\u0442\u043e\u043a Kinect, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0443\u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0438 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443, \u0430 \u043a\u0430\u043a\u0438\u0435 \u043a \u0444\u043e\u043d\u0443) \u0434\u043b\u044f \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u0438 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0432\u043e\u0435\u043d\u0438\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0f4\/477\/36e\/0f447736ebc747fbbca89ffbd0288ec9.png\"\/><\/p>\n<p>  \u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f <i>R<\/i> \u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 <i>T<\/i> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0443\u044e \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0443 \u0434\u0432\u0443\u0445 \u043a\u0430\u043c\u0435\u0440. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c 20-30 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0439 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u043a\u0430\u043a RGB, \u0442\u0430\u043a \u0438 \u0418\u041a \u043a\u0430\u043c\u0435\u0440\u043e\u0439, \u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0440\u0443\u043a\u0430\u0445, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0441\u043d\u044f\u0442\u0438\u0435\u043c \u043a\u0430\u0434\u0440\u043e\u0432 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043a\u0430\u043c\u0435\u0440\u0430\u043c\u0438. \u0417\u0430\u0442\u0435\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <i>stereoCalibrate <\/i>\u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 OpenCV. \u0414\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043a\u0430\u043c\u0435\u0440 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043e\u0447\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043f\u0435\u0440\u0432\u043e\u0439 \u043a\u0430\u043c\u0435\u0440\u044b \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432\u0442\u043e\u0440\u043e\u0439 \u043a\u0430\u043c\u0435\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e ReEr.<\/p>\n<pre><code class=\"python\">retval, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F = cv2.stereoCalibrate(pattern_points, #\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445                                                            #\u0442\u043e\u0447\u0435\u043a \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (\u0445', y', z'=0)                                                           ir_img_points,#\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0418\u041a \u043a\u0430\u043c\u0435\u0440\u044b (u1, v1)                                                           rgb_img_points, #\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 RGB \u043a\u0430\u043c\u0435\u0440\u044b (u2, v2)                                                           irCamera['camera_matrix'],#\u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043a\u0430\u043c\u0435\u0440\u044b \u0418\u041a (\u0431\u0440\u0430\u0442\u044c \u0438\u0437 calibrateCamera),                                                           irCamera['dist_coefs'], #\u043a\u043e\u044d\u0444. \u0434\u0438\u0441. \u0418\u041a \u043a\u0430\u043c\u0435\u0440\u044b (\u0431\u0440\u0430\u0442\u044c \u0438\u0437 calibrateCamera)                                                           rgbCamera['camera_matrix'], #\u043c\u0430\u0442\u0440\u0438\u0446\u0430 RGB \u043a\u0430\u043c\u0435\u0440\u044b (\u0431\u0440\u0430\u0442\u044c \u0438\u0437 calibrateCamera)                                                                        rgbCamera['dist_coefs'], #\u043a\u043e\u044d\u0444. \u0434\u0438\u0441. RGB \u043a\u0430\u043c\u0435\u0440\u044b (\u0431\u0440\u0430\u0442\u044c \u0438\u0437 calibrateCamera)                                                           image_size) #\u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0418\u041a \u043a\u0430\u043c\u0435\u0440\u044b (\u0432 \u043f\u0438\u043a\u0441\u0435\u043b\u044f\u0445) <\/code><\/pre>\n<p>  \u0418 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 <i>ReEr <\/i> = 0.23.<\/p>\n<h4><b>4. \u041a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0430 \u043a\u0430\u043d\u0430\u043b\u0430 \u0433\u043b\u0443\u0431\u0438\u043d\u044b<\/b><\/h4>\n<p>  \u0414\u0430\u0442\u0447\u0438\u043a \u0433\u043b\u0443\u0431\u0438\u043d\u044b Kinect \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0433\u043b\u0443\u0431\u0438\u043d\u0443 (\u0438\u043c\u0435\u043d\u043d\u043e \u0433\u043b\u0443\u0431\u0438\u043d\u0443, \u0442.\u0435. Z-\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0443, \u0430 \u043d\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435) \u0432 \u043c\u043c. \u041d\u043e \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0447\u043d\u044b \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f? \u0421\u0443\u0434\u044f \u043f\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 [2], \u043e\u0448\u0438\u0431\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 c\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c 0.5-3 \u0441\u043c \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0438, \u0442\u0430\u043a \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0441\u043c\u044b\u0441\u043b \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0443 \u043a\u0430\u043d\u0430\u043b\u0430 \u0433\u043b\u0443\u0431\u0438\u043d\u044b.<\/p>\n<p>  \u042d\u0442\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 Kinect (\u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0439 \u0433\u043b\u0443\u0431\u0438\u043d\u043e\u0439 \u0438 \u0433\u043b\u0443\u0431\u0438\u043d\u043e\u0439, \u0432\u044b\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0439 \u0441\u0435\u043d\u0441\u043e\u0440\u043e\u043c) \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0410 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u043d\u0430\u0442\u044c \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u0443\u044e \u0433\u043b\u0443\u0431\u0438\u043d\u0443. \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u2014 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u043b\u043e\u0441\u043a\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u043a\u0430\u043c\u0435\u0440\u044b \u0438 \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e \u043d\u0435\u0433\u043e \u043b\u0438\u043d\u0435\u0439\u043a\u043e\u0439. \u041f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0441\u0434\u0432\u0438\u0433\u0430\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u0438 \u0434\u0435\u043b\u0430\u044f \u0441\u0435\u0440\u0438\u044e \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0438, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0439. \u041d\u043e, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u044d\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e, \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043d\u0430\u0439\u0442\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043b\u043e\u0441\u043a\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u043a\u0430\u043c\u0435\u0440\u044b \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0447\u0435\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u0442\u0430\u043b\u043e\u043d\u0430, \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430, \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u0437\u044f\u0442\u044c \u0433\u043b\u0443\u0431\u0438\u043d\u0443, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u0443\u044e \u043f\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430.<\/p>\n<p>  \u0417\u043d\u0430\u044f \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043a\u043b\u0435\u0442\u043e\u043a \u0448\u0430\u0445\u043c\u0430\u0442\u043d\u043e\u0439 \u0434\u043e\u0441\u043a\u0438) \u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u0432 \u0435\u0433\u043e \u0441\u0442\u0440\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u043a\u0430\u043c\u0435\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0433\u043b\u0443\u0431\u0438\u043d\u0443 \u0434\u043e \u043d\u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/1f7\/52e\/e05\/1f752ee05f5647298c67cf614d899e9c.png\"\/><\/p>\n<p>  \u0433\u0434\u0435 <i>f<\/i> \u2014 \u0444\u043e\u043a\u0443\u0441\u043d\u043e\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435,<br \/>  <i>d<\/i> \u2014 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u044f\u043c\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u043a\u0430\u043c\u0435\u0440\u044b,<br \/>  <i>D<\/i> \u2014 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430,<br \/>  <i>Z<\/i> \u2014 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0438 \u043a\u0430\u043c\u0435\u0440\u044b \u0434\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430.<\/p>\n<p>  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/720\/301\/c40\/720301c40b1d4e839ba8512f31d2d2aa.png\" height=\"270\" width=\"190\"\/><\/p>\n<p>  \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u043d\u0435 \u0441\u0442\u0440\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e, \u0430 \u043f\u043e\u0434 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0443\u0433\u043b\u043e\u043c \u043a \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u043a\u0430\u043c\u0435\u0440\u044b, \u0433\u043b\u0443\u0431\u0438\u043d\u0443 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 Perspective-n-Point (PnP) [3]. \u0420\u0435\u0448\u0435\u043d\u0438\u044e \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d \u0440\u044f\u0434 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 OpenCV, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043d\u0430\u0439\u0442\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 |<i>R, T<\/i>| \u043c\u0435\u0436\u0434\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043e\u0447\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043a\u0430\u043c\u0435\u0440\u044b, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0433\u043b\u0443\u0431\u0438\u043d\u0443 \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043a\u0430\u043c\u0435\u0440\u044b. <\/p>\n<pre><code class=\"python\">retval, R, T = cv2.solvePnP(obj_points[:, [0, 5, 42, 47]],#\u043a\u0440\u0430\u0439\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 \u0432 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \t\t\t    img_points[:, [0, 5, 42, 47]], #\u043a\u0440\u0430\u0439\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 \u0432 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \t\t\t    rgbCameraMatrix,#\u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043a\u0430\u043c\u0435\u0440\u044b                             rgbDistortion,#\u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0434\u0438\u0441\u0442\u043e\u0440\u0441\u0438\u0438                             flags= cv2.SOLVEPNP_UPNP)#\u043c\u0435\u0442\u043e\u0434 \u0440\u0435\u0448\u0435\u043d\u0438\u044f PnP  R, jacobian = cv2.Rodrigues(R)#\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043e\u0442 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f for j in range(0, numberOfPoints): # \u0446\u0438\u043a\u043b \u043f\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0442\u043e\u0447\u043a\u0430\u043c     point = numpy.dot(rgb_obj_points[j], R.T) + T.T # \u0412\u0430\u0436\u043d\u043e! \u0412 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043d\u0438\u0433\u0434\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0435 \u0441\u043a\u0430\u0437\u0430\u043d\u043e,      #\u043d\u043e \u043f\u043e \u0438\u0442\u043e\u0433\u0430\u043c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043c\u043e\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f     computedDistance[j] = point[0][2] * 1000 # Z-\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430 \u0432 \u043c\u043c <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0438 \u043a\u0430\u043d\u0430\u043b\u0430 \u0433\u043b\u0443\u0431\u0438\u043d\u044b \u043c\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u043b\u0438 \u0441\u0435\u0440\u0438\u044e \u0441\u044a\u0435\u043c\u043e\u043a \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043e\u0447\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u0445 ~0.7-2.6 \u043c \u0441 \u0448\u0430\u0433\u043e\u043c ~7 c\u043c. \u041a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u0441\u044f \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u043a\u0430\u0434\u0440\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u043a\u0430\u043c\u0435\u0440\u044b, \u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u00ab\u043d\u0430 \u0433\u043b\u0430\u0437\u043e\u043a\u00bb. \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0434\u0435\u043b\u0430\u043b\u0441\u044f \u043e\u0434\u0438\u043d \u0441\u043d\u0438\u043c\u043e\u043a RGB \u043a\u0430\u043c\u0435\u0440\u043e\u0439 \u0438 100 \u0441\u043d\u0438\u043c\u043a\u043e\u0432 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c \u0433\u043b\u0443\u0431\u0438\u043d\u044b. \u0414\u0430\u043d\u043d\u044b\u0435 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0443\u0441\u0440\u0435\u0434\u043d\u044f\u043b\u0438\u0441\u044c, \u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u043f\u043e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 RGB \u043a\u0430\u0434\u0440\u0430, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u043b\u043e\u0441\u044c \u0437\u0430 \u044d\u0442\u0430\u043b\u043e\u043d. \u0421\u0440\u0435\u0434\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0433\u043b\u0443\u0431\u0438\u043d\u044b \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u043c Kinect \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u0439 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0430\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/cb7\/d88\/416\/cb7d884169bf400eb10f717a81192e96.png\"\/><\/p>\n<p>  \u0433\u0434\u0435 <i>z <sub>i<\/sub><sup>RGB<\/sup> <\/i> \u2014 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e i-\u0439 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u043f\u043e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438,<br \/>   <i>z <sub>i<\/sub><sup>depth<\/sup> <\/i> \u2014 \u0443\u0441\u0440\u0435\u0434\u043d\u0435\u043d\u043d\u043e\u0435 \u043f\u043e 100 \u043a\u0430\u0434\u0440\u0430\u043c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e i-\u0439 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u043f\u043e \u0434\u0430\u043d\u043d\u044b\u043c \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0433\u043b\u0443\u0431\u0438\u043d\u044b,<br \/>  N \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 48).<\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043e\u0448\u0438\u0431\u043a\u0438 \u043e\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0443\u0442\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/b9a\/913\/275\/b9a9132758964ba2a2601188f4dfd4d5.png\"\/><\/p>\n<p>  \u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u0434\u043e \u0438 \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u0438 \u043d\u0430 \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u043a\u0430\u0434\u0440\u0430\u0445. \u0412\u0441\u0435\u0433\u043e \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e 120000 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 (25 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0439, 100 \u043a\u0430\u0434\u0440\u043e\u0432 \u0433\u043b\u0443\u0431\u0438\u043d\u044b \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439, 48 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0435). \u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0430 17\u00b19.95 \u043c\u043c (\u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u00b1 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435), \u043f\u043e\u0441\u043b\u0435 \u2014 0.45\u00b18.16 \u043c\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/1f5\/d46\/c29\/1f5d46c294e14e6da0c94bb15b87de0e.png\"\/><\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e 25 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u043a\u0430\u0434\u0440\u043e\u0432 (RGB \u0438 \u0433\u043b\u0443\u0431\u0438\u043d\u0430) \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043e\u0447\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445. \u0412\u0441\u0435\u0433\u043e 1200 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 (25 \u043a\u0430\u0434\u0440\u043e\u0432, 48 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c). \u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0430 7.41\u00b16.32 \u043c\u043c (\u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u00b1 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435), \u043f\u043e\u0441\u043b\u0435 \u2014 3.12\u00b15.50 \u043c\u043c. \u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u0434\u043e \u0438 \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u0438 \u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u043a\u0430\u0434\u0440\u0430\u0445.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/798\/ed0\/1f9\/798ed01f9f1b4d61aa7befd869ff59f9.png\"\/><\/p>\n<h4><b>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/b><\/h4>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u044b \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u043b\u0438 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f RGB \u043a\u0430\u043c\u0435\u0440\u044b \u0438 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0433\u043b\u0443\u0431\u0438\u043d\u044b, \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0432\u043c\u0435\u0449\u0430\u0442\u044c \u043a\u0430\u0434\u0440\u044b \u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u043b\u0438 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0433\u043b\u0443\u0431\u0438\u043d\u044b. \u041a\u043e\u0434 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 <a href=\"https:\/\/github.com\/tataraidze\/KinectV2\">\u0442\u0443\u0442<\/a>. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043e\u043d \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435\u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c.<\/p>\n<p>  <i>\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0437\u0430 \u0441\u0447\u0435\u0442 \u0433\u0440\u0430\u043d\u0442\u0430 \u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u043d\u0430\u0443\u0447\u043d\u043e\u0433\u043e \u0444\u043e\u043d\u0434\u0430 (\u043f\u0440\u043e\u0435\u043a\u0442 \u211615-19-30012) <\/i><\/p>\n<h4><b>\u0421\u043f\u0438\u0441\u043e\u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432<\/b><\/h4>\n<p>  1. Kramer J. Hacking the Kinect \/ Apress. 2012. P. 130<br \/>  2. Lachat E. et al. First Experiences With Kinect V2 Sensor for Close Range 3D Modelling \/\/ International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. 2015. <br \/>  3. Gao X.S. et al. Complete solution classification for the perspective-three-point problem \/\/ IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 25. N 8. 2003. P. 930-943.       <\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/272629\/\"> http:\/\/habrahabr.ru\/post\/272629\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       \u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u043c\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u043f\u0430\u0440\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u043e\u043f\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441 \u043a\u0430\u043d\u0430\u043b\u043e\u043c \u0434\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0438 \u0440\u0435\u0448\u0438\u043b\u0438 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Kinect v2. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442\u0441\u044f \u043d\u0430 Python, \u0442\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c Kinect \u0438\u0437 Python, \u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e, \u0442\u0430\u043a \u043a\u0430\u043a Kinect \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0432\u043d\u043e\u0441\u0438\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u043a\u0430\u0434\u0440\u044b \u0438 \u0434\u0430\u0435\u0442 \u0441\u0430\u043d\u0442\u0438\u043c\u0435\u0442\u0440\u043e\u0432\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0433\u043b\u0443\u0431\u0438\u043d\u044b.<\/p>\n<p>  \u0414\u043e \u044d\u0442\u043e\u0433\u043e \u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0438\u043c\u0435\u043b \u0434\u0435\u043b\u0430 \u043d\u0438 \u0441 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u043c \u0437\u0440\u0435\u043d\u0438\u0435\u043c, \u043d\u0438 \u0441 OpenCV, \u043d\u0438 \u0441 Kinect. \u0418\u0441\u0447\u0435\u0440\u043f\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e, \u043a\u0430\u043a \u0441\u043e \u0432\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u0445\u043e\u0437\u044f\u0439\u0441\u0442\u0432\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043c\u043d\u0435 \u043d\u0430\u0439\u0442\u0438 \u0442\u043e\u0436\u0435 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c, \u0442\u0430\u043a \u0447\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u043f\u043e\u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f. \u0418 \u044f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u043b\u0438\u0448\u043d\u0438\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0411\u044b\u0442\u044c \u043c\u043e\u0436\u0435\u0442, \u043e\u043d\u0430 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435\u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0434\u043b\u044f \u043a\u0430\u043a\u043e\u0433\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0442\u0440\u0430\u0436\u0434\u0443\u0449\u0435\u0433\u043e,<s> \u0430 \u0435\u0449\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0434\u043b\u044f \u0433\u0430\u043b\u043e\u0447\u043a\u0438 \u0432 \u043e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u0438<\/s>.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/fa0\/4ae\/2d7\/fa04ae2d7d414303b1cd224d7416b8f2.png\" alt=\"image\"\/>  <\/p>\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-269859","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/269859","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=269859"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/269859\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=269859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=269859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=269859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}