Sri1311/pid_lines_dataset
P&ID Line Detection Dataset This dataset contains cropped images from P&ID (Piping and Instrumentation Diagrams) with line segment annotations for line detection and segmentation tasks. Dataset Structure Each sample contains: file_name: Image filename source_image_idx: Index of the original P&ID image crop_idx: Index of this crop from the source image width: Crop width in pixels height: Crop height in pixels lines: Dictionary with: segments: List of line… See the full description on the dataset page: https://huggingface.co/datasets/Sri1311/pid_lines_dataset.
P&ID Line Detection Dataset
This dataset contains cropped images from P&ID (Piping and Instrumentation Diagrams) with line segment annotations for line detection and segmentation tasks.
Dataset Description
- Total source images: 500
- Total cropped samples: 10000
- Total line segments: 44754
- Crops per image: 20
- Image sizes: Various sizes under 1000px (e.g., 300x500, 512x768, 900x900)
Dataset Structure
Each sample contains:
file_name: Image filenamesource_image_idx: Index of the original P&ID imagecrop_idx: Index of this crop from the source imagewidth: Crop width in pixelsheight: Crop height in pixelslines: Dictionary with:segments: List of line segments as [x1, y1, x2, y2] (start and end points)line_types: List of line types ("solid" or "dashed")pipelines: List of pipeline names for each line
Usage
from datasets import load_dataset
# Load the dataset
dataset = load_dataset("imagefolder", data_dir="path/to/lines_dataset")
# Access a sample
sample = dataset["train"][0]
image = sample["image"]
lines = sample["lines"]
segments = lines["segments"] # [[x1, y1, x2, y2], ...]
line_types = lines["line_types"] # ["solid", "dashed", ...]
pipelines = lines["pipelines"] # ["5\"-EK-2648", ...]
# Draw lines on image
from PIL import ImageDraw
draw = ImageDraw.Draw(image)
for seg in segments:
x1, y1, x2, y2 = seg
draw.line([(x1, y1), (x2, y2)], fill="blue", width=3)
image.show()Line Segment Format
Each line segment is represented as [x1, y1, x2, y2] where:
(x1, y1)is the start point(x2, y2)is the end point- Coordinates are in pixels, relative to the cropped image
- Only lines where both endpoints are fully inside the crop are included
Line Types
solid: Continuous pipeline linesdashed: Dashed lines (often representing signal/instrument lines)
License
MIT License
