Paper -- 建筑高度估计 -- 基于街景图像和深度学习的城区建筑高度计算
基本信息
论文题目: Building height calculation for an urban area based on street view images and deep learning
中文题目: 基于街景图像和深度学习的城区建筑高度计算
作者及单位:
– Zhen Xu Furong Zhang Yingying Wu Yajun Yang Yuan Wu
– 北京科技大学城市与安全研究所
,土木与资源工程学院,北京,中国
录用时间: 2023年
期刊: Computer-Aided Civil and Infrastructure Engineering
中国科学院SCI分区 1区
摘要
这篇文章提出了一种利用街景图像
和深度学习技术
计算城市建筑高度
的新方法。
- 通过
优化观察点位置
的遗传算法和基于Mask R-CNN
的深度学习模型 - 该方法能够高效地
检测建筑
并精确计算其高度
- 实验表明,平均高度误差为0.78米,证明了该方法的高精度和可行性
背景
城市建筑高度数据 在土地利用
、城市规划
、人口估算
、能源消耗分析
等多个领域具有重要价值
- 传统的
高度测量方法
包括土地测量、遥感图像处理等,但这些方法在高密度低层建筑
或特殊建筑形状
的地区往往失效
难点
- 观察点选择困难:
观察点过多
会浪费资源,而过少会导致建筑信息不完整。 - 全景图像检测难度高:
全景图像
中建筑形状复杂且失真严重
,传统算法难以有效检测。 - 高度计算复杂:需要精确建立
建筑的边界
和实际位置
之间的 映射关系
希望提出一种能够结合街景图像
和深度学习
的自动化方法,解决观察点选择、建筑检测和高度计算的难题
数据集和评价指标
数据集
- 来源:
百度
街景图像,包含校园
、新北川镇
和如皋市
的建筑数据。 - 标注方式:使用
LabelMe
手动标注建筑的边界曲线
。
5.2
评价指标
- mAP@.50 IOU:评估
Mask R-CNN
检测结果的精度。 - 误差分析:通过
实际测量值
验证计算高度的误差,平均误差为0.78米,平均相对误差为4.43%
方法
这张图展示了该论文提出的用于计算建筑高度
的整个方法框架,清晰地描述了从数据输入
到案例研究
的完整流程
图中5个部分的详细解释
- 数据输入(Data Input)
- 使用街景地图(如
百度街景
)获取建筑立面图像
。 - 从GIS平台获取
建筑足迹
和道路线
信息。 - 数据输入为整个框架提供了必要的初始信息,结合街景图像和空间数据
为后续步骤打下基础
- 使用街景地图(如
- 图像采集(Image Acquisition)
- 流程:
确定备选观察点
:通过遗传算法(GA)
优化选择观察点,以覆盖所有建筑
并减少下载数量。
街景爬虫
:从街景地图中自动获取
360°全景图像。 - 作用:
提高了
图像采集的效率,确保了数据的覆盖性
和完整性
。
- 流程:
- 建筑检测(Building Detection)
- 步骤:
创建样本集并对图像进行标注
。
训练Mask R-CNN模型
检测建筑。
使用mAP@.50 IOU
评价检测结果。 - 关键技术: Mask R-CNN可以
精确分割建筑边
界,为高度计算
提供了准确的输入数据。
- 步骤:
- 高度计算(Height Calculation)
- 流程:
将检测到的建筑
与实际建筑
进行映射。
采用边界搜索算法
定位建筑顶部。
构建数学模型
,基于图像中的边界点
计算建筑高度。 - 意义: 这一阶段是核心部分,结合检测结果和数学模型实现了
精确的高度计算
。
- 流程:
- 案例研究(Case Study)
- 验证场景:
北京科技大学校园
:用于验证方法的基本准确性
。
新北川镇
:证明方法在中型城市
的适用性。
如皋市
:展示方法在大规模城市环境中
的扩展能力。 - 图例解读: 图中用不同颜色表示建筑高度范围,例如:
黄色
:建筑高度小于24米。
绿色
:高度在24米至50米之间。
蓝色
:高度超过50米。
- 验证场景:
确定建筑观察点
(a):定义建筑与观察点的关系,判断建筑是否在观察范围内
(表示为 s i j s_{ij} sij)
(b):连接观察点与建筑转角点
,分析可视性。
(c ):基于视线和建筑轮廓的交互关系,确定建筑是否被完整观察到
(表示为 q i j q_{ij} qij)
Buildings(棕色):建筑的轮廓区域。
Observation locations(黄色圆点):观察点的位置
。
Observation range(绿色圆圈):观察点的覆盖范围
。
Turning points of buildings(绿色菱形):建筑的转角点
,用于判断可视性
确定建筑观察点是否能够有效观察到建筑立面
的流程如下:
- 判断建筑是否在观察范围内((a)部分)
- 步骤:
- 以
观察点
为圆心,半径为
有效观察距离 R R R,绘制圆形观察范围
。 - 如果建筑与观察范围
有重叠
,设 s i j = 1 s_{ij}=1 sij=1,否则 s i j = 0 s_{ij}=0 sij=0
- 以
- 目的: 这一部分用于筛选哪些建筑在某个观察点的有效范围内,从而减少后续的计算工作量。
- 步骤:
- 分析可视性((b)部分)
- 步骤:
- 连接
观察点
与建筑转角点
,生成多条视线
。 - 判断视线
是否穿过其他建筑
或被遮挡
。 - 如果视线与建筑轮廓
无交点
,则认为该转角点是可见的
。
- 连接
- 作用: 通过视线分析,进一步确认建筑的哪些部分可以被观察到。
- 步骤:
- 确定是否完整观察到建筑((c )部分)
- 步骤:
如果一个建筑的所有转角点
都在观察范围内且可见
,则设定 q i j = 1 q_{ij}=1 qij=1,表示该建筑被完整观察到
。否则 q i j = 0 q_{ij}=0 qij=0 - 意义: 这一部分的判断结果直接影响后续建筑检测和高度计算的准确性
- 步骤:
示例 -- 北京市科技大学西校区的观察点分布图
绿色区域代表建筑物的分布
。
黄色圆点标记了街景数据的观察点位置
。
橙色线条表示街道网络
,即街景数据的采集范围。
证明了:
- 数据采集优化
通过优化观察点分布
,减少冗余采集
,降低数据获取成本。 - 提升覆盖效果
确保建筑区域被完整观察
,保证街景图像采集的全面性。 - 应用于复杂场景
优化方法适用于更大范围
或更复杂建筑布局
的场景
比较了均匀分布方法和文章提出的优化方法在不同场景中的所需的观察点数量
均匀分布方法:
– 校园场景
需要25个观察点。
– 新北川镇场景
需要596个观察点。
提出的方法:
– 校园场景
仅需9个观察点。
– 新北川镇场景
仅需245个观察点。
对比结果:
– 在两个场景中,提出的方法显著减少了
所需的观察点数量
街景全景图及其分割网格示例
图像来源:
– 图像为典型的街景全景图
,来源于数据采集阶段,通过街景爬虫工具
获取。
– 其主要特点是通过球面投影
显示所有方向的信息
。
网格划分:
– 全景图被划分为多个均匀的矩形网格
,每个网格代表街景图像的一部分。
– 每个网格的划分是为了方便后续的区域化处理
,如检测目标建筑物
和分析建筑边界
网格化的目的
- 区域分块处理:
由于街景图像为全景形式,图像分辨率较高
且信息量大
。
将图像分割为多个子区域
后,可以针对每个区域
单独进行检测和分析。 - 定位精确性:
网格划分有助于快速定位建筑物
的具体位置,同时减少冗余计算
。
网格编号与处理流程
- 编号含义:
每个编号
对应一个矩形子区域
,用于标记建筑物所在的具体位置。 - 处理步骤:
- 输入全景图像:以
球面形式
展开街景数据,形成水平和垂直视野完整的图像。 - 划分网格:将图像
分割为16个相等
的矩形区域。 - 区域处理:针对
每个网格
运行建筑检测算法
,如Mask R-CNN。 - 结果合并:将各个网格中的检测结果
整合
,形成全局建筑物检测结果
。
- 输入全景图像:以
街景爬虫的实现流程
该图是一个流程图,详细描述了利用百度地图API
抓取街景全景图像
的实现步骤,包括初始化请求、抓取图像以及拼接存储的全过程:
初始化与请求
- 流程:
根据观察点的坐标
和全景图的水平及俯仰角度
初始化参数。
创建HTTP请求
,将所有请求放入队列
中。 - 作用:
将街景爬取任务转化为API调用
的可操作形式。
利用队列机制
为后续批量处理打下基础。
爬取图像
- 流程:
判断队列是否为空
:
–如果为空
,则结束爬取任务。
–如果不为空
,取出一个HTTP请求。
利用百度地图API发送请求并尝试爬取图像。
检查图像是否成功爬取
:
–如果成功
,删除队列中对应的请求。
–如果失败
,保留该请求以便重试。 - 作用:
通过循环机制确保每个请求都得到处理。
提高数据爬取的成功率,避免由于网络问题
导致的任务丢失。
拼接与存储
- 流程:
将成功爬取的子图像按照全景图的拼接规则
组合成完整的街景全景图
。
将拼接完成的全景图存储至本地
或数据库
中。 - 作用:
生成高质量的全景图,为后续建筑检测和高度计算提供输入数据
手动标注建筑物轮廓
该图展示了标注建筑物轮廓
的过程,图中不同建筑
被标注为不同的颜色区域
,轮廓线明确地勾勒出每个建筑物的边界
标注工具:使用了一种支持全景图像操作的标注软件(例如LabelMe)
标注内容的用途
- Mask R-CNN 模型训练:
– 标注的图像作为训练样本
,用于指导模型
学习如何分割建筑物
。 - 提升检测精度:
– 通过高质量标注
,提高模型对复杂背景下
建筑物边界的识别能力
检测到的建筑与实际建筑之间的映射关系
(a)部分:展示了建筑在实际地理空间
中的位置与观察点的几何关系
,基于球面坐标系统描述
。
(b)部分:展示了检测到的建筑在图像坐标系
中的表示以及从图像像素坐标
到地理位置
的映射过程。
(a) 地理空间中的建筑位置与观察点关系
- 元素解释:
黄色圆点
O ′ O' O′ : 观察点的位置。
绿色菱形
:建筑的转角点
。
红色边界线
:建筑物在当前视角下
的可观察部分。
ρ 1 , ρ 2 \rho_1,\rho_2 ρ1,ρ2:建筑与观察点之间的距离范围
。
D ( ρ ) D(\rho) D(ρ):建筑物边界的测量距离。 - 几何关系:建筑在地理空间中通过球面坐标系统描述,其位置和轮廓与观察点的位置密切相关。
(b) 图像空间中的建筑表示
- 元素解释:
W i m g W_{img} Wimg和 H i m g H_{img} Himg:图像的宽度
和高度
(像素单位)
( x j , y j ) (x_j, y_j) (xj,yj):建筑顶点
在图像中的像素坐标
映射关系:将图像中的像素点
( x j , y j ) (x_j, y_j) (xj,yj)转换为地理空间坐标
( ρ j , ϕ j ) (\rho_j,\phi_j) (ρj,ϕj)
ρ j = 2 π ⋅ ( x j W i m g − 1 2 ) φ j = π ⋅ ( 1 2 − y j H i m g ) \rho_j=2\pi\cdot\left(\frac{x_j}{W_\mathrm{img}}-\frac12\right)\text{}\\\varphi_j=\pi\cdot\left(\frac12-\frac{y_j}{H_\mathrm{img}}\right)\text{} ρj=2π⋅(Wimgxj−21)φj=π⋅(21−Himgyj)
此公式表示: 如何将街景图像中的矩形坐标(像素坐标)
映射到球面坐标系下的方位角和仰角
- 图像像素坐标系:
横坐标 x x x:图像宽度方向(从左至右)
纵坐标 y y y:图像高度方向(从上至下)
建筑检测与预处理
(a) 检测前的图像
内容:
– 使用Mask R-CNN
模型对街景图像进行建筑检测
,标注了建筑的边界框
(Bounding Box)。
– 检测结果显示在绿色框内
的建筑区域,框外的背景区域未被标注。
– 边界框内显示了置信度(“blg: 100%”)
,表明模型对建筑检测结果的高度信任
。
作用:
– 提供建筑的初步检测结果,为后续的预处理奠定基础。
(b) 预处理后的图像
内容:
– 经过预处理,仅保留建筑的二值化掩码
,建筑区域为白色
,其他背景区域为黑色。
– 去除了图像中的背景信息
,确保输入数据更为简洁。
作用:
– 为高度计算
和边界检测
提供更干净的数据
– 减少冗余信息对后续分析的干扰
边界搜索
该图展示了建筑顶部边界点
的搜索
与确定
过程
(a) 预处理图像
内容:
– 预处理后的二值化图像
,背景为黑色,建筑区域为白色
。
– 中间的绿色虚线
表示图像的参考中心线
(通常是观察点的视线)。
作用:
– 提供建筑的轮廓信息,作为边界搜索的输入。
(b) 搜索可能的观察角度
内容:
– 从不同的角度投射视线
,搜索建筑顶部
可能的边界点
。
– 蓝色锥形区域
表示视线范围
。
– 黑色箭头
指示视线的搜索方向
。
作用:
– 通过多视角分析,避免单一视角可能导致的边界误差。
(c ) 确定上边界点
内容:
– 根据视线和建筑轮廓的交点
,计算出建筑的顶部边界
。
– 紫色直线表示最终确定的边界点连接
。
作用:
– 精确定位建筑顶部,为高度计算
提供可靠的数据支持。
固定相机高度下建筑高度计算的测量模型
该图展示了如何通过几何关系推导建筑物高度的计算公式
观测结构:
右侧的相机
表示观察点,固定安装在某一高度 H c a m H_{cam} Hcam。
蓝色虚线
表示观察点与建筑的视线
。
黄色虚线
表示建筑的中心轴线
,用于表示高度的测量路径
符号说明1:
H ( ρ ) H(\rho) H(ρ):建筑物的总高度
。
H 1 ( ρ ) H_1(\rho) H1(ρ):建筑顶部到相机
的高度。
H 2 ( ρ ) = H c a m H_2(\rho) = H_{cam} H2(ρ)=Hcam:建筑底部到相机
的高度,等于相机安装的固定高度
。
关系:
建筑物总高度为顶部高度和底部相机高度之和:
H ( ρ ) = H 1 ( ρ ) + H 2 ( ρ ) H(\rho) = H_1(\rho) + H_2(\rho) H(ρ)=H1(ρ)+H2(ρ)
符号说明2:
D ( ρ ) D(\rho) D(ρ): 观察点到建筑的水平距离
φ 1 \varphi_1 φ1: 从观察点到建筑顶部
的仰角
φ 2 \varphi_2 φ2: 从观察点到建筑底部
的仰角
关系:
根据三角函数,顶部和底部的高度可以通过仰角和水平距离
计算
H 1 ( ρ ) = D ( ρ ) ⋅ tan ( φ 1 ) H 2 ( ρ ) = D ( ρ ) ⋅ tan ( φ 2 ) H_1(\rho)=D(\rho)\cdot\tan(\varphi_1)\\H_2(\rho)=D(\rho)\cdot\tan(\varphi_2) H1(ρ)=D(ρ)⋅tan(φ1)H2(ρ)=D(ρ)⋅tan(φ2)
计算建筑高度与实际测量建筑高度之间的对比
第一列:建筑编号(Building no.),标记19栋建筑
的序号
第二列:通过提出的方法计算出的建筑高度
H a H^a Ha(单位:米)
第三列:实际测量的建筑高度
H m H^m Hm(单位:米)
第四列:计算高度与测量高度之间的绝对误差(Error)
,单位为米。
表格底部 显示了整体的平均相对误差(Mean relative error)
,为4.43%。
较大误差现象:
– 编号9的误差为2.35米,这是表格中最大的误差
。
– 表明在部分较高
或复杂建筑
的高度计算中仍存在改进空间
尽管建筑高度和结构复杂性不同,该方法在所有19栋建筑上均表现出较好的精度
北京科技大学西校区建筑高度分布的三维可视化结果
该图展示了校园内所有建筑的三维结构
及其对应的高度分类
。
建筑的高度被划分为三个范围,并以不同颜色表示:
– 黄色:高度小于15米。
– 绿色:高度在15米至30米之间。
– 蓝色:高度大于30米。
蓝色圆点 标记了街景数据的观察点分布
新北川镇的建筑高度计算结果
该图展示了新北川镇
的建筑高度
计算结果,以三维形式
显示了不同建筑的高度分布情况
高度低于5米 的建筑:灰色。
高度在5米到24米之间 的建筑:绿色。
高度在24米到50米之间 的建筑:黄色。
高度高于50米 的建筑:红色。
通过真实场景的三维可视化,验证了文章提出的方法在建筑高度计算中
的适用性和精确性
相关文章:
Paper -- 建筑高度估计 -- 基于街景图像和深度学习的城区建筑高度计算
基本信息 论文题目: Building height calculation for an urban area based on street view images and deep learning 中文题目: 基于街景图像和深度学习的城区建筑高度计算 作者及单位: – Zhen Xu Furong Zhang Yingying Wu Yajun Yang Yuan Wu – 北京科技大学城市与安全研…...
机器学习周志华学习笔记-第6章<支持向量机>
机器学习周志华学习笔记-第6章<支持向量机> 卷王,请看目录 6支持向量机6.1 函数间隔与几何间隔6.1.1 函数间隔6.1.2 几何间隔 6.2 最大间隔与支持向量6.3 对偶问题6.4 核函数6.5 软间隔支持向量机6.6 支持向量机6.7核方法 6支持向量机 支持向量机是一种经典…...
第三届航空航天与控制工程国际 (ICoACE 2024)
重要信息 会议官网:www.icoace.com 线下召开:2024年11月29日-12月1日 会议地点:陕西西安理工大学金花校区 (西安市金花南路5号) 大会简介 2024年第三届航空航天与控制工程国际学术会议(ICoACE 2024&a…...
【大数据技术基础】 课程 第8章 数据仓库Hive的安装和使用 大数据基础编程、实验和案例教程(第2版)
第8章 数据仓库Hive的安装和使用 8.1 Hive的安装 8.1.1 下载安装文件 访问Hive官网(http://www.apache.org/dyn/closer.cgi/hive/)下载安装文件apache-hive-3.1.2-bin.tar.gz 下载完安装文件以后,需要对文件进行解压。按照Linux系统使用的…...
BERT 详解
BERT简介 BERT(Bidirectional Encoder Representations from Transformers)是由 Google 在 2018 年提出的一种预训练语言模型。BERT 在自然语言处理(NLP)领域取得了重大突破,因为它能够有效地捕捉文本的上下文信息&am…...
使用 MySQL 的 REPLACE() 函数轻松替换表中字段
前言 在数据库操作中,经常需要对存储的数据进行一些处理和修改,替换字段中的部分信息。MySQL 提供了多种字符串函数来帮助开发者完成这些任务。其中一个非常实用的函数就是 REPLACE()。 REPLACE() 函数简介 REPLACE() 函数用于在字符串中查找指定的子…...
Http 响应协议
HTTP的响应协议 响应数据格式 响应行 响应数据的第一行,包括协议、状态码、描述 响应头 从响应数据格式的第二行开始,也是以key:value的格式 响应体 和响应头之间有一个空行,是响应数据格式的最后一部分,用于存放响应的数据 常见响…...
TCP/IP 协议:网络世界的基石(2/10)
一、引言 在当今数字化时代,互联网已经成为人们生活中不可或缺的一部分。而在互联网的背后,TCP/IP 协议扮演着至关重要的角色,堪称互联网的基石。 TCP/IP 协议是一组用于数据通信的协议集合,它的名字来源于其中最重要的两个协议…...
Lua--1.基础知识
Lua基础知识 变量简单的4种变量类型复杂的4种变量类型type函数 字符串操作长度获取--#多行打印字符串拼接别的类型转字符串-- tostring()字符串提供的公共方法 运算符算术运算符-- - * / % ^条件运算符-- > < > < ~(不等于 是 ~)逻辑运算符-- and or not位运算、…...
【GPT】力量训练的底层原理?
详细解读力量训练的每一个底层原理 力量训练之所以有效,是因为它利用了肌肉、神经系统和生物化学反应的基本机制。以下逐一详细解析,并解释相关概念。 1. 应力-恢复-适应理论 概念解析 应力(Stress):指训练带来的负…...
各种排序算法
前置知识 排序: 按照递增或者递减的顺序把数据排列好 稳定性: 值相等的元素在排序之后前后顺序是否发生了改变 内部排序: 数据放在内存上 外部排序: 数据放在磁盘上 内部排序 基于比较的排序 几大排序算法 1. 堆排序 特点: 思想: 1. 创建大根堆,把所有元素放在大根堆里…...
源码解读笔记:协程的 ViewModel.viewModelScope和LifecycleOwner.lifecycleScope
分析下ViewModel.viewModelScope public val ViewModel.viewModelScope: CoroutineScopeget() {val scope: CoroutineScope? this.getTag(JOB_KEY)if (scope ! null) {return scope}return setTagIfAbsent(JOB_KEY,CloseableCoroutineScope(SupervisorJob() Dispatchers.Ma…...
11.27周三F34-Day8打卡
文章目录 1. 学习让我感觉很棒。(什么关系?动作 or 描述?主语部分是?)解析答案:【解析答案分析】【对比分析】【拓展内容】2. 她忽然想起来钥匙放另一个包里了。解析答案:【拓展内容】3. 她来不来都没关系。(该由什么引导?这句话又属于什么关系,动作 or 描述?)解析答案…...
XG(S)-PON原理
前言 近年来,随着全球范围内接入市场的飞快发展以及全业务运营的快速开展,已有的PON技术标准在带宽需求、业务支撑能力以及接入节点设备和配套设备的性能提升等方面都面临新的升级需求XG(S)-PON(10G GPON)是在已有GPON技术标准上演进的增强下一代GPON技…...
C语言实例之9斐波那契数列实现
1. 斐波那契数列简介 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多・斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为 “兔子数列”。 它的特点是从第三…...
YOLO系列论文综述(从YOLOv1到YOLOv11)【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】
目录 1 前言2 YOLO在不同领域的应用3 物体检测指标和NMS3.1 mAP和IOU3.2 mAP计算流程3.2.1 VOC 数据集3.2.2 微软 COCO 数据集 3.3 NMS 1 前言 最近在做目标检测模型相关的优化,重新看了一些新的论文,发现了几篇写得比较好的YOLO系列论文综述࿰…...
数据结构--Map和Set
目录 一.二叉搜索树1.1 概念1.2 二叉搜索树的简单实现 二.Map2.1 概念2.2 Map常用方法2.3 Map使用注意点2.4 TreeMap和HashMap的区别2.5 HashMap底层知识点 三.Set3.1 概念3.2 Set常用方法3.3 Set使用注意点3.4 TreeSet与HashSet的区别 四.哈希表4.1 概念4.2 哈希冲突与避免4.3…...
计算机操作系统——进程控制(Linux)
进程控制 进程创建fork()函数fork() 的基本功能fork() 的基本语法fork() 的工作原理fork() 的典型使用示例fork() 的常见问题fork() 和 exec() 结合使用总结 进程终止与$进程终止的本质进程终止的情况正常退出(Exit)由于信号终止非…...
【前端】ES6基础
1.开发工具 vscode地址 :https://code.visualstudio.com/download, 下载对应系统的版本windows一般都是64位的 安装可以自选目录,也可以使用默认目录 插件: 输入 Chinese,中文插件 安装: open in browser,直接右键文件…...
【排序算法 python实现】
排序算法 python实现 / 默写 # 汉诺塔 import copy import randomdef hanuo(n, a, b, c):if n 1:print(f{a} --> {c})returnhanuo(n - 1, a, c, b)print(f{a} --> {c})hanuo(n - 1, b, a, c)hanuo(3, A, B, C)# 冒泡排序 def bubble_sort(arr):n len(arr)for i in ran…...
Java图书管理系统(简易保姆级)
前面学习了这么多知识,为了巩固之前的知识,我们就要写一个图书管理系统来帮助大家复习,让大家的知识融会贯通~~~ 话不多说,直接开始今天的内容~ 首先呢,我们要有一个大体的思路: 实现效果思路有两种情况&a…...
嵌入式硬件设计:从概念到实现的全流程
嵌入式硬件设计是现代电子技术中一个至关重要的领域,涉及从硬件架构设计到硬件调试的各个方面。它为我们日常生活中的各类智能设备、家电、工业控制系统等提供了强大的支持。本文将介绍嵌入式硬件设计的基本流程、关键技术、常用工具以及常见的挑战和解决方案&#…...
第 4 章 Java 并发包中原子操作类原理剖析
原子变量操作类 AtomicLong 是原子性递增或者递减类,其内部使用 Unsafe 来实现,AtomicLong类也是在 rt.jar 包下面的,AtomicLong 类就是通过 BootStarp 类加载器进行加载的。这里的原子操作类都使用 CAS 非阻塞算法 private static final lon…...
从 0 到 1 掌握部署第一个 Web 应用到 Kubernetes 中
文章目录 前言构建一个 hello world web 应用项目结构项目核心文件启动项目 检查项目是否构建成功 容器化我们的应用编写 Dockerfile构建 docker 镜像推送 docker 镜像仓库 使用 labs.play-with-k8s.com 构建 Kubernetes 集群并部署应用构建 Kubernetes 集群环境编写部署文件 总…...
政安晨【零基础玩转各类开源AI项目】探索Cursor-AI Coder的应用实例
目录 Cusor的主要特点 Cusor实操 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! Cursor 是 Visual Studio Code 的一个分支。这使我们能够…...
CentOS 7 安装部署 KVM
1.关闭虚拟机 打开相关选项 打开虚拟机centos7 连接xshell 测试网络,现在就是没问题的,因为我们要使用网络源 安装 GNOME 桌面环境 安装KVM 模块 安装KVM 调试工具 构建虚拟机的命令行工具 qemu 组件,创建磁盘、启动虚拟机等 输入这条命令,…...
ArcGIS 10.2软件安装包下载及安装教程!
今日资源:ArcGIS 适用系统:WINDOWS 软件介绍:ArcGIS是一款专业的电子地图信息编辑和开发软件,提供一种快速并且使用简单的方式浏览地理信息,无论是2D还是3D的信息。软件内置多种编辑工具,可以轻松的完成地…...
一个专为云原生环境设计的高性能分布式文件系统
大家好,今天给大家分享一款开源创新的分布式 POSIX 文件系统JuiceFS,旨在解决海量云存储与各类应用平台(如大数据、机器学习、人工智能等)之间高效对接的问题。 项目介绍 JuiceFS 是一款面向云原生设计的高性能分布式文件系统&am…...
基于深度学习CNN算法的花卉分类识别系统01--带数据集-pyqt5UI界面-全套源码
文章目录 基于深度学习算法的花卉分类识别系统一、项目摘要二、项目运行效果三、项目文件介绍四、项目环境配置1、项目环境库2、环境配置视频教程 五、项目系统架构六、项目构建流程1、数据集2、算法网络Mobilenet3、网络模型训练4、训练好的模型预测5、UI界面设计-pyqt56、项目…...
3174、清除数字
3174、[简单] 清除数字 1、题目描述 给你一个字符串 s 。你的任务是重复以下操作删除 所有 数字字符: 删除 第一个数字字符 以及它左边 最近 的 非数字 字符。 请你返回删除所有数字字符以后剩下的字符串。 2、解题思路 遍历字符串: 我们需要逐个遍…...
广州美容网站建设/googleseo优化
vue监听浏览器tab切换 描述 监听tab切换浏览器页面,在离开当前页面和再次进来发生事件监听,类似与小程序的show函数 visibilitychange 详解 解决 created() {document.addEventListener(visibilitychange, () > {if(document.visibilityState h…...
全国蔬莱网站建设/seo网站排名优化案例
转自:http://liubin.nanshapo.com/2010/12/28/memory-leak-for-the-thread/ 最近解决的一个内存泄露,竟然是由于线程问题引起的 看看下面代码,如何? 1 new Thread(new Runnable() { 2 public void run() { 3 …...
企业网站维护的主要内容/优化大师破解版app
VueEcharts中力导向图与自定义节点样式展示组装节点数据echarts绘制图片设置属性效果预览 橘黄色节点为主节点自定样式,其余都是子节点 实现步骤: 附主要逻辑代码 组装节点数据 import userself from ../../../../static/img/user-self.png import use…...
网站开发教程PDF微盘下载/淘数据官网
Visual Basic .NET 教程 模块五 菜单栏、工具栏、状态栏 能力目标:能够设计、创建和使用菜单、工具栏和状态栏 知识目标:掌握菜单控件、工具栏控件和状态栏控件常用的属性、方法和事件 一个典型的Windows应用程序必然包含菜单、工具栏和状态栏&#x…...
做综合医院网站/免费的个人网站html代码
Document.get获取记录数据,或获取根据查询条件筛选后的记录数据函数签名如下:function get(options?: object): Promise参数说明options 为可选参数,是一个如下格式的对象,如传入 success、fail、complete 三者之一,则…...
网站建设的主要内容/搜索seo优化
1、新建repository snapshot和第三方jar包的repository的类型是hosted且Version pollcy是Mixed,否则无法上传。 2、手动上传 选择jar包手动上传即可 转载于:https://www.cnblogs.com/MakeInstall/p/11041262.html...