论文阅读:Computational Long Exposure Mobile Photography (一)

这篇文章是谷歌发表在 2023 ACM transaction on Graphic 上的一篇文章,介绍如何在手机摄影中实现长曝光的一些拍摄效果。

Abstract

长曝光摄影能拍出令人惊叹的影像,用运动模糊来呈现场景中的移动元素。它通常有两种模式,分别产生前景模糊或背景模糊效果。前景模糊图像通常是用安装在三脚架上的相机拍摄的,描绘的是移动的前景元素(如丝般的流水或光轨)呈现出模糊效果,而背景景观则非常清晰。背景模糊图像(也称为平移摄影)是在相机追踪移动主体时拍摄的,从而得到主体清晰而背景因相对运动而模糊的图像。这两种技术都极具挑战性,并且需要额外的设备和高超的技巧。
本文介绍了一种计算式连拍摄影系统,它运行在手拿式智能手机的相机应用程序中,只需按下快门按钮就能全自动地实现这些效果。我们的方法首先检测并分割出显著主体。我们对多帧画面中的场景运动进行追踪并对齐图像,以保持所需的清晰度并产生具有美感的运动拖影。我们拍摄一组曝光不足的连拍照片,并选择输入帧的子集,无论场景或相机的运动速度如何,这些子集都能产生长度可控的模糊拖影。我们预测帧间运动并合成运动模糊来填补输入帧之间的时间间隙。最后,我们将模糊图像与正常曝光的清晰图像合成,以保证面部或场景中几乎没有移动的区域的清晰度,并生成最终的高分辨率和高动态范围(HDR)照片。我们的系统使原本只有专业人士才能掌握的能力得以普及,让大多数普通摄影爱好者也能使用这种创意风格。

  • 图 1
    按下快门按钮时,我们的智能手机相机系统在几秒钟内捕获、处理并输出常规照片和长曝光对应的照片,如上图所示。手持拍摄的前景模糊示例如(a)所示,在没有精确跟踪的情况下拍摄的背景模糊示例如(b)所示。我们的计算长曝光摄影管线完全自动地处理这两种用例。

Introduction

手机摄影在消费者的日常生活中无处不在,并且正在逐渐取代传统摄影。通过使用连拍和后期处理技术,现代手机的成像流程能够产生非常高质量的结果,提供高动态范围色调映射、出色的低光拍摄性能并模拟景深虚化(散景)效果,而这些在以前只有使用更大、更重的相机和镜头才能实现。

尽管有这些显著的改进,但长曝光移动摄影仍然没有得到很好的处理。现有的解决方案无法帮助用户拍出移动场景元素模糊而静态场景元素清晰的效果。这种清晰与模糊的对比是一张引人入胜的照片的关键特性,而仅仅通过延长手持相机传感器的曝光时间是无法实现这种效果的。

传统的长曝光摄影通常根据场景和情况以以下两种方式之一进行。一种方法是在清晰的背景上产生前景模糊效果(例如如丝般的瀑布、光轨等),这需要使用很长的曝光时间,可能长达几秒。这就需要使用三脚架,因为即使是轻微的相机抖动也会导致不希望出现的背景清晰度损失。此外,必须在镜头上添加一个中性密度(ND)滤镜,以避免传感器曝光过度。
第二种方法称为平移摄影,它呈现出的效果是移动主体清晰,而背景由于相对于主体的运动而模糊。实现这种效果的方法是用相机追踪移动主体,同时保持快门打开,适度增加曝光时间(例如半秒),并稍微缩小光圈以避免图像曝光过度。摄影师必须尽可能精确地追踪主体的运动,以避免不希望出现的主体清晰度损失,同时还要在正确的时刻按下快门按钮。
这两种方法都需要高超的技巧、大量的练习,并且要考虑到场景的移动速度来手动选择相机快门速度才能达到理想的效果。

