Real-Time Detection of Vertical Tongue Movements via Mobile Camera — Choosing the Right Approach

Hey everyone.

I’m working on a task involving the detection of articulatory tongue movements using a smartphone’s front-facing camera. Specifically, I need to reliably classify vertical tongue motion (up / down / neutral position) in real time. The environment is everyday — standard indoor lighting, no additional equipment. The target audience is children, which adds variability in terms of anatomy and behavior in front of the camera.

I’ve experimented with MediaPipe, but its tongue tracking is pretty lacking. I’d love to hear whether there are approaches that actually work in practice, or whether this is fundamentally a hard-constrained problem under these shooting conditions. Could something be borrowed from adjacent fields — say, deformable object tracking or industrial detection, where similar problems have already been solved reasonably well?

Has anyone actually worked on detection or tracking of intraoral objects (tongue, teeth) on mobile hardware that could realistically achieve high detection accuracy?

Thanks in advance.

Hi @alex-en and welcome to the vvvv forum,

unfortunately MediaPipe is not trained for tongue tracking, you might be able to get a result combinig other FaceLandmarks as JawOpen and e.g. MouthFunnel or such, but I doubt this will be reliable. If you want to test ist, you can access the values via the FaceLandmarksdetector → Category (FaceBlendshape) → CategoryName (Category) and Score (Category)

If you anyway want to use a mobile phone for the tracking, you can use a mobile app for the tracking streaming the data via OSC to vvvv gamma. As the Virtual Motion Capture (VMC) and VRCFaceTracking (VRCFT) protocols are basically also OSC it’s very simple to receive in vvvv.

There might be iPhone apps supporting real tongue tracking, but I’m not aware of.
For Android, MeowFace is quite strong and I’ve heard they support it, but they also calculate the Tongue with the combination of other Landmarks (probably also using MediaPipe?).