机器视觉-硬件
机器视觉-硬件
- 镜头
- 焦距
- 凸透镜焦点不止一个
- 相机镜头由多个镜片组成
- 对焦和变焦
- 镜头光圈
- 光圈的位置
- 光圈系数F
- 镜头的景深
- 景深在光路中的几何意义
- 远心镜头
- 远心镜头的种类
- 远心镜头特性
- 应用场景
- 镜头的分辨率
- 镜头反差
- 镜头的MTF曲线
- 镜头的靶面尺寸
- 镜头的几何相差
- 相机镜头接口
- 螺纹接口
- 卡口
- C、CS接口的区别
- 镜头选型
- 焦距计算
- 知道CCD尺寸、物距、视野
- 知道线放大倍数M、工作距离L
- 相机
- 相机成像原理
- 感光芯片
- 相机像元
- 相机分辨率
- 彩色相机和黑白相机
- CMOS和CCD的区别
- 相机快门
- 曝光
- 增益
- 帧率
- 白平衡
- 靶面尺寸
- 像素的位深
- 相机输出接口
- 相机分辨率计算
- 光学棱镜

镜头
相机镜头属于一种光学系统,光学系统是指由透镜、反射镜、棱镜和光阑(光圈)等多种光学元件按一定的次序组合的系统。

焦距
焦距f,像距v,物距u的关系为高斯光学公式:
1 / u + 1 / v = 1 / f 1/u+1/v=1/f 1/u+1/v=1/f

通过上面示意图,也可以得到焦距f,像距v,物距u的关系,即高斯光学公式,在现实情况中,一般物距是远小于像距,即镜头到感光元件的距离,所以一般情况下
1 / v = 1 / f 1/v=1/f 1/v=1/f
所以可以说焦距与相距相等 v = f v=f v=f
在计算焦距时候,可以近似计算 f = 靶面尺寸 ∗ u / 物体尺寸 f=靶面尺寸*u/物体尺寸 f=靶面尺寸∗u/物体尺寸
凸透镜焦点不止一个

理想的镜头焦点如上所示,但是现实中的光线不会汇聚到一点,越靠近中轴的光束聚焦的越远,这种光学误差叫球差
相机镜头由多个镜片组成

镜头中的焦距参数可以认为镜头中心到相机靶面的距离,即像距
对焦和变焦

对焦:物体反射的光线有很多不同的方向,在不同的物距下,光线在像端汇聚的点位不同。距离不合适时,成像为弥散圆。调整镜片组与传感器平面之间的距离使被检测物体在CMOS上成像更清晰。

变焦:调整几个镜片的相对位置,从而改变镜片组的焦距,进而改变图像的视场角。焦距越长视角越窄。
镜头光圈

通过收缩与扩大,控制入射光的强度,过滤入射光线角度
光圈的位置

常规的镜头光圈位于镜头的中央,如图为等效的位置模拟图。

远心镜头光圈位于镜头焦点位置(接收平行光#pic_center)
光圈系数F

F = f / D F=f/D F=f/D
光圈系数用于表示光圈的大小,它等于镜头焦距 f f f和通光孔径 D D D之比。
光通量与F值的平方成反比关系,F值越小,光通量越大。
F值的规律:后一个值是前一个值的 2 \sqrt2 2倍,光圈调大一档,光量减少2倍。
S = π ( D / 2 ) 2 S=\pi(D/2)^2 S=π(D/2)2
光圈常用值为1.4、2、2.8、4、5.6、8、11、16、22等几个等级。
镜头的景深

小景深:只有比较窄的距离范围内的物体清晰成像,距离镜头稍近和稍远的物体都比较模糊

大景深:广泛的距离范围内的物体都能清晰成像,距离镜头较近和较远的物体也能成像清晰。
景深在光路中的几何意义

如图所示,如果感光元件没有在相机的焦点上,导致光斑的出现,但是如果光斑的大小小于像元的大小,成像依旧清晰,这也就是焦深和景深(焦平面两侧)存在的原因。围绕景深,有以下关系。

1)景深近似跟光圈系数F成正比关系
F = f / D F=f/D F=f/D,F越大、光圈越小,,即光圈越小,景深越大
2)景深近似和就叫据 f f f的平方成反比关系
焦距对景深的影响大于光圈
焦距越大,景深越小
用长焦镜头,景深小,更容易获得背景虚化,但视场小
用短焦镜头,景深大,视场角大
3)景深近似和拍摄距离L的平方成正比关系
拍摄距离对景深的影响要大于光圈
拍摄距离越远,景深越大