本文的主要贡献是一个计算式长曝光移动摄影系统,该系统有两种变体,使上述两种应用场景得以普及。它在谷歌 Pixel 6 和 7 智能手机上以一种名为 “运动模式” 的新相机模式实现,用户无需使用三脚架或镜头滤镜,也无需精确追踪或完全追踪移动主体就能轻松拍摄出这些效果。我们的方法在每种变体中都是全自动的端到端流程:用户选择希望生成前景模糊还是背景模糊效果后,只需用户按下快门按钮就能生成 1200 万像素的长曝光照片,同时补偿相机和/或主体的运动,从而保留所需的背景和主体的清晰度。整个系统的主要组成部分如下:

  • 拍摄和选帧策略,产生与场景或相机速度无关的标准化模糊拖影长度;
  • 结合注视显著性与人和宠物面部区域预测的主体检测,以及对其运动的追踪;
  • 输入图像的对齐,以消除相机抖动,在存在移动的前景元素时稳定背景,或者在产生令人满意的背景运动模糊拖影的同时消除主体运动。
  • 密集运动预测和模糊合成,跨越多个高分辨率输入帧,并生成保留高光的平滑弧形运动模糊轨迹。

此外,文章的系统架构包含多个神经网络,在计算和内存预算受限的移动设备上能够高效运行,实现了高动态范围(HDR)成像流程,仅需几秒就能生成相关的常规照片和长曝光照片。

System Overview

  • 图 2
    在这里插入图片描述
    我们的系统逐步处理原始的突发图像,在这个图表上从左到右,首先在低分辨率(8 倍下采样)下进行初始主体预测、特征跟踪、运动分析和运动预测。图像也在半分辨率(2 倍下采样)下进行处理以合成运动模糊,然后再上采样回全 1200 万像素分辨率以进行合成和色调映射得到最终结果。

文章整体的系统示意图如图 2 所示。所捕获的原始图像流通过四个阶段以两种不同分辨率逐步处理,每个阶段对应于图 2 中的一行:初始主体检测、运动分析、运动预测和渲染。
初始显著性和面部预测阶段计算用于主体检测的主要信号,生成归一化权重图。运动分析阶段负责对与检测到的主体或背景相对应的一组特征点进行追踪和对齐,并基于运动统计数据选择帧。运动预测阶段预测密集的线性核和权重图,这些图在渲染阶段用于生成跨越给定输入帧对的平滑运动模糊。最后的合成阶段对最终结果进行分层处理,同时保留最终图像中重要区域的清晰度。

前三个阶段将经过色调映射并转换为 sRGB 的图像作为输入,这些图像被下采样 8 倍至 504×376 的低分辨率。选择这种分辨率是为了在处理帧时实现低延迟,运算耗时主要由密集运动预测神经网络决定。这也确保了感受野能够覆盖输入全分辨率图像中大多数实际的运动差异。然而,最后一个阶段使用特意曝光不足的连拍原始图像,并将其转换为 16 位线性 RGB。高比特深度对于在渲染过程中保留场景的高动态范围是必要的,即避免高光过饱和和阴影中的条纹伪影。图像被下采样 2 倍,这是一种折中的做法,既能在最终结果中保留足够的细节,又能在减少内存占用的情况下运行。

增量处理循环在每次迭代时对一个额外的连拍帧进行转换和下采样,将其输入到我们流程的最后三个阶段,从而得到一个累积平均的运动模糊图像。当达到帧选择标准(通过对运动模糊拖影长度进行估计)时,循环停止。然后我们合成最终结果,同时将图像上采样回全分辨率。在流程末尾,图像会被转换为低动态范围的 8 位表示形式,通过色调映射来保留场景的高动态范围视觉外观。

Implementation

Busrt Capture

我们的相机系统以每秒 30 帧的速率拍摄画面,采用全自动光圈、快门速度和对焦设置。这些设置可能会根据画面中的场景变化进行动态调整,而且除了场景突然变化的情况外,我们的系统都能很好地运行。

在背景模糊的情况下,我们以有快速移动的近处主体的场景为目标。当按下快门按钮时,最近拍摄的帧被用作基础帧来生成常规曝光图像,因为它描绘了用户所选择的动作的顶点。然后,我们的算法可能会选择过去多达 8 个额外的帧来产生背景模糊效果。

