自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (2)
  • 收藏
  • 关注

原创 root 用户下二进制rpm包制作

将/usr/lib/rpm/macros中的如下行注释。将编译好的二进制文件拷贝到BUILD目录下。在SPECS目录以下用例模板。打包文件在RPMS目录下。

2023-08-28 19:51:30 192

原创 x11多屏获取屏幕的信息

两种API都能获取屏幕的信息,屏幕的索引号是根据xrandr的指令创建顺序一样。以下给出了相关的屏幕信息的数据结构。

2023-08-24 13:47:27 206

原创 gstreamer latency plotter

【代码】gstreamer latency plotter。

2023-06-08 16:11:20 90

原创 GstOverlay 绑定多个gtk 窗口

在spice stream 模式下,为了实现流畅的显示,利用gstvideooverlay 接口实现了gstreamer pipeline 的输出直接绑定到gtk 的窗口下。然而spice客户端采用的是playbin 插件当前只能绑定一个窗口,当需要采用多窗口模式时,当前的流程机制使用不了,需要进一步探索其他插件来实现overlay 多窗口。本文给出了多屏绑定的本地测试demo。

2023-05-19 17:50:25 757

原创 编译错误解决方案

1. zlib1g-dev : 依赖: zlib1g (= 1:1.2.11.dfsg-2kylin1) 但是 1:1.2.11.dfsg-2kylin1k1 正要被安装。

2023-05-05 16:04:21 102

原创 spice audio 配置

spice audio 处理

2023-04-24 15:09:31 86

原创 spice stream多屏技术方案

spice 多屏推流技术

2023-04-21 17:33:41 785 4

原创 Yolov5_lite pytorch量化

yolov5_lite pytorch 版本的静态量化

2022-12-05 14:01:19 1459 3

原创 回文字符串

这里记录一下回文数的一个快速的判断方法采用了一种增加#字符的方式,使得最终算法可以通过O(n)来实现class Solution {public: int minCut(string s) { int index = 0; int mr = 0; string exS = "#" for (int i = 0; i < s.length(); i++) { ex

2021-03-12 08:24:45 83

原创 letecode 编程学习(36)

题目当 A的子数组A[i], A[i+1], ..., A[j]满足下列条件时,我们称其为湍流子数组:若i <= k < j,当 k为奇数时,A[k] > A[k+1],且当 k 为偶数时,A[k] < A[k+1];或 若i <= k < j,当 k 为偶数时,A[k] > A[k+1],且当 k为奇数时,A[k] < A[k+1]。也就是说,如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是湍流子数组。返回 A...

2021-02-08 13:31:02 158

原创 letecode 编程学习(35)

题目:给你一个长度为n的整数数组,请你判断在 最多 改变1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的:对于数组中所有的i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。示例 1:输入: nums = [4,2,3]输出: true解释: 你可以通过把第一个4变成1来使得它成为一个非递减数列。示例 2:输入: nums = [4,2,1]输出: false解释: 你不能在...

2021-02-07 11:28:49 70

原创 滑动窗口算法

滑动窗口在letecode编程中经常会碰到一类寻找最长序列的问题,这个时候都可以采用滑动窗口的算法滑动窗口就是控制一个双指针left, right, 没有达到极限条件的时候right指针,操作临界条件就让left指针,然后更新这个最长序列。比如下面的的问题:问题一:给你两个长度相同的字符串,s 和 t。将 s中的第i个字符变到t中的第 i 个字符需要|s[i] - t[i]|的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。用于变更字符串的最...

2021-02-05 11:08:03 141

原创 letecode 编程学习(34)

题目你准备参加一场远足活动。给你一个二维rows x columns的地图heights,其中heights[row][col]表示格子(row, col)的高度。一开始你在最左上角的格子(0, 0),且你希望去最右下角的格子(rows-1, columns-1)(注意下标从 0 开始编号)。你每次可以往 上,下,左,右四个方向之一移动,你想要找到耗费 体力 最小的一条路径。一条路径耗费的 体力值是路径上相邻格子之间 高度差绝对值的 最大值决定的。请你返回从左上角...

