영상인식

Deepstream rstp통신을 위한 파이프라인 조정

728x90

기존 YOLOv3의 config.txt 파일이다.

[application]
enable-perf-measurement=1
perf-measurement-interval-sec=5
#gie-kitti-output-dir=streamscl



[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
type=3
uri=file://../../samples/streams/sample_1080p_h264.mp4
num-sources=1
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



[sink0]
enable=1
#Type - 1=FakeSink 2=EglSink 3=File
type=2
sync=0
source-id=0
gpu-id=0
nvbuf-memory-type=0



[osd]
enable=1
gpu-id=0
border-width=1
text-size=15
text-color=1;1;1;1;
text-bg-color=0.3;0.3;0.3;1
font=Serif
show-clock=0
clock-x-offset=800
clock-y-offset=820
clock-text-size=12
clock-color=1;0;0;0
nvbuf-memory-type=0



[streammux]
gpu-id=0
##Boolean property to inform muxer that sources are live
live-source=0
batch-size=1
##time out in usec, to wait after the first buffer is available
##to push the batch even if the complete batch is not formed
batched-push-timeout=40000
## Set muxer output width and height
width=1920
height=1080
##Enable to maintain aspect ratio wrt source, and allow black borders, works
##along with width, height properties
enable-padding=0
nvbuf-memory-type=0

# config-file property is mandatory for any gie section.
# Other properties are optional and if set will override the properties set in
# the infer config file.

[primary-gie]
enable=1
gpu-id=0
#model-engine-file=model_b1_gpu0_int8.engine
labelfile-path=labels.txt
batch-size=1

#Required by the app for OSD, not a plugin property
bbox-border-color0=1;0;0;1
bbox-border-color1=0;1;1;1
bbox-border-color2=0;0;1;1
bbox-border-color3=0;1;0;1
interval=2
gie-unique-id=1
nvbuf-memory-type=0
config-file=config_infer_primary_yoloV3.txt

 

RTSP 스트리밍을 위한 파이프라인 조정


[source0]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP 5=CSI
type=5  ## CSI라고 하는 나노젯슨용 카메라이다. 카메라를 통해 영상전송할것.
camera-width=1280
camera-height=720
camera-fps-n=30
camera-fps-d=1
#1초당 30프레임.

[sink0]
enable=0 # 활성화 안함.
#Type - 1=FakeSink 2=EglSink 3=File 4=RTSPStreaming 5=Overlay
type=5
sync=0
display-id=0
offset-x=0
offset-y=0
width=0
height=0
overlay-id=1
source-id=0

[sink1]
enable=0 #영상 분석을 한 뒤 파일형태로 변환시킬 경우 사용했다.  rtsp와는 무관
type=3
#1=mp4 2=mkv
container=1
#1=h264 2=h265 3=mpeg4
codec=1
#encoder type 0=Hardware 1=Software
enc-type=0
sync=0
bitrate=2000000
#H264 Profile - 0=Baseline 2=Main 4=High
#H265 Profile - 0=Main 1=Main10
profile=0
output-file=out.mp4
source-id=0

[sink2]
enable=1 
#Type - 1=FakeSink 2=EglSink 3=File 4=RTSPStreaming 5=Overlay
type=4 #RTSP 통신을 위한 하이퍼 파라미터.
#1=h264 2=h265
codec=1 #영상 압축률이 h265가 훨씬 좋지만 젯슨 나노에서 h264로 사용함. 
        #h265로 사용해도 무관했던것 같지만 매뉴얼대로 했다.
#encoder type 0=Hardware 1=Software
enc-type=0
sync=0 
bitrate=4000000
#H264 Profile - 0=Baseline 2=Main 4=High
#H265 Profile - 0=Main 1=Main10
profile=0
# set below properties in case of RTSPStreaming
rtsp-port=8554
udp-port=5400

Sorce 부터 sink 0,1,2 바꿔주면 된다.

 

sink 2 부분의 포트번호는 주의할것.

https://voidint.com/2020/07/22/nvidia-deepstream-config-overview/

 

NVIDIA DeepStream Config Overview - voidint.com

DeepStream 샘플 애플리케이션을 구동해 보는 것은 어렵지 않고 유익합니다. 하지만 다음에는 무엇을 해야 하는지 어려움을 겪을 수도 있습니다. DeepStream Config 를 통해 파이프라인 구성에 대해 이

voidint.com

config 내용을 확인하고 조정할것.

 

 

Tracking 기능을 사용하려면 아래의 코드를 첨부하면 된다.

[tracker]
enable=1
tracker-width=640
tracker-height=384
ll-lib-file=/opt/nvidia/deepstream/deepstream-5.1/lib/libnvds_mot_klt.so
728x90

'영상인식' 카테고리의 다른 글

Nvidia deepstream tracker 라이브러리 (IOU/KLT/Nvdcf )  (0) 2021.07.15
Deepstream 이란  (0) 2021.07.14
Deepstream Yolov3 사용기  (2) 2021.07.06
SDK란?  (0) 2021.07.05
Jetson nano와 같은 Edge device를 사용하는 이유  (0) 2021.07.05