自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(389)
  • 资源 (3)
  • 论坛 (161)
  • 收藏
  • 关注

原创 FairMOT Cuda环境搭建并进行推理

环境准备1.PC Host Ubuntu 18.04.6,Linux Kernel 5.4,内核版本关系不大,记录下来备查。2.安装基础工具,比如GCC,CMAKE,VIM,GIT等等,工具尽量完备, 如果做不到,遇到问题临时下载也可。3.安装python3发行版,我用的是anaconda发行版,具体版本是 Anaconda3-2020.11-Linux-x86_64.sh下载地址在如下链接,选择对应的版本即可。https://repo.anaco...

2021-11-10 19:42:35 2513

原创 为什么CNN中可以用卷积核提取相似度?

卷积神经网络的特征映射的值以图像和过滤器(卷积核)的相似度作为输入信息,卷积的过程表示如下:假设由3x3像素构成的两幅图A,F,从矩阵向量相似的角度看,他们的相似度可以像下面这样求出:这个定理可以利用向量的性质来说明,根据线性空间理论,当两个向量相似时,他们的内积较大,我们可以认为内积大小表示两个向量的相似性。图形化表示就是:为了利用这个性质,可以将两幅图像堪称是向量:这样一来,通过内积,卷积便和相似性联系起来,也就是说,我们可以把CNN中卷积的额计算过程理解...

2021-10-21 10:13:49 594

原创 为什么神经网络需要激活函数层?

这个问题的原因,很多书上讲,是为了引入非线性,也就是说,只有引入激活函数,网络才能具有非线性特征,那疑问就来了,没有激活函数层,就没有非线性了吗?是否有方式证明?以为下面的网络为例,它的每一层都是全连接层,并且没有激活函数层,我们列出各层之间的数据关系公式:第一层输出:第二层输出:...最后一层:逐层代入得到:由于Wn,Bn都为常阐述,所以,根据上式可以看出,输出是输入的线性函数,所以网络一定是线性的,不具备非线性特征。从而我们证明了,为什么一定要引入激活

2021-10-15 09:47:49 124

原创 斐波那契数列和矩阵的特征值于特征向量的关系

从事软件开发的人对斐波那契数列可以说在熟悉不过了,一般是学习递归算法的入门案例写在教科书中,它用递推公式表达是这个样子的:作为一名体面的程序员,看到这个公式不免手心发痒,我们写一个程序来寻找它的规律:#include <stdio.h>#include <stdlib.h>long long feibonaqie(int n){ if(n == 0) return 0; if(n == 1) return 1; return feibonaqie

2021-10-08 23:17:59 203 1

原创 一个神经网络的梯度反向传播的计算过程

网络拓扑结构图:反向传播 Back Propagation (手把手推导)_哔哩哔哩_bilibili结束!

2021-09-27 22:52:10 148

原创 softmax与交叉墒层的实现原理以及梯度计算

softmax,看名字就知道,就是如果判断输入属于某个雷的概率大于属于其它类的概率,那么这个类对应的值就逼近于1,其它类的值就逼近于0,该算法的主要应用就是多分类,而且是互斥的,即只能属于其中一个类,和sigmoid类的激活函数不同的是,一般的激活函数只能分两类,所以可以理解成softmax是sigmoid类的激活函数的扩展。它的算法如下:也就是把所有的值用e的指数函数表示出来,求和后算每个值占的比率,保证总和为1,一般就可以认为softmax得出的就是概率.抽象层面的原理如下所示:在网

2021-09-21 12:49:37 77

原创 V833开发物体检测demo方案

项目需要在V833平台上开发一个人形检测的功能用例, 大概框架如下:一路sensor图像经过四路VIPP缩放操作后,送给四个不同应用,分别是H265编码存盘,LCD预览以及以及NPU人形检测,还有一路照片抓拍。NPU人形检测原理如下:NPU线程抓取352*198(VIPP支持的输出大小)像素,格式为NV21的YUV原始帧数据,喂给人形检测算法网络,得到类别和坐标数据后,反馈给VIPP1 预览通道画框。这样的设计方案包含一个问题,NPU这边获得帧并进行网络推理得到坐标结果并反馈给VI.

