알파프로젝트
original image
heatmap
original image에서 heatmap 부분을 추출한 masked img, 차량에 해당되는 부분이다.
각 차량의 중심을 나타내는 heatmap center이다. gaussian 식을 사용하여 처리했다.

- original image를 사용하여 차량 heatmap을 추출한다.
- 입력과 같은 크기의 heatmap을 출력한다.
- BasicBlock64부터 tanh 직전까지는 Feature Pyramid Network 구조이다.
- img2heatmap model로 추출한 heatmap로 masked_img를 만들고 이를 입력으로 하여 각 차량의 중심점을 추출함
- 원본 이미지의 1/4의 크기의 heatmap_center를 출력한다.
- hm_center는 각 차량의 중심만 1이고 이외엔 0이다.
- NMS (Non Max Supression)
output = self.sigmoid(output)
hmax = F.max_pool2d(output, (3, 3), stride=1, padding=1)
output = output * (hmax == output).float()특징점 주변 낮은 값의 픽셀은 걸러지고 가장 큰 값의 픽셀만 남는다.
- Focal Loss 사용
def FL_of_CornerNet(X, y, alpha=2, beta=4):
p_inds = y.eq(1).float() # eq(1) : 1이면 True, 아니면 False.
n_inds = (-p_inds + 1.)
p_loss = (torch.log(X) * torch.pow(1 - X, alpha) * p_inds).sum()
n_loss = (torch.log(1 - X) * torch.pow(X, alpha) * torch.pow(1 - y, beta) * n_inds).sum()
p_num = p_inds.sum()
return -(p_loss + n_loss) / p_num배경 즉 특징점이 아닌 영역에서의 loss 값을 상대적으로 줄인다. https://arxiv.org/abs/1708.02002 CornerNet에서 쓰인 조금 변형된 형태의 Focal loss 이다. https://arxiv.org/abs/1808.01244
- 회색은 heatmap > 0.7, 파란색 원은 hm_center > 0.7 인 영역
- train set에선 괜찮치만 test set에선 성능이 안 좋다.
- 용량 문제로 데이터를 10000개에서 3000개로 줄인 것이 원인으로 보임
- test set은 파일 크기가 커서 github에 올리지 못함



