← All work

Structural Monitoring

Triplet-loss concrete crack verification

A shared ResNet-101 encoder learns a 128-dimensional embedding for deciding whether two images show the same crack pattern.

My role
I led the study as first author, developing the metric-learning workflow, preparing triplets, and evaluating the verification model with my co-authors.
What I built
A shared ResNet-101 feature extractor and dense embedding head are trained with triplet loss. Manhattan distance and a reported threshold of 10.56 drive verification.
Key results
  • 97.36% accuracy (prepared image-pair benchmark)
  • 95.77% precision (prepared image-pair benchmark)
  • 99.61% AUC (prepared image-pair benchmark)
Stack
Python · TensorFlow · ResNet-101 · Metric learning · Triplet loss · Evaluation tooling
Illustrative generated image showing the same branching concrete crack in two close-up observations.
Generated illustration of the crack-verification concept; it is not experimental data or a paper figure.

Problem

What needed to be understood or measured

Crack detection answers whether damage is visible. Verification asks whether a later image corresponds to the same pattern, a necessary identity step before longitudinal comparison.

My contribution

My contribution

I led the study as first author, developing the metric-learning workflow, preparing triplets, and evaluating the verification model with my co-authors.

Experimental setup

Data and setup

20,000 source images prepared as triplets: 12,000 for training, 3,000 for validation, and 5,000 for testing. Positive pairs were transformed versions of anchors; negatives showed different cracks.

Method

From input to interpretable output

A shared ResNet-101 feature extractor and dense embedding head are trained with triplet loss. Manhattan distance and a reported threshold of 10.56 drive verification.

Results

Reported results

97.36%

accuracy

prepared image-pair benchmark

95.77%

precision

prepared image-pair benchmark

99.61%

AUC

prepared image-pair benchmark

Distribution of positive and negative embedding distances from released repository output.
Repository-generated evaluation output with direct labels and no redrawn data.

Validation & uncertainty

Reference and uncertainty checks

Released distance outputs show the separation between prepared positive and negative pairs. Accuracy, precision, and AUC are tied to that benchmark construction.

Limitations & failure modes

Operating limits and failure modes

Large appearance change, unseen surface texture, severe occlusion, repeated crack morphology, and domain shift can move embeddings across the verification threshold.

The positive examples were generated by rotation and shearing, not captured as repeated observations of the same physical crack. These results do not validate longitudinal field tracking or a deployed digital twin.

Technical stack

Tools selected for the measurement chain

  • Python
  • TensorFlow
  • ResNet-101
  • Metric learning
  • Triplet loss
  • Evaluation tooling

Sources & project links

Papers and code

IEEE MetroXRAINE 2024 paper and MIT-licensed public repository. The distance chart is a repository output generated from released evaluation data.

Code + model artifact ↗IEEE paper ↗