【论文阅读32】《Texture Defragmentation for Photo-Reconstructed 3D Models》

news2024/9/22 9:59:12

目录

1 introduction

2 overview

 3 Related work

3.1 Single-patch Mesh Parametrization

3.2 Global Mesh Parametrization

3.3 Signal-Specialized UV Maps

3.4 Mesh repairing

3.5 Alleviating the effect of seams

3.6 Packing of texture charts

4 Phases of the algorithms

4.1. Enumeration of candidate merge operations

4.2. Performing a merge operation

 4.2.1. Initial alignment

4.2.2. Local UV re-optimization

4.2.3. Consistency Checks

4.3. Ranking of the candidate operations

4.4. Updating candidate operations

4.5. Atlas Repacking

4.6. Extension to Multiple Texture Sheets

5. Results

5.1 defragmentaion 实验

5.2 ablation study

5.2.1 local optimization (alpha 邻域)

5.2.2 greedy order

5.2.3 appeal score factors

5.3 Comparison against computing an entirely new UV-map

6. conclusions


1 introduction

  1. 不采用重新map的原因:
    1. 模型不连续,高分辨率--不利于参数化(模型复杂)
    2. resample纹理图,导致纹理信息损失
  2. 摄影测量三维重建,纹理问题
    1. 用参数化的思路——走不通
      1. undistorted map--不关注
      2. 根据映射后UV坐标(0~1)对原始重建影像采样(三维顶点投影到视图,得到像素坐标(隐含一次采样),变换得到到UV纹理图)
      3. 渲染时,需要对纹理图再采样(到screen)
      4. 总结:视图-纹理图-屏幕渲染(两次采样:信息损失
      5. 模型不规整
    2. 目前的思路:三维顶点投影到视图,得到像平面坐标,再对像平面坐标采样,直接copy-拼接到最终的UV纹理图,无需额外采样
      1. 三维面片最佳视图的选择,与可视性 && 法向有关(尽可能选择正视图???
      2. 保证了与重建影像相同的采样密度: 近大远小(近处采样密度高,远处采样密度小)
      3. 疑惑?? 采样密度与UV纹理图中像素数相关;在人工UV展开时,像素数,应该与模型部位的重要性有关;而上述方法,像素数与该部位相对于最佳影像的深度
      4. 好处/意义
      5. 需要注意的点
        1. Seam - visible(视觉上尽量不可见)
        2. 全局一致性
        3. [LI07] LEMPITSKY V., IVANOV D.: Seamless mosaicing of image-based texture maps. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (2007), IEEE Computer Society, pp. 1–6.
        4. [GWO∗10] GAL R., WEXLER Y., OFEK E., HOPPE H., COHEN-OR D.: Seamless montage for texturing models. Computer Graphics Forum 29, 2 (2010), 479–486.
    3. 当前做法的问题
      1. [YLT19] YUKSEL C., LEFEBVRE S., TARINI M.: Rethinking texture mapping. Computer Graphics Forum 38, 2 (2019), 535–551.
      2. Texture space - packing
      3. Texture pixel = texel
        1.  Texel 重复
        2. 渲染时,基于UV图,采样颜色值时,采用双线性插值,得到最终的渲染值
        3. 在seam边界处,由于存在空白区域,上述插值,会导致seam边界处的渲染值不一致,进一步使得接缝明显;
        4. 因此seam边界处的插值,要考虑空间邻接性,体现为:将空间邻接的texel重复备份,用于插值
        5. seam越长,备份数据越多
        6. [RNLL10] RAY N., NIVOLIERS V., LEFEBVRE S., LÉVY B.: Invisible seams. Computer Graphics Forum 29, 4 (2010), 1489–1496.
      4. 问题2也加重了问题(预留更多gap来备份)
      5. 双线性插值本身,是种不连续的方式,使得seam两侧还是不一致
      6. Seam顶点的备份(标记seam??)--gpu memory/loading /cache
      7. seam导致缓存不一致?!!!

                  除第一个问题,其他都是渲染方面的问题??

2 overview

  1. 本文核心目标:
    1. 减少缝-碎片减少
    2. 尽可能保留原始变形属性,同时避免重采样
  2. 上述目标,是相互冲突,无法找到全局最优的解决方法,因此,采用贪心策略(需要去了解一下贪心策略的含义)

 3 Related work

3.1 Single-patch Mesh Parametrization

  1. Single :强调只讨论基于变形度的map,不考虑seam
  2. 结合需求,应该侧重于基于纹理映射的参数化!!!!
    1. [FH05] FLOATER M. S., HORMANN K.: Surface parameterization: a tutorial and survey. In Advances in Multiresolution for Geometric Modelling (Berlin, Heidelberg, 2005), Dodgson N. A., Floater M. S., Sabin M. A., (Eds.), Springer Berlin Heidelberg, pp. 157–186.
    2. [SPR∗07] SHEFFER A., PRAUN E., ROSE K., ET AL.: Mesh parameterization methods and their applications. Foundations and Trends R in Computer Graphics and Vision 2, 2 (2007), 105–171.
    3. [HPS08] HORMANN K., POLTHIER K., SHEFFER A.: Mesh parameterization: Theory and practice. In ACM SIGGRAPH ASIA 2008 Courses (2008), SIGGRAPH Asia ’08.
    1. [LZX08] LIU L., ZHANG L., XU Y., GOTSMAN C., GORTLER S. J.: A local/global approach to mesh parameterization. Computer Graphics Forum 27, 5 (2008), 1495–1504.
    2. [SA07] SORKINE O., ALEXA M.: As-rigid-as-possible surface modeling. In Proceedings of the Fifth Eurographics Symposium on Geometry Processing (2007), SGP ’07, pp. 109–116.
    3. [RPPSH17] RABINOVICH M., PORANNE R., PANOZZO D., SORKINEHORNUNG O.: Scalable locally injective mappings. ACMTrans. Graph. 36, 2 (2017).
    1. [LZX∗08] LIU L., ZHANG L., XU Y., GOTSMAN C., GORTLER S. J.: A local/global approach to mesh parameterization. Computer Graphics Forum 27, 5 (2008), 1495–1504.

3.2 Global Mesh Parametrization

  1. global :强调考虑seam+基于变形度的map
  2. 二者同时考虑,构成NP-hard问题——一般采用启发式算法(heuristics)
  3. [PTH∗17] PORANNE R., TARINI M., HUBER S., PANOZZO D., SORKINE-HORNUNG O.: Autocuts: Simultaneous distortion and cut optimization for uv mapping. ACMTrans. Graph. 36, 6 (2017)
  4. 需要关注能够体现 平衡seam + distortion 的度量方式
    1. 难点:seam的衡量
    2. 本文: [MPCT20][MPCT20] MAGGIORDOMO A., PONCHIO F., CIGNONI P., TARINI M.: Real-world textured things: A repository of textured models generated with modern photo-reconstruction tools. Computer Aided Geometric Design 83 (2020).
    3. [LKK∗18] LI M., KAUFMAN D. M., KIM V. G., SOLOMON J., SHEFFER A.: Optcuts: Joint optimization of surface cuts and parameterization. ACMTrans. Graph. 37, 6 (2018).

3.3 Signal-Specialized UV Maps

  1. 含义:参数化过程中重点考虑纹理问题,纹理的信息是否被损耗
  2. 相关研究(重要)!!!
    1. [SWB98] SLOAN P.-P. J., WEINSTEIN D. M., BREDERSON J.: Importance driven texture coordinate optimization. Computer Graphics Forum 17, 3 (1998), 97–104.
    2. [SGSH02] SANDER P. V., GORTLER S. J., SNYDER J., HOPPE H.: Signal-specialized parametrization. In Proceedings of the 13th Eurographics Workshop on Rendering (2002), EGRW ’02, Eurographics Association, pp. 87–98.
    3. [BTB02] BALMELLI L., TAUBIN G., BERNARDINI F.: Space-optimized texture maps. In Computer Graphics Forum (2002), vol. 21, pp. 411– 420.
  3. 本文:不考虑纹理信号(原始纹理图,每个像素同等重要)  && 不保证每个像素在最终的结果中,都1:1保留
  4. Signal specialization && avoid texture area to be resampled 是一个trade-off问题

3.4 Mesh repairing

  1. 用于解决摄影测量生成模型-inconsistent问题
  2. 参考:
    1. [ACK13] ATTENE M., CAMPEN M., KOBBELT L.: Polygon mesh repairing: An application perspective. ACM Comput. Surv. 45, 2 (2013).
  3. 结论:repair不适用
    1. repair步骤需要处理一个具有高几何复杂度和分辨率的mesh,其本身就是当前难以解决的问题
    2. repair后,会涉及到texel密度改变 && 重采样
  4. 本文仍旧基于原始模型(可以尝试repair)

3.5 Alleviating the effect of seams

  1. 减少seam number的几个目的(不同侧重点),相关方法包含一个或多个
    1. Servey:[YLT19] YUKSEL C., LEFEBVRE S., TARINI M.: Rethinking texture mapping. Computer Graphics Forum 38, 2 (2019), 535–551.
  2. 最接近本文应用场景的方法:
    1. [[SWG∗03] SANDER P. V., WOOD Z. J., GORTLER S. J., SNYDER J., HOPPE H.: Multi-chart geometry images. In Proceedings of the 2003 Eurographics/ACM SIGGRAPH Symposium on Geometry Processing (2003), SGP ’03, Eurographics Association, p. 146â ˘A¸S155.] LIU S., FERGUSON Z., JACOBSON A., GINGOLD Y.: Seamless: Seam erasure and seam-aware decoupling of shape from mesh resolution. ACMTrans. Graph. 36, 6 (2017).
    2. 不同点:
      1. 参考文献只考虑了 visual artifacts
      2. 参考文献的实验数据,是小规模mesh,摄影测量的模型是大规模的&& 复杂的

3.6 Packing of texture charts

  1. packing问题嵌入到参数化问题中,类似于一个组合优化问题--采用启发式(类似于autoCut)
  2. 常规方法:chart栅格化-pack to 2d grid(最小化各种损失函数:pack水平高度?? chart之间的空隙空间)
    1. [LPRM02] LÉVY B., PETITJEAN S., RAY N., MAILLOT J.: Least squares conformal maps for automatic texture atlas generation. ACM Trans. Graph. 21, 3 (2002), 362–371.
    2. [SWG∗03] SANDER P. V., WOOD Z. J., GORTLER S. J., SNYDER J., HOPPE H.: Multi-chart geometry images. In Proceedings of the 2003 Eurographics/ACM SIGGRAPH Symposium on Geometry Processing (2003), SGP ’03, Eurographics Association, p. 146â ˘A¸S155.
    3. [NS11] NÖLL T., STRIEKER D.: Efficient packing of arbitrary shaped charts for automatic texture atlas generation. Computer Graphics Forum 30, 4 (2011), 1309–1317.
  3. pack过程中,首先detect大的空隙空间(由复杂的seam边界line造成) ,然后通过split charts来减少这些空隙---其实质与减少seam number && length相悖 --trade-off
  4. 本文:
    1. 直接采用先有的packing方法,增加一个grid-perserving constraint
    2. 本文输入到packing额uv-map,chart 数量更少,形状更加规整
  5. 参考:[LVS18] LIMPER M., VINING N., SHEFFER A.: Box cutter: Atlas refinement for efficient packing via void elimination. ACMTrans. Graph. 37, 4 (2018).

4 Phases of the algorithms

  1. Linked edges: 与seam相对应的边
  2. Charts: connected component in UV-layout
  3. Linked chart: 通过linked edges 联系的charts

4.1. Enumeration of candidate merge operations

  1. Merge operations:
    1. 只考虑:merge the all linked edges of linked charts
    2. merge the subset of linked edges of linked charts:成立,但会增加merge operation的空间,故不考虑
  2. 针对 linked edge出现在同一个chart的情况--intra-chart,合并,不影响chart数目
  3. 舍弃无效的合并操作:将非0亏格变为0的操作

4.2. Performing a merge operation

  1. Merge operations,涉及到transform && topological unifying---会使相关tri变形--违背目的2,因此,用tri变形作为是否接受该merge的评判标准之一
  2. 在merge相关操作中,尽可能较少变形,体现为:
    1. Initial 步骤,采用刚性变换
 

 4.2.1. Initial alignment

  1. Step1:将小的tri,2d gridly transformed to the 大的tri
    1. Transform: 刚性;目标:最小化对应顶点间的距离--最小二乘
      1. 这个变换,仅考虑距离,没有考虑其他限制:例如 变换后导致overlap && 较小tri朝向改变
      2. 前者通过merge取平均,可以消除;后者不可——这也是后续需要进行一致性检查的原因
        1. 绿色表示tir的正确方向,红色表示翻折后tir的错误面片            
        2. 针对intra-chart, transform --identity
        3. transform中的rotation(90°倍数),会引起最终纹理像素从原始零碎纹理图中进行重采样问题!!!(见notebility)

  2.  Step2: Merge(vertice位置取平均)——会引起变形

4.2.2. Local UV re-optimization

  1. 局部调整,其他区域固定position
  2. As-rigid-as-possible(ARAP)
    1. isometric distortions
  3. 评价re-optimization:
    1. Minimized energy  VS local th
    2. accumulated distortion  VS global th

4.2.3. Consistency Checks

  1. Overlap
    1. 4.2.1 (如图2中的翻折)中的刚性变换---4.2.2前可以detected
    2. 4.2.2中的re-optimization
    3. 拒绝新的overlap,接受input中存在的overlap

4.3. Ranking of the candidate operations

  1. 感觉这个rank可以是突破点
  2. rank原因:
    1. merge(re-optimazation)耗时,优先merge成功率高的
    2. merge间相互影响,顺序很重要
  3. Rank-score意义
    1. 体现merge成功率
    2. 符合本文两大核心(seam 短;保留原始distortion/map)
  4. score的影响因素(主要是几何特征)
    1. 碎片少-chart总周长短-linked edges长度 / chart周长
      1. 为什么不是linked edges的绝对长度??
      2. 考虑到面片大小,采用相对长度??
      3. 最大值:1 对应 insidea hole or the other
      4. 此种情况,merge易成功  && 对应的边界容易造成global overlap---应该优先处理
    2. 变形少-initial align幅度越小--transform后,愈接近——linked vertics 平均距离
    3. 成功率大--实验表明,面片越小,计算复杂度越低,越容易成功
    4. 成功率大--实验表明,失败次数越多,越容易再次失败

4.4. Updating candidate operations

  1. Potential queue Q && failed queue F
  2. 成功:弹出操作S,更新 Q &&F (失败的与S相关的操作,在S成功后,可能成功)
    1. 更新:重新定义与S相关的操作 &&计算得分 && 排序
    2. 相关是指与S(a,b)中面片a,b有关
    3. 重新定义:此时该操作不是与a/b有关,而是与a,b merge后的unified chart有关
    4.  失败的与S相关的操作,在S成功后,可能成功:
    5. “当chart边界被以前的操作简化后,比如填补空白,全局重叠就变得不那么频繁了"
    6. 失败:将S放入F

4.5. Atlas Repacking

  1. 重点理解重采样
    1. Merge的对象是以UV坐标(0~1)表示的二维面片
    2. merge前后的对象,都需要对应到纹理图(像素空间)
    3. Tri1(merge前)---纹理图采样1---纹理像素1
    4. Tri2(merge后)---纹理图采样2---纹理像素2
    5. 若tri1 && tri2之间相差90°整数倍旋转/平移/水平 && 垂直翻转 则相同纹理图像素分辨率条件下,纹理图采样1&&2等效,纹理像素1&&2只相差90°整数倍旋转/平移/翻转(纹理像素快size/shape一致)
    6. 此时,可以避免纹理像素1->2过程中,由于采样1 &&2导致的信号损失
    7. ps:三维模型渲染过程的纹理采样
    8. 屏幕像素---屏幕采样--Tri(3d)--Tri(2d)---纹理图采样--纹理像素
  2. 本文packing算法的实质
    1. Grid-preserved(确定旋转)
    2. 最大化空间利用(确定平移-placement)
  3. grid-preserved-具体步骤:
    1. 每个chart内的tri,若能刚性变换,恢复零碎纹理图中(原始)uv位置,标记并记录旋转角度angle1,2,3…
    2. 对某个chart,记角度seta(个人理解 seta = angle1+n1*90° = angle2+n2*90°=…=angle_m+n_m*90°),使得m个三角面片占chart面积比(r)尽可能大--本文,采用3D area占比来代替2D area
    3. 若r大于阈值(本文5%),则上述m个三角面片(2D)被视作preserved,该chart被视作constrainted,在packing算法中,该chart整体的旋转分量为 k*90°-seta
    4. 影响因素:
    5. 结论:merge成功越多,resample也越多
  4. 最大化空间利用(确定平移-placement)
    1. 参考:[LPRM02, SWG∗03]
      1. [LPRM02] LÉVY B., PETITJEAN S., RAY N., MAILLOT J.: Least squares conformal maps for automatic texture atlas generation. ACM Trans. Graph. 21, 3 (2002), 362–371.
      2. [SWG∗03] SANDER P. V., WOOD Z. J., GORTLER S. J., SNYDER J., HOPPE H.: Multi-chart geometry images. In Proceedings of the 2003 Eurographics/ACM SIGGRAPH Symposium on Geometry Processing (2003), SGP ’03, Eurographics Association, p. 146â ˘A¸S155.
    2. triUV--网格化(不是纹理像素化,但二者实质都是采样):
    3. placement:multiple horizons(不懂细节)
    4. 要点:greedy fashion, minimizing a cost function that penalizes wasteful placements.
    5. 放置顺序:
      1. 小于100个chart:随机——提高packing效率
      2. 大于100:根据chart面积,从大到小
  5. 新的纹理图的生成--上述步骤完成了triUVpacking,此时还没有采样到生成纹理像素!!!!
    1. Preserved:直接copy from the 原始纹理图像素值
    2. 其他:逐像素(取像素中心)计算新的uv坐标--变换对应到到旧的uv坐标(由顶点确定变换对应关系),再采样(从uv坐标采样纹理像素值,可能涉及到(双线性)插值)
    3. 之前实现了另一个版本:同于新旧uv坐标分别像素化,两个像素块进行仿射变换,从旧的纹理像素值获得新纹理图的像素值——二者貌似不同,后者似乎没有涉及到采样插值
  6. 针对纹理空间未使用的像素(不是冗余的纹理信息,而是空白部分)
    1. 本文:从使用的纹理像素中进行extend && blend
    2. Push-pull算法:[GGSC96]
    3. 目的/意义:contain the bleeding artifacts at any MIP-map level.

4.6. Extension to Multiple Texture Sheets

  1. 一些思考:见notebility
  1. 本文关于最终纹理图的数量 && 大小 &&分辨率的确定,细节如下:
  2. 假定存在多张纹理图(sheet),size不同,纹理图内部 && 纹理图之间分辨率相近(分析见note)
    1. 分辨率:输出纹理图与原纹理图分辨率保持一致
    2. 大小:等同于最大尺寸??看代码
    3. 数量:placement时,当前chart放不进当前sheet时,新建一个等大(最后去掉无效像素)
    4. 生成的多张纹理图,size可能不同

5. Results

5.1 defragmentaion 实验

  1. Benchmark dataset
    1. [MPCT20].--不同重建 tool
    2. inconsistencies such as nonmanifoldness, non-coherent face orientation, degenerate faces
    3. Texture: multiple image files
  2. 一些参数
    1.  alignment error: 2*seam length ?? 什么东西
    2. Linked edge/周长 最低阈值20%
    3. Arap 阈值 local 0.5 entire 0.025
      1. Entire th要比local: 前者将distortion分散到所有tri,后者将distortion集中在部分邻域tir
  3.  Time 5min
  4. 结果评价(defragmentation--seam减少)——一些定量化指标
    1. Atlas solidity--Seam length / texture area 外接边界
    2. Number of charts
    3. Uv border length
  5. 变形度--ARAP energy (新旧uv layout)
  6. Resample--本文与其他方法的最大区别点???其他方法---统计不需要重采样的面片/总面片 3D mesh
  7. 其他相关问题,practical broblem(与defragmentation间接相关)
    1. Vertex Replication Coefficient(before):the ratios of the number of 2D vertices to 3D vertices
    2. Number of texture samples:
      1. 不是纹理采样次数,而是纹理图size!!!
      2. 异常分析:部分texture size 变大
        1. Packing: padding 4 -pixel --> 8 pixel apart (chart)
          1. 意义:保证了MIP-mapping level two--correct filtering
          2. Mip-mapping---然而一些原始零碎纹理图没有padding
            1. http://Mip映射(Mip-mapping)_百度百科
            2. https://www.techopedia.com/definition/27195/mip-mapping-mipmapping
            3. http://wiki.polycount.com/wiki/Mip_mapping
          3. 根据景深,调整模型纹理贴图的大小(近大远小),节约资源
        2. 合并后,chart变大,packing变难
          1. 解决办法,但从packing角度考虑,cut chart---但与本文goal相反

5.2 ablation study

  1. 对本文方法的一些步骤,进行更细致的讨论

5.2.1 local optimization (alpha 邻域)

  1. 统计不同alpha值下,相关实验结果
  2. alpha值与相关结果的关系:alpha越大,atlas solidity 变大,resample 变大,运行时间边长

5.2.2 greedy order

  1. 本文顺序 vs随机
  2. 后续想进一步改进order???

5.2.3 appeal score factors

  1. 控制变量,去除其中一个factor;Size-Bonus情况较复杂

5.3 Comparison against computing an entirely new UV-map

  1. 现有的软件或者开源方法,无法直接处理基于摄影测量的三维模型:due to various inconsistencies on the input models or their excessive resolution
  2. 转换思路:根本不同是map考虑的变形度量
    1. 3dmesh && 2d new uv layout
    2. 2d old uv layout &&2d new uv layout
    3. 上述两种思路在以下情况,区别明显(还不懂为什么):
    4. Texture samples distribution:纹理分辨率
  3. 具体的对比实验:
    1. Composite Majorization [SPSH∗17], using scaffolding[JSP17] to ensure the new texture atlas is overlap-free.
      1. [SPSH∗17] SHTENGEL A., PORANNE R., SORKINE-HORNUNG O., KOVALSKY S. Z., LIPMAN Y.: Geometric optimization via composite majorization. ACMTrans. Graph. 36, 4 (2017).
      2. [JSP17] JIANG Z., SCHAEFER S., PANOZZO D.: Simplicial complex augmentation framework for bijective maps. ACM Trans. Graph. 36, 6 (2017).
    2. 核心思路:减少原始UV distortion(3dmesh && 2d new uv layout),不影响 cut layout
    3. 重点是为了探讨本文在distortion上衡量的有效性
    4. 结论:本文
      1. preserving highly detailed areas and high frequencies of the input texture image
      2. 中间那列确实有点模糊,可能是因为涉及到大量重采样---看看我自己的实验呢

6. conclusions

  1. 本文方法的亮点(相较于re-parametrization)
  2. the first approach to target specifically the goals set in Sec. 2
  3. Future work
    1. Local optimization 中融入 avoid re-sample 约束
    2. 可能会比较难,但是最近有些数值研究可以参考
    3. [PTH∗17, LKK∗18].
    4. [LKK∗18] LI M., KAUFMAN D. M., KIM V. G., SOLOMON J., SHEFFER A.: Optcuts: Joint optimization of surface cuts and parameterization. ACMTrans. Graph. 37, 6 (2018).
    5. [PTH∗17] PORANNE R., TARINI M., HUBER S., PANOZZO D., SORKINE-HORNUNG O.: Autocuts: Simultaneous distortion and cut optimization for uv mapping. ACMTrans. Graph. 36, 6 (2017).
  4. Limitations
    1. 大量冗余图片,不适用,不懂??
    2. 不适用可以利用超分辨率技术提高纹理质量的情景(我的理解是,如果能用超分辨率提高纹理质量,那么就可以直接re-parametrization)
    3. 也不适用于需要对纹理图像进行降采样的情况(原始重建影像是高分辨率影像)??不懂--In both(b,c) cases, the benefit of inheriting the input texel distribution is diminished (although the reliability and robustness of the proposed method would still be an advantage).
  5. meshlab已经集成了??202105 !!!

MeshLab 2021.05 is out! · Discussion #992 · cnr-isti-vclab/meshlab · GitHub

https://github.com/cnr-isti-vclab/meshlab/releases

体验其在meshlab中的实验,参考meshlab中代码实现 是否与开源一样,是否有关于加速优化等东西可以借鉴

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

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

相关文章

初阶数据结构学习记录——열넷 排序(3)

归并排序 归并的思路其实和二叉树,快排都有点像。归并希望左、右半区间有序。和快排不同,先分裂后排序,一半一半分,分到最后每个区间只剩一个1个数字,这个区间一定是有序的,因为只有一个数字,往…

kubernetes的基本使用

文章目录kubernetes的基本使用1、部署方式1、部署方式的演进图2、各部署方式的特点2、架构的简单说明1、架构简图2、各组件说明1、控制平面组件(Control Plane Components)1、kube-apiserver2、etcd3、kube-scheduler4、kube-controller-manager5、cloud…

Apache HTTPD 换行解析漏洞

漏洞介绍: Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。 影响版本:Apache 2.4.0~2.4.29 存在一个解析漏洞;在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策…

Windows中cmd命令窗口一些有用的小技巧命令

使用小功能记录 命令功能help显示所有dos命令,help >> cmd.txt,会把命令输出成文档altprtscreen快速截取命令行窗口esc清除当前命令行tab补全路径,若知道路径开头可快速补全,包含隐藏文件,但文件夹多又不知道路径开始字符时…

scrapy框架了解与使用

scrapy介绍与安装 Scrapy 是开源和协作的一个基于 Twisted 实现的异步处理爬虫框架使用纯 Python 语言编写,被誉为爬虫界的Django,Scrapy 框架应用广泛,常用于数据采集、网络监测,以及自动化测试等 Scrapy安装 mac、linux系统 …

【入门AI】利用Paddle实现简单的数字识别

梳理逻辑 整个流程 准备好Paddle的环境准备好训练样本设计模型(定义模型)训练模型模型测试 1、准备好环境 #加载飞桨和相关类库 import paddle from paddle.nn import Linear import paddle.nn.functional as F import os import numpy as np import matplotlib.pyplot as plt…

集美大学第14届蓝桥校选题解

本次比赛的出题表如下: 退役一年,勋总还是那么强呜呜呜 目录填空题[1] 十甚至九题意思路拓展[蓝桥杯] XXX 进制减法第十三届蓝桥杯C/C省赛B组 E题[2] 九大于十题意思路[3] N皇后签到题[1] JMU最强蓝人[2] 哪有赌狗一直输[3] 元胞自动机题意思路代码实…

PLC程序实例二:ModBusTCP客户端编程实例与测试方法

一、需求描述 1、设备作为服务端时,需要给出对应的测试方法,即要求 PLC 作为客户端,设备作为服务端,因此要求编写 PLC 的ModBusTCP客户端 2、先了解一下设备作为服务端的ModBusTCP网络触发业务逻辑 (1)设…

SQL 语法速成手册

基本概念 数据库术语 数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件)。数据表(table) :某种特定类型数据的结构化清单。模式(schema)…

JAVA SCRIPT设计模式--创建型设计模式之抽象工厂(1)

JAVA SCRIPT设计模式是本人根据GOF的设计模式写的博客记录。使用JAVA SCRIPT语言来实现主体功能,所以不可能像C,JAVA等面向对象语言一样严谨,大部分程序都附上了JAVA SCRIPT代码,代码只是实现了设计模式的主体功能,不代…

这俩个技巧 解决了90%的冲突

解决冲突的关键技巧 关于本书作者: 达纳.卡斯帕森,冲突调节的专家,尚普兰大学人际冲突专业的硕士。三次获得芭蕾舞国际协会搬的最佳舞者奖。 关于本书: 这是一本引导别人如何化解一段冲突,达成一次有效沟通的社交类…

DataX 及 DataX-Web 安装使用详解

文章目录一、DataX安装1、解压datax.tar.gz2、运行自检脚本二、Datax-Web安装1、解压DataXWeb安装包2、执行一键安装脚本3、启动服务前段时间在项目上使用了阿里的离线数据同步工具datax,在大批量的表同步过程中踩了一些坑,所以详细介绍一下,…

五、伊森商城 前端基础-Vue Vue脚手架原理与使用 p27

目录 Vue项目结构 一、使用vue脚手架进行模块化开发 1、main文件 1.1、首先new Vue创建了一个vue实例,这个实例挂载了index.html中的app元素 1.2、使用了路由,这个路由是简写的写法 1.3、components使用了一个组件叫App 1.4、最终渲染 2、App.vu…

卷积神经网络相关模型

卷积神经网络相关模型1. CNN架构2. CNN架构模型2.1LeNet模型2.2Alexnet模型2.3VGG16模型2.3.1 使用多层小卷积核代替一层大的卷积核优点2.3.2 使用1*1卷积核优点2.3.2 模型特点卷积神经网络基本概念相关知识连接 卷积神经网络基本概念相关知识连接 1. CNN架构 模型分为2部分【…

ubuntu1804在rviz中显示kitti数据集的2D检测框和激光雷达的3D检测框

之前所做的工作参考上篇博客ubuntu1804发布kitti数据集的gps资料,imu资料(包含发布图片,点云过程)_FYY2LHH的博客-CSDN博客 本次将详解如何在ros播放的kitti数据集上作出检测框,首先需要知道的是对于kitti数据集中的每一帧都必须提前进行标注,而这个工作已经被别人完成了…

42. Python range函数—生成器函数

42. range函数—生成器函数 文章目录42. range函数—生成器函数1. 什么是range( )函数2. 回顾列表切片的语法3. range( )函数的语法3. range函数实操3.1 只有1个参数3.2 有2个参数3.3 有3个参数3.4 步长为负数4. list不能完全替代range5. 总结1. 什么是range( )函数 range[reɪ…

基于遗传算法在机器人路径规划中的应用研究(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

第十七章 优先队列优化Dijkstra算法

第十七章 优先队列优化Dijkstra算法一、普通dijkstra算法的缺陷1、选出最小距离的过程:2、松弛所有点的过程:二、如何优化1、代码模板(1)问题:(2)模板:2、详细解读三、优化分析1、使…

5G赋能行业应用,助推数智化转型!

导语 | 5G 技术的蓬勃发展推动其行业应用的巨轮乘风破浪、扬帆启航,5G 技术不断落地布局于各行各业,基础建设也不断完善,5G to B 的时代已经到来。此次,我们邀请到了中国电信研究院工业互联网技术研发部主任、腾讯云 TVP 谭华老师…

知识图谱-KGE-语义匹配-双线性模型(打分函数用到了双线性函数)-2014:TATEC

【paper】 Effective Blending of Two and Three-way Interactions for Modeling Multi-relational Data 【简介】 本文是法国 Antoine Bordes 团队发表在 ECML-PKDD 2014 上的工作,提出了 TATEC(Two and Three-way Embeddings Combination)…