- 博客(54)
- 资源 (16)
- 收藏
- 关注
原创 透视和仿射变换的区别
总的来说,仿射变换保持了更多的几何性质,适用于描述相对简单的几何变换,如平移、旋转、缩放和错切。而透视变换则更加灵活,能够描述更复杂的几何变换,如。上面的式子表示2D点乘以一个矩阵后加上平移(b1,b2)。仿射变换矩阵通常是2x3的矩阵。透视变换是3x3的矩阵。
2024-03-07 17:21:28
441
原创 立体匹配算法(Stereo correspondence)
如果想完全了解原理还是建议看原论文(我就不看了,懒癌犯了。先介绍两个重要的参数:注:这一部分参考的是matlab的解释,后面的部分是参考的opencv的实现,细节可能有些出入,大体上是一致的。and。
2023-12-27 18:08:32
1772
原创 ChArUco标定
ids:maker的id,数值从0到N,N是makers的总数。corners:检测到的maker角点的向量,每个maker角点用4个角点表示,4个角点顺序按照顺时针排列。ArUco的目的是用于相机的姿态估计,也就是给定一个ArUco板子,作为参照物,来估计相机的运动。版本不高,我的opencv4.8.1比他高,改了几个python 的 api的名字。公式怎么来的不晓得,暂时不去管它,写论文的时候才需要去看,做工程用就完了。貌似最少得6个格子。u,v是图像像素平面坐标,Z是物体上面的点到相机光心的距离。
2023-12-26 13:54:04
3815
原创 ubuntu环境嵌套问题
当你发觉python和python3用which xxx命令时指向不对时,就一直conda deactivate 退出虚拟环境,再conda activate {你的虚拟环境名字},这样大概率是不会发生指向错误的了。其实win系统的conda也有环境嵌套的问题,只不过不太影响,在虚拟环境里面用的就是虚拟环境的python。我的这个Ubuntu系统,当没有进入虚拟环境时,python指向的是我的conda的base环境的python,而pyhton3指向的是系统的python3。
2023-12-26 11:01:24
512
原创 pip vs conda
conda 管的比pip宽一些,conda命令不仅可以管理环境和安装python的包,还可以安装c c++ java的包,还可以安装pip,而pip就是专门安装python包的命令,搞ai的时候一般情况都是用conda建立虚拟环境,再用pip安装第三方库。
2023-12-26 10:56:32
573
原创 图像超分问题
大概就是这样一个效果。不过很蛋疼的一件是是,超分的模型太吉尔大了,我这是剪裁后的图片可以超分出来,再大一点就不行了,真的操蛋。为什么要进行超分,是因为棋盘格角点检测的不好,当对图片进行超分之后,棋盘格其实是变大了,因为像素变多了。一个lua写的图像超分代码,作者给的示例是二次元图像,不知道适不适合普通的图像。上面的是在麑蚂太大了,占显存,找了个小的。不如好好拍两张清晰的、大一点的照片。为了标定相机用超分,杀鸡用了牛刀。检测的效果就是这样。
2023-12-21 17:45:41
512
原创 mrcal相机标定库
这里就很难受了,为啥调用的是.local/lib/python3.10/site-packages/里面的库,我的虚拟虚拟环境明明在 ~/anaconda3/envs/ChessBoardCornersDetection/。好像是因为命令行直接调用的就是系统的库,不是虚拟环境的库,因为我的mrcal是用的apt install搞的,要是想用虚拟环境做,应该自己用make去构建mrcal的库。有的图opencv识别不到,matlab识别的不错,有的图matlab识别的很差,opencv可以很不错。
2023-12-21 09:39:38
1038
原创 opencv的ChessboardCorner检测算法
那么opencv的findChessboardCorners用的什么算法?论文没看,想看了再说。
2023-12-19 11:16:08
828
原创 为什么上下文学习有用
具体来说,示例中的输入文本的分布和标签空间对上下文学习的性能提升起到关键作用,而真实的输入-标签映射的准确性影响较小。在上下文学习的过程中,包括了一些实际的演示例子,这些例子成为了提示的一部分。上下文学习与Prompt learning 类似,但是又不完全一样,预训练的大模型不需要进行微调,只需要根据提示,也就是上下文(in-context),就能够完成特定的任务。但是如果将学习新任务的定义更为宽泛,包括对特定输入和标签分布以及示例的格式的适应,以及更准确地进行预测,那么模型确实会从示例中学习到新任务。
2023-12-19 10:57:33
797
原创 opencv的findChessboardCorners 算法
一堆操作,还要判断干扰的矩形、正确的有邻居的矩阵、再对矩形排序。opencv的findChessboardCorners用的什么算法?
2023-12-15 13:56:53
434
原创 相机倾斜棋盘格标定全记录 vs200+opencv安装
然后怎么运行一个本地的文件夹页花了我一些时间,目前我是新建了一个项目,把文件夹复制过去,然后先点击显示所有文件,再右键你的文件夹,点击包含到项目。主要是添加依赖库的时候,怎么去添加路径比较麻烦,什么bin、lib、dll乱七八糟的都得添加进去。不过现在的问题是opencv读不到我的图片,很麻烦。
2023-12-14 14:03:01
700
原创 使用paddleocr识别图片文本的一种方案
步骤就是这样,先ocr识别文本和区域,后面根据区域进行版面恢复。版面恢复部分根据自己的需要,可以省略。PS:突然有个问题,我发现wps+python-word处理的应该也还行,段落什么的也都分的很好,表格也识别对了。之前是觉得wps对生僻字识别的不好,所以没用,而且wps要钱hh。不过工程上的方法就是很多,只有达到效果就行,科研就不行,都是精益求精的。
2023-12-12 12:01:36
2082
原创 对于版面识别的一个疑问
这样版型的图,确实是可以直接用merge_para进行排序,可是这种排序是比较简单的,如果版型是双栏的,那就必须用agument-xy-cut进行region的排序,在对每一个region进行内部的merge_para。多思考还是有好处的,不要一上来就问别人,当然实在不知道就必须问了,此中的度,需要自己把握。下一步就是对自然段进行划分,即res字段里面的text_region进行merge_para,不过这时我产生了一个疑问,既然有merge_para了,前面对bbox的排序有必要吗?
2023-12-11 18:28:07
495
原创 Python 字符串前缀
这些字符串前缀提供了不同的字符串处理方式,可以根据具体的需求选择适当的前缀来处理字符串。在Python中,字符串前面可以加上不同的前缀来表示不同的字符串类型或处理方式。这些字符串前缀可以组合使用。
2023-12-11 16:37:30
817
原创 screen 常用命令
重命名screen 123(不是id,id是不能改的)退出screen 123(不终止会话)退出screen 123(终止会话)进入screen 123。
2023-12-07 14:03:24
483
原创 服务器上paddleOCR的bug记录
问了同事发现他的窗口可以运行,我的不行,应该是修改了什么配置文件。这个是因为没有保存图貌似。额,这个是自己写的,不算bug应该。LD_LIBRARY_PATH是你的。不过后面还有一个小bug,
2023-12-07 11:59:32
651
原创 cuda驱动安装
libc6-dev : 依赖: libc6 (= 2.31-0ubuntu9.7) 但是 2.31-0ubuntu9.9 正要被安装。E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。修改sources.list文件。ok,我来安装libc。cuda驱动安装失败。
2023-12-07 10:38:12
2429
原创 一些思考和FFT代码
读文档的能力实在太重要了,我在浏览器搜啊搜、在gpt问啊问,最后还是不如官方文档好使,能够快速的看懂官方文档,并上手实践,与会写代码一样重要,工程上的工具其实已经很成熟了,各种框架、库。纯搞算法也行,那就是上游产业,像Nvidia的计算库、像C++、java、python、pytorch、tensorflow这样的编程语言和框架,那就很牛。算法,要是不是搞研究,是偏工程的话,那就和开发没什么区别,可能需要稍微看下原理什么的,不过不看也行,能根据使用文档,把任务完成就行了,至于其他的都不重要。
2023-12-07 00:12:21
368
原创 一个小问题
用paddle的paddleOCR的时候,需要修改部分代码,但是直接Python xx.py不能运行,需要用paddle自己的命令行方式运行,感觉很麻烦啊。另外工作上遇到像这样的小问题,应不应该去问同事呢,感觉这个问题比较简单但是对于新手很烦。待会还是问一下好了。
2023-12-06 12:19:01
608
1
原创 目标检测算法R-cnn系列
ROI Pooling解决的是候选区域大小不一致的问题,ROI Pooling之后,候选区域的大小一致,就可以进行并行的计算,加快速度。有大量的重复计算,非常耗时。
2023-12-01 13:57:48
395
原创 计算机视觉
主要内容:Swin Transformer 是在Vit的基础上进行的改进,针对Vit的全局自注意力计算复杂度过大的问题,提出了window的思想,使得自注意力的计算局限在window里面,从而减少复杂度。ROI Pooling解决的是候选区域大小不一致的问题,ROI Pooling之后,候选区域的大小一致,就可以进行并行的计算,加快速度。L1 loss(又称MAE),平均绝对误差:预测值和真实值之间的误差:sum(|y_pre - y_true|)/n ,用于回归问题。的一维向量,再进行线性映射,得到。
2023-12-01 13:55:43
1079
原创 第七章 函数矩阵
和矩阵函数不同的是,函数矩阵的重点在后面的矩阵,是以函数作为矩阵的元素。矩阵函数就是以矩阵作为函数的自变量x。函数矩阵和数字矩阵的运算法则完全相同。不过矩阵的元素aijx需要是闭区间ab上的实函数。
2023-12-01 11:32:43
2041
1
原创 dp小题目
因此正确的算法应该注意硬币的顺序,比如数值小的硬币要在数值大的硬币前面。只需要两层循环,外面的循环从小到大遍历硬币,里面的循环遍历总钱数。答案当然是不对的,问题在哪呢?乍一看好像dp[j] = dp[j-2]+dp[j-3]没毛病。但是这里忽略了一个问题,就是硬币的组合不含顺序。比如以 7 元为例子,应该有 2 2 3这一种组合,但是我上面的代码计算的其实是 2 2 3,2 3 2, 3 2 2三种组合。今天面试问了个题目,有2元和3元的硬币无数个,组合成99元有多少种方式?
2023-11-30 13:54:01
377
原创 各种优化器
AdaGrad:参考全部历史梯度,使学习率自适应的下降。缺点:学习率很快变成0。2、学习率调整为更新量的平方的加权平均。AdamW:加上了weight decay。每个指数加权平均后的梯度含有之前梯度的信息。ps:网上有人说和二阶信息有关,没太明白。Nadam:加上了Nesterov。Adadelta:设置窗口W,1、Adam:结合了动量和Ada。优化:从梯度和学习率入手。改为对过去所有的梯度平方的。就是所有梯度的平方和。
2023-11-27 13:18:11
808
原创 第二章 Jordan标准型
d1λd2λ⋱drλ0⋱0diλ∣di1λ化smith标准型的过程中,。smith标准型唯一Dkλ。
2023-11-20 16:42:11
235
原创 LeetCode hot100部分题目算法总结(自用)
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。T:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。T:给你一个字符串数组,请你将 字母异位词 组合在一起。T: hash不太行,排序可以,每个单词先排序,再对strs排序。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。请注意 ,必须在不复制数组的情况下原地对数组进行操作。的那 两个整数,并返回它们的数组下标。A:hash去重,再一个个数,复杂度是。
2023-11-20 11:27:41
204
原创 第三章 H-阵 二次型 投影算子
看H-阵之前,可以先看看施密特Schmidt正交化,现有α1α2αnβ1β2⋮βiα1α2−β1β1α2β1β1αi−β1β1αiβ1β1−β2β2αiβ2β2−⋯−βi−1βi−1αiβi−1βi−1。
2023-11-17 11:49:33
264
原创 第四章 矩阵分解
的特征值,显然特征值分解不唯一(因为特征向量不唯一,特征向量标准正交化时也不唯一)。第二步:将有重根的特征值对应的特征向量正交化。里面较为简单的那个矩阵的特征值和特征向量。第三步:把所有特征向量单位化为。
2023-11-17 11:02:03
248
原创 git 使用全流程
git config --global credential.helper 'cache --timeout=3600' # 设置缓存时间为 1 小时(3600 秒)git commit -m "Update configuration and scripts" #使用。命令将所有更改文件暂存,包括修改过的和新创建的文件。命令提交这些更改,并添加一个描述提交内容的消息。命令将提交的更改推送到远程仓库的。记住你的邮箱密码,不用每次都输入。要先创建一个文件夹什么的。
2023-09-28 12:15:13
43
balloon dataset mmlab mmdetection demo用例
2022-05-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人