- 博客(1079)
- 收藏
- 关注
原创 论文Feature-Fused SSD: Fast Detection for Small Objects 详解(包括代码详解)
在有限的图像分辨率和包含有限信息的情况下,检测图像或者视频中的小目标是具有很大的挑战,但是大量的方法中都是以牺牲速度来提升精度。为了快速检测小目标,同时保持精度不下降是本文主要的目的。目标检测算法,提出了多层特征融合的方法,目的在于融合上下文信息。为了提升检测小目标的精度,本文设计了两个特征融合模块,其中融合操作包含拼接和逐元素求和,这两种方法对于最终的检测效果有所区别。
2024-11-02 13:07:55 763
原创 论文FSSD: Feature Fusion Single Shot Multibox Detector详解(代码详解)
算法提出一种新的特征融合方法,并且速度上只有一点下降,相比于检测准确率的提升是值得的。具体的方法是:对不同层不同尺度的特征进行拼接,随后通过下采样得到新的特征金字塔,最后的输出层具有不同感受野大小,分别用于检测不同尺度的物体。注:其实融合模块从整体模型架构里面就已经可以清楚是怎么实现的了。算法特征金字塔检测算法不能很好的融合不同尺度的特征,因此。提出了新的特征融合方式,从而提升原有的。作者认为最初的SSD。的效果是最好的,并且速度()上也占据了一定的优势。综合实验的效果来看,
2024-11-02 13:07:16 511
原创 论文ASSD: Attentive Single Shot Multibox Detector详解(包含代码详解)
进行特征融合发现并没有提升模型的性能,反而降低了模型的性能,作者认为可能是来自不同层的特征图具有不同的尺度和感受野,如果直接融合之后中和了相对重要的layer3层信息和抑制了layer3层关键的特征信息。注:我们要注意的是论文中指定了对于conv3,8,9输出特征层的anchor高宽比率={1,2,1/2,3,1/3},其他层输出的anchor高宽比率={1,2,1/2}。注:注意这里的07++12的意思是07的训练集和验证集+12的训练集和验证集。注:受到FSSD融合方法的启发,通过对最后的。
2024-11-02 13:06:42 566
原创 论文Receptive Field Block Net for Accurate and Fast Object Detection详解(+代码详解)
整体模型架构RFB模块根据提出的RFB方法原理以及和模块结合,得到RFB和RFB-s两个模块,RFB和RFB-s不同之处在于多一个分支,使用不对称的卷积核大小,主要是为了减少计算量的开销。不同空间感受野方法的对比不同空间感受野方法的对比:a图是inception中采用不同卷积核大小拼接之后所提取的特征图感受野;b图是DeepLab中提出的空洞卷积池化操作;c图是采用的可变形卷积得到的效果;d是本文提出RFB模块提取的特征。从效果上来看,RFB。
2024-11-02 13:05:54 554
原创 论文Distribution Matching for Crowd Counting中人群统计损失(C Loss),最优化传输损失(OT Loss)以及总的变化损失(TV Loss)
论文,并对其进行了详解,其中涉及的主要内容以及公式的含义也讲解了。但是其中算法的具体实现以及。我们并没有进行细讲,本篇博文主要是对论文中算法具体实现一个详解。在之前的一篇博文中我们已经讲解了。sinkhorn迭代算法。
2024-10-25 20:25:44 758
原创 论文Distribution Matching for Crowd Counting详解
DM-Count证明了使用高斯核对真实的点标注进行高斯平滑对于模型的泛化性能是有损害的,并且将人群统计作为一个分布问题来看待,提出采用最优化损失函数)作为预测密度图和真实结果之间的评价对于空间定位具有提升,虽然最优化传输损失对于空间定位有提升,但是当图像中的人群数比较稀疏的时候,只有最优化传输损失是不够的,因此提出采用总的变化损失)来弥补这个问题,并且最后还从高斯平滑方法的泛化误差边界和DM-Count损失函数的泛化误差边界。
2024-10-23 18:22:27 884
原创 Qt 6.6.0 Quick实现QQ的登录界面(简单易懂)
前面我们一直都是对QT中C++代码的案例进行实现和讲解,如果一直是那样的讲解的话,可能大家都感觉到厌烦了,而且学习QT也不仅仅只是掌握C++配合界面的开发,QT中本身的工具就很丰富,因此,这里使用QT Quick实现一个QQ的登录界面。
2024-10-18 13:03:40 1009
原创 深度学习之Seq2Seq机器翻译模型部署入门 (五),案例实战值得一看(PyTorch,Android Studio,torchscript,optimize_for_mobile)
链接提取码:knu2前面的四篇文章主要是讲解了基于Android系统和不同框架以及不同类型中间表示格式的图像分类,目标检测和图像分割模型部署,这篇文章主要讲解基于序列到序列的机器翻译(seq2seq machine translate)。这篇文章中我们已经讲解了基于transformer的机器翻译,并且将其使用gradio轻量级的框架进行了部署,关于机器翻译的大致推理和训练过程我们之前已经讲解,这篇文章主要讲解seq2seq模型在Android部署实现过程以及注意事项。
2024-10-13 12:51:05 981
原创 深度学习之图像和目标检测模型基于pnnx工具转ncnn部署于Android入门 (四),案例实战值得一看(PyTorch,Android Studio,NCNN,PNNX)
使用第三方库来做 PyTorch 部署优势,一个最主要的优势就是可以在你的目标平台上获得最快的推理速度,TensorRT 在 NVIDIA 的 GPU 上最快,OpenVINO 在 Intel 的 CPU 上最快,那比如可能 ncnn 或者 TNN 在手机端 CPU 会更快一点。随着Android studio的更新,同时为了了解不同领域模型的部署以及给大家讲解代码的实现,因此通过写博文和视频讲解,更加细致地给大家讲解其中会遇到哪些难点以及需要避免的问题。汇编级优化,充分利用硬件资源,提供极快的计算速度。
2024-10-10 12:01:34 589
原创 论文Domain-General Crowd Counting in Unseen Scenarios(DCCUS)详解以及对应代码详解
元训练涉及在多个不同但相关的任务上训练一个元学习者(或元模型)。目的在于提取有效的学习策略,从而使模型在后续的元测试阶段能更有效地解决新任务。
2024-10-07 16:37:58 738
原创 深度学习之图像分割模型部署入门 (三),案例实战值得一看(PyTorch,Android Studio,ONNX,optimize_for_mobile)
从ONNX和使用的情况来看,对于ONNX中间格式表示进行推理更加的稳定,除了对于pytorch官方提供的一些目标检测模型在转换为ONNX中间格式存在问题以外,其他目前没有太大的问题。但是对于中间表示格式存在的问题比较大,当模型结构比较复杂的时候,使用和会发现保存的模型在推理阶段结果是错误的,如果使用保存模型的话,中间特别容易出现问题,如果模型比较复杂或者中间的数据格式存在字典之类的就容易出现问题,因此建议还是使用ONNX中间表示格式。
2024-10-06 18:08:12 906
原创 QT 6.6.0 中腾讯优图NCNN环境配置以及基于PNNX转NCNN模型文件实现图像分割
我们已经讲解了关于通过PNNX将模型转换为NCNN之后在QT中实现的目标检测,并且给出了从环境的配置以及到最终的案例实现,并且我们还尝试以onnx作为中间格式转NCNN和给出一些存在的问题,最终选择以PNNX作为转换工具更加适合。我相信如果小伙伴已经看了前面关于ONNX转NCNN和PNNX工具转NCNN的案例实现,已经有了很大的收获,我也建议小伙伴先看前面的两篇文章,再来看这篇更加的合适。本文主要是基于PyTorch官方提供的分割模型。
2024-10-03 14:59:13 1213
原创 QT 6.6.0 中腾讯优图NCNN环境配置以及基于PNNX转NCNN模型文件实现目标检测
上一篇博文我们已经讲解了NCNN的相关应用介绍,NCNN的源码编译以及在QT 6.6.0中使用NCNN等相关问题和注意事项,最终通过加载自定义模型和PyTorch官方提供的的分类模型实现了简单的图像分类。本文主要是基于上一篇文章环境的配置实现NCNN在QT中的目标检测,目标检测相比于图像分类的实现过程相对复杂,尽管我们之前有很多文章都列举了目标检测的应用。除了图像分类和目标检测,像其他领域的如图像分割读者也可以进行尝试。
2024-10-03 14:58:09 934
原创 QT 6.6.0 中腾讯优图NCNN环境配置以及基于ONNX转NCNN模型文件实现图像分类
NCNN从2012开创之初作为移动端轻量级的模型部署框架,对其总结如下:ncnn从设计之初就深刻考虑了手机端的部署和使用,具有无第三方依赖、跨平台的特点,手机端CPU的速度快于目前所有已知的开源框架。框架由推出,旨在为移动设备提供高效的神经网络计算能力。ncnn支持卷积神经网络,支持多输入和多分支结构,能够处理复杂的网络结构,如vgg、、resnet、squeezenet等。此外,ncnn不依赖任何第三方库,完全使用实现,支持跨平台编译和运行,包括、、、、等系统。
2024-09-30 15:28:30 842
原创 深度学习之模型部署入门 (二),案例实战值得一看(PyTorch,Android Studio,optimize_for_mobile)
提取码:hjtf基本上一篇模型部署实战案例的讲解,这篇博文将在上一篇的基础上进行小改进,因为之前的模型部署都是将模型转换为ONNX中间格式,而本篇博文将模型文件转换为格式,虽然只是格式变了,但是在转换以及使用的过程中需要注意一些地方,并且在Android中模型部署的实现过程也发生了很大的变化。问题1:ONNX和torchscript之间区别和联系。
2024-09-30 15:27:22 685
原创 深度学习之模型部署入门 (一),案例实战值得一看(PyTorch,ONNX,ONNX Runtime,Flask,Android Studio,Gradio,Streamlit)
网上不仅仅是文章或者视频都有模型部署的讲解,但是感觉还是并没有更深入的将模型部署概念和实际结合起来,也许概念上已经讲的很好了,但是实际案例方面并没有更多更深入的讲解,导致自己以前学习相关“模型部署”的时候都只是文字或者口头上去说。其中支持PyTorch,TensorFlow,Caffe2以及MXNet等框架和不同的平台,由于其应用广泛,因此支持的人也非常的多,ONNX还提供了标准化的算子,用于模型的基本运算。注:这里面有一部分并没有使用过,但是感觉有必要列举出来,大家根据自己掌握的框架和工具来使用即可。
2024-09-24 22:33:28 1185
原创 深度学习之迁移学习和微调入门,文章就看这一篇(详解 + 实验证明)
为了解决大部分人都能在下游任务或者自己的领域训练一个效果比较好的模型,采用迁移学习和微调是目前最好的选择,不需要大规模的训练数据集标注,节约的成本和时间。迁移学习所使用的预训练模型是在通用大型数据上训练得到的,虽然这些所说的“通用大型数据”和自己的子任务数据分布还是存在差异,但是模型已经在大规模数据集上学习到了相关的泛化知识,如何将这些泛化知识迁移到我们的子任务中呢?于是采用“迁移学习和微调”。
2024-09-14 12:58:25 1092
原创 QT 6.6.0 + FFmpeg + SDL2实现音频视频播放(音视频播放改进-快进和快退)
上一篇文章我们已经讲解了关于音视频播放的同步改进,主要是大致讲解了实现的思路以及一些地方需要注意的难点。这篇文章主要是在前面改进的基础上实现视频播放的快进和快退实现,那么像播放速度,暂停,调整音量等功能呢?这些要等后期慢慢进行改进,一步一步的来,不然代码多了就不好讲解和理解了。和。
2024-09-07 15:49:20 1367
原创 QT 6.6.0 + FFmpeg + SDL2实现音频视频播放(音视频播放同步改进)
其实在前面的视频播放器实现的过程中我们就已经视频和音频的运行比较流畅(),但是其实很多视频并不是这样的,因此,我们需要将视频和音频进行同步,就像所说的,可以将音频同步到视频,或者将视频同步到音频,再或者两者同步到外部时钟。虽然我们前面都采用了多线程,互斥量和条件变量操作,但是还是需要进行改进,这一系列的改进不仅仅是因为实现视频和音频的同步播放,而且方便功能的拓展。
2024-09-06 18:29:31 907
原创 QT 6.6.0 + FFmpeg + SDL2实现音频视频播放(视频帧播放多线程改进)
前一篇博文我们已经讲了关于视频播放的进一步改进,之所以会这样做的原因还是因为后期在拓展功能的时候更加的方便,比如快进,快退等功能。这篇博文主要是对视频帧读取,解码以及显示部分进行了拆解,将视频帧读取和解码部分分别放到了不同的线程,并且其中还使用了定时器,互斥量和条件变量,细节请看代码,同时也会视频讲解。注:可以看到这个视频帧播放流程其实看了代码之后并没有像上面画的流程图那么简单,其中很多细节之处都省略了,视频代码讲解不封将细讲。注:关于音频数据播放部分的流程实现之前的视频已经讲解,请看。
2024-09-04 19:24:21 1348
原创 QT 6.6.0 + FFmpeg + SDL2实现音频视频播放(改进)
第一篇关于FFmpeg + SDL2实现视频播放的博文仅仅只是实现了视频的播放,并没有实现音频的播放;而这篇博文还是关于FFmpeg + SDL2实现视频播放,到这里,可能会有小伙伴会问了,怎么还是音视频播放呢?如果看了第二篇关于FFmpeg + SDL2实现视频播放博文的小伙伴应该知道,那篇博文中我们最终确实是实现了音视频播放,并且其中使用了多线程 + 互斥量 + 条件变量,但是也有小伙伴应该发现了如果要把该功能拓展到比如实现暂停,快进等功能的话,不容易。
2024-09-03 16:53:36 1279
原创 QT 6.6.0 + FFmpeg + SDL2实现视频播放器(视频和音频同时播放-改进)
在前面的文章已经实现了一个简单的视频播放,但是前面实现的视频播放功能中不包含音频播放,并且界面也实现的比较简单,只是一个简单视频播放弹出窗口。因此,本文基于上一次的视频播放进行改进,不仅仅实现了视频 + 音频的播放,同时界面也更加的完善,相比于其他实现的更加容易理解。但是其中需要了解以及注意的地方非常多,这也是为什么花了比较长的时间才完成了这个功能。
2024-08-31 22:17:52 1134
原创 QT 6.6.0 + FFmpeg + SDL2实现MP4视频播放(过程详解)
前面我们已经实现了录音功能,但是里面关于音频的解码部分并没有讲的很清楚(因为那不是重点,重点是录音),因此后期会继续去搞清楚再来讲解。文本主要是讲解使用QT 6.6.0 + FFmpeg + SDL2实现视频播放,其中采用FFmpeg对视频解码,同时也采用了SDL2多线程功能防止主线程阻塞。
2024-08-28 10:45:55 858
原创 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 1114
原创 QT 6.6.0 + SDL2 + SDL2_mixer实现音频播放器(改进)
上一篇博文利用,可以看到上次我们实现不仅仅是加载WAV格式的音频文件,还可以加载MP3等格式的音频文件呢,因此本文主要是QT 6.6.0 + SDL2 + SDL2_mixer继续改进音频播放器,建议读者先去看前面几篇篇博文的内容,然后来看本文也需要会更好理解。
2024-08-25 13:57:16 1084
原创 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 836
原创 QT 6.6.0 中SDL2库的基本使用以及利用SDL2库创建的界面实现音频播放(过程详解)
上一篇博文主要是讲解了,本文才进入主题,主要是对SDL2库的基本使用,了解了SDL2的使用基础上之后,后期对其进行拓展使用将会快速的上手,并且可以了解到SDL2的应用非常广泛。而且使用起来也比较灵活,在某些应用上和OpenCV有类似之处。
2024-08-24 12:01:49 1024
原创 QT 6.6.0 中基于SDL2库实现WAV音频格式的播放(过程详解)
本文主要是在QT中基于SDL2库实现音频播放功能,原因之一是因为QT实现界面功能更加的简单,如果直接采用SDL2库实现界面功能和音频播放功能的话会更加的复杂。在之前我们已经使用QT中自带的mediamulti实现了音频播放,并且代码看起来更加简洁,为什么还要使用SDL2实现音频播放呢?原因是SDL2可以支持不仅仅是音频,还支持键盘,鼠标,操纵杆等操作。以及,建议读者先直接看本文的讲解以及源码。注:关于怎么编译源码以及涉及几种方式,请看以下链接:(本文是直接用的编译好的源码)
2024-08-23 13:01:03 884
原创 论文The Effectiveness of a Simplified Model Structure for Crowd Counting(FFNet)详解
当前的人群统计模型方法比较复杂,使用简单的 结构构建一个高性能的人群统计模型。采用多尺度特征融合的方法主要目的是对不同尺。第二点:一个多尺度特征融合结构,这个多尺度特征。融合结构包含三个分支,并且融合的方法采用直。第一点:采用已有的分类模型。
2024-08-20 16:07:15 823
原创 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 663
原创 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 1485
原创 PyTorch加载预训练目标检测模型实现物体检测,同时将预训练模型转换为ONNX模型文件(过程详解)
本文主要是直接利用PyTorch官方提供的预训练目标检测模型对物体进行检测,在此之前已经提及使用官方提供的预训练目标检测模型进行迁移训练自己的目标检测模型,这篇文章之所以再次提及主要是更加仔细的对其进行实现以及ONNX模型文件的转换,为后面目标检测模型在QT中基于OpenCV的使用打下基础。
2024-08-16 20:33:00 755
原创 接触计算机专业 => 学习计算机&学习编程 => 模仿代码 => 开始理解代码 => 提升自我(C/C++/Python/深度学习-PyTorch&TensorFlow&PaddlePaddle)
总结一点就是如果自己在接触一门语言之前,对这门语言没有一点了解,那么可以根据相关的视频从头开始学习,但是如果有了该语言一定基础的小伙伴就不要从头开始学习,我比较喜欢找一些简单的案例开始学习,从简单的案例中学习会进步的更快并且时间上也会节省很多,我们学习的过程中不要试图把所有的东西都记住,而是在学习的过程中去总结和掌握。“有时候做的越多并不是越好的,明确自己的方向,做出正确的选择可能才是最重要的”,我相信每个人都有自己的观点,不要因为我的观点而影响自己。努力很重要,选择同样很重要。
2024-08-16 15:56:05 506
原创 QT 6.6.0 基于OpenCV中的cv::dnn::ClassificationModel实现图像分类
没有本质的区别,但是实现的方式有所区别,建议读者先去看这篇博文之后再来看本文。关于ONNX模型文件的转换建议看。本文主要是利用cv::dnn::ClassificationModel实现图像分类,和。QT 6.6.0基于OpenCVONNX模型文件实现图像分类。第三步:预测类别概率以及对应类别索引。
2024-08-15 22:46:57 984
原创 QT 6.6.0 基于OpenCV加载.pth模型文件转换之后的ONNX模型文件,并且实现图像分类
本文主要是基于QT中OpenCV的使用以及深度学习中图像分类来实现的,建议读者先看之前QT 6.6.0中OpenCV的环境的配置(注意:由于本文图像分类算法采用PyTorch框架实现的,因此只用到。)和图像分类算法实现(
2024-08-15 22:46:08 1023
原创 PyTorch 训练之后的网络模型.pth转.onnx文件并对图像进行预测
GitHub源码本文主要是基于算法的实现,将训练得到的.pth权重文件转换为ONNX文件,关于ONNX模型文件介绍如下。
2024-08-14 14:48:30 1243
原创 QT 6.6.0 基于OpenCV实现图像风格的改变(add和subtract)
本文主要是基于cv::add和cv::subtract实现简单的图像风格变换。Qt 6.6.0中基于OpenCV对图像风格变换。
2024-08-13 15:43:54 586
原创 QT 6.6.0 基于OpenCV对图像进行旋转,缩放和裁剪等操作
GitHub源码本文主要是基于前面两篇文章来的,建议读者先去看关于QT中OpenCV环境的配置以及基本使用博文,然后来看本篇博文。
2024-08-13 14:05:48 1117
原创 QT 6.6.0 中基于OpenCV的图像变换以及基于鼠标点击移动事件的图像绘制
功能2:选择绘制的图像形状,如矩阵,线性型等。但是像圆形的绘制并没有给出鼠标点击和移动绘制方法,采用了默认的绘制方法,读者可以自己实现。之后,关于OpenCV的基本使用,比通过改变阈值的方法对图像的转换,通过鼠标点击和移动事件实现图形的绘制。功能1:打开图像并显示图像,然后选择对图像变换的阈值方法,通过滑动条改变阈值大小从而对图像进行变换;本文主要是基于在QT中配置OpenCV环境。Qt种OpenCV对图像变换以及绘制图形。,在源码的基础上进行改进,建议直接看。即可,比较容易理解。
2024-08-08 12:20:50 1032
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人