第1节:计算机视觉发展简史
计算机视觉与图像分类概述:计算机视觉发展简史
计算机视觉(Computer Vision)作为人工智能领域的重要分支,是一门研究如何使机器"看"的科学,更具体地说,是指用摄影机和计算机代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使计算机处理成为更适合人眼观察或传送给仪器检测的图像。
1.基本概念与定义
这一交叉学科涉及计算机科学、数学、物理学、神经科学和认知心理学等多个领域,旨在通过算法和技术手段让计算机从数字图像或视频中获得高层次的理解。
图像分类(Image Classification)作为计算机视觉中最基础也最核心的任务之一,指的是根据图像中描绘的内容为其分配一个或多个类别标签的过程。
这一过程模拟了人类视觉系统识别和理解图像内容的能力,是许多高级视觉任务如目标检测、图像分割、场景理解等的基础。传统图像分类方法通常包括特征提取和分类器设计两个主要步骤,而现代深度学习方法则能够端到端地完成这一任务。
计算机视觉系统的典型工作流程包括图像获取、预处理、特征提取、检测/分割、高级处理和决策制定等环节。
图像获取阶段通过各种传感器(如CCD、CMOS相机)将光信号转换为数字信号
预处理阶段可能包括去噪、增强、归一化等操作
特征提取阶段识别图像中的关键信息
检测/分割阶段定位感兴趣区域
高级处理阶段则进行识别、分类等复杂任务
最后的决策制定阶段根据应用需求输出结果。
与人类视觉系统相比,计算机视觉既有优势也有局限。计算机可以处理人眼无法感知的频谱(如红外、X光图像),能够长时间稳定工作而不疲劳,处理速度在某些特定任务上远超人类。
然而,计算机视觉系统在泛化能力、上下文理解、常识推理等方面仍远不及人类,特别是在处理遮挡、光照变化、视角变化等复杂情况时表现尚不理想。
这种差距正是推动计算机视觉研究不断前进的动力之一。
2.早期发展(1960s-1980s)
计算机视觉的起源可以追溯到20世纪60年代,当时的研究主要受到神经科学和心理学关于人类视觉系统研究的启发。
1966年,MIT的人工智能实验室创始人之一Marvin Minsky给学生布置了"夏季视觉项目"(Summer Vision Project),要求他们用几个月时间解决"计算机视觉"问题。这个现在看来过于乐观的项目标志着计算机视觉作为独立研究领域的诞生。虽然项目未能达到预期目标,但它确立了计算机视觉作为一个需要长期研究的科学问题。
70年代是计算机视觉算法奠基的重要时期。David Marr在这一时期提出了影响深远的视觉计算理论,他在《Vision: A Computational Investigation》一书中系统阐述了视觉信息处理的三个阶段:
- 初始草图(提取边缘、纹理等基本特征)
- 2.5维草图(恢复表面和深度信息)
- 三维模型表示(构建物体的三维描述)。
这一理论框架为后续计算机视觉研究提供了方法论指导。与此同时,Lawrence Roberts在1963年发表的关于三维物体识别的论文被认为是计算机视觉领域的开山之作,他提出了从二维图像中恢复三维几何信息的基本思路。
80年代见证了计算机视觉从理论走向应用的转变。日本在这一时期率先将机器视觉技术应用于工业检测和质量控制,开启了计算机视觉的产业化进程。
1982年,David Marr的学生Shimon Ullman提出了"结构从运动"(Structure from Motion)算法,能够从一系列二维图像中恢复三维场景结构,这一技术至今仍是计算机视觉的重要研究方向。同年,日本学者福岛邦彦提出的Neocognitron神经网络模型,模仿生物视觉系统的层次结构,成为后来卷积神经网络(CNN)的前身。
早期的图像分类方法主要基于手工设计的特征和传统机器学习算法。这些方法通常包括两个阶段:特征提取和分类器训练。
常用的特征包括颜色直方图、纹理特征(如LBP、Gabor滤波器)、形状特征(如HOG)以及更复杂的特征描述符(如SIFT、SURF)。
分类器则多采用支持向量机(SVM)、随机森林(Random Forest)或AdaBoost等算法。
这些方法在特定领域的应用中取得了一定成功,但由于手工特征的设计需要大量领域知识且泛化能力有限,图像分类的性能遇到了瓶颈。
3.从传统方法到现代计算机视觉(1990s-2000s)
90年代是计算机视觉算法多样化和实用化的发展阶段。
1991年,Turk和Pentland提出的特征脸(Eigenfaces)方法首次将主成分分析(PCA)应用于人脸识别,开辟了基于统计学习的视觉分析方法。1997年,Shi和Malik提出的归一化割(Normalized Cuts)算法将图论方法引入图像分割,显著提升了分割质量。1999年,David Lowe提出的尺度不变特征变换(SIFT)成为首个具有尺度、旋转和光照不变性的局部特征描述符,在图像匹配和物体识别中得到广泛应用。
这一时期,计算机视觉开始与其他学科深度融合。1995年,MIT媒体实验室的Rosalind Picard提出"情感计算"概念,将计算机视觉与情感识别相结合。1998年,微软研究院开发的"虚拟鼠标"系统首次实现了基于视觉的人机交互。同时,医学影像分析、遥感图像处理等专业领域的视觉技术也取得了长足进步。2001年,Paul Viola和Michael Jones提出的实时人脸检测框架将积分图(Integral Image)、AdaBoost和级联分类器(Cascade Classifier)相结合,首次实现了视频流中的实时人脸检测,这一突破性成果被广泛应用于数码相机、智能手机等消费电子产品。
2000年代初,随着互联网的普及和数字图像数据的爆炸式增长,计算机视觉研究面临着新的挑战和机遇。2004年,David Lowe进一步完善了SIFT算法,使其成为事实上的局部特征标准。同年,Intel推出的开源计算机视觉库OpenCV开始流行,大大降低了计算机视觉研究和应用的门槛。2005年,Navneet Dalal和Bill Triggs提出的方向梯度直方图(HOG)特征在人脸检测和行人检测中表现出色,进一步推动了基于手工特征的视觉算法发展。
2006年,Fei-Fei Li开始构建ImageNet数据集,这一雄心勃勃的计划旨在为计算机视觉研究提供大规模标注图像资源。ImageNet的建立源于一个深刻认识:计算机视觉系统的性能提升不仅需要更好的算法,更需要大规模、多样化的训练数据。这一理念在深度学习时代被证明具有前瞻性。与此同时,PASCAL VOC(Visual Object Classes)挑战赛于2005年启动,为物体识别、检测和分割等任务提供了标准化的评估平台,促进了不同研究团队之间的比较和交流。
在这一阶段末期,传统计算机视觉方法已经发展到了相当成熟的水平,但在处理复杂、多变的真实世界图像时仍面临巨大挑战。手工设计特征的局限性日益明显,研究者们开始探索新的技术路径。2006年,Geoffrey Hinton等人提出的深度信念网络(DBN)开启了深度学习复兴的先河,为计算机视觉的革命性突破埋下了伏笔。2009年,ImageNet项目正式发布,包含超过320万张标注图像,为即将到来的深度学习革命准备好了战场。
4.深度学习革命与计算机视觉新时代(2010s至今)
2012年成为计算机视觉发展的分水岭。在当年的ImageNet大规模视觉识别挑战赛(ILSVRC)中,Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton提出的AlexNet以压倒性优势夺冠,将Top-5错误率从上一年的26%大幅降至15.3%。这一突破性成果的关键在于:首次在大规模图像分类任务中成功应用了深度卷积神经网络(CNN);采用ReLU激活函数缓解梯度消失问题;使用GPU加速训练过程;引入Dropout正则化防止过拟合。AlexNet的成功标志着计算机视觉正式进入深度学习时代。
2012年后,卷积神经网络架构不断创新,推动图像分类性能持续提升。2014年,牛津大学提出的VGGNet通过使用更深的网络(16-19层)和小尺寸卷积核(3×3),进一步提高了分类准确率,其简洁统一的结构成为后续研究的重要基础。同年,Google提出的GoogLeNet(Inception v1)引入"Inception模块",通过多尺度卷积和降维操作,在增加网络深度的同时控制了计算量。2015年,微软研究院提出的ResNet通过残差连接(Residual Connection)成功训练了152层的超深网络,将ImageNet分类错误率降至3.57%,首次超越人类水平(约5%)。
随着深度学习的普及,计算机视觉研究范式发生了根本性转变。传统的手工特征设计被端到端的特征学习取代,研究者们更加关注网络架构的设计和优化。注意力机制、残差连接、批量归一化等创新技术不断涌现。2017年,Google提出的Transformer架构最初应用于自然语言处理,但很快被引入计算机视觉领域。2020年,Vision Transformer(ViT)证明纯Transformer架构在大规模图像分类任务上可以超越CNN,开辟了视觉表征学习的新方向。与此同时,自监督学习、对比学习等新型学习范式减少了对于大规模标注数据的依赖,提高了模型的泛化能力。
深度学习也推动了计算机视觉应用场景的极大扩展。人脸识别技术已达到商用水平,广泛应用于安防、金融、零售等领域。2014年,Face++在人脸识别测评(LFW)上首次超越人类识别准确率。自动驾驶汽车依靠计算机视觉进行环境感知,特斯拉的Autopilot系统能够实时处理多个摄像头输入。医学影像分析中,深度学习算法在肺结节检测、糖尿病视网膜病变筛查等任务上达到甚至超过专业医师水平。增强现实(AR)技术如苹果的ARKit、谷歌的ARCore都深度依赖计算机视觉进行场景理解和跟踪。
近年来,计算机视觉与其他AI技术的融合成为新趋势。多模态学习将视觉与语言、语音等模态相结合,OpenAI的CLIP模型能够实现图像与文本的跨模态理解。生成对抗网络(GAN)和扩散模型(Diffusion Model)可以生成高质量图像,DALL-E、Stable Diffusion等系统能够根据文本描述生成创意图像。边缘计算和轻量级网络设计使计算机视觉应用能够部署到移动设备和物联网终端。联邦学习等隐私保护技术则解决了视觉数据中的隐私和安全问题。
计算机视觉的研究前沿正朝着更加通用、鲁棒和可解释的方向发展。视觉-语言预训练模型如谷歌的PaLM-E展示了多模态大模型的强大能力。三维视觉、神经渲染(如NeRF)技术正在重塑数字内容创作方式。自监督学习和元学习有望降低对标注数据的依赖。可解释AI技术试图揭开深度学习"黑箱",提高模型决策的透明度。随着技术的不断进步,计算机视觉正在从狭义的图像理解向广义的场景理解、从被动感知向主动交互、从专用系统向通用智能的方向发展。
5.计算机视觉的技术分支与应用领域
现代计算机视觉已经发展出众多技术分支,每项分支针对不同的视觉理解任务。图像分类作为最基础的任务,旨在为整张图像分配一个或多个类别标签,其技术进步直接推动了深度学习在计算机视觉中的应用。目标检测则不仅要识别图像中的物体类别,还要确定它们的位置和范围,代表性算法包括R-CNN系列、YOLO和SSD等。图像分割分为语义分割(为每个像素分配类别标签)和实例分割(区分同类物体的不同实例),全卷积网络(FCN)、U-Net和Mask R-CNN是这一领域的里程碑工作。
三维计算机视觉致力于从二维图像中恢复三维场景信息,包括立体匹配、深度估计、三维重建等任务。运动分析与视觉跟踪研究视频序列中物体的运动规律和行为模式,在监控、自动驾驶中有重要应用。光流估计计算相邻帧之间的像素级运动,是许多视频分析任务的基础。场景理解则试图对图像中的物体、它们之间的关系以及场景的语义进行整体解释,是计算机视觉的终极目标之一。
计算机视觉的应用已经渗透到各行各业。在医疗领域,计算机视觉辅助医学影像分析(X光、CT、MRI)能够早期发现疾病征兆,病理切片分析、手术导航等应用正在改变医疗实践。在自动驾驶中,视觉系统与雷达、激光雷达等多传感器融合,实现车道检测、交通标志识别、行人避障等功能。工业检测中,机器视觉系统以远超人类的速度和精度完成产品质量检验、缺陷检测等任务。
安防监控是计算机视觉的传统应用领域,人脸识别、行为分析、人群计数等技术大大提高了公共安全水平。零售行业利用视觉技术进行客流分析、货架管理、无人结算等。农业中,无人机结合计算机视觉实现作物健康监测、精准施药和产量预测。在文化娱乐领域,人脸滤镜、动作捕捉、虚拟试衣等应用丰富了用户体验。遥感图像分析则服务于城市规划、环境监测、灾害评估等宏观决策。
新兴应用场景不断拓展计算机视觉的边界。在增强现实(AR)和虚拟现实(VR)中,视觉技术实现空间定位、手势交互和虚实融合。人机交互通过手势识别、视线跟踪等方式提供更自然的交互体验。智能手机中的计算摄影技术如夜景模式、人像模式、超分辨率等都依赖于先进的计算机视觉算法。社交媒体中的内容审核、图像搜索、自动标注等功能也离不开视觉技术的支持。
计算机视觉与其他技术的交叉融合催生了许多创新方向。视觉-语言多模态学习使机器能够理解图像内容并生成自然语言描述,或根据文字描述检索、生成图像。机器人视觉赋予机器人感知和理解环境的能力,是实现自主操作的基础。脑机接口中的视觉刺激和反馈建立人脑与计算机之间的直接通信渠道。量子计算有望解决计算机视觉中的某些复杂优化问题,而神经形态计算则模仿生物视觉系统的工作原理,开发更高效的视觉处理硬件。
6.计算机视觉面临的挑战与未来趋势
尽管取得了显著进展,计算机视觉仍面临诸多挑战。数据偏差与泛化能力是首要问题,在特定数据集上训练的模型往往难以适应真实世界的多样性,当测试数据与训练数据分布不一致时性能会显著下降。对抗样本暴露了深度学习模型的脆弱性,精心设计的微小扰动可以导致完全错误的分类结果,这对安全关键应用构成严重威胁。模型可解释性不足限制了在医疗、司法等领域的应用,用户难以理解模型做出特定决策的原因。
计算资源需求是另一大挑战,训练最先进的视觉模型需要大量GPU/TPU资源和电力消耗,既不环保也不普惠。隐私问题日益突出,人脸识别等技术引发了对个人数据保护的广泛关注。实时性与准确性的权衡在移动设备和边缘计算场景中尤为明显。多物体遮挡、小样本学习、长尾分布等问题在实际应用中经常遇到,但现有方法处理起来仍有困难。三维视觉中的光度一致性、几何一致性等约束条件增加了问题复杂度。
未来计算机视觉的发展将呈现以下趋势:通用视觉模型的研究受到越来越多的关注,如微软的Swin Transformer、谷歌的Vision Transformer等试图建立统一的视觉表征框架。自监督学习通过设计巧妙的预训练任务(如图像修复、拼图游戏)从未标注数据中学习可迁移的特征表示,减少对人工标注的依赖。神经符号结合将深度学习的感知能力与符号系统的推理能力相结合,有望实现更高层次的视觉理解。
多模态融合成为提升视觉系统性能的重要途径,语言、声音、触觉等其他模态信息可以提供补充线索。边缘智能推动计算机视觉算法向轻量化、低功耗方向发展,使其能够部署在终端设备上。联邦学习等隐私保护技术允许在数据不离开本地的情况下协同训练模型,符合日益严格的数据保护法规。仿真环境和高保真合成数据将帮助解决真实数据获取困难和标注成本高的问题。
脑科学与计算机视觉的交叉研究可能带来革命性突破,对生物视觉系统的深入理解可以启发更高效的视觉算法。量子计算机视觉探索量子计算在图像处理、模式识别中的潜在优势。可解释AI技术旨在揭开深度学习黑箱,提供直观的决策依据和错误诊断。持续学习使视觉系统能够在不遗忘旧知识的情况下学习新任务,更接近人类的学习能力。
计算机视觉的长期目标是构建具有人类水平甚至超人类水平的通用视觉系统,能够像人类一样灵活地理解和解释视觉世界。实现这一目标需要算法、数据、算力和理论的多方面突破。随着技术的进步,计算机视觉将继续深刻改变我们的生活和工作方式,在医疗、教育、交通、制造等各个领域创造价值,同时也将带来伦理、隐私、安全等方面的新挑战,需要技术开发者、政策制定者和公众共同应对。
7.结语
回顾计算机视觉从20世纪60年代至今的发展历程,我们见证了这一领域从简单的边缘检测到复杂的场景理解、从依赖手工特征到自动学习表征、从受限实验室环境到开放真实世界的惊人进步。这一演变过程不仅是技术的累积,更是研究范式的转变——从模仿生物视觉到建立数学和计算理论,再到数据驱动的大规模学习。
图像分类作为计算机视觉的基础问题,其发展轨迹折射出整个领域的变迁。早期的模板匹配和特征工程让位于深度神经网络,而今天的Transformer架构又正在挑战CNN的主导地位。性能指标从最初的勉强可用到超越人类水平,应用场景从学术研究扩展到工业界的方方面面。这一进步的背后是算法创新、数据积累和计算硬件三者协同演进的结果。
当前,计算机视觉正处于前所未有的繁荣时期,同时也站在新的十字路口。一方面,现有技术已经能够解决许多特定任务,催生了庞大的应用市场;另一方面,通用视觉智能的实现仍面临根本性挑战。未来的发展需要在追求性能提升的同时,关注模型的鲁棒性、可解释性、公平性和能效比,在技术进步与社会价值之间取得平衡。
计算机视觉的未来发展将更加注重与实际应用的紧密结合,在解决具体行业问题的过程中不断完善技术。同时,基础研究的突破仍至关重要,特别是在理解深度学习工作原理、建立更完备的视觉理论方面。跨学科合作将成为常态,神经科学、认知心理学、物理学等领域的见解将继续为计算机视觉提供新鲜灵感。
作为人工智能感知世界的重要窗口,计算机视觉的发展不仅关乎技术本身,也将深刻影响人机交互方式和社会运行模式。我们有理由期待,在不远的将来,计算机视觉技术将更加智能、普惠和可靠,真正成为人类认识世界和改造世界的得力助手。这一进程需要全球研究者的共同努力,也需要社会各界的理解和支持,以确保技术发展始终服务于人类的整体利益。
相关文章:
第1节:计算机视觉发展简史
计算机视觉与图像分类概述:计算机视觉发展简史 计算机视觉(Computer Vision)作为人工智能领域的重要分支,是一门研究如何使机器"看"的科学,更具体地说,是指用摄影机和计算机代替人眼对目标进行识…...
2D 与 3D 连线效果全解析 | 从平面到立体
HT 是一个灵活多变的前端组件库,具备丰富的功能和效果,满足多种开发需求。让我们将其效果化整为零,逐一拆解具体案例,帮助你更好地理解其实现方案。 在此篇文章中,让我们一起深入探讨 2D 与 3D 的连线效果是如何实现的…...
Django Cookies 实际项目示例
Django Cookies 实际项目示例 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 Django Cookies 实际项目示例介绍什么是 Django Cookies?为什么要关心 Django Cookies?Django Cookie…...
【问题排查】SQLite安装失败
启动 Django 自带的开发服务器 python manage.py runserver出现如下报错: [rootiZ2zedudtf2cwzi9argky2Z myproject]# python manage.py runserver Watching for file changes with StatReloader Performing system checks...System check identified no issues (…...
stream流Collectors.toMap(),key值重复问题
文章目录 一、问题二、问题示例三、原因四、解决方法4.1、方案一 一、问题 发现Collectors.toMap的一个坑,若key值重复的时候会抛异常。如: IllegalStateException: Duplicate key 男 二、问题示例 报错示例如下: import lombok.AllArgsC…...
STM32(基于标准库)
参考博客:江科大STM32笔记 Stm32外设 一、GPIO 基础 GPIO位结构 I/O引脚的保护二极管是对输入电压进行限幅的上面的二极管接VDD, 3.3V,下面接VSS, 0V,当输入电压 >3.3V 那上方这个二极管就会导通,输入电压产生的电流就会大部分充入VD…...
OpenStack Yoga版安装笔记(十八)Self-service networks配置笔记
1、官方文档 在OpenStack官方安装文档中,提供了两个网络配置选项: Option1:Provider networksOption2:Self-service networks 这两个选项并不冲突,可以在OpenStack环境中同时配置。 在《OpenStack Yoga版安装笔记&…...
2025年黑龙江建筑安全员 C3 证考试题库练习题
黑龙江建筑安全员 C3 证考试题库练习题 1、消防控制室是设有火灾自动报警设备和消防设施控制设备,用于接收、显示、处理( ),控制相关消防设施的专门处所2。 A. 安全信息 B. 设备信息 C. 通讯信号 D. 火灾报警信号 答案&…...
JavaScript数据结构-Map的使用
在 JavaScript 中,Map 是 ES6 引入的一种新的数据结构,它类似于对象,也是键值对的集合,但 Map 的键可以是任意类型的值(对象、函数、基本类型等),而传统对象的键只能是字符串或 Symbolÿ…...
LeetCode面试经典150题
目录 力扣80. 删除有序数组中的重复项 II 代码解析 力扣274. H 指数 代码解析 力扣151. 反转字符串中的单词 解析代码 力扣12. 整数转罗马数字 解析代码 力扣28. 找出字符串中第一个匹配项的下标 解析代码1(暴力模拟) 解析代码2(K…...
mysql之等值连接8个实例
以下实例以常见的业务场景为例,使用 MySQL 语法,假设存在员工表(employees)、部门表(departments)、订单表(orders)、客户表(customers)等,来展示…...
C基础笔记_指针专题
一:C 和 C 偏爱使用指针的原因 1. 通过指针可以直接操作内存 C 和 C 是系统级编程语言,它们的设计目标之一是允许开发者直接与硬件交互并高效地管理资源。 指针的本质:指针本质上是一个存储内存地址的变量,它让程序员可以直接访问和操作内…...
GPT-SoVITS Windows 配置与推理笔记(自用)
GPT-SoVITS Windows 配置与推理笔记(自用) 这是给自己留的备份,方便下次查。Windows 端配置和推理为主,代码为核心,直接干货。 环境准备 系统:Windows 10/11Python:3.9(别用别的版…...
【设计模式】面向对象开发学习OOPC
PLOOC-裸机思维 PLOOC OOPC精要——撩开“对象”的神秘面纱 C/C面向对象编程之封装-KK 面向过程,本质是“顺序,循环,分支”面向对象,本质是“继承,封装,多态”参考的书籍:《UMLOOPC嵌入式C语言…...
LVGL开发指南
一、主流ARM开发UI界面库 主流ARM开发UI界面库的详细对比分析,从多个维度评估各库的适用场景: 1. 基础对比表 特性LVGLQt for MCUEmbedded WizardTouchGFXemWin许可证MIT开源商业商业商业(STM32免费)商业RAM最小需求16KB512KB64KB256KB50KBFlash占用64KB+1MB+200KB+500KB+1…...
linux shell looop循环写法
在 Linux Shell 中编写loop循环的常见方法有以下几种,适用于持续执行任务或监控场景: 1. while true 循环(最常用) while true; do# 循环体内的命令echo "Running..."sleep 1 # 避免 CPU 占用过高 done 终止方式&…...
【力扣hot100题】(075)数据流的中位数
一开始只建立了一个优先队列,每次查询中位数时都要遍历一遍于是喜提时间超限,看了答案才恍然大悟原来还有这么聪明的办法。 方法是建立两个优先队列,一个大根堆一个小根堆,大根堆记录较小的数,小根堆记录较大的数。 …...
蓝桥杯刷题总结 + 应赛技巧
当各位小伙伴们看到这篇文章的时候想必蓝桥杯也快开赛了,那么本篇文章博主就来总结一下一些蓝桥杯的应赛技巧,那么依旧先来走个流程 那么接下来我们分成几个板块进行总结 首先是一些基本语法 编程语言的基本语法 首先是数组,在存数据的时候…...
JetBrains Terminal 又发布新架构,Android Studio 将再次迎来新终端
不到一年的时间,JetBrains 又要对 Terminal 「大刀阔斧」,本次发布的新终端是重构后的全新的架构,而上一次终端大调整还是去年 8 月的 v2024.2 版本,并且在「Android Studio Ladybug | 2024.2.1」也被引入。 不知道你们用不用内置…...
怎么构造思维链数据?思维链提示工程的五大原则
我来为您翻译这篇关于思维链提示工程的文章,采用通俗易懂的中文表达: 思维链(CoT)提示工程是生成式AI(GenAI)中一种强大的方法,它能让模型通过逐步推理来解决复杂任务。通过构建引导模型思考过程的提示,思维链能提高输出的准确性…...
mongodb--用户管理
文章目录 MongoDB 用户管理1. 连接到 MongoDB2. 用户创建2.1 创建管理员用户2.2 创建特定数据库用户2.3 常用内置角色 3. 用户管理操作3.1 查看所有用户3.2 查看特定用户信息3.3 更新用户密码3.4 添加用户角色3.5 移除用户角色3.6 删除用户 4. 权限修改4.1 创建自定义角色4.2 将…...
2025年考OCP认证有用吗?
在数字化转型的浪潮中,数据库管理技术成为企业核心竞争力的基石。Oracle作为全球领先的数据库解决方案提供商,其OCP(Oracle Certified Professional)认证不仅是技术能力的权威背书,更是职业发展的强力引擎。以下从多个…...
川翔云电脑:D5 渲染摆脱硬件限制,云端高效创作
在设计领域,D5 渲染器凭借实时光追技术、高效工作流程及优质输出效果,成为设计师的得力工具。然而,其对高端 RTX 显卡的依赖,导致硬件成本高、本地性能受限及办公地点固定等问题,让不少创作者望而却步。 D5 渲染器的优…...
设计模式(23种设计模式简介)
设计模式 简介 设计模式是解决软件设计中常见问题的可重用解决方案模板,通过总结反复验证的代码设计经验,提升代码的可重用性、可维护性和扩展性。其核心是通过标准化的设计思想,让代码更易理解、协作更高效,并在面向对象编程中…...
Python设计模式:工厂模式
1. 什么是工厂模式? 工厂模式是一种创建对象的设计模式,它提供了一种创建对象的接口,但不暴露对象创建的具体逻辑。工厂模式的核心思想是将对象的创建与使用分离,从而提高代码的灵活性和可维护性。 1.1 工厂模式的类型 1.1.1 简…...
UE5 给函数分类
如果函数太多不方便找,我们可以给函数设置一个分组 选中一个函数,修改它的类别 然后在函数列表里可以看到分好的类 其他函数可以直接拖进类别里,不用每个函数都手动设置类别 一次只能拖动一个函数...
5️⃣ Coze+AI应用基础教学(2025年全新版本)
目录 一、了解应用开发 1.1 扣子应用能做什么 1.2 开发流程 1.3 开发环境 二、快速搭建一个AI应用 2.1 AI翻译应用介绍 2.2 设计你的应用功能 2.3 创建 AI 应用项目 2.4 编写业务逻辑(新建工作流) 2.5 搭建用户界面 2.6 效果测试 2.7 发布应…...
高级前端题库
前端题库 JS篇 如何理解作用域和作用域链 作用域 作用域就是变量或函数在其内能够被访问的“可见区域” 全局作用域局部作用域 作用域链 当在某个作用域中尝试访问一个变量时,JS引擎会从当前作用域开始,沿着作用域链向上逐级开始查找,直到…...
博途 TIA Portal之1200做主站与汇川EASY的TCP通讯
前言,虽然已经做了几篇关于TCP通讯的文章,但是不同的PLC之间的配合可能不同,下面将演示这种差异。 关于汇川EASY做从站的配置请参见下方链接文章:汇川EASY系列之以太网通讯(套接字socket做从站)_汇川以太网tcp套接字fb块-CSDN博客 1、硬件准备: 1200PLC,汇川EASY320…...
在conda虚拟环境安装GIT并且克隆github上项目指南(解决443问题)
此次笔记记录自己在conda虚拟环境安装git,同时克隆github项目,并且解决了git的443问题。 如有不妥欢迎各位大佬批评指正。 首先默认你已经安装了anaconda。 代开命令提示行 配置环境 #首先创建虚拟环境 conda create -n git_env python3.8 #激活虚拟环…...
JavaWeb遇到的问题汇总
问题一:(键值对最后一项没有逗号) 在JSON字符串转自定义对象和自定义对象转JSON字符串时: 如图所示:若忘记删除键值对的最后一项没有逗号时,则下一句转换不会生效,应该删除最后一项的逗号。 解…...
Stable Diffusion + Contronet,调参实现LPIPS最优(带生成效果+指标对比)——项目学习记录
目录 前言 一、数据集:图像文本,部分选取于DeepFashion 二、优化一,img2img 三、优化二,微调sd参数 四、优化三,dreamshaper优化 五、优化四,sdv1.5contronet 六、问题探索历程 1. 从 SDXL 到轻量化模…...
【“星睿O6”AI PC开发套件评测】在O6开发板使用gemma-2b测试CPU性能
前提条件: x64 Linux 主机:安装CMake 和 arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-linux-gnu radxa O6主机 1.从 Kaggle 获取模型权重和分词器 Gemma 3 2B 模型文件:访问 Kaggle 上的 Gemma 模型页面 https://www.kaggle.com/mode…...
数学知识——矩阵乘法
使用矩阵快速幂优化递推问题 对于一个递推问题,如递推式的每一项系数都为常数,我们可以使用矩阵快速幂来对算法进行优化。 一般形式为: F n F 1 A n − 1 F_nF_1A^{n-1} FnF1An−1 由于递推式的每一项系数都为常数,因此对…...
3DMax中模型解组
1、从网上下载下来的模型是一个整体,需要解开查看每个样式 2、解开组...
链路聚合+vrrp
1.链路聚合 作用注意事项将多个物理接口(线路)逻辑上绑定在一起形成一条逻辑链路,起到叠加带宽的作用1.聚合接口必须转发速率一致。2.聚合设备两端必须一致 配置命令 方法一 [Huawei]interface Eth-Trunk 0----先创建聚合接口,…...
0 std::process::Command 介绍
std::process::Command 是 Rust 标准库中用于创建和配置子进程的主要类型。它允许你启动新的进程、设置其参数和环境变量、重定向输入/输出等。 基本用法 use std::process::Command;let output Command::new("echo").arg("Hello, world!").output().ex…...
Android 中Intent 相关问题
在回答 Intent 问题时,清晰区分其 定义、类型 和 应用场景。以下是的回答策略: 一、Intent 的核心定义 Intent 是 Android 系统中的 消息传递对象,主要用于三大场景: 2. 隐式 Intent(Implicit Intent) 三、…...
【Docker】Docker Desktop镜像存储路径设置方法
在 Docker Desktop 中设置镜像存储路径(即下载的镜像文件存放位置)取决于你的操作系统。以下是不同系统下的设置方法: Windows 系统 完全卸载后重新安装指定路径(Docker Desktop for Windows 默认使用 C:\ProgramData\Docker&…...
Spring Boot 3.x 中 WebClient 全面详解及示例
Spring Boot 3.x 中 WebClient 全面详解及示例 1. WebClient 简介 定义:Spring 5 引入的响应式 HTTP 客户端,用于替代 RestTemplate(已弃用),支持异步非阻塞的 HTTP 请求。核心特性: 支持所有 HTTP 方法&a…...
将图片按照指定大小批量进行裁剪(可设置步长_python)
将图片按照指定大小批量进行裁剪(可设置步长_python) import os from PIL import Image# 设置更高的图像大小限制,禁用解压炸弹检查 Image.MAX_IMAGE_PIXELS None # 禁用解压炸弹检查def crop_image(image_path, block_size(640, 640), step_size(340, 340)):# 打…...
设计模式 --- 原型模式
原型模式是创建型模式的一种,是在一个原型的基础上,建立一致的复制对象的方式。这个原型通常是我们在应用程序生命周期中需要创建多次的一个典型对象。为了避免初始化新对象潜在的性能开销,我们可以使用原型模式来建立一个非常类似于复印机的…...
工作经验记录
坑 部门例会上:跨级暴露问题.部门例会上:说话没有条理,周报写得好,但是表达效果不同.领导直接要求的任务没有当时推进:需考虑GTD清单.不要马后炮领导签字要按顺序 会议上 发言有条理问题不要越级暴露不要强调过程 对同事 对领导 领导同意的文件最好当日通过. 对供应商 不…...
Unity中基于2.5D的碰撞系统
在2.5D游戏中实现精确的碰撞检测是一个关键挑战,因为我们需要在视觉上有深度感的同时保持游戏逻辑的准确性。下面我将详细解析2.5D碰撞系统的实现方法。 1. 2.5D碰撞的核心问题 1.1 Z轴深度与碰撞的关系 视觉表现:物体通过Y轴位置影响Z轴排序ÿ…...
设计模式-命令模式详解
命令模式详解及真实场景解决方案 模式定义 命令模式是一种行为设计模式,将请求封装为独立对象,包含执行操作所需的所有信息。通过这种方式,可以实现请求的参数化、队列管理、撤销/重做等高级功能,同时解耦请求发送者与接收者。 …...
基于Python(Django)+SQLite 实现(Web) 点菜管理系统
点菜管理系统 课程设计任务与要求 1、任务 题目:点菜管理信息系统 问题描述: 随着网络的迅速发展,越来越多的人开始接受甚至时依赖了网络营业的这种交易形式,传统的点菜模式不仅浪费时间,效率低下,而且…...
泰鸿万立上市:加强产品规划和前瞻性研发 打造优质汽车零部件制造商
4月9日,浙江泰鸿万立科技股份有限公司(股票简称“泰鸿万立”,股票代码“603210”)正式登陆上交所主板。 招股书显示,泰鸿万立主营业务为汽车结构件、功能件的研发、生产与销售。经过十余年发展,公司拥有了…...
Charles的安装和使用教程
Charles抓包工具与Sniff Master在Windows上的安装与使用指南 1. Charles抓包工具安装 1.1 下载Charles 进入Charles官网(https://www.charlesproxy.com/download/)下载最新版本的安装包 1.2 安装与激活 正常安装后,打开会提示试用版30天限制进入授权码生成页面…...
论文阅读笔记:Adaptive Multi-Modal Cross-Entropy Loss for Stereo Matching
论文阅读笔记:Adaptive Multi-Modal Cross-Entropy Loss for Stereo Matching 1 背景2 创新点3 方法4 模块4.1 基础和问题描述4.2 自适应多模态概率模型4.3 主模态视差估计器 5 效果6 结论 1 背景 尽管深度学习在立体匹配方面取得了巨大成功,但恢复准确…...
JavaScript学习教程,从入门到精通,JavaScript 运算符及语法知识点详解(8)
JavaScript 运算符及语法知识点详解 一、JavaScript 运算符 1. 算术运算符 用于执行数学运算: 加法- 减法* 乘法/ 除法% 取模(余数) 递增-- 递减** 幂运算(ES6) let a 10, b 3; console.log(a b); // 13 conso…...