2021-02-01 18:44:30 83

原创 双目立体视觉SGBM

算法原理bm的局部的代价聚合算法,受到噪声影响比较大,所以bm算法的速度虽然比较快,但是效果比较差,而sgbm是一个半全局的代价聚合算法,计算代价的时候考虑周围领域的代价值,但不是一次性及算法整个图像上的代价最小值(这样全局的算法效率比较低),而是利用动态规划的算法,从局部利用贪心的思想计算全局。能量代价函数如下:总共包含三项: 第一项就是局部的代价SAD聚合值 第二项表示的是视差小于1的惩罚项 第三项表示的是视差大于1的惩罚项 这样第二项的惩罚项可

2021-01-31 10:33:20 458

原创 双目立体视觉BM算法

BM算法是一种比较早的局部密集匹配的算法,虽然在效果上比SGBM、ADCensus等半全局算法要差,但是它是密集匹配的基础算法,理解了它,再去理解其他算法就比较容易。算法流程左右照片通过标定好的相机参数进行极线矫正,这样对应点的搜索只需要在x方向。 分别对矫正好的图片进行滤波前处理,一般可以采用sobel滤波。 代价计算 代价聚合 视差计算 精细化后处理下面就分别就几个,结合代码进行讲解。极线矫正这里主要介绍Bougues矫正方法分为以下两步相平面旋转,保证左右两个相平面

2021-01-22 15:30:15 2256 2

原创 letecode 编程学习(33)

题目给定一个列表 accounts,每个元素 accounts[i]是一个字符串列表,其中第一个元素 accounts[i][0]是名称 (name),其余元素是 emails 表示该账户的邮箱地址。现在,我们想合并这些账户。如果两个账户都有一些共同的邮箱地址,则两个账户必定属于同一个人。请注意,即使两个账户具有相同的名称,它们也可能属于不同的人,因为人们可能具有相同的名称。一个人最初可以拥有任意数量的账户,但其所有账户都具有相同的名称。合并账户后,按以下格式返回账户:每个账户的第一个元素...

2021-01-18 23:04:16 156

原创 letecode 编程学习(32)

题目老师想给孩子们分发糖果,有 N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例1:输入:[1,0,2]输出:5解释:你可以分别给这三个孩子分发 2、1、2 颗糖果。示例2:输入:[1,2,2]输出:4解释:你可以分别给这三个孩子分发 1、2、1 颗糖果。 ...

2021-01-15 13:07:31 76

原创 并查集

