Buckets:
| license: mit | |
| task_categories: | |
| - image-segmentation | |
| - object-detection | |
| tags: | |
| - P&ID | |
| - lines | |
| - pipelines | |
| - engineering | |
| - diagrams | |
| - line-detection | |
| size_categories: | |
| - 1K<n<10K | |
| # 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 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 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 | |
| ```python | |
| 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 lines | |
| - `dashed`: Dashed lines (often representing signal/instrument lines) | |
| ## License | |
| MIT License | |
Xet Storage Details
- Size:
- 2.15 kB
- Xet hash:
- 9e7ca2174350044a7044b5e77949f4135478c62305a4cf46f1c9ee4af097b186
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.