YOLOv8 기반 박스 검출
이미지에서 박스 영역을 자동으로 탐지하기 위해 YOLOv8 커스텀 모델을 활용했습니다. confidence 값을 조절하여 일정 기준 이상의 박스 영역만 추출할 수 있도록 구성했습니다.
COMPUTER VISION / DIMENSION ESTIMATION / COMPETITION PROJECT
CJ대한통운 미래기술 챌린지 2023에서 진행한 이미지 기반 박스 크기 측정 알고리즘 프로젝트입니다. 사진에서 박스를 탐색하고, 외곽선과 꼭지점 좌표를 추출한 뒤, 카메라 기하 계산을 활용해 실제 박스의 가로, 세로, 높이를 추정하는 알고리즘을 개발했습니다.
Box.size Algorithm은 물류 환경에서 사진 한 장을 기반으로 박스의 실제 크기를 추정하는 것을 목표로 했습니다. 단순 객체 검출에서 끝나는 것이 아니라, 박스 영역 검출, 배경 제거, 외곽선 추출, 꼭지점 좌표 계산, 카메라 기하 기반 치수 계산까지 이어지는 파이프라인을 구성했습니다.
Computer Vision Algorithm Developer
이미지에서 박스 영역을 자동으로 탐지하기 위해 YOLOv8 커스텀 모델을 활용했습니다. confidence 값을 조절하여 일정 기준 이상의 박스 영역만 추출할 수 있도록 구성했습니다.
검출된 박스 이미지에서 배경을 제거하고, 이후 외곽선 검출이 잘 이루어지도록 이미지 전처리 과정을 구성했습니다.
박스의 윤곽선을 추출하기 위해 Canny Edge Detection을 적용했습니다. 배경 제거 이후 박스 외곽선만 남겨 꼭지점 탐색이 가능하도록 구성했습니다.
외곽선 정보에서 박스의 꼭지점 좌표를 추출하고, 이미지 상의 2D 좌표를 기반으로 실제 크기 계산에 필요한 입력값을 구성했습니다.
초점거리, 원본 이미지 중심점, 2D 좌표, 임의의 3D 좌표를 활용해 카메라 외부 파라미터를 계산하고, 투영 관계를 바탕으로 실제 박스 크기를 추정했습니다.
CJ대한통운 미래기술 챌린지 문제를 해결하기 위해, 물류 환경에서 사진 기반 박스 크기 측정이 가능하도록 객체 검출과 기하 계산을 연결한 알고리즘을 개발했습니다.
Box.size Algorithm은 객체 검출, 이미지 전처리, 외곽선 검출, 꼭지점 좌표 추출, 실제 치수 계산을 단계적으로 수행합니다.
STEP 01
측정하고 싶은 박스가 포함된 이미지를 입력합니다.
STEP 02
YOLOv8 모델을 사용해 이미지에서 박스 영역을 검출하고 crop 이미지를 생성합니다.
STEP 03
rembg를 사용해 박스 영역의 배경을 제거하고, 박스 형태가 더 뚜렷하게 남도록 전처리합니다.
STEP 04
Canny Edge Detection으로 박스의 윤곽선을 추출합니다.
STEP 05
외곽선에서 박스 꼭지점 좌표를 추출하고, 이미지 상의 박스 형태를 계산 가능한 좌표 데이터로 변환합니다.
STEP 06
카메라 파라미터와 투영 관계를 활용해 실제 박스의 가로, 세로, 높이를 추정합니다.
Input Image
↓
YOLOv8 Box Detection
↓
Box Crop
↓
Background Removal (rembg)
↓
Canny Edge Detection
↓
Contour / Vertex Extraction
↓
Camera Geometry Calculation
↓
Width / Depth / Height Estimation객체 검출 모델로 박스 위치를 찾고, 이후 이미지 처리 기법으로 박스의 형태를 좌표 데이터로 변환합니다. 마지막 단계에서는 이미지 상의 2D 좌표와 카메라 파라미터를 활용해 실제 월드 좌표계의 박스 크기를 추정합니다.
이미지 속 박스를 단순히 탐지하는 것을 넘어, 실제 물류 문제에서 필요한 치수 계산까지 연결하기 위해 해결한 문제들입니다.
Problem
입력 이미지에는 박스 외에도 배경과 불필요한 물체가 포함될 수 있어, 바로 크기 계산을 수행하기 어려웠습니다.
Solution
먼저 YOLOv8로 박스 영역을 검출하고 crop한 뒤, 배경 제거와 Edge Detection을 통해 크기 계산에 필요한 박스 윤곽선만 남기는 단계형 파이프라인을 구성했습니다.
Result
검출, 전처리, 좌표 추출, 크기 계산이 분리되어 각 단계별 실험과 보정이 가능한 구조를 만들었습니다.
Problem
실제 박스 크기를 계산하려면 이미지 상에서 박스의 기준점이 필요하지만, 원본 이미지에서는 배경과 조명, 각도에 따라 경계가 불분명할 수 있었습니다.
Solution
배경 제거 후 Canny Edge Detection을 적용해 박스 외곽선을 추출하고, contour 정보를 기반으로 꼭지점 좌표를 얻는 방식을 사용했습니다.
Result
이미지 상의 박스 형태를 좌표 데이터로 변환하여 카메라 기하 계산에 사용할 수 있게 했습니다.
Problem
이미지 상의 픽셀 크기만으로는 실제 박스의 가로, 세로, 높이를 직접 알 수 없었습니다.
Solution
초점거리, 이미지 중심점, 2D 좌표, 임의의 3D 좌표를 활용해 카메라 외부 파라미터를 구하고, 실제 월드 좌표계와 이미지 좌표계의 관계를 이용해 크기를 추정했습니다.
Result
객체 검출 결과를 단순 인식에서 끝내지 않고, 실제 물류 문제에서 필요한 박스 치수 계산으로 연결했습니다.
SUMMARY
Box.size Algorithm은 YOLO 기반 객체 검출, 이미지 전처리, 외곽선 검출, 좌표 계산, 카메라 기하를 하나의 파이프라인으로 연결한 프로젝트입니다. 이 경험을 통해 AI 모델의 탐지 결과를 실제 문제 해결에 필요한 수치 계산으로 변환하는 알고리즘 개발 과정을 경험했습니다.