학습한 내용
데이터 라벨링
데이터 라벨링이란 이미지, 영상, 텍스트 등의 데이터에 사람이 데이터 가공 도구를 활용하여 인공지능이 학습할 수 있도록 다양한 정보를 목적에 맞게 입력하는 것을 의미
- Bounding Box – 물체를 직사각형 모양의 박스 안에 포함되도록 그리는 라벨링 방법
- Polygon – 다각형 모양으로 객체의 가시 영역 외곽선을 따라 점을 찍어 그리는 라벨링 방법입니다.
- Polyline – 여러 개의 점을 가진 선을 활용하여 특정 영역을 라벨링 함으로써 인도, 차산 등을 구분
- Point – 특정 지점을 라벨링 하는 작업으로 안면 인식을 통한 감정 분석과 같이 정밀하고 섬세한 작업
라벨링 양식
- 어노테이션 파일
- 라벨 및 어노테이션 정보가 기록된 파일
- classification은 별도의 파일이 불필요하거나 detection, segmentation을 위한 학습을 위해서는
어노테이션 파일 필요
- 학습을 위한 데이터 읽기와 일반적인 표현 방법
- 학습을 위해 필요한 내용 : 이미지 파일 특정 id, 이미지에 대한 어노테이션 정보
- 이미지 파일 특정 id : 파일명, 파일 주소 등
- 어노테이션 정보 : 라벨, bbox 구성 좌표, polygon 구성 좌표 등
실습 1- custom data
파일 여러개가 있을 때 그 파일들의 경로를 각 이름으로 라벨링해주는 실습이다.
glob은 파일과 폴더 경로를 불러오는? 함수다.
실습 2- bbox, polygon
1. bbox
coco json 읽은 후 이미지 명, 라벨명, bounding box 좌표를 이용하여 그리기
-> 결과
2. polygon
coco json 읽은 후 이미지 명, 라벨명, polygon 좌표를 이용하여 그리기
-> 결과
과제 1
- JSON 파일 읽고 처리하기 위한 CustomDataset 정의
- 바운딩 박스 좌표를 활용하여 이미지 Crop
- 255x255 사이즈로 이미지 저장(padding 작업을 통한 뭉게지는 현상 방지)
-> 1번까지는 실습 2와 같다.
-> 결과
image_result 폴더에 각각의 img_id로 라벨링된 이름으로 padding된 이미지가 저장이 된 것을 볼 수 있다.
과제 2
라쿤 COCO JSON 파일에서 바운딩 박스(x, y, w, h) 값을 저장하는 CSV 코드 작성
bbox의 값을 불러오는것까지는 실습 2와 같고, 그 값들을 각각의 list에 저장시켜 pandas를 이용해 csv파일로 만들어주었다.
-> 결과
이런식으로 file이름, x, y, w, h의 값들이 저장된 것을 확인할 수 있다.
학습한 내용 중 어려웠던 점 또는 해결못한 것들
해결방법 작성
실습 2를 진행하면서 위와 같은 오류가 자꾸 떠서 구글링을 하여 pip uninstall opencv-python-headless를 통해 해결하였다.
학습 소감
저번 과제는 사실 성공하지 못하고 넘어갔는데 이번에는 성공도 하고 이해까지 해서 완벽한 것 같다