sotif 인지모델 실행 메뉴열

전종원·2023년 7월 14일
0

1. 사전 셋업

1.1 도커와 로컬 GUI 연결

  • 로컬 터미널에 다음 명령어 실행
xhost +local:docker

1.2 도커 컨테이너 실행

  • vscode 접속 후 좌측메뉴에서 remote Explorer > Dev Container > jaekyun/jk:sotif 실행

  • 도커 터미널에서 setup.bash 실행

source /root/catkin_ws/devel/setup.bash

2. 작업공간 설명(참고용)

  • 작업공간: /root/catkin_ws/src/yolov8_ros
  • src: 인지모델 소스코드들 존재
  • bagfiles: 테스트할 bag파일들 놓는 곳
  • weights: yolov8 모델 가중치 놓는 곳
  • results: 결과 이미지 저장되는 곳
  • launch: 런치파일 있는 곳

2. 테스트 방법

2.1 bagfile 테스트

  • bagfile은 반드시 /vds_node_localhost_2210/image_raw, gt_5 토픽을 가지고 있어야 함
  • 테스트할 bag파일을 /root/catkin_ws/src/yolov8_ros/bagfiles/에 위치
  • 도커 터미널에서 다음 명령어 실행
roslaunch yolov8_ros yolov8_ros.launch bagfile:=/root/catkin_ws/src/yolov8_ros/bagfiles/no8.bag
  • bagfile:=/root/catkin_ws/src/yolov8_ros/bagfiles/no8.bag 문장을 안쓰면 no8.bag을 default로 사용

  • 파란색 박스: 인지결과, 초록색 박스: gt
    • gt 박스가 밀리거나 이미지 토픽이 밀리는 현상은 현재 해결중에 있으나 성능 평가에 영향을 미치지는 않음
  • bag파일 play 끝난 후 ctrl+c누르면 터미널에서 인지성능 확인 가능

2.2 Disturbance모델 적용 테스트(예상)

  • 인지모델 도커 내 /root/catkin_ws/src/yolov8_ros/launch/disturbance.launch 에서
    <arg name="input" default="/vds_node_localhost_2210/image_raw"/> 부분을 disturbance모델 거친 후 발행되는 토픽 이름으로 대체
# disturbance.launch
<launch>
  
  
  <!-- Detection configuration -->
  <arg name="weights" default="$(find yolov8_ros)/src/n200_best.pt"/>
  <arg name="data" default="$(find yolov8_ros)/src/yolov8_tracking/yolov8/ultralytics/yolo/data/datasets/sotif.yaml"/>
  <arg name="device" default="0"/>
  <!-- replace imgsz -->
  <arg name="inference_size_h" default="1080"/>
  <arg name="inference_size_w" default="1920"/>


  <!-- ROS topics -->
  <arg name="input" default="/vds_node_localhost_2210/image_raw"/> # 이 부분 수정
  <arg name="gt" default="/gt_5"/>
  <arg name="output_topic" default="/yolov5/detections"/>
  <arg name="bagfile" default="$(find yolov8_ros)/no8.bag -d 5 --wait-for-subscribers"/>

  <!-- Optional topic (publishing annotated image) -->
  <arg name="publish_image" default="false"/>
  <arg name="output_image_topic" default="/yolov5/image_out"/>


  <node name="yolov8"  pkg="yolov8_ros"  type="track.py"  output="screen" >
    <param name="weights" value="$(arg weights)"/>
    <param name="data" value="$(arg data)"/>
    <param name="device" value="$(arg device)" />

    <param name="input" value="$(arg input)"/>
    <param name="gt" value="$(arg gt)"/>
    <param name="output_topic" value="$(arg output_topic)"/>

    <param name="inference_size_h" value="$(arg inference_size_h)"/>
    <param name="inference_size_w" value="$(arg inference_size_w)"/>

    <param name="publish_image" value="$(arg publish_image)"/>
    <param name="output_image_topic" value="$(arg output_image_topic)"/>
    
  </node>
  <node pkg="rosbag" type ="play" name="rosbag_play" args="$(arg bagfile)" />
   
</launch>
  • disturbance 모델 노드 실행
  • 인지모델 도커 내 터미널에서 roslaunch yolov8_ros disturbance.launch bagfile:=/root/catkin_ws/src/yolov8_ros/bagfiles/no8.bag 실행
    -bagfile 끝나면 인지모델 도커 내 터미널에서 ctrl+c 후 성능 확인

3. 도커 사용 팁

  • vscode에서 사용하면 편리
  • 로컬 -> 도커 내부로 파일 옮기는 법
    • drag & drop
  • 도커 -> 로컬로 파일 꺼내는 법
    • 꺼내고 싶은 파일에 마우스 우클릭 후 download
  • 컴퓨터 재부팅 할때마다 로컬 터미널에 xhost +local:docker 실행

0개의 댓글