- 博客(1070)
- 收藏
- 关注
原创 论文Domain-General Crowd Counting in Unseen Scenarios(DCCUS)详解以及对应代码详解
元训练涉及在多个不同但相关的任务上训练一个元学习者(或元模型)。目的在于提取有效的学习策略,从而使模型在后续的元测试阶段能更有效地解决新任务。
2024-10-07 16:37:58 389
原创 深度学习之图像分割模型部署入门 (三),案例实战值得一看(PyTorch,Android Studio,ONNX,optimize_for_mobile)
从ONNX和使用的情况来看,对于ONNX中间格式表示进行推理更加的稳定,除了对于pytorch官方提供的一些目标检测模型在转换为ONNX中间格式存在问题以外,其他目前没有太大的问题。但是对于中间表示格式存在的问题比较大,当模型结构比较复杂的时候,使用和会发现保存的模型在推理阶段结果是错误的,如果使用保存模型的话,中间特别容易出现问题,如果模型比较复杂或者中间的数据格式存在字典之类的就容易出现问题,因此建议还是使用ONNX中间表示格式。
2024-10-06 18:08:12 670
原创 QT 6.6.0 中腾讯优图NCNN环境配置以及基于PNNX转NCNN模型文件实现图像分割
我们已经讲解了关于通过PNNX将模型转换为NCNN之后在QT中实现的目标检测,并且给出了从环境的配置以及到最终的案例实现,并且我们还尝试以onnx作为中间格式转NCNN和给出一些存在的问题,最终选择以PNNX作为转换工具更加适合。我相信如果小伙伴已经看了前面关于ONNX转NCNN和PNNX工具转NCNN的案例实现,已经有了很大的收获,我也建议小伙伴先看前面的两篇文章,再来看这篇更加的合适。本文主要是基于PyTorch官方提供的分割模型。
2024-10-03 14:59:13 1185
原创 QT 6.6.0 中腾讯优图NCNN环境配置以及基于PNNX转NCNN模型文件实现目标检测
上一篇博文我们已经讲解了NCNN的相关应用介绍,NCNN的源码编译以及在QT 6.6.0中使用NCNN等相关问题和注意事项,最终通过加载自定义模型和PyTorch官方提供的的分类模型实现了简单的图像分类。本文主要是基于上一篇文章环境的配置实现NCNN在QT中的目标检测,目标检测相比于图像分类的实现过程相对复杂,尽管我们之前有很多文章都列举了目标检测的应用。除了图像分类和目标检测,像其他领域的如图像分割读者也可以进行尝试。
2024-10-03 14:58:09 904
原创 QT 6.6.0 中腾讯优图NCNN环境配置以及基于ONNX转NCNN模型文件实现图像分类
NCNN从2012开创之初作为移动端轻量级的模型部署框架,对其总结如下:ncnn从设计之初就深刻考虑了手机端的部署和使用,具有无第三方依赖、跨平台的特点,手机端CPU的速度快于目前所有已知的开源框架。框架由推出,旨在为移动设备提供高效的神经网络计算能力。ncnn支持卷积神经网络,支持多输入和多分支结构,能够处理复杂的网络结构,如vgg、、resnet、squeezenet等。此外,ncnn不依赖任何第三方库,完全使用实现,支持跨平台编译和运行,包括、、、、等系统。
2024-09-30 15:28:30 826
原创 深度学习之模型部署入门 (二),案例实战值得一看(PyTorch,Android Studio,optimize_for_mobile)
提取码:hjtf基本上一篇模型部署实战案例的讲解,这篇博文将在上一篇的基础上进行小改进,因为之前的模型部署都是将模型转换为ONNX中间格式,而本篇博文将模型文件转换为格式,虽然只是格式变了,但是在转换以及使用的过程中需要注意一些地方,并且在Android中模型部署的实现过程也发生了很大的变化。问题1:ONNX和torchscript之间区别和联系。
2024-09-30 15:27:22 655
原创 深度学习之模型部署入门 (一),案例实战值得一看(PyTorch,ONNX,ONNX Runtime,Flask,Android Studio,Gradio,Streamlit)
网上不仅仅是文章或者视频都有模型部署的讲解,但是感觉还是并没有更深入的将模型部署概念和实际结合起来,也许概念上已经讲的很好了,但是实际案例方面并没有更多更深入的讲解,导致自己以前学习相关“模型部署”的时候都只是文字或者口头上去说。其中支持PyTorch,TensorFlow,Caffe2以及MXNet等框架和不同的平台,由于其应用广泛,因此支持的人也非常的多,ONNX还提供了标准化的算子,用于模型的基本运算。注:这里面有一部分并没有使用过,但是感觉有必要列举出来,大家根据自己掌握的框架和工具来使用即可。
2024-09-24 22:33:28 1072
原创 深度学习之迁移学习和微调入门,文章就看这一篇(详解 + 实验证明)
为了解决大部分人都能在下游任务或者自己的领域训练一个效果比较好的模型,采用迁移学习和微调是目前最好的选择,不需要大规模的训练数据集标注,节约的成本和时间。迁移学习所使用的预训练模型是在通用大型数据上训练得到的,虽然这些所说的“通用大型数据”和自己的子任务数据分布还是存在差异,但是模型已经在大规模数据集上学习到了相关的泛化知识,如何将这些泛化知识迁移到我们的子任务中呢?于是采用“迁移学习和微调”。
2024-09-14 12:58:25 848
原创 QT 6.6.0 + FFmpeg + SDL2实现音频视频播放(音视频播放改进-快进和快退)
上一篇文章我们已经讲解了关于音视频播放的同步改进,主要是大致讲解了实现的思路以及一些地方需要注意的难点。这篇文章主要是在前面改进的基础上实现视频播放的快进和快退实现,那么像播放速度,暂停,调整音量等功能呢?这些要等后期慢慢进行改进,一步一步的来,不然代码多了就不好讲解和理解了。和。
2024-09-07 15:49:20 1328
原创 QT 6.6.0 + FFmpeg + SDL2实现音频视频播放(音视频播放同步改进)
其实在前面的视频播放器实现的过程中我们就已经视频和音频的运行比较流畅(),但是其实很多视频并不是这样的,因此,我们需要将视频和音频进行同步,就像所说的,可以将音频同步到视频,或者将视频同步到音频,再或者两者同步到外部时钟。虽然我们前面都采用了多线程,互斥量和条件变量操作,但是还是需要进行改进,这一系列的改进不仅仅是因为实现视频和音频的同步播放,而且方便功能的拓展。
2024-09-06 18:29:31 882
原创 QT 6.6.0 + FFmpeg + SDL2实现音频视频播放(视频帧播放多线程改进)
前一篇博文我们已经讲了关于视频播放的进一步改进,之所以会这样做的原因还是因为后期在拓展功能的时候更加的方便,比如快进,快退等功能。这篇博文主要是对视频帧读取,解码以及显示部分进行了拆解,将视频帧读取和解码部分分别放到了不同的线程,并且其中还使用了定时器,互斥量和条件变量,细节请看代码,同时也会视频讲解。注:可以看到这个视频帧播放流程其实看了代码之后并没有像上面画的流程图那么简单,其中很多细节之处都省略了,视频代码讲解不封将细讲。注:关于音频数据播放部分的流程实现之前的视频已经讲解,请看。
2024-09-04 19:24:21 1299
原创 QT 6.6.0 + FFmpeg + SDL2实现音频视频播放(改进)
第一篇关于FFmpeg + SDL2实现视频播放的博文仅仅只是实现了视频的播放,并没有实现音频的播放;而这篇博文还是关于FFmpeg + SDL2实现视频播放,到这里,可能会有小伙伴会问了,怎么还是音视频播放呢?如果看了第二篇关于FFmpeg + SDL2实现视频播放博文的小伙伴应该知道,那篇博文中我们最终确实是实现了音视频播放,并且其中使用了多线程 + 互斥量 + 条件变量,但是也有小伙伴应该发现了如果要把该功能拓展到比如实现暂停,快进等功能的话,不容易。
2024-09-03 16:53:36 1253
原创 QT 6.6.0 + FFmpeg + SDL2实现视频播放器(视频和音频同时播放-改进)
在前面的文章已经实现了一个简单的视频播放,但是前面实现的视频播放功能中不包含音频播放,并且界面也实现的比较简单,只是一个简单视频播放弹出窗口。因此,本文基于上一次的视频播放进行改进,不仅仅实现了视频 + 音频的播放,同时界面也更加的完善,相比于其他实现的更加容易理解。但是其中需要了解以及注意的地方非常多,这也是为什么花了比较长的时间才完成了这个功能。
2024-08-31 22:17:52 1101
原创 QT 6.6.0 + FFmpeg + SDL2实现MP4视频播放(过程详解)
前面我们已经实现了录音功能,但是里面关于音频的解码部分并没有讲的很清楚(因为那不是重点,重点是录音),因此后期会继续去搞清楚再来讲解。文本主要是讲解使用QT 6.6.0 + FFmpeg + SDL2实现视频播放,其中采用FFmpeg对视频解码,同时也采用了SDL2多线程功能防止主线程阻塞。
2024-08-28 10:45:55 816
原创 QT 6.6.0 中基于FFmpeg + SDL2 + SDL2_mixer实现音频录音(过程详解)
显示设备信息以及录音,播放录音等信息的编辑框;录音文件显示列表,点击列表中的录音即可进行录音转换以及录音播放;save打开要保存录音的文件目录;start开始录音;Stop Recode停止录音;PCM2WAV根据选择列表中的录音文件PCM转换为WAV文件格式,然后将转换之后的录音文件用于播放;Open打开PCM文件或者WAV文件;Player播放当前选中列表中的WAV格式录音文件;Pause Player停止录音;Close关闭录音程序。
2024-08-26 19:41:32 1086
原创 QT 6.6.0 + SDL2 + SDL2_mixer实现音频播放器(改进)
上一篇博文利用,可以看到上次我们实现不仅仅是加载WAV格式的音频文件,还可以加载MP3等格式的音频文件呢,因此本文主要是QT 6.6.0 + SDL2 + SDL2_mixer继续改进音频播放器,建议读者先去看前面几篇篇博文的内容,然后来看本文也需要会更好理解。
2024-08-25 13:57:16 1063
原创 QT 6.6.0 中基于SDL2,SDL2_ttf,SDL2_image,SDL2_mixer实现音频播放器(改进版)
上一篇博文实现了简单的音频播放功能,可以看到上次我们并没有实现暂停等功能,而且也只能加载WAV格式的音频文件,但是如果要加载MP3等格式的音频文件呢,因此本文主要是基于SDL2, SDL2_ttf, SDL2_image ,SDL2_mixer来实现一个简单的音频播放功能,建议读者先去看前一篇博文的内容,然后来看本文也需要会更好理解。
2024-08-24 22:28:48 818
原创 QT 6.6.0 中SDL2库的基本使用以及利用SDL2库创建的界面实现音频播放(过程详解)
上一篇博文主要是讲解了,本文才进入主题,主要是对SDL2库的基本使用,了解了SDL2的使用基础上之后,后期对其进行拓展使用将会快速的上手,并且可以了解到SDL2的应用非常广泛。而且使用起来也比较灵活,在某些应用上和OpenCV有类似之处。
2024-08-24 12:01:49 976
原创 QT 6.6.0 中基于SDL2库实现WAV音频格式的播放(过程详解)
本文主要是在QT中基于SDL2库实现音频播放功能,原因之一是因为QT实现界面功能更加的简单,如果直接采用SDL2库实现界面功能和音频播放功能的话会更加的复杂。在之前我们已经使用QT中自带的mediamulti实现了音频播放,并且代码看起来更加简洁,为什么还要使用SDL2实现音频播放呢?原因是SDL2可以支持不仅仅是音频,还支持键盘,鼠标,操纵杆等操作。以及,建议读者先直接看本文的讲解以及源码。注:关于怎么编译源码以及涉及几种方式,请看以下链接:(本文是直接用的编译好的源码)
2024-08-23 13:01:03 858
原创 论文The Effectiveness of a Simplified Model Structure for Crowd Counting(FFNet)详解
当前的人群统计模型方法比较复杂,使用简单的 结构构建一个高性能的人群统计模型。采用多尺度特征融合的方法主要目的是对不同尺。第二点:一个多尺度特征融合结构,这个多尺度特征。融合结构包含三个分支,并且融合的方法采用直。第一点:采用已有的分类模型。
2024-08-20 16:07:15 788
原创 FCN图像分割和QT 6.6.0 加载分割FCN_Resnet50.ONNX模型文件进行图像分割(过程详解)
最终库版本选择qt==6.6.0(不一定是这个版本)本文主要是基于PyTorch官方提供的分割预训练模型转换为ONNX之后应用到QT中,和上一节讲到的在QT中加载目标检测ONNX模型一样,加载ONNX分割模型也需要注意torch版本的问题,在QT中基于OpenCV加载分割的ONNX模型文件,在处理数据以及结果的过程中相对较复杂,还是建议读者先看前几篇博文,再来看本文也许会更好理解。
2024-08-18 20:44:40 637
原创 yolov5目标检测和QT 6.6.0 基于OpenCV加载yolov5.onnx模型文件实现目标检测
QT6.6.0加载yolov5的ONNX模型文件进行目标检测目标检测拓展应用两款IP Camera+YOLOV3进行目标检测(手机摄像头作为电脑摄像头使用)使用pytorch实现预训练模型迁移学习中的目标检测使用MobileNet_SSD进行目标检测Opencv实现目标检测目标检测算法(开端)图像分类,图像识别,目标检测之间的区别基于darknet框架+yolov3训练自己的数据集。
2024-08-18 18:40:51 1335
原创 PyTorch加载预训练目标检测模型实现物体检测,同时将预训练模型转换为ONNX模型文件(过程详解)
本文主要是直接利用PyTorch官方提供的预训练目标检测模型对物体进行检测,在此之前已经提及使用官方提供的预训练目标检测模型进行迁移训练自己的目标检测模型,这篇文章之所以再次提及主要是更加仔细的对其进行实现以及ONNX模型文件的转换,为后面目标检测模型在QT中基于OpenCV的使用打下基础。
2024-08-16 20:33:00 733
原创 接触计算机专业 => 学习计算机&学习编程 => 模仿代码 => 开始理解代码 => 提升自我(C/C++/Python/深度学习-PyTorch&TensorFlow&PaddlePaddle)
总结一点就是如果自己在接触一门语言之前,对这门语言没有一点了解,那么可以根据相关的视频从头开始学习,但是如果有了该语言一定基础的小伙伴就不要从头开始学习,我比较喜欢找一些简单的案例开始学习,从简单的案例中学习会进步的更快并且时间上也会节省很多,我们学习的过程中不要试图把所有的东西都记住,而是在学习的过程中去总结和掌握。“有时候做的越多并不是越好的,明确自己的方向,做出正确的选择可能才是最重要的”,我相信每个人都有自己的观点,不要因为我的观点而影响自己。努力很重要,选择同样很重要。
2024-08-16 15:56:05 493
原创 QT 6.6.0 基于OpenCV中的cv::dnn::ClassificationModel实现图像分类
没有本质的区别,但是实现的方式有所区别,建议读者先去看这篇博文之后再来看本文。关于ONNX模型文件的转换建议看。本文主要是利用cv::dnn::ClassificationModel实现图像分类,和。QT 6.6.0基于OpenCVONNX模型文件实现图像分类。第三步:预测类别概率以及对应类别索引。
2024-08-15 22:46:57 965
原创 QT 6.6.0 基于OpenCV加载.pth模型文件转换之后的ONNX模型文件,并且实现图像分类
本文主要是基于QT中OpenCV的使用以及深度学习中图像分类来实现的,建议读者先看之前QT 6.6.0中OpenCV的环境的配置(注意:由于本文图像分类算法采用PyTorch框架实现的,因此只用到。)和图像分类算法实现(
2024-08-15 22:46:08 971
原创 PyTorch 训练之后的网络模型.pth转.onnx文件并对图像进行预测
GitHub源码本文主要是基于算法的实现,将训练得到的.pth权重文件转换为ONNX文件,关于ONNX模型文件介绍如下。
2024-08-14 14:48:30 1170
原创 QT 6.6.0 基于OpenCV实现图像风格的改变(add和subtract)
本文主要是基于cv::add和cv::subtract实现简单的图像风格变换。Qt 6.6.0中基于OpenCV对图像风格变换。
2024-08-13 15:43:54 577
原创 QT 6.6.0 基于OpenCV对图像进行旋转,缩放和裁剪等操作
GitHub源码本文主要是基于前面两篇文章来的,建议读者先去看关于QT中OpenCV环境的配置以及基本使用博文,然后来看本篇博文。
2024-08-13 14:05:48 1093
原创 QT 6.6.0 中基于OpenCV的图像变换以及基于鼠标点击移动事件的图像绘制
功能2:选择绘制的图像形状,如矩阵,线性型等。但是像圆形的绘制并没有给出鼠标点击和移动绘制方法,采用了默认的绘制方法,读者可以自己实现。之后,关于OpenCV的基本使用,比通过改变阈值的方法对图像的转换,通过鼠标点击和移动事件实现图形的绘制。功能1:打开图像并显示图像,然后选择对图像变换的阈值方法,通过滑动条改变阈值大小从而对图像进行变换;本文主要是基于在QT中配置OpenCV环境。Qt种OpenCV对图像变换以及绘制图形。,在源码的基础上进行改进,建议直接看。即可,比较容易理解。
2024-08-08 12:20:50 1016
原创 QT 6.6.0中OpenCV三种环境的配置方法以及基本使用例子
GitHub源码本文虽然将会讲解关于QT中配置OpenCV环境的流程,虽然已有文章对其进行了详解,但是本文将从直接使用OpenCV官方提供的编译文件和自己使用MSVC(Microsoft Visual C++ Compiler)编译源代码两种方法讲解,过程中需要注意的问题都会列举出来,我相信读者看完之后将会有不少的收获。环境配置完成之后就是代码的测试,最后给出一个demo测试,源代码已经给出。注:关于对源代码的编译之前的一篇文章已经讲过(
2024-08-07 19:28:05 801
原创 QT 6.6.0基于UDP协议实现群聊功能(过程详解)
也就是打开多个程序运行界面,就可以使用相同的地址以及IP绑定。本文主要是基于UDP协议来实现的群聊功能,主要是利用了UDP协议的广播机制,因此读者在阅读本文之前,建议读者首先去了解一下前面几篇博文关于UDP协议的知识点,本文是基于前面几篇博文来实现的。1.实现的思路如下:假设这里有5个主机,每个主机打开一个客户端界面,然后进行群聊,每个主机都可以看到当前哪些主机在线以及上线时间。由于我们这里实际只有一台主机,要模拟多台主机的话,在UDP协议中绑定IP和端口的过程,采用QT中提供的。共享地址和端口的机制。
2024-08-05 16:31:40 642 7
原创 QT 6.6.0基于UDP协议实现广播和多播机制(过程详解)
注:其实只要知道它们之间的区别以及大致用途即可,具体的实现看代码(代码和上次博文写的大致差不多,只是有些地方稍微不同,因此,读者可以看之前的视频讲解或者代码)。进行改进实现广播和多播的机制,从而实现一个服务端可以同时向多个客户端发送消息。同时建议读者前去看前一篇博文UDP协议的通信机制,然后来看这篇博文会好很多。注:虽然连接的热点,但是由于只有一台主机,因此,这里采用共享地址的方式,也就是一个主机可以同时使用相同的IP地址和端口号。实现广播和多播机制之前,首先来了解什么是广播和多播机制以及它们之间的区别。
2024-08-04 21:31:03 905
原创 QT6.6.0实现基于UDP协议的简单通信(过程详解)
本篇博文主要是介绍基于UDP协议的简单通信,相关的文章也有很多,本文不仅仅让读者理解UDP协议的通信大致流程,而且对UDP和TCP协议之间的通信流程区别。通过demo视频的方式给搭建呈现出来,便于直观的了解。Qt中基于UDP协议的通信。socket测试软件下载。
2024-08-04 13:57:11 986
原创 QT6.6.0基于QTcpSocket和QTcpServer实现多个客户端群聊
本文主要是使用QT基于TCP协议实现一个简单的群聊功能,虽然是一个简单的群聊功能,但是涉及的东西和逻辑性的东西比较多,因此建议初学者首先将前面关于。同时服务端会将当前处于连接状态的客户端ID分别发送到各个客户端,客户端接收并显示当前在线的客户端ID和在线时间,和在线人数。如果有一个客户端发送消息,那么首先发送给服务端,服务端再将消息分别发送给其他的客户端(包括发送消息客户端自身);的知识点看明白之后,再来看本篇文章是比较容易理解的。服务端处于监听状态,然后多个客户端连接服务端;
2024-08-03 16:51:33 561 1
原创 QT6.6.0实现QNetworkInterface网络接口,QHostAddress网络地址IP以及域名解析等相关信息查询。
四个模块,并且对这四个模块分别都以案例的方式给大家呈现出来,为大家的学习提供了一个很好的指引方向,学习到这里,相信读者也有了不少的收获,如果能继续这样学习下去,将会有意想不到的收获。等相关操作,方便大家对这两个类的大致使用有一个初步的认识。QNetworkInterface对本机网络接口。QHostAddress网络地址IP。如今我们已经详解了关于。
2024-08-02 10:30:56 602
原创 QT6.6.0和QT6.0以下的版本实现FTP文件上传和下载(过程详解)
GitHub源码本文主要是实现FTP协议的文件传输,QT实现从FTP服务器下载文件以及从上传文件至FTP服务器,写本文的过程稍微有一点艰辛,原因在于QT6.0版本不再支持FTP协议(被这一点给整惨了)。由于自己使用的QT版本为6.6.0,不再支持FTP协议,因此不能直接使用QNetworkAccessManager来实现FTP文件上传和下载,读者在网上所看到能运行的代码应该都是QT6.0版本以下的,从下面截图内容也可以看到,QT6.0版本及以上都不支持FTP协议。
2024-08-01 18:49:36 1627
原创 QT6.6.0 实现服务端Server和多个客户端Client互相发送文件信息
教程来改进和书写的,其中核心代码部分不变,主要是功能的增加和界面的书写,让界面看起来更加的舒服和容易理解操作过程,对于初学者学习比较友好,建议读者在看这篇文章之前,首先去看一下前两篇关于客户端和服务端的实现。
2024-07-30 20:37:21 376
原创 PyTorch实现一个简单的图像分类(代码详细)
关注我的小伙伴都知道,在很早以前就已经开始写有关深度学习的文章,但是为什么今天还要写一个大家都“听腻”的话题呢!我相信,对于大部分在学习深度学习的小伙伴来说,这个应该是一个很好理解的问题,因为图像分类作为很多算法模型的基础,大家都觉得很简单,虽然简单,但是想要提出一个好的算法很难,如今深度学习火爆已有10年了,为什么现在很多领域算法模型都是基于图像分类模型来的呢或者对其进行改进,思想上并没有太多本质的区别,这也说明了图像分类算法的重要性以及对其一个更加深度理解的重要性。1.本文以手写体数字识别数据集;
2024-07-29 21:41:04 333
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人