[human detector] 고찰

About_work·2024년 2월 14일
0

human detection

목록 보기
2/2

1.single-processing with batch calcuation VS multi-processing

1.1. single-processing with batch calcuation

1.1.1. 개념

  • realsense n대
  • 하나의 human detector 프로세스
    • batch calculation

1.1.2. 구현

  • 새로 들어온 realsense image만, batch processing 한다.

1.1.3. 장점

1.1.4. 단점 = 없음.


1.2. multi-processing

1.2.1. 개념

  • realsense n대
  • n개의 human detector 프로세스

1.1.3. 장점

  • 병렬 처리가 가능하여, 처리 속도가 빠릅니다.

1.1.4. 단점

  • 없음

2. 언제 프로세스를 tick 할 것인가?

2.1. Depth post processor와 Human detector의 tick 시점

  • RGBD streamer의 새 데이터가 왔을 때
  • TODO: 새 데이터가 왔으면 돌리는 로직 추가
    • pub time을 비교해서, 다를 때만 돌리면 됨

2.2. Human Pointcloud Classifier의 tick 시점

  • Depth post processor와 Human detector의 새 데이터가 왔을 때
    • 두개의 sync가 맞도록 설계해야함.
  • TODO: 새 데이터가 왔으면 돌리는 로직 추가
    • pub time을 비교해서, 다를 때만 돌리면 됨
    • gen time의 차이가 threshold 이상 나면, 돌리지 않는다?

3. Human pointcloud classifier 구현 방법

3.1. Segmentation mask를 input으로 사용하기

  • input 인 segmentation mask: List[(k,2)]
    • TODO: 사람 각각을 구분한다는 뜻인데, 어떻게 구분하는지, 나중에 알아보기

4. 업무진행 순서

  • human detector 돌아가는거 확인하기
  • human pcl classifier 돌아가는거 확인하기
  • IPC 방식: shared memory 로 구현하였는데, ros2 node화 진행.
  • human detector / human pcl classifier 정량적 평가 진행

4.1. human detector 돌아가는거 확인하기

  • output:
    • bounding_box: (k, 4)
      • k: max_human_number
      • (0, 0)인 부분은 사람 검출된 부분이 아님.
    • segmentationmask: (k, MAX, 2)
      • MAX_: (resolution[0] // jump) * (resolution[1] // jump)
      • 사람마다, point_cloud 수가 다르므로, k에 대해 for문을 돌면서, 그림을 그려보자.
  • 그림그리기
    • rgb_array: (h, w, 3)
      • TODO: segmentation mask가 테두리만 그려지는 것 같던데 확인 필요

4.2. human pcl classifier 돌아가는거 확인하기

profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글