当前位置:首页 » 操作系统 » 图片偏移算法

图片偏移算法

发布时间: 2023-02-14 22:37:07

㈠ 偏移量的 计算方法

曾经的电脑主流是八位的,内存寻址只有16位,也就是64K。当年PC机刚出的时候,还不完全是16位电脑,是个20位电脑。
但是他的地址线由两部分组成,一部分叫做段地址,一部分叫做偏移量,就类似单元楼住址,可以叫做单元的,然后这个某编号住户。
由这两个的叠加,形成一个地址。算法是,段地址占高20-4位,偏移量占16-0位,然后加起来。

㈡ GIS中坐标系与偏移算法总结

一 大地坐标系
1.1 概念
大地坐标系是大地测量中以参考椭球面为基准面建立起来的坐标系。
大地坐标系根据其原点的位置不同,分为地心坐标系和参心坐标系。地心坐标系的原点与地球质心重合,参心坐标系的原点与某一地区或国家所采用的参考椭球中心重合,通常与地球质心不重合。

1.2 常用的参心坐标系与地心坐标系

北京54 参心坐标系(参心坐标系)
西安80 参心坐标系(参心坐标系)
cgcs2000 地心坐标系(地心坐标系)
wgs84 地心坐标系(地心坐标系)

我国先后建立的1954年北京坐标系、1980西安坐标系和新1954年北京坐标系,都是参心坐标系。这些坐标系为我国经济社会发展和国防建设作出了重要贡献。
但是,随着现代科技的发展,特别是全球卫星定位技术的发展和应用,世界上许多发达国家和中等发达国家都已在多年前就开始使用地心坐标系。
国务院批准自2008年7月1日启用我国的地心坐标系——2000国家大地坐标系(CGCS-2000),同时要求用8-10年的时间,完成现行国家大地坐标系向20000国家大地坐标系的过渡和转换。过渡期结束,将停止提供现行国家大地坐标系下的测绘成果。

参考:
2018年7月1日起全面使用2000国家大地坐标系,西安80和北京54坐标系正式退出历史舞台

wgs84是为GPS全球定位系统使用而建立的坐标系统;gps设备采集的数据均为wgs84坐标系。

