본문 바로가기
AI/AI 부트캠프

[AI 부트캠프] DAY 119 - 파이널 프로젝트 10

by HOHHOH 2024. 1. 10.

[오늘의 일지]

프로젝트 - 이미지 데이터 확인

[상세 내용]

이미지 데이터 확인

- 이번 프로젝트를 위한 데이터는 이미지마다 하나의 클래스 라벨이 존재하고 그 라벨의 bbox가 존재하고 있습니다. 학습을 시키기 전에 이미지 안에 어떻게 bbox가 생성되어 있는지를 확인하기 위해서 이미지 위에 bbox와 클래스 라벨을 출력시켜 보면서 확인해 보는 과정을 진행해 보았습니다.

 

실행 코드

- 처음에는 cv2.imread를 사용해서 이미지를 읽으려고 했는데 오류가 나서 image 모듈로 대체해서 읽어왔습니다.

def draw_boxes_on_image(image_path, filename):
    # 이미지 불러오기
    image = Image.open(image_path)
    image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)

    # bbox_values, vienna_code 만들기
    bbox_values = eval(train[train['fileName'] == filename]['bbox'].values[0])
    vienna_code = train[train['fileName'] == filename]['Vienna Code'].values[0]

    x, y, width, height = bbox_values

    # Calculate the coordinates of the bounding box
    x_min, y_min = int(x), int(y)
    x_max, y_max = int(x + width), int(y + height)

    # 이미지에 바운딩 박스 그리기
    cv2.rectangle(image, (x_min, y_min), (x_max, y_max), (255, 0, 0), 2)
    cv2.putText(image, str(vienna_code), (x_min, y_min - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2)

    # 이미지와 바운딩 박스 출력
    plt.figure(figsize=(5, 5))
    plt.imshow(image)
    plt.show()

 

이미지 확인 예시

예시1

 

예시2

 

예시3

 

[마무리]

 오늘은 정형 데이터로 주어진 bbox 좌표와 라벨을 이미지 데이터에 출력시켜 보면서 좌표가 잘 설정되어 있는지 확인해 보는 과정을 정리해 보았습니다. 내일부터는 YOLO 모델을 위한 데이터로드를 만들고 간단한 학습까지 진행해 보면 좋을 거 같습니다.

반응형

댓글