Pix2Seq: A Language Modeling Framework for Object Detection
PDF, Object Detection, Ting Chen, Saurabh Saxena, Lala Li, David J. Fleet, Geoffrey Hinton, arXiv 2021
Summary
Object Detection을 language task의 관점에서 푸는 모델입니다.
Language framework를 사용하므로 기존 object detection 알고리즘의 복잡한 앵커 박스, nms의 필요성이 사라집니다.
바운딩 박스와 클래스를 토큰으로 나타내어 prediction을 수행하는데 기존 모델과 비슷한 성능을 보여줍니다.
encoder-decoder 구조를 사용하는데 이미지를 입력 받아 sequence를 출력합니다.
auto-regressive 방식을 사용한다는게 흥미로운데, 앞에서 예측한 바운딩 박스를 보고 다음 바운딩 박스를 예측합니다. 이미지 내에서 바운딩 박스의 순서는 아무런 의미가 없지 않을까 싶은데.. auto-regressive 방식을 채택했네요. 실혐 결과에 따르면 random order로 바운딩박스를 출력했을 때가 성능이 가장 높습니다.
흥미로운 점은 EOS 토큰이 출력되면 바운딩 박스 예측을 중지하는데, 내부적으로 모델이 바운딩 박스를 몇개 출력해야 하는지 판단한다는 것입니다. 일반적으로 OD 모델은 사용자가 직접 바운딩 박스를 몇 개 출력할지 결정하고 이 박스에 대해서 예측을 수행합니다. 예를 들어, DETR 같은 경우에 100개의 object query를 생성하여 100개 중 object가 없다면 백그라운드로 지정합니다. 2-stage model은 사전에 정의된 anchor 박스를 모든 feature map의 pixel에 지정하여 RPN으로 proposals을 최대한 뽑아내어 recall을 높인 뒤에 class를 예측합니다. 상당히 간단한 frame work를 제안했다는 것이 흥미롭네요
위 그림은 모델이 EOS를 너무 빨리 출력하기 때문에 recall이 작아지는 현상이 있는데 이 문제를 해결하기 위해 sequence augmentation을 적용하는 그림입니다. 즉, recall을 높이기 위해 noise box를 추가하거나 기존 box를 expand 합니다.
모델의 output token을 다른 형태로 표현하면 여러 task(key point detection, image captioning, visual question answering)에 적용할 수 있습니다.
과연 이 Pix2Seq는 object detection에서 main stream이 될 수 있을까요?
Experiment
위 표는 성능표인데, Pix2seq는 augmentation을 강하게 적용합니다. 다른 모델들도 augmentation을 강하게 적용했다면 성능이 2~3%는 향상됬지 않을까 싶은데...
my github