Search papers, labs, and topics across Lattice.
This paper introduces a self-supervised dual-channel cross-attention encoder to classify Parkinson's Disease (PD) using bilateral wrist-worn IMU signals. The model leverages contrastive infoNCE loss for representation learning, achieving high accuracy in distinguishing PD from healthy controls (93.12%) and differential diagnoses (87.04%). Notably, the self-supervised approach maintains high accuracy (93.56% and 92.50% respectively) even with only 20% labeled data, and the model was successfully deployed on a Raspberry Pi for real-time inference.
Turns out, wrist-worn IMUs and self-supervised learning can classify Parkinson's Disease with impressive accuracy, even rivaling expert clinical diagnoses.
Parkinson's disease (PD) is a chronic neurodegenerative disease. It shows multiple motor symptoms such as tremor, bradykinesia, postural instability, freezing of gait (FoG). PD is currently diagnosed clinically through physical exam by health-care professionals, which can be time consuming and highly subjective. Wearable IMU sensors has become a promising gateway for passive monitoring of PD patients. We propose a self-supervised cross-attention encoder that processes bilateral wrist-worn IMU signals from a public dataset called PADS, consisting of three groups, PD (Parkinson Disease), HC (Healthy Control) and DD (Differential Diagnosis) of a total of 469 subjects. We have achieved a mean accuracy of 93.12% for HC vs. PD classification and 87.04% for PD vs. DD classification. The results emphasize the clinical challenge of distinguishing Parkinson's from other neurodegenerative diseases. Self-supervised representation learning using contrastive infoNCE loss gained an accuracy of 93.56% for HC vs. PD and 92.50% for PD vs. DD using only 20% of labelled data. This demonstrates the effectiveness of our method in transfer learning for clinical use with minimal labels. The real-time applicability was tested by deploying the optimized model with a mean inference time of 48.32 ms per window on a Raspberry Pi CPU.