2021-09-16 15:38:00 264

原创 相机内参和相机外参和标定

结束!

2021-09-05 16:20:42 178

原创 Linux内核实时线程throtted机制

Linux内核支持实时线程和非实时线程同时工作,并且可以给实时线程分配适当的执行比例,当超过设置的比例的时候,调度器将不再调度实时线程工作,这样做保证了即便在实时线程不主动放弃CPU的情况下,CPU的占用率也不会到%100,保证了其它线程总有执行时间。具体实验可以看下片博客:Linux实时调度策略(SCHED_RR)和CFS(SCHED_OTHER)之间的区别下面我们分析一下它的内核实现机制,从上篇博客我们知道关键的变量是rt_throttled,我们尝试调试一下它的变化逻辑,加入下面的补丁:

2021-08-28 09:08:31 321 1

原创 感受野随网络深度变化的规律

以3*3*1的卷积核为例,看感受野随着神经元层数加深的变化规律:结束!

2021-08-22 17:13:52 89

原创 Tensorflow 源码算子以及架构实现分析

本文参考https://www.tensorflow.org/install/source下载Tensorflow源码:git clone https://github.com/tensorflow/tensorflow.git下载完成后,可以看到,tensorflow目录结构如下:maliankang@AwExdroid112:~/tensorflow$ tree -L 2 -d.├── tensorflow│ ├── c│ ├── cc│ ├── compile...

2021-08-18 10:13:26 828 2

原创 神经网路学习之利用LabelImg对图像标注

对于监督学习算法而言,数据决定了任务的上限,而算法只是在不断逼近这个上限。世界上最遥远的距离就是我们用同一个模型,但是却有不同的任务。但是数据标注是个耗时耗力的工作,下面介绍一个图像标注工具LabelImg。LabelImg是一个图形图像标注工具,它是用Python编写的,并使用Qt作为其图形界面。注释以PASCAL VOC格式(ImageNet使用的格式)保存为XML文件。此外,它还支持YOLO和CreateML格式。1.准备环境,安装依赖:在ubuntu系统上,安装依赖只需要敲入几个简单的命

2021-08-16 18:10:25 326 1

原创 ARM CPU挂死和总线挂死的DS-5调试方法

DS-5以及配套的DSTREAM/RealView是对ARM处理器进行裸机调试的利器,本文将针对工作中常见的CPU挂死情况,进行具体分析,将介绍如何区分CPU挂死以及通过CSAT区分总线挂死的具体操作步骤。DSTREAM/RealView的连接方式如下:调试器和目标ARM处理器之间是通过 JTAG连接起来的,JTAG则和芯片内部的调试IP相连接,在ARM规范里面,这个调试IP叫做ARM CoreSight,通过ARM CoreSight,我们可以调试挂在CoreSight之上的所有IP,..

2021-08-07 15:49:02 187

原创 Ubuntu18.04 搭建YOLOV4环境

下载代码,编译git clone https://github.com/AlexeyAB/darknetcd darknetmake下载预训练权重:验证:caozilong@caozilong-Vostro-3268:~/Workspace/yolo/darknet$ ./darknet detector test ./cfg/coco.data ./cfg/yolov4.cfg ./yolov4.weights data/dog.jpg GPU isn't used ..

2021-08-01 16:45:28 378

原创 Yolov3网络的物体检测

1.Get darknet 代码$ git clone https://github.com/pjreddie/darknet$ cd darknet$ makecaozilong@caozilong-Vostro-3268:~/yolo$ git clone https://github.com/pjreddie/darknet正克隆到 'darknet'...remote: Enumerating objects: 5937, done.remote: Total 5937 (de

2021-08-01 14:44:12 108

原创 BLAS中一些常用的转换算法

1.多维数组中offset和数组下表索引之间的转化:#include <stdio.h>#include <string.h>static int offset_to_indices(int dims[], int dimensions, int offset, int indices[]){ int i; for(i = dimensions - 1; i >= 0; i--) { indices[i] = offset % dims[i];

