{"id":11414,"date":"2025-12-19T11:58:40","date_gmt":"2025-12-19T10:58:40","guid":{"rendered":"https:\/\/bitacora.eniac2000.com\/?p=11414"},"modified":"2025-12-19T11:58:43","modified_gmt":"2025-12-19T10:58:43","slug":"deteccion-de-movimientos-con-ia-como-control-domotico-consumo-de-imagen-kinect-mediante-servicio-web","status":"publish","type":"post","link":"https:\/\/bitacora.eniac2000.com\/?p=11414","title":{"rendered":"Detecci\u00f3n de movimientos con IA como control dom\u00f3tico. Consumo de imagen Kinect mediante servicio web"},"content":{"rendered":"<div class=\"seriesmeta\">Esta entrada es la parte 3 de 3 de la serie <a href=\"https:\/\/bitacora.eniac2000.com\/?series=deteccion-de-movimientos-con-ia-como-control-domotico\" class=\"series-1896\" title=\"Detecci\u00f3n de movimientos con IA como control dom\u00f3tico\">Detecci\u00f3n de movimientos con IA como control dom\u00f3tico<\/a><\/div>\n<p>Un elemento adicional que no hab\u00eda tocado hasta este momento era el de poder utilizar las im\u00e1genes capturadas por el Kinect para otros prop\u00f3sitos. Aunque estaba bastante bien poder reconocer movimiento y utilizarlos para ejecutar \u00f3rdenes sobre el sistema de dom\u00f3tica, el poder realizar un aprovechamiento de las capacidades de imagen del Kinect abrir\u00eda la puerta a realizar acciones mucho m\u00e1s avanzadas, como por ejemplo aspectos de videovigilancia, reconocimiento de personas, cambios en el entorno, o cualquier otro aspecto vinculado con la explotaci\u00f3n de la imagen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"535\" src=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/ros-video-server-1024x535.png\" alt=\"\" class=\"wp-image-11419\" srcset=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/ros-video-server-1024x535.png 1024w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/ros-video-server-300x157.png 300w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/ros-video-server-768x401.png 768w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/ros-video-server.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Imagen conceptual del entorno. Creada con IA<\/figcaption><\/figure>\n\n\n\n<p>La duda era c\u00f3mo poder acceder a este canal visual sin comprometer la estabilidad del resto de la plataforma. Y, por descontado, ROS era la respuesta. Dado que ya dispon\u00eda de los <em>topics<\/em> de ROS que permiten hacer uso de un acceso compartido a los recursos publicados en esos <em>topics<\/em>, no deb\u00eda de ser muy complicado acceder a ellos mediante un servicio web. Y, en efecto, no lo era. El mismo ROS dispone de un paquete,<em> <a href=\"https:\/\/wiki.ros.org\/web_video_server\">web_video_server<\/a><\/em>, que levanta un servidor de v\u00eddeo en <em>streaming<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"463\" src=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/rqt_graph-output-usb_cam-sample-1024x463.png\" alt=\"\" class=\"wp-image-11415\" srcset=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/rqt_graph-output-usb_cam-sample-1024x463.png 1024w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/rqt_graph-output-usb_cam-sample-300x136.png 300w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/rqt_graph-output-usb_cam-sample-768x348.png 768w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/rqt_graph-output-usb_cam-sample.png 1107w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Ejemplo de flujo creado por web_video_server<\/figcaption><\/figure>\n\n\n\n<p>La instalaci\u00f3n y ejecuci\u00f3n es sencilla. En mi caso, basta con instalar el correspondiente paquete de Ubuntu en el servidor maestro, y luego ejecutar rosrun:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo apt-get install ros-noetic-web-video-server\n$ rosrun web_video_server web_video_server<\/code><\/pre>\n\n\n\n<p>Hecho esto, por defecto se levanta un servicio en el puerto 8080 que muestra los <em>topics<\/em> de v\u00eddeo disponibles para nuestro hardware. En mi caso, con la configuraci\u00f3n maestro\/esclavo, los topics son aquellos publicados por el esclavo:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"491\" height=\"603\" src=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/webvideoserver-01.png\" alt=\"\" class=\"wp-image-11416\" srcset=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/webvideoserver-01.png 491w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/webvideoserver-01-244x300.png 244w\" sizes=\"auto, (max-width: 491px) 100vw, 491px\" \/><figcaption class=\"wp-element-caption\">Lista de <em>topics<\/em> disponibles. No todos proporcionan imagen de v\u00eddeo<\/figcaption><\/figure>\n\n\n\n<p>La parte interesante es que puedo hacer uso de los topics tanto de imagen real como de profundidad. Por ejemplo, este es el canal visible en RGB:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"663\" height=\"563\" src=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/webvideoserver-02.png\" alt=\"\" class=\"wp-image-11417\" srcset=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/webvideoserver-02.png 663w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/webvideoserver-02-300x255.png 300w\" sizes=\"auto, (max-width: 663px) 100vw, 663px\" \/><figcaption class=\"wp-element-caption\">Sal\u00f3n de Forcarey<\/figcaption><\/figure>\n\n\n\n<p>Es interesante observa la imagen visible de profundidad. En condiciones de d\u00eda no es especialmente \u00fatil por s\u00ed solo, pero de noche permite explotar de manera mucho m\u00e1s interesante la percepci\u00f3n de personas.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"656\" height=\"562\" src=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/webvideoserver-03.png\" alt=\"\" class=\"wp-image-11418\" srcset=\"https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/webvideoserver-03.png 656w, https:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2025\/12\/webvideoserver-03-300x257.png 300w\" sizes=\"auto, (max-width: 656px) 100vw, 656px\" \/><figcaption class=\"wp-element-caption\">Percepci\u00f3n de profundidad<\/figcaption><\/figure>\n\n\n\n<p>Y todo esto sin explotar el canal IR ni la nube de puntos.<\/p>\n\n\n\n<p>En cualquier caso, disponer de este servicio web abre la puerta a la explotaci\u00f3n del canal de imagen en combinaci\u00f3n con el de captura gestual realizado hasta ahora. Y esto tiene posibilidades enormes.<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"seriesmeta\">Esta entrada es la parte 3 de 3 de la serie <a href=\"https:\/\/bitacora.eniac2000.com\/?series=deteccion-de-movimientos-con-ia-como-control-domotico\" class=\"series-1896\" title=\"Detecci\u00f3n de movimientos con IA como control dom\u00f3tico\">Detecci\u00f3n de movimientos con IA como control dom\u00f3tico<\/a><\/div><p>Un elemento adicional que no hab\u00eda tocado hasta este momento<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[13],"tags":[1885,1882],"series":[1896],"class_list":["post-11414","post","type-post","status-publish","format-standard","hentry","category-informatica","tag-kinect","tag-ros","series-deteccion-de-movimientos-con-ia-como-control-domotico"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/11414","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11414"}],"version-history":[{"count":1,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/11414\/revisions"}],"predecessor-version":[{"id":11420,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/11414\/revisions\/11420"}],"wp:attachment":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11414"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11414"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11414"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fseries&post=11414"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}