딥페이크 변조 영상 탐지 AI 경진대회

알고리즘 | 이미지 | 분류 | 영상 | Accuracy

  • moneyIcon Prize : 1,000만원
  • 536명 마감

 

90 이상은 어떤식으로 학습하셨나요 ㅠㅠ

2020.11.19 18:09 4,743 Views

어떤 식으로 진행했는지 궁금합니다.


<얼굴 crop>

저는 MTCNN 으로 얼굴 부분만 추출하여 학습을 했습니다.


<데이터 분리>

이름별로 데이터를 나누었는데 real과 fake에 겹치는 이름은 모두 훈련데이터로 사용했습니다.


<전처리>

이미지 전처리로는 랜덤하게 밝기값만 변화시켜주고 비율을 최대한 망가뜨리지 않고 가져가기 위해 제공된 이미지의 width, height 평균으로 패딩을 넣은뒤(평균값 넘어가면 그대로 사용) resize를 하였습니다.


<모델>

EfficientNetB0 모델을 사용했습니다. pretrained가중치는imagenet을 사용하였습니다.

optimizer : Adam 과 SGD 사용해보았고

scheduler : cosR, poly

epoch : 50  

batch size : 256


대략 이런식으로 훈련하였고 train 데이터에 너무 오버핏 되는 경향이 있었고 validation 은 88~96 주변을 맴돌았습니다.


최종 publicLB 는 79 정도 나왔습니다.


넘 바빠서 많은 실험을 해보지 못해 아쉽네요...


다른 분들은 어떤식으로 진행하셨는지 궁금합니다.



로그인이 필요합니다
0 / 1000
ride-or-die
2020.11.19 18:20

90 턱걸이 점수인데 저는 얼굴 crop까진 동일한거 같구요

EfficientNetB7 / AdamW / cosineannealing / batch 16

landmark 이용해서 augmentation 좀 많이 했고 

cv전략은 처음엔 5fold로 나눠서 하다가 나중엔 그냥 real fake에 모두 등장하는 사람만 train, 한쪽만 등장하면 valid로 나누니 85:15 정도로 나눠지더라구요. 그걸로 valid score 좋은거 찾아서 사용했어요
적은 epoch에서 이미 오버핏 되는거 같더라구요..

최정명
2020.11.19 18:24

와 빠른 답변 감사합니다.
EfficientNEtB7 을 사용하셨군요! 

혹시 입력 이미지크기는 어떻게 되시나요 ? 
real/fake 모두 등장하는 사람이 그렇게 많았군요 ㅠㅠ  하나씩 다 확인 하기엔 시간이 부족해서 확인 못 했는데 아쉽네요 ㅎㅎ

아, 그리고 그냥 5fold로 나눌땐 혹시 LB 점수가 어땠나요 ? 

홀리띳
2020.11.21 16:36

저는 efficientnet b3~b7다 사용해봤는데 mtcnn한 결과가 우선 더 안좋게 나왔습니다.. 정리해서 코드 공유에 조금 intuition을 제공할 수 있으면 할 것인디유.. 

efficientnet을 이용할 경우 input size 고려를 해줄 필요가 있는데 이미지를 mtcnn을 통과시키면 기본 사이즈가 200x200정도로 작아집니다. 이를 Resize해서 model을 돌릴 경우 성능이 안좋아지더라구요. 그리고 fgsm은 일반 노이즈랑 달라서 저 생각에는 model이 자체적으로 denoising을 하려면 이미지 내에 더 invariant한 information이 더 필요하다 생각하였고 일부로 배경을 꼭 넣어서 training하는 게 중요하다고 생각했습니다...

마지막으로 dataset을 살펴보신거 같은데 중복에 가까운 data가 너무 많아서 조금 돌려도 overfitting되는 것으로 판단했습니다.
ensemble method 중에 bagging이라는 방법이 있는데 이에 착안을 해서 매 epoch마다 2000~4000개 정도의 data를 random sampling을 했습니다..

자세한 것을 코드 공유에 올릴텐데 개선할 부분이 보이거나 궁금한 부분이 더 있으시다면 질문 남겨주시면 감사하겠습니다..

최정명
2020.11.22 01:34

답변 감사합니다.
https://dacon.io/competitions/official/235655/talkboard/401592?page=3&dtype=recent&ptype=pub 
저는 해당 글을 보고 crop한 데이터만을 사용했네요. 저는 데이터를 좀 더 깊게 살펴보지 못한게 아쉽네요.

코드 공유가 되면 많이 배우겠습니다. 고생하셨습니다. 감사합니다!