在生成前景模糊效果时,我们以场景运动速度范围大得多的场景为目标,包括慢速和远距离移动的内容。为了产生引人注目的效果,这需要根据场景运动将拍摄时长延长至几秒。当按下快门按钮时,我们利用通过相机取景器看到的最后 5 帧快速分析场景运动统计数据,并自动确定后续拍摄时长,目的是满足我们的帧选择标准。我们使用接下来几节中描述的运动追踪和图像对齐的轻量级变体(其运行时间在 50 毫秒以内)来计算场景速度的估计值。根据这个估计值,在恒定速度假设下,我们很容易推导出能产生所需模糊拖影长度的拍摄时长。考虑到最长可达 7 秒的延长拍摄时长,我们还得出了一个帧处理速率,以便选择多达 12 个拍摄帧的均匀分布子集进行处理,在计算预算和合适的时间采样率之间取得平衡。被选中用于处理的拍摄帧被排队,以便由后续阶段立即进行并行处理,从而隐藏拍摄过程中的部分处理延迟。

Automatic Subject Detection

在背景模糊的情况下,我们希望主体固定,而其背后的世界其余部分呈现模糊效果。因此,我们会自动检测和追踪主要主体,并对输入帧进行对齐以抵消主体的运动。主体被表示为一个权重图,并用于求解反向主体运动对齐。
首先通过注意力显著性这一代理任务来预测主要主体。对于此任务,我们使用一个对移动端友好的、带有跳跃连接的 3 层 U - Net,其编码器由 15 个具有 10 个基础通道的 BlazeBlock 组成,相应的解码器由可分离卷积和双线性上采样层构成。它是从在 SALICON 数据集 上训练的一个更大的模型中提炼出来的。为了聚焦于我们信号中的显著性峰值,我们将预测值重新归一化到区间 [0, 1],并将低于阈值(我们根据经验选择 0.43)的值置零。
显著性信号往往在主体中心达到峰值,所以我们用面部信号对其进行补充,这有助于保持主体面部的清晰,这对于具有复杂关节运动的主体尤为重要。我们通过首先预测人、猫和狗的面部区域来计算面部信号,然后使用平滑阶跃衰减(smootherstep falloff)对所得区域进行羽化处理,最后用一个全主体分割对其进行掩蔽。
我们如下组合显著性和面部信号,以生成每个像素权重为𝑤 = 𝑠(1 + 𝑓) 的主体权重图,其中𝑠∈[0, 1] 是显著性信号值,𝑓∈[0, 1] 是面部信号值,随后将其重新归一化到区间 [0, 1]。

Motion Tracking

我们使用一个基于 [Grundmann 等人,2011] 的特征跟踪库来提取用于后续图像对齐的运动轨迹。运动轨迹统计数据也用于选择帧,以确定场景中何时已经捕获到足够的运动。
背景模糊中的主体跟踪需要在主体上有高浓度的轨迹,以实现稳定、高质量的对齐。作为一种延迟优化措施,我们对图像网格(每个网格单元为 5×5 像素)进行 rejection sampling,以生成密度与主体权重图成比例的特征轨迹。我们只尝试在这样的网格单元中提取特征轨迹:其中采样得到的均匀随机变量 𝑣∈[0, 1] 小于该网格位置对应的平均轨迹权重。

Image Alignment

根据特征轨迹对应关系,我们首先估计全局变换,以便将所有帧与参考帧对齐。这消除了整体相机运动,包括用于跟踪对象的手持抖动和扫动。剩余的图像对齐阶段则取决于所需的运动模糊效果:前景模糊或背景模糊。为了便于说明,我们选取一个示例场景,它可以呈现为如下两种情况之一:如图 3 所示,一辆出租车驶过繁忙的城市十字路口。

  • 图 3
    在这里插入图片描述

城市场景。上图:交通在繁忙的城市十字路口移动,前景运动向量(红色)和背景运动向量(绿色)。下图:我们的前景模糊(左)和背景模糊(右)结果。

  • 前景模糊

为了使背景尽可能清晰,我们必须考虑诸如视差、滚动快门和镜头畸变等空间效应。在应用全局变换之后,我们计算一个残差向量,它是变换后的跟踪特征与其在基准帧中对应位置之间的位置差。然后,我们利用这些残差来估计图像上顶点网格的局部细化变换。由此产生的空间变化扭曲消除了背景中的运动,同时保留了前景中的运动,从而产生如图 3(左下角)所示的清晰背景。

