Cognecto› Research› Technical Report
phyOS Technical Report · Roads & Highways
November 2026 · Cognecto, phyOS team

Structured Detection Logs Versus Raw Video as Language Model Input for Road Maintenance Work Orders: A Single-Road Study

One road survey, given to the same language model in two forms: raw video frames and a structured detection log. On this road, the log produced stable quantities, located orders and traceable evidence at about a third of the input.

Survey frame of the study road with detector boxes drawn around potholes
122 to 128
Potholes ordered from the log, against a hand count of 110
34 of 35
Log orders confined to a specific stretch of road
34%
Log input tokens, relative to the video input

Abstract

Road agencies increasingly collect survey video, and it is tempting to hand that video straight to a multimodal language model and ask for a maintenance plan. We test whether the form of the evidence matters. From one 121-second survey drive over a 682 m urban road, we built two inputs: one frame per second with its GPS chainage (FOOTAGE), and the 138 defect detections a tracking detector had already written to a structured log (LOG). We asked Qwen3.5-27B for work orders under IRC:82-2015 five times per input, and checked every detection in the log by hand. The LOG runs ordered 122 to 128 potholes against a hand count of 110, while the FOOTAGE runs ordered between 0 and 100. 34 of the 35 LOG orders were confined to a specific stretch of road, while all 16 FOOTAGE orders spanned the whole road. Every LOG order cites detection rows that can be opened and inspected, and the LOG input used 34% of the FOOTAGE input tokens. Detector errors do reach the orders, but each one traces back to a single row. The study covers one road and one model, so we present it as a first result rather than a benchmark.

Keywords: road condition survey, pavement maintenance, large language models, evidence provenance, object detection, IRC:82-2015

1Introduction

The product of a road condition survey is a set of maintenance decisions: what to repair, where, and in what quantity. In India these decisions follow the Indian Roads Congress code of practice for bituminous roads, IRC:82-2015 [1]. Survey video is cheap to collect, and a capable multimodal model can describe what it sees, so one obvious design is to give the model the video and ask it for work orders.

The alternative is to place a detector in between. The detector turns the video into a log of discrete, located observations, and the language model reasons over that log instead of over pixels. This adds a component, and the detector’s errors become part of the input. It also gives every conclusion a row it can point to.

We compare the two designs on the same drive, with the same model and the same instructions. Our questions are practical ones a road engineer would ask of a work order: is the quantity stable across runs, is the work located on the road, and can each order be checked against its evidence?

This report makes three contributions:

  1. A paired comparison of video frames and a structured detection log as input to the same language model, on the same survey, over five seeds each.
  2. A complete hand check of all 138 detections in the log, which gives a ground count against which work order quantities can be judged.
  3. A trace from individual work orders back to the detections they cite, including the cases where the detector was wrong.

2Data and detector

2.1Survey

The survey is a single phone video of an urban road in India, recorded on 3 September 2026. It runs 121 s at 1920×1080 and 30 fps, with a GPX track that places it along 682 m of chainage.

Figure 1. The survey video as the detector sees it, 0:08 to 0:50 of the 2:01 drive. Boxes and running counts are drawn by the detector’s own overlay. Everything outside the carriageway is blurred using a road segmentation model.

2.2The detection log

The detector is road_defects v1, a YOLOv8 model [2] with object tracking, run through ONNX Runtime [3] with the production code of phyOS. Tracking matters here: a pothole that stays in view for two seconds is recorded once rather than sixty times. For each tracked defect the detector writes one row containing its class, the model’s confidence, the frame, the bounding box, and the GPS chainage at which it was seen.

On this drive it wrote 138 rows. We regenerated the log for this study with the production code. For the first 25 seconds, where production had already written 38 rows, the regenerated log matches all 38 exactly, on both CPU and GPU.

3Method

3.1Inputs

Both inputs derive from the same drive. FOOTAGE is one frame per second, downscaled to 960×540, with each frame stamped with its frame number, time, and chainage; it comes to 75,617 input tokens. LOG is the 138 detection rows rendered as text; it comes to 25,981 input tokens.

