当前位置: 首页 > news >正文

光场相机建模与畸变校正改进方法

摘要:光场相机作为一种新型的成像系统,可以直接从一次曝光的图像中得到三维信息。为了能够更充分有效地利用光场数据包含的角度和位置信息,完成更加精准的场景深度计算,从而提升光场相机的三维重建的精度,需要实现精确的几何建模,并精确标定其模型参数。该方法从薄透镜模型和小孔成像模型出发,将主透镜建模为薄透镜模型,将微透镜建模为小孔成像模型,结合光场相机双平面模型,将每个提取到的特征点与其在三维空间中的射线建立联系,详细解释了内参矩阵中每个参数的物理意义,以及标定过程中初值确定的过程,并在镜头径向畸变模型的基础上进一步应用了相机镜头的切向畸变模型以及基于射线重投影误差的非线性优化方法,改进了光场相机的标定方法。实验显示,该方法的RMS射线重投影误差为0.332mm,与经典的Dansereau标定方法相比,进行非线性优化后得到的射线重投影误差精度提升了8%。该方法详细分析的场景点与特定像素索引的推导过程对光场相机的标定具有重要的研究意义,为光场相机光学模型的建立与初始化标定奠定了基础。

关键词:机器视觉;光场相机;重投影误差;相机标定;镜头畸变

引言

传统相机的成像方式只能记录光线所经过的位置信息,丢失了光线的深度信息,即三维信息。光场相机作为一种新型成像系统,由于其内部含有微透镜阵列这一特殊构造[1],可以同时获取光线的角度和位置信息,能颠覆传统成像方式的图像生成方法,实现如数字重聚焦、合成子孔径图像、光场显微成像、全景深图像合成、场景深度图获取等功能[2]。能够为三维重建[3]、全景拼接、视角合成、目标识别与跟踪等计算机视觉问题提供更加完备而有效的解决方案[4]。

光场相机的原型首先是由Adelson和Wang[5]在1992年提出的。第一个商业化的手持光场相机是由NgR[6]在2005年设计的,然后由Lytro公司发布。该光场相机在图像传感器与主透镜之间放置了一个微透镜阵列,通过它来获取光线的更多场景信息。但是该相机模型的空间分辨率不高,又被称为未聚焦光场相机。2009年,Georgiev和Lumsdaine[7−8]提出了基于Ng光场相机模型的新模型,名为聚焦光场相机,其中微透镜阵列(MLA)聚焦于主透镜形成的图像平面上。这个相机模型由Raytrix公司发布,有更高的空间分辨率,但是角度分辨率较低。

相机的标定参数可以提高其精度和性能,因此,研究者们提出了不同的标定方法。2013年,Dansereau[9]等人提出一种包含15个参数的相机标定模型和方法,他们推导了像素索引与光线的四维内参矩阵和畸变模型,但其工作中仍然存在着初始化优化和解决校准参数等问题。2014年,Bok[10]等人提出了利用原始图像提取适当区域内线的特征校正线性形状的相机投影模型的方法,然而,他们并没有模拟外子孔径图像的镜头畸变。2016年,Zeller[11]等人提出了一种测量校准方法,使用全聚焦图像和虚拟深度图计算三维观测结果,然而,该方法未能得到物体距离超过1m的特征点。Johannsen[12]等根据该特征重建标定物的三维点坐标,通过序列二次规划(SQP)优化方法求解内外参数,但却忽略了微透镜产生的畸变。Zhang[13]等人提出了一种基于原始图像特征与深度尺度信息之间关系的校准方法,然而他们没有对微透镜阵列引起的畸变误差进行补偿,为了填补这一空白,2017年,Noury[14]等人提出了一种仅基于原始图像的校准方法。这项工作开发了一种新的检测器,以直接估计棋盘格,观察原始图像的亚像素精度。然而,他们从白图像而不是捕获的原始图像估计微图像的网格参数,这在标定过程中引入了不确定性。光场相机出现时间不长,其成像模型的建立与参数标定研究并不多,仍然不成熟。