我们放置网格和估计局部变换的方法是类似的,但我们对各点进行均匀加权,并在局部相似性变换估计过程中对纳入的点采用硬性截止,以获得更好的性能。这种估计由每个顶点的支撑半径控制(在图 4 中显示为品红色圆圈),即特征点到顶点的最大距离,超过这个距离的特征点将不被纳入局部细化估计。我们发现,将这个半径设置为网格单元尺寸的 1.5 倍,并采用 8×6 个单元的网格尺寸,足以使局部细化变换在整个视场内平滑变化,同时又足够小,使得来自场景不同部分的不同场景对象不会相互影响。将估计出的变换应用于每个顶点,进而生成一个空间变化的网格,使任意帧的背景与参考帧的背景对齐。为了优化延迟,通过向 GPU 传递局部二维位移矢量纹理,将该网格的应用合并到下游渲染阶段。

  • 图 4
    在这里插入图片描述
    空间变化的扭曲。左上图:在一个网格顶点(橙色)的支持区域(品红色)内的背景流向量(绿色)对其局部位移(黄色)有贡献。右上图:得到的网格和空间变化的扭曲,将背景与参考帧的背景对齐。仅使用单个全局单应性变换的前景模糊结果(左下图)和使用我们的空间变化网格扭曲的前景模糊结果(右下图)。插图以 5 倍放大显示。

  • 背景模糊

在这种情况下,如图 3(右下角)所示,我们希望前景尽可能清晰。我们使用主体遮罩来选择与前景主体相对应的特征轨迹子集。以此为起点,我们进一步使用谱聚类来选择最显著的运动簇,以帮助辨别要跟踪的正确运动片段并去除异常值 [Porikli 2004]。这对于有关节运动的主体(例如跑步者,其四肢的运动与躯干不同)特别有用。
我们目标函数的目的是平衡两个目标:(1) 主体清晰度:使显著点对应关系的整体重投影误差最小化;(2) 时间平滑性:使变换后的背景运动矢量尽可能与前一时间步的运动矢量平行。

给定一对具有点对应关系 x i x_i xi x j x_j xj的帧 i i i j j j,我们定义一个相似变换,它将二维点从帧 i i i 到帧 j j j 进行均匀缩放( s j , i ∈ R 1 s_{j,i} \in \mathbb{R}^{1} sj,iR1)、旋转( R j , i ∈ S O ( 2 ) \mathbf{R}_{j,i} \in SO(2) Rj,iSO(2))和平移( t j , i ∈ R 2 t_{j,i} \in \mathbb{R}^{2} tj,iR2),如下所示:

x ^ j = s j , i R j , i x i + t j , i (1) \hat{x}_{j} = s_{j,i}\mathbf{R}_{j,i}x_i + t_{j,i} \tag{1} x^j=sj,iRj,ixi+tj,i(1)

为了简化,省略下标,目标函数可以定义为如下:

min ⁡ s , R , t λ f E f ( s , R , t ) + λ b E b ( s , R , t ) (2) \min_{s, R, t} \lambda_f E_f(s, R, t) + \lambda_b E_b(s, R, t) \tag{2} s,R,tminλfEf(s,R,t)+λbEb(s,R,t)(2)

λ f , λ b \lambda_f, \lambda_b λf,λb 是相对的权重系数, E f E_f Ef 是主体清晰度,针对前景点 x ∈ X f x \in X_f xXf 定义的,它是变换后点对应关系(使用公式 1)重投影误差的 L2 范数:

E f ( s , R , t ) = ∑ x ∈ X f ∥ x j − s R x i − t ∥ 2 (3) E_f(s, R, t) = \sum_{x \in X_f} \left \| x_{j} - sRx_i - t \right \|_2 \tag{3} Ef(s,R,t)=xXfxjsRxit2(3)

背景项 E b E_b Eb 被用作一种时间平滑先验,用于对与前一帧对中相应向量不平行的背景流向量进行惩罚。给定三个不同的帧索引 i,j 和 k 它利用向量点积作为平行性度量来定义,如下所示:

E b ( s i , k , R i , k , t i , k ) = ∑ x ∈ X b smooth L 1 ( ∣ v i , j ⋅ v j , k ∣ ∥ v i , j ∥ ∥ v j , k ∥ ) (4) E_b(s_{i,k}, R_{i,k}, t_{i,k}) = \sum_{x \in X_b} \text{smooth}_{L_1} (\frac{\left | v_{i,j} \cdot v_{j, k} \right|}{\left \| v_{i,j} \right \| \left \| v_{j,k} \right \| }) \tag{4} Eb(si,k,Ri,k,ti,k)=xXbsmoothL1(vi,jvj,kvi,jvj,k)(4)

