[SIGNATE] The4th Tellus Satellite Charlene 회고[3rd place]

개시하다
머신러닝 경연 사이트에는 카글이 세계적으로 유명하지만 일본판으로 불리는 SIGNATE 사이트도 있다.
경제산업성이 주최한 텔루스 데이터 해안선 추첨대회에서 3위를 차지한 당시 상황을 정리해 본다.
4인조가 도전을 했는데, 제가 한 번은 카글리에서 참가한 경험을 흉내내는 정도였고, 다른 것은 기본적으로 첫 번째 초보자팀이었습니다.
경기 개요: 해안선 추출
위성 데이터 플랫폼'Tellus'의 데이터를 활용한 경기는 이번이 네 번째다.
이번 과제는 위성으로 촬영된 해안의 SAR 영상에서 해안선을 탐지하는 것이다.

이 사진은 주최측에서 빌려온 것이다.자세한 내용은 SIGNATE의 경기 페이지를 보십시오.
https://signate.jp/competitions/284
데이터 특징
데이터 개요에 관해서는 경기 페이지의 정보를 인용한다.
· L밴드 SAR 이미지
위성: ALOS2(JAXA)
크기: 600×600~10000×10000(이미지에 따라 다름)
해상도: 3m× 3m
HH편광, 파장: 약 24cm
해안수
이미지 수: 55장(학습용) 25장(평가용) 30장
※ 편진은 전파의 성질을 나타내는 지표로 전장의 진동 방향을 나타낸다.HH는 수평 편광을 보내 수평 편광으로 수신한다.
・모조(학습 데이터에 대한 해안선 좌표 정보)
형식: JSON
위에서 말한 바와 같이 해상도는 변화가 없지만 이미지의 크기가 다르기 때문에 원 이미지를 재단 분석하는 것이 가장 좋다.나는 대부분의 팀이 그렇게 한다고 생각한다.
덧붙이다
  • 32비트 tiff 이미지(단, 정보로서 거의 16비트(0~65535), 65536는 결손치의 일부분에 포함)
  • 이미지의 일부분을 대략적으로 촬영하지 않은 등 결함치가 있음
  • 메서드
    그동안의 시행착오 결과는 최종적으로 아래의 알고리즘으로 제시했다.

    ① 이미지 처리 중 해안선 대략적인 추출(녹색)
    -1: 32비트 이미지의 밝기를 특정 범위에서 8비트로 선형 변환
    -2: 이미지 처리를 통해 대략적인 해안선을 추출한다
    ② 해안선을 따라 재단(노란색)
    - 화상 처리된 해안선을 바탕으로 일정 거리(밀도 향상 양호)로 512x512에 절입하여 256x256로 낙하
    ③분할
    - EfficientNetB5+Unet++는 육(1)과 바다(0)로 나뉜다
    - 이동/회전 커팅으로 수분 증가
    - 기타 가수: random Flip, salt and pepper, randoom erase
    ④ 예측된 합성(적색)
    -1: Flip 입력 이미지로 TTA, 평균값 계산하기
    -2: 2치화 변두리를 최종 해안선으로 채택
    분수 추이

    가로축 발언 횟수, 세로축 득점.
    이번 평가 지표는 정답과 오차가 있어 작은 쪽이 성적이 더 좋다.
    31점 영상 처리에서 추출한 해안선을 바탕으로 심층 학습을 통해 더욱 가까워진다.
    마지막 날 잠정평가가 9위였는데 상을 받을 줄은 몰랐다.무슨 실수로 0점을 받을까 두려워 결과 발표 직후 곧바로 새벽 1시께 확인해 보고 깜짝 놀랐다.바로 흥분을 팀의 채팅에 적었지만 아무도 (당연히) 마음이 텅 빈 느낌으로 그날 잠자리에 들었다 웃었다
    노정
    모델을 만들 때마다 출력된 이미지가 쌓이기 때문에 개선 과정을 어렵게 영상으로 만들었다.
    파란색 선은 이미지 처리 선이고 노란색 선은 심층 학습 선이다.
    GIF로서는 잘 모르겠지만 실제 해안선은 선명하게 보이는 육지 가장자리보다 바다에 가깝다.

    방파제가 있으면 해안선이 끌리지만 그 모양을 취할 수도 있다고 한다.
    (이산적인 평가일 뿐 세부적인 부분은 점수에 큰 영향을 주지 않는다.)
    이런 느낌은 처음부터 상위권에 있는 것이 아니라 조금씩 위로 올라가는 느낌을 개선하고 있다.
    프리 프로세싱
    나는 32비트의 정보를 어떻게 하면 더욱 깊이 있게 공부할 수 있는지가 매우 중요하다고 생각한다.
    육지와 해양의 밝기 차이가 크지 않기 때문에 육지와 바다 사이의 차이를 어떻게 가공하는가가 과제다.
    몇 번 해봤는데 잘 될 것 같은 건 아래 두 개야.
    ① 자르기 → 8비트(γ보충)
    32비트 이미지 자르기γ교정 후의 8비트 변환.
    그림마다 밝기가 다르기 때문에 재단 구역마다 조정하는 것이 좋지 않을까 생각합니다.
     
    ② 8비트→자르기
    전체 이미지를 특정 범위 내에서 8비트로 선형으로 변환한 후 재단합니다.
    이것은 영상 처리에서 해안선을 추출할 때 사용하는 처리와 같다.
     
    전체적으로 ② 더 예뻐 보인다.밝기가 낮고 바다와 육지의 차이가 거의 없는 두 번째 사진에서는 ①의 육지와 바다의 차이가 비교적 뚜렷하다.
    잠정평가에서 ② 약간 이겼기 때문에 후반부에는 ②에서만 계속 시행하고 최종 제출에도 ②를 적용했다.
    하지만 최종 평가를 보면 ①도 상당히 개선됐고 ①로 코디할 수 있었으면 좋겠다는 반성을 했다.
    지난번 처리는 이미지 처리를 잘하는 동료(A·K)가 했고, 수주했다는 답변도 많이 받았다.정말 안심이 됩니다.
    소량의 훈련 데이터에 대응하다
    코멘트
  • 트림 시 회전 및 이동
  • 깨 소음
  • random erase
  • random Flip
  • 이번에는 Generater 내에서 이미지를 가공할 뿐만 아니라 커팅할 때 회전과 이동을 통해 원래의 트레이닝 이미지를 추가하는 방법도 채택했다.합계 약 1만장 정도.공부를 너무 많이 해도 시간이 걸리기 때문에 꼭 알맞아야 한다.
    학습 성향이 강해 곤란하지만 솔직히 Augmentation은 큰 문제가 되지 않는다.마음이 안정된 느낌.나는 val 손실치가 전혀 믿을 수 없다고 생각해서 결과가 좋지 않아도 계속 진행했다.
    과도 학습
    처음에는 가벼운 모델인resnet18에서 시험 횟수를 늘리고 마지막에는 EfficientNet으로 바꾸어 공부한다.마지막 쪽은 무엇을 해도 개선되지 않았지만 결국 골드에 이르렀다.
    내가 확인한 해법은 대부분의 사람들이 EfficientNet을 사용한다.
    뒤돌아보다
    제한된 시간 내에 시행 오류를 효율적으로 반복하다
    어쩌면 당연한 일일지도 모르지만, 한 번의 시도로 바뀐 부분을 한 곳으로 축소해 효과를 하나하나 검증하면서 진행했다.팀이 좋은 곳에서는 No 생각이 거의 없는 시간에 시행착오를 반복했는데 이번에는 좋았다.
    쓰지는 않았지만, 커팅 방법을 바꾸고, 복수의 보충 방법으로 가공한 이미지를 3ch에 넣는 등 여러 가지 시도를 해 보았지만, 그 결과는 간단한 방법으로 차분해졌다.
    Seed죠.
    대회가 끝난 뒤 수상 후보들은 사무국에서 성적의 재현성을 확인한 뒤 수상을 확정했지만, 수상을 할 줄은 몰랐기 때문에 세심하게 고려하지 못했다.트레이닝 데이터의 커팅에 랜덤 값을 사용했기 때문에 점수가 바뀔 수도 있고 약간 춥다...무작위 Seed라는 말은 마음에 새겨진다.
    고정적 수법
    날로 새로워지는 변화에 따라 에픽션넷의 전이 학습, 합성기, TTA 등은 기계 학습 경기에서 몇 가지 고정된 기법이 있다.상위권에 오르려면 당연한 일이고, 긍정적인 생각과 노력으로 순위를 결정한다고 생각한다.
    이번엔 합주도 못 해서 아쉽지만...
    합주는 여러 개의 모형을 만들어야 하기 때문에 경험과 변주곡의 풍부한 구상이 필요하다.
    다른 참가자들의 해법을 보면 정말 학습 가치가 있다.
    끝말
    예전에 카글에 나갔을 때 초보자인 나는 앞의 몇 명의 내핵에서 방법을 생각해 보았지만 SIGNATE 포럼이 활발하지 않았기 때문에 처음부터 팀원들과 함께 생각해야 했다.
    나는 그것이 반대로 생각을 멈추지 않아 좋은 결과를 초래했다고 생각한다.
    실제 작업과는 다른 긴장감과 속도감이 즐거웠다.아주 좋은 경험이 됐어요.
    아직 입금되지는 않았지만 보너스로 가습기정화기를 샀다

    좋은 웹페이지 즐겨찾기