3.2Model and decoding

We used Qwen3.5-27B [4] with FP8 weights, served by vLLM 0.31.0 [5] on one NVIDIA A100 40 GB. Decoding used temperature 0.6, top-p 0.95 and top-k 20, with seeds 1 to 5 for each input, and output was constrained to a JSON schema. All ten answers conformed to the schema and finished before the token limit.

3.3Instructions

The instructions were identical for both inputs. They set out the IRC:82-2015 maintenance criteria and a fixed work order schema in which each order names a treatment, a chainage range, a quantity, and the evidence it rests on. The prompt allowed an order either to cite every supporting item or to cite only the first and last item in its range.

3.4Hand verification

One reviewer opened the frame behind each of the 138 detections and labelled it as a real defect, not a defect, or cannot tell. This gives a precision figure for the detector and a hand count of real potholes. It does not measure recall: defects the detector missed are not counted.

3.5Measures

For each run we record the number of orders, the order types, the pothole quantity ordered, and the evidence cited. For each order we compute its coverage, the share of the road it spans:

coverage = (chainageend − chainagestart) / 682 m

We call an order with coverage of 0.9 or more a whole-road order. Area and length quantities are reported but not compared, because neither input carries a ground scale (section 4.5).

4Results

4.1Quality of the log

Of the 136 detections that could be judged, 124 are real defects. For potholes, the class that drives most of the work, 110 of 122 are real, 10 are not a defect and 2 could not be judged. That is a precision of 92% among those judged, with a 95% interval of 85% to 95% (Table 1).

Table 1. Hand check of all 138 detections, by class.

ClassDetectionsRealNot a defectCannot tell
pothole122110102
ravelling9810
edge crack3300
patching2200
shoving1100
alligator crack1010
Bar chart of detections by class with the hand check
Figure 2. Detections in the log by class, with the outcome of the hand check.
log #135, pothole, real
pothole real
log #135 · 0.67 · 641 m
log #128, ravelling, real
ravelling real
log #128 · 0.64 · 452 m
log #42, edge crack, real
edge crack real
log #42 · 0.62 · 139 m
log #50, patching, real
patching real
log #50 · 0.52 · 159 m
log #58, shoving, real
shoving real
log #58 · 0.53 · 172 m
log #73, alligator crack, not a defect
alligator crack not a defect
log #73 · 0.60 · 262 m
Figure 3. One detection of each class, choosing the most confident real one where the class has one. Each tile gives the log row, the detector’s confidence and the chainage. The only alligator crack detection is a stack of paver blocks.

4.2Spatial placement of orders

The clearest difference between the inputs is where the work is placed (Figure 4). All 16 FOOTAGE orders run from 0 to 682 m, so every one of them is a whole-road order. Only 1 of the 35 LOG orders is; the other 34 cover part of the road.

The LOG runs also leave out stretches where nothing was detected. In 4 of the 5 runs, pothole patching stops between 454 and 500 m and resumes at 600 to 620 m, which is exactly the stretch where the log holds no pothole detections. The orders follow the evidence rather than covering the road by default.

Work orders on the road for ten runs
Figure 4. Spatial extent of every work order across the ten runs. Each bar is one order on the chainage it covers, with one lane per order type. The bottom row is the detection log, one tick per detection.

4.3Pothole quantities

Table 2 summarises the runs. The LOG runs ordered 122 to 128 potholes (mean 123.8, standard deviation 2.5). That tracks the 122 pothole rows in the log, which include the 10 false detections and the 2 that could not be judged, so the LOG runs over-order by roughly that margin relative to the hand count of 110. The FOOTAGE runs ordered 50, 0, 50, 100 and 30 (mean 46, standard deviation 36.5), and seed 2 ordered no pothole patching at all (Figure 5).

Table 2. Summary of the ten runs, five per input.

