for bbox in nms_boxes:
cv2.rectangle(image_cv, (bbox[0], bbox[1]), (bbox[2], bbox[3]), (0, 255, 0), 1)
cv2.imwrite('output.jpg', image_cv)
이미지의 기본 사이즈와 그리드 셀의 사이즈를 전역 상수로 설정합니다(①, ②). convert_to_corner_coordinates 함수는 바운딩 박스의 중심 좌표를 사용하여 모서리 좌표로 변환합니다(③). 이는 이미지에 박스를 그리는 작업을 단순화하기 위함입니다. process_single_bbox 함수는 주어진 그리드 셀 위치와 바운딩 박스 정보를 기반으로, 해당 박스의 모서리 좌표, 최고 클래스 점수, 그리고 해당 클래스의 이름을 반환합니다(④). nms 함수는 바운딩 박스 목록을 받아 threshold(기본 값은 0.6)보다 높은 클래스 점수를 가진 박스만을 반환합니다(⑤). 주요 함수인 get_YOLO_output은 YOLO 모델, 이미지 경로, 그리고 클래스 이름 목록을 입력으로 받습니다. 이 함수는 이미지를 불러오고, YOLO 모델을 사용하여 예측을 수행한 후, 그 결과를 바탕으로 객체를 감지하고 이미지에 그립니다(⑥). 마지막으로 결과 이미지를 output.jpg로 저장합니다.