구분 | 팀명 | 예선 | 본선 | 총점 | 상금 |
1등 | 박스가돌고돌아도라에몽 | 0.454869 | 0.443213 | 0.4502535134 | 5,000,000원 |
2등 | 스티브킴 | 0.420538 | 0.440563 | 0.4284674028 | 3,000,000원 |
3등 | 김평 | 0.395111 | 0.412294 | 0.4019150413 | 1,000,000원 |
누누와 | 0.352243 | 0.363769 | 0.3568070098 | 1,000,000원 |
축하드립니다!!
상금은 팀 리더에게 일괄 지급되며 이를 위해 담당자가 팀 리더에게 연락을 할 예정입니다.
상금은 제세공과금을 제외하여 지급합니다.
공지사항 내용을 참고하세요.
참가자는 반드시 경진대회 [데이터]탭을 참고하여 제출하세요.
[대회 관련 안내]
예선/본선 평가로 상위 10개팀에 대해서 추가 데이터를 활용하여 최종 순위가 결정됩니다.
[데이터] 탭은 경진대회 기간 중에 (10월 1일 ~ 10월 26일 00:00) 공개됩니다.
이번 경진대회에서는 참가자는 Pre-Trained 모델 사용이 가능합니다.
샘플데이터를 참고하여 모델링을 진행하고 참가자는 제출 조건을 준수하여 제출합니다.
사전설명회 (9월30일 17:00 진행)는 유튜브 Live로 진행됩니다. 링크

위성영상 이미지 내 선박을 탐지하는 AI 모델을 제작하는 경진대회입니다.(rotated_bbox)
본 대회는 별도의 학습 데이터는 제공하지 않고 참가자분들이 샘플 데이터를 참고하여 원하는 데이터셋을 활용하여 모델을 만드는 대회입니다.
상세한 내용은 대회 시작과 함께 공개되는 [데이터] 탭을 확인해주세요.
선박 탐지 모델을 제출하면 실시간으로 평가 데이터에 의해 리더보드와 순위표를 확인할 수 있습니다.
그 외 상세한 설명은 [데이터] 탭을 확인해주세요.
리더보드의 평가 데이터셋은 보안상의 사유로 공개가 불가능합니다.
상단 우측의 ‘참여하기’ 버튼을 클릭하시고 참여정보를 입력하신 뒤 ‘제출’을 완료하시면 참가신청이 접수됩니다.
참가 신청 접수 기간 : `24. 9. 9.(월) ~ `24. 9. 26.(목) 23:59 까지
참가대상: 위성영상 기반의 선박 탐지 AI 모델 개발에 관심 있는 만 14세 이상 시민 누구나
참가형태 : 팀 또는 개인으로 참여 가능
- 팀 (2인 이상 최대 4인)
(✽ 팀 빌딩은 참가 신청 이후에 태스크 내 [팀] 탭에서 진행하실 수 있습니다)
팀 리더는 [팀] 탭에서 ‘팀명’을 찾아 검색하여 팀으로 초대 (기본설정된 팀명은 해당 팀원의 닉네임)
팀을 구성하였다가 탈퇴한 팀원은 탈퇴 후 해당 대회에 재참여가 불가능
팀 빌딩과 관련된 자세한 사항 및 유의사항은 [팀] 탭의 관련규칙 및 가이드 필독
구분 | 선정팀 | 상금 |
1등 | 1팀 | 5,000,000원 |
2등 | 1팀 | 3,000,000원 |
3등 | 2팀 | 1,000,000원 |
본 대회의 평가에는 IoU를 반영한 커스텀 F2-Score가 활용됩니다. 수식은 다음과 같습니다.

