Evaluates the accuracy of predicted optical flow fields against ground truth displacements between consecutive video frames. It probes a model's ability to handle occlusions, non-rigid motion, and large displacements in both synthetic and real-world driving scenarios. Use when the user wants to benchmark on Sintel, KITTI 2012, or asks about evaluating this task. Reports end point error.
Installs into .claude/skills of the current project.
Are you the author of Optical Flow Epe Eval?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-optical-flow-epe-eval)
---
name: optical-flow-epe-eval
description: Evaluates the accuracy of predicted optical flow fields against ground truth displacements between consecutive video frames. It probes a model's ability to handle occlusions, non-rigid motion, and large displacements in both synthetic and real-world driving scenarios. Use when the user wants to benchmark on Sintel, KITTI 2012, or asks about evaluating this task. Reports end point error.
metadata:
skill_kind: dataset_eval
source_arxiv: 2102.00364
bibtex_key: kong2021oasnet
confidence: high
---
# optical-flow-epe-eval
> OAS-Net: Occlusion Aware Sampling Network for Accurate Optical Flow — Kong et al. (2021) (arXiv:2102.00364, 2021)
## What this evaluates
Evaluates the accuracy of predicted optical flow fields against ground truth displacements between consecutive video frames. It probes a model's ability to handle occlusions, non-rigid motion, and large displacements in both synthetic and real-world driving scenarios.
## Datasets
- **Sintel** — total ?; splits: train (-1), test (-1), clean (-1), final (-1)
- **KITTI 2012** — total ?; splits: train (-1), test (-1)
## Metrics
- `end point error` **(primary)** — range: other (pixels)
- Computes the L2 distance between the predicted flow vector and the ground truth flow vector for each pixel, then averages over all valid pixels. Lower values indicate better accuracy.
## Input / output format
**Input**: Pairs of consecutive frames (images) from a video sequence.
**Output**: A 2D optical flow field (H × W × 2 displacement map) and an occlusion awareness map (H × W).
## Scoring recipe
```python
def compute_epe(pred_flow, gt_flow, valid_mask=None):
diff = pred_flow - gt_flow
epe_per_pixel = torch.sqrt(torch.sum(diff**2, dim=-1))
if valid_mask is not None:
epe_per_pixel = epe_per_pixel[valid_mask]
return epe_per_pixel.mean().item()
```
## Common pitfalls
- EPE is a lower-is-better metric; confusing it with accuracy (higher-is-better) leads to incorrect model selection.
- Sintel has 'Clean' and 'Final' test splits with different noise levels and motion characteristics; results must be reported separately.
- KITTI 2012 and KITTI 2015 use different training/test splits and evaluation protocols; mixing them invalidates comparisons.
## Evidence (verbatim from paper)
> Optical flow accuracy is measured by end point error.
## Citation
```bibtex
@misc{kong2021oasnet,
title={OAS-Net: Occlusion Aware Sampling Network for Accurate Optical Flow},
author={Kong et al. (2021)},
year={2021},
note={arXiv:2102.00364}
}
```
- arXiv: 2102.00364