2021-07-29 14:01:24 38

原创 V4L2子系统架构设计初探

结束!

2021-07-27 14:04:12 239 1

原创 高性能计算(HPC)和智能计算收录

1.现代终端设备一般都跟云端服务器相连,但只要可能,我们都希望计算可以在本地终端解决,这样做的好处是多方面的:既可以减小网络带宽的压力,又可以避免网络传输产生的时延,还可以让用户的数据更安全。现代终端设备一般用一个片上系统 (SoC)做计算,上面部署了通用的CPU和集成显卡。对于日益增多的卷积神经网络推理计算来说,在移动端的CPU(多数ARM,少数x86)上虽然优化实现相对简单(参见我们对CPU的优化),但此处它并非最佳选择,因为:1)移动端CPU算力一般弱于集成显卡(相差在2-6倍之间);2)更重要的是,

2021-07-24 10:58:01 211

原创 Melis4.0系统多媒体解码方案开发+调试环境搭建

关于Melis系统的介绍,可以参考以下帖子:Melis3.0系统Quick StartMelis4.0 架构以及V833-IPC开发QuickStartF133方案是基于4.0架构开发的应用方案,主要应用领域是多媒体视频解码+显示。关于系统的介绍就是这些,下面开始介绍本方案开发环境以及调试环境的搭建过程.1.SDK代码组织方案的代码组织结构如下图所示,其中rtos-hal是类似于cmsis的一套BSP开发接口,用于屏蔽sunxi不同平台的差异,向上层驱动框架提供一致的接口。 rtos-h

2021-07-23 16:02:26 306

原创 ALi投屏器体验记录

投屏器整体外观,简约不简单:HDMI 插上后,电视立即有了反应,点击查看进入:在查看界面,提供了在安卓和苹果手机上的安装指导说明,安卓和苹果针对投屏应用各自有独立的协议实现。安装信息包括WIFI直连的SSID和密码:连接过程如下:连接成功后,手机任务信息框中显示如下状态:投屏效果:系统用的应该是ALI自主的TDS RTOS系统,ALI是我的前东家,所以对这个系统还是有一些了解的。结束! ...

2021-07-14 07:05:02 145

原创 安卓上两类多媒体服务简要分析

安卓系统里面有两类主流的多媒体服务实现, mediaserver和mediacodec server,两套方案作为安卓系统多媒体架构的基础支撑框架,为安卓设备提供视频解码方案. 关于mediacodec和mediaserver是安卓多媒体实现的两种框架,mediaplayer是一个server ,应用是通过binder请求多媒体服务的,这方面,mediacodec也一样,它也是server,应用也是通过binder请求media codec 服务的。mediacodec也有独立的进程,通过bin...

2021-07-12 16:13:00 78

原创 腾讯神经网络推理框架NCNN试玩儿

ncnn 是腾讯开源的神经网络推理框架,官方仓库有详细介绍:https://github.com/Tencent/ncnn.git下面在普通PC的ubuntu18.04环境上搭建环境,运行一把。1.下载代码:git clone https://github.com/Tencent/ncnn.git2.配置环境:cd ncnnmkdir buildcd buildcmake -DCMAKE_BUILD_TYPE=relwithdebinfo -DNCNN_OPENMP=

2021-07-05 11:30:51 510 2

原创 C906 RISCV HPM(PMU)使用方法

初始化HPM(Hardware performance Monitor),系统初始化时调用。.option norvc.global hpm_get_icache_miss_ratehpm_get_icache_miss_rate: li x5, 0xffffffff csrw mcountinhibit, x5 csrw mcycle, x0 csrw minstret, x0 csrw mhpmcounter3, x0 csrw mhpmco

2021-07-01 15:25:41 158

原创 Tina&Melis时钟树分析

root@(none):/sys/kernel/debug/clk# cat clk_summary clock enable_cnt prepare_cnt rate accuracy phase----------------------------------------------------------------------------------------osc48m ...