并查集的概念并查集是通过将具有连接关系的元素合并成为一个组,这个组里面所有的元素有公共的祖先。这样最终只会形成一个个小组的形式。这样对于很多分组问题都能得到很好的解决。基本操作init初始化用来初始化fa数组,以及子数组的深度rank数组,初始化的时候会有n个组,每个组的根节点是本身,同时组内连接数深度都为1。vector<int> fa;vector<int> rank;void init(int n){ for (int i = 0;

2021-01-14 11:45:48 53

原创 Linux fork

fork一个运行的进程通过调用fork函数就会产生子进程,原来的进程称为父进程,现在这个进程称为子进子进程在创建的时候会拷贝原来父进程的代码段,数据段。操作系统通过pid进行区这里需要注父进程在fork后继续执而子进程由于拷贝了父进程的PCB模块,程序指针已经不是指向main的开始位置,而是从fork后面开始执行由于数据段也会拷贝,所以两者的数据段中的初始值都是一样的,也就是读共享了,但是其实两者在不同的地址空间中,所以后续的写入互不相干在程序中通过for...

2021-01-06 13:40:00 49

原创 letecode 编程学习 (31)

题目在一个由小写字母构成的字符串 s 中,包含由一些连续的相同字符所构成的分组。例如,在字符串 s = "abbxxxxzyy"中,就含有 "a", "bb", "xxxx", "z" 和 "yy" 这样的一些分组。分组可以用区间 [start, end] 表示,其中 start 和 end 分别表示该分组的起始和终止位置的下标。上例中的 "xxxx" 分组用区间表示为 [3,6] 。我们称所有包含大于或等于三个连续字符的分组为 较大分组 。找到每一个 较大分组 的区间,按起始位置下标.

2021-01-05 10:50:40 73

原创 Faster rcnn

第一阶段rpn训练的正负样本数据正样本:每一个gt box选择一个IOU最高的anchor 选择IOU大于0.7的也作为正样本负样本:选择IOU小于0.3,其余可以忽略。实际中负样本肯定远远超过正样本的数量,这个时候选择训练数量为256个正样本控制在128个以内,正负样本总数量控制在256个。(比例大概控制在1:1)第二阶段classifier阶段训练的正负样本数据正样本gt和roi的iou大于0.5 的为正负样本gt和roi的iou小于0.5的为负样本...

2020-12-23 13:29:48 104

原创 letecode 编程学习(30)

题目103. 二叉树的锯齿形层序遍历难度中等328给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层序遍历如下:[ [3], [20,9], [15,7]]解题思路采用二叉树的层次遍历,但是奇数层先左节点再右节点,偶数层先右节点.

2020-12-22 11:19:43 79

原创 深度学习loss

深度学习loss大体上分成两类分类loss和回归loss。回归loss:平均绝对误差L1loss,平均平方误差L2loss, smooth L1 loss 分类loss : 0-1损失, logistic loss, hinge loss 铰链损失, exponential loss(指数损失), KL散度。回归lossL1 loss在loss为0处不可导,求解效率比较低 梯度比较稳定,在损失很小的时候梯度也是稳定的不利于收敛 由于没有平方对于异常不敏感。L2 loss...

2020-12-21 19:54:43 1470

原创 OCR识别

freetype 可以用来生成不同的字体的图片

2020-12-21 16:41:52 46

原创 正则化

正则化的目的减少泛化误差而不是训练误差,另外一种解释就是降低模型的复杂度。常见的正则化的手段有:参数惩罚、dropout 、噪声注入、提前终止。参数惩罚L2正则L2正则也被称为权重衰减,通过在目标函数添加L2范数平方项,使得权重更接近原点。L2正则形式为:(这里不考虑偏执项)与之对应的梯度为:则权重更新就变成了没有加入L2正则项的权重更新方式对比从直观上比较发现,每次梯度更新前,权重都有一个收缩。这种单步权重对于网络训练的影响可以参考下面.

2020-12-21 15:01:46 116

原创 letecode编程学习(29)

题目数组的每个索引作为一个阶梯,第i个阶梯对应着一个非负数的体力花费值cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从cost[1]开始,然后走两步即可到阶梯顶,一共花费15。示例 2:输入: cost = [1, 1...

2020-12-21 09:48:53 74

原创 letecode编程学习(28)

题目给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。示例 1:输入:s = "bcabc"输出:"abc"示例 2:输入:s = "cbacdcbc"输出:"acdb"提示:1 <= s.length <= 104s 由小写英文字母组成解题分析采用贪心加栈的方式,要最小就是要求最小的字母在尽量前面,具体是通过比较栈顶元素和当前元素比较,如果栈顶元素小于当前元素,.

2020-12-20 22:44:40 58

原创 深度学习激活函数

目前常用的激活函数有sigmoid tanh以及relu系列。参考https://blog.csdn.net/qq_30815237/article/details/86700680swish激活函数函数表达式:mish激活函数函数曲线:优点在出现负值的时候并不是完全截断,而是允许比较小的梯度流入,从而保证信息流动。 激活函数在输入比较大的时候没有边界,避免了饱和问题。 每一点都比较平滑,使得梯度下降比relu要好。...

2020-12-19 18:38:30 76 2

原创 letecode 编程学习(27)

题目(旋转图像)给定一个n×n的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 matrix =[ [ 5, 1, 9,11], ...

2020-12-19 12:48:24 66 1

原创 深度学习优化器

目前常用的优化器

2020-12-17 10:25:05 88

原创 letecode 编程学习(26)

题目给定一个整数数组prices,其中第i个元素代表了第i天的股票价格 ;非负整数fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。示例 1:输入: prices = [1, 3, 2, 8, 4, 9], fee = 2输出: 8解释: 能够达到的最大利润: ...

2020-12-17 10:23:27 59

原创 letecode编程学习(25)

题目给定一种规律 pattern和一个字符串str,判断 str 是否遵循相同的规律。这里的遵循指完全匹配,例如,pattern里的每个字母和字符串str中的每个非空单词之间存在着双向连接的对应规律。示例1:输入: pattern = "abba", str = "dog cat cat dog"输出: true示例 2:输入:pattern = "abba", str = "dog cat cat fish"输出: false示例 3:输入: patter...

2020-12-16 10:50:54 80

原创 letecode 编程学习(24)

题目给定一个非负整数N,找出小于或等于N的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。(当且仅当每个相邻位数上的数字x和y满足x <= y时,我们称这个整数是单调递增的。)示例 1:输入: N = 10输出: 9示例 2:输入: N = 1234输出: 1234示例 3:输入: N = 332输出: 299解题思路采用贪心的算法, 对于数组data找到索引index满足data[index] > data[index+...

2020-12-15 10:02:10 61

原创 letecode 编程学习(23)

题目给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]题目分析对每一个字符串排序。然后采用hash。 对每一个字符串对应一个长度为26的数组,数组的值为相应字符的数量。代码基于hashclass Solution {pu...

2020-12-14 18:34:57 243

原创 letecode 编程学习(22)

题目有一个二维矩阵A 其中每个元素的值为0或1。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数。示例:输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]]输出:39解释:转换为 [[1,1,1,1],[1,0,0,1],[1,1,1,1]]0b1111 + 0b1001 + 0b...

2020-12-07 09:12:39 117

原创 letecode 编程学习(21)

题目给定长度分别为m和n的两个数组,其元素由0-9构成,表示两个自然数各位上的数字。现在从这两个数组中选出 k (k <= m + n)个数字拼接成一个新的数,要求从同一个数组中取出的数字保持其在原数组中的相对顺序。求满足该条件的最大数。结果返回一个表示该最大数的长度为k的数组。说明: 请尽可能地优化你算法的时间和空间复杂度。示例1:输入:nums1 = [3, 4, 6, 5]nums2 = [9, 1, 2, 5, 8, 3]k = 5输出:[9,...

2020-12-03 22:22:18 75

原创 单例模式下中map成员变量析构问题

问题在一个全局的单例模式下有一个包含有gpucontext的map,由于全局变量是应用程序退出时才进行析构退出,而里面包含有gpu context时可能由于析构的不确定性导致gpu报错。一般需要在main函数退出之前进行一个release释放map中的gpucontext 保证 gpu context比这个单例模式先析构。class SingleMode{public: static SingleMode& getInstance();private: Si

2020-12-02 09:35:38 326

原创 letecode 编程学习(20)

题目给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回[-1, -1]。进阶:你可以设计并实现时间复杂度为O(log n)的算法解决此问题吗?示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例2:输入:nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]示例 3:输入...

2020-12-02 09:07:28 268

原创 letecode 编程学习(19)

题目给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。若可行,输出任意可行的结果。若不可行,返回空字符串。示例1:输入: S = "aab"输出: "aba"示例 2:输入: S = "aaab"输出: ""注意:S 只包含小写字母并且长度在[1, 500]区间内。解题思路为了保证左右不会出现相同,就先将原有的字符串的字符进行次数统计,然后将统计map中的字符间隔的放入到输出字符串中即可。代码class Solution {publi.

2020-12-01 12:58:42 106

原创 letecode 编程学习(18)

题目给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例1:输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。示例2:输入: [10]输出: 0解释: 数组元素个数小于 2,因此返回 0。说明:你可以假设数组中所有元素都是非负整数,且数值在 32 位有符号整数范围内。请尝试在线性时间复杂度和空间复杂度的条件下解决此问..

2020-11-26 11:11:57 68

opencv摄像机标定

用opencv实现摄像机的标定,主要是利用C++版本的opencv API实现

2014-06-06

Canny图像处理

对一幅图片进行Canny边缘检测,分别用opencv 函数和自己用c实现

2014-03-24

空空如也

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

TA关注的人

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