import { useMemo, useState } from 'react'; import { Hand, MoreHorizontal, Smile, User } from "lucide-react"; const keypointTypes = [ { title: "Hand Landmarks", count: 21, icon: Hand }, { title: "Pose Landmarks", count: 33, icon: User }, { title: "Face Landmarks", count: 468, icon: Smile }, ]; export function KeypointsDisplay() { const [showDetails, setShowDetails] = useState(false); const totalLandmarks = useMemo( () => keypointTypes.reduce((sum, type) => sum + type.count, 0), [], ); return (

Extracted Keypoints

Visual representation of detected landmarks

{keypointTypes.map((type) => { const Icon = type.icon; return (

{type.title}

{type.count} keypoints detected

{showDetails && (

Used as temporal features by the transformer classifier.

)}
); })}
{showDetails && (
Total landmarks per frame: {totalLandmarks}
Face landmarks are available but less influential than pose and hands for many signs.
Final prediction uses a sequence-level transformer over extracted keypoint vectors.
)}
); }