- 博客(116)
- 收藏
- 关注
原创 matplot中文显示问题
matplot默认不支持中文绘制,找到带中文的字体库,添加到matplot中即可正常绘制中文。下载包含中文的字体库,添加到matplot中。按正常流程绘制结果如下。
2025-01-11 12:34:09
257
原创 YUV图像格式
YUV是一种颜色编码方式,它将图像信息分为亮度(Y)和色度(U 和 V)两个部分。该格式的优点在于,它将亮度信息与色度信息分开,使得对亮度和色度的处理可以独立进行。YUV的结构适用于视频图像的高效存储和传输,尤其是在视频压缩领域中应用广泛。亮度分量 Y 主要控制图像的亮暗细节,包含了大部分可见的信息。由于人眼对亮度的敏感度较高,在图像处理中保留更多的亮度信息对视觉效果的影响更大。U分量记录图像中蓝色相对于亮度的差异,用来描述蓝色和黄色之间的对比。
2024-12-12 18:27:05
683
原创 opengl抗锯齿之多重采样抗锯齿MSAA
抗锯齿技术的目标是减少或消除图形渲染中常见的锯齿效应(Alias)。锯齿通常出现在渲染斜线或曲线时,因为显示设备的像素网格限制了细节的精度。多重采样抗锯齿(MSAA,Multi-Sample Anti-Aliasing)是一种通过增加每个像素的采样数来减少锯齿的技术。在多重采样中,OpenGL 并不是在单一的像素位置进行采样,而是对每个像素的多个子位置进行采样,计算它们的平均值。这种方法通常可以大大减少锯齿效果,并且在性能开销上比其他更复杂的抗锯齿方法(如超级采样抗锯齿,SSAA)要高效得多。
2024-11-06 09:51:42
1654
原创 opengl和opencl共享时CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR
从这里看就是opencl使用nvidia gpu和opengl使用intel gpu, 不在同一个物理设备上,不支持上下文共享。这些指令只对当前terminal有效,如果需要永久设置,在~/.bashrc中添加上面的变量即可。在terminal的窗口中输入以下指令可以使opengl使用nvidia驱动中的版本。设置opencl和opengl使用相同的设备,这里改为都使用nvidia的gpu.可以看到shading language 变为nvidia的。,并且指定的共享组不能识别一个有效的CGL共享组对象。
2024-11-05 11:00:40
619
原创 ubuntu双屏只显示一个屏幕另一个黑屏
新来了一块屏幕,一块接独显的DP口,一块接HDMI口,启动起来不同内核版本可以显示使用不用的屏,但是都不能同时显示,在设置里面找不到第二快屏幕,重装nvidia驱动,重装GDM 、lightdm,互相切换也都没用。在新系统中打开可以同时显示两块屏幕,基本可以肯定就是之前用tar包还原的系统有些配置有问题。自己在空闲分区新装了系统,把这个新装的系统用tar命令备份后,在桌面崩溃的系统的tty环境中恢复tar包后,原来的系统桌面回来了,一些配置(软件和个人数据)也都还在,只是用户变了。正常的系统下面的没有。
2024-10-30 17:42:50
1596
原创 YUV色彩空间
YUV是一种颜色编码方式,它将图像信息分为**亮度(Y)和色度(U 和 V)**两个部分。该格式的优点在于,它将亮度信息与色度信息分开,使得对亮度和色度的处理可以独立进行。YUV的结构适用于视频图像的高效存储和传输,尤其是在视频压缩领域中应用广泛。亮度分量 Y 主要控制图像的亮暗细节,包含了大部分可见的信息。由于人眼对亮度的敏感度较高,在图像处理中保留更多的亮度信息对视觉效果的影响更大。U分量记录图像中蓝色相对于亮度的差异,用来描述蓝色和黄色之间的对比。
2024-10-28 16:33:45
1272
原创 相机外参与相机位姿深度理解
外参矩阵通常表示为一个3×43 \times 43×4RtR & tRtRRR是一个3×33 \times 33×3的旋转矩阵,它描述了相机的朝向(姿态)。ttt是一个3×13 \times 13×1的平移向量,它描述了相机相对于世界坐标系的平移。该矩阵的作用是将世界坐标系下的点PwXwYwZw⊤PwXwYwZw⊤转换为相机坐标系下的点PcXcYcZc⊤PcXc。
2024-10-24 15:22:50
1460
原创 相机畸变模型
相机畸变是图像处理和计算机视觉中的常见问题。由于透镜的物理特性,图像边缘的物体往往会呈现扭曲,这种现象称为畸变。畸变主要分为两种类型:径向畸变和切向畸变。本文档将详细介绍相机畸变的数学模型、产生原因、以及去畸变的数学过程。
2024-10-14 16:11:01
1589
原创 量化之一:均值回归策略
均值回归(Mean Reversion)是金融市场中一种常见的现象,指的是资产价格在偏离其长期平均值后,最终会回归到该平均值。本文将详细探讨均值回归的理论基础、数学公式以及其在交易策略中的应用。均值回归策略是一种基于统计学原理的交易策略,适用于希望捕捉价格回归趋势的投资者。线时卖出,这样能稍微缓解一下提前出局的问题,这个只对强势的股票有用,但是因为前期下跌导致很难强势。在长期下跌的趋势中,靠正常卖出太困难,加了止损的大多由止损出局,在长期上涨的趋势中又过早的提前出场。是一个预设的阈值,通常取值为2。
2024-10-13 00:07:57
1729
原创 kalman滤波三:时序数据预测(一维kalman滤波)
以下是一个测距的应用,在图像上计算目标离参考点的距离,测距的方法存在一些偶然性,例如目标检测模型在某一帧里面没有检测到物体,或者目标检测的框在目标物周围跳动,这些因素在实际的数值上就会表现出很多毛刺尖峰,但是目标物的移动都是平滑的不会跳变,在此场景下采用kalman滤波可以使距离值变得更加平滑。以下是真实场景中使用kalman滤波的距离,可以看到一维kalman滤波不仅很好的滤除了尖峰毛刺还有部分缺失数据,而且能很好的跟上真实数据的变化。目标物离参考点的距离。目标相对参考点的速度。
2024-09-23 10:06:35
1129
原创 kalman滤波二:二维目标跟踪
将状态空间映射到观测空间。对于一个二维目标跟踪问题,其中目标的状态量包括位置(是从图像或其他传感器获得的目标位置观测值。表示目标在二维空间中的位置,是对应状态的噪声方差。
2024-09-14 14:11:53
1158
原创 kalman滤波一:基础理论
Kalman滤波器是一种高效的递归滤波器,它能够从一系列含有噪声的测量中估计动态系统的状态。Kalman滤波器广泛应用于信号处理和数据分析领域,如导航系统、经济时间序列分析等。
2024-09-11 14:49:58
1102
原创 openSSL 编译android版本
openSSL的编译与cmake构建的项目不同,记录一下linux和android平台的编译。cpu架构arm64-va8, api 29。
2024-08-16 15:46:46
587
原创 ubuntu github多账号的git问题
vscode的terminal上面推送代码到不同账号,要么重新登录vscode的账号,这样很麻烦,在ubuntu的terminal终端推送代码,需要输入用户名和密码,但是github使用authentication app鉴权后没法输入密码登录github了,在用git push的时候登录不上。如果你使用的是VS Code的集成终端,你可能需要更新你的Git凭据存储以使用新的令牌。然后,下次你被要求输入密码时,输入你的个人访问令牌,它将被保存并用于后续的身份验证。
2024-08-13 12:07:06
446
原创 Target “xxx“ links to target “Iconv::Iconv“
iconv是一个用于字符编码转换的库,它可以在不同的字符编码之间转换文本。例如,你可以使用iconv将UTF-8编码的文本转换为ISO-8859-1编码。加入find_package(Iconv)就ok了。之前碰到一次,解决了现在又碰到一次,记录一下。
2024-08-01 15:44:01
323
原创 yolov5的分布式训练问题
RuntimeError: Default process group has not been initialized, please make sure to call init_process_group
2024-07-25 11:07:00
937
原创 ubuntu系统vscode调试c/c++大中型项目
对于我的项目需要用到很多的三方库,三方库的版本又会有很多,一般都是用cmake编译安装到指定的位置,最好的方式是三方库都放到一个非系统的文件夹下,后面要修改版本也和系统不冲突。每个开发人员的路径都不一样,所以这些路径都不会在cmakeLists里面有体现,都是在脚本里面指定。bash 命令中的cmake -DXXX=YYY的可以在里面添加cmake.configureSettings项,指定XXX:YYY。vscode调试的时候跳转三方库头文件啥的,在这里面的includePath里面配置添加;
2024-07-19 12:34:40
1132
1
原创 samba共享windows和ubuntu的文件
在Windows中,打开文件资源管理器,点击“网络”选项卡,你应该能看到Ubuntu的Samba服务器。现在你可以像操作本地文件一样,在Windows中对共享目录中的文件进行读取、写入等操作。如果需要特定用户访问特定目录,可以在Samba配置文件中指定用户的访问权限。映射完成后,你可以在文件资源管理器中通过驱动器字母访问共享目录。在配置文件的末尾添加一个新的共享配置段。例如,如果你想共享名为。编辑Samba配置文件,通常位于。
2024-07-11 10:14:52
997
原创 linux开发常用工具和命令
这个命令的基本格式是 ln [option] target link_name,其中 target 是你想要链接到的文件或目录,link_name 是链接的名称。“obj” 是 “object”(对象)的缩写,“dump” 是 “dump out”(倾倒出)的意思,所以 objdump 的含义是倾倒出对象文件的信息。创建硬链接:硬链接是指向文件系统中的物理位置的引用。ll 是 ls -l 的别名,用于列出当前目录中的所有文件和目录,以及它们的详细信息,包括权限、所有者、大小和修改时间。
2024-07-02 14:03:56
959
原创 NDK交叉编译
android平台的库和linux平台的库大多数都不一样,需要用ndk编到android上用的话在本地也需要一份去做编译连接。在cmakelists文件中可以设置不同平台找不同路径下的库,这样就可以指定编译工具链去编译不同平台的工程了。以yaml-cpp库为例。从github上下载代码仓库,进入根目录,采用NDK交叉编译,并且用CMAKE_INSTALL_PREFIX指定安装路径。
2024-06-05 15:56:35
550
原创 NCNN的编译使用
模型测试参数在<ncnn_root>/benchmark下面, 在benchncnn可执行程序中路径是固定的,所以把benchncnn可执行程序放到benchmark目录下面,然后执行benchncnn可执行程序即可。yolov7 ncnn格式的模型下载链接https://github.com/nihui/ncnn-assets/tree/master/models。项目地址:https://github.com/Tencent/ncnn。这是测试各模型的推理性能的。编译完会生成这样的文件。
2024-05-23 17:48:25
738
原创 本地的git仓库和远程仓库
2)-u选项设置了origin/my-branch为my-branch的上游,这意味着在未来,你可以只运行git push和git pull,而不需要指定远程仓库和分支。请注意,强制推送会覆盖远程仓库的分支,所以在使用这个选项之前,最好先确保这不会影响其他人的工作。上面创建完后会得到一个git仓库的链接,有SSH或者http的。1)它将你的my-branch分支推送到origin远程仓库。使用下面的命令给本地仓库添加关联远程仓库。把本地的master分支推送到远程。这样远程仓库里面就会有本地的提交了。
2024-05-06 16:03:24
665
1
原创 mmdeploy框架导出模型为ONNX
model_cfg : mm 算法库的模型配置,例如 mmpretrain/configs/vision_transformer/vit-base-p32_ft-64xb64_in1k-384.py,与 mmdeploy 的路径无关。–log-level : 设置日记的等级,选项包括’CRITICAL’, ‘FATAL’, ‘ERROR’, ‘WARN’, ‘WARNING’, ‘INFO’, ‘DEBUG’, ‘NOTSET’。c++ 的onnx库,在你喜欢的目录下下载解压,设置环境变量即可。
2024-04-23 15:35:55
1474
原创 mmclassification 训练自己的数据集
如果你也喜欢这样的方式可以直接copy附录中的config修改去训练。mmlab系列的训练测试转化都是以config来配置的,三个基础块,一个是数据集,一个是模型,一个是runtime,有很多模型都是从_base_目录中继承这三个组件,然后修改其中的一些选项来训练不同的模型和数据集。:我训练的时候有些图好像是坏的,mmcv以opencv为后端来获取图片,这里最好先把坏图过滤掉,不然训练的时候会报cv imencode失败或者找不到图像。下面是我训练mobilenet v3时修改的config。
2024-04-22 10:44:49
1044
原创 基于深度学习的面向工业场景的异常检测(一)
在工业场景中,正常样本往往是大量的,而且相对容易获取,比如符合质量要求的产品或零件。而缺陷数据通常较少,因为缺陷会导致产品被剔除或需要返工修复,从而增加生产成本和时间成本。此外,不同类型的缺陷样本也可能具有较强的特异性,涉及到领域专业知识和经验的积累,并且需要人工手动标注。在这种情况下,缺乏缺陷样本会导致深度学习模型无法对缺陷进行准确区分,存在过拟合的风险。用检测行业的话来说就是容易“漏检”,在工业视觉检测中,漏检问题严重影响着企业的生产效率和质量保障。
2024-01-23 13:44:46
968
原创 ubuntu系统 vscode 配置c/c++调试环境
ctl+shift+p 打开命令行,输入cmake,选择cmake:show config command。你会看到在左侧栏多了cmake tools的图标,点击它,手动确认。先到断点处,F10单步调试,F11进入函数调试,F5继续调试。cmake cmake tools插件。点调试的按钮后的结果。
2024-01-18 16:05:54
2367
2
原创 ubuntu opengl安装使用
OpenGL到底是什么。一般它被认为是一个API(Application Programming Interface, 应用程序编程接口),包含了一系列可以操作图形、图像的函数。然而,OpenGL本身并不是一个API,它仅仅是一个由Khronos组织制定并维护的规范(Specification)。
2024-01-18 10:35:09
1966
原创 RANSAC(Random sample consensus)随机抽样一致性
RANSAC(Random Sample Consensus)是一种迭代的参数估计算法,用于从包含噪声和异常值的数据中拟合数学模型。它最初由Fischler和Bolles于1981年提出,被广泛应用于计算机视觉和计算机图形学等领域。RANSAC的核心思想是随机选择数据中的一小部分样本,并根据这些样本拟合一个模型。然后,通过计算其他数据点到该模型的距离,并将距离小于一定阈值的数据点划分为内点,而距离大于阈值的数据点则划分为外点。重复此过程多次,并选择具有最多内点的模型作为最终的估计结果。
2024-01-16 10:38:45
3357
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人