각 항목별 개념은 다음과 같습니다.
TP: 정답 오브젝트 가운데 예측 결과가 있는 오브젝트의 수
각 오브젝트마다 최소 IoU(=0.1)를 넘은 예측 결과들을 해당 오브젝트에 대한 예측으로 할당합니다.
할당된 예측 가운데 해당 오브젝트와의 IoU가 가장 큰 예측 결과를 해당 오브젝트에 대한 최종 예측으로 정합니다.
최종 예측과 오브젝트 사이의 IoU값을 해당 오브젝트에 대한 예측 IoU값으로 사용합니다.
IoU가 최소(0.1)를 넘는 예측 결과가 없는 오브젝트는 TP에 가산되지 않습니다. (FN)
IOU_TP: TP인 오브젝트들 각각마다 IoU가 최대인 예측 결과 1개와의 IoU 값입니다.
FP: 예측 결과 가운데 ‘특정한 오브젝트와 IoU가 최소 기준(=0.1) 이상이지만 할당되지 않은’ 예측 결과 수를 잘못된 예측으로 FP에 가산합니다. 예를 들어 하나의 오브젝트에 대하여 두 개의 예측 결과가 할당되는 경우, IoU가 최대인 결과는 TP로 들어가지만 그렇지 않은 결과는 FP로 들어갑니다. FP를 줄이기 위해서는 Non-Max Suppression 혹은 그와 유사한 필터링을 통하여 불필요한 중복 예측을 줄여야 합니다.
FN: 오브젝트 가운데 최소(0.1)를 넘는 예측 결과가 없는 오브젝트는 예측이 이루어지지 않은 오브젝트로 간주하여 FN으로 분류합니다.
※ 모든 예측 결과는 IoU가 가장 큰 하나의 오브젝트에만 할당됩니다. 따라서 하나의 오브젝트가 여러 예측 결과를 할당받을 수는 있지만 하나의 예측 결과가 여러 오브젝트에 할당되는 일은 없습니다.
※ 아무 오브젝트에도 할당되지 않은(min IoU_obj < 0.1) 예측 결과는 점수 계산에 포함되지 않습니다.
아래는 점수 산정에 사용되는 커스텀 스코어 코드입니다.
def rotated_bbox_iou(bbox1, bbox2):
"""
회전된 경계 상자의 IoU를 계산합니다.
:param bbox1: [cx, cy, w, h, angle] 형식의 첫 번째 경계 상자
:param bbox2: [cx, cy, w, h, angle] 형식의 두 번째 경계 상자
:return: 두 경계 상자의 IoU
"""
def get_corners(bbox):
cx, cy, w, h, angle = bbox
angle = np.deg2rad(angle)
cos_a, sin_a = np.cos(angle), np.sin(angle)
half_w, half_h = w / 2, h / 2
corners = np.array([
[-half_w, -half_h],
[half_w, -half_h],
[half_w, half_h],
[-half_w, half_h]
])
rotation_matrix = np.array([
[cos_a, -sin_a],
[sin_a, cos_a]
])
corners = corners @ rotation_matrix.T
corners += [cx, cy]
return corners
# 두 경계 상자의 코너 좌표를 얻습니다
corners1 = get_corners(bbox1)
corners2 = get_corners(bbox2)
# Shapely Polygon 객체를 생성합니다
polygon1 = Polygon(corners1)
polygon2 = Polygon(corners2)
# 교집합과 합집합의 면적을 계산합니다
intersection_area = polygon1.intersection(polygon2).area
union_area = polygon1.union(polygon2).area
# IoU를 계산합니다
iou = intersection_area / union_area
iou = 0 if np.isnan(iou) else iou # 어떤 사유로든 nan인 경우 0처리
return iou
def f2_with_iou(gt, pr, th=0.01):
tp_iou = []
tp = []
fp = []
fn = []
for img in list(set(gt['file_name'])):
gt_img = gt[gt['file_name'] == img][['cx', 'cy', 'width', 'height', 'angle']]
pr_img = pr[pr['file_name'] == img][['cx', 'cy', 'width', 'height', 'angle']]
# 해당 GT에 대한 예측이 있는 경우
if len(pr_img) > 0:
ious = [rotated_bbox_iou(i, j) for i in gt_img.values for j in pr_img.values]
ioumat = np.array(ious).reshape(len(gt_img), -1) # gt_dim:0, pr_dim:1
# pr을 iou가 최대인 gt에 할당
np.argmax(ioumat, axis=0)
ioumat = ioumat * (ioumat.max(axis=0, keepdims=True) == ioumat)
# TP_IoU / FP / FN
max_vals = np.amax(ioumat, axis=1)
tp_iou.extend([i for i in max_vals if i != 0])
tp.append(sum(max_vals != 0))
fp.extend([sum(i > th) -1 for i in ioumat if sum(i > th) >= 2])
fn.append(sum(max_vals == 0))
# 해당 GT에 대한 예측이 없는 경우 모든 object를 FN에 추가
else:
fn.append(len(gt_img))
tp_iou = np.sum(tp_iou)
tp = np.sum(tp)
fp = np.sum(fp)
fn = np.sum(fn)
# precision - 분모가 0이 될 가능성이 있으므로 nan 처리 필요
precision = tp_iou / (tp + fp)
precision = 0 if np.isnan(precision) else precision
# recall
recall = tp_iou / (tp + fn)
f2_score = (1 + (2 ** 2)) * (precision * recall) / (((2 ** 2) * precision) + recall)
return f2_score 본 대회는 추론 자동화 방식으로 진행되는 대회로 평가 데이터셋을 공개하지 않고 진행됩니다. 추론 자동화 대회란 참가자분들께서 개발한 추론 코드를 규칙에 따라 제출하면 AIFactory에서 자동으로 본 대회의 평가 데이터로 참가자 분들이 제출한 코드를 실행시켜 채점되는 방식입니다.
참가자는 본 경진대회의 [데이터]텝을 참고하세요.
입상 대상자는 아래 저작물을 제출해야 합니다.
모델 스크립트 : 학습 및 추론에 사용된 모델 전체 코드로 최초 학습부터 제 3자가 순차적으로 수행했을 때 입상대상 리더보드 스코어를 재현하는 결과물이 생성될 수 있어야 합니다.
모델 설명서 : 아래 양식에 맞게 작성 후 입상후보팀에게 안내되는 메일에 회신으로 전달
코드와 주석의 인코딩은 모두 UTF-8을 사용하여야 합니다.
입상 대상이 되는 상위 제출 결과물은 재현성 검증 과정을 거쳐 순위를 확정짓게 됩니다.
재현성 검증은 다음 세 단계를 거쳐 이루어집니다.
재추론 검증
제출된 모델에서 주어진 데이터를 이용하여 결과가 정상 생성되는지 여부를 확인할 수 있도록 재추론합니다.
원칙적으로 재추론을 통해 생성된 결과는 참가자가 실제 제출한 결과와 동일해야 합니다.
재학습 검증
제출된 모델이 허가된 데이터만을 사용하여 학습되었는지, 학습된 모델은 제출된 결과를 재현할 수 있는지의 여부를 재학습을 통해 검증합니다.
소스코드 분석
소스코드 표절, 미허가 데이터 사용, 모델 조건 불충족 여부 등을 소스코드 분석을 통해 검증합니다.
재현성 검증에 문제가 발생하거나 소스코드 표절을 비롯한 치팅이 확인되는 경우 원칙적으로 해당 제출 결과는 무효처리됩니다.
제출 시 랜덤 시드를 고정하지 않을 경우, 결과가 일괄적으로 산출되지 않을 수 있으므로 반드시 고정하여 제출해 주세요. 랜덤 시드 미고정시 평가에 불이익을 받을 수 있습니다.
※ 본 대회는 http://aifactory.space 의 회원가입을 완료한 회원이 아래 규칙에 대해 동의한 경우에만 참가 가능합니다.
※ 대회 참여 중 규칙에 위배되는 상황이 발생한 경우, 입상이 취소될 수 있습니다.
스코어 관련
이번 대회는 비공개데이터셋으로 평가하여 Public 스코어를 기반으로 리더보드 상 스코어를 확인하실 수 있으며 스코어가 높은 순으로 순위가 결정됩니다.
입상 대상자에 한해 제출한 모델 학습코드, 추론코드를 통해 부정 행위를 적발하여 순위가 변동될 수 있습니다.
대회기간 중에는 Public 스코어만 리더보드 상에 표출
리더보드에 표출되는 점수는 당사에서 확보한 비공개 데이터셋을 활용하여 채점
평가용 비공개 데이터셋은 보안 상 공개 불가
팀 참가 관련 (팀 빌딩은 참가자 접수기한까지 완료해야 함)
팀 (2인 이상 최대 4인)
✽팀 빌딩은 참가신청 이후에 [팀] 탭에서 진행하실 수 있습니다.
대회 제출 관련
해당 문제는 제출 관련 제한사항이 있습니다. 이전 정상 제출 시점 기준으로 1시간 지난 시점부터 재 제출이 가능하오니 이 점 참고 부탁드립니다.
리더보드 종료 후, 각 문제 순위별로 점수가 부여됩니다.
동점자가 발생할 경우, 제출 순서를 기준으로 입상자를 선정합니다.
점수는 비공개 평가 데이터를 활용해 평가되며, 대회 기간중에는 Public Score만 노출됩니다. 이를 기준으로 각 문제의 순위가 결정됩니다.(예선)
심사 평가기간 (10월26일~)에는 상위 10개 팀에 대해서 추가 데이터를 활용하여 최종 순위가 결정됩니다. (본선)
대회의 취지에 따라 딥러닝/머신러닝 및 기타 자동화된 알고리즘/모델을 이용한 문제 해결만이 정당한 결과로 인정되는 점 참고바랍니다.