文中在经典的Dansereau方法的基础上,改进了光场相机的标定与畸变校正方法,通过通用的小孔成像与薄透镜模型,分析了光场相机模型中参数的物理意义,并用通用相机的标定方法进行光场相机标定,推导出不同方向的子孔径图像像素坐标的索引与穿过主透镜和微透镜阵列的光场射线的精确关系,利用投影转换关系估计出光场相机的内参,并考虑相机的径向畸变与切向畸变模型,最后利用重投影误差对其参数进行优化。

1光场相机精确几何模型建立

1.1成像模型

光场相机的典型代表是Ng等设计的传统光场相机(Plenopic1.0)。小孔成像模型描述微透镜阵列,薄透镜模型描述主镜头。该成像装置在传统相机的焦平面处放置一个微透镜阵列,并将图像传感器置于微透镜的一倍焦距处。真实场景中特定深度平面上来自同一点的不同方向光束,通过主镜头折射、微透镜聚焦,最终被图像传感器上的成像单元所记录,如图1所示。

图片

如图1所示,A表示图像传感器平面,B表示微透镜阵列平面,C表示主透镜平面,O−XY为图像坐标系,Oc−XcYcZc为相机坐标系,Ow−XwYwZw为世界坐标系。光场相机模型表示为光线的路径,以穿过微透镜阵列平面及图像传感器平面的射线作为此光线的开始,即n=[ijkl]T,i和j为每个微透镜对应像元的索引,k和l为微透镜的位置索引,完整的转换过程如公式(1)所示[9]。如果每个微透镜对应的像元像素为Ni×Nj,那么i和j的范围为0∼Ni,j;若有Nk×Nl个微透镜,则k,l的范围为0∼Nk,l。

图片

为了便于说明,将四维坐标简化为横向的二维坐标,再延伸至四维光场,即n=[ik1]T。Hs是将相对坐标转换为绝对坐标的矩阵,即把i转换为iabs,如图2所示,i是相对坐标,表示每个微透镜下宏像素的索引,把相对坐标加上其对应的微透镜索引k处的实际像素,即kN,并减去宏像素的中心cpix就得到了绝对坐标iabs,其表示在图像传感器平面上相对坐标对应的微透镜图像的实际索引,转换过程为公式(3),N是每个微透镜下的宏像素大小,cpix是每个微透镜下的宏像素的中心,cpix=N/2。

图片

下一步是把绝对坐标转换为光场射线表示,此处与普通相机的小孔成像模型类似,首先通过Hbs将绝对坐标iabs与微透镜阵列的索引k分别减去图像传感器和微透镜阵列的中心位置偏移量,再除以对应的单位物理尺寸(mm)可得到其在图像传感器平面与微透镜阵列平面实际的物理尺寸(mm),1/Fs和1/Fu分别表示图像传感器像素和微透镜的单位物理尺寸(mm),cm和cu分别为图像传感器和微透镜阵列的中心位置偏移量,Fs=NFu,cm=Ncu,转换公式如公式(4)所示:xi表示该点到图像中心主点之间的物理距离,k′表示该点所在的微透镜中心到图像中心主点之间的物理距离,如图3所示。

图片

图片

然后通过HφΦ推导出其对应光线的角度θ,如图3所示,使用宏像素的中心偏移cpix减去在该宏像素的相对坐标i,得到i与当前微透镜光轴的像素,然后除以Fs得到该距离的实际物理尺寸xi,最后除以图像传感器平面和微透镜阵列平面的距离du,即可得到该条光线的角度θ。转换过程如公式(5)所示:xi是光线在图像传感器平面的坐标,θ是光线的角度,du代表图像传感器平面和微透镜阵列平面的距离。最后通过HT将光线在图像传感器平面的坐标(即光线在i平面的坐标xi)延伸至主透镜s平面,如图3所示,主透镜与图像传感器平面的距离(du+dm)乘上光线的角度θ,再加上xi即可得到延伸至主透镜上的点xm,转换过程如公式(6)所示:dm代表主透镜平面与微透镜阵列平面的距离,xm是光线在主透镜s平面的坐标。

图片

