- 博客(551)
- 资源 (41)
- 收藏
- 关注
原创 opencv存视频
摘要:本文介绍了OpenCV编译时如何支持H.264编码,并提供了一个视频处理类CProcessVideo的实现。OpenCV默认不包含H.264编码器(libx264)以避免GPL许可证问题,需手动安装依赖库并配置编译选项。示例代码展示了CProcessVideo类如何读取视频、进行图像处理(包括鱼眼校正)并使用H.264编码保存输出视频,包含进度跟踪和线程控制功能。
2026-03-01 19:27:13
248
原创 视频拼接apap算法中的双三次样条基函数
摘要:本文介绍了双三次样条基函数在视频图像处理中的应用。该函数通过分段多项式实现平滑插值,在图像缩放、纹理采样和数据插值中发挥重要作用。特别在鱼眼图像矫正拼接过程中,结合元镜像矫正技术和双三次样条描点拖拽,有效避免了传统APAP算法产生的折线感,使网格变形后的图像过渡更自然。实验证明,该方法显著改善了拼接图像的视觉效果。
2026-01-21 07:33:07
615
原创 opencv技巧:投影变换代替旋转
本文介绍了两种图像旋转方法:1) 使用OpenCV的warpAffine函数实现基本旋转,通过getRotationMatrix2D获取旋转矩阵并保持透明背景;2) 采用投影变换方法,使用warpPerspective函数实现更灵活的旋转,通过3x3投影矩阵计算旋转参数,自动调整输出图像尺寸以避免裁剪,并保持旋转后的图像居中。两种方法都支持指定旋转中心点,但投影变换方法能更好地处理旋转后的图像尺寸问题。
2026-01-18 11:17:44
314
原创 view视图渲染透明图
本文介绍了如何在各种视图框架(如OpenGL、Vulkan、DirectX、MFC、QT等)中绘制经过旋转或remap处理的透明图像。首先将图像转换为BGRA格式,确保包含透明度通道。然后通过计算旋转后的外接矩形,调整旋转中心并使用warpAffine进行旋转处理,保持透明背景。最后以MFC为例,展示了如何通过AlphaBlend函数实现透明图像的绘制。该方法通过统一的BGRA格式处理,可以方便地应用于不同图形框架下的透明图像显示需求。
2026-01-18 11:10:10
353
原创 Mask R-CNN Fast-ReID 结合
摘要:本文对比了Mask R-CNN和Fast-ReID两种计算机视觉模型。Mask R-CNN擅长实例分割和目标检测,精度高但计算复杂,适用于医疗影像、工业质检等场景。Fast-ReID专注于行人重识别,轻量高效(200+FPS),适合实时跟踪系统。二者可协同工作,如Mask R-CNN检测分割人体区域,Fast-ReID进行特征匹配实现多目标跟踪。选择建议:高精度分割选Mask R-CNN,实时跟踪选Fast-ReID,复杂场景可结合使用,还可增加步态识别提升准确性。
2026-01-16 18:58:20
972
原创 超越激光雷达之视觉矫正+立体视觉
立体视觉技术在ADAS中的应用研究摘要 本文探讨了立体视觉技术在高级驾驶辅助系统(ADAS)中的关键应用与技术发展。相比激光雷达,立体视觉具有成本低、分辨率高、光照适应性强等优势。研究重点包括:1)基于双360°相机的全方位深度感知技术;2)融合深度卷积网络语义数据与几何约束的3D边界框生成方法;3)创新的STereo TRansformer(STTR)架构,通过注意力机制突破固定视差限制。文章详细分析了立体视觉在FCW、AEB、ACC等ADAS功能中的实现原理,包括双目相机标定、图像矫正、立体匹配、视差计
2026-01-16 06:53:24
1013
原创 基于APAP算法的图像和视频拼接
APAP算法是一种先进的图像拼接技术,通过结合3D投影和局部单应性优化实现高质量拼接。其核心步骤包括:1)柱面/球面投影矫正解决畸变问题;2)SIFT特征提取与匹配;3)全局单应性计算;4)基于网格划分的局部单应性优化(使用能量函数平衡全局一致性和局部对齐);5)图像变形与多频段融合。算法采用2D平面进行3D数据计算而非3D建模,降低了实现复杂度。数学推导上,将单应性矩阵展开为9维向量,构建稀疏线性系统并通过共轭梯度法求解,最终实现精确的图像对齐与无缝拼接。
2026-01-12 21:06:52
1072
原创 reid 跨境追踪架构
本文提出了一种基于YOLOv8、TorchReID和Faiss的多摄像头人脸追踪与重识别方案(MC-PTReID)。该系统采用YOLOv8进行实时人脸检测,TorchReID提取特征,Faiss实现跨摄像头相似度匹配。核心架构包括多摄像头视频流处理、人脸检测与特征提取、Faiss索引构建与匹配、多摄像头跟踪逻辑四个模块。系统支持GPU加速、批量处理等优化策略,具有毫秒级响应、身份一致性维护和遮挡容忍等特点。实验表明,该方案能有效实现跨摄像头的人脸追踪与重识别任务。
2026-01-12 21:03:15
1247
原创 unity 无头模式启动
本文介绍了在无桌面Linux环境下使用NVIDIA显卡实现Unity离屏渲染的方法。首先需要正确安装NVIDIA专有驱动(470+版本)和OpenGL/EGL开发库,卸载开源驱动。然后通过Unity启动参数"-batchmode -no-window -force-vulkan"启用GPU离屏渲染。代码示例展示了如何创建RenderTexture、配置相机渲染目标,以及将渲染结果保存为图像文件。还提供了EGL验证方法和权限设置说明,确保在没有X11/Wayland的环境下也能正常进行GP
2026-01-12 08:07:25
429
原创 基于图像尺寸的相机内参拼接视频
图像拼接技术实现摘要 本文展示了两种图像拼接方法的基础实现。基础方法采用SIFT特征提取、FLANN匹配和单应性矩阵估计,实现两幅图像拼接,但存在图像拉伸严重和均衡性差的问题。高级方法改进了整个流程,包括特征提取器选择(SIFT/ORB/AKAZE等)、特征匹配优化、相机参数估计和光束法平差,特别针对纯旋转场景通过单应性矩阵估计相机内外参。代码演示了从图像读取到最终拼接的完整过程,并包含特征点数量统计和匹配可视化功能。高级方法相比基础实现能获得更好的拼接效果,但两者都需注意匹配点数量不足时的错误处理。
2026-01-11 19:03:35
393
原创 DBSCAN 用于破损检测
DBSCAN是一种基于密度的无监督聚类算法,通过定义邻域半径(ε)和最小样本数(MinPts)来识别核心点、边界点和噪声点。其特点包括无需预设簇数量、能识别任意形状簇和自动过滤噪声,但对参数敏感且在高维数据上表现欠佳。适用于用户行为分群、图像分割等场景,可通过sklearn.cluster.DBSCAN实现。在图像识别中,DBSCAN可用于像素聚类、特征点分组和异常检测,如灯泡破损识别可通过分析像素密度差异实现。但该方法对场景依赖性较强,可能需结合预处理和形态学操作优化效果。对于复杂任务,建议采用深度学习模
2026-01-09 06:41:57
1087
原创 基于AI分类得视频孪生鹰眼图像三维逆变换矫正算法
【视频孪生三维投影矫正工具】摘要: 该工具通过球面投影、柱面投影和收缩投影三步骤,实现鹰眼视频图像的三维逆变换。室内场景需处理拼接画面,室外场景则重点矫正弯曲道路。工具面临参数调整复杂、图像类型多样的挑战,因此引入AI技术:1)使用CNN分类网络自动识别相机类型(枪机/鱼眼/鹰眼);2)通过神经网络智能推荐矫正参数。演示案例显示,手动调整存在瑕疵,而AI能显著提升矫正效率和精度,最终实现视频图像与三维引擎的无缝融合。
2025-09-20 09:54:14
1663
2
原创 基于AIS动态数据与AI结合得经纬度标示算法
港口船舶智能标注系统 本系统通过结合摄像头视频流和AIS船舶动态数据,利用AI技术实现船舶实时标注功能。系统架构包括视频流处理、AIS数据解析、船舶检测匹配和坐标映射转换等模块。关键技术步骤: AIS数据获取:通过本地接收机或网络API获取船舶位置、航速等信息 AI目标检测:采用YOLOv8等模型识别视频中的船舶 船舶匹配算法:通过位置投影或运动轨迹匹配视频目标与AIS数据 坐标映射:使用相机标定技术将经纬度转换为图像坐标 实时标注:在视频画面上叠加船名、位置等关键信息 应用场景包括港口监控、智能海事管理和
2025-09-10 20:23:54
1711
原创 基于三维反投影矫正拼接视频
本文介绍了三维投影算法及其在图像矫正中的应用。主要内容包括四种投影方法(柱面、球面、组合及抛物线投影),重点阐述了圆柱内壁投影的坐标转换和展开公式。针对摄像头安装姿态问题,详细推导了偏航、俯仰和翻滚的旋转矩阵。通过实际案例展示了如何通过调整焦距、俯仰角和翻滚角将拼接图像矫正为正常视角,并创新性地提出利用AI跟踪系统实现虚拟云台功能。最后讨论了算法优化方案,将矩阵运算、编解码全部在GPU显存中完成以实现实时处理。文章还展望了其他复杂场景(如鱼眼、鹰眼图像)的矫正方法。
2025-08-31 13:17:16
1738
2
原创 如何快速做一个共享系统
本文介绍了在Linux系统中配置新硬盘并实现Samba共享的完整流程。首先通过fdisk -l识别新硬盘,使用fdisk工具分区并格式化(如mkfs.ext4);然后修改/etc/fstab实现开机自动挂载。接着安装Samba服务,配置/etc/smb.conf文件设置共享目录(包括权限777),支持多用户访问。最后展示了成功映射2T和12T硬盘的网络共享效果。整个过程涵盖硬盘识别、分区、格式化、自动挂载和Samba共享配置等关键步骤。
2025-07-09 13:42:26
402
原创 c++ python 共享内存
文章摘要: 本文描述了一个C++与Python协同的视频处理框架设计。系统采用C++进行视频解码(使用FFmpeg库),解码后的帧数据通过共享内存传递给Python进行测试和处理。主类c_SDLDrawer负责视频渲染显示,包含SDL窗口管理、帧缓存队列(v_pframes)和OpenCV图像处理功能。框架支持BGR/YUV格式渲染、文本叠加(中英文混合显示)、图像裁剪等功能。通过环形缓冲区和线程安全设计实现高效数据传输,为Python测试环境提供原始视频帧数据。该系统体现了C++高性能解码与Python便
2025-07-05 20:10:33
609
1
原创 广角摄像头的非线性经度变换
本文提出了一种非线性图像矫正算法,主要用于解决视频拼接中的经度矫正问题。传统基于相机参数(K、D)的矫正方法存在计算复杂、适配性差等问题。作者创新性地采用倒抛物线权重模型,通过离图像中心越远矫正越强的原理,实现了高效的经度矫正。算法通过调整强度因子和垂直归一化系数,可适应不同畸变程度的图像,包括强桶形畸变。实验结果表明,该方法能有效保持纬度弯曲的同时矫正经度变形,显著改善拼接效果。后续优化方向包括边缘衰减因子、非对称矫正等,并计划引入量化评估指标。
2025-07-05 16:48:46
885
原创 使用glsl 来做视频矫正
本文介绍了使用GLSL(OpenGL着色语言)替代OpenCV的undistort和鱼眼矫正功能,并通过OpenCV的LUT(查找表)加速处理,实现实时视频矫正。该方法无需CUDA支持,适用于各类硬件平台,包括AMD CPU和Intel核显。文章详细描述了顶点和片段着色器的实现,特别是如何通过GLSL进行畸变矫正,包括普通镜头和鱼眼镜头的不同畸变模型。此外,还探讨了如何通过OpenCV的remap函数生成映射表,并将其应用于GLSL以进一步优化性能。最终,该方法能够在不依赖CUDA的情况下,实现与OpenC
2025-05-17 21:57:43
1376
原创 reid查找余弦相似度计算修正(二)
模型训练时的输入尺寸不匹配原因:如果模型是在 (256, 128) 尺寸的图像上训练的,那么模型的权重参数是针对这个特定尺寸学习得到的。当输入尺寸变为 (384, 128) 时,图像的特征分布发生了变化,模型可能无法很好地适应新的输入尺寸,从而导致性能下降。
2025-04-08 18:02:55
476
原创 训练AI脚本Hugging Face Hub 无法访问问题解决
如果 Hugging Face Hub 无法访问,可以尝试以下几种替代下载途径。
2025-03-25 06:09:29
1410
原创 测试gpu性能,单精度,半精度,混合精度
1 硬件信息检测:检查CUDA可用性显示GPU型号和核心配置检测Tensor Core支持情况(Volta架构及以上)2 性能测试:创建2048x2048大小的FP16矩阵测量矩阵乘法耗时计算理论峰值和实际GFLOPS。
2025-03-21 07:10:30
1143
原创 pytorch 张量创建基础
在默认情况下,torch.tensor 会在 CPU 上创建张量。在上述代码中,通过 torch.tensor 创建了一个张量 tensor_cpu,并使用 tensor_cpu.device 查看该张量所在的设备,输出结果通常为 cpu,这表明张量是在 CPU 上创建的。将张量移动到 GPU。
2025-01-23 06:52:51
569
原创 git 删除大文件的方法
首先要提交所有的更改git filter-branch -f --prune-empty --index-filter “git rm -rf --cached --ignore-unmatch 文件相对路径复制到这里” --tag-name-filter cat – --all。
2024-12-05 15:44:22
453
原创 std::thread线程通知、等待、让渡
看到很多c++ 程序员使用线程循环的时候使用sleep 去取队列中的数据,这个做法没有大问题,但很多时候会浪费cpu,很多更会把效率降低,因为我们实在不知道要等待多长时间,不能随便写个值,常规的做法还是要使用线程通知。如下代码所示。
2024-11-11 21:24:49
669
原创 OpenRTP 传输增加OpenRTPServer
最近增加了OpenRTPServer, 已经修改完成一版放在了目录下,window和linux下编译都成功了,不过由于修改代码CMakefile 需要修改,先放放。
2024-10-27 17:01:53
1338
原创 socket 封装,wl ipv4 ipv6
windows,linux, ipv4 ipv6 广播 只需要一个头文件,应急的使用可以使用,代码如下。
2024-10-23 06:18:34
348
原创 OpenRTP 增加桌面RTP发送测试
这次加上了帧率保证算法代码,好处是后面即使用固定增加的时间戳音视频也能同步,具体看以下的线程保证,主要原理是计算fix_consume 和 时间耗费的 total,两者的diff 差就是我们需要暂停的时间,以下也示例了所有编码类如何使用。这样图像倒置就比较简单解决,不过也可以纯手工算法倒置,没多大区别,TYUVRGBScale.h 里面有转化,合并,下采样的代码,放大缩小也不在话下,为什么要自己写呢,因为代码最后都会走到硬件芯片上,手动写后面可以采用比如直接的cuda 核函数来变化,所以也写了一份。
2024-10-20 19:50:33
758
原创 OpenRTP 乱序排包和差分抖动计算
因为大部分摄像头不一定能够达到采样的帧率,而音频大部分时间都是用回调来进行,是比较正确的,时间戳递增可以准确无误,但视频一旦帧率没有够上,结果递增时间却是确定的,就会造成两者时间戳不同步,一般像摄像头这种设备,无法够上足够的帧率,所以做法有两种。由于时间戳是32位,而rtp协议的sequnce num 是16位无符号证书,所以无法按照正常直接的比较来进行排序,需要回环计算,为了插入和删除方便,定义双缓冲,一个缓冲为queue队列,输出给应用,一个缓冲为链表, 方便排序。对于每个接收到的数据包,计算其延迟。
2024-10-19 19:40:23
1529
原创 openrtp 音视频时间戳问题
openrtp增加了音频aac的发送,地址同时使用两个rtp ,来发送音频和视频使用以下音频rtp,是可以发送和接收的音视频合成发送rtpvlc 使用分开的端口来接收,经过测试无误我把sdp文件放在了这里,
2024-10-17 21:23:26
1351
原创 openrtp ps流和纯rtp流
OpenRtp 以RTP协议为主,发送音视频,因为工作量比较大,所以耽误了一些时间,前面一直没有时间来修改这个程序,也有一些人提了意见,现在重视一下,把这个程序做好,让学习rtp协议的人能够受益,以前代码比较杂乱,稍稍整理了一下,修改成为三个程序,1 个是CorePhone,包括协议和编解码,另外两个是RtpDecode 和 RtpEncode,把乱七八糟的非界面程序整理到CorePhone中了,界面里的程序较少.整体分为三个部分。
2024-10-13 14:42:32
1153
原创 simple c++ 无锁队列
使用compare_exchange_strong 和 compare_exchange_weak在 C++ 中,compare_exchange_strong 和 compare_exchange_weak 是 std::atomic 类型的成员函数,用于原子地比较和交换操作。以下实现适合单生产者,单消费者,否则效率不佳。
2024-10-06 08:09:13
1048
原创 融媒体服务中PBO进行多重采样抗锯齿(MSAA)
如果不理解pbo 那先去了解概念,在此不再解释,这是我为了做融合服务器viewpointserver做的一部分工作,融合服务器的功能是将三维和流媒体,AI融合在一起,viewpointserver会直接读取三维工程的文件,同时融合rtsp视频流,将视频流作为纹理给材质,最后赋值给三维模型如fbx的表面。由于没有窗口,三维作为服务运行,里面有一项工作就是三维的抗锯齿采集。PBO(Pixel Buffer Object)进行多重采样抗锯齿(MSAA)的一般步骤。
2024-10-04 19:18:59
1584
原创 rtmp协议转websocketflv的去队列积压
websocket server的好处:WebSocket 服务器能够实现实时的数据推送,服务器可以主动向客户端发送数据1 不需要客户端不断轮询。2 不需要实现httpserver跨域。在需要修改协议的时候比较灵活,我们发送数据的时候比较方便,因为两边可以随时发送协议, 且做客户端的程序更为方便,websocket协议头部已经定义了包长,使用大部分库可以直接收数据,解决了粘包的问题,所以websocket协议是一个使用比较顺畅的协议。
2024-10-02 16:10:38
1504
socket 网络的封装,包含linux,windows, ipv4 ipv6 广播,多播等 ,一个头文件,一个cpp
2024-10-23
websocket c语言实现
2022-10-07
qt websocket 客户端 多线程使用
2022-09-16
udp tunnel 转udp 到 tcp
2022-07-19
qt c++ dialog 异形窗口+半透明窗体制作
2022-05-24
qt下写的内存池和线程调用
2022-04-26
vue+nodejs 将canvas发布到dlna投屏服务
2022-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