MeasureFOOTAGELOG
Work orders, five runs1635
Whole-road orders (coverage ≥ 0.9)161
Potholes ordered, seeds 1 to 5 (hand count 110)50, 0, 50, 100, 30124, 128, 122, 123, 122
Evidence cited per pothole order1 to 5 frames2 to 116 detections
Order types per run2 to 44 in every run
Rut correction ordered5 of 5 runs0 of 5 runs
Input tokens per run75,61725,981
Potholes ordered per run
Figure 5. Potholes ordered for patching in each run. The dashed line marks the 122 pothole rows in the log; the solid line marks the 110 confirmed by hand.

4.4Order types

Every LOG run ordered the same four treatments: pothole patching, ravelling treatment, edge repair and crack sealing. The FOOTAGE runs ordered between two and four types (Figure 6).

One result runs the other way. All five FOOTAGE runs ordered rut correction and no LOG run did. The detector has a rutting class but recorded no ruts on this road, so the LOG input could not support such an order. We have not yet verified whether ruts are present, so we cannot say which input is right on this point.

Order types per run
Figure 6. Number of orders of each type produced by each run.

4.5Quantities

Neither input carries a ground scale, so every area and length in the orders is the model’s own estimate (Figure 7). The FOOTAGE area orders cover the whole carriageway, at 4,092, 4,100 and 4,774 m². For this reason we compare pothole counts only.

Quantities ordered
Figure 7. Area and length of each order, on a logarithmic scale. All quantities are the model’s own estimates.

4.6Tracing an order to its evidence

Figure 8 places the first pothole patching order from seed 1 of each input side by side. The LOG order cites 116 detections, of which the hand check found 105 real, and any one of them can be opened to see the pothole. The FOOTAGE order cites three frames, and the quantity it gives rests on the model’s reading of the rest of the video. In seeds 1 and 2 the LOG orders cite every detection in their range; in seeds 3 to 5 they cite only the first and last, as the prompt allowed.

LOG  seed 1, order 1

Stretch
0 to 500 m
Quantity
118 potholes
Evidence
116 detections, 105 real by hand check; every tenth shown
log #1, pothole, real
pothole real
log #1 · 0.59 · 9 m
log #10, pothole, real
pothole real
log #10 · 0.50 · 56 m
log #19, pothole, real
pothole real
log #19 · 0.54 · 76 m
log #30, pothole, real
pothole real
log #30 · 0.54 · 95 m
log #41, pothole, real
pothole real
log #41 · 0.55 · 137 m
log #53, pothole, real
pothole real
log #53 · 0.57 · 157 m
log #63, pothole, real
pothole real
log #63 · 0.64 · 209 m
log #72, pothole, not a defect
pothole not a defect
log #72 · 0.57 · 258 m
log #82, pothole, real
pothole real
log #82 · 0.52 · 308 m
log #91, pothole, real
pothole real
log #91 · 0.54 · 350 m
log #100, pothole, can't tell
pothole can’t tell
log #100 · 0.54 · 367 m
log #111, pothole, real
pothole real
log #111 · 0.60 · 403 m

FOOTAGE  seed 1, order 1

Stretch
0 to 682 m
Quantity
50 potholes
Evidence
3 frames, all shown
frame 121
frame 121
frame 2131
frame 2131
frame 3391
frame 3391
Figure 8. The first pothole patching order from seed 1 of each input, with the evidence it cites.

4.7Propagation of detector errors

The LOG runs inherit the detector’s mistakes. The clearest case is the stack of paver blocks recorded as an alligator crack (log row 73, at 262 m): all five LOG runs ordered crack sealing at that location. The error is real, but it is confined to one row, at one chainage, with one frame behind it, so a reviewer can find and remove it in seconds. Figure 9 shows three of the ten detections the reviewer marked as not a pothole.

log #7, pothole, not a defect
pothole not a defect
log #7 · 0.74 · 48 m
log #62, pothole, not a defect
pothole not a defect
log #62 · 0.67 · 195 m
log #60, pothole, not a defect
pothole not a defect
log #60 · 0.60 · 180 m
Figure 9. Three of the ten pothole detections marked not a defect in the hand check. Each is a single row that a reviewer can strike before orders are issued.

