Búsqueda en el sitio por el término 'CSharp'
-
25/02/2022
Todas las aplicaciones de tratamiento masivo de datos se pueden beneficiar de la capacidad de proceso cada vez mayor que tienen los modernos equipos informáticos que ya están al alcance del bolsillo de cualquiera. En este artículo voy a presentar una comparativa básica de rendimiento entre varias plataformas CPU / GPU utilizando como base el archiconocido conjunto de Mandelbrot y su asombrosa representación gráfica.
[Leer Mas...] -
28/01/2021
Este es el último artículo de la serie dedicada a la construcción del robot sparring de entrenamiento Octopussy para defensa personal y artes marciales. Aquí voy a explicar el uso del software de control que acompaña al aparato y que permite diseñar una gama de rutinas de entrenamiento prácticamente ilimitada, dentro de las posibilidades del robot.
[Leer Mas...] -
27/01/2021
En este segundo artículo sobre el robot sparring de entrenamiento Octopussy para defensa personal y artes marciales, voy a explicar cómo construir la parte electrónica del invento. En realidad, el trabajo consiste en poco más que conectar unos cuantos cables, aunque sería conveniente tener a mano también un soldador de estaño para rematar mejor el trabajo.
[Leer Mas...] -
25/01/2021
En esta serie de artículos voy a mostrar cómo construir un robot de entrenamiento para defensa personal y artes marciales. He bautizado el invento con el nombre Octopussy, ya que permite instalar numerosos brazos y piernas para simular diferentes tipos de golpes y patadas dirigidos a todas las partes del cuerpo. Se controla mediante un ordenador, una placa Arduino y un programa. También proporciono el código fuente del programa para el que quiera hacer modificaciones.
[Leer Mas...] -
18/03/2019
Con este artículo finalizo la serie dedicada a la aplicación de algoritmos genéticos al diseño de redes neuronales. Explicaré el código más relevante del programa de ejemplo que acompaña a estos artículos, principalmente las clases dedicadas al tratamiento de los genes y el proceso de selección. Podéis encontrar más información en los anteriores artículos de la serie.
[Leer Mas...] -
28/02/2019
En este segundo artículo sobre la aplicación de los algoritmos evolutivos a la optimización del diseño de redes neuronales, voy a proporcionar una pequeña aplicación de ejemplo que permite construir y entrenar redes, además de utilizar este tipo de algoritmos para buscar la mejor configuración para un determinado conjunto de datos. La aplicación permite generar datos artificiales de prueba, y también proporciono el código fuente para poder modificarla a voluntad.
[Leer Mas...] -
22/02/2019
Encontrar la topología más adecuada para la red neuronal que pretendemos aplicar a un determinado problema puede resultar un trabajo tedioso de prueba y error, además de acabar produciendo una red poco optimizada. Para automatizar este proceso podemos recurrir a los algoritmos evolutivos, inspirados en la selección natural de los organismos vivos, que nos pueden facilitar enormemente el trabajo.
[Leer Mas...] -
02/12/2018
Uno de los algoritmos más populares para el entrenamiento de redes neuronales artificiales multicapa es el algoritmo de propagación de errores hacia atrás, o algoritmo de retro propagación. En este artículo voy a tratar de explicar sus fundamentos, mediante una implementación simplificada de una red neuronal que permite realizar pruebas con diferentes configuraciones de la red.
[Leer Mas...] -
23/07/2018
Con este artículo se cierra la serie sobre el reconocimiento de posturas utilizando el sensor Kinect de Microsoft. Para terminar, simplemente mostraré la implementación de un formulario básico que utiliza las librerías de clases comentadas en los artículos anteriores.
[Leer Mas...] -
04/06/2018
Continuamos con la serie sobre reconocimiento de posturas con el sensor Kinect de Microsoft. En esta ocasión voy a comentar las clases encargadas de normalizar la posición del cuerpo de la forma comentada en el primer artículo, de manera que obtengamos una serie de datos que constituyen una versión simplificada del esqueleto más apropiada para su análisis con técnicas de reconocimiento de patrones.
[Leer Mas...] -
13/05/2018
En el artículo anterior de la serie mostré las estructuras, enumeraciones y clases que utiliza la aplicación para ser independiente de la versión del sensor y el SDK de Kinect. En este tercer artículo voy a mostrar una posible implementación de una clase que se ocupa de leer y convertir los esqueletos usando la versión 2.0 del SDK, para el sensor de Xbox One.
[Leer Mas...] -
05/05/2018
En este segundo artículo de la serie sobre reconocimiento de posturas usando el sensor Kinect de Microsoft voy a mostrar estructuras y clases genéricas usadas para aislar la aplicación de las diferentes versiones de SDK existentes. La versión del SDK que debemos utilizar depende del modelo de sensor que estemos utilizando. En el código de ejemplo yo he utilizado la versión 2.0, para el sensor de la Xbox One.
[Leer Mas...] -
22/04/2018
Una de las posibilidades más interesantes que nos ofrece el sensor Kinect de Microsoft es la detección de cuerpos humanos, que nos permite desarrollar aplicaciones basadas en las distintas posturas que adopta el usuario o que son manejadas a distancia utilizando las posiciones de las manos. Para ello, proporciona una serie de puntos que representan las diferentes articulaciones del cuerpo.
[Leer Mas...] -
11/03/2018
En artículos anteriores presenté un sistema casero de videovigilancia, la aplicación ThiefWatcher. Se trata de una aplicación extensible que trabaja combinando varios protocolos, como cámaras, disparadores, canales de comunicación y sistemas de almacenamiento. En este artículo mostraré como implementar algunos de estos protocolos usando el sensor Kinect de Microsoft.
[Leer Mas...] -
18/02/2018
El sensor Kinect de Microsoft es un dispositivo muy potente que proporciona servicios de captura de imagen, medición de distancias y reconocimiento de posturas corporales y de expresiones faciales, algo que lo hace apropiado para una infinidad de aplicaciones. En este artículo introductorio mostraré como usarlo para capturar diferentes tipos de imagen.
[Leer Mas...] -
10/12/2017
Resolver cualquier Sudoku es un problema que puede parecer complicado si se utilizan métodos de fuerza bruta, probando todas y cada una de las combinaciones posibles. Pero, con el planteamiento adecuado, puede resolverse cualquiera de estos problemas en unos pocos milisegundos. En este artículo voy a mostrar una forma de conseguirlo mediante un correcto planteamiento.
[Leer Mas...] -
02/12/2017
Para finalizar esta serie sobre la programación de aplicaciones multitarea, voy a mostrar el uso de un sencillo mecanismo que permite implementar métodos asíncronos que permiten ceder sus tiempos de espera para la ejecución de otras tareas paralelas o eventos disparados por controles del interfaz de usuario.
[Leer Mas...] -
18/11/2017
Hasta ahora he mostrado ejemplos de multitarea que dejaban la aplicación bloqueada hasta que terminaban. Esto no resulta muy útil en la práctica. Lo normal es que el usuario pueda seguir interactuando con la aplicación mientras se ejecutan las tareas en el fondo, y que estas puedan interactuar a su vez con el interfaz de usuario.
[Leer Mas...] -
05/11/2017
En las aplicaciones multitarea existe una problemática con el acceso concurrente a los recursos, como archivos o memoria, por varias tareas simultáneamente. Dos tareas no pueden escribir al mismo tiempo en la misma dirección de memoria, es necesario asegurarse de que algunos datos no se modifiquen mientras los estamos leyendo o cosas por el estilo. En este artículo revisaré los mecanismos que proporciona .NET Framework para tratar con estos problemas.
[Leer Mas...] -
19/09/2017
Después de revisar las clases para implementar la multitarea básica, en este artículo voy a revisar diferentes mecanismos que permiten realizar una sincronización entre varias tareas, todos ellos definidos en el espacio de nombres System.Threading, con los que se puede organizar el trabajo cuando las interacciones entre tareas requieren de un orden determinado.
[Leer Mas...]