Jishnu Jaykumar P ย ยทย Cole Salvato ย ยทย Vinaya Bomnale ย ยทย Jikai Wang ย ยทย Ayush Bhardwaj ย ยทย Jin-Ryong Kim ย ยทย Yu Xiang
Intelligent Robotics and Vision Lab ยท The University of Texas at Dallas
A pretrained perception model fails in the wild. A co-located human performs a short HumanPlay, annotates a single frame with eye-gaze + voice, and the label is propagated across the RGB-D clip. Failure-driven samples feed an iterative fine-tuning loop, and the best checkpoint is redeployed.
iTeach adapts robot perception while the robot is deployed, triggered by its failures, instead of through offline retraining.
When the perception model fails, a human spends a few seconds rearranging the objects (HumanPlay, 5โ10 s) while the robot records RGB-D. The human then labels the final frame hands-free with eye-gaze and voice on a HoloLens 2. SAM2 turns those point prompts into masks and propagates them backwards through the clip, producing dense supervision. That data is used to iteratively fine-tune an MSMFormer unseen-object instance segmentation (UOIS) model, which in turn improves grasping and pick-and-place.
| ๐ฏ UOIS combined score | ๐ฆพ Grasping success | ๐ฆ Pick & place success | ๐ฅ User study |
|---|---|---|---|
| 26.1 โ 80.7 +54.6 ยท 3.1ร lift |
71 โ 74 / 100 +3 on SceneReplica |
65 โ 72 / 100 +7 on SceneReplica |
94.9% mean box IoU NASA-TLX 21/100 ยท 12 participants |
๐๏ธ Full index (every section and subsection as text links)
- How It Works ยท The overview video and the FS3 labelling steps
- Results ยท Perception, manipulation and the user study
- Code ยท Which repository does what, and in what order
- Legacy ยท iTeach v1 ยท Archived door and handle detection (DH-YOLO)
- License ยท Citation ยท Contact ยท Thanks
Labelling uses FS3 (Few-Shot Semi-Supervised): one human-labelled frame becomes dense supervision for the whole clip.
โ HumanPlay: clean up the scene
The human rearranges objects to reduce occlusion and produce a clean final frame while a short 5โ10 s RGB-D sequence is recorded.
โก Annotate hands-free: eye-gaze + voice
Eye-gaze places point prompts on the final frame; a voice command triggers SAM2 to convert them into bounding-box object labels.
โข Propagate: SAM2 video mode
SAM2 propagates masks backwards from the final annotated frame to all earlier frames, producing dense per-frame supervision.
Perception improves ยท Manipulation follows ยท Anyone can teach
| UOIS combined score | Before | After | Gain |
|---|---|---|---|
| MSMFormer โ iTeach fine-tuned | 26.1 | 80.7 | +54.6 ยท 3.1ร |
Qualitative UOIS. Left โ right: ground truth, pretrained MSMFormer, and iTeach fine-tuning rounds FT1, FT3, FT5. iTeach recovers missed instances and cleans up over-segmentation across tabletops, shelves, sofas, stairs and floor-level scenes.
| Success / 100 (SceneReplica) | Prior best (MSMFormer) | iTeach-UOIS | Gain |
|---|---|---|---|
| ๐ฆพ Grasping | 71 | 74 | +3 |
| ๐ฆ Pick & place | 65 | 72 | +7 |
Only the segmentation stage changes; everything else is held fixed. Swap in iTeach-UOIS and the same real-robot pipeline (SceneReplica: UOIS โ Contact-GraspNet grasps โ GTO motion planning) starts handling clutter and unseen objects the pretrained baseline fails on. How to run โ
| ๐ฅ Participants | โ๏ธ Annotations | ๐ฏ Mean box IoU | ๐ง NASA-TLX |
|---|---|---|---|
| 12 6 expert ยท 6 non-expert |
240 12 people ร 20 objects |
94.9% SD 0.49 ยท gaze + voice prompts |
21 / 100 low task load |
Each participant ran one full teaching interaction unassisted: spot the failure in the headset, perform HumanPlay, then label the final frame with gaze and voice. Expertise made no difference on any measure.
The current iTeach system is split into three repositories, one per module. Follow them in this order:
| Step | Repository | What it does |
|---|---|---|
| 1 | ๐ฅฝ iTeachSkillsApp | HoloLens 2 app + ROS bridge. Watch live predictions, record a HumanPlay clip, place point prompts with gaze + voice, get SAM2 boxes. |
| 2 | ๐ง iTeach-UOIS | Propagate SAM2 masks backwards through the clip, fine-tune MSMFormer, evaluate on iTeach-HumanPlay, and run MSMFormer as a live ROS node. |
| 3 | ๐ฆพ SceneReplica (external) | Grasping and pick-and-place: iTeach-UOIS segmentation โ Contact-GraspNet โ GTO. How to run โ |
| ๐ง | ๐ iTeach (this repo) ยท src/hololens_utils | Still used by the current system: HoloDevicePortal.py uploads ROSConnectionConfig.json to the HoloLens, plus the hl2ss streaming helpers. The network setup is documented in iTeachSkillsApp. |
Caution
Vital HoloLens step: before each new setup, upload ROSConnectionConfig.json (with RosIPAddress set to your robot) to the HoloLens LocalAppData โ iTechDemo_โฆ โ LocalState folder through the Windows Device Portal web tool. Otherwise the app cannot reach ROS. Step-by-step guide โ
Tip
Setting up the whole system? Start with the system diagram and five-terminal setup in iTeachSkillsApp. It covers the ROS topics, the voice commands, and how to point the HoloLens at your robot with ROSConnectionConfig.json.
All hosted on UTD Box.
| D5 ยท 5 controlled scenes | D40 ยท 40 scenes | Test ยท 902 samples | |
|---|---|---|---|
| iTeach-HumanPlay dataset | Download | Download | Download |
| Fine-tuned MSMFormer | Download | Download | โ |
Everything the system needs is in this frame: a Fetch carrying an RGB-D camera and an RTX 4090 laptop that runs inference, SAM2 and fine-tuning onboard, and a human wearing a HoloLens 2 for the live overlay and gaze + voice annotation.
| ๐ค Robot | Fetch mobile manipulator with a head RGB-D camera |
| ๐ป Compute | Laptop with an RTX 4090 for onboard inference and fine-tuning |
| ๐ฅฝ Mixed reality | Microsoft HoloLens 2 |
| ๐ฎ Teleoperation | PS4 controller |
| ๐ Network | Wired Ethernet + Wi-Fi hotspot |
๐๏ธ Lab setup reference โ the exact working configuration (environment exports, ROS and network config, and a software-in-the-loop test harness that replays a recorded scene) is archived in
docs/handoff/. Addresses there are placeholders; substitute your own.
Warning
Archived. No longer maintained. Everything below, and the src/ (except src/hololens_utils/, which the current system still uses), toolkit/, dataloader/, hololens_app/ and hf_demo/ folders, covers the earlier version of iTeach. That version is a Mixed Reality labelling loop for door and handle detection with a YOLOv5-based model (DH-YOLO), the IRVLUTD DoorHandle dataset and the iTeachLabeller HoloLens app. It is kept only for reference and reproducibility. For the current system, see Code.
iTeach v1: Mixed Reality labelling loop for door and handle detection.
1 ยท Install the iTeachLabeller app on the HoloLens 2
ย ย ๐ฑ Build it from hololens_app/ ย ยทย ๐ ๏ธ Install video
2 ยท Set up the laptop and robot ย ย ๐ Follow src/README.md
3 ยท Teach ย ย ๐ค Drive the robot, collect failure samples, label them and fine-tune. ย ยทย ๐ฌ Real-world demo
๐ฆ A walkthrough of the hardware, network and scripts is in this video. Detailed steps are in its description.
Each directory has its own README.
| Folder | Contents |
|---|---|
๐งช src/ |
Main experiment files |
๐ ๏ธ toolkit/ |
iTeach toolkit (DH-YOLO inference) |
๐ฑ hololens_app/ |
iTeachLabeller HoloLens app source |
๐๏ธ dataloader/ |
PyTorch dataloader for the IRVLUTD DoorHandle dataset |
๐ค hf_demo/ |
DH-YOLO Hugging Face space (git submodule: git submodule update --init hf_demo, needs git-lfs) |
๐ฆ Publishing toolkit / dataloader to PyPI
Run these with each new build:
rm -rf build/ dist/ # also remove the corresponding .egg-info directory
python setup.py sdist bdist_wheel # bump the version in setup.py first
twine upload dist/* # needs your PyPI tokenReleased under the MIT License, ยฉ 2024-2026 Intelligent Robotics and Vision Lab (IRVL), The University of Texas at Dallas.
Third-party code keeps its own license: the YOLOv5 code under src/iTeach/yolov5/ (and the YOLOv5-derived DH-YOLO code) is AGPL-3.0.
If iTeach helps your research, please cite:
@misc{padalunkal2024iteach,
title={iTeach: In the Wild Interactive Teaching for Failure-Driven Adaptation of Robot Perception},
author={Jishnu Jaykumar P and Cole Salvato and Vinaya Bomnale and Jikai Wang and Ayush Bhardwaj and Jin-Ryong Kim and Yu Xiang},
year={2026},
eprint={2410.09072},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2410.09072},
}| ๐ฌ Questions & ideas | Discussion forum |
| ๐ ๏ธ Bugs | Open an issue |
| ๐ง Direct | Jishnu |
This work was supported by the DARPA Perceptually-enabled Task Guidance (PTG) Program under contract number HR00112220005, the Sony Research Award Program, and the National Science Foundation (NSF) under Grant No. 2346528. We thank Sai Haneesh Allu for his assistance with the real-world experiments.