5Discussion

Given frames, the model behaved like a reader skimming a video. It produced few orders, spread each one across the whole road, and gave pothole counts that varied by a factor of two or more between seeds, including one run with none. Given the log, it behaved more like an engineer working from a defect register. Its counts were stable, its orders were located, and each one listed the rows behind it.

The two inputs fail in different ways. The log carries the detector’s false positives into the orders, which is why the LOG runs over-order potholes by about ten percent. Those errors are visible and individually correctable. The FOOTAGE runs have no such handle: when an order says 50 potholes over the whole road, there is no row to check and no stretch to inspect, only three frames and the model’s word.

Cost points the same way on this road. The log is about a third of the input, and that ratio would likely widen on longer drives, since the frame count grows with duration while the log grows with the number of defects. We have not measured this.

The rut correction result is a reminder that a log can only report what its detector was built to see and actually saw. A defect the detector misses never reaches the language model, whereas the raw frames at least contain it. Pairing the log with targeted frame review for classes the detector rarely fires on is a natural next step.

6Limitations

  • The study covers one road, one language model and five runs per input. It is a first result, not a benchmark.
  • A single reviewer performed the hand check, and it measures precision only. Potholes the detector missed are not counted, so the hand count of 110 is a lower bound on the true number.
  • Nine other roads were also run. Most are unpaved and fall outside the scope of IRC:82-2015, which covers bituminous roads, so they are not reported here.
  • The model ran with FP8 weights and an FP8 key-value cache without calibrated scales, which may affect output quality.
  • The presence or absence of ruts on this road has not been verified.

7Conclusion

On this road, giving the language model a structured detection log instead of raw video produced work orders that were more consistent in quantity, placed on specific stretches of road, and traceable to individual pieces of evidence, at about a third of the input cost. The log’s errors passed into the orders, but each could be located and corrected. This is the premise behind phyOS: field methods such as road_defects turn video into rows with a place, a time and a source, so that whatever reasons over those rows, a person or a model, can be held to account for each conclusion it draws. The next steps are more roads, a second reviewer, a recall estimate for the detector, and a check of the rut question.

References

  1. Indian Roads Congress. IRC:82-2015, Code of Practice for Maintenance of Bituminous Road Surfaces (first revision). New Delhi, 2015.
  2. G. Jocher, A. Chaurasia and J. Qiu. Ultralytics YOLOv8. Software, 2023. github.com/ultralytics/ultralytics
  3. ONNX Runtime developers. ONNX Runtime. Software. onnxruntime.ai
  4. Qwen Team. Qwen3.5-27B. Model release. huggingface.co/Qwen
  5. W. Kwon, Z. Li, S. Zhuang, Y. Sheng, L. Zheng, C. H. Yu, J. E. Gonzalez, H. Zhang and I. Stoica. Efficient memory management for large language model serving with PagedAttention. In Proceedings of the 29th ACM Symposium on Operating Systems Principles, 2023.

Appendix A. Experimental setup at a glance

Survey
Phone video, 121 s, 1920×1080 at 30 fps, with GPX track; 682 m of chainage; recorded 3 September 2026.
Detector
phyOS road_defects v1 (YOLOv8 with tracking), production code, ONNX Runtime.
Language model
Qwen3.5-27B, FP8 weights, vLLM 0.31.0, one A100 40 GB.
Decoding
Temperature 0.6, top-p 0.95, top-k 20; seeds 1 to 5; JSON schema output.
FOOTAGE input
1 frame/s at 960×540, stamped with frame number, time and chainage; 75,617 tokens.
LOG input
138 detection rows as text; 25,981 tokens.
Instructions
Identical for both inputs: IRC:82-2015 criteria and a fixed work order schema.
Hand check
All 138 detections, one reviewer, 2 November 2026.

phyOS by Cognecto. Frames and video are blurred outside the road surface.