Darknet col2im이 data_im[index] += val을 쓰는 이유는 convolution window가 겹칠 때 하나의 원본 pixel 위치로 여러 column 값이 돌아오므로, 마지막 값으로 덮지 않고 모든 기여를 합쳐야 하기 때문입니다.
im2col은 convolution을 행렬 연산으로 바꾸기 위해 입력의 local patch를 column 형태로 펼칩니다. col2im은 그 반대 방향으로 값을 scatter하지만, 겹친 patch 때문에 일반적인 의미의 완벽한 역함수는 아닙니다. 원문의 C 코드는 Darknet 내부 helper 조각이며 독립 실행 프로그램이 아닙니다.