自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(528)
  • 资源 (41)
  • 收藏
  • 关注

原创 训练AI脚本Hugging Face Hub 无法访问问题解决

如果 Hugging Face Hub 无法访问,可以尝试以下几种替代下载途径。

2025-03-25 06:09:29 251

原创 测试gpu性能,单精度,半精度,混合精度

1 硬件信息检测:检查CUDA可用性显示GPU型号和核心配置检测Tensor Core支持情况(Volta架构及以上)2 性能测试:创建2048x2048大小的FP16矩阵测量矩阵乘法耗时计算理论峰值和实际GFLOPS。

2025-03-21 07:10:30 335

原创 pytorch 张量创建基础

在默认情况下,torch.tensor 会在 CPU 上创建张量。在上述代码中,通过 torch.tensor 创建了一个张量 tensor_cpu,并使用 tensor_cpu.device 查看该张量所在的设备,输出结果通常为 cpu,这表明张量是在 CPU 上创建的。将张量移动到 GPU。

2025-01-23 06:52:51 396

原创 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 317

原创 std::thread线程通知、等待、让渡

看到很多c++ 程序员使用线程循环的时候使用sleep 去取队列中的数据,这个做法没有大问题,但很多时候会浪费cpu,很多更会把效率降低,因为我们实在不知道要等待多长时间,不能随便写个值,常规的做法还是要使用线程通知。如下代码所示。

2024-11-11 21:24:49 363

原创 openRTP增加h265 发送

选择h265 进行发送,h265 发送暂不支持ts。

2024-11-10 14:38:23 389

原创 判断大小端和 htonl 实现

小端转换网络端

2024-10-29 13:43:28 181

原创 OpenRTP 传输增加OpenRTPServer

最近增加了OpenRTPServer, 已经修改完成一版放在了目录下,window和linux下编译都成功了,不过由于修改代码CMakefile 需要修改,先放放。

2024-10-27 17:01:53 1033

原创 socket 封装,wl ipv4 ipv6

windows,linux, ipv4 ipv6 广播 只需要一个头文件,应急的使用可以使用,代码如下。

2024-10-23 06:18:34 223

原创 OpenRTP 增加桌面RTP发送测试

这次加上了帧率保证算法代码,好处是后面即使用固定增加的时间戳音视频也能同步,具体看以下的线程保证,主要原理是计算fix_consume 和 时间耗费的 total,两者的diff 差就是我们需要暂停的时间,以下也示例了所有编码类如何使用。这样图像倒置就比较简单解决,不过也可以纯手工算法倒置,没多大区别,TYUVRGBScale.h 里面有转化,合并,下采样的代码,放大缩小也不在话下,为什么要自己写呢,因为代码最后都会走到硬件芯片上,手动写后面可以采用比如直接的cuda 核函数来变化,所以也写了一份。

2024-10-20 19:50:33 517

原创 OpenRTP 乱序排包和差分抖动计算

因为大部分摄像头不一定能够达到采样的帧率,而音频大部分时间都是用回调来进行,是比较正确的,时间戳递增可以准确无误,但视频一旦帧率没有够上,结果递增时间却是确定的,就会造成两者时间戳不同步,一般像摄像头这种设备,无法够上足够的帧率,所以做法有两种。由于时间戳是32位,而rtp协议的sequnce num 是16位无符号证书,所以无法按照正常直接的比较来进行排序,需要回环计算,为了插入和删除方便,定义双缓冲,一个缓冲为queue队列,输出给应用,一个缓冲为链表, 方便排序。对于每个接收到的数据包,计算其延迟。

2024-10-19 19:40:23 1183

原创 openrtp 音视频时间戳问题

openrtp增加了音频aac的发送,地址同时使用两个rtp ,来发送音频和视频使用以下音频rtp,是可以发送和接收的音视频合成发送rtpvlc 使用分开的端口来接收,经过测试无误我把sdp文件放在了这里,

