Hello everyone,
I am taking my first steps in this interesting world of neural networks. I am currently involved in an interesting project where I need to obtain some previous results, where I think that a neural network would fit very well. However, I am a bit lost. That’s why I need some advice and/or some help. I’ll tell you about what we want to do to give you some context.
The project itself is framed within the theme of wellbeing in buildings. Specifically in the area of the occupancy level of the different rooms in a building. For this purpose, a multitude of devices have been deployed in the building (presence sensors, cameras, pressure sensors on chairs, electricity consumption meters, etc.) whose information will be, after being properly processed, combined and interpreted through symbolic knowledge.
One of the devices that has been deployed, the source of this post, is a Kinect. Through Kinect and its SDK, we store the coordinates of the detected users’ joints and their orientation. The main purpose of the Kinect is to allow us to detect when someone leaves one room and enters another, identifying the rooms of origin and destination. Below I show a figure from the perspective of the Kinect.

photo_2021-09-09_10-52-481280×960 112 KB

In the following code snippet I show an example of data stored in JSON. In this way, every time a user changes room, we will obtain a set of frames composed by the position (reference system in the Kinect) of the SPIN_BASE joint (taken as a reference in this work) and its orientation. We consider that tracking that single coordinate is enough, allowing us to reduce the necessary computation.
{
  "skeleton_id": "id_123456789",
  "frames": [
    {
      "timestamp": VALUE,
      "point": {
        "x": VALUE,
        "y": VALUE,
        "z": VALUE
      },
      "orientation": {
        "x": VALUE,
        "y": VALUE,
        "z": VALUE,
        "w": VALUE
      }
    },

    ...

    {
      "timestamp": VALUE,
      "point": {
        "x": VALUE,
        "y": VALUE,
        "z": VALUE
      },
      "orientation": {
        "x": VALUE,
        "y": VALUE,
        "z": VALUE,
        "w": VALUE
      }
    }
  ]
}


My difficulties come when designing a neural network that is able to learn patterns to identify the source and destination rooms of users through these sets of (points, orientations). I have spent several weeks documenting myself and I have drawn some conclusions:


The order of the data in this case is of great importance, so the best option is an RNN.


I assume that the data should be pre-processed to make it more representative. Apart from the usual (such as normalisation), I think it should be processed in some way - perhaps represent the sets of points as trajectories?


Due to my limited experience, I am lost in network design and data preparation. So any help or advice would be very welcome.