靶面上允许的弥散圆直径不变,光圈直径变小,光线角度就被收窄,成像在弥散圆允许直径内的距离就被拉长。
远心镜头
远心镜头的主要作用是消除透视:远心镜头在焦点放置光圈,限制非平行入射光线成像,达到消除透视的效果(近大远小)。
直观的感受透视:

j近处的车辆比远处的车辆成像要大,远处的车道收缩变窄。

近处的车辆与远处的车辆成像尺寸无明显差异,近处的车道与远处的车道宽度差异不明显。


左:花键底部轮廓直径收缩变小
右:花键底部和顶部的轮廓保持一致

常规镜头:常规镜头成像的主光线为物体点与镜头光心的交点,所有光线会聚于光心
最佳对焦平面:平面上的点在感光芯片上成为一个点;
虚焦物面:平面上的点,最顶部角度的入射光线与最底部角度的入射光线经过镜头后会聚在感光芯片前方,在感光芯片上的像为一个弥散圆;
虚焦物面的主光线为点与光心O的连线,主光线与感光芯片的交点为弥散圆中心点,计算尺寸时候以弥散圆中心为准,呈现近大远小的特点

远心镜头:远心镜头的主光线全部平行于主光轴,主光线会聚于物方无限远处远离光心,所以叫远心镜头。
通过焦点位置放置光圈,可限制入射光线的角度,进而限制弥散圆的直径
此时测试虚焦物面的主光线为平行光

光圈在物方的成像术语为入瞳
根据凸透镜成像规律:光圈在镜头1倍焦距的位置,光圈的入射光线禁锢于哦镜头到达物方,全部成平行光射出,光圈在物方的成像无穷大。
远心镜头的种类
1、物方远心:在一定景深范围内即使物距发生变化,物体成像的尺寸也不会发生变化。这种类型在同业检测领域应用较多。
2、像方远心:即使感光芯片于镜头的距离发生变化,物体成像的尺寸也不会发生变化,但物距会影响成像尺寸,这种类型的镜头在工业检测中不起作用。
3、双远心:物体和像方的远近都不会影响成像的尺寸,在机器视觉检测领域经常使用,缺点是成本高,有点像望远镜。
远心镜头特性
1、无视场角,消除透视,放大倍率恒定。
2、低畸变。
3、只有平行光成像。
应用场景
1、物体厚度较大,需要检测不止一个平面时,如包装盒。
2、物体摆放位置不一定,可能跟镜头成一定角度。
3、物体在被检测过程中上下跳动。
4、物体带孔径或者三维立体物体
5、但需要超高检测精度时候,如1缪米。
6、当需要检测的缺陷只在同一方向平行照明才能检测到时。
镜头的分辨率

镜头分辨率:单位毫米内能够分开的黑白相间的条纹对数
单个黑色或者白色的条纹的尺寸为d,黑白条纹线对的宽度为2d,则线对数量为1/2d,镜头的分辨率为1/2d lp/mm(线对/毫米)
镜头反差
镜头反差也可以叫做镜头对比度,计算方法如下:
反差=(照度的最大值-照度的最小值)/(照度的最大值+照度的最小值)
反差的数值总是《=1,越接近于1防擦好越好
镜头的MTF曲线

镜头的靶面尺寸
靶面尺寸指物体经过镜头成像在感光芯片上的最大尺寸

由于历史遗留问题,数码相机中的1英寸≠25.4mm,而是16mm.
镜头的几何相差
1.影响成像质量质量:球差、象散、场曲、慧差
2.影响成像形状:枕形畸变(长焦镜头),桶形畸变(短焦镜头)可通过标定矫正畸变。



1.光圈系数越大,光圈越小。
2.变焦之后调节对焦环,使光线准确的聚焦在感光芯片上。
相机镜头接口
螺纹接口
螺纹接口:C、CS、M12、M42、M58

接口比较深

接口比较浅
机器视觉领域应用广泛的接口,C接口的可以加上转接环到CS接口上,但是CS的无法接到C接口上。

由于M12的直径比较小,因此这个接口只有在微小的工业相机中使用,例如无人机上的相机。