其中 v p , q = x ^ q − x q v_{p,q} = \hat{x}_q - x_q vp,q=x^qxq 是参考帧 q 中的一个点与其来自帧 p 的变换后点对应关系之间的方向位移向量。采用 [Huber 1964] 中的平滑-L1 损失函数来防止优化过程中梯度消失。

smooth L 1 ( x ) = { 0.5 x 2 i f ∣ x ∣ < 1 ∣ x ∣ − 0.5 o t h e r w i s e (6) \text{smooth}_{L1}(x) = \left\{\begin{matrix} 0.5x^2 & if \left | x \right | < 1 \\ \left | x \right| - 0.5 & otherwise \end{matrix}\right. \tag{6} smoothL1(x)={0.5x2x0.5ifx<1otherwise(6)

不失一般性,我们选择 i =0 作为固定的参考帧索引,并在公式 4 中设置 k=j+1,以便在对帧序列进行单次正向遍历中,对每一对新的帧(j,j+1)增量式地估计变换。我们使用 Ceres 库 [Agarwal 等人,2022] 来解决这个非线性优化问题。我们分别为 λ f \lambda_f λf λ b \lambda_b λb 使用值 1 和 10,以平衡这两个误差项的影响。

未完待续:

Computational Long Exposure Mobile Photography (二)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/57944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【canal 中间件】canal 常见的启动方式

文章目录 一、安装 canal-admin1.1 拉取镜像1.2 启动 canal-admin 容器(使用脚本)1.2.1 下载脚本1.2.2 执行脚本1.2.3 初始化元数据库(可选) 1.3 启动 canal-admin 容器(直接使用 Docker 命令)1.3.1 启动容器1.3.2 查看启动日志 1.4 访问页面 二、 安装 canal-server2.1 拉取镜…

Python复习1:

一、数据类型 1.数字&#xff1a;int、float、bool 2.字符串&#xff1a;string 3.列表&#xff1a;list 4.集合&#xff1a;set 5.字典&#xff1a;dictionary 二、Test 1.print输出固定格式 num110 str1"hello world" #输出的固定格式 print("num1%d&…

不容错过的10个CSS与JS悬停效果,提升网站互动性

文章目录 前言正文1.悬停时照片效果2.快速强大的图像效果3.悬停标题滑出效果4.展示你的照片效果5.现实扭曲悬停效果6.分割图像悬停效果7.简约优雅图像效果8.动态图像效果9.大图像悬停画廊10.图像揭示效果 总结 前言 悬停效果是一种简单有效的网页互动方式&#xff0c;尤其在图…

微服务设计模式 — 补偿事务模式(Compensating Transaction Pattern)

微服务设计模式 — 补偿事务模式&#xff08;Compensating Transaction Pattern&#xff09; 定义 在云计算和分布式系统中&#xff0c;管理跨多个微服务或组件的事务一致性是一项极具挑战性的任务&#xff0c;补偿事务模式Compensating Transaction Pattern&#xff09;是一种…

Java实战项目-基于SpringBoot+Vue的二手车交易系统的研究与实现

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

[mysql]数据定义语言DDL和数据操作语言DCL

目录 前文提要 数据定义语言DDL 数据操作语言DML 数据控制语言DCL 基础知识: 标识符(命名规则): 数据定义语言DDL 创建和管理数据库.: 管理数据库 切换数据库 修改数据库 更改数据库字符集 删除数据库 如何创建表 方式1:”白手起家的方式”创建表 方式2:已经有…

webpack使用详解

摘要&#xff1a;webpack作为一款主流的构建工具&#xff0c;对比后来者Vite虽然存在一些缺点&#xff0c;例如启动慢&#xff0c;配置复杂等。在很多项目中使用依然基于webpack构建&#xff0c;有必要掌握其概念、构建流程和配置方法。 1 webpack概述 1.1 基本概念 webpack …

基于YOLO11/v10/v8/v5深度学习的维修工具检测识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

Zypher Network:全栈式 Web3 游戏引擎,服务器抽象叙事的引领者

近期&#xff0c;《黑神话&#xff1a;悟空》的爆火不仅让 AAA 游戏重回焦点&#xff0c;也引发了玩家与开发者的热议。Web2 游戏的持续成功导致部分 Web3 玩家们的倒戈&#xff0c;对比之下 Web3 游戏存在生命周期短且商业模式难以明确的问题&#xff0c;尤其在当前加密市场环…

H7-TOOL自制Flash读写保护算法系列,为兆易创新GD32E23X制作使能和解除算法,支持在线烧录和脱机烧录使用(2024-10-29)

说明&#xff1a; 很多IC厂家仅发布了内部Flash算法文件&#xff0c;并没有提供读写保护算法文件&#xff0c;也就是选项字节算法文件&#xff0c;需要我们制作。 实际上当前已经发布的TOOL版本&#xff0c;已经自制很多了。但是依然有些厂家还没自制&#xff0c;所以陆续开始…

flutter 写个简单的界面

起因&#xff0c; 目的: 来源: 客户需求。 着急要&#xff0c;我随便写的&#xff0c;应付一下。 过程: 略&#xff0c;直接看代码&#xff0c;看注释。 代码 1 xxx import package:flutter/material.dart;void main() {runApp(const MyApp()); }// # class MyApp extends…

.NET 8 中 Entity Framework Core 的使用

本文代码&#xff1a;https://download.csdn.net/download/hefeng_aspnet/89935738 概述 Entity Framework Core (EF Core) 已成为 .NET 开发中数据访问的基石工具&#xff0c;为开发人员提供了强大而多功能的解决方案。随着 .NET 8 和 C# 10 中引入的改进&#xff0c;开发人…

推荐一款可视化和检查原始数据的工具:RawDigger

RawDigger是一款强大的工具&#xff0c;旨在可视化和检查相机记录的原始数据。它被称为一种“显微镜”&#xff0c;使用户能够深入分析原始图像数据&#xff0c;而不对其进行任何更改。RawDigger并不是一个原始转换器&#xff0c;而是一个帮助用户查看将由转换器使用的数据的工…

第三十三章 Vue路由进阶路由模块封装

目录 一、引言 二、完整代码 main.js index.js App.vue Find.vue My.vue 一、引言 在上一个章节中&#xff0c;我们将所有的路由配置都堆在main.js中来实现路径组件的路由&#xff0c;这样做的话非常不利于我们后期对项目的维护。因此正确的做法是将路由模块抽离出来&a…

基于java+SpringBoot+Vue的新闻推荐系统设计与实现

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven mysql5.7或8.0等等组成&#x…

指派问题的求解

实验类型&#xff1a;◆验证性实验 ◇综合性实验 ◇设计性实验 实验目的&#xff1a;学会使用Matlab求解指派问题。 实验内容&#xff1a;利用Matlab编程实现枚举法求解指派问题。 实验例题&#xff1a;有5人分别对应完成5项工作&#xff0c;其各自的耗费如下表所示&#…

下载安装COPT+如何在jupyter中使用(安装心得,windows,最新7.2版本)

目录 1.到杉树科技官网申请下载COPT 2.安装COPT&配置许可文件 3.在jupyter中使用COPT的python接口 最近看到一本和数学建模有关的新书&#xff1a;《数学建模与数学规划&#xff1a;方法、案例及编程实战》&#xff0c;作为数学建模老手&#xff0c;肯定要学习一下&…

基于“互联网+”医养结合的智慧养老实训室建设方案

一、建设背景 根据国家统计局的数据&#xff0c;截至2023年末&#xff0c;我国60岁及以上的老年人口已达到29,697万人&#xff0c;占总人口的21.1%&#xff1b;其中&#xff0c;65岁及以上的人口为21,676万人&#xff0c;占总人口的15.4%。这一数据表明&#xff0c;我国正面临…

为什么需要MQ消息系统,mysql 不能满足需求吗?

大家好&#xff0c;我是锋哥。今天分享关于【为什么需要MQ消息系统&#xff0c;mysql 不能满足需求吗&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; 为什么需要MQ消息系统&#xff0c;mysql 不能满足需求吗&#xff1f; 1000道 互联网大厂Java工程师 精选面试…

计算机网络-以太网小结

前导码与帧开始分界符有什么区别? 前导码--解决帧同步/时钟同步问题 帧开始分界符-解决帧对界问题 集线器 集线器通过双绞线连接终端, 学校机房的里面就有集线器 这种方式仍然属于共享式以太网, 传播方式依然是广播 网桥: 工作特点: 1.如果转发表中存在数据接收方的端口信息…