분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
코스포 x 데이콘 자동차 충돌 분석 AI경진대회 채용
0.48 점의 벽에 가로막혀 쓰는 글.
너무 답답합니다 하하하하핳 별별 짓거리를 해도 48점의 벽을 뚫을 수 없군요
토크에 글을 써본 기억이 없는데 너무 답답한 마음에 ㅋㅋㅋㅋ 글을 남깁니다.
시도해본 모델
effib0, effib4, effiv2s, swin_384, swin_224, convnext_b_384, convnext_b_224
시도 해본 방식
h, w = image.shape[:2] upper = int(h/2) - int(h * 0.3) bottom = int(h/2) + int(h * 0.3) image = image[upper:bottom, :, :]
p2_thrs = 5 if preds[i : i+50].count(1) > p2_thrs or preds[i : i+50].count(2) > p2_thrs: p_2 = 1 if preds[i : i+50].count(1) > preds[i : i+50].count(2) else 2 else : p_2 = 0
class __WEATHER_MODEL(nn.Module) : def __init__(self, num_classes) -> None: super().__init__() # self.backbone = timm.models.efficientnet_b0(pretrained=True, features_only=True, out_indices=(2,3,4)) self.backbone = timm.models.convnext_base_384_in22ft1k(pretrained=True, features_only=True, out_indices=(1,2,3)) self.conv1 = nn.Sequential( nn.Conv2d(256, 256, kernel_size=5, stride=2, padding=0), nn.ReLU(), nn.Conv2d(256, 128, kernel_size=5, stride=2, padding=0), nn.AdaptiveAvgPool2d(1), nn.Flatten(1) ) self.conv2 = nn.Sequential( nn.Conv2d(512, 256, kernel_size=5, stride=2, padding=0), nn.ReLU(), nn.Conv2d(256, 128, kernel_size=5, stride=2, padding=0), nn.AdaptiveAvgPool2d(1), nn.Flatten(1) ) self.conv3 = nn.Sequential( # nn.Conv2d(320, 256, kernel_size=5, stride=2, padding=0), # nn.ReLU(), # nn.Conv2d(256, 128, kernel_size=5, stride=2, padding=0), nn.AdaptiveAvgPool2d(1), nn.Flatten(1) ) self.cls_head = nn.Sequential( nn.Linear(1280, 128), nn.ELU(), nn.Linear(128, num_classes) ) def forward(self, x) : outpus = self.backbone(x) o1 = self.conv1(outpus[0]) o2 = self.conv2(outpus[1]) o3 = self.conv3(outpus[2]) output = self.cls_head(torch.cat([o1, o2, o3], dim=1)) return output
적용해본 Augmentation 방식
A.OneOf([ A.CLAHE(p=1), A.ImageCompression(p=1), ],p=1), A.RandomBrightnessContrast(brightness_limit=(-0.3, -0.1), p=1), A.OneOf([ A.GridDistortion(p=1, always_apply=False, num_steps=1, # img 굴곡 조정 distort_limit=(-0.1, 0.3), interpolation=2, border_mode=2, value=(0, 0, 0), mask_value=None), A.OpticalDistortion(p=1, distort_limit=0.4, shift_limit=0.04), ],p=0.5), A.ElasticTransform(p=0.7, alpha=120, sigma=120 * 0.1, alpha_affine=120 * 0.1), A.Affine(p=0.6, scale=(1,1.1), # 이미지 크기 조정 translate_percent=(-0.01, 0.01), # 이미지 이동 translate_px=None, # 픽셀단위로 이미지 이동 rotate=(-15, 15), # 회전 각도 조절 shear=None, # 잡아당기는 효과 interpolation=1, mask_interpolation=0, cval=5, cval_mask=5, mode=0, # 회전 할 떄 남은 부분 색으로 채우기 fit_output=False, # 사진에 맞게 그리기 always_apply=False), A.OneOf([ A.Blur(blur_limit=(3, 3)), ], p=1), A.Spatter(p=0.7, mode=['rain']), A.RandomGridShuffle(p=0.6, grid=(7, 7)),
시도 할 방식
알아 낸 것
가장 중요한 것은.. 꺽이지 않는 마음이라고 했습니다.. 딱 3월 13일까지만 하고 안되면 때려치우겠습니다
우와... crash 0번 레이블의 weather를 sudo labeling하셨군요. 좋은 글 공유 감사합니다.
저는 pretrained 된 r3d_18을 사용해서 0.54의 벽에 막혀있습니다. 마지막까지 화이팅해요!!!
열정이 느껴지네요!!🔥🔥🔥
노력이 대단한 것 같습니다. 저는 Augmentation을 할 경우 F1 Score가 더 떨어져서 현재는 하지 않는 상태인데 좀 더 시도를 해봐야겠습니다. 좋은 토크 감사합니다
이 많은 인사이트를 공유해주셔서 감사합니다. 화이팅입니다!
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
지나가다가 저도 그런적 많은데
꺽일수 없는 마음 🙌🏼 화이팅 입니다.