--- license: mit tags: - pytorch - mobilenetv2 - image-classification - classroom-engagement --- # Classroom Engagement MobileNetV2 A lightweight MobileNetV2 classifier trained to estimate classroom engagement from cropped person bounding boxes. ## Classes | Index | Label | Description | |-------|---------------|------------------------------------------| | 0 | `0_oriented` | Student facing the instructor/board | | 1 | `1_diverted` | Student turned away or looking elsewhere | | 2 | `2_obscured` | Student occluded or not clearly visible | ## Architecture - **Backbone:** MobileNetV2 (ImageNet pre-trained, features frozen) - **Classifier head:** `nn.Linear(1280, 3)` - **Loss:** Weighted `CrossEntropyLoss` to handle class imbalance - **Optimizer:** Adam (lr=0.001) - **Input size:** 224 x 224 RGB, ImageNet-normalized ## Training Trained on ~200 manually annotated person crops extracted from classroom lecture videos using YOLOv8-nano detection. Strict video-level train/val/test split to prevent data leakage. ## Usage ```python import torch from torchvision import models, transforms model = models.mobilenet_v2(weights=None) model.classifier[1] = torch.nn.Linear(1280, 3) model.load_state_dict(torch.load("best_baseline.pth", map_location="cpu")) model.eval() ```