2024-10-17 21:23:26 1067

原创 openrtp ps流和纯rtp流

OpenRtp 以RTP协议为主,发送音视频,因为工作量比较大,所以耽误了一些时间,前面一直没有时间来修改这个程序,也有一些人提了意见,现在重视一下,把这个程序做好,让学习rtp协议的人能够受益,以前代码比较杂乱,稍稍整理了一下,修改成为三个程序,1 个是CorePhone,包括协议和编解码,另外两个是RtpDecode 和 RtpEncode,把乱七八糟的非界面程序整理到CorePhone中了,界面里的程序较少.整体分为三个部分。

2024-10-13 14:42:32 935

原创 mesa3d安装

安装ubuntu 22安装opencv使用cmake-gui 来安装opencv。

2024-10-10 13:56:20 725

原创 simple c++ 无锁队列

使用compare_exchange_strong 和 compare_exchange_weak在 C++ 中,compare_exchange_strong 和 compare_exchange_weak 是 std::atomic 类型的成员函数,用于原子地比较和交换操作。以下实现适合单生产者,单消费者,否则效率不佳。

2024-10-06 08:09:13 660

原创 融媒体服务中PBO进行多重采样抗锯齿(MSAA)

如果不理解pbo 那先去了解概念,在此不再解释,这是我为了做融合服务器viewpointserver做的一部分工作,融合服务器的功能是将三维和流媒体,AI融合在一起,viewpointserver会直接读取三维工程的文件,同时融合rtsp视频流,将视频流作为纹理给材质,最后赋值给三维模型如fbx的表面。由于没有窗口,三维作为服务运行,里面有一项工作就是三维的抗锯齿采集。PBO(Pixel Buffer Object)进行多重采样抗锯齿(MSAA)的一般步骤。

2024-10-04 19:18:59 1324

原创 rtmp协议转websocketflv的去队列积压

websocket server的好处:WebSocket 服务器能够实现实时的数据推送,服务器可以主动向客户端发送数据1 不需要客户端不断轮询。2 不需要实现httpserver跨域。在需要修改协议的时候比较灵活,我们发送数据的时候比较方便,因为两边可以随时发送协议, 且做客户端的程序更为方便,websocket协议头部已经定义了包长,使用大部分库可以直接收数据,解决了粘包的问题,所以websocket协议是一个使用比较顺畅的协议。

2024-10-02 16:10:38 1300

原创 超分服务的分量保存

分量的概念主要是对于一个显卡和网络传输而言,显卡可以同时进行几个线程,多个显卡可以分布式进行量的同时进行AI识别,比如我们有cuda的显卡,cuda的核心量可以分给不同的分片视频,第一步先将视频减小,第二部分割视频。对于小视频片而言,不同的智能盒子也可以接收网络传输来进行接收数据,进行并行识别服务。这就是我说的分量服务的概念。

2024-10-01 19:01:40 998

原创 rtsp 协议推流接收(tcp udp)

使用两种方式进行推流,udp 和tcp,必须先理解udp 和tcp推流方式的不同。

2024-09-28 10:40:02 1490

原创 使用asio 接收ps流代码并显示

【代码】使用asio 接收ps流代码并显示。

2024-09-27 21:00:07 312

原创 循环使用内存池的代码

【代码】循环使用内存池的代码。

2024-09-27 20:54:29 229

原创 udp 代理转发的代码

【代码】udp 代理转发的代码。

2024-09-27 20:49:59 275

原创 boost 的lockfree 使用

【代码】boost 的lockfree 使用。

2024-09-27 20:46:48 224

原创 ffmpeg 结合 opencv 显示ps流文件

使用ffmpeg 和 opencv 做demo。

2024-09-27 20:44:40 540

原创 AI推导图像

