연습 - DeepStream 샘플 애플리케이션 수정

완료됨

이제 DeepStream 샘플 애플리케이션을 실행했으므로 샘플을 수정하여 다른 동작을 가져올 수 있습니다.

  1. 먼저 텍스트 편집기에서 샘플 구성의 구조를 살펴보겠습니다. 이전 섹션에서 사용한 샘플 구성의 복사본을 만들고 변경할 수 있는 몇 가지 설정을 살펴보겠습니다. 다음 명령을 실행하세요.

    cd /opt/nvidia/deepstream/deepstream-6.0/samples/configs/deepstream-app
    sudo cp source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt
    sudo vi source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt
    

    참고

    source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt 파일을 편집할 때 vi를 사용하기 위한 몇 가지 팁은 다음과 같습니다.

    • i 키를 눌러 편집기를 삽입 모드로 전환합니다. 그러면 변경할 수 있습니다.
    • 삽입 모드를 종료하고 일반 모드로 돌아가려면 Esc 키를 누릅니다.
    • 저장하고 종료하려면 :x를 입력한 다음 Enter 키를 누릅니다.
    • 파일을 저장하고 :w를 입력한 다음 Enter 키를 누릅니다.
    • vi를 닫으려면 :quit을 입력한 다음 Enter 키를 누릅니다.
  2. 다양한 구성 섹션과 이들이 전체 애플리케이션에 어떻게 기여하는지 확인하세요. 이러한 섹션은 대괄호([])로 표시됩니다. 예를 들어 [application], [tiled-display], [source0], [sink0]이 있습니다. DeepStream SDK 설명서의 구성 그룹 섹션에 자세히 설명되어 있습니다.

    예를 들어, 로컬 비디오 파일 대신 RTSP 비디오 스트림을 사용하도록 입력을 변경하려면 [tiled-display][source0]을 변경합니다.

    [tiled-display]
    enable=1
    rows=2
    columns=2
    width=1280
    height=720
    gpu-id=0
    #(0): nvbuf-mem-default - Default memory allocated, specific to particular platform
    #(1): nvbuf-mem-cuda-pinned - Allocate Pinned/Host cuda memory, applicable for Tesla
    #(2): nvbuf-mem-cuda-device - Allocate Device cuda memory, applicable for Tesla
    #(3): nvbuf-mem-cuda-unified - Allocate Unified cuda memory, applicable for Tesla
    #(4): nvbuf-mem-surface-array - Allocate Surface Array memory, applicable for Jetson
    nvbuf-memory-type=0
    
    [source0]
    enable=1
    #Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
    type=3
    uri=file://../../streams/sample_1080p_h264.mp4
    num-sources=4
    #drop-frame-interval=2
    gpu-id=0
    # (0): memtype_device   - Memory type Device
    # (1): memtype_pinned   - Memory type Host Pinned
    # (2): memtype_unified  - Memory type Unified
    cudadec-memtype=0
    

    그런 다음, 다음과 같이 변경합니다. (rows, columns, type, uri, num-sources 필드의 변경 내용을 확인합니다.)

    [tiled-display]
    enable=1
    rows=1
    columns=1
    width=1280
    height=720
    gpu-id=0
    #(0): nvbuf-mem-default - Default memory allocated, specific to particular platform
    #(1): nvbuf-mem-cuda-pinned - Allocate Pinned/Host cuda memory, applicable for Tesla
    #(2): nvbuf-mem-cuda-device - Allocate Device cuda memory, applicable for Tesla
    #(3): nvbuf-mem-cuda-unified - Allocate Unified cuda memory, applicable for Tesla
    #(4): nvbuf-mem-surface-array - Allocate Surface Array memory, applicable for Jetson
    nvbuf-memory-type=0
    
    [source0]
    enable=1
    #Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
    type=4
    uri=rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov
    num-sources=1
    #drop-frame-interval=2
    gpu-id=0
    # (0): memtype_device   - Memory type Device
    # (1): memtype_pinned   - Memory type Host Pinned
    # (2): memtype_unified  - Memory type Unified
    cudadec-memtype=0
    
    
  3. 다음 명령을 사용하여 변경된 구성을 실행합니다.

    cd /opt/nvidia/deepstream/deepstream-6.0/samples/configs/deepstream-app
    deepstream-app -c source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt
    

사용 방법

DeepStream SDK에 포함된 다양한 샘플 구성을 살펴봅니다. 이러한 샘플을 변경하여 스마트 홈 보안 시스템을 만들려면 어떻게 해야 할까요? 고유한 RTSP 엔드포인트를 통해 피드를 제공하는 여러 RTSP 카메라가 있다고 가정합니다. 이러한 라이브 비디오 스트림을 입력으로 사용하고 유추를 적용하여 사람과 차량을 감지하는 DeepStream 애플리케이션을 만들 수 있나요?

다음 단계

이 모듈을 완료하고 트로피를 받을 수 있도록 최종 지식 점검을 완료하세요.