【计算机视觉基础CV-图像分类】02-入门详解图像分类、经典数据集、比赛与冠军图像模型演进史
前言
图像分类(Image Classification)是计算机视觉(Computer Vision)中一项基础且核心的任务。简单来说,就是让计算机从给定的类别集合中,为一张输入图片分配一个正确的类别标签。这个过程听起来直观,但背后蕴含的技术挑战可一点也不简单。从早期基于手工特征与浅层模型的图像分类,到如今深度学习卷积神经网络(CNN)统治分类任务的时代,这条技术演进的轨迹几乎勾勒出计算机视觉的半部发展史。
在这篇文章中,我们将聚焦以下内容:
-
图像分类的基本概念:什么是图像分类,它与检测、分割有何不同?
-
常用数据集介绍:从CIFAR-10、CIFAR-100到ImageNet,这些数据集如何推动了图像分类技术的进步?
-
ImageNet比赛与深度学习崛起:ILSVRC竞赛在何种程度上推动了CNN时代的到来?
-
经典模型的兴起与发展:从最初的LeNet-5到AlexNet、ZFNet、VGG、GoogLeNet、ResNet、SENet,它们的结构和创新点是什么?
-
对未来和实践的启示:在理解这些基础与经典后,我们又该如何实际开展图像分类任务的研究和应用?
无论你是计算机视觉初学者,还是有一定基础希望回顾历史脉络的从业者,这篇文章都旨在帮助你从全景角度理解图像分类的生态。
1. 什么是图像分类
图像分类是计算机视觉中最基础、最常见的任务之一。给定一张输入图像,任务是从预定义的类别集合中选择与该图像最匹配的一个或多个类别标签。
举例:假设类别集为 {dog, cat, panda}
,当我们给模型一张熊猫的图片,模型需要通过特征提取与分析,最终给出各类别的概率(如dog:1%,cat:4%,panda:95%),并根据最高概率选择“panda”作为标签,即完成了图像分类任务。
与目标检测、图像分割等其他计算机视觉任务相比,图像分类的要求更“粗”一些,它不关心物体在图中的位置和像素级轮廓,只需判断图中出现了什么。然而,不要小看这个基础任务,其实现难度在过去几十年中一直驱动技术进步,因为要在数百万张图像、数千个类别中找到最匹配的那个标签,模型需要具备极强的特征提取与识别能力。
2. 常用数据集——推动技术进步的关键
数据是深度学习和计算机视觉进步的燃料。没有大规模、高质量数据集的支持,图像分类技术很难取得目前的成就。以下是几个常用、经典的数据集。
2.1 CIFAR-10与CIFAR-100
CIFAR-10数据集包含5万张训练图像和1万张测试图像,每张图像是32×32大小的彩色图片,共有10个类别(如airplane、automobile、bird、cat、dog等),每个类别约6000张图像。CIFAR-10的特色在于图像尺寸小、任务基础,在深度学习刚崛起的早期(2010年前后)是一个非常好的入门数据集。初学者常利用CIFAR-10快速验证模型结构与训练流程。
CIFAR-100与CIFAR-10类似,但包含100个类别,难度更高,每类图像数量也相对较少。这使得CIFAR-100在考验模型对更大类间差异学习、泛化性能方面更具挑战。
这两个数据集可在PyTorch的torchvision.datasets
中轻松加载,并配合transform
进行数据增强(如随机翻转、缩放、颜色变换、归一化),为模型提供多样化的训练样本,提高泛化能力。
2.2 ImageNet
ImageNet是计算机视觉历史上一个里程碑式的数据集。由斯坦福大学李飞飞教授团队主导构建,ImageNet规模巨大,包含超过1400万张有标记的自然图像,并覆盖22000多个类别。这样规模与多样性的图像数据,在深度学习出现之前,是难以想象的资源宝库。
在ImageNet之上举办的ILSVRC( ImageNet Large-Scale Visual Recognition Challenge )从2010年开始,每年都吸引来自全球各大研究机构和公司的团队参与。比赛采用ImageNet的一个子集(1000类,每类约上千张图像),考察算法的分类、定位和识别性能。
2012年,深度学习模型(AlexNet)在ILSVRC取得压倒性胜利,一举将深度学习推上历史舞台。在这之前,传统方法表现平平,深度学习模型的爆发与ImageNet提供的大量数据是密不可分的。
2.3 其他数据集
除了CIFAR和ImageNet,还有许多针对特定任务与领域的数据集,如:
-
MNIST:手写数字(0-9)的黑白图像数据集,是深度学习的入门经典,用于初步尝试CNN结构。
-
Caltech-101/256:涵盖101或256类物体的静态图像,用于早期特征提取器性能验证。
-
COCO:虽然COCO更偏向目标检测和分割,但也可用于分类和场景理解,是现代计算机视觉研究的重要数据源。
数据集的不断丰富和开放,让研究者能在统一基准下客观比较算法性能,加速了模型迭代和技术进步。
3. ImageNet比赛与深度学习崛起
想了解图像分类为何与深度学习如此紧密地联系在一起,就绕不开ImageNet和ILSVRC竞赛。
ILSVRC竞赛从2010年开始举办到2017年最后一届,以ImageNet 1000类数据子集为标准评测任务,包含分类与定位挑战。早期(2010-2011年)无论是手工特征还是浅层模型,分类的Top-5错误率一直在25%-28%左右徘徊,提升缓慢。
3.1 2012年:AlexNet横空出世
2012年冠军:AlexNet,由Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton团队提出,将Top-5错误率直接拉低到约15.3%,远远好于传统方法的26.2%,震惊学界。
AlexNet的成功要点:
-
使用卷积神经网络(CNN),深度达到8层,这在当时是很深的结构。
-
利用GPU加速训练,使大规模数据训练CNN成为可能。
-
使用Dropout等正则化手段防止过拟合。
这次胜利是“深度学习大爆发”的起点,CNN从此成为图像分类的标准工具。
3.2 后续冠军与模型创新
2013年冠军:ZFNet,结构与AlexNet类似,但通过优化卷积层的滤波器大小和参数初始化方式,稍有提升,Top-5错误率降到11.2%左右。这代表模型微调和架构探索在CNN时代的重要性。
2014年亚军:VGG网络,由牛津大学Visual Geometry Group提出。VGG通过使用连续的3×3小卷积核叠加来增加网络深度(如VGG-16有16层深度)。结构简单优雅,让特征更细粒度提取,Top-5错误率达到7.3%。VGG网络至今仍广泛使用,因为其易懂的模块化结构便于迁移与改进。
2014年冠军:GoogLeNet(Inception-v1),引入Inception模块,以多尺度并行卷积提取不同粒度特征,并在网络内进行融合,使参数更高效利用。其Top-5错误率约6.7%,进一步逼近人类水平。“Inception”名字来自电影《盗梦空间》,寓意“need to go deeper”,也向早期的LeNet致敬。
2015年冠军:ResNet,由Microsoft Research提出。ResNet通过引入残差模块(shortcut connections)解决深度网络训练中的梯度消失与退化问题。ResNet-152层深的网络以不到3.6%的错误率刷新纪录,深度学习网络从此可以随意“加深”,深层特征带来更强表示能力。
2017年冠军:SENet(Squeeze-and-Excitation Networks),在经典架构中添加SE模块,通过全局信息重加权通道特征,提高了特征表达的灵活性和辨别力。SENet在ImageNet上再创新低错误率,证明在结构创新之外,关注通道注意力机制也可明显增益。
ImageNet竞赛催生了一批经典架构,从AlexNet到ZFNet、VGG、GoogLeNet、ResNet、SENet,每一代冠军网络都为后续研究者指出新的方向和思路。
4. 从LeNet-5到现代CNN:回顾CNN的演进
谈深度学习时代的辉煌之前,我们不能忽略一个里程碑:LeNet-5。在90年代,深度学习的概念还很小众,硬件限制也使多层神经网络的训练举步维艰。然而,Yann LeCun在1998年就提出了LeNet-5,用于手写数字识别(MNIST数据集)。
4.1 LeNet-5:CNN的启蒙
LeNet-5结构相对简单:
-
输入:32×32的灰度手写数字图像
-
C层:卷积层提取局部特征
-
S层:子采样(pooling)降低数据维度和提升鲁棒性
-
全连接层:整合特征,输出分类结果
LeNet-5已经包含了现代CNN的基本组件(卷积、池化、全连接),为后来的AlexNet及一系列深度CNN奠定框架基础。然而,LeNet-5当时只在小规模数据(MNIST)上取得成功,受限于计算资源和数据规模,没有马上在复杂视觉任务上开花。
但LeNet-5证明了CNN在视觉任务上的可行性和优越性,一旦数据与算力条件成熟(如2010年后),CNN成为不二选择就不足为奇了。
4.2 AlexNet的引爆点
AlexNet与LeNet-5有本质上的传承关系:都是卷积、池化、全连接的CNN结构,但AlexNet更深更宽,并使用ReLU激活函数、GPU加速和Dropout技巧,使CNN在大规模数据集(ImageNet)上大放异彩。
从LeNet-5到AlexNet,跨度十几年,这期间的延迟是因为没有足够的数据和GPU算力。一旦条件成熟,CNN一飞冲天。
5. 冠军网络的设计理念与特点总结
让我们把几个关键模型放在一起回顾,它们的共同点与不同点是什么?
-
LeNet-5(1998):小规模数据上的初级CNN尝试,结构朴素,为后续发展奠基。
-
AlexNet(2012):大数据(ImageNet)+深层CNN+GPU训练,引爆深度学习浪潮。
-
ZFNet(2013):在AlexNet基础上微调结构,显示架构搜索和调优的重要性。
-
VGG(2014):用多个小卷积核堆叠,让网络更深、更精细。深度和易用性成为关键词。
-
GoogLeNet(2014):Inception模块并行多分支结构,提高计算效率和参数利用率,多尺度特征提取思路诞生。
-
ResNet(2015):残差模块解决深度网络训练困难,实现100+甚至1000+层深度网络训练成为可能。“加深网络”成为提升性能的可靠手段。
-
SENet(2017):聚焦通道注意力机制,在已有架构中引入SE模块以提升表示能力,体现微创新的巨大作用。
这些冠军网络从不同角度展示了深度学习在图像分类中的创新方向:深度、宽度、多分支结构、残差连接、注意力机制……每一次改进都带来性能提升与新思路。
6. 图像分类模型的训练与数据增强
有了数据集和网络架构,如何训练出性能优异的模型是另一个重要环节。这里提到几点关键策略:
-
数据增强(Data Augmentation):通过对训练图像进行旋转、缩放、平移、翻转、颜色抖动等操作增加数据多样性,减少过拟合。
-
正则化手段:如Dropout、权值衰减(L2正则)、Batch Normalization、Early Stopping等,保证模型在测试集上有良好的泛化性。
-
优化算法:从早期的SGD到后来的Momentum、Adam、RMSProp等优化器的改进,使训练更稳定、高效。
-
学习率调度:通过动态调整学习率(如Cosine Decay、Step Decay)提升模型收敛速度和最终精度。
现代深度学习框架(如PyTorch、TensorFlow)已经将这些过程高度自动化,研究者可专注于模型结构、数据准备与实验设计。
7. 实际应用与延伸
图像分类在现实世界有大量应用:
-
内容检索与管理:根据图像分类标签对海量图片进行自动归档和检索。
-
医疗影像诊断:将医疗影像分类为正常或有特定病变,为医生辅助诊断提供参考。
-
自动驾驶感知系统:识别路标、车辆类型,对后续决策提供基础信息(虽然自动驾驶更需要检测和分割,但分类特征仍是基础)。
-
电商与推荐系统:根据商品图片自动分类,实现智能推荐,提高用户体验。
此外,很多复杂任务(如物体检测、实例分割、图像描述生成)往往在模型中部分组件要解决子问题:先利用分类模块理解局部特征,再进一步细化到定位与分割。
8. 图像分类技术的未来趋势
虽然经典架构(VGG、ResNet)仍在使用,但随着Transformer在CV中的崛起(Vision Transformer, ViT)和各种Attention机制大行其道,图像分类的范式也在不断更新。未来趋势可能包括:
-
Transformer架构融入:减少卷积依赖,用全局自注意力实现图像理解,在ImageNet上取得与CNN相当甚至更好性能。
-
轻量化模型:在移动端和边缘设备部署要求模型更加高效,如MobileNet、ShuffleNet、EfficientNet的提出,将分类模型压缩到嵌入式设备中仍能保持高精度。
-
自监督与弱监督学习:减少对标注数据的依赖,通过无标签数据中学习特征,然后在下游分类任务中微调提升性能。
-
多模态融合:与NLP结合,使模型不仅能分类图像,还能对图像描述、问答,拓展模型的应用空间。
9. 从入门到实践的建议
对于初学者,建议从CIFAR-10或MNIST这样的简单数据集着手,实现一个简单CNN分类器。熟悉PyTorch或TensorFlow的数据加载与训练流程。
然后尝试迁移到ImageNet子集或花朵分类数据集,体验更大的数据规模与更复杂的模型(如ResNet或VGG)。比较不同数据增强策略和优化方法对性能的影响。
最后,可以尝试阅读经典论文(如AlexNet、VGG、ResNet、GoogLeNet、SENet)原文,了解其背后的设计思想和实验过程。这样的积累有助于形成对图像分类任务的系统性认识。
10. 全文回顾与总结
本文以图像分类为主线,逐步揭示这一任务在计算机视觉领域的地位与作用。从图像分类的定义出发,我们介绍了CIFAR-10、CIFAR-100和ImageNet等关键数据集,阐述了ImageNet及ILSVRC竞赛对深度学习时代的推动作用。
在模型层面,我们回顾了从LeNet-5的萌芽,到AlexNet引爆深度时代,再到VGG、GoogLeNet、ResNet、SENet等冠军模型的演进过程。这些模型的不断创新使图像分类精度迅速逼近并超越人类水平,深度学习成为视觉任务的黄金准则。
我们还讨论了数据增强、正则化、优化算法和学习率调度对于模型训练与泛化性能的重要性。最后,对未来趋势和实践建议进行了展望,为读者提供了进一步探索的方向。
从传统图像处理到深度学习,图像分类技术的变迁映射出计算机视觉领域的快速发展和技术范式转变。作为入门与必经之路,图像分类不仅为研究者提供了测试新思想的通用平台,也在无数实际应用中展示了其价值与潜力。
希望本篇长文能帮助你全面理解图像分类的历史背景、数据基础、模型演进和实战方向,为你的计算机视觉之旅打下坚实基础。
(全文约4000字以上)
本文从定义到数据集,从比赛到经典模型,从历史传承到未来展望,对图像分类这一任务进行了全景式解读。这是计算机视觉初学者进阶和老手回顾历史脉络的良好参考。
相关文章:
【计算机视觉基础CV-图像分类】02-入门详解图像分类、经典数据集、比赛与冠军图像模型演进史
前言 图像分类(Image Classification)是计算机视觉(Computer Vision)中一项基础且核心的任务。简单来说,就是让计算机从给定的类别集合中,为一张输入图片分配一个正确的类别标签。这个过程听起来直观&…...
【机器学习】探索机器学习与人工智能:驱动未来创新的关键技术
探索机器学习与人工智能:驱动未来创新的关键技术 前言:人工智能的核心技术深度学习:自然语言处理(NLP):计算机视觉: 机器学习与人工智能的驱动创新医疗健康领域金融行业智能制造与工业互联网智慧…...
DS二叉树--基于数组存储的构建
题目描述 任意二叉树可以根据完全二叉树性质保存在一个数组中。已知二叉树的数组存储,用程序构建该二叉树。 提示:用递归方法或非递归都可以 输入 第一行输入一个整数t,表示有t个测试数据 第二行起输入二叉树的数组存储结果,空…...
入侵他人电脑,实现远程控制(待补充)
待补充 在获取他人无线网网络密码后,进一步的操作是实现入侵他人电脑,这一步需要获取对方的IP地址并需要制作自己的代码工具自动化的开启或者打开对方的远程访问权限。 1、获取IP地址(通过伪造的网页、伪造的Windows窗口、hook,信…...
STM32基于标准库如何查看时钟主频,100%简单
基于原有的工程写入两行代码,见下图 RCC_ClocksTypeDef get_rcc_clock; RCC_GetClocksFreq(&get_rcc_clock); 进入我们的仿真加入断点,然后在watch1观察变量值数据,然后在计算器计算就能得出,如上图。 但是这样看的PAB1上…...
HarmonyOS NEXT 技术实践-基于意图框架服务实现智能分发
在智能设备的交互中,如何准确理解并及时响应用户需求,成为提升用户体验的关键。HarmonyOS Next 的意图框架服务(Intents Kit)为这一目标提供了强大的技术支持。本文将通过一个项目实现的示例,展示如何使用意图框架服务…...
[原创](Modern C++)现代C++的第三方库的导入方式: 例如Visual Studio 2022导入GSL 4.1.0
[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共23年] 职业生涯: 21年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi、XCode、Eclipse…...
【jenkins插件】
1) 2) 3) 4) 5) 6) 参考: 知识库/运维/Jenkins/01-安装/13-插件.md zfoo/java-developer-document - 码云 - 开源中国...
springboot472基于web网上村委会业务办理系统(论文+源码)_kaic
摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本网上村委会业务办理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数…...
七层网络笔记
首先,用户感知到的只是最上面一层应用层,自上而下每层都依赖于下一层,所以我们从最下一层开始切入,比较好理解 每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件 物理层由来:上面提到&a…...
PostgreSQL编译安装教程
下载安装 1.在家目录创建一个文件夹放下载安装包 mkdir softwarecd software 2.下载文件压缩包 wget https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz 3.解压 tar -xzvf postgresql-16.0.tar.gz 4.编译 在software/postgresql-16.0下 cd software…...
音视频学习(二十四):hls协议
基本原理 HLS协议通过将视频文件切分成多个小的媒体段(通常是10秒左右的.ts文件),并通过HTTP传输给客户端。视频播放过程中,客户端按顺序请求这些小段文件来逐步播放整个视频流。HLS还支持多种码率,以便适应不同网络条…...
pytorch MoE(专家混合网络)的简单实现。
专家混合(Mixture of Experts, MoE)是一种深度学习模型架构,通常用于处理大规模数据和复杂任务。它通过将输入分配给多个专家网络(即子模型),然后根据门控网络(gating network)的输出…...
代码随想录day24 | leetcode 93.复原IP地址 90.子集 90.子集II
93.复原IP地址 Java class Solution {List<String> result new ArrayList<String>();StringBuilder stringBuilder new StringBuilder();public List<String> restoreIpAddresses(String s) {backtracking(s, 0, 0);return result;}// number表示stringb…...
Scala项目(图书管理系统)
3、service BookService package org.app package serviceimport org.app.dao.{BookDAO, BorrowRecordDAO} import org.app.models.{BookModel, BorrowRecordModel}import java.time.LocalDateTime import scala.collection.mutable.ListBuffer// 图书业务逻辑层 class BookS…...
Deepin/Linux clash TUN模式不起作用,因网关导致的问题的解决方案。
网关导致的问题的解决方案 查看路由 ip route寻找默认路由 默认路由应当为Mihomo default dev Mihomo scope link 如果不是,则 sudo ip route add default dev Mihomo在clash TUN开关状态发生变化时,Mihomo网卡会消失,所以提示找不到网卡…...
【macos java反编译工具Java Decompiler】
mac上能用的反编译工具 https://java-decompiler.github.io/...
VLAN数据格式
概念:VLAN叫做虚拟局域网,指在物理网络中根据用于、工作组、应用等进行逻辑划分的局域网,是一个广播域,与用户的物理位置没有关系。 作用:VLAN可以灵活的进行分段和组织,能够实现更好的安全性,…...
Error response from daemon: Get “https://registry-1.docker.io/v2/“ 问题解决
文章目录 一、参考资料二、修改nameserver三、修改daemon.json文件 一、参考资料 问题的根源在于系统每次都会自动修改DNS,所以需要永久修改 linux永久修改dns 二、修改nameserver sudo nano /etc/resolvconf/resolv.conf.d/head 没有该文件的话需要安装 sudo a…...
每天40分玩转Django:Django部署
Django部署 一、今日学习内容概述 学习模块重要程度主要内容生产环境配置⭐⭐⭐⭐⭐settings配置、环境变量WSGI服务器⭐⭐⭐⭐⭐Gunicorn配置、性能优化Nginx配置⭐⭐⭐⭐反向代理、静态文件安全设置⭐⭐⭐⭐⭐SSL证书、安全选项 二、生产环境配置 2.1 项目结构调整 mypr…...
学习threejs,scene.overrideMaterial全局材质效果
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.2 ☘️THREE.Scene 场景1.2 ☘️…...
新版Android Studio 2024.1.2版本,如何通过无线wifi连接手机实现交互
1、首先,先确定手机是否启动了开发者选项 在我的设备 -> 全部参数 -> MIUI版本点击6下 (有的手机是 关于手机 -> 查看手机版本 ) 2、在设置中搜索 开启开发者选项 3、进入开发者选项后,在 调试 中选择 无线调试并选择…...
PTA 时间几何
作者 Happyer 单位 湖北文理学院 乘火车或飞机常有由始发时间历经时间计算终到时间的事儿。我们通过三个 函数来完成,当然,为了存储几点几分这个时间,我们专门定义了一个结构体Time_gxx,你要完成的是写二个函数:1)st…...
事务、管道
目录 事务 相关命令 悲观锁 乐观锁 管道 实例 Pipeline与原生批量命令对比 Pipeline与事物对比 使用Pipeline注意事项 事务 相关命令 命令描述discard取消事务,放弃执行事务块内的所有命令exec执行所有事务块内的事务(所有命令依次执行&#x…...
深入了解蓝牙Profile类型与设备的对应关系
在现代技术中,蓝牙作为一种无线通信技术,广泛应用于各种设备之间的短距离通信。不同的设备在连接时使用不同的蓝牙Profile(配置文件),每种Profile都为特定的设备功能提供支持,例如音频流传输、语音通话、文件传输等。在本文中,我们将详细介绍蓝牙Profile的常见类型及其对…...
net_device结构
net_device是Linux内核中用于表示网络设备的数据结构,它存储了特定网络设备的所有信息,无论是真实设备(如Ethernet)还是虚拟设备(如Bonding或VLAN)。以下是对net_device的详细解析: 一、定义与位置 net_device数据结构定义在Linux内核的include/linux/netdevice.h文件中…...
DuetWebControl 开源项目常见问题解决方案
DuetWebControl 开源项目常见问题解决方案 DuetWebControl A completely new web interface for the Duet electronics [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/du/DuetWebControl 一、项目基础介绍 DuetWebControl 是一个为 RepRapFirmware 设计的完全响…...
c# 不同数据类型转换
namespace Systempublic static class ConvertExtension {public static byte[] ToBinaryByteArray(this byte[] bytes){// 每个字节有 8 位,所以总位数为 bytes.Length * 8byte[] binaryArray new byte[bytes.Length * 8];int index 0;// 遍历每个字节foreach (b…...
2025.01.15python商业数据分析top2
一、 导入项目 导入项目、准备项目数据 import pandas as pd# 文件路径为python文件位置下的相对路径dwxpd.read_excel("电蚊香套装市场近三年交易额.xlsx") fmfzpd.read_excel("防霉防蛀片市场近三年交易额.xlsx") msmcpd.read_excel("灭鼠杀虫剂市…...
软件信息化平台项目投标技术方案中如何进行项目实施方案以及安全质量方案培训售后方案应急预案的编写?
在软件平台投标技术方案中,项目实施方案、质量管理、安全管理、培训方案、售后服务方案和应急预案等章节至关重要,它们分别从不同角度确保项目的顺利实施、高质量交付、安全稳定运行、用户有效使用、持续服务保障以及应对突发情况的能力。各章节编制要点相互关联、协同作用,…...
目标检测-R-CNN
R-CNN在2014年被提出,算法流程可以概括如下: 候选区域生成:利用选择性搜索(selective search)方法找出图片中可能存在目标的候选区域(region proposal) CNN网络提取特征:对候选区域进行特征提取(可以使用AlexNet、VGG等网络) 目…...
计算机毕业设计PySpark+PyFlink+Hive地震预测系统 地震数据分析可视化 地震爬虫 大数据毕业设计 Hadoop 机器学习 深度学习
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
panddleocr-文本检测+文本方向分类+文本识别整体流程
panddleocr-文本检测文本方向分类文本识别整体流程 通过文本检测–>文本方向分类–>文本识别,即可识别出0~360度的旋转文本。 文本检测的最小外接矩形框根据长宽可以看到90度的角度,而再加入文本方向分类就能扩展到180度的角度。...
【物联网技术与应用】实验9:红外遥控实验
实验9 红外遥控实验 【实验介绍】 红外接线头的主要功能为IC化的一种受光元件,其内部是将光电二极管(俗称接收管)和集成IC共同组合封装而成,其IC设计主要以类比式控制,一般主要接受38KHz的频率的红外线,而…...
青少年编程与数学 02-004 Go语言Web编程 18课题、日志记录
青少年编程与数学 02-004 Go语言Web编程 18课题、日志记录 一、日志记录(一)目的(二)内容类型(三)日志记录的格式 二、Go Web 日志记录1. 使用标准库 log 包2. 使用 logrus3. 在 Gin 框架中集成 logrus4. 使…...
【数据结构练习题】栈与队列
栈与队列 选择题括号匹配逆波兰表达式求值出栈入栈次序匹配最小栈设计循环队列面试题1. 用队列实现栈。[OJ链接](https://leetcode.cn/problems/implement-stack-using-queues/solutions/)2. 用栈实现队列。[OJ链接](https://leetcode.cn/problems/implement-queue-using-stack…...
ctfshow-web入门-文件包含(web82-web86)条件竞争实现session会话文件包含
目录 1、web82 2、web83 3、web84 4、web85 5、web86 1、web82 新增过滤点 . ,查看提示:利用 session 对话进行文件包含,通过条件竞争实现。 条件竞争这个知识点在文件上传、不死马利用与查杀这些里面也会涉及,如果大家不熟…...
前端学习DAY26(华为平板页面)
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>平板图片</title><style> .box{text-al…...
【Linux 网络 (三)】:https协议加密解密分析 —— 秘钥协商
网络 一、https协议二 、https相关概念1)加密、解密2) 常见加密方式(对称加密和非对称加密)对称加密非对称加密 3)数据摘要 && 数据指纹4)数字签名 三、HTTPS 的⼯作过程探究1)只使⽤对…...
c 保存 csv格式的文件
在C语言中保存数据为CSV(逗号分隔值)格式的文件,你可以使用标准I/O库函数,如fprintf,来将数据写入文件,并确保每个字段之间用逗号分隔。以下是一个简单的示例,说明如何在C语言中创建一个CSV文件…...
数据结构---------二叉树前序遍历中序遍历后序遍历
以下是用C语言实现二叉树的前序遍历、中序遍历和后序遍历的代码示例,包括递归和非递归(借助栈实现)两种方式: 1. 二叉树节点结构体定义 #include <stdio.h> #include <stdlib.h>// 二叉树节点结构体 typedef struct…...
【JavaEE】网络(6)
一、http相关概念 1.1 什么是http协议 http协议(超文本传输协议),是应用层的一个协议 1.2 应用场景 网页与服务器之间交互手机app与服务器之间交互 http协议是典型的一问一答模式的协议,即请求和响应是一一对应的 二、http协议…...
什么是单例模式
单例模式就是 只有一个 不能存在多个 饿汉式单例模式 实现方式: 这种模式在程序启动或单例类被加载时就创建好实例。例如,以下是一个简单的 C 实现的饿汉式单例类,用于记录日志(假设这个日志类在整个程序中有且仅有一个实例&#…...
protobuf实用教程
引言 protobuf安装 protobuf数据类型 基本数据类型 复合类型 Map类型 protobuf使用教程 编写.proto文件 编译 使用 序列化与反序列化 结语 引言 protobuf 是 google 的一种数据交换的格式,它独立于平台语言。 google 提供了 protobuf 多种语言的实现&am…...
人工智能ACA(五)--深度学习基础
一、深度学习概述 1. 深度学习概念 1-1. 深度学习基本概念 深度学习是机器学习的一个分支基于人工神经网络(模仿人脑结构)通过多层网络自动学习特征能够处理复杂的模式识别问题 1-2. 深度学习的优点与缺点 优点 强大的特征学习能力可以处理复杂问题…...
用python ollama qwen2.5 开发一个AI修仙游戏
用 Python Ollama (Qwen2.5) 开发一个 AI 修仙游戏 简介 本文将介绍如何使用 Python 和 Ollama (Qwen2.5 模型) 开发一个文字版修仙游戏。这个游戏具有以下特点: 完整的修仙世界观和成长体系基于 AI 生成的动态剧情和事件丰富的物品系统(功法、丹药、灵宝等)社交…...
tts语音合成相关开源项目试用对比
chatTTS 如下图所示,在不添加Sample Audio和Text的时候可以正常完成文本转语音,可以自定义添加语气词,笑声和停顿等。 无法实现声音克隆,即模仿某人的音色生成语音。 试用了chatTTS官网推荐的https://voicv.com/voice-cloning进行…...
基于JAVA_JSP电子书下载系统的设计与实现【源码+文档+部署讲解】
目 录 第1章 绪论 课题的研究背景、内容和意义 第2章 主要技术概述 2.1 B/S结构 2.2 JSP技术 2.2.1 JSP技术的强势 2.2.2 JSP技术的弱势 2.3 SQL Server 2000数据库 2.4 JDBC数据库连接 2.4.1 JDBC接口 2.4.2 JDBC的驱动程序 2.5 TOMCAT应用服务器 第3章 需求分…...
外连接转AntiJoin的应用场景与限制条件 | OceanBase SQL 查询改写系列
在《SQL 改写系列:外连接转内连接的常见场景与错误》一文中,我们了解到谓词条件可以过滤掉连接结果中的 null 情形的,将外连接转化为内连接的做法是可行的,正如图1中路径(a)所示。此时,敏锐的你或许会进一步思考&#…...
35道面向初中级前端的基础面试题
新鲜出炉的8月前端面试题 跨域资源共享 CORS 阮一峰 3. JSONP 是什么? 这是我认为写得比较通俗易懂的一篇文章jsonp原理详解——终于搞清楚jsonp是啥了。 4. 事件绑定的方式 嵌入dom 按钮 直接绑定 btn.onclick function(){} 事件监听 btn.addEventList…...