본문 바로가기

projects/autonomous driving

[Autoware-AI] vision darknet detect 패키지의 Non-Maximum Suppression 공격 지점

객체 검출은 위치정보와 분류정보를 지정하는 과정이다?

bounding box는 위치를 지정하고, 다른 건 분류를 한다.

 

Daedalus논문에서 제시된 적대적인 예는 NMS 이후에 최종 탐지 상자의 수를 크게 늘리고, 잘못된 클래스 판별을 하게 했다. 

 

CNN(Convolutional Neural Network): 

DNN에서 이미지를 학습시킬 때, 이미지 데이터가 row로 변환되는 순간 해당 이미지가 가진 연관관계가 제거된다는 문제를 해결하기 위해 등장했다. 한 픽셀과 주변 픽셀들의 연관관계를 유지시키며 학습시킨다.

참고자료: [딥러닝 CNN] 1. CNN이란? :: YoungQ (tistory.com)

 

이 글의 연구의 목적은 다음과 같다

vision darknet detect 패키지 내의 YOLO에서 NMS 구성요소의 오작동 유발

NMS 깨는 것을 목표로 하는 적대적 공격(기존의 공격들은 단순히 오분류를 목표로 한 것이  대다수였다.)

 

NMS 사용 목적: 객체 탐지 작업에서 중복 탐지 결과를  필터링하기 위해 사용

 

 

vision darknet detect 패키지

사용방식이 아래와 같으므로, launch 파일을 확인해보면, 실행과 관련된 세부사항을 알 수 있다.

  • roslaunch vision_darknet_detect vision_yolo3_detect.launch
  • roslaunch vision_darknet_detect vision_yolo2_detect.launch

아래  두 가지 명령어를 입력하면, 패키지가 실행된다. 각각 yolo3, yolo2를 이용하여 객체를 탐지한다. 두 launch 파일은network_definition_file과 pretrained_mode_file 설정에서 yolo3와 yolo2을 위한 파일을 설정한다는 점에서 차이를 갖고, 이외의 내용은 동일하다. 

공격지점과 관련된 부분은 score_threshold와 nms_thredshold부분이다. 아래의 표와 같이 설정되어있다.

종류 score_threshold의 값 nms_threshold의 값
vision_yolo2_detect.launch 0.30 0.45
vision_yolo3_detect.launch 0.30 0.30

 

vision_yolo2_detect.launch 파일 내용 일부
vision_yolo3_detect.launch 파일 내용 일부

 

 

 

 

 

공격지점

vision darknet detect 패키지 내에서 공격지점이 될 만한 파라미터는 score_threshold

 

임계값 ---> 이하가 되도록 공격하기.

 

 

 

차후 공부하면서 추가로 읽어보면 좋을 것 같은 글. 

【Transformer+OD】DETR-End-to-End Object Detection with Transformers w/ my advice | Just Do It And Then Some (junha1125.github.io)