엔비디아 딥스트림 Deepstream 6.0 입력 소스를 카메라로 변경하는 방법
NVIDIA Xavier NX devkit 에서 Deepstream 6.0 의 입력 소스를 filesrc 가 아닌 카메라, v4l2 로 변경하는 방법을 테스트하고 정리한다.
이 예제에서 사용된 환경은 아래 포스팅을 참고한다.
2022.07.10 - [NVIDIA Jeston/Deepstream] - Deepstream 처음 설치하고 실행하기
2022.07.15 - [NVIDIA Jeston/Deepstream] - Deepstream 를 이용하여 유동인구를 분석해보자!
Deepstream 입력소스 변경
테스트 환경
- NVIDIA Xavier NX devkit (16G emmc module)
- nvme ssd root file system 사용
- Jetpack 4.6 (L4T R32.6.1)
- Camera (mipi type) x 2ea
예제 설명
이 예제에서 사용된 환경은 deepstream-occupancy-analytic 예제이다. 이 예제는 NVIDIA Deepstream SDK, Transfer Learning Toolkit(TLT) 및 사전 훈련된 모델 (Peoplenet) 을 사용하여 건물에 출입하는 사람을 계산하기 위한 샘플 어플리케이션으로 peoplenet 이라는 모델을 사용한다.
코드수정
Deepstream 어플리케이션의 config 파일을 수정 해야한다. (config 파일의 각 group 은 아래 문서를 참고하자.)
이 어플리케이션은 기존 h.264 filesrc 를 사용했으며, 카메라로 입력을 받기 위해 기존의 filesrc source 는 enable=0 로 처리하고, 다음 2개의 source 를 config 파일 (test5_config_file_src_infer_tlt.txt) 에 추가하였다.
[source3]
enable=1
num-sources=2
type=1
camera-width=1920
camera-height=1080
camera-fps-n=65
camera-fps-d=1
camera-csi-sensor-id=1
camera-v4l2-dev-node=0
drop-frame-interval=5
[source2]
enable=1
num-sources=2
type=1
camera-width=1920
camera-height=1080
camera-fps-n=65
camera-fps-d=1
camera-v4l2-dev-node=1
drop-frame-interval=5
추가된 source 가 동시에 화면에 출력될 수 있도록 display 항목에 height 를 늘려준다. (720 px → 1440 px)
[tiled-display]
enable=1
rows=2
columns=1
width=1280
height=1440
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
테스트
수정된 config 파일을 참조하여 deepstream-test-analytics 예제를 실행한다.
$ ./deepstream-test5-analytics -c ./config/test5_config_file_src_infer_tlt.txt
NVIDIA Xavier NX devkit 과 2개의 mipi 카메라로 실험하였다.
NVIDIA Xavier NX devkit 에서 작은 피규어로 테스트 했음에도 불구하고 people 은 거의 실시간 (25fps) 정도로 검출하고 있다.
NVIDIA Xavier NX devkit 에서 jtop 으로 측정한 GPU 사용량이다. 약 70~80% 를 사용있다.
NVIDIA Xavier NX devkit 에서 20W 6core 로 세팅하고, jtop 으로 측정한 CPU 사용량이다. 6개의 CPU core 를 약 50~90% 를 사용하고 있었다.
Post-mortem
- NVIDIA Xavier NX devkit 에서 Deepstream 6.0 의 입력 소스를 filesrc 가 아닌 카메라, v4l2 로 변경하는 방법을 테스트하였다. Deepsteam 의 config 를 수정하여 mipi camera 2개로 쉽게 변경할 수 있었다.
- Deepsteam 의 config 내용을 이해하고 다양한 parameter 수정을 해볼 필요가 있다. 어플리케이션 성능과 관련해서 frame 을 drop 하는 전략도 검토해보자.
참고자료
이 예제를 실행하기 위해 아래 포스팅을 참고한다.
2022.07.10 - [NVIDIA Jeston/Deepstream] - Deepstream 처음 설치하고 실행하기
2022.07.15 - [NVIDIA Jeston/Deepstream] - Deepstream 를 이용하여 유동인구를 분석해보자!
'NVIDIA Jeston > Deepstream' 카테고리의 다른 글
NVIDIA Jeston deepstream RTSP 수신 (0) | 2022.08.03 |
---|---|
UDP sink 를 이용한 Deepstream RTSP 출력 (0) | 2022.07.21 |
Deepstream Test1 객체 검출결과 RTSP 전송 (0) | 2022.07.17 |
Deepstream 를 이용하여 유동인구를 분석해보자! (0) | 2022.07.15 |
Deepstream 오브젝트 트래커 예제 실행하기 (0) | 2022.07.13 |
Deepstream graphviz dot 그래프를 이용한 시각화 (0) | 2022.07.13 |
Deepstream 6.0 Yolov2 Yolov3 예제 실행하기 (0) | 2022.07.11 |
Deepstream 처음 설치하고 실행하기 (1) | 2022.07.10 |