- 博客(58)
- 资源 (16)
- 收藏
- 关注
原创 透视和仿射变换的区别
总的来说,仿射变换保持了更多的几何性质,适用于描述相对简单的几何变换,如平移、旋转、缩放和错切。而透视变换则更加灵活,能够描述更复杂的几何变换,如。上面的式子表示2D点乘以一个矩阵后加上平移(b1,b2)。仿射变换矩阵通常是2x3的矩阵。透视变换是3x3的矩阵。
2024-03-07 17:21:28
386
原创 立体匹配算法(Stereo correspondence)
如果想完全了解原理还是建议看原论文(我就不看了,懒癌犯了。先介绍两个重要的参数:注:这一部分参考的是matlab的解释,后面的部分是参考的opencv的实现,细节可能有些出入,大体上是一致的。and。
2023-12-27 18:08:32
1627
原创 杂谈.。。。
现在我的导师又在画饼,补助一点没发,我能老实给他干活吗?这不就溜出来实习了,实习的活干了就行,打打杂也没啥问题,摸鱼也是那么多钱。公司团建了好多次,自己还私下和几个同事吃了一顿铁锅炖,虽然不好吃,但是聊天挺有意思。我发现我搞的东西都是没人做过的,前面搞点云,异构电影配准,那多难啊,就让一群本科生和研0的搞。中文吃完饭突然困得要死,直接眯了一会儿,要是再宿舍就直接睡了,这个温度实在太适合睡觉了。
2023-12-27 13:54:32
386
原创 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
2929
原创 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
456
原创 pip vs conda
conda 管的比pip宽一些,conda命令不仅可以管理环境和安装python的包,还可以安装c c++ java的包,还可以安装pip,而pip就是专门安装python包的命令,搞ai的时候一般情况都是用conda建立虚拟环境,再用pip安装第三方库。
2023-12-26 10:56:32
542
原创 图像超分问题
大概就是这样一个效果。不过很蛋疼的一件是是,超分的模型太吉尔大了,我这是剪裁后的图片可以超分出来,再大一点就不行了,真的操蛋。为什么要进行超分,是因为棋盘格角点检测的不好,当对图片进行超分之后,棋盘格其实是变大了,因为像素变多了。一个lua写的图像超分代码,作者给的示例是二次元图像,不知道适不适合普通的图像。上面的是在麑蚂太大了,占显存,找了个小的。不如好好拍两张清晰的、大一点的照片。为了标定相机用超分,杀鸡用了牛刀。检测的效果就是这样。
2023-12-21 17:45:41
413
原创 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
994
原创 opencv的ChessboardCorner检测算法
那么opencv的findChessboardCorners用的什么算法?论文没看,想看了再说。
2023-12-19 11:16:08
717
原创 为什么上下文学习有用
具体来说,示例中的输入文本的分布和标签空间对上下文学习的性能提升起到关键作用,而真实的输入-标签映射的准确性影响较小。在上下文学习的过程中,包括了一些实际的演示例子,这些例子成为了提示的一部分。上下文学习与Prompt learning 类似,但是又不完全一样,预训练的大模型不需要进行微调,只需要根据提示,也就是上下文(in-context),就能够完成特定的任务。但是如果将学习新任务的定义更为宽泛,包括对特定输入和标签分布以及示例的格式的适应,以及更准确地进行预测,那么模型确实会从示例中学习到新任务。
2023-12-19 10:57:33
539
原创 opencv的findChessboardCorners 算法
一堆操作,还要判断干扰的矩形、正确的有邻居的矩阵、再对矩形排序。opencv的findChessboardCorners用的什么算法?
2023-12-15 13:56:53
357
原创 相机倾斜棋盘格标定全记录 vs200+opencv安装
然后怎么运行一个本地的文件夹页花了我一些时间,目前我是新建了一个项目,把文件夹复制过去,然后先点击显示所有文件,再右键你的文件夹,点击包含到项目。主要是添加依赖库的时候,怎么去添加路径比较麻烦,什么bin、lib、dll乱七八糟的都得添加进去。不过现在的问题是opencv读不到我的图片,很麻烦。
2023-12-14 14:03:01
621
原创 使用paddleocr识别图片文本的一种方案
步骤就是这样,先ocr识别文本和区域,后面根据区域进行版面恢复。版面恢复部分根据自己的需要,可以省略。PS:突然有个问题,我发现wps+python-word处理的应该也还行,段落什么的也都分的很好,表格也识别对了。之前是觉得wps对生僻字识别的不好,所以没用,而且wps要钱hh。不过工程上的方法就是很多,只有达到效果就行,科研就不行,都是精益求精的。
2023-12-12 12:01:36
1522
原创 对于版面识别的一个疑问
这样版型的图,确实是可以直接用merge_para进行排序,可是这种排序是比较简单的,如果版型是双栏的,那就必须用agument-xy-cut进行region的排序,在对每一个region进行内部的merge_para。多思考还是有好处的,不要一上来就问别人,当然实在不知道就必须问了,此中的度,需要自己把握。下一步就是对自然段进行划分,即res字段里面的text_region进行merge_para,不过这时我产生了一个疑问,既然有merge_para了,前面对bbox的排序有必要吗?
2023-12-11 18:28:07
411
原创 Python 字符串前缀
这些字符串前缀提供了不同的字符串处理方式,可以根据具体的需求选择适当的前缀来处理字符串。在Python中,字符串前面可以加上不同的前缀来表示不同的字符串类型或处理方式。这些字符串前缀可以组合使用。
2023-12-11 16:37:30
564
原创 如何快速上手不熟悉的库
的代码,不要企图去一个个文件的找,当然也许能找到,但是会浪费一点时间,而快速的方法应该是ctrl+shift+f,或者你的编辑器的查找功能,搜索“自然段”这几个字,一般优秀的代码都一定会有详细的注释,要是没有,那就慢慢找吧。先看有没有文档和使用手册,一般都有一个quick_start.md文件或者其他的.md文件。首先需要一个编辑器vscode或者pycharm。然后,还是不急着看代码,先看代码的注释。然后,不要傻乎乎的自己急着去看代码。
2023-12-11 16:04:07
384
原创 一件小事情
开始我发现表格里面有一个生僻字,开始识别的很好,但是后面就识别的不好,于是我想用之前的方法去识别这个字,但是之前的方法不太好用,因为之前的方法现在不用了,我要用第二种方法,但是第二种方法识别表格有点问题,解决起来有点麻烦,于是干脆不要表格了。但是就是担心这个生僻字会识别错误,于是问了同事,发现正文里面的这个字是可以识别的,那就没事了。干脆不要这个字好了。有些问题很小,可以解决但是要花一些时间,而且解决了也不一定有用,反而把人搞得很累。于是只要影响不大,就算了。
2023-12-07 15:09:29
342
原创 screen 常用命令
重命名screen 123(不是id,id是不能改的)退出screen 123(不终止会话)退出screen 123(终止会话)进入screen 123。
2023-12-07 14:03:24
371
原创 服务器上paddleOCR的bug记录
问了同事发现他的窗口可以运行,我的不行,应该是修改了什么配置文件。这个是因为没有保存图貌似。额,这个是自己写的,不算bug应该。LD_LIBRARY_PATH是你的。不过后面还有一个小bug,
2023-12-07 11:59:32
559
原创 cuda驱动安装
libc6-dev : 依赖: libc6 (= 2.31-0ubuntu9.7) 但是 2.31-0ubuntu9.9 正要被安装。E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。修改sources.list文件。ok,我来安装libc。cuda驱动安装失败。
2023-12-07 10:38:12
1304
原创 一些思考和FFT代码
读文档的能力实在太重要了,我在浏览器搜啊搜、在gpt问啊问,最后还是不如官方文档好使,能够快速的看懂官方文档,并上手实践,与会写代码一样重要,工程上的工具其实已经很成熟了,各种框架、库。纯搞算法也行,那就是上游产业,像Nvidia的计算库、像C++、java、python、pytorch、tensorflow这样的编程语言和框架,那就很牛。算法,要是不是搞研究,是偏工程的话,那就和开发没什么区别,可能需要稍微看下原理什么的,不过不看也行,能根据使用文档,把任务完成就行了,至于其他的都不重要。
2023-12-07 00:12:21
344
原创 一个小问题
用paddle的paddleOCR的时候,需要修改部分代码,但是直接Python xx.py不能运行,需要用paddle自己的命令行方式运行,感觉很麻烦啊。另外工作上遇到像这样的小问题,应不应该去问同事呢,感觉这个问题比较简单但是对于新手很烦。待会还是问一下好了。
2023-12-06 12:19:01
578
1
原创 目标检测算法R-cnn系列
ROI Pooling解决的是候选区域大小不一致的问题,ROI Pooling之后,候选区域的大小一致,就可以进行并行的计算,加快速度。有大量的重复计算,非常耗时。
2023-12-01 13:57:48
363
原创 计算机视觉
主要内容: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
1024
原创 第七章 函数矩阵
和矩阵函数不同的是,函数矩阵的重点在后面的矩阵,是以函数作为矩阵的元素。矩阵函数就是以矩阵作为函数的自变量x。函数矩阵和数字矩阵的运算法则完全相同。不过矩阵的元素aijx需要是闭区间ab上的实函数。
2023-12-01 11:32:43
1643
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
356
原创 各种优化器
AdaGrad:参考全部历史梯度,使学习率自适应的下降。缺点:学习率很快变成0。2、学习率调整为更新量的平方的加权平均。AdamW:加上了weight decay。每个指数加权平均后的梯度含有之前梯度的信息。ps:网上有人说和二阶信息有关,没太明白。Nadam:加上了Nesterov。Adadelta:设置窗口W,1、Adam:结合了动量和Ada。优化:从梯度和学习率入手。改为对过去所有的梯度平方的。就是所有梯度的平方和。
2023-11-27 13:18:11
784
原创 第二章 Jordan标准型
d1λd2λ⋱drλ0⋱0diλ∣di1λ化smith标准型的过程中,。smith标准型唯一Dkλ。
2023-11-20 16:42:11
141
balloon dataset mmlab mmdetection demo用例
2022-05-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人