Evaluates lane detection performance in diverse urban and highway scenarios using an F1-measure based on IoU between predicted and ground truth lane lines. Use when the user wants to benchmark on CULane, or asks about evaluating this task. Reports F1-measure.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add qhjqhj00/research-skills-pool --skill culane-eval --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Culane Eval?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-culane-eval)More formats (shields.io, HTML) on the badges page.
---
name: culane-eval
description: Evaluates lane detection performance in diverse urban and highway scenarios using an F1-measure based on IoU between predicted and ground truth lane lines. Use when the user wants to benchmark on CULane, or asks about evaluating this task. Reports F1-measure.
metadata:
skill_kind: dataset_eval
source_arxiv: 2004.11757
bibtex_key: qin2020ultrafast
confidence: high
---
# culane-eval
> Ultra Fast Structure-aware Deep Lane Detection — Qin et al. (2020) (arXiv:2004.11757, 2020)
## What this evaluates
Evaluates lane detection performance in diverse urban and highway scenarios using an F1-measure based on IoU between predicted and ground truth lane lines.
## Datasets
- **CULane** — total 133235; splits: train (88880), validation (9675), test (34680)
## Metrics
- `F1-measure` **(primary)** — range: percent
- F1 = 2 * Precision * Recall / (Precision + Recall). Each lane is treated as a 30-pixel-width line. IoU is computed between GT and prediction; IoU > 0.5 counts as True Positive.
## Input / output format
**Input**: RGB image (original resolution 1640x590, resized to 288x800 during training)
**Output**: Predicted lane lines/coordinates via row-anchor classification or regression
## Scoring recipe
```python
TP = FP = FN = 0
for clip in dataset:
gt_lanes = get_gt_lanes(clip)
pred_lanes = get_pred_lanes(clip)
for gt in gt_lanes:
best_iou = max(iou(gt, pred) for pred in pred_lanes)
if best_iou > 0.5:
TP += 1
break
else:
FN += 1
FP += len(pred_lanes) - TP
Precision = TP / (TP + FP) if (TP + FP) > 0 else 0
Recall = TP / (TP + FN) if (TP + FN) > 0 else 0
F1 = 2 * Precision * Recall / (Precision + Recall)
```
## Common pitfalls
- IoU threshold for positive match is strictly >0.5, not ≥0.5.
- Lanes are treated as 30-pixel-wide lines for IoU calculation, not 1-pixel curves.
- F1-measure is computed per clip, then averaged or summed across the dataset.
## Evidence (verbatim from paper)
> As for the evaluation metric of CULane, each lane is treated as a 30-pixel-width line. Then the intersection-over-union (IoU) is computed between ground truth and predictions. Predictions with IoUs larger than 0.5 are considered as true positives. F1-measure is taken as the evaluation metric and formulated as follows: F1-measure = 2*Precision*Recall/(Precision+Recall)
## Citation
```bibtex
@misc{qin2020ultrafast,
title={Ultra Fast Structure-aware Deep Lane Detection},
author={Qin et al. (2020)},
year={2020},
note={arXiv:2004.11757}
}
```
- arXiv: 2004.11757
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!