这可能需要人工或者使用一些自动化的 3D 重建算法,如果物体具有一定的规则形状,可以通过几何形状的假设来构建初步的 3D 模型。无论哪种方法,都存在一定的局限性和挑战,并且结果的准确性取决于多种因素,如原始图像的质量、物体的复杂性、可用的数据量等。例如,使用一些基于图像生成的 GAN 架构,如 StyleGAN 等,并对其进行调整和训练以适应特定的任务。在确定了旋转后的图像像素位置后,由于像素位置通常不是整数,需要使用插值方法来确定新位置的像素值。最后,从新的角度对 3D 模型进行渲染,得到旋转后的图像。

2024-09-06 11:51:20 284 1

原创 opencv的球面投影

在全景图像拼接任务中,可能需要对多个图像进行球面投影以实现无缝拼接。每个cv::detail::SphericalProjector可以负责一个图像的球面投影操作。通过将多个这样的投影器存储在std::vector中,可以对一组图像依次进行投影处理,为后续的图像融合和拼接做准备。例如,当拼接一组由不同角度拍摄的照片以创建全景图时,这个容器可以存储针对每个照片的投影器,确保每个图像都能正确地投影到球面坐标系统中,从而使得拼接过程更加准确和自然。

2024-09-04 20:18:04 1989

原创 opencl nv12转bgr 优化算法

最好的优化就是不进行转化而直接使用nv12 进行各种算法运算不过有优于没有!先使用转化,可以使用cuda 和 opencl 的kernel 进行转化,分别给出普通的算法和opencl 的kernel。

2024-08-30 10:00:05 288

原创 yuv420转 nv12

这个算法特别简单,就是把两个平面得数据合并为1个平面过程就是先拷贝y品面,再把uv平面从两个平面转到1个平面上,让uv交错分布,而nv12 是交错分布得。看到了很多写得代码写得巨复杂,就知道很多人没有理解两个平面得概念。

2024-08-29 13:45:51 419

原创 柱状投影,双线性插值

工作中遇到需要线性插值得方法,试验了一下,进行双线性插值。

2024-08-27 21:42:56 249

原创 computer version 图像的背景建模

在多帧图像的背景建模中,可以将连续的视频帧累加起来,以获得一个相对稳定的背景图像。随着时间的推移,动态的前景物体在累加过程中会逐渐被平均掉,而静态的背景部分则会更加突出。在一些需要实时更新统计信息的应用中,accumulate可以高效地进行累计计算,而不需要每次重新计算整个数据集的统计量。比如在计算图像的直方图特征时,可以将不同区域或不同条件下的直方图进行累加,以获得更全面的特征描述。例如,计算图像中像素值的累计和、累计平方和等,这些统计量可以用于计算图像的均值、方差等参数。

2024-08-24 10:59:59 213

原创 computer version 如何做背景建模中处理噪声和光照变化

准确识别前景目标,通过建立背景模型,可以将视频中的每一帧图像与背景进行比较,从而快速准确地识别出前景目标。例如,在监控视频中,可以检测出移动的人、车辆等物体。这种方法能够有效地过滤掉静止的背景部分,只关注动态变化的前景区域,提高目标检测的效率和准确性。减少误检和漏检,与传统的基于阈值或边缘检测的方法相比,背景建模能够更好地适应不同的场景和光照条件,减少因噪声、阴影等因素导致的误检和漏检。对于复杂场景下的目标检测,如人群密集的场所、光照变化剧烈的户外环境等,背景建模能够提供更可靠的结果。

2024-08-24 10:19:54 938

原创 go http启动应用程序

udpserver 是go程序需要启动的程序。

2024-08-11 12:24:28 245

原创 nodev8 c++调用

c++ 调用v8 引擎 , 使用javascript代码以前写的,谁有用拿去好了

2024-08-09 21:04:34 387

原创 opengl创建柱面和鱼眼重展uv

