Loading video...
Video Failed to Load
完成した。かなりピタッと張り付く。
166,037 views • 2 months ago •via X (Twitter)
28 Comments

Congratulations on finishing it may i know model architecture u used for the facial landmarks? also curious about the inference setup that got you ~25ms thanks

I’ve excluded my two weeks of "garbage" ablation history from the commits, but I have committed a demo that you can try out in five minutes. I haven't released the custom synthetic dataset yet.

Appreciate it

You should mine on @score

模型是你们自己训练的吗?和mediapipe比是否稳定性更好?

While MediaPipe outputs a 468-point mesh, this model outputs only 68 points. Therefore, a direct comparison is not possible; however, this model should offer significantly higher accuracy than MediaPipe, particularly regarding high-angle yaw, pitch, and roll.

Very nice. Will try it soon.

Disclosure

@KzhtTkhs この凄さ伝えたい(99%伝わらない)

I want to learn this, please guide me

😎 ties the room together

もしやこれならミサイル迎撃も夢ではない?

Dlib ?

No.

Scary.. but nice 👍🏻

Is pupil detection tracking available?

You need to select the right architecture based on the requirements. I believe this approach is better for pupil-based tracking.

the existing model is old isn't it? this looks good so far

I simply fed a massive amount of self-generated synthetic data into an old architecture. I didn't do anything special; I think anyone could do it if they understood the weaknesses of existing public datasets.

lets see a video that includes both your head and the screen displaying this live, to check for lag higher than is reported without in the top left

will it run on ESP? :D

I think it will work if you quantize it.

Eso te lo hace cualquier ia en 5min. Pedile que te derecte el esqueleto comoleto.

すごい!

yeah

Will it run on a microduck?

I asked Fable 5 about it. It might be possible if the model can be converted for the NPU, but I don't own the hardware, so I can't test it myself. --- Technically the answer is: "not as-is, but it can be made to run with a different configuration." Here is the assessment based on what Microduck actually is. What Microduck is (Hugging Face / Pollen Robotics' $399 bipedal duck robot, announced 2026-08-27) SoC: Rockchip RK3566 (4× Cortex-A55 @ 1.8 GHz, Mali-G52 GPU, 0.8 TOPS NPU), 1 GB RAM, 32 GB eMMC, front camera + 8×8 ToF depth sensor, two IMUs, Wi-Fi / BLE. Software: a headless Armbian Linux running Rust daemons (mediad handles the camera/audio pipeline and WebRTC streaming, robotd runs the 50 Hz control loop). There is no display and no browser environment. 1. Running the web demo (Electron + WebGPU) on the robot itself → effectively not possible The system is headless with no browser/Electron, and the Mali-G52 has no practical Vulkan driver that Chromium could use for WebGPU (without WebGPU it would drop to WASM). 1 GB of RAM is very tight for Electron + onnxruntime-web (24 MB wasm runtime + models). However, Microduck's mediad streams the camera over WebRTC, so a realistic setup is "run the web demo on a PC (browser or Electron) and take the video from the robot." The app already treats the camera as a MediaStream, so adding one input mode that feeds the received WebRTC stream would be enough (inference on the PC's GPU). 2. Running the Python demo (onnxruntime CPU) on the robot → works, but slowly Four A55 cores deliver roughly 1/20–1/30 of an i9-10900K core, so extrapolating from the i9 measurements: hg0-096 1.5 ms → 30–60 ms, vitt-096 4.6 ms → 100–200 ms, hg0-256 5 ms → 150–250 ms. The aligner alone could reach ~10 fps with hg0-096. The bottleneck is the detector: DEIMv2 hgnetv2_n or YOLOv9-t at 640×640 takes seconds per frame on this CPU (even single-threaded WASM on the i9 needs > 600 ms). Head detection + alignment on the CPU alone is not realistic in real time. The camera is owned by mediad, so frames would have to be obtained through WebRTC or a shared pipeline — integration work. 3. For real-time on the robot itself: an NPU port (0.8 TOPS, RKNN) YOLOv9-t (pure CNN) and hg0-096 (CNN backbone + a small attention decoder) are plausible candidates for int8 quantization on RKNN; on paper that gives detection 50–100 ms + alignment 5–10 ms → a 5–10 fps target. The DEIMv2 family (deformable attention / GridSample / TopK) and ViT-T are poor fits for the RK3566 NPU. This is a separate project, though: RKNN conversion, quantization calibration, support for the decoder's LayerNorm/MatMul, and staying resident within 1 GB of RAM. Conclusion: if the goal is "process Microduck's video with this demo," the current implementation plus one input mode works almost as-is (on a PC). If the goal is "real-time on the robot alone," you would need a separate NPU build of YOLOv9-t + hg0-096 rather than the WebGPU version.

I'm interested, please.