接直径比较大,用于大靶面相机或者线扫相机上。
卡口
卡口:佳能EF接口、尼康F接口

工业相机中有用尼康F接口,EF接口几乎没用到
C、CS接口的区别

1、接口直径和螺纹间距都是一样的,只是法兰后截距不同(镜头螺纹接口起点到感光芯片的距离)。C接口为17.526mm,CS接口为15.5mm。
2、C接口镜头通过安装一个5mm高的C-CS转接口可以改造成CS接口相机上;CS接口镜头不能安装到C接口相机上。
镜头选型
1、镜头靶面尺寸要大于等于相机感光元件的靶面尺寸,否则形成黑边;
2、镜头的接口和相机的接口匹配,C接口镜头可以通过转接环到CS接口相机,但反过来不行。
3、计算焦距
焦距计算

知道CCD尺寸、物距、视野
公式:焦距=(物距×CCD尺寸)/物体大小
例子:
- 已知观察范围:50mm*50mm,工作距离:150mm,CCD尺寸1/1.8’',求焦距?
解:- CCD尺寸为1/1.8’',查表得到尺寸为7.25.4mm
焦距 =(物距CCD尺寸)/物体大小
=150×5.4/50
=16.2mm
可选择焦距为16mm左右的工业镜头
- CCD尺寸为1/1.8’',查表得到尺寸为7.25.4mm
知道线放大倍数M、工作距离L
公式:M=像宽/物宽=v/u,代入光学高斯公式:1/u+1/v=1/f
可得:f=L*M(M+1)
例子:
要求系统分辨率为0.06mm,像元大小为4.7μm,工作距离大于150mm,求焦距?
解:
- 焦距无要求,所以使用定焦镜头。
- 精度0.06mm,所以使用低畸变或者远心镜头
- 计算焦距
– 线放大倍率M=像元大小/系统分辨率=4.7μm/0.06mm=4.7/60=0.078
–带入焦距计算公式:f=LM/(M+1)=1500.078/1.078=10.85
– 可以使用焦距在10mm左右的镜头
相机
物体反射光线,经过镜头缩小成像在感光芯片上
相机成像原理

- 镜头负责缩小成像;
- 光圈控制进入相机的光线强度;
- 快门控制光线照射芯片的使劲按;
- 感光芯片将光信号转换为电信号。
感光芯片

对于单个像素来说,其都是通过感光二极管进行光电转换,光线会激发电荷,电荷在曝光过程中累积。光线中的光子照射在光电二极管上,电子进入高能状态被激发踢出,光线越强马甲发的电子越多,电荷越强。
相机像元
像元是组成数字图像的最小单元,像元的尺寸和像元数量(分辨率)共同决定了相机的靶面尺寸。

像元尺寸从某种程度上反映了相机芯片的对光的响应能力,一般情况下,像元尺寸越大,能够接收到的光子越多,在同样的光照条件和曝光时间内产生的电荷量越多。
通常工业相机像元尺寸为2μm~14μm。
相机分辨率
分辨率是指感光芯片上像元的数量。
例如60万像素的相机分辨率参数可能是3072*2048=6291456
常用的工业相机分辨率由50万,130万,200万,500万,1200万。
对于线阵相机而言,分辨率就是长安其水平方向上的像素数量,常见的由1K,2K,6K等,分辨率不是越大越好,分辨率越大,对处理的性能要求就越高,成本也会增加。
彩色相机和黑白相机

彩色相机即RGB相机如右图所示,需要在透镜后方加红色透镜,只允许红色光线透过。
1、真彩色相机
真彩色相机每个像素由3个像元组成,3个像元分别装上RGB三种滤镜,即可得到三种光的亮度,合成即可得到彩色照片。
2、伪彩色相机
每个像素装上不同颜色的滤镜,每个像素的颜色由周边像素的颜色一起合成,像素的排列方式使用byer。

通过对人眼的感知能力进行研究发现,人眼对绿色比较敏感,所以像素的排列中,绿色像素数量是红色和蓝色像素数量之和。