2021-06-09 11:35:13 198

原创 Matlab一探DCT/IDCT变换在图像压缩中的应用

绝大多数图像都有一个共同特征,平坦区域和内容缓慢变化的区域占据一幅图像的大部分,而细节区域和内容突变区域则占小部分。也可以说,图像中直流和低频区占大部分,高频区占小部分,zhe'yang...

2021-06-05 15:08:02 445

原创 基于OpenCV的图像编解码实践

原图:python

2021-06-01 21:58:12 3711 10

原创 FFMPEG硬解加速器后端的对接实现

许多SOC平台提供使用专用硬件来执行一系列与视频相关的任务。使用这样的硬件可以让解码、编码或过滤等操作更快地完成,或使用更少的其他资源(特别是CPU),但可能会给出不同的或较差的结果,或施加额外的限制,这是仅使用软件时不存在的。在类似pc的平台上,视频硬件通常集成到GPU(来自AMD、Intel或NVIDIA),而在移动soc类型的平台上,它通常是一个独立的IP核心(许多不同的供应商)。硬件解码器将产生与软件解码器相同的输出,但可能会使用更少的功率和CPU。特性的支持各不相同——对于具有许多不同配置文件

2021-05-29 14:12:00 152

原创 Melis4.0系统架构以及V833/V831-IPC开发QuickStart

Melis4.0是在Melis3.0的基础上,对系统架构进行了重新设计,去除了模块化设计,增加了对V4L2,OMX,MPP的支持。在多媒体处理能力上得到了增强。

2021-05-18 18:29:42 965 3

原创 利用RT-Thread VMM组件实现对Linux实时性改造的实践

利用RT-Thread VMM组件,可以将Linux/RT-Thread双系统并行执行, RT-Thread和Linux双系统并行的好处是显而易见的,它既克服了Linux硬实时的不足,同时又有效利用了Linux生态系统,双剑合璧,可以针对复杂的应用场景释放系统能力。这篇文章利用RTT SDK提供的补丁和VMM组件,在virtualbox虚拟机中利用qemu来搭建一个双系统的运行环境,并对其原理进行一些简要分析。在RT-Thread&Linux双系统中,RT-Thread充当hypvisor...

2021-05-15 13:03:33 140

原创 计算机图像图形处理相关概念

3D和2D降噪:2D降噪:只在2维空间域上进行降噪处理。基本方法:对一个像素将其与周围像素平均,平均后噪声降低,但缺点是会造成画面模糊,特别是物体边缘部分。因此对这种算法的改进主要是进行边缘检测,边缘部分的像素不用来进行模糊。3D降噪:增添了时域处理,因此变为3维。和2d降噪的不同在于,2d降噪只考虑一帧图像,而3d降噪进一步考虑帧与帧之间的时域关系,对每个像素进行时域上的平均。例如,假设场景静止,那么连续两帧图像内容没变,他们的差值就是2倍的噪声。通过减少时域上的改变降低噪声。相比2d降噪,3d

2021-05-11 14:24:47 69

原创 一条普遍存在于嵌入式实时系统(RTOS)中的嵌套使用互斥量的bug分析

这篇文章说明一条嵌入式实时系统(RTOS)中一条普遍存在的bug, 包括ucos, rt-thread中都存在本文要说的问题.说是bug,其实也没有那么严重,因为只有在比较苛刻的几个条件同时满足的时候,它才会表现为一个bug.下面来分析一下.首先从优先级反转讲起.优先级反转在多任务系统中,不同任务之间存在共享资源,操作系统一般会提供mutex等同步机制来保证数据同步.有时候低优先级的任务已经持有了某个共享资源,因此,如果一个高优先级的任务想要访问该共享资源,需要等待低优先级的任务释放该资源,这种

2021-05-05 19:27:36 4831 11

原创 经典的操作系统调度算法-多级反馈队列(MLFQ)

