瑞星微
嘉木有鱼
这个作者很懒,什么都没留下…
展开
-
firefly-rk3399 开发记录8-NCNN检测
1.NCNN编译NCNN就不描述了,这里采用NCNN最新的发布版ncnn-20200727,buildroot中的mk文件如下NCNN_VERSION = 20200727NCNN_SITE = $(call github,Tencent,ncnn,$(NCNN_VERSION))NCNN_INSTALL_STAGING = YESNCNN_LICENSE = BSD-2-Clause or GPL-2.0+NCNN_LICENSE_FILES = LICENSENCNN_CONF_O原创 2020-08-12 11:19:34 · 1130 阅读 · 0 评论 -
firefly-rk3399 开发记录7-RGA使用
1.RGA简单的说,RGA就是一个用来处理图片的硬件,和CPU相互独立,可以独立完成图片的处理,在瑞芯微这边提供的库是阻塞的,可以自己实现为异步的。具体可参考官方的简单说明http://t.rock-chips.com/forum.php?mod=viewthread&tid=333&highlight=RGA2.RGA错误使用这里使用RGA,主要是用于一个快速的格式转换,在这部分实现中,阻塞或者异步都影响不大。上一章节简单说明了一下RGA的使用,经过测试那样做,有点问题,资源泄原创 2020-08-11 16:22:22 · 5688 阅读 · 2 评论 -
firefly-rk3399 开发记录6-摄像头处理错误
1.记录一个错误在当前的使用方式下,在运行一段时间,几分钟,或者十几分钟之后出现如下错误,然后摄像头卡死了,整体程序就算是假死状态CameraBinerror:"Internaldatastreamerror."这个问题,没得什么头绪,度娘和谷歌都没看到有什么问题。这个问题在之前没有引入人脸检测时,是没有问题的,直到引入opencv做检测才出现。所以这里首先还是从检测部分还是入手检查,屏蔽cascade.detectMultiScale之后,程序又可正常运行,但是这里cv一般是没得什...原创 2020-08-11 14:55:26 · 2540 阅读 · 0 评论 -
firefly-rk3399 开发记录5-人脸检测实现
1.人脸检测在前面实现的基础上,这里实现人脸检测就相对方便得多了,实现方式简单的采用opencv的分类级联处理haarcascade_frontalface_default.xml。在检测之后,返回人脸检测框,送到上一章节实现的自定义viewfinder中绘制。首先先加载级联器QSmartMethod::QSmartMethod(QObject *parent) : QObject(parent){ cascade.load( "/usr/share/OpenCV/haarc原创 2020-08-10 10:09:35 · 797 阅读 · 1 评论 -
firefly-rk3399 开发记录4-自定义QCameraViewfinder
1.QCameraViewfinderQCamera的取景器,用于显示摄像头抓到的数据,前面所使用的就是这个。但是现在遇到一个需求,比如在一些场合中,需要在显示图像上打水印,OSD等信息,比如在人脸检测场景中一帮会要求识别画框,这里这里没有提供hook方式,不行,probe是并行的,并不会影响到显示这里。看有些博客上说继承一下QCameraViewfinder然后覆写painteventvoid QCameraViewfinderPri::paintEvent(QPaintEvent *e){原创 2020-08-07 15:21:22 · 1346 阅读 · 0 评论 -
firefly-rk3399 开发记录3-编码与RTSP实现
1.帧捕获在前面的实现过程中,采用了QVideoProbe捕获摄像头数据,在信号绑定之后,传输到QSmartVenc,编码模块是额外放在另外一个线程处理的 QVencParm param; param.width = 1280; param.height = 720; param.code = MPP_VIDEO_CodingAVC; param.fmt = MPP_FMT_YUV420P; m_venc.reset(new QSmartV原创 2020-08-07 10:25:36 · 3555 阅读 · 5 评论 -
firefly-rk3399 开发记录2-摄像头控制
1.基本使用买了firefly那个屏幕,接入HDMI和USB线之后,屏幕会有显示,用的是weston,也带正常触屏功能。尝试挂载NFS,结果发现失败, bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program看了下NFS的支持,内核是支持了,busybox没支持,重新编译一下buildroot,make busybox-menucon原创 2020-08-06 15:33:40 · 1797 阅读 · 2 评论 -
firefly-rk3399 开发记录1-环境搭建
1.固件目前先选择builroot编译,在官方下载最新的固件,这里使用的是firefly-sdk-20200629.7z,校验MD5通过后,则进行解压http://wiki.t-firefly.com/zh_CN/Firefly-RK3399/buildroot_compile.html,基本编译步骤和教程一样。这里选择的是docker部署,docker的方式懂的人自认就懂a).docker pull ubuntu:16.04b).创建容器,并映射目录,把固件源码目录映射到容器中c.原创 2020-08-03 16:10:58 · 1358 阅读 · 0 评论