最后通过HM推导出入射光线的方向,如图4所示,主透镜符合薄透镜模型,根据高斯成像公式:1/fM=1/u+1/v,fM为主透镜的焦距,u为物距,v为像距,u=xm/θ′,v=xm/θ,即1/fM=θ′/xm+θ/xm,可得到入射光线的角度θ′,转换过程如公式(7)所示。然后通过HΦφ推导出经过xm的入射光线与u平面的交点,D是u平面与主透镜s平面的距离,入射光线的角度θ′与距离D相乘并加上xm即可得到该光线与u平面的交点s,如公式(8)所示:s为入射光线在u平面的坐标,u为入射光线的角度。注意,此时u不是双平面模型中的坐标,而是入射角度,此处是为了和Dansereau等提出的经典模型中的u做区分。

图片

因为垂直和水平方向的索引部分是独立的,所以将2D索引延伸为4D索引是简单的。通过公式(1)将公式(2)中的矩阵相乘可以得到一个具有12个非零项的矩阵的表达式:

图片

1.2镜头畸变模型

微透镜阵列和主透镜都有可能导致镜头畸变[15],忽略微透镜阵列产生的畸变,考虑主透镜产生的畸变。由透镜的形状引起的径向畸变模型如下:

图片

式中:k1、k2等是径向畸变系数,根据光场相机的镜头 参数,可以选择双参数模型和三参数模型;u、v和ud、vd分别为没有畸变和有畸变的光线角度。由相机组 装过程中透镜和像面不严格平行引起的切向畸变模型可用畸变系数p1和p2类似描述为:

图片

2 光场相机标定

光场相机的标定有三个主要模块:第一部分是合成所有角度的子孔径图像并提取所有角度子孔径图像的特征点;第二部分是对相机参数进行初始化[16];第三部分根据相机的重投影误差构造函数进行非线性优化,它优化了第二部分产生的初始估计。

2.1合成子孔径图像及提取所有子孔径图像的特征点

首先将原始的2D图片解码为4D光场表示,通过得到的微透镜图像合成不同方向的子孔径图像,再对所有子孔径图像进行特征点提取。将每个微透镜宏像素上相同位置的像素点按照顺序进行重排列操作,即可得到该方向的子孔径图像,以此类推,可以得到所有角度的子孔径图像,原理如图5(a)所示。i、j是一个微透镜下的宏像素索引,k、l是微透镜的个数索引。例如:微透镜阵列有381×383个,即有381×383个微透镜,每个微透镜下的宏像素有9pixel×9pixel,那么就可以提取9×9张子孔径图像,每张子孔径图像有381pixel×383pixel[17]。对于子孔径图像来说,i、j是图片索引,k、l是像素值。中心角度的子孔径图像就是按照顺序提取每一个微透镜宏像素中心位置的像素点,然后把这些像素按顺序重新拼接成的图像,所有角度子孔径图像如图5(c)所示,因为每个微透镜的边缘存在渐晕现象,所以边缘角度的子孔径图像较暗。

与传统相机标定类似,光场相机从不同角度拍摄棋盘格图像[18],得到所有角度子孔径图像后对子孔径图像进行灰度化处理,然后通过Harris角点检测[5]方法提取每一幅子孔径图像的特征点。

图片

图片

2.2相机参数初始化

在光场相机的模型中,当u平面在主透镜的焦平面上时,即D=fM,光场相机的坐标系原点为主透镜 光轴与主透镜焦平面的交点。XY轴方向仍是像平面的XY方向,Z方向垂直于焦平面向外。通过公式(9)可以得出:H1,1=H2,2,H3,3=H4,4,H1,3=H2,4,H3,1=H4,2,H1,5=H2,5,H3,5=H4,5。对其参数进行化简,可以得出:

图片

光场相机的初始化首先要得到主透镜的焦距,在光场相机的模型中,从图像传感器到微透镜的每条相同角度的射线路径(即i,j相同)都收敛到主透镜焦平面上的一个点,这个点是虚拟相机的中心位置,即ui,如图6所示。此时,每个子孔径图像的成像等效为小孔成像模型,其焦距是主透镜的焦距fm,子孔径图像相邻像素之间的距离也就是微透镜的物理尺寸,为1/Fu(mm)。中心角度的子孔径图像(光线角度为0°,即过主透镜光心)所等效的虚拟相机的坐标系为光场相机的坐标系。

图片

类似张正友的平面靶标标定方法[14],求解主透镜焦距首先要通过世界坐标系的3D点和像素坐标系的2D点得到单应矩阵H:

图片

式中:s表示尺度因子;K表示相机内参矩阵;r1,r2,t为相机外参;fx,fy为主透镜的等效焦距;u0,v0为图像的主点,是两个坐标轴的偏斜参数,可以忽略不计。通过将单应矩阵H中无关的参数(即主点(u0,v0))消除,可以求出焦距fx,fy:

图片

图片

因为相机外参的旋转矩阵是正交的,即r1和r2正交,由此可推出相机主透镜的等效焦距fx和fy,由

图片

等效焦距等于焦距fM除以像素之间的物理尺寸1/Fu,即fx=fy=fMFu。

相邻虚拟相机中心之间的距离称为基线(baseline),该基线距可以通过标定时虚拟相机的外参得到,即外参平移量之间的距离,如图7所示。当D=fM时,由图7根据相似三角形可知两个角度θ是相等的,即:

图片

假如n=1,那么基线就是ui+1和ui之间的距离。即通过公式(18)可以得出:

图片

图片

图片

2.3重投影误差

对于传统相机的标定,特征点P对应于图像平面中的某一点,如图8(a)所示,从观测到的和预期得到的投影特征位置i和iˆ之间的距离称为“重投影差”,|E|='i−iˆ',对这个误差建立目标函数,采用非线性优化方法对相机参数进行优化。但是在光场相机标定中,由于一个特征点会多次出现在成像平面上,重投影误差是比较复杂的,如图8(b)所示,对于光场相机,每个特征点都有多个预期和观测到的图像点iˆj,ij,并且它们通常不会出现在相同的微透镜下的宏像素内。从每一个观测到的点ij可以得到一条投影光线φj,每条投影光线与特征点之间的距离'Ej'称为“光线重投影误差”。

图片

因为已经得到了Ni×Nj的子孔径图像阵列,从其中提取观察到的特征点,从M个不同的角度捕获标定板,并且每一个标定板有Nc个标定特征点,所以优化的总特征集大小为NcMNiNj。优化目标是找到内参矩阵H、相机姿态Tm(光场相机的外参等于最中心的虚拟相机的外参)、畸变系数d、n=[ijkl]T,i和j为每个微透镜对应像元的索引,即子孔径图像的索引

(0−Ni,0−Nj),k和l为微透镜的位置索引,即子孔径图像上像素值。φ表示点n通过畸变校正后通过光场相机模型(公式(1))得到光线的位置和角度,优化函数如公式(20)所示:

图片

式中:∥·∥pt−ray为“光线重投影误差”。

对该误差建立目标函数,采用Levenberg-Marquardt的优化算法对其进行优化,使用lsqnonlin函数得到优化后的结果。

3 实验

利用光场相机LytroIllum对该方法进行验证。进行标定的实验系统如图9所示,包括光场相机和标定板。从图像传感器上记录的原始2D图像中恢复4D光场L(s,t,u,v),并使用MATLABtoolboxLFToolboxV0.4[9]进行子孔径图像的提取。使用了相机提供的白图像来定位微透镜图像中心和矫正镜头的渐晕。提取到的四维光场有15×15个子孔径图像,每个子孔径图像有434pixel×625pixel。实验中,使用Lytro光场相机拍摄16个不同视角的棋盘格图片,该棋盘格有12×9个网格,标定板相邻特征点之间的距离为30.0mm×30.0mm。

图片

光场相机标定结果详见表1。该模型在非线性优化和畸变校正前后的重投影误差如图10所示。图10(a)中,主透镜边缘的重投影误差相比主透镜中间的重投影误差有较大浮动,而优化校正后的重投影误差大致相同,如图10(b)所示。文中改进的标定方法与Dansereau[9]等人的方法相比,均方根误差由0.363mm降低到0.332mm,精度提升8*,如图10(b)、(c)所示。另外,对于Dansereau[9]等人方法中采用的径向畸变模型,文中验证了采用多项式模型中双参数、单参数径向畸变模型以及除法模型,其标定精度不如三参数的径向畸变模型,也说明了原本径向模型的准确性。

图片

图片

4. 结论 

