AIWeldingRobot:Basic
개발자 관점에서 3D Segmentation의 기초부터 SOTA까지 접근하기 위한 학습 로드맵. 각 단계는 이전 단계의 지식을 전제로 하며, 실습 가능한 코드/리포지토리를 포함한다.
| WARNING |
| 이 페이지는 Claude AI 가 만든 문서 입니다. 내용을 참고할 때 주의하시오 |
최종 목표
로봇팔 + 포인트 클라우드 + 머신 비전 카메라를 사용한 자동 용접 로봇 시스템 구축 파이프라인:
- 3D 카메라 (Structured Light / Stereo)
- 점군 획득 & 전처리
- 용접 이음(Weld Seam) 검출 & 세그멘테이션 ← 이 커리큘럼의 핵심
- 용접 경로(Path) 계획
- Hand-Eye 캘리브레이션 (카메라 좌표 → 로봇 좌표 변환)
- 로봇팔 모션 플래닝 (MoveIt2 등)
- 용접 실행 + 실시간 Seam Tracking
- 용접 후 품질 검사 (결함 검출)
Phase 0: 선수 지식 점검
시작 전에 아래 개념이 익숙한지 확인. 부족하면 해당 항목부터 보강.
- 2D Image Segmentation 기본: Semantic / Instance / Panoptic segmentation의 차이
- CNN 기초: Encoder-Decoder 구조, U-Net 아키텍처
- PyTorch 기본 사용법: Dataset, DataLoader, 학습 루프
- 3D 좌표계: 회전행렬, 변환행렬, 카메라 모델 (intrinsic/extrinsic)
- ROS2 기초: 토픽, 서비스, TF2 프레임 개념 (로봇 연동 필수)
핵심 라이브러리 셋업
Phase 1: 3D 데이터 표현 방식 이해
3D segmentation을 이해하려면 먼저 "3D 데이터가 뭘로 표현되는가"를 알아야 한다.
1.1 Point Cloud (점군) ⭐ 용접에서 가장 중요
- 가장 원시적인 3D 표현.
(x, y, z)좌표의 집합 - LiDAR, depth camera, structured light 카메라에서 직접 획득
- 비정형(unordered) 데이터 — 일반 CNN을 직접 적용할 수 없음
- 실습: Open3D로
.ply,.pcd파일 로드 및 시각화 - 용접 맥락: structured light 카메라(예: Photoneo PhoXi, Intel RealSense)로 워크피스 스캔 → 점군 획득 → 이음부 검출이 기본 플로우
import open3d as o3d
pcd = o3d.io.read_point_cloud("example.ply")
o3d.visualization.draw_geometries([pcd])
1.2 Voxel (복셀)
- 3D 공간을 균일한 격자로 나눈 것 (3D 픽셀)
- 3D CNN 적용 가능하지만 메모리 소모가 큼 (O(n³))
- Sparse Convolution으로 개선 (MinkowskiEngine, SpConv)
- 용접 맥락: WeldNet 등에서 voxel encoding + sparse conv로 용접 이음 검출에 활용
1.3 Mesh
- 꼭짓점(vertex) + 면(face)으로 구성된 표면 표현
- CAD, 게임, AR/VR에서 주로 사용
- Graph Neural Network으로 처리 가능
1.4 Implicit Representation (암묵적 표현)
- NeRF (Neural Radiance Fields): 연속 함수로 3D 장면을 표현
- 3D Gaussian Splatting (3DGS): 3D 가우시안의 집합으로 장면 표현
- 최근 3D segmentation의 핵심 백본으로 부상
- (용접에서는 직접 사용빈도 낮음 — 연구 트렌드 파악 용도)
1.5 Range Image / BEV (Bird's Eye View)
- LiDAR 점군을 2D 이미지로 투영하여 기존 2D 기법 활용
- 자율주행 분야에서 실시간 처리에 유리
참고 자료
Phase 2: 고전적 3D Segmentation
딥러닝 이전의 전통 방법을 이해하면 왜 딥러닝이 필요했는지 체감할 수 있다. 용접 이음 검출에서 여전히 RANSAC, 클러스터링은 핵심 도구이다.
2.1 Region Growing
- 시드 포인트에서 시작, 유사한 이웃 포인트를 그룹에 추가
- Open3D, PCL에서 바로 사용 가능
2.2 RANSAC 기반 평면 분할 ⭐ 용접 필수
- 바닥, 벽 등 평면 구조를 빠르게 추출
- 용접 맥락: 워크피스의 평면을 먼저 검출 → 두 평면의 교차선 = 용접 이음(seam). 가장 기본적인 용접선 추출 방법
- 최근 논문들도 개선된 RANSAC(NGDT-RANSAC 등)를 여전히 사용
- 실습: Open3D의
segment_plane()
# Step 1: Detect the first plane (첫 번째 평면 검출)
plane1, inliers1 = pcd.segment_plane(
distance_threshold=0.01, ransac_n=3, num_iterations=1000
)
# Step 2: Remove inliers and detect second plane (두 번째 평면 검출)
remaining = pcd.select_by_index(inliers1, invert=True)
plane2, inliers2 = remaining.segment_plane(
distance_threshold=0.01, ransac_n=3, num_iterations=1000
)
# Step 3: Intersection of two planes = weld seam line (교차선 = 용접 이음)
2.3 Euclidean Clustering (DBSCAN)
- 거리 기반 클러스터링으로 개별 물체 분리
- 용접 맥락: 여러 워크피스가 있는 장면에서 개별 부품 분리, 이음부 후보 영역 분할
2.4 Graph Cut / Felzenszwalb
- 이미지 기반 그래프 분할을 3D로 확장한 기법
- SAM3D (Pointcept) 등에서 후처리로 활용
참고 자료
Phase 3: 딥러닝 기반 Point Cloud Segmentation
3.1 PointNet (2017) ⭐ 필수
- 핵심 아이디어: 점군을 직접 입력받는 최초의 딥러닝 모델
- Permutation invariance를 Max Pooling으로 해결
- T-Net으로 공간 변환 학습
- 논문: PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
- 코드: charlesq34/pointnet
- 실습 추천: Keras PointNet Tutorial
- PyG 튜토리얼: PyTorch Geometric - Point Cloud Processing
3.2 PointNet++ (2017) ⭐ 필수
- PointNet의 한계(로컬 구조 무시)를 계층적 구조로 해결
- Set Abstraction: Sampling → Grouping → PointNet
- Multi-Scale Grouping (MSG)로 밀도 불균일 대응
- 논문: PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space
- 코드: charlesq34/pointnet2
3.3 Sparse Convolution 기반
- MinkowskiEngine / SpConv — 희소 3D 데이터에 효율적인 합성곱
- MinkUNet — 3D U-Net + Sparse Conv. ScanNet/SemanticKITTI 벤치마크 상위
- SPVCNN — Point + Voxel 하이브리드
- WeldNet — Sparse Conv + RPN을 용접 이음 검출에 특화시킨 논문 (annular weld seam)
- 코드: NVIDIA/MinkowskiEngine
3.4 Transformer 기반
- Point Transformer (v1/v2/v3) — Self-attention을 점군에 적용
- PointTransformerV3 (PTv3) — 현재 다수 벤치마크 SOTA
- Stratified Transformer — 장거리 의존성 캡처에 효과적
- 코드: Pointcept — 다양한 점군 모델의 통합 프레임워크
3.5 주요 벤치마크 데이터셋
| 데이터셋 | 영역 | 특징 |
| ScanNet | 실내 | RGB-D 재구성, 의미/인스턴스 분할 |
| S3DIS | 실내 | 대규모 건물 스캔 |
| SemanticKITTI | 자율주행 | LiDAR 시퀀스, 28 클래스 |
| ModelNet40 | 분류 | 40카테고리 CAD 모델 |
| ShapeNetPart | 부분 분할 | 물체 파트 레이블 |
| nuScenes | 자율주행 | 다중 센서 (카메라+LiDAR) |
Phase 4: 2D→3D 리프팅 (Foundation Model 활용)
2D에서 학습한 강력한 Foundation Model을 3D로 확장하는 패러다임.
4.1 SAM (Segment Anything Model) 이해
- Meta의 2D 범용 분할 모델. 모든 후속 3D 확장의 기반
- 프롬프트(점, 박스, 텍스트) → 마스크 생성
- 코드: facebookresearch/segment-anything
4.2 SAM → 3D 확장 계보
SAM (2D, 2023)
├── SAM 2 (Video, 2024) — 프레임 간 추적 추가
│ └── SAM 3 (Open-vocab, 2025) — 텍스트 프롬프트 + 다중 객체
│ └── SAM3D (2025) — 단일 이미지 → 3D 재구성
│
├── 3D Scene Segmentation 파생
│ ├── SAM3D (Pointcept, ICCV'23) — 2D 마스크 → 3D 역투영 + 병합
│ ├── SA3D (NeurIPS'23) — NeRF에서 SAM으로 Cross-view self-prompting
│ ├── SAMPro3D (3DV'25) — 3D 공간에서 SAM 프롬프트 위치 최적화
│ └── SAM-guided Graph Cut (ECCV'24) — SAM + 그래프 컷으로 3D 인스턴스
│
├── Medical 3D 확장
│ ├── SAM-Med3D (ECCV'24) — 3D 의료영상 전용 Fine-tuning
│ ├── 3DSAM-adapter — 2D SAM을 3D 볼륨으로 어댑터 기반 확장
│ └── SAM3D (ISBI'24) — 볼륨 전체를 한 번에 처리
│
└── Native 3D
└── P3-SAM (2025) — PointTransformer 백본, 진정한 3D 포인트 프롬프팅
4.3 실습 순서 추천
- SAM 2D 데모를 먼저 돌려보기 → 프롬프트-마스크 파이프라인 이해
- SAM3D (Pointcept) 코드를 ScanNet에서 실행 → 2D-3D 리프팅 이해
- SA3D로 NeRF scene segmentation 실습
Phase 5: 3D Gaussian Splatting + Segmentation
5.1 3DGS 기본 이해
- NeRF의 대안으로 부상한 실시간 3D 장면 표현
- 3D 가우시안의 집합으로 장면을 표현, 실시간 렌더링 가능
- 원 논문: 3D Gaussian Splatting for Real-Time Radiance Field Rendering
- 코드: graphdeco-inria/gaussian-splatting
5.2 Segment Any 3D Gaussians ⭐ (이미 위키에 있음)
- 3DGS 장면에서 개별 가우시안을 의미론적으로 분할
- SAM의 2D 마스크를 3D 가우시안에 역투영하여 학습
- 코드: Jumpat/SegmentAnythingin3D
5.3 관련 연구
- GaussianEditor — 3DGS에서 Gaussian Semantic Tracing으로 편집
- SAGA (Segment Any Gaussian) — 확장 가능한 3DGS 분할
- LEGaussians — Language Embedded Gaussians. 텍스트 쿼리로 3DGS 분할
- Survey: A Survey on 3D Gaussian Splatting Applications: Segmentation, Editing, and Generation
Phase 6: Open-Vocabulary & Language-guided 3D Segmentation
텍스트로 원하는 대상을 지정하여 3D 분할하는 최신 트렌드.
6.1 핵심 개념
- Open-Vocabulary: 학습 시 보지 못한 카테고리도 분할 가능
- CLIP / SigLIP 등 Vision-Language Model을 3D 특징에 접목
6.2 주요 모델
- OpenScene — 3D 점에 CLIP 특징을 부여, 텍스트 쿼리로 3D 검색
- LERF — Language Embedded Radiance Fields
- OV-SAM3D — Training-free. SAM + RAM + CLIP 조합
- Reason3D (2025) — LLM으로 3D 분할 대상을 추론
- SAM 3 (Meta, 2025) — 텍스트 프롬프트 기반 통합 모델
6.3 이 분야의 방향
2D Foundation Model의 능력을 3D로 transfer하는 것이 주류. 별도의 3D 학습 데이터 없이도 동작하는 zero-shot / training-free 접근이 강세.
Phase 7: 용접 특화 — Weld Seam Detection & Path Planning
이 Phase가 최종 목표에 가장 직결되는 단계. Phase 2~3의 기법을 용접 도메인에 적용한다.
7.1 용접 이음 검출의 전체 파이프라인
현재 학계/산업계에서 가장 많이 사용되는 접근은 Coarse-to-Fine 2단계 방식이다:
[Coarse Stage] 2D 이미지 기반 대략적 위치 파악
→ YOLOv5/v8/v11-Seg, Faster R-CNN, K-Net 등으로 semantic segmentation
→ 용접 이음 ROI 영역 추출, 시작점/끝점 검출
[Fine Stage] 3D 점군 기반 정밀 추출
→ Structured light / laser sensor로 ROI 영역 정밀 스캔
→ 점군에서 평면 교차선 추출 (RANSAC, 법선 기반)
→ B-spline / NURBS 곡선 피팅 → 용접 경로 생성
7.2 2D 기반 Weld Seam Detection
- EfficientWeld — 경량 DNN으로 이음 영역 + 시작/끝점 동시 검출. 추론 속도 36% 향상
- YOLOv11-Seg — 최신 YOLO 기반 세그멘테이션. 워크피스 + 이음부 동시 분할
- K-Net — Semantic/Instance/Panoptic 통합 프레임워크. transfer learning으로 용접 워크피스 분할
- YOLOv5 기반 — 이음 위치, 아크 시작점/끝점, 용접 유형을 단일 추론으로 식별
- 참고: Weld seam object detection: fusion of 2D images and 3D point clouds (2024)
7.3 3D 기반 Weld Seam Extraction
- 평면 교차선 방법 — RANSAC로 두 평면 검출 → 교차선 = 용접선. 가장 기본이면서 강력
- Concave-Convex Feature Descriptor (Flatness) — 점군의 오목/볼록 특징으로 이음 추출
- WeldNet — Voxel encoding + Sparse Conv + RPN으로 환형 용접 이음 검출 네트워크
- DGCNN — Dynamic Graph CNN으로 용접 표면 결함 검출
- Farthest Point Sampling (FPS) — 특징점 디노이징 및 리샘플링 후 곡선 피팅
- 참고: WeldNet: voxel-based weld seam detection (2024)
7.4 용접 경로 계획 (Path Planning)
- 추출된 이음 특징점들을 B-spline curve fitting으로 부드러운 경로 생성
- 용접 토치 자세 계획 — 이웃 점의 법선(normal) 기반 dihedral angle 원리
- Teaching-free 프로그래밍 — 교시(teaching) 없이 비전만으로 용접 경로 자동 생성
- 다중 이음 처리 — TSP(외판원 문제) 기반 최적 순서 결정
7.5 핵심 논문
| 논문 | 핵심 기여 | 연도 |
| Weld seam detection: coarse-to-fine path planning | 2D EfficientWeld + 3D 점군 정밀 추출 결합 | 2025 |
| Weld seam extraction with semantic segmentation and point cloud feature | K-Net semantic seg + Flatness descriptor | 2025 |
| Weld seam extraction by fusing 2D semantic seg + 3D point cloud | YOLOv11-Seg + NGDT-RANSAC | 2025 |
| WeldNet: voxel-based weld seam detection | Sparse Conv + RPN for annular seams | 2024 |
| Weld seam object detection: fusion of 2D + 3D | Faster R-CNN + orthogonal plane intersection | 2024 |
| Off-line 3D seam extraction and path planning | 점군 세그멘테이션 기반 아크 용접 경로 계획 | 2020 |
Phase 8: 하드웨어 연동 — 카메라, 캘리브레이션, 로봇
8.1 3D 비전 카메라 선택
| 유형 | 대표 제품 | 특징 | 용접 적합도 |
| Structured Light | Photoneo PhoXi, Mech-Mind, LMI Gocator | 고정밀 (0.05~0.1mm), 환경광 강건 | ⭐⭐⭐ 최적 |
| Stereo Camera | Intel RealSense D435i, ZED 2 | 범용, 저렴, 실시간 | ⭐⭐ 프로토타이핑용 |
| Laser Line Scanner | Keyence LJ-X8000, SICK Ruler3000 | 라인 프로파일 고속 스캔 | ⭐⭐⭐ 실시간 Seam Tracking |
| ToF | Basler blaze, Azure Kinect | 장거리, 실시간 | ⭐ 용접에는 정밀도 부족 |
Eye-in-Hand vs Eye-to-Hand 구성:
- Eye-in-Hand — 카메라가 로봇 엔드이펙터에 장착. 이동하면서 다양한 각도로 스캔 가능. 용접 시야 확보 유리
- Eye-to-Hand — 카메라가 고정 위치에 설치. 넓은 시야, 안정적. 대형 워크피스에 적합
8.2 Hand-Eye Calibration ⭐ 필수
카메라 좌표계와 로봇 좌표계를 연결하는 핵심 단계. 이것이 없으면 "카메라가 보는 용접선 위치"를 로봇이 알 수 없다.
- 수학적 본질: AX = XB 문제 (Tsai-Lenz method)
- Eye-in-Hand: 로봇 엔드이펙터 → 카메라 프레임 변환 (T_hand_camera)
- Eye-to-Hand: 로봇 베이스 → 카메라 프레임 변환 (T_base_camera)
- 캘리브레이션 정밀도가 곧 용접 정밀도를 결정. 논문에서 0.2mm 수준 달성 보고
ROS2 기반 도구:
- easy_handeye — 가장 널리 쓰이는 Hand-Eye 캘리브레이션 패키지 (ROS2 버전 존재)
- handeye_calibration_ros2 — OpenCV Tsai-Lenz 구현, RealSense 예제 포함
- moveit2_calibration — MoveIt2 통합 캘리브레이션
- hand-eye-calibration_ROS2 — UR5e + RealSense + MoveIt2 자동 캘리브레이션
캘리브레이션 팁:
- 최소 15~17개 이상의 다양한 포즈에서 데이터 수집
- 회전축 간 각도를 크게, 이동 거리를 작게
- 카메라와 캘리브레이션 타겟 거리를 가깝게 유지
8.3 로봇팔 제어 & 모션 플래닝
- MoveIt2 — ROS2 표준 모션 플래닝 프레임워크. 126+ 로봇 지원
- MoveIt Servo — 실시간 조그(jog) 제어. Seam tracking 중 실시간 경로 보정에 활용
- 로봇 선택 예시: Universal Robot (UR5e/UR10e), AUBO, xArm, FANUC 등
- xArm ROS2 — xArm + RealSense D435i 통합 예제 (Hand-Eye 캘리브레이션 포함)
8.4 실시간 Seam Tracking
용접 중 아크 열, 변형, 스패터 등으로 이음 위치가 변할 수 있어 실시간 보정이 필요:
- Laser Vision Sensor (LVS) — 용접 토치 앞에 레이저 라인 센서 장착, 실시간 프로파일 획득
- Siamese Network 기반 seam tracking — 프레임 간 이음 추적
- Adaptive ROI — 이전 프레임 결과 기반 다음 프레임 검색 영역 조정
- LVS_ST_CALIB — Laser Vision Sensor 시공간 캘리브레이션 (오픈소스)
Phase 9: 용접 품질 검사 (Post-Weld Inspection)
용접 후 점군/이미지로 품질을 자동 검사하는 단계.
9.1 결함 유형
- 언더컷(undercut), 오버랩(overlap), 기공(porosity), 크랙(crack), 비드 불균일
9.2 검사 방법
- 3D 점군 비교 — 용접 전/후 점군 정합(registration) → 차이점 = 비드 형상 분석
- DGCNN — Dynamic Graph CNN으로 3D 점군 표면 결함 검출
- 2D 비전 — 용접 비드 이미지에서 UNet, YOLO 기반 결함 검출
- 3DWS — 3D convolution 기반 intelligent welding system (RANSAC 대비 23% 검출율 향상)
도메인 참고: 기타 응용 분야
자율주행
- LiDAR point cloud semantic segmentation
- 주요 모델: Cylinder3D, WaffleIron, CENet, RangeViT
- 벤치마크: SemanticKITTI, nuScenes, Waymo Open Dataset
의료영상
- CT/MRI 볼륨의 장기/병변 분할
- 주요 모델: nnU-Net (여전히 강력), SAM-Med3D, UNETR
- 벤치마크: BTCV, BraTS, TotalSegmentator
추천 학습 순서 (타임라인)
Week 1-2: Phase 0 + Phase 1
→ Open3D로 점군 다루기, 3D 데이터 표현 실습
→ Structured Light 카메라 원리 이해
Week 3: Phase 2 ⭐
→ RANSAC 평면 분할, DBSCAN 클러스터링 직접 구현
→ 두 평면 교차선으로 용접 이음 추출 실습
Week 4-5: Phase 3.1 ~ 3.2
→ PointNet / PointNet++ 논문 읽기 + 코드 실행
→ ShapeNetPart로 Part Segmentation 학습
Week 6-7: Phase 3.3 ~ 3.4
→ Sparse Conv 이해, Pointcept 프레임워크 사용
→ ScanNet에서 Semantic Segmentation 실험
Week 8: Phase 4.1 ~ 4.3
→ SAM 2D 실습 → SAM3D/SA3D 3D 확장 실습
Week 9-10: Phase 5 ~ 6
→ 3DGS 기본 이해 + Open-vocab 3D segmentation 서베이
→ (연구 트렌드 파악 용도)
Week 11-13: Phase 7 ⭐⭐⭐ 핵심
→ 용접 이음 검출 논문들 정독
→ Coarse-to-Fine 파이프라인 직접 구현
→ YOLOv8-Seg로 2D 이음 검출 → 점군에서 3D 추출
Week 14-16: Phase 8 ⭐⭐⭐ 핵심
→ 카메라 셋업 & Hand-Eye 캘리브레이션
→ ROS2 + MoveIt2로 로봇팔 모션 플래닝
→ 용접 경로 → 로봇 궤적 변환 통합 테스트
Week 17-18: Phase 9
→ 용접 후 품질 검사 시스템 구축
→ 전체 파이프라인 End-to-End 테스트
핵심 GitHub 리포지토리
| 리포지토리 | 설명 |
| 점군 모델 통합 프레임워크 (PTv3, PointNet++ 등) | |
| SAM 원본 | |
| SAM 3 + SAM3D | |
| 3DGS 원본 | |
| SA3D (NeRF + SAM) | |
| Sparse 3D Convolution | |
| Point Cloud SOTA 메소드 모음 | |
| Hand-Eye 캘리브레이션 (ROS1/2) | |
| ROS2 Hand-Eye 캘리브레이션 | |
| xArm + RealSense + MoveIt2 통합 예제 | |
| Laser Vision Sensor 시공간 캘리브레이션 (용접 특화) |
See also
- 3D Segmentation
- Computer Vision
- Point Cloud
- Deep Learning
- Welding Robot
- Robotics
- SAM3
- Segment Any 3D Gaussians
- 3D scanning
- Image segmentation
- NeRF
- 3D Gaussian Splatting
- Robot arm
- Welding
- Hand-eye calibration
- ROS2
- MoveIt2
- 3DSegmentation:Basic
- Abnormal Detection