以黄色为例,它由红色光和绿色光混合而成,那么通过滤光层之后,红色和绿色点下方有值,但蓝色点下方没有值,根据蓝点周围有红点和绿点可以推测出,这个像素点本来的颜色为黄色。
3、什么时候使用彩色相机?
彩色相机在成像后精度会有所下降,所以除非需求中需要图像的颜色信息,否则使用黑白相机。
CMOS和CCD的区别
CCD和CMOS的主要区别在于信号的读出方式不同,单个像元上有一个名为势阱的原件,光线照射在上面会产生电荷,电荷会在势阱上积累。??????

CCD仅有一个(或少数几个)输出节点统一读出电压,电子沿着CCD的每一行向下移动,最终到达末端进行统一的转换电压。

CMOS传感器中的每个像素都有自己的读出电路,即一个光电二极管放大器对,他们会将光子转换为电压。

- CMOS每个观念观点二极管旁边都搭配一个放大器,每个放大器在制成上都有细微的差异,很难有同步放大的效果,噪声较多.
- 相同尺寸的感光芯片,CMOS感光度低于CCD
- CCD需要外加电压,驱动电荷移动,耗电量高;
- CCD输出模拟信号,需要后续的地址译码器,模拟转换器,图像信号处理器,并且还需要提供三组不同电压的电源同步时钟控制电路,集成度非常低.
- CCD不可并行读取,读取速度慢,大部分500fps以上高速相机都是CMOS相机,CMOS相机的地址选通开关可以随机采样,实现子窗口的输出,达到更高的速度.

相机快门

工业相机一般都是具有电子快门特性,电子快门不需要任何的机械部件,相机采用电子脉冲长度控制相机传感器的积分时间。
工业相机中使用电子快门,速度快,稳定

卷帘曝光:曝光时,Sensor逐行扫描进行曝光,直至所有像素点都被曝光,所有动作在很短的时间内完成,不同行像元曝光的时间不同。可以分别控制每一行的曝光时间,获得对比度均匀的图像
全局快门:通过整幅场景在同一时间曝光实现,Sensor所有像素点同时收集光线。
CCD只支持全局快门;CMOS支持全局快门和卷帘快门

全局快门在光电转换之后要等待逐行的模数转换完成后才能拍摄下一帧,所以帧率较低。
全局快门需要更多的晶体管存储电荷,会产生较多的噪声和热量。
卷帘快门存在果冻现象

当保管不当或物体移动速度较快时,会出现部分曝光、斜坡图像、晃动等现象。称为果冻现象。

曝光

曝光:曝光是光线在感光芯片上的作用强度。
曝光=通光量+曝光时间+增益
通光量:由镜头光圈控制。
曝光时间:由快门控制。
增益
增益在数码相机中叫做IOS,提高增益就是提高传感器的感光度。
高感光度对光线灵敏,同时对噪点也灵敏,信噪比小。
优先使用曝光时间调节图像亮度。在不过曝的前提下,增加曝光时间可以增加信噪比,使图像清晰。
对于很弱的信号,曝光时间不能无限增加,因为增加曝光的时间,噪音也会累积。
增益的使用场景:高速拍摄场景,增加曝光的时间会导致拖影。
一般相机增益都产生很大的噪声,所以几乎不用。
帧率
每秒采集图像的数量,单位为帧数每秒,简称FPS或“赫兹”(Hz)。

非重叠模式:每个图像采集的周期中,相机在下一个图像采集开始前,均要完成曝光+读取整个过程。曝光时间越长,帧率越低。
重叠模式:允许在下一帧图像开始曝光时候,将前一帧获得的图像数据读出并传送出去。
注:工业相机的读取时间可以忽略。
白平衡
白平衡是对红、绿、蓝三个分量的平衡,以使相机能反映实际景物真实颜色。

由于光敏元件在不同的光照条件下RGB三个分量的输出是不平衡的,从而会产生图像在色彩上的失真,偏蓝或者偏红,因此需要白平衡来还原图像的色彩。通常相机完成白平衡可以分为自动和手动白平衡两种方式,此外还可以通过软件实现白平衡。
靶面尺寸
见上面镜头的靶面尺寸
像素的位深
像素深度是指每位像素数据的位数,通常用多少比特表示.

每个像素的比特位数越多,表达图像细节的能力越强,这个像素的灰阶值更加丰富,像素的灰阶值深度就更深,但同时数据量会变大,影响系统的处理速度。
常见的是8bit、10bit、12bit。分辨率和像素深度功能决定了图像数据的大小。对于像素深度为8bit的500万像素,图像的大小为256020488/8/1024/1024=5MB
相机输出接口