文中改进了一种双平面模型的光场相机的标定模型和方法。基于微透镜阵列和主透镜模型推导了从场景点到特定像素索引的投影关系,并应用了主透镜的径向和切向畸变校正方法和基于射线重投影的非线性优化方法,实验显示该方法的RMS射线重投影误差为0.332mm。Dansereau等人提出的参数模型缺乏对参数的实际物理意义的解释,文中从小孔成像模型和薄透镜模型出发,详细解释了每个参数的物理意义及初值的确定过程,为光场相机模型参数的理解与初始化奠定了理论基础,并且优化了针对光场相机主透镜的畸变模型。下一步计划包括研究一个更复杂的透镜畸变模型以及更精巧的相机投影模型,提高光场标定的准确性,并克服针孔模型和薄透镜模型的局限性。

文章来源:《红外与激光工程》第52卷第1期

作者:杨守瑞,段婉莹,艾文宇,陈胜勇

声明:转载此文目的在于传递更多信息,仅供读者学习、交流之目的。文章版权归原作者所有,如有侵权,请联系删除。

相关文章:

光场相机建模与畸变校正改进方法

摘要:光场相机作为一种新型的成像系统,可以直接从一次曝光的图像中得到三维信息。为了能够更充分有效地利用光场数据包含的角度和位置信息,完成更加精准的场景深度计算,从而提升光场相机的三维重建的精度,需要实现精确…...

面试算法-173-二叉树的直径