1.3 不同坐标系之间的转换
arcgis 软件中计算完成,参考:[arcgis坐标转换与投影]( https://www.jianshu.com/p/5c437696be06 )

二 坐标投影

2.1 投影后的坐标形式
原始经纬度:120.0397529296875,30.229220825195313
墨卡托投影后:13362764.171082955,3533048.2025558753
参考: arcgis js api:web墨卡托(3857)转经纬度坐标(4326)

2.2 投影的目的
方便工程测量、二维图展示便于理解。

2.3 根据不同需求使用不同的投影算法
例如: 墨卡托投影后的二维图导致了地球两极被拉宽,不适用于工程测量,但适合用作普通二维图的展示。而大比例尺的工程测量图对局部区域内精度要求高,而采用高斯克里格投影。

三 gcj02偏移算法(国家测绘局,被戏称为火星坐标)
注意 这是偏移算法,而不是单独的一个坐标系。习惯上人们将加了偏移算法的坐标称为gcj02坐标。经偏移算法处理的地图数据偏差一般为 300~500 米。

3.1 在我们国家发布的互联网地图按法律规定需要经过偏移算法加偏移。
例如高德地图、腾讯地图。

3.2 网络地图在gcj02基础上进行了二次加偏移,称为bd09坐标

3.3 天地图是否加偏移?
天地图采用cgcs2000坐标。
发布在互联网上的天地图并不一定都是加偏移,未加偏移的地图做了特殊处理,很多涉密地理信息在地图上找不到。

3.4 使用了加偏移的地图如何进行gis开发
对叠加到地图上的数据同样加偏移,实现与底图吻合。
参考: WGS84坐标与不同加密算法之间转换

更多参考:
你必须知道的地理坐标系和投影坐标系
arcgis坐标转换与投影变换

㈢ 什么是偏移量 怎么计算

计算机汇编语言中的偏移量定义为:把存储单元的实际地址与其所在段的段地址之间的距离称为段内偏移,也称为“有效地址或偏移量”。

“偏移量是人工加密方式的一种解析手段,没有更改过默认偏移量的清机加钞员将无法在ATM上获取开锁密码;每个清机加钞员获得的密码为4组,每组2位数字。

因此偏移量必须对应为4组,可以设置为除全零以外的任意数值,不得将4组偏移量设置为同一数字。偏移量的计算分为“加法”和“减法”两种方式”。

(3)图片偏移算法扩展阅读

偏移量属性:

offsetHeight:元素在垂直方向上占用的空间大小;相当于border-top+padding

top+height+padding-bottom+border-bottom

offsetWidth:元素在水平方向上占有的空间大小;相当于botder-left+padding-left+width+padding-right+border+right

offsetLeft:元素的左外边框至包含元素的左内边框之间的像素距离。

offsetTop:元素的上外边框至包含元素的上内边框之间的像素距离。
其中,offsetLeft和offsetTop属性与包含元素有关,包含元素的引用保存在offsetParent属性中。

㈣ [图像算法]-Faster RCNN详解

paper: Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Tensorflow-faster r-cnn github: Tensorflow Faster RCNN for Object Detection

faster rcnn是何凯明等大神在2015年提出目标检测算法,该算法在2015年的ILSVRV和COCO竞赛中获得多项第一。该算法在fast rcnn基础上提出了RPN候选框生成算法,使得目标检测速度大大提高。

(1)image input;
(2)利用selective search 算法在图像中从上到下提取2000个左右的Region Proposal;
(3)将每个Region Proposal缩放(warp)成227*227的大小并输入到CNN,将CNN的fc7层的输出作为特征;
(4)将每个Region Proposal提取的CNN特征输入到SVM进行分类;
(5)对于SVM分好类的Region Proposal做边框回归,用Bounding box回归值校正原来的建议窗口,生成预测窗口坐标.
缺陷:
(1) 训练分为多个阶段,步骤繁琐:微调网络+训练SVM+训练边框回归器;
(2) 训练耗时,占用磁盘空间大;5000张图像产生几百G的特征文件;
(3) 速度慢:使用GPU,VGG16模型处理一张图像需要47s;
(4) 测试速度慢:每个候选区域需要运行整个前向CNN计算;
(5) SVM和回归是事后操作,在SVM和回归过程中CNN特征没有被学习更新.

(1)image input;
(2)利用selective search 算法在图像中从上到下提取2000个左右的建议窗口(Region Proposal);
(3)将整张图片输入CNN,进行特征提取;
(4)把建议窗口映射到CNN的最后一层卷积feature map上;
(5)通过RoI pooling层使每个建议窗口生成固定尺寸的feature map;
(6)利用Softmax Loss(探测分类概率) 和Smooth L1 Loss(探测边框回归)对分类概率和边框回归(Bounding box regression)联合训练.

相比R-CNN,主要两处不同:
(1)最后一层卷积层后加了一个ROI pooling layer;
(2)损失函数使用了多任务损失函数(multi-task loss),将边框回归直接加入到CNN网络中训练
改进:
(1) 测试时速度慢:R-CNN把一张图像分解成大量的建议框,每个建议框拉伸形成的图像都会单独通过CNN提取特征.实际上这些建议框之间大量重叠,特征值之间完全可以共享,造成了运算能力的浪费.
FAST-RCNN将整张图像归一化后直接送入CNN,在最后的卷积层输出的feature map上,加入建议框信息,使得在此之前的CNN运算得以共享.
(2) 训练时速度慢:R-CNN在训练时,是在采用SVM分类之前,把通过CNN提取的特征存储在硬盘上.这种方法造成了训练性能低下,因为在硬盘上大量的读写数据会造成训练速度缓慢.
FAST-RCNN在训练时,只需要将一张图像送入网络,每张图像一次性地提取CNN特征和建议区域,训练数据在GPU内存里直接进Loss层,这样候选区域的前几层特征不需要再重复计算且不再需要把大量数据存储在硬盘上.
(3) 训练所需空间大:R-CNN中独立的SVM分类器和回归器需要大量特征作为训练样本,需要大量的硬盘空间.FAST-RCNN把类别判断和位置回归统一用深度网络实现,不再需要额外存储.
(4) 由于ROI pooling的提出,不需要再input进行Corp和wrap操作,避免像素的损失,巧妙解决了尺度缩放的问题.

(1)输入测试图像;
(2)将整张图片输入CNN,进行特征提取;
(3)用RPN先生成一堆Anchor box,对其进行裁剪过滤后通过softmax判断anchors属于前景(foreground)或者后景(background),即是物体or不是物体,所以这是一个二分类;同时,另一分支bounding box regression修正anchor box,形成较精确的proposal(注:这里的较精确是相对于后面全连接层的再一次box regression而言)
(4)把建议窗口映射到CNN的最后一层卷积feature map上;
(5)通过RoI pooling层使每个RoI生成固定尺寸的feature map;
(6)利用Softmax Loss(探测分类概率) 和Smooth L1 Loss(探测边框回归)对分类概率和边框回归(Bounding box regression)联合训练.

相比FASTER-RCNN,主要两处不同:
(1)使用RPN(Region Proposal Network)代替原来的Selective Search方法产生建议窗口;
(2)产生建议窗口的CNN和目标检测的CNN共享

改进:
(1) 如何高效快速产生建议框?
FASTER-RCNN创造性地采用卷积网络自行产生建议框,并且和目标检测网络共享卷积网络,使得建议框数目从原有的约2000个减少为300个,且建议框的质量也有本质的提高.

从上面的三张图可以看出,Faster R CNN由下面几部分组成:
1.数据集,image input
2.卷积层CNN等基础网络,提取特征得到feature map
3-1.RPN层,再在经过卷积层提取到的feature map上用一个3x3的slide window,去遍历整个feature map,在遍历过程中每个window中心按rate,scale(1:2,1:1,2:1)生成9个anchors,然后再利用全连接对每个anchors做二分类(是前景还是背景)和初步bbox regression,最后输出比较精确的300个ROIs。
3-2.把经过卷积层feature map用ROI pooling固定全连接层的输入维度。
4.然后把经过RPN输出的rois映射到ROIpooling的feature map上进行bbox回归和分类。

SPP-Net是出自论文《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》
由于一般的网络结构中都伴随全连接层,全连接层的参数就和输入图像大小有关,因为它要把输入的所有像素点连接起来,需要指定输入层神经元个数和输出层神经元个数,所以需要规定输入的feature的大小。而SPP-NET正好解决了这个问题。

如果原图输入是224x224,对于conv5出来后的输出,是13x13x256的,可以理解成有256个这样的filter,每个filter对应一张13x13的activation map.如果像上图那样将activation map pooling成4x4 2x2 1x1三张子图,做max pooling后,出来的特征就是固定长度的(16+4+1)x256那么多的维度了.如果原图的输入不是224x224,出来的特征依然是(16+4+1)x256;直觉地说,可以理解成将原来固定大小为(3x3)窗口的pool5改成了自适应窗口大小,窗口的大小和activation map成比例,保证了经过pooling后出来的feature的长度是一致的.

总结而言,当网络输入的是一张任意大小的图片,这个时候我们可以一直进行卷积、池化,直到网络的倒数几层的时候,也就是我们即将与全连接层连接的时候,就要使用金字塔池化,使得任意大小的特征图都能够转换成固定大小的特征向量,这就是空间金字塔池化的意义(多尺度特征提取出固定大小的特征向量)。

ROI pooling layer实际上是SPP-NET的一个精简版,SPP-NET对每个proposal使用了不同大小的金字塔映射,而ROI pooling layer只需要下采样到一个7x7的特征图.对于VGG16网络conv5_3有512个特征图,这样所有region proposal对应了一个7*7*512维度的特征向量作为全连接层的输入.

为什么要pooling成7×7的尺度?是为了能够共享权重。Faster RCNN除了用到VGG前几层的卷积之外,最后的全连接层也可以继续利用。当所有的RoIs都被pooling成(512\×7\×7)的feature map后,将它reshape 成一个一维的向量,就可以利用VGG16预训练的权重,初始化前两层全连接.

那么经过何种变换才能从图11中的窗口P变为窗口呢?比较简单的思路就是:

注意:只有当Proposal和Ground Truth比较接近时(线性问题),我们才能将其作为训练样本训练我们的线性回归模型,否则会导致训练的回归模型不work(当Proposal跟GT离得较远,就是复杂的非线性问题了,此时用线性回归建模显然不合理).这个也是G-CNN: an Iterative Grid Based Object Detector多次迭代实现目标准确定位的关键. 线性回归就是给定输入的特征向量X,学习一组参数W,使得经过线性回归后的值跟真实值Y(Ground Truth)非常接近.即.那么Bounding-box中我们的输入以及输出分别是什么呢?

如上图中标识:
① rpn_cls:60*40*512-d ⊕ 1*1*512*18 > 60*40*92 逐像素对其9个Anchor box进行二分类
② rpn_bbox:60*40*512-d ⊕ 1*1*512*36>60*40*9*4 逐像素得到其9个Anchor box四个坐标信息

逐像素对Anchors分类标记
① 去除掉超过1000*600这原图的边界的anchor box
② 如果anchor box与ground truth的IoU值最大,标记为正样本,label=1
③ 如果anchor box与ground truth的IoU>0.7,标记为正样本,label=1
④ 如果anchor box与ground truth的IoU<0.3,标记为负样本,label=0
剩下的既不是正样本也不是负样本,不用于最终训练,label=-1

逐像素Bbox回归纠正
除了对anchor box进行标记外,另一件事情就是计算anchor box与ground truth之间的偏移量
令:ground truth:标定的框也对应一个中心点位置坐标x ,y 和宽高w ,h
anchor box: 中心点位置坐标x_a,y_a和宽高w_a,h_a
所以,偏移量:
△x=(x -x_a)/w_a △y=(y -y_a)/h_a
△w=log(w /w_a) △h=log(h /h_a)
通过ground truth box与预测的anchor box之间的差异来进行学习,从而是RPN网络中的权重能够学习到预测box的能力

接着进一步对Anchors进行越界剔除和使用nms非最大值抑制,剔除掉重叠的框;比如,设定IoU为0.7的阈值,即仅保留覆盖率不超过0.7的局部最大分数的box(粗筛)。最后留下大约2000个anchor,然后再取前N个box(比如300个);这样,进入到下一层ROI Pooling时region proposal大约只有300个。

参考文献:

热点内容
晾干访问 发布:2025-07-27 17:32:11 浏览:853
忘了华为账号和密码怎么办 发布:2025-07-27 17:20:52 浏览:78
c是面向对象的语言吗 发布:2025-07-27 17:19:54 浏览:990
函数编译与预处理 发布:2025-07-27 17:19:50 浏览:808
剧本杀2026中的密码是什么 发布:2025-07-27 17:19:48 浏览:589
大华服务器ip和端口 发布:2025-07-27 17:06:23 浏览:346
c语言学习内容 发布:2025-07-27 17:02:01 浏览:15
nginxphp权限 发布:2025-07-27 17:01:21 浏览:452
apex国服是用什么服务器 发布:2025-07-27 16:53:42 浏览:616
哪里开出密码信函的几率高 发布:2025-07-27 16:47:55 浏览:848