- 博客(47)
- 资源 (3)
- 收藏
- 关注
原创 Linux&Tina动态调压调频配置与实现
动态调压调频功能配置菜单:修改后,对应的.config DEFAULT 策略发生变化:默认原来的策略是:或者直接串口写入 echo performance >/sys/devices/system/cpu/cpufreq/policy0/scaling_governor动态修改。最大最小频率和lscpu的输出是match的。
2021-09-28 13:23:33 1344
原创 一个神经网络的梯度反向传播的计算过程
当代领域内专家普遍认为,如果神经网络脉络可以做到模拟人脑的全部结构,轴突,树突,皮层结构等等,建立在数学上的强人工智能就会自动出现,可是真的是这样么?把DNA 拆到元素,拆到分子层面上,科学家看的头头是道,我们的基因组分析甚至都可以做到复制生命,乃至白垩纪时期的恐龙都可以在这个技术层面下复活。
2021-09-27 22:52:10 1333
原创 softmax与交叉墒层的实现原理以及梯度计算
softmax,看名字就知道,就是如果判断输入属于某个雷的概率大于属于其它类的概率,那么这个类对应的值就逼近于1,其它类的值就逼近于0,该算法的主要应用就是多分类,而且是互斥的,即只能属于其中一个类,和sigmoid类的激活函数不同的是,一般的激活函数只能分两类,所以可以理解成softmax是sigmoid类的激活函数的扩展。它的算法如下:也就是把所有的值用e的指数函数表示出来,求和后算每个值占的比率,保证总和为1,一般就可以认为softmax得出的就是概率.抽象层面的原理如下所示:在网
2021-09-21 12:49:37 544
原创 基于Melis4.0的爱键智能视频门铃体验
近年来,家庭视频监控产品已经成为智能家居领域炙手可热的突破口,智能摄像头不仅让用户可以随时知道并查看家里的异常情况,还极大的丰富了人们的视觉交互。门铃是一件大家每天都要使用熟悉到不能再熟悉的产品了,也正是因为我们对它太过于熟悉了,所以往往才忽略了它的存在。而IOT为门铃引入了新的功能元素,门铃武装上摄像头,并经过线上化之后,变得生动活泼起来,好像成为了一款更像是具有独立生命体的个体。这篇文章试图对爱健的一款智能视频门铃的使用进行详细拆解,介绍其安装,使用的方法。值得一提的是爱键的这款摄像头使用了全志
2021-09-18 19:25:37 981
原创 如何统计V4L2吐帧的帧率?
项目中遇到一个问题,需要得到V4L2 Sensor前端吐帧的帧率,有同学说直接看sensor配置参数不久可以了吗?可是作为一个严谨的工程师怎么可以做这么不靠谱的事情呢?耳听为虚,眼见为实,只有看到实实在在的统计信息,才能相信数据是正确的。那么该怎么做到呢? V4L2框架的架构如下图所示,从图中我们可以看到,视频设备在抓取到视频图像后,会调用vb2_buffer_done回调函数将帧上报给v4l2 核心层函数,其中vb2_buffer_done是核心层实现的回调函数。如果在这里实现信息统计,无疑得
2021-09-18 15:36:35 1792
原创 V833/V831目标检测demo方案开发
项目需要在V833平台上开发一个人形检测的功能用例, 大概框架如下:一路sensor图像经过四路VIPP缩放操作后,送给四个不同应用,分别是H265编码存盘,LCD预览以及以及NPU人形检测,还有一路照片抓拍。NPU人形检测原理如下:NPU线程抓取352*198(VIPP支持的输出大小)像素,格式为NV21的YUV原始帧数据,喂给人形检测算法网络,得到类别和坐标数据后,反馈给VIPP1 预览通道画框。这样的设计方案包含一个问题,NPU这边获得帧并进行网络推理得到坐标结果并反馈给VI.
2021-09-16 15:38:00 3182 1
原创 利用FFMPEG对H264码流进行分析
H264码流文件格式如下图所示:通过MediaInfo工具,可以得到如下的分析结果:我们使用FFMPEG对码流进行分析,首先按照这篇博客介绍的步骤从源码编译安装FFMPEG:ubuntu18.04编译FFMPEG_tugouxp的专栏-CSDN博客然后看一下媒体信息:这里产生了一个疑问,我们的媒体文件除了头部的SPS,PPS信息之外,其余的都是NALU单元,NALU单元是纯粹编码的图像数据,那么,解析到的图像分辨率信息,像素格式信息,Profile信息等从那里来的呢?..
2021-09-15 22:38:25 1383
原创 利用ftrace进行内核性能分析
等等,你也可以在网络上找到关于这些工具的大量介绍文章和资料。而对于使用 Linux 原生机制去跟踪系统事件以及检索/分析故障信息的方面的资料却很少找的到。这就是,它是添加到内核中的第一款跟踪工具,今天我们来看一下它都能做什么.ftrace 是 Function Trace 的简写,但它能做的远不止这些:它可以跟踪上下文切换、测量进程阻塞时间、计算高优先级任务的活动时间等等。ftrace 是由 Steven Rostedt 开发的,从 2008 年发布的内核 2.6.27 中开始就内置了。
2021-09-08 20:20:58 918 1
原创 计算图中反向传播求导权重矩阵需要转置的说明
在计算图中,基于链式法则的计算图反向求导是模型训练的关键算法,下面用图例说明为什么反向传播的时候,权重矩阵需要转置结束!
2021-09-08 09:09:07 1427 1
原创 Linux Perf性能分析常用手段(火焰图,gprof,kernelshark,bts)
perf record 采集数据,还可以在采集时记录堆栈,然后在后期分析时根据堆栈进行聚合。perf report 分析数据给用户展示perf script 对数据进行脚本化处理、加工/分析。perf annotate 用来展示原始明细,可以看到指令、及其采用数、比例等,可以寻找热点。
2021-09-07 19:41:04 3132
原创 相机内参和相机外参和标定
在单目视觉系统中,最重要的参数之一是相机的内参坐标,它反映了环境信息到图像信息之间的映射关系,一个精确的内参系数是通过单目相机对观景进行观测和测量的首要保证,相机内参系统与相机感光片位置,镜头位置等有关系,虽然在制作相机时可以生产指定标准的元器件并按照指定的尺寸装配摄像头,通过这些标准可以计算出摄像头的内参,但不幸的是,由于工艺水平有限,元器件尺寸与标准值存在误差,同时装配位置也会与期望值存在偏差,使得真是的内参系数与理论值具有一定的偏差。......
2021-09-05 16:20:42 3248
原创 用最近邻插值(Nearest Neighbor interpolation)进行图片缩放
图片缩放的两种常见算法: 最近邻域内插法(Nearest Neighbor interpolation) 双向性内插法(bilinear interpolation)本文主要讲述最近邻插值(Nearest Neighbor interpolation算法的原理以及python实现基本原理最简单的图像缩放算法就是最近邻插值。顾名思义,就是将目标图像各点的像素值设为源图像中与其最近的点。算法优点在与简单、速度快。如下图所示,一个4*4的图片缩放为8*8的图片。步骤: ......
2021-09-05 09:16:34 3918 2
原创 利用GitStats统计Git仓库信息并可视化
对于Git开发,有一些可视化的工具,如gitk,giggle等,来查看项目的开发历史。但对于大型的项目,这些简单的可视化工具远远不足以了解项目完整的开发历史,一些定量的统计数据(如每日提交量,行数等)更能反映项目的开发进程和活跃性。GitStats就是这样的工具,它能生成以下统计数据,并以图表形式进行对比常规的统计:文件总数,行数,提交量,作者数。 活跃性:每天中每小时的、每周中每天的、每周中每小时的、每年中每月的、每年的提交量。 作者数:列举所有的作者(提交数,第一次提交日期,最近一次的提交日期)
2021-09-04 18:50:37 956
原创 如何确定经过层层扒皮(求导)之后,一个函数的是否丧失可导性?
越是高阶可导函数曲线越是光滑,可导都光滑,这是对可导的感性认知,有些函数,无论你对它求导多少次,它永远都是可导的,比如它的函数图象是:还有些函数,它不是无穷次可导的,而是经过有限次求导之后,变为了常数,比如幂函数经过有限次球导函数之后,函数变成了直线,再求导的话就变成了0。还有另外一些函数,经过经过有限次球导函数之后,变成了带有尖峰或者间断点的函数,这个时候就不简单了,它变成了不可导函数,比如下面这个:经过多次求导之后,变成了绝对值函数它在原点处存在尖峰,是.
2021-09-30 17:00:10 619
原创 基于keras的fashion_mnist模型训练过程
1.下载fashion_mnist数据使用以下三行代码下载fashion mnist数据from tensorflow import kerasfashion_mnist = keras.datasets.fashion_mnist(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()查看数据信息:构建网络:import tensorflow as tffr
2021-09-25 21:35:25 1420 1
原创 使用keras做线性回归训练记录
我们建立一个如下的模型:数学表达师式是在这里,我们给定并且给定一组按照此规律分布的数据,用这组数据进行训练,看出来的网络能否作出准确预测。数据输入: [[-1.0,2.0],[0.0,1.0],[2.0,3.0],[4.0,0.9]]数据输出:[15.0,9.0,29.0,16.2]那么当数据是两组的[4.0,11.0],[5.9,6.7]时候,输出是什么呢?训练模型:from tensorflow import kerasimport numpy as n.
2021-09-25 17:32:29 258
原创 anaconda下keras&tensorflow @ubuntu18.04开发环境安装
前面尝试在windows10上安装keras&tensorflow开发环境,总体上感觉还是比较麻烦的,今天抽时间在ubuntu18.04上安装了一把,很快就搞定了回归训练的模型,发现anaconda对Linux环境是比较友好的,以后可以在Linux下干活了。现在简要介绍一下搭建环境并执行回归训练用例的过程下载anaconda我选择的版本是https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.shhttps:/
2021-09-24 23:43:13 547
原创 Sunxi Framebuffer框架
Framebuffer的总体架构如下图所示:在V833 Tina SDK上,framebuffer的实现基于Display Engine的channel 2 的第 0 个图层.在framebuffer架构的实现中,struct fb_info *info中的成员info->screen_base起者至关重要的作用,它即是framebuffer,也是DE中对应的图层,所对应的真实的内核虚拟地址,显示的最终目的,就是将这片的buffer在DE中生效.info->screen_
2021-09-22 19:16:10 1106 3
原创 关于卷积和卷积核的作用一例
代码:import matplotlib.pyplot as pltimport pylabimport cv2import numpy as npimg = plt.imread("jpeg.jpeg") #在这里读取图片plt.imshow(img) #显示读取的图片pylab.show()fil_0 = np.array([[ -1,-1, 0],
2021-09-21 18:54:59 354
原创 keras使用以及网络模型一例
import numpy as npimport kerasfrom keras.models import Sequentialfrom keras.layers import Dense, Dropout# Generate dummy datax_train = np.random.random((1000, 20))y_train = np.random.randint(2, size=(1000, 1))x_test = np.random.random((100, 20))y.
2021-09-21 17:56:07 4801
原创 基于Tensorflow keras的线性回归模型实现
首先参考这篇文章安装开发环境:Win10上安装anaconda深度学习开发环境吐槽一句,python语言以及基于python语言之上构建的深度学习开发环境虽然极大方便了学习和开发,但是处理包管理,以及包之间的依赖关系一团乱麻,简直让人崩溃,比如python的版本不同,算法包以及运行时环境包的版本就需要选择指定版本,而且这种包和python版本之间的依赖关系已经敏感到让人发指的地步,即使是python的小版本变化也会导致之前可用的包无法运行。更加雪上加霜的是,tensorflow,keras的版本管理
2021-09-21 17:50:12 490
原创 ONNX模型解析推理工具onnx-parser使用记录
onnx-parser是国内开发者开发的一个ONNX网络模型解析以及推理工具,当前已经被纳入了RT-Thread的开发包,由于RT-Thread的ENV环境支持,下面分析记录一下它的使用和原理分析。首先下载代码:git clone https://github.com/wuhanstudio/onnx-parser下载Scons工具Scons是一个开放源码、以Python语言编码的自动化构建工具。可以将SCons看作是经典Make实用程序的改进的、跨平台的替代品.修改编译错误:
2021-09-21 09:52:49 2208
原创 Tensorflow 模型的保存和载入
Minst训练模型源码:import tensorflow as tf #导入tensorflow库from tensorflow.examples.tutorials.mnist import input_datafrom tensorflow.python.framework import graph_util import pylab mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)tf.reset_de
2021-09-20 21:48:50 919
原创 Win10上安装anaconda深度学习开发环境
1.下载anaconda点开下面的链接,下载版本Anaconda3-4.1.1-Windows-x86_64.exehttps://repo.anaconda.com/archive/2.安装anaconda一路点击安装 3.安装tensorflow两种方式安装TF,第一种是通过命令来安装,在anaconda prompt下PIP安装:下载非常的慢,一个变通的方式是, 我们看到通过PIP安装时会将包文件资源的整个路径显示出来,我们可以直接拷贝..
2021-09-19 20:59:52 810
原创 ROS@Ubuntu16.04体验记录
安装下载源:$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'$ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654$
2021-09-19 15:41:27 1048
原创 神经网络入门之感知机
感知机是神经网络(深度學習)的起源算法,因此,學習感知機的构造也就是学习通向神经网络和深度学习的一种重要思想。这里介绍一下学习感知机的心得,并用感知机解决一些简单问题,感知机接收多个多个输入信号,输出一个信号。这里所说的信号可以想象成电流或者河流那样具备流动性的东西,像电流流过导线,向前方输送电子一样,感知机的信号也会形成流,向前方输送信息。但是,和实际的电流不同的是,感知机的信号只有流和不流两种取值,可以分别用0,1表示。下图是一个接收两个输入信号的感知机的例子,x1,x2是输入信号,y是输出信号
2021-09-19 11:54:21 853
原创 基于Ubuntu下Qt creator的littleVGL开发环境搭建
1.安装QT Creatorsudo apt-get install qt5-default qtcreator安装完毕后就可以看到QTCReator了2. 安装SDL2sudo apt install libsdl2-dev libsdl2-ttf-dev3.配置QTCreator打开后的界面是下面这个样子:然后我们打开Tools->Options:然后我们找到构建和运行->编译器->Add->GCC->C++,添...
2021-09-16 23:50:07 454
原创 利用ffmpeg对视频文件进行分析几例
将视频文件转换为jpg图片文件序列:ffmpeg -i /home/czl/WorkSpace/ffmpeg/H264_REC.raw -r 1 -q:v 2 -f image2 pic-%03d.jpeg-q:v 2表示输出的图片质量,一般是1到5之间(1 为质量最高)-r:图片采样率,帧率,表示每秒钟产生多少张.jpeg图片da'fdafczl@czl-VirtualBox:~/WorkSpace/ffmpeg/r1$ ffmpeg -i /home/czl/WorkSpace/ff
2021-09-14 10:16:22 2077 1
原创 H264 编码RawBitstream 格式分析以及SPS&PPS数据分析
基于MPP框架开发了demo展示应用,方案数据流如下图所示,简单说明一下.1.支持一路sensor输入,四路输出.2.第一路VIPP0输出YUV大小为1920*1080. 编码为H264main profile大小的压缩BitStream存盘。3.第二路预览,源分辨率1920*1080,目标分辨率640*480,中间经过一次VIPP1的 scale down.4.第三路提供供NPU做人形识别的图像,源分辨率1920*1080,目标分辨率352*198.5.第四路用于抓怕jpg格式的照片。
2021-09-13 19:35:44 751
原创 H.264编码中,Profile和Level的含义
好雪片片,不落别处H.264有四种画质级别,分别是baseline, extended, main, high: 1、Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC; 2、Extended profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;(用的少) 3、Main profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交错(Inter...
2021-09-13 12:23:38 8011 3
原创 有趣的几何对偶现象
很有意思的一个现象,透露着关于对偶性本质的东西:对于直线如果自变量和系数换一下顺序,也就是直线上一点A(m,n),当A点在直线上运动的时候,直线应该是什么样子的?一句话总结:点动成线,线动成点!结束!...
2021-09-12 20:30:58 355
原创 OpenCV霍夫变换进行形状检测
程序:# -*-coding:utf-8 -*- import cv2 as cv2import numpy as np # 标准霍夫变换img = cv2.imread('new.png')# img = cv2.imread('new1.png')# img = cv2.imread('new2.png')house = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 获取灰度图edges = cv2.Canny(house, 50, 200)
2021-09-12 14:50:01 5912
原创 使用OpenCV识别二维码
程序:# -*-coding:utf-8 -*- import cv2 as cvimport numpy as np # 加载图片src_image = cv.imread("./webwxgetmsgimg.jpeg")# 实例化qrcoder = cv.QRCodeDetector()# qr检测并解码codeinfo, points, straight_qrcode = qrcoder.detectAndDecode(src_image)# 绘制qr的检测结果cv.dr
2021-09-12 11:40:27 15850 3
原创 为什么用卷积层而不用全连接层
全连接神经网络中使用了全连接层,在全连接层中,相邻层的神经元全部连接在一起,输出的数量可以任意指定.全连接层存在什么问题呢?那就是数据的形状被忽视了,比如,输入数据是图像是,图像通常是长,宽,通道方向上的高三维形状,但是,在向全连接层输入时,需要将三维数据拉平为1维数据,比如下面的的网络:输入图像是1通道,长,宽均为28像素的形状,但是却被排列成了1列,784个数据的形式输入到最开始的网络层.图像是三维形状,这个形状中应该含有重要的空间信息,比如,空间上临近的像素为相似的值,RGB的各个通.
2021-09-09 09:31:27 1576
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人