(접수기간)
`24. 9. 9.(월) ~ `24. 9. 26.(목) 23:59 까지
(온라인설명회)
`24. 9. 30.(월) 17:00 진행
URL: https://www.youtube.com/@aifactoryspace (추후 공지)
(대회기간) - 예선 (전체 팀)
`24. 10. 1.(화) 00:00 ~ `24. 10. 26.(금) 00:00 까지
(심사기간) -본선 (상위 10개팀)
`24. 10. 26.(토) ~ `24. 11. 2.(토)
(수상자공지)
`24. 11. 4.(월) 17:00 이후 ~ `24. 11. 8.(금)
참가자의 개별 메일로 수상 내용이 발송됩니다.
공모전에 제출된 응모작에 대한 권리는 응모자에게 있습니다.
응모작에 대해 공동 소유 등의 권리 변동이 필요하거나 공모전 요강에 공고된 범위를 넘어 응모작을 이용할 경우, 저작자와 별도로 합의하여 정합니다.
공모전 응모자는 응모작의 반환을 요구할 수 있으며, 이 때 주최 측은 작품 반환 후 응모작과 관련된 자료 일체를 즉시 폐기합니다
공모전에 응모된 아이디어와 관련하여 주최 측과 아이디어 제안자 사이에 분쟁이 발생할 경우, 주최 측과 아이디어 제안자는 우선적으로 대화와 협상을 통하여 분쟁을 해결하도록 최선을 다해야 합니다.
데이터셋 파일 및 데이터에 대한 설명 등 제공된 일체의 정보는 주최사 및 주관사의 자산이며 해당 정보는 본 대회의 참가 목적으로만 사용해야 하고, 그 외 용도로 타 인에게 양도 및 대여, 재배포, 2차적 저작 및 상업적 용도로 이용할 수 없습니다.
그밖의 산출물에 대한 권리 등 법적 권리에 관한 사항은 문체부 '창작물 공모전 가이드라인'을 준용합니다.
표절 및 저작권 관련한 부분은 관련 법규 및 규정을 준수합니다.
인공지능팩토리 운영자 메일 : cs@aifactory.page
경진대회 내 Q&A 탭 사용
* 각 경진대회의 Q&A를 활용하시면 빠르고 상세한 답변을 받아 보실 수 있습니다🕵🏻