Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    RTSP串流加上人形/人脸检测

    V Series
    1
    1
    1384
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • q1215200171
      budbool LV 9 last edited by q1215200171

      本篇介绍的过程并不复杂,原理上比上篇博客介绍的要简单一些,有趣的地方在于将之前的编码落盘和预览转换为了两路RTSP子码流输出,这样码流可以传的更远一些。

      V833/V831目标检测demo方案开发_papaofdoudou的博客-CSDN博客_v833

      整个应用方案原理如下:

      cfcc180de1ba4a23b3eeb6c60b065077.png

      闲言少叙,下面开始技术流水账:

      第一步,打开Tina EMAC以太网络支持
      由于uart2和emac phy是share pin的,所以需要事先将默认配置为uart功能的PIN角修改为emac功能,方法是cconfigs到目录,修改board.dts:

      2dc0f39bb36440dcaeee8e4437d2a7ca.png

      之后,重新编译,打包,烧录,系统启动后,执行ifconfig -a命令,查看是否存在eth0设备,正常情况下,eth0网卡应该如下图所示,会出现的,此时你会看到以太网和本地回环两个网络接口设备。

      c0751503e2ee4f34bc217367c35c680b.png

      平台和开发PC主机建立网络连接
      RTSP是一种实时串流协议,当然离不开网络连接,由于我们需要将端侧的网络流通过RTSP协议推送到PC侧实时播放,所以必须建立端侧平台和PC主机的以太网连接。

      将端侧平台和PC主机通过网线直连,如果你不想拉断主机原来的网络,可以用USB转以太网接口给主机再扩展一个以太网口,产品如下图所示,好用不贵,价格实惠,不超过50买个不错的,由于不想断网,这里我采用后者的方案:

      05aa1f9154f5469cbebbdd628be15d04.png

      关于USB网卡类产品的体验,可以参考博客:

      绿联USB网卡的使用记录_papaofdoudou的博客-CSDN博客_usb网卡

      在windows10上插入usb转以太网卡,无需安装驱动,在用网线将两个以太网口直连起来。之后就需要设置端侧IP地址了。

      9d9fe34025d04568b85b874e2ca006cb.png

      首先为了保证两台设备在同一个网段,先看一下USB网卡的IP地址,下图的以太网适配器 以太网3即是USB网卡的IP地址,是169.254.173.243,169.254.0.0到169.254.255.255是B类IP保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器,这时你将会从169.254.0.1到169.254.255.254中临时获得一个IP地址,我们就用这个地址。

      eb16eb345b074cc0af8dd9013c09919b.png

      我们需要保证端侧和PC在同一个网段内,所以必须将端侧配置成同一个网段的B类保留地址,方法和过程如下:

      ifconfig -a
      ifconfig eth0 up
      ifconfig eth0 169.254.173.233 netmask 255.255.0.0
      ifconfig -a
      

      056e3e911b22473a8cc5b44aba154e61.png

      设置IP为169.254.173.233。

      网络测试:直接ping peer.从PC端ping端侧:

      41a46ec7c49544368d723e23e6dc9c7a.png

      端侧ping PC侧:

      3698bc08a5f745598124f6cfd79891cf.png

      都可以ping通,网络配置完成。

      为了避免每次重启都要配IP的不便,我们将配置放在脚本中,cdevice到设备配置目录,打开busybox-init-base-files/etc/init.d/rc.final文件,将以上命令添加到末尾:

      db261008f34940ea844482ed9bcd9142.png

      重新编译,烧录,之后每次启动IP都已经配置好。

      10ffa433b95c4b71b149eaadc702aa8d.png

      方便多了,接下来实现方案。

      方案流程

      ff76a361ec3b454296d57816a6e2f0d4.png

      一个有趣的问题

      我们知道,常用的开源人形检测算法,比如yolo系列,mobilenet-ssd系列,它们的输入图形尺寸都是正方形的,也就是长==宽,比如yolov支持的三种尺寸输入(320x320, 416x416, 608x608),以及mobilenet-ssd(224x224).虽然VIPP也支持无极缩放和变AR缩放,但是为了保证图像缩放时不裁剪内容也不将内容压缩,通路中建议使用16:9的长宽比压缩数据,如下图所示:

      a4efc4c7a72b42c89a4d0dc81d8138a7.png

      所以,这里就有一个不匹配的问题发生,如果VIPP通路送的图像是16:9的,而网络则希望输入图为方形的,该如何处理?

      处理的方法很简单,你不是16:9吗,直接将9补到16就可以了,也就是说,图像下方留黑边,以352*352的网络输入尺寸为例,下方补154行的而黑边,变成方形,如下图所示:

      7f847bf7de364cf9873f88f9f6750951.png

      480*480的做法类似

      微信图片_20220407231051.png

      这样做虽然可以解决问题,但是有一个弊端,就是黑边的部分其实是在浪费算力,使原本可以提高的帧率部分的算力浪费在黑边的无效处理上。

      架构都是虚的,无图无真相,我们看一下处理前后YUV图形的变化:

      处理前是的480*270:

      09d9c94dbe7b4309a6100050d2e4e0ad.png

      处理后的480*480:

      55f56abaf6804b14b2bdfcf9fc01ab4b.png

      这样处理,由于下面补的部分经过有效卷积后为0,不会检测出框来.而上方内容区的检测内容和实际的16:9的检测图像效果是等效的,所以,网络的检出结果可以直接经过线性变换还原回大图中对应框的位置。

      关于补黑边的逻辑很简单,由于VIPP输出16:9的NV12格式YUV, 我们直接将Y部分拷贝到方形图像的Y部分,UV拷贝到方形尺寸的UV部分,其余补0即可。对应代码,注意下图的SIZE对应方形尺寸的长宽,不对应VIPP输出图的长宽,只有这样,才能起到补黑边的作用。

      5a15c71022cc4d659d8b0f9f35257607.png

      RTSP实跑测试:
      打开VLC,选择媒体->打开网络串流... 对话框,配置RTSP服务端的拉流地址,点确定后即可拉流成功。

      a4fa94c6954c48c5853f7d5ace7acced.png

      人形检测算法的效果:

      ee6e62f9937f476f906fb3af5871f10e.png

      人脸检测算法效果:

      839abaf54a9a4575b2af87de34f4a6ff.png

      基于以上功能,可以做出很多有意思的应用场景出来,比如,在安防领域,由于网络带宽的限制,一般需要压低编码码率从而减少带宽,这会造成整幅画面的区域码率变低。但是针对具体场景,又有针对个别区域做精细控制的需求,这是一对矛盾,而AI检测框的机制给解决这种矛盾提供了一种优美的方案,在行业内,它被称为ROI(Region Of Interst).

      本帖转自CSDN:https://blog.csdn.net/tugouxp/article/details/123692835
      作者:papaofdoudou

      1 Reply Last reply Reply Quote Share 2
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策