1-数字图像处理基础

数字图像处理基础

相机成像的原理

毕设项目演示地址: 链接

毕业项目设计代做项目方向涵盖:

基于Python设计,OpenCV,SSD,CNN,机器学习,CNN,SVM,BP神经网络,数字识别,贝叶斯,逻辑回归,卷积神经网络等算法的中文文本分类.车牌识别,知识图谱,数字图像处理,手势识别,边缘检测,图像增强,图像分类,图像分割,色彩增强,低照度。缺陷检测,病害识别,图像缺陷检测,裂缝识别,交通标志识别,夜间车牌识别,人数统计,火焰烟雾火,车道线识别,人脸识别系统
相机成像的原理:针孔相机( Pinhole Camera )通过投影变换,可以将三维相机(Camera)坐标转换为二维的图像坐标,这个变换矩阵是相机的内在属性,称为相机内参(Camera Intrinsic) K

yaw 航向角,pitch 俯仰角,roll 翻滾角

均值模糊与高斯模糊

均值模糊(不常用)

所谓"模糊",可以理解成每一个像素都取周边像素的平均值(这种叫均值模糊),在图形上,就相当于产生"模糊"效果,但是在数值上,这是一种"平滑化","中间点"会失去细节。(高斯模糊效果如下图所示:)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wg8HTz8g-1665413817381)(…/…/data/images/高斯模糊.jpg)]

注意这里,计算平均值时,取值范围越大,"模糊效果"越强烈,也就是模糊半径越大,图像就越模糊。从数值角度看,就是数值越平滑。下图是分别是原图、模糊半径 3 像素、模糊半径 10 像素的效果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7DEl0Vwn-1665413817382)(…/…/data/images/不同模糊半径效果图.jpg)]

高斯模糊

从数学的角度来看,图像的高斯模糊过程就是图像像素与像素的正态分布做卷积, 同时高斯模糊对图像来说就是一个低通滤波器。简单来说高斯模糊就是一种图像模糊滤波器,它用正态分布计算图像中每个像素的变换。其中N维空间正态分布方程为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H8U8zCd5-1665413817383)(…/…/data/images/N维空间正太分布方程.png)]

在二维空间定义为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7hf2v7iH-1665413817384)(…/…/data/images/二维空间的正太分布方程.png)]

其中 r r r 是模糊半径 ( r 2 = u 2 + v 2 ) (r^2 = u^2 + v^2) (r2=u2+v2 σ σ σ 是正态分布的标准偏差。在二维空间中,这个公式生成的曲面的等高线是从中心开始呈正态分布的同心圆。分布不为零的像素组成的卷积矩阵与原始图像做变换。每个像素的值都是周围相邻像素值的加权平均。原始像素的值有最大的高斯分布值,所以有最大的权重,相邻像素随着距离原始像素越来越远,其权重也越来越小。这样进行模糊处理比其它的均衡模糊滤波器更高地保留了边缘效果,效果如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2aFD0cv2-1665413817385)(…/…/data/images/不同模糊半径效果图.jpg)]

图像处理中平滑和锐化操作

平滑处理(smoothing)也称模糊处理(bluring),主要用于消除图像中的噪声部分,平滑处理常用的用途是用来减少图像上的噪点或失真,平滑主要使用图像滤波。在这里,我个人认为可以把图像平滑和图像滤波联系起来,因为图像平滑常用的方法就是图像滤波器。在OpenCV3中常用的图像滤波器有以下几种:

  • 方框滤波——BoxBlur函数
  • 均值滤波(邻域平均滤波)——Blur函数
  • 高斯滤波——GaussianBlur函数(高斯低通滤波是模糊,高斯高通滤波是锐化)
  • 中值滤波——medianBlur函数
  • 双边滤波——bilateralFilter函数

图像锐化操作是为了突出显示图像的边界和其他细节,而图像锐化实现的方法是通过各种算子和滤波器实现的——Canny 算子、Sobel 算子、Laplacian 算子以及 Scharr 滤波器。

图像锐化方法

锐化主要影响图像中的低频分量,不影响图像中的高频分量像锐化的主要目的有两个:

  1. 增强图像边缘,使模糊的图像变得更加清晰,颜色变得鲜明突出,图像的质量有所改善,产生更适合人眼观察和识别的图像;
  2. 过锐化处理后,目标物体的边缘鲜明,以便于提取目标的边缘、对图像进行分割、目标区域识别、区域形状提取等,进一步的图像理解与分析奠定基础。

图像锐化一般有两种方法:

  1. 微分法
  2. 高通滤波法

一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时图像边缘信息也主要集中在其高频部分。这将导致原始图像在平滑处理之后,图像边缘和图像轮廓模糊的情况出现。为了减少这类不利效果的影响,就需要利用图像锐化技术,使图像的边缘变得清晰。图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变得清晰.

经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变得清晰。微分运算是求信号的变化率,由傅立叶变换的微分性质可知,微分运算具有较强高频分量作用。从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。但要注意能够进行锐化处理的图像必须有较高的性噪比,否则锐化后图像性噪比反而更低,从而使得噪声增加的比信号还要多,因此一般是先去除或减轻噪声后再进行锐化处理。

Reference

numpy手撕代码

人脸识别的场景下,输入 105 × 12 105\times 12 105×12feature map,用这个在 1000 × 512 1000 \times 512 1000×512 的特征库当中用欧氏距离去匹配 105 × 12 105 \times 12 105×12 的 feature map,用这个在 1000 × 512 1000\times 512 1000×512 的特征库当中用欧氏距离去匹配 10 × 1000 10\times 1000 10×1000 的特征,得到这个 output

单目3D目标检测笔记

  1. EfficientNet is a backbone. In the original paper, they used Hourglass backbone, which has a structure similar to UNet.
    CenterNet is only a type of decoder, not the whole network.
  2. 8 outputs, not exactly classes.
    1 for binary mask
    7 for regression variables x, y, z, yaw, pitch_sin, pitch_cos, roll
  3. Regression predicts raw 3d coordinates of a car x, y, z. And binary mask predicts the 2d position on the image row, col. 2d map is much more precise but contains incomplete information. Function optimize_xy is used to shift x, y (on the road) so that they correspond to row, col (in image)
  4. CenterNet 模型:作者在构建模型时将目标作为一个点——即目标BBox的中心点。检测器采用关键点估计来找到中心点,并回归到其他目标属性,例如尺寸,3D位置,方向,甚至姿态。
  5. I use this idea to predict x, y, z coordinates of the vehicle and also yaw, pitch_cos, pitch_sin, roll angles.
    For pitch I predict sin and cos, because, as we will see, this angle can be both near 0 and near 3.14.
    These 7 parameters are my regression target variables instead of shift_x, shift_y, size_x, size_y
  6. In this competition the world coordinate (Xw, Yw, Zw) is same with camera coordinate (Xc, Yc, Zc), the camera is origin.

猜你喜欢

转载自blog.csdn.net/purple_love/article/details/127254406