A method for detecting exercise, comprising: receiving, by one or more processors, first sensor data (402, 404, 406) from one or more first sensors of a first wearable device; receiving, by the one or more processors, second sensor data (412, 414, 416) from one or more second sensors of a second wearable device; generating, by the one or more processors, an image based on the first sensor data (402, 404, 406) and the second sensor data (412, 414, 416), the image comprising a plurality of subplots, wherein each subplot depicts a data stream received from the one or more first sensors and the one or more second sensors, respectively; determining, using the one or more processors, based on the image and comprising executing a machine learning model, a type of exercise performed by a user during receiving of the first sensor data (402, 404, 406) and the second sensor data (412, 414, 416); training the machine learning model, the training comprising: generating one or more first training images based on sensor data collected from the one or more first and second sensors (286, 296) of the first and second wearable devices (180, 190) while the user performs a first type of exercise, wherein the one or more first training images includes a plurality of image tiles, each depicting a different data stream for the sensor data; and inputting the one or more first training images into the machine learning model as training data, wherein generating the one or more first training images comprises fixed window segmentation and autoscaling a time length of the window based on a most recent estimate of a repetition frequency of the first type of exercise. receiving, by one or more processors, first sensor data (402, 404, 406) from one or more first sensors of a first wearable device; receiving, by the one or more processors, second sensor data (412, 414, 416) from one or more second sensors of a second wearable device; generating, by the one or more processors, an image based on the first sensor data (402, 404, 406) and the second sensor data (412, 414, 416), the image comprising a plurality of subplots, wherein each subplot depicts a data stream received from the one or more first sensors and the one or more second sensors, respectively; determining, using the one or more processors, based on the image and comprising executing a machine learning model, a type of exercise performed by a user during receiving of the first sensor data (402, 404, 406) and the second sensor data (412, 414, 416); training the machine learning model, the training comprising: generating one or more first training images based on sensor data collected from the one or more first and second sensors (286, 296) of the first and second wearable devices (180, 190) while the user performs a first type of exercise, wherein the one or more first training images includes a plurality of image tiles, each depicting a different data stream for the sensor data; and inputting the one or more first training images into the machine learning model as training data, wherein generating one or more first training images based on sensor data collected from the one or more first and second sensors (286, 296) of the first and second wearable devices (180, 190) while the user performs a first type of exercise, wherein the one or more first training images includes a plurality of image tiles, each depicting a different data stream for the sensor data; and inputting the one or more first training images into the machine learning model as training data, wherein generating the one or more first training images comprises fixed window segmentation and autoscaling a time length of the window based on a most recent estimate of a repetition frequency of the first type of exercise.