https://ubai.uos.ac.kr/forum/view/767800
- 토지특성 파악을 위한 인공지능 알고리즘 구축이 지정 주제였으며 3개의 소주제 중 하나를 선택하여 모델을 개발하는 것이 목표
- 그 중에서 '딥러닝 또는 머신러닝을 통한 토지특성 정보 구축(지형 형상)'을 선택하였으며 대상지로는 동대문구를 선정
- 국토교통부에서는 표준지 토지특성 조사요령에서 지형 형상의 구분 기준을 제시하고 있음
- 이를 AI모델을 통해 수기가 아닌 자동으로 지형 형상을 구분해주는 모델을 개발하는 것이 목표
- 이를 위해 객체 탐지 종류의 하나인 instance segmentation 모델을 사용하기로 하였으며 그 중에서 1-stage detector로 돼있어 속도가 빠르고 비교적 정확도가 높은 YoloV5 모델을 사용
- Deeplearning Model : YoloV5
- 데이터 제작: Rhino6
- 버전 및 이슈관리 : Github
- OS : Windows 10
- CPU : 12th Gen Intel(R) Core(TM) i9-12900K
- RAM : 64.0GB
- GPU : NVIDIA GeForce RTX 3090 Ti
- CUDA : 11.2
- cudnn : 8.2
- Python : 3.7.16
- torch : 1.8.0
- torchvision : 0.9.0
- detectron2 : 0.2.1 (detectron2-windows)
- 전체 개발 기간 : 2023-01-12 ~ 2023-02-28
- 토지형상의 데이터는 위와 같이 Shp파일로 돼있었으며 instance segmentation에 훈련 데이터로 사용하기 위해서는 가공을 통해 구역을 나눌 필요 존재
- 이를 위해 Shp 파일 편집 프로그램인 Rhino6를 사용
- 다음과 같이 2,3개씩 그룹을 묶어 이미지를 제작하였으며 yolov5 labeling을 위해 우측의 이미지와 같이 색을 통해 구분
- 또한 좌측의 이미지와 같이 색을 없앤 훈련 데이터 또한 쌍으로 생성
-
labelig 본격적인 라벨링을 위해서 cv2 라이브러리의 findContour 함수를 사용하여 외곽선을 검출, 그 후 Teh-Chin 근사 알고리즘을 적용하여 클래스 별로 굴곡점의 포인트를 추출하고 좌표를 txt파일에 저장
-
train/test split train-test split 함수를 통해 8:1:1의 비율로 학습, 검증, 평가 데이터셋 분할
- 학습에 사용한 yolov5모델은 ultralytics의 소스를 사용하였으며 이 때, 모델 학습 시 사용할 데이터의 경로, 클래스를 정의하기 위한 yaml파일을 생성
-
download data: https://drive.google.com/file/d/13tlKbZRhfLQ_SOrBWIN6soFA6wgjk5Jn/view?usp=drive_link
-
Clone this repository:
git clone https://github.com/ha789ha/lx_ubai.git
cd lx_ubai
- generate label:
python label_generator.py
- data split:
python data_split.py
- download yolov5:
git clone https://github.com/ultralytics/yolov5
cd yolov5
pip instal -r requirements.txt
- training:
python train.py --img 640 --epochs 300 --batch-size 16 --data lx_ubai/dataset.yaml --weights yolov5s.pt --lr 0.01 --final-lr 0.1 --momentum 0.937 --weight-decay 0.0005 --warmup-epochs 3.0 --warmup-momentum 0.8 --warmup-bias-lr 0.1
- 정성적 평가
평가 데이터 정답 레이블 | 평가 데이터 예측 결과 |
---|---|
- 정량적 평가
- confusion matrix
전체적으로 Precision 0.565, Recall 0.720을 기록, 전체적인 성능의 수준이 좋지 않아 분석한 결과, 크게 두 가지 원인이 존재
위 사진은 '세로장방형'으로 분류된 객체이나 토지의 넒은 면이 도로와 접하고 있어 '가로장방형'에 가까움
위의 객체는 '정방형'으로 분류된 객체, 국토교통부에서는 '장방형'과 '정방형'에 대해 구분하고 있는데 내각을 보면 '정방형'보다는 '장방형'에 가까운 것을 알 수 있음
위의 결과를 토대로 AI 모델의 결과의 아쉬움에 대해 원인을 분석하였고 분류 기준에 대한 중요성을 역설하였습니다. 이는 많은 심사위원들의 공감을 사 대회를 1등으로 마무리 할 수 있었습니다.
이전 Dacon이나 Kaggle 같은 대회에서는 잘 정제된 데이터를 토대로 모델 성능을 끌어올리는 데에만 집중했다면 이번 공모전을 통해 데이터 제작, 전처리, 모델 훈련까지 end to end로 경험할 수 있었고 데이터의 중요성을 느낄 수 있는 공모전이었습니다.
자세한 내용은 아래의 보고서를 참고해주시면 감사하겠습니다.
공간 정보 활용 공모전 보고서