Busabase
Busabase 是一个开源(MIT)数据库与 AI 智能体工作空间——将数据、文档、技能和应用集成于一体。您可以本地运行、在网络内自托管或使用 Busabase Cloud,从而开启新时代。
AI 翻译
LinePilot Digitizer: turn a picture of a line plot into numbers. Standard, enhanced and OCR calibration + color-based curve recovery (UGA). Desktop app, CLI, Python API, and the DigitizerBench benchmark. arXiv:2609.19377
翻译准备中
正在加载完整 README。
查看完整 README ↗LinePilot Digitizer turns a picture of a line plot — a figure from a paper, a scanned chart, a screenshot — into the numbers behind it. It reads the axes, follows each colored curve column by column, and exports a CSV plus an overlay image so you can check its work at a glance.
It offers three calibration modes that share one curve-recovery procedure:
| Mode | How the axes are calibrated | Best for |
|---|---|---|
| LinePilot (standard) | You click four axis ticks (X min, X max, Y min, Y max); the clicks are used as is. | Full manual control. |
| LinePilot (enhanced) | Same four clicks, each snapped to the nearest tick / axis stroke at sub-pixel precision — only when the image supports it. | Best accuracy with human guidance. Lowest error of every tool we tested on DigitizerBench-Lite. |
| LinePilot (OCR) | Axis labels are read with Tesseract (and RapidOCR when available), paired with ticks, and checked for a consistent scale. No clicks. | Batch processing and fully automatic pipelines. Best of the automatic tools on DigitizerBench-Full. |
The paper also introduces DigitizerBench, the first benchmark designed specifically to evaluate plot digitizers end to end.
Paper: Fengbo Ma*, Rayan Akhtar*, Aakash Joshi*, Xiaoting Li, Haijian Sun, Zhen Xiang†, Xianyan Chen†, Yiping Zhao†. LinePilot Digitizer: Line-Plot Recovery with Manual and Automatic Calibration. arXiv:2609.19377, 2026. [arXiv] · [PDF] · [Online appendix] · [Website] · [DigitizerBench] · [Cite]
Contact: questions, suggestions and collaborations → [email protected] (Zhao lab, University of Georgia). Bug reports and feature requests → GitHub Issues.
Digitization is two problems. Calibration maps image pixels to data coordinates — a calibration error shifts every recovered point. Curve recovery follows the plotted line, which is a continuous path rather than a cloud of independent pixels. LinePilot keeps the recovery stage fixed and lets you choose how calibration happens.
Calibration. For either linear axis, two anchors (p₁, q₁) and (p₂, q₂) define q = q₁ + (p − p₁)(q₂ − q₁)/(p₂ − p₁), applied horizontally to (u, x) and vertically to (v, y). The three modes differ only in where the anchors come from: your raw clicks (standard), your clicks refined to the tick center from local image intensity (enhanced), or OCR'd tick labels paired with detected ticks and filtered for a consistent scale (OCR). OCR mode reports failure rather than guessing when the required endpoints can't be established. Log-scale axes are supported in every mode.
Curve extraction. Target colors are detected automatically or picked by you. In each image column, pixels within a color tolerance are grouped into vertical runs; each run's midpoint is a candidate center-line position and its thickness is extra stroke evidence. Dynamic programming links candidates across columns, rewarding sustained support and penalizing abrupt vertical jumps and gaps, so isolated color-matched objects lose to the real line. Only image-supported points are exported — missing columns are never filled with synthesized values.
Also in the app: text and legend masking, out-of-plot masking, a color picker with multiple color slots, cursor zoom, Ctrl+Z for calibration clicks, CSV / Excel export, and a batch CLI.
One example from DigitizerBench (D0001-overlapping-altair, Fig. 1b in the paper): an overlapping two-line plot digitized by the state-of-the-art automatic tool, the state-of-the-art manual tool, and the three LinePilot modes.
| Original plot | ChartOCR | LinePilot (OCR) |
|---|---|---|
| two noisy series, Altair | no output | both series, fully automatic |
| PlotDigitizer Pro | LinePilot (standard) | LinePilot (enhanced) |
|---|---|---|
| sparse manual points | dense, 4 clicks | dense, 4 snapped clicks |
Automatic pipelines — DigitizerBench-Full (2,980 images per method)
| Method | FPC-NRMSE ↓ | Output success ↑ | Trusted usability ↑ | Points per line ↑ |
|---|---|---|---|---|
| ChartOCR | 0.953 | 30.2 % | 5.4 % | 29 |
| LineEX | 0.997 | 36.6 % | 0.4 % | 14 |
| LinePilot (OCR) | 0.672 | 55.1 % | 38.2 % | 1,180 |
Human-guided tools — DigitizerBench-Lite (60 images per method)
| Method | FPC-NRMSE ↓ | Output success ↑ | Trusted usability ↑ | Points per line ↑ |
|---|---|---|---|---|
| PlotDigitizer Pro | 0.097 | 100 % | 91.7 % | 475 |
| WebPlotDigitizer | 0.164 | 98.3 % | 86.7 % | 195 |
| Engauge Digitizer | 0.790 | 55.0 % | 23.3 % | 235 |
| LinePilot (standard) | 0.101 | 100 % | 91.7 % | 1,025 |
| LinePilot (enhanced) | 0.081 | 100 % | 93.3 % | 1,027 |
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