这里介绍一种著名的调度算法,多级反馈队列(multi-level feedback queue,MLFQ),这种调度策略不但应用在Solaris和FreeBSD和Linux Schedule_RR Policy等Unix家族操作系统中,几乎所有的RTOS操作系统使用的基于优先级的时间片轮转调度算法,也是MLFQ的一个精简化的变种.多级反馈队列要解决两个方面的问题,首先,它要优化周转时间,这通过先执行短工作来实现,然而,操作系统通常不知道工作要运行多久,而这又是SJF(或者STCF)等算法所必须的,其次,

2021-05-04 20:15:35 890

原创 先来先服务调度(FCFS)算法及优缺点

毫无疑问,最简单的 CPU 调度算法是先来先服务(FCFS)调度箅法。釆用这种方案,先请求 CPU 的进程首先分配到 CPU。FCFS 策略可以通过 FIFO 队列容易地实现。当一个进程进入就绪队列时,它的 PCB 会被链接到队列尾部。当 CPU 空闲时,它会分配给位于队列头部的进程,并且这个运行进程从队列中移去。FCFS 调度代码编写简单并且理解容易。FCFS 策略的缺点是,平均等待时间往往很长。假设有如下一组进程,它们在时间 0 到达,CPU 执行长度按 ms 计:进程 执行时间 .

2021-05-03 21:07:05 1505

原创 最短任务优先(SJF)调度策略平均周转时间最优性的证明

最短任务优先调度策略是从运筹学中借鉴到计算机领域中的一种调度算法,它描述的策略可以简单概括为:先运行最短的任务,最后是次短的任务,如此下去。

2021-05-03 19:27:05 880 1

原创 ubuntu18.04编译webkitgtk

1.获取webkit源码:从webkit官网获取源码包:wget -c https://webkitgtk.org/releases/webkitgtk-2.22.2.tar.xz2.解压源码并安装依赖执行:webkitgtk-2.22.2$ ./Tools/gtk/install-dependencies3.配置cmake -DPORT=GTK -DCMAKE_BUILD_TYPE=RelWithDebInfo -GNinja -DENABLE_MINIBROWSER=O

2021-04-28 22:15:59 264

原创 Ubuntu18.04下使用GDB调试Firefox

如何在Linux系统编译Firefox浏览器,请参考这篇文章Firefox编译完后最让人惊讶的地方在于,它竟然是可以用GDB编译的,之前无论是编译WebKit,还是编译Chromium,它们最让人头痛的问题是面对庞大的代码体量,却无法编译,这种感觉像是面对一桌子的美食却被缚住双手。编译完Firefox后,尝试用GDB启动,竟然成功了。步骤1:进入firefox/mozilla-unified目录,执行命令gdb ./obj-x86_64-pc-linux-gnu/dist/bin/fire

2021-04-27 22:45:53 71

原创 ubuntu18.04 编译Firefox以及HTML5多媒体框架简要分析

1.准备环境安装python3,curlsudo apt-get install python3 python3-dev curl安装版本管理工具:安装curl,下载准备文件bootstrap.pycurl https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py -O执行python安装脚本...

2021-04-24 19:59:59 383

原创 主流浏览器上HTML5多媒体播放器的实现

通用浏览器内核介绍 浏览器内核 主要浏览器实现 其他实现(部分双内核) WebKit2/WebKit AppleSafari midori,QQ,遨游,搜狗 Gecko MozillaFireFox netscapewaterfox Blink GoogleChromiuma...

2021-04-15 09:24:32 156

原创 系统多媒体的架构设计

1.退出机制'结束!

2021-04-13 22:40:11 194

原创 Gstreamer 管道可视化

本文假设已经按照在Ubuntu18.04上从源码构建Gstreamer搭建GST源码环境。Step1:验证环境:export FFMPEG运行环境:export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH播放视频片源:gst-play-1.0 /media/caozilong/B0509F8C509F5844/The.Godfather.Part2.Blu-ray.720p.x264.DD51-HiS@MySiLU.m

2021-04-05 09:07:09 311

东南大学自动控制系课程件

东南大学自动控制系课程件,包含重要课程的重要内容,是您居家生活的好助手。

2010-02-08

