- 博客(44)
- 收藏
- 关注
原创 YOLOv4
YOLOv4 是一种先进的目标检测算法,属于 YOLO(You Only Look Once)系列的第四代版本。它在保持了 YOLO 系列算法速度优势的同时,显著提升了检测精度。数据增强Bag of freebies 指的是那些不增加模型复杂度,也不增加推理的计算量,通过改进模型和数据的预处理,来提高模型的准确度。Bag of freebies(BOF)只增加训练成本,但是能显著提高精度,并不影响推理速度数据增强:调整亮度、对比度、色调、随机缩放、剪切、翻转、旋转。
2025-05-19 13:56:27
417
原创 使用 PyTorch 实现 CBOW 词向量模型
例如,对于句子 "We are about to study",如果我们以 "about" 为目标词,上下文可以是 ["We", "are", "to", "study"]。CBOW 模型不仅为我们提供了一种获取词向量的方法,更重要的是,它揭示了语言中词与词之间的语义关系。对于每个目标词,我们提取其前后的上下文词,形成训练样本。在前向传播过程中,我们首先获取上下文词的嵌入表示,将它们相加得到一个综合表示,然后通过 ReLU 激活函数和线性变换,最后使用 log_softmax 函数得到每个单词的概率分布。
2025-05-19 12:35:29
948
原创 使用 OpenCV 和 EigenFace 算法实现简单人脸识别
读取多张训练图像,并对其进行预处理(调整图像大小)。为训练图像分配对应的标签。使用 EigenFace 算法训练人脸识别模型。读取一张待识别的图像,同样进行预处理。使用训练好的模型对待识别图像进行预测,判断其所属类别。在待识别图像上标注识别结果,并展示图像。为四张训练图像分别定义标签,这里0和1代表不同的类别。假设标签0对应一类人(例如cl),标签1对应另一类人(例如kk),通过这种方式为训练图像打上类别标识,以便模型学习不同类别图像的特征。
2025-05-19 12:23:59
506
原创 OpenCV 结合 FisherFace 算法实现人脸实时识别
该代码实现了一个简单的人脸实时识别系统。具体功能包括:从摄像头实时读取视频帧,检测帧中的人脸,对检测到的人脸进行特征提取和识别,根据识别结果在人脸框上方添加中文标签显示识别的人物名称和置信度。同时,代码还定义了一个函数用于向图像中添加中文文本,以便在识别结果上显示中文信息。通过以上代码,我们实现了一个简单的人脸实时识别系统。训练数据量小:仅使用了少量图像进行训练,可能导致识别准确率不高。可以增加训练数据,提高模型的泛化能力。识别算法单一:使用的 FisherFace 算法在复杂场景下可能效果不佳。
2025-05-10 13:17:21
364
原创 OpenCV 实战:文档检测与透视变换
这段代码实现了从摄像头读取图像,检测图像中的文档轮廓,并对检测到的文档进行透视变换,将其转换为正视的视角。具体步骤包括:从摄像头读取图像,对图像进行灰度化和高斯滤波处理,使用 Canny 边缘检测算法检测图像边缘,查找图像中的轮廓并筛选出可能的文档轮廓,对检测到的文档轮廓进行透视变换,最后将变换后的图像进行二值化处理。[0, 0],cv_show函数用于显示图像,函数用于对输入的四个点进行排序,函数用于对图像进行透视变换。通过本文的解析,我们学习了如何使用 OpenCV 实现文档检测与透视变换。
2025-05-10 13:14:57
176
原创 基于 PyTorch 的食物图像分类实战:从数据处理到模型训练
本项目旨在通过深度学习技术,对不同种类的食物图像进行分类。数据集包含多种食物的图像,我们将利用 PyTorch 框架构建一个卷积神经网络(CNN)模型,实现对这些食物图像的准确分类。nn.ReLU(),nn.ReLU(),nn.ReLU(),该模型包含三个卷积层和一个全连接层。每个卷积层后接一个 ReLU 激活函数和一个最大池化层,用于提取图像特征并降低数据维度。最后,通过全连接层将提取的特征映射到 20 个类别上(假设数据集中有 20 种食物)。我们使用交叉熵损失函数。
2025-05-10 13:12:09
449
原创 OpenCV 模板匹配实战:快速定位图像中的目标物体
这段代码实现了一个简单的模板匹配应用,其核心功能是在一张目标图像中,找到与模板图像最匹配的区域,并使用矩形框将该区域标记出来。具体来说,代码读取目标图像和模板图像,通过模板匹配算法计算两者之间的相似度,进而确定模板在目标图像中的位置,最后将匹配区域用矩形框标注并展示。通过以上代码,我们成功实现了基于 OpenCV 的模板匹配,在目标图像中找到了与模板图像匹配的区域。然而,实际应用中可能会遇到一些挑战,例如光照变化、目标物体旋转或缩放等情况,会影响匹配效果。多尺度匹配。
2025-05-10 13:08:44
572
原创 OpenCV 实战:身份证号码识别系统实现
这段代码实现了一个完整的身份证号码识别流程,包括模板预处理、图像读取与预处理、数字区域定位、数字分割以及基于模板匹配的数字识别。通过对身份证图像的处理,最终识别出身份证号码并在原图上标注出来。模板匹配原理:通过比较待识别图像区域与模板图像的相似性来确定最匹配的结果。形态学操作:顶帽变换用于增强图像中的明亮区域,闭运算用于填充区域空洞、连接相邻元素。轮廓分析:利用轮廓的几何特征(如宽高比)筛选出感兴趣的区域。图像预处理:包括灰度转换、二值化、形态学操作等,提高图像质量和识别准确率。
2025-05-10 13:05:28
456
原创 基于朴素贝叶斯的文本情感分析实战:从数据处理到模型应用
这段代码实现了一个完整的文本情感分析流程,包括数据读取、分词处理、停用词过滤、特征提取、模型训练和预测评估。具体来说,它使用差评和优质评价两类文本数据,通过朴素贝叶斯算法训练一个分类器,用于判断文本的情感倾向(积极或消极)。本文通过详细解析代码,展示了如何使用朴素贝叶斯算法构建一个简单的文本情感分析模型。特征工程优化尝试使用 TF-IDF 代替词频计数,以更好地表示文本特征增加更多特征,如词性、情感词典得分等调整 ngram 范围和 max_features 参数,优化特征维度模型选择与调优。
2025-05-10 13:01:19
738
原创 OpenCV 轮廓分析实战
这段代码主要展示了 OpenCV 中轮廓分析的多种操作,包括图像读取与预处理、轮廓检测、轮廓特征计算、轮廓筛选、轮廓近似以及轮廓可视化等。通过分析手机图像(phone.png),实现了对手机轮廓的提取和形状分析。通过本文的代码解析,我们学习了 OpenCV 中轮廓分析的核心技术,包括图像预处理、轮廓检测、特征计算、筛选、几何拟合和近似等操作。工业检测:检测产品表面的缺陷或异物医学图像处理:识别 X 光、CT 图像中的病变区域自动驾驶:识别道路标志、车辆和行人机器人视觉:识别和抓取物体。
2025-05-10 12:58:34
524
原创 OpenCV 实现视频运动目标检测
通过以上代码,我们实现了基于 OpenCV 的视频运动目标检测。在实际应用中,可根据具体场景调整参数,如背景减除器的历史帧数、阈值等,以优化检测效果。此外,还可以结合其他计算机视觉技术,如光流法、深度学习目标检测模型,进一步提升检测的准确性和鲁棒性。希望本文的代码解析能为大家在计算机视觉领域的学习和实践提供帮助,欢迎在评论区交流讨论!上述博客全面剖析了运动目标检测代码。若你在代码运行中遇到问题,或想对代码进行拓展,都能随时和我交流。
2025-05-10 12:53:28
444
原创 YOLO目标检测
YOLO()是一种基于深度学习的目标检测算法,由等人于2016年提出。它的核心思想是将目标检测问题转化为一个回归问题,通过一个神经网络直接预测目标的类别和位置。YOLO算法将输入图像分成SxS个网格,每个网格负责预测该网格内是否存在目标以及目标的类别和位置信息。此外,YOLO算法还采用了多尺度特征融合的技术,使得算法能够在不同尺度下对目标进行检测。相比于传统的目标检测算法,如R-CNNFast R-CNN和等,YOLO算法具有更快的检测速度和更高的准确率。
2025-05-10 00:37:03
739
原创 PCA降维
PCA 降维是一种强大而有效的数据预处理技术,尤其适用于数据维度较高、存在冗余信息的场景。通过本文的实战案例,我们不仅了解了 PCA 的原理,还通过代码验证了其在实际应用中的效果。然而,PCA 也并非完美无缺。它是一种无监督学习方法,在降维过程中没有考虑数据的标签信息,可能会丢失一些对分类任务至关重要的特征。此外,PCA 的结果依赖于数据的分布,对于非线性数据,降维效果可能不理想。在实际应用中,我们需要根据数据特点和任务需求,合理选择降维方法,灵活运用 PCA 等技术,为机器学习模型的优化提供有力支持。
2025-05-10 00:11:18
967
原创 BP神经网络
BP 神经网络作为神经网络发展史上的重要算法,为深度学习的繁荣奠定了基础。通过本文对其原理、结构、代码实现、应用及局限的介绍,相信你对 BP 神经网络有了更深入的理解。尽管它存在一些局限性,但随着技术的不断发展,各种改进方法和优化策略不断涌现,BP 神经网络仍然在众多领域发挥着重要作用,值得我们持续深入研究和探索。以上博客全面呈现了 BP 神经网络的知识。如果你想了解 BP 神经网络的改进方法,或者针对特定应用场景深入探讨,欢迎随时分享你的想法。
2025-05-10 00:02:05
1255
原创 TextRNN 模型实现微博文本情感分类
本文通过对一段代码的详细解析,展示了基于 PyTorch 和 TextRNN 实现微博文本情感分类的全过程。从环境准备、数据处理,到模型构建与训练,每个环节都紧密相连。在实际应用中,我们可以进一步优化模型结构,如引入注意力机制;调整超参数;尝试不同的预训练词向量或预训练模型,以提升分类准确率。希望本文能为大家在 NLP 领域的学习和实践提供帮助,也欢迎大家在评论区交流探讨。
2025-05-09 23:56:49
871
原创 过采样处理
本文通过对信用卡交易数据集的处理,详细展示了从数据预处理、样本不均衡处理、模型调优到阈值调整的完整流程。在实际应用中,还可以尝试其他机器学习算法(如随机森林、支持向量机等),或者结合集成学习方法进一步提升模型的性能。同时,随着数据的不断更新和业务场景的变化,持续优化模型也是保障信用卡欺诈检测准确性的关键。希望本文的实践经验能够为从事金融风控领域的读者提供有益的参考。
2025-05-04 18:22:03
307
原创 爬虫的应用
通过上述步骤,我们完成了从原始评价文本数据到清洗分词的全流程处理。这一系列操作是中文文本处理的基础且关键环节,为后续诸如情感分析、文本分类、主题建模等高级自然语言处理任务奠定了坚实的基础。后续,我们可以基于这些清洗后的数据,进一步探索文本向量化(如使用词袋模型、TF-IDF、Word2Vec 等方法),并结合机器学习或深度学习模型进行情感倾向判断,区分差评和优质评价;也可以进行文本相似度计算,挖掘相似评价内容,为商家改进服务、优化产品提供有价值的参考。
2025-05-04 17:10:36
528
原创 主成分分析(PCA)与逻辑回归在鸢尾花数据集上的实践与效果对比
本文通过对鸢尾花数据集的处理,详细展示了主成分分析(PCA)降维的过程,并对比了降维前后逻辑回归模型的性能。PCA 作为一种强大的数据预处理技术,能够帮助我们在不损失过多信息的前提下降低数据维度,提高模型的训练效率和泛化能力。然而,并非在所有情况下降维都能提升模型性能,具体是否需要使用 PCA 以及如何选择合适的主成分数量,还需要根据数据集的特点和具体的任务需求进行综合考虑。在实际的机器学习项目中,不断尝试不同的数据预处理方法和模型,进行性能对比和调优,是提高模型效果的关键所在。
2025-05-04 17:05:04
1181
原创 用卷积神经网络 (CNN) 实现 MNIST 手写数字识别
通过上述代码实践,我们成功利用卷积神经网络实现了 MNIST 手写数字识别。从数据加载、模型构建到训练测试,每个环节都紧密相连,展示了 CNN 在图像识别任务中的强大能力。
2025-05-04 16:57:44
1031
原创 用 PyTorch 轻松实现 MNIST 手写数字识别
通过上述步骤,我们基于 PyTorch 完成了 MNIST 手写数字识别任务。从数据加载、模型构建,到训练和测试,每个环节都紧密相连。这个项目不仅让我们熟悉了 PyTorch 的基本使用流程,也对神经网络的工作原理有了更直观的认识。后续我们可以通过调整模型结构、超参数等方式进一步优化模型性能,探索更多深度学习的奥秘。
2025-05-04 16:53:55
686
原创 循环神经网络RNN---LSTM
RNN:在每个时间步,接收当前输入和上一时刻的隐藏状态,通过激活函数计算当前隐藏状态和输出,信息传递较为直接,但容易出现梯度消失或爆炸问题,导致长序列信息难以有效传递和利用。LSTM:在每个时间步,输入门决定当前输入信息有多少要存入细胞状态,遗忘门控制细胞状态中需要遗忘的信息,输出门根据细胞状态和当前隐藏状态决定输出内容。这种机制使得 LSTM 能够选择性地记忆和遗忘信息,更有效地处理长序列中的关键信息。
2025-04-26 13:26:13
923
原创 自然语言处理——语言转换
自然语言处理中的语言转换技术在过去几十年取得了显著进展,从早期基于规则和统计的方法,发展到如今基于深度学习的强大模型,为人们的生活和工作带来了极大的便利。然而,这些技术仍然面临诸多挑战,如提高语音识别的准确率、改善机器翻译的质量、实现更自然的文本风格转换等。未来,随着深度学习技术的不断发展,以及与其他领域如知识图谱、强化学习的融合,语言转换技术有望取得更大突破。通过将知识图谱融入机器翻译模型,可以更好地处理语义歧义,提高翻译的准确性;
2025-04-26 09:49:35
807
原创 深度学习:迁移学习
自定义了一个 food_dataset 类,继承自 torch.utils.data.Dataset。init方法:解析包含图像路径和标签的文本文件,把图像路径和标签分别存到 self.imgs 和 self.labels 中。len方法:返回数据集的大小。getitem方法:根据索引读取图像,对图像进行预处理,将标签转换为张量,然后返回图像和标签。
2025-04-24 23:50:11
1325
原创 深度学习中的卷积神经网络
池化层中,设定窗口的行和列尺寸,以及选择最大池化或平均池化方式,接着让输入图像在窗口上滑动,选取最大值或平均值输出;,这里x代表输入图像,y是输出图像,k为卷积核,P和Q是卷积核的行和列尺寸。同心距指的是卷积核与输入图像间的距离,一般设为 1。它借助卷积操作提取图像特征,具体而言,是将名为卷积核(Kernel)的小矩阵在图像上滑动,对每个位置做元素乘积的求和。CNN 在图像分类领域表现卓越,能精准识别各类图像所属类别,像在识别猫、狗、汽车等不同物体的图像时,展现出极高准确率。
2025-04-18 15:50:42
1207
原创 opencv人脸性别年龄检测
人脸检测:首先需要在输入的图像或视频帧中检测出人脸。OpenCV 常用的人脸检测方法基于 Haar 级联检测器或基于深度学习的目标检测算法(如 SSD、YOLO 等)。Haar 级联检测器通过构建一系列简单的 Haar 特征,并利用 AdaBoost 算法训练出一个强分类器来识别图像中的人脸区域。基于深度学习的方法则通过在大规模人脸数据集上训练卷积神经网络(CNN),学习人脸的特征模式,从而实现更准确的人脸检测。。
2025-04-10 12:36:03
1305
原创 图像透视转换
综上所述,这段代码的主要功能是读取一张发票图像,对图像进行预处理和轮廓检测,找到发票的轮廓并进行近似,然后对图像进行透视变换,将发票校正为矩形,最后对校正后的图像进行二值化处理、形态学处理和旋转操作,得到最终的处理结果。four_point_transform函数:实现四点透视变换,根据输入的四个点计算新图像的宽度和高度,生成目标点矩阵,计算透视变换矩阵,最后应用透视变换得到变换后的图像。图像显示与处理:显示透视变换后的图像,将图像转换为灰度图,使用 OTSU 算法进行二值化处理,最后显示二值化后的图像。
2025-04-10 01:10:16
674
原创 OpenCV 图像拼接
综上所述,这段代码的主要功能是读取两张图像,提取图像的 SIFT 特征,进行特征匹配和筛选,计算透视变换矩阵,将图像 B 进行透视变换并与图像 A 进行拼接,最后显示拼接结果。透视变换:使用 cv2.warpPerspective 函数将图像 B 进行透视变换,变换后的图像大小为图像 B 和图像 A 的宽度之和,高度为图像 B 的高度。增强图像信息:拼接过程中,由于多幅图像的重叠部分包含了相同场景的不同视角信息,拼接后的图像能够融合这些信息,从而增强图像的细节和纹理,使图像更加清晰和准确。
2025-04-10 00:43:55
1589
原创 opencv指纹匹配
定义显示函数:cv_show 函数用于显示图像,它接受两个参数,name 是显示窗口的名称,img 是要显示的图像。筛选匹配结果:通过比较最近邻和次近邻的距离,如果最近邻的距离小于次近邻距离的 0.8 倍,则认为这个匹配是可靠的,将其添加到 ok 列表中。提取匹配点坐标:根据匹配点的索引,从关键点列表中提取出匹配点的坐标,并分别存储在 pt1_1、pt1_2、pt2_1 和 pt2_2 中。显示结果:使用 cv_show 函数显示绘制了匹配点和连线的图像,并打印出 src1 和 src2 的验证结果。
2025-04-09 23:58:18
939
原创 OpenCV 图像旋转
OpenCV 提供了方便快捷的方法来实现图像旋转,通过 cv2.getRotationMatrix2D 和 cv2.warpAffine 函数,我们可以轻松完成图像的旋转操作。旋转操作会改变图像中像素的位置,从而得到新的图像布局。cv2.ROTATE_90_COUNTERCLOCKWISE 表示逆时针旋转 90 度,旋转后的图像存储在 rotated_image1 中。cv2.ROTATE_90_CLOCKWISE 表示顺时针旋转 90 度,将旋转后的图像存储在 rotated_image 中。
2025-04-09 23:39:38
835
原创 OpenCV 物体追踪
模板匹配是一种简单直接的追踪方法。在物体追踪中,它根据目标物体的历史运动信息预测其在当前帧中的位置,然后结合当前帧的观测值(如特征点匹配结果)对预测值进行更新,从而得到更准确的目标位置估计。success是一个布尔值,表示是否成功跟踪到目标,box是一个包含目标位置和大小的矩形框信息(格式为(x, y, w, h),其中(x, y)是矩形框左上角的坐标,w和h分别是矩形框的宽度和高度)。特征匹配与更新:在后续的视频帧中,通过比较当前帧中的特征与初始帧或上一帧中提取的特征,找到与目标物体最匹配的区域。
2025-04-09 23:01:09
1116
原创 OpenCV 表情识别
表情识别则是计算机视觉领域的重要分支,旨在通过分析图像或视频中的人脸特征,判断出人物所表达的情感状态,如高兴、悲伤、愤怒、惊讶等。特征提取:从检测到的人脸区域中提取出能够反映表情特征的信息,如眼睛、嘴巴等部位的形状和位置变化。这是表情识别的基础,只有准确地检测到人脸,才能进行后续的表情分析。表情分类:将提取到的特征输入到分类器中,根据预先训练好的模型判断人脸的表情类别,如高兴、悲伤、愤怒等。在安防监控中,表情识别可以用于检测人员的异常表情,如愤怒、恐惧等,及时发现潜在的安全隐患。
2025-04-09 22:45:17
1063
原创 OpenCV 风格迁移
对于风格特征,则通过计算风格图像和生成图像在多个浅层 CNN 层的 Gram 矩阵之间的 MSE,Gram 矩阵能够反映特征之间的相关性,以此来让生成图像学习到风格图像的风格。它能够将一幅图像(风格图像)的艺术风格,如梵高画作的笔触风格、莫奈的色彩风格等,迁移到另一幅图像(内容图像)上,从而创造出兼具内容图像的主体结构和风格图像艺术风格的全新图像。CNN 的不同层能够提取图像不同层次的特征,较浅层的特征通常对应图像的边缘、纹理等局部细节,这些特征与图像的风格紧密相关;frame 是读取到的帧图像。
2025-04-09 22:29:16
1004
原创 OpenCV 关键点定位
关键点定位在计算机视觉领域占据着核心地位,它能够精准识别图像里物体的关键特征点。OpenCV 作为功能强大的计算机视觉库,提供了多种实用的关键点定位方法。本文将详细阐述关键点定位的基本原理,深入探讨 OpenCV 中几种常用的关键点定位算法,通过具体代码示例展示其使用方法,并介绍关键点定位在不同领域的实际应用。在当今数字化时代,计算机视觉技术发展迅猛,广泛应用于图像识别、目标跟踪、机器人导航等众多领域。
2025-04-09 22:02:47
544
原创 OpenCV 光流估计
光流估计是计算机视觉中的一个重要技术,它可以帮助我们理解图像中物体的运动信息。通过 OpenCV 提供的光流估计函数,我们可以方便地实现光流估计的功能。希望本文能够帮助你入门光流估计,并在实际项目中应用这一技术。
2025-04-09 21:36:36
1221
原创 OpenCV 微笑检测
本文介绍了如何使用 OpenCV 实现微笑检测。通过加载预训练的 Haar 级联分类器,我们可以快速有效地在图像和视频中检测人脸和微笑。微笑检测不仅是一个有趣的应用,还具有广泛的实际用途。希望本文能够帮助你入门 OpenCV 微笑检测,并激发你对计算机视觉的兴趣。
2025-04-09 20:51:25
1127
原创 TF-IDF(1)
pd.DataFrame() 创建一个 pandas 的 DataFrame 对象 df,其中每一行代表一个文档,每一列代表一个关键词,单元格中的值为该关键词在对应文档中的 TF - IDF 值。TF - IDF 的核心思想是:如果一个词在某一文档中频繁出现(词频高),同时在其他文档中很少出现(逆文档频率高),那么这个词对于该文档就具有较高的区分度和重要性。关键词提取:通过计算文档中每个词的 TF - IDF 值,提取出 TF - IDF 值较高的词作为文档的关键词,帮助用户快速了解文档的主题。
2025-04-02 11:40:12
1026
原创 k-Means 算法
K-Means 算法的目标是将数据集划分为 K 个不同的簇(Cluster),使得每个簇内的数据点尽可能相似,而不同簇之间的数据点尽可能不同。具体来说,它通过迭代地更新簇中心,将数据点分配到最近的簇中心所属的簇中,以最小化每个数据点到其所属簇中心的距离平方和,这个距离平方和也被称为畸变函数(Distortion Function)或损失函数(Loss Function)。分配数据点:对于数据集中的每个数据点,计算它与 K 个簇中心的距离,将其分配到距离最近的簇中心所属的簇中。
2025-04-02 10:44:27
593
原创 支持向量机
导入鸢尾花的数据集数据集获取方式链接: https://pan.baidu.com/s/1qLgmKxlC8FvWlDy1t-QKog 提取码: kijy。
2025-03-13 02:32:31
831
原创 随机森林算法
首先我们还是一样导入数据集数据集的获取方式:链接: https://pan.baidu.com/s/1mdGT86rj5Ikyo3pti3ANLA 提取码: ican如下图所示return plt。
2025-03-13 01:56:18
708
原创 贝叶斯算法
贝叶斯算法的作用:贝叶斯算法是基于贝叶斯定理的一类算法,用于解决概率推理和决策问题。贝叶斯定理的公式:其中,P(A∣B)是在事件B发生的条件下事件A发生的概率,也称为后验概率;P(B∣A)是在事件A发生的条件下事件B发生的概率,P(A)是事件A发生的先验概率,P(B)是事件B发生的概率。贝叶斯算法是一种具有坚实理论基础和独特优势的机器学习算法,在许多领域都有广泛的应用,如文本分类、医疗诊断、垃圾邮件过滤等。
2025-03-13 01:20:43
763
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人