先看一下专业软件可以拉取很多的uv点以下是使用 OpenGL 创建不规则面片并指定 UV 的一般步骤:1 顶点数据准备2 定义面片的顶点坐标。这些顶点构成了面片的形状。3 为每个顶点指定对应的纹理坐标(UV)。4 创建顶点缓冲区对象(VBO)5 将顶点数据和 UV 数据存储在 VBO 中。6 顶点数组对象(VAO)设置7 绑定 VAO 并配置顶点属性指针,指定顶点位置和 UV 的布局。8 绘制面片。

2024-08-09 09:56:31 406

原创 opencv 三维重建基础

opencv 三维重建基础

2024-08-08 03:31:59 498

原创 qt 如何制作动态库插件

首先第一点要确定我们的接口是固定的,也就是要确定使用extern “C” 来保持接口能被正确的找到函数名rtspplugin_global.h 文件定义宏defined文件实现如下,需要定义一个结构体,将需要保存的数据结构都放在里面qt的pro文件如下+=ifdeprecatedifdo+=0x0600006.0.0for编译完成,正确生成 动态库。

2024-07-24 16:28:37 539

原创 c++写数据结构进入文件

【代码】c++写数据结构进入文件。

2024-07-16 14:01:26 240

原创 嵌入式上gst rtsp server opencv mat

注意一定要加上dev。

2024-07-04 13:50:45 593

原创 ue 材质贴图Tiling repeat

拖出一个TexCoord,代表坐标,拖出一个参数,代表次数,如下操作:为了实现Tiling,你需要修改Texture Coordinate节点的UV值。这可以通过简单的数学运算来完成,例如乘以一个数值。例如,如果你想要纹理平铺两次,你可以创建一个Scalar Parameter(标量参数)节点,设置其值为2,然后将其输出乘以Texture Coordinate节点的输出。这会将UV坐标翻倍,从而导致纹理在U和V方向上平铺两次。贴图显然不符合逻辑,太大,并且是一次性贴图。换一个红砖纹理,就看清了,砖太大了。

2024-06-26 21:26:33 830

原创 极简opencv操作xml文件

修改xml文件,先产生一个临时文件,拷贝,修改,改名,使用opencv 非常简单地就可以搞定配置xml文件。

2024-06-13 07:34:27 429

c++ RTP 发送h264

使用c++ 封装了rtp 发送h264 的代码

2024-10-31

libxcam 得windows版本

libxcam得windows版本,剔除了linux下编译得部分,加上了windows 编译得部分,花了大量得时间

2024-10-28

sha256 算法,可以用于计算sha

纯c实现的sha256 算法,使得不用包含其他

2024-10-28

socket 网络的封装,包含linux,windows, ipv4 ipv6 广播,多播等 ,一个头文件,一个cpp

socket 网络的封装,包含linux,windows, ipv4 ipv6 广播,多播等 ,一个头文件,一个cpp,使用方便,直接将两个文件加入到自己的工程中就可以使用,各类编译器适用

2024-10-23

opencv hand openpose

使用opencv c++ 来判别手指和关节点

2023-07-26

使用qt的webengine让客户端嵌入网页

使用qt的webengine来嵌入网页到客户端程序里面

2023-07-19

windows网络转发服务程序

为了在windows网关上转发tcp数据,使用了c# 调用了windows的netsh命令,来增加,删除规则,使得数据能够通过程序进行转发。

2023-07-10

大华摄像头转发到外网接收程序

大华摄像头里面直接配置外网的IP地址和端口,推流到外网,使用websocket建立h264服务

2022-11-06

websocket c语言实现

websocket c语言实现, 包含httpparser, sha1 算法,wsparser,实现了websocket 服务器的协议部分。vs 作为ide,可修改到linux下实现

2022-10-07

c++mongoose 实现httpserver,httpclient

使用mongoose实现了httpserver,httpclient,websocketserver

2022-09-30

qt websocket 客户端 多线程使用

qt 使用QWebSocket 创建websocket客户端来读取数据,异步链接,并且放入到线程中去执行,线程池的基础,代码使用两个用户,放入到一个线程中执行,同理,可以多个用户放入到多个线程中执行,为线程池执行websocket client 打下了基础。

