SmartCamera의 스트리밍 품질 개선
개시하다
지난번에 SmartCamera로 카메라 이미지를 보여 주려고 했습니다.
이번에는 이더넷을 통해 KV260과 PC를 연결하여 스트리밍을 시도해 보겠습니다.
환경 준비
KV260 및 PC의 IP 주소를 설정합니다.
KV260의 전원을 켭니다.터미널 소프트웨어에 로그인하여 다음 명령을 사용하여 일시적으로 IP 주소를 설정합니다.여기
192.168.0.20
입니다.$ sudo ifconfig eth0 192.168.0.20
$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.20 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::20a:35ff:fe0d:c473 prefixlen 64 scopeid 0x20<link>
ether 00:0a:35:0d:c4:73 txqueuelen 1000 (Ethernet)
RX packets 53 bytes 3256 (3.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14 bytes 2372 (2.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 52
PC를 클라이언트로 설정합니다.먼저 IP 주소를 설정합니다.여기
192.168.0.15
입니다.KV260을 사용하여 SmartCamera의 펌웨어를 읽습니다.
$ sudo xmutil unloadapp
$ sudo xmutil loadapp kv260-smartcam
$ sudo xmutil listapps
Accelerator Base Type #slots Active_slot
kv260-dp kv260-dp XRT_FLAT 0 -1
kv260-smartcam kv260-smartcam XRT_FLAT 0 0,
Socket 6 closed by client
클라이언트에 Gstreamer를 설치하여 스트리밍으로 재생합니다.※ 아래 기사 6 참조
흐름 전송 동작
KV260의 터미널 소프트웨어에서 응용 프로그램을 실행합니다.
흐름 전송 시 대상
rtsp
을 지정합니다.$ sudo smartcam --mipi -W 1920 -H 1080 --target rtsp
PC 측은 명령 프롬프트에서 다음 명령을 실행합니다.$ gst-launch-1.0 rtspsrc location=rtsp://192.168.0.20:554/test ! rtph264depay ! queue ! h264parse ! queue ! d3d11h264dec ! videoconvert ! d3d11videosink
KV260 카메라의 영상을 화면에 띄워 스트리밍 여부를 확인할 수 있다.그런데 3초 딜레이가 있는 것 같고 화질도 안 좋아서 매개변수를 좀 만지고 싶어요.
지연 시간 개선
SmartCam의 매개변수는 다음 명령을 통해 확인할 수 있습니다.
$ smartcam -h
Usage:
smartcam [OPTION?] - Application for facedetion detction on SoM board of Xilinx.
Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gst Show GStreamer Options
Application Options:
-m, --mipi= use MIPI camera as input source, auto detect, fail if no mipi connected
-u, --usb=media ID usb camera media device id, e.g. 0 for /dev/media0
-f, --file=file path location of h26x file as input
-i, --infile-type=h264 input file type: [h264 | h265]
-W, --width=1920 resolution w of the input
-H, --height=1080 resolution h of the input
-r, --framerate=30 framerate of the input
-t, --target=dp [dp|rtsp|file]
-o, --outmedia-type=h264 output file type: [h264 | h265]
-p, --port=554 Port to listen on (default: 554)
-a, --aitask select AI task to be run: [facedetect|ssd|refinedet]
-n, --nodet no AI inference
-A, --audio RTSP with I2S audio
-R, --report report fps
-s, --screenfps display fps on screen, notice this will cause performance degradation
--ROI-off turn off ROI
--control-rate=low-latency Encoder parameter control-rate
--target-bitrate=3000 Encoder parameter target-bitrate
--gop-length=60
--profile Encoder parameter profile.
--level Encoder parameter level
--tier Encoder parameter tier
--encodeEnhancedParam String for fully customizing the encoder in the form "param1=val1, param2=val2,...", where paramn is the name of the encoder parameter
매개 변수 목록에
-n, --nodet (no AI inference)
이 있습니다.AI 처리는 기본적으로 적용되기 때문에 지정-n
해 조작했으나 체감 지연은 개선되지 않았다.기본 설정은
low-latency
입니다.https://github.com/Xilinx/smartcam/blob/2021.1/src/main.cpp
I 그림의 삽입 간격에서 30 프레임 60은 기본값이기 때문에 2초 간격으로 한 번씩 삽입합니다.15로 변경해 보았지만 과부하가 있었는지 오히려 프레임 속도가 떨어졌다.
발송자
gst-launch-1.0 v4l2src io-mode=4 device=/dev/video0 ! videoconvert ! video/x-raw, format=NV12, framerate=30/1, width=1920, height=1080 ! omxh264enc ! h264parse ! queue ! rtph264pay ! udpsink host=192.168.0.15 port=554 buffer-size=20000000
수신자gst-launch-1.0.exe udpsrc name=video_src port=554 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264" ! rtph264depay ! queue ! h264parse ! queue ! d3d11h264dec ! videoconvert ! d3d11videosink
이 경우 1초 이내로 연기된다.RTSP 서버의 전송에 문제가 있는 것 같지만 환경 종속 가능성도 고려해서 여기에 문제가 있는 것 같다는 것만 알고 있습니다.
화질 개선
UDP를 통해 지연 없이 스트리밍이 가능하지만 화질이 여전히 좋지 않으니 이번에는 화질을 개선해 보겠습니다.
목표 비트레이트
기본값
--target-bitrate=3000
은 3Kbps로 설정하여 크게 낮음30000(30Mbps)으로 설정해 보십시오.
PC 측에서 설정된 데이터 양을 받아들였는지 확인할 수 있습니다.
눈으로 영상을 확인해도 소음이 나지 않아 좋다.
끝맺다
K260에서 Smart Camera를 움직여 보았지만 ZCU104 때보다 애니메이션의 질이 높아졌다.
이렇게 되면 드론 영상 발표에도 쓸 수 있잖아.
앞으로 이를 바탕으로 AI와 이미지 처리 기능을 추가하는 것을 동력으로 다양한 시도를 해보고 싶다.
Reference
이 문제에 관하여(SmartCamera의 스트리밍 품질 개선), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/youkou/articles/04c1e4b104a481텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)