inside the c++ object

C++经典书籍,书中详细叙述了C++内部对象模型的实现,虚函数的实现,看完此书你会有豁然开朗的感觉

2009-05-22

RFID数据采集系统设计

这个资源不错哦,大家快来下吧,非常好的真的很不错哦噢噢哦哦

2009-06-20

请教高手,程序编译时和运行时有什么不同?

发表于 2009-05-08 最后回复 2020-08-10

嵌入式软件工程师30岁的困惑,出路何在

发表于 2013-09-27 最后回复 2020-07-23

请教,有头结点和无头节点的单链表的区别在哪儿》????

发表于 2009-09-04 最后回复 2020-07-21

有没有搞HDMI接口开发的,1个TMDS clock传递10bit是怎么回事?

发表于 2010-06-29 最后回复 2020-04-13

fpga开发中的bitfile文件是做什么用的?

发表于 2010-05-12 最后回复 2019-10-30

在不使能MMU的情况下,能否实现动态加载?如何实现

发表于 2017-03-31 最后回复 2017-04-01

arm9复位入口如何选择?

发表于 2017-02-21 最后回复 2017-02-27

推荐一个老的arm9处理器开源工具链,bare-metal的

发表于 2017-02-17 最后回复 2017-02-21

jlink,usb-blaster, dstream这些适配器的为什么称为“仿真器”?

发表于 2017-02-05 最后回复 2017-02-13

请教如何将debug版本改为release版本?

发表于 2009-05-25 最后回复 2017-01-18

while(cin>>n)的问题,cin>>n返回什么值呢?

发表于 2009-09-04 最后回复 2016-11-12

Android 下面写驱动疑问,大侠过来看一下。

发表于 2015-09-23 最后回复 2015-11-15

关于只有一个消费者和只有一个生产者情况下ringbuffer需不需要加锁保护的问题

发表于 2015-06-07 最后回复 2015-11-15

android 驱动程序在user space,那寄存器配置如何实现?

发表于 2015-09-21 最后回复 2015-09-23

对于32位处理器架构,unsigned long long和typedef{unsigned int low,unsigned int high}u_int64

发表于 2015-06-12 最后回复 2015-09-21

关于ring buffer,生产者-消费者模型, 读写指针需不需要彼此互斥的问题

发表于 2015-06-05 最后回复 2015-06-07

USB mass storage设备,为啥读取需要设置scsi command.

发表于 2015-03-31 最后回复 2015-06-05

linux下如何实现driver向app的事件通知?

发表于 2011-08-03 最后回复 2015-06-05

字符设备文件的设备号(主设备号和次设备号)是否会写到物理磁盘上面?

发表于 2011-11-22 最后回复 2015-03-31

STL容器对元素的要求?越看越糊涂!

发表于 2009-05-26 最后回复 2014-09-21

想请教一下为什么i++不能作为左值?

发表于 2008-11-18 最后回复 2013-02-04

高分求C++描述Petri网的示例程序!模拟离散事件动态系统运行的,如代码可用再加分!

发表于 2009-06-23 最后回复 2012-04-17

求助,复制容器对象的构造函数和使用两个迭代器的构造函数之间的区别?

发表于 2008-11-04 最后回复 2012-03-16

脚本文件中的. = ALIGN(4);是什么意思?究竟是按照多少字节对齐?

发表于 2011-03-06 最后回复 2011-03-11

makefile中的下列语句表示什么意思 ?

发表于 2011-03-02 最后回复 2011-03-02

arm-linux-gcc,sde-gcc和gcc之间有什么关系??

发表于 2011-03-02 最后回复 2011-03-02

请问一下这条汇编宏定义代表什么意思?

发表于 2011-02-20 最后回复 2011-02-23

想学linux驱动开发,推荐一块开发板

发表于 2011-02-10 最后回复 2011-02-10

这段代码怎么这么奇怪?

发表于 2009-05-05 最后回复 2010-12-28

PCB板上的strap pin 是什么意思?做什么用的?

发表于 2010-08-21 最后回复 2010-11-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除