题目 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例 1: 输入:root [1,2,3,4,…...

Python Typing模块

Python Typing模块 常用类型 类型说明int,long,float整型,长整形,浮点型bool,str布尔型,字符串类型List, Tuple, Dict, Set列表,元组,字典, 集合Iterable,Iterator可迭代类型,迭代器类型Generator生成器类型 后三行需要从typing…...

【鸿蒙开发】饿了么页面练习

0. 整体结构 整体划分3部分。店铺部分,购物车部分,金额统计部分。使用 Stack 把3部分堆叠 0.1 整体页面 Index.ets 修改 Index.ets ,使用堆叠布局,并居底部对齐 import { ElShop } from ../components/ElShop import { ElShopp…...

鸿蒙开发学习笔记第一篇--TypeScript基础语法

目录 前言 一、ArkTS 二、基础语法 1.基础类型 1.布尔值 2.数字 3.字符串 4.数组 5.元组 6.枚举 7.unkown 8.void 9.null和undefined 10.联合类型 2.条件语句 1.if语句 1.最简单的if语句 2.if...else语句 3.if...else if....else 语句 2.switch语句 5.函数…...

Java基础知识总结(55)

(2) ArrayList和LinkedList的区别 1、ArrayList和LinkedList都实现了List接口2、ArrayList和LinkedList都是非线程安全的,因此在多线程环境下可能会出现出现不同步的情况3、ArrayList底层实现是数组,LinkedList底层实现是双向链表…...

python爬虫 - 爬取微博热搜数据

文章目录 python爬虫 -爬取微博热搜数据1. 第一步:安装requests库和BeautifulSoup库2. 第二步:获取爬虫所需的header和cookie3. 第三步:获取网页4. 第四步:解析网页5. 第五步:分析得到的信息,简化地址6. 第…...

Pytorch-张量形状操作

😆😆😆感谢大家的观看😆😆 🌹 reshape 函数 transpose 和 permute 函数 view 和 contigous 函数 squeeze 和 unsqueeze 函数 在搭建网络模型时,掌握对张量形状的操作是非常重要的&#xff…...

k8s的service为什么不能ping通?——所有的service都不能ping通吗

点击阅读原文 前提:kube-proxy使用iptables模式 Q service能不能ping通? A: 不能,因为k8s的service禁止了icmp协议 B: 不能,因为clusterIP是一个虚拟IP,只是用于配置netfilter规则,不会实际绑定设备&…...

[Linux] 权限控制命令 chmod、chown和chgrp

文章目录 chmodchownchgrp chmod 在Linux系统中,root用户可以使用chmod命令来修改文件的权限,并且root用户也可以授权普通用户来执行chmod命令。要将权限授予普通用户修改一个文件的权限,可以使用以下步骤: 使用root用户登录到L…...

RNN知识体系构筑:详尽阐述其理论基础、技术架构及其在处理序列数据挑战中的创新应用

一、为什么需要RNN 尽管神经网络被视为一种强大且理论上能够近似任何连续函数的模型,尤其当训练数据充足时,它们能够在输入空间中的某个点( x )映射到输出空间的特定值( y ),然而,这并不能完全解释为何在众多应用场景中&#xff…...

LeetCode 1702.修改后的最大二进制字符串:脑筋急转弯(构造,贪心)

【LetMeFly】1702.修改后的最大二进制字符串:脑筋急转弯(构造,贪心) 力扣题目链接:https://leetcode.cn/problems/maximum-binary-string-after-change/ 给你一个二进制字符串 binary ,它仅有 0 或者 1 组…...

图片像素轻松缩放自如,支持批量将多张jpg图片像素放大,高效掌握图片的像素

在这个数字化时代,图片已经成为我们生活中不可或缺的一部分。然而,你是否曾遇到过需要放大图片像素却担心失去细节和质量的问题?现在,一款全新的图片缩放工具诞生了,它能够让你轻松将多张JPG图片像素放大,同…...

FILE类与IO流

目录 File类的实例化与常用方法 File类的理解 文件路径的表示方式: API的使用 IO流概述与流的分类 I/O流中的是Input/Output的缩写 IO流的分类(不同角度) Java程序中的IO流涉及40多个,但实际上都是由4个抽象类衍生出来的。 F…...

基于java+springboot+vue实现的智慧党建系统(文末源码+Lw+ppt)23-58

摘 要 当今社会进入了科技进步、经济社会快速发展的新时代。国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统智慧党建管理采取了人工的管理方法,但这种管…...

HiveSQL基础Day03

回顾总结 hive表的类型 :内部表和外部表 删除内部表会删除表的所有数据 删除外部表只会删除表的元数据,hdfs上的行数据会保留 表的分区和分桶 本质都是对表数据的拆分存储 分区的方式 是通过创建不同的目录来拆分数据 ,根据数据本身的内容最为…...

houdini 学习过程

1.基础界面操作了解 当初通过 朱峰上的界面 工具栏操作入门的,现在B站上应该也比较多 houdini pdf早期的 2.节点操作 B站视频 教程 3.vex B站捷佳 4.BILIBILI ENTAGMA CGWIKI YOUTUBE 5.节点功能的深入,属性了解,或其它节点扩充 常用&…...

Angular学习第四天--问题记录及父子组件问题

问题一、 拉取完项目,使用npm install命令的时候遇到的。 解决办法: 在查找网上五花八门的解决方案之后,发现都不能解决。 我的解决办法是: 1. 把package-lock.json给删掉; 2. 把package.json中公司自己库的包给删除掉…...

如何拿捏2024年的B端设计?(附工具推荐)

伴随着2019年前的互联网人口红利时代结束,科技行业的基本面发生了巨大的变化,以普通消费者为目标的C端需求大幅萎缩,面向企业的B端需求成为行业热点。 在2024年的今天,设计师应该如何理解B端设计的实质,并真正驾驭B端产…...

【蓝桥杯】2024年第15届真题题目

试题 A: 握手问题 本题总分: 5 分 【问题描述】 小蓝组织了一场算法交流会议,总共有 50 人参加了本次会议。在会议上, 大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进 行一次握手(且仅有一次&a…...

LLM生成模型在生物单细胞single cell的应用:scGPT

参考: https://github.com/bowang-lab/scGPT https://www.youtube.com/watch?vXhwYlgEeQAs 相关算法: 主要是把单细胞测序出来的基因表达量的拼接起来构建成的序列,这里不是用的基因的ATCG,是直接用的基因名称 训练数据&#x…...

力扣15题. 三数之和

题目: 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复…...

项目经理好还是产品经理好?入行必读!

在现代项目管理领域,产品经理Product Manager和项目经理Project Manager,两者虽都是PM,但两者在实际操作中却有着显著的区别,在各自的领域中承担着不同的岗位职责和工作。 项目经理跟产品经理两个证都挺受市场欢迎的,…...

Elastic安装后 postman对elasticsearch进行测试

一、创建索引和mapping //id 字段自增id //good_sn 商品SKU //good_name 商品名称 //good_introduction 商品简介 //good_descript 商品详情 PUT http://IP:9200/shop { "mappings":{ "good":{ "properties":{ …...

JPA (Java Persistence API)

一、Jpa的介绍 JPA ,是一套Sun公司Java官方制定的ORM 规范。 ORM,即 对象关系映射 (Object Relational Mapping),是一种程序技术,用于 在关系数据库和业务实体对象之间做映射 。ORM 框架的存在,…...

实战要求下,如何做好资产安全信息管理

文章目录 一、资产安全信息管理的重要性二、资产安全信息管理的痛点三、如何做好资产安全信息管理1、提升资产安全信息自动化、集约化管理能力,做到资产全过程管理2、做好资产的安全风险识别3、做好互联网暴露面的测绘与管空4、做好资产安全信息的动态稽核管理 “摸…...

[matlab]matcaffe在matlab2023a安装和配置过程

测试环境: caffe-windows-cpu-py35-matlab2018b-vs2015-20220321 matlab2023a 注意:由于matlab新版本不允许添加特殊目录,比如有和private目录,添加后也会警告,但是可以忽略。因此可以使用我研发的matlab环境添加工具…...

【word2pdf】Springboot word转pdf(自学使用)

文章目录 概要整体介绍具体实现官网pom文件增加依赖 遇到的问题本地运行OK,发布到Linux报错还是本地OK,但是Linux能运行的,但是中文乱码 小结 概要 Springboot word 转 pdf 整体介绍 搜了一下,发现了能实现功能的方法有四种 U…...

3_2Linux中内核级加强型火墙的管理

### 一.Selinux的功能 ### 观察现象 ①当Selinux未开启时 在/mnt中建立文件被移动到/var/ftp下可以被vsftpd服务访问 匿名用户可以通过设置后上传文件 当使用ls -Z /var/ftp查看文件时显示"?" ps auxZ | grep vsftpd 时显示: - root 8546 0.0 0.0 26952 …...

PCB工艺规范及PCB设计安规原则

一、目的 规范产品的PCB工艺设计,规定PCB工艺设计的相关参数,使得PCB的设计满足可生产性、可测试性、安规、EMC、EMI等的技术规范要求,在产品设计过程中构建产品的工艺、技术、质量、成本优势。 二、适用范围 本规范适用于所有电了产品的PCB工…...

1.2婚庆网站建设的目的/免费域名解析平台

技术笔记 这两个机制的目的都是为了 解耦合 ,它们时联系和相互独立的。这样说似乎有些说不通。我们具体看一看 *** 它们是 (联系) 还是 (独立) 取决于我们要达到的目的: 目的一: 场景介绍:紧密联…...

用Python完善wordpress/google搜索

Duplicate keys detected: 26. This may cause an update error vue警告报错的解决方法 1、检查自己代码循环的数组products是不是有重复使用; 2、如果有重复使用,或者列表返回的id都是相同的,比如报错是26,证明列表id返回的都是2…...

个人网站icp备案号/百度推广登录平台app

奋斗的奴隶博客中的牛逼js小测试 原文:http://qqcome110.github.io/2015/04/27/js%E6%B5%8B%E8%AF%95%E9%A2%98/ posted on 2015-06-11 10:43 资江河畔 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/yudishow/p/4568332.html...

学校网站开发实际意义/全网

一、SourceInsight配置步骤 (1) 点击project->open project,在弹出的对话框中会显示一个缺省的工程 Base。 注意:此工程是Sourceinsight自带的系统工程,它不是我们的工作工程,但是却非常重要&#xff0…...

赣州章贡区人口/西安网站关键词优化推荐

.├── app.js├── bin│ └── www├── node_modules│ ├── body-parser│ ├── cookie-parser│ ├── debug│ ├── express│ ├── jade│ ├── morgan│ └── serve-favicon├── package.json├── public│ ├── images│ …...

广州专门做网站/杭州seo排名优化外包

一、数据类型1.Java的数据类型可分为基本数据类型(8种)和引用数据类型(N种)。基本数据类型:int(整型)、long(长整型)、short(短整型)、byte(位)、char(字符)、float(单精度)、double(双精度)。布尔(boolean)类型的变量只有true(真)和flase(假)两种。引用数据类型&am…...