2022-09-16

udp tunnel 转udp 到 tcp

UDPTunnel is a small program which can tunnel UDP packets bi-directionally over a TCP connection. Its primary purpose (and original motivation) is to allow multi-media conferences to traverse a firewall which allows only outgoing TCP connections.

2022-07-19

ppt 转化成html5

使用java poi 来读ppt文件,转化成为html5 文件,方便网站阅读

2022-07-08

c++使用libcurl上传和下载资源

c++使用libcurl上传和下载资源,封装了库,带lib文件,带nodejs测试服务端

2022-06-11

web摄像头rtsp协议

使用web usb摄像头,live555, ffmpeg硬件编码,制作rtsp 多摄像头服务器

2022-05-31

onnxruntime gpu

onnxruntime gpu版本推理库文件,包含头文件,lib库文件,dll 动态库文件,用于c++开发

2022-05-31

qt c++ dialog 异形窗口+半透明窗体制作

qt c++ dialog 异形窗口+半透明窗体制作,让不一样的窗口展现在大家面前 使用setmask函数+ QRegion方式去设置一个dialog,让dialog半透明并且挖去一个洞

2022-05-24

2d平面在3d中展示,使用threejs

2d平面在3d中展示,使用threejs,使得2d渲染的平面div在3d世界上真实展示,并且真实显示和响应按钮事件。

2022-05-02

qt下写的内存池和线程调用

其实和qt无关,不过既然已经使用qt,就加上吧,无论使用qt与否,都额可以使用,限制为片元固定大小内存,非固定内存内存池可以看我的其他文章,线程调用,完整的例子。

2022-04-26

vue+nodejs 将canvas发布到dlna投屏服务

1 将html5 得cancas抓取h264 2 将h264使用websocket传输出去 3 启动server,启动dlna服务程序 4 restfulserver,vue前端获取所有大屏 5 投屏

2022-03-18

player_ok.zip

ffmpeg 播放器

2021-07-20

ipfsclient.rar

ipfs 星际文件系统的c++客户端

2021-07-20

c# use c++ mfc.zip

c# 使用MFC窗体并传递信息

2021-07-14

3d-bim-models-threejs-master.zip

用threejs展示三维bim模型

2021-07-08

TensorFlow-Fully-Convolutional-Image-Classification.zip

残差网络探测图片带模型

2021-07-06

restful.zip java springboot 基础http

java srpingboot 基础啊

2021-06-26

HiRedis.zip hiredis 和自己封装的客户端

c++使用hiredis 和封装的客户端 访问redis

2021-06-26

Whiteboard.zip wcf电子白板

c# wcf 电子白板

2021-06-09

WinAudioRecord_ok.zip directshow 录制音频 faac编码

directshow 录制音频 faac编码

2021-06-04

nodejs的io获取,包括cpu,disk等

获取内存,cpu使用率,磁盘,网络,网络连接的nodejs程序

2021-06-04

test.rar进程通信范例

c++ 和nodejs进行最简单的通信

2021-06-01

stdfure.zip

c++使用std::future 和std::async 同步线程

2021-05-29

HttpClient.zip

http client mongoose

2021-05-27

mongoose_wsclient.zip

mongoose 的websocket示例代码

2021-05-27

labelImg.zip

labelimg 训练标注工具

2021-03-19

webgl.zip的例子

webgl的例子,简单易懂

2021-03-18

FFmpegRTSPServer.rar

ffmpeg 和 live555 组成rtsp server传输实时流。ffmpeg编码

2021-03-14

appvideo 2维视频.rar

websocket 链接服务器显示h264 视频,注意没有服务器,服务器自己要写

2021-03-14

thinkjsdemo.zip

thinkjs 使用sqlite的demo

2021-03-14

ThreeJSPotCloud.zip

threejs 画点云数据

2021-03-13

空空如也

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

TA关注的人

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