1、有着高效、高速和高性能的特点,是目前工业相机中发展最快的。
2、稳定性高,线缆最长可以达到100m。

1、世界上应用最广泛的接口、USB工业相机可以直接被连接到电脑上稳定工作。
2、USB接口可以直接为USB相机供电。
3、USB接口速度快,同型号帧率高、
4、线缆长度5m之内。

1、专业针对工业相机的特殊需求(图像数据量大、带宽要求高)而研发。
2、不支持热插拔。
3、需要配合采集卡使用。
相机分辨率计算
1、知道精度和拍摄的视野范围,可以用视野尺寸除以精度,多出分辨率。
思路:1个精度尺寸至少需要1个像元来识别,事业范围对应整个感光芯片,计算出视野范围包含多少个精度尺寸,就是感光芯片需要多少个像元,若是缺陷检测,通常不止会只用一个像素表示一个精度,而是乘以3-4倍。
解法:分辨率=(视野高/精度)*(视野宽/精度)*3



光学棱镜
1.色散棱镜:根据棱镜基片的波长和反射率,棱镜色散取决于棱镜的几何及其折射率色散曲线。最小偏向角决定入射光线和投射光线之间的最小夹角。绿色光的波长偏离超过红色 ,蓝色比红色和绿色多 ;红色通常定义为656.3nm,绿色为587.6nm,蓝色为486.1nm。
2.偏转或反射棱镜:偏转光线路径的棱镜,或将图像从其原始轴偏移,在很多成像系统中很有帮助。光线通常在45°、60°、90°和180°角度偏转。这有助于聚集系统大小或调整光线路径而不影响其余的系统设置。
3.旋转棱镜:旋转棱镜,例如道威棱镜,用于旋转倒位后的图像。
4.偏移棱镜:偏移棱镜保持光线路径的方向,还会将其关系调整为正常。
相关文章:
机器视觉-硬件
机器视觉-硬件 镜头焦距凸透镜焦点不止一个相机镜头由多个镜片组成对焦和变焦 镜头光圈光圈的位置光圈系数F 镜头的景深景深在光路中的几何意义 远心镜头远心镜头的种类远心镜头特性应用场景 镜头的分辨率镜头反差镜头的MTF曲线镜头的靶面尺寸镜头的几何相差相机镜头接口螺纹接…...
机器学习实验 --- 逻辑回归
第1关:逻辑回归核心思想 任务描述 本关任务:根据本节课所学知识完成本关所设置的编程题 #encodingutf8 import numpy as npdef sigmoid(t):完成sigmoid函数计算:param t: 负无穷到正无穷的实数:return: 转换后的概率值:可以考虑使用np.exp()函数#*****…...
浅谈C++函数
目录 一、函数的概念二、调用函数的两个前提三、函数传参的三种形式四、函数返回类型 一、函数的概念 函数是C程序的基本模块,通常一个C程序由一个或多个函数组成。函数可以完成用户指定的任务,一般分为库函数和用户自定义的函数。函数由函数头和函数体…...
6.小程序页面布局 - 账单明细
文章目录 1. 6.小程序页面布局 - 账单明细1.1. 竞品1.2. 布局分析1.3. 布局demo1.4. 页面实现-头部1.5. 账单明细1.5.1. 账单明细-竞品分析1.5.2. 账单明细-实现1.5.2.1. 账单明细-实现-mock数据1.5.2.2. 每日收支数据的聚合整理1.5.2.3. 页面scroll-view 1.6. TODO 1. 6.小程序…...
记录ES7.X更新数据的低级错误
背景:新项目复用之前同事遗留下的方法 问题:ES跨索引更新数据错误 排查:复用同事的方法有问题,他直接使用ES别名更新数据导致,只有一个索引时无问题,当多个索引使用同一别名时会出现异常 解决࿱…...
【简单介绍下链表基础知识】
🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...
leetcode 2915.和为目标值的最长子序列的长度
思路:01背包 这个背包问题很经典了,但是这里涉及到一个问题,就是我们转化问题的时候发现,这个背包需要正好装满才行。这里我们把长度作为价值,也就是说每一个数的价值都是1。 我们需要把dp初始化为全部为负数&#x…...
欧拉函数、快速幂、扩展欧几里得算法、中国剩余定理和高斯消元
欧拉函数 给定 n 个正整数 ai,请你求出每个数的欧拉函数。 欧拉函数的定义1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N)。 若在算数基本定理中,Np1a11p2a2…pmm,则:ϕ(N) Np1−1/p1p2−1/p2…pm−1/pm 输…...
自定义原生小程序顶部及获取胶囊信息
需求:我需要将某个文字或者按钮放置在小程序顶部位置 思路:根据获取到的顶部信息来定义我需要放的这个元素样式 * 这里我是定义某个指定页面 json:给指定页面的json中添加自定义设置 "navigationStyle": "custom" JS&am…...
yolov8推理由avi改为mp4
修改\ultralytics-main\ultralytics\engine\predictor.py,即可 # Ultralytics YOLO 🚀, AGPL-3.0 license """ Run prediction on images, videos, directories, globs, YouTube, webcam, streams, etc.Usage - sources:$ yolo modepred…...
Vue3设置缓存:storage.ts
在vue文件使用: import { Local,Session } from //utils/storage; // Local if (!Local.get(字段名)) Local.set(字段名, 字段的值);// Session Session.getToken()storage.ts文件: import Cookies from js-cookie;/*** window.localStorage 浏览器永…...
如何用AI工具提升日常工作效率,帮我们提速增效减负
昨天,coze海外版支持了GPT4o, 立马体验了下,速度杠杠的。 https://www.coze.com 支持chatGP和gemini模型,需要科学上网。国内 https://www.coze.cn支持语雀、KIMI模型。 这里回到正题, 如何用AI工具提升日常工作效率…...
C++: 优先级队列的模拟实现和deque
目录 一、优先级队列 1.1优先级队列 priority_queue介绍 1.2优先级队列的使用 1.3priority_queue的模拟实现 二、deque 2.1deque介绍 2.2deque的优缺点 2.3为什么选择deque作为stack和queue的底层默认容器 一、优先级队列 1.1优先级队列 priority_queue介绍 1.11 优先级队…...
C++ socket epoll IO多路复用
IO多路复用通常用于处理单进程高并发,在Linux中,一切皆文件,一个socket连接会对应一个文件描述符,在监听多个文件描述符的状态应用中epoll相对于select和poll效率更高 epoll本质是系统在内核维护了一颗红黑树,监听的文…...
缓存IO与直接IO
IO类型 缓存 I/O 缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中,数据先从磁盘复制到内核空间的缓冲区,然后从内核空间缓冲区复制到应用程序的地址空间(用户空间࿰…...
输入输出(3)——C++的标准输入流
目录 一、cin 流 二、成员函数 get 获取一个字符 (一)无参数的get函数。 (二)有一个参数的get函数。 (三)有3个参数的get函数 (四)用成员函数 getline 函数读取一行字符 (五)用成员函数 read 读取一串字符 (六)istream 类…...
[力扣题解] 344. 反转字符串
题目:344. 反转字符串 思路 双指针法 代码 class Solution { public:void reverseString(vector<char>& s) {int i, j, temp;for(i 0, j s.size()-1; i < j; i, j--){temp s[j];s[j] s[i];s[i] temp;}} };...
找不到msvcr110.dll无法继续执行代码的原因分析及解决方法
在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是找不到msvcr110.dll文件。这个错误通常发生在运行某些程序或游戏时,系统无法找到所需的动态链接库文件。为了解决这个问题,下面我将介绍5种常见的解决方法。 一&#…...
深入理解数仓开发(一)数据技术篇之日志采集
前言 今天开始重新回顾电商数仓项目,结合《阿里巴巴大数据之路》和尚硅谷的《剑指大数据——企业级电商数据仓库项目实战 精华版》来进行第二次深入理解学习。之前第一次学习数仓,虽然尽量放慢速度力求深入理解,但是不可能一遍掌握࿰…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
解析“道作为序位生成器”的核心原理
解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制,重点解析"道作为序位生成器"的核心原理与实现框架: 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...
深入解析光敏传感技术:嵌入式仿真平台如何重塑电子工程教学
一、光敏传感技术的物理本质与系统级实现挑战 光敏电阻作为经典的光电传感器件,其工作原理根植于半导体材料的光电导效应。当入射光子能量超过材料带隙宽度时,价带电子受激发跃迁至导带,形成电子-空穴对,导致材料电导率显著提升。…...
