[Halcon&图像] 缺陷检测的一些思路、常规检测算法

简介: [Halcon&图像] 缺陷检测的一些思路、常规检测算法

前言

       缺陷检测算法不同于尺寸、二维码、OCR等算法。后者应用场景比较单一,基本都是套用一些成熟的算子,所以门槛较低,比较容易做成标准化的工具。而缺陷检测极具行业特点,不同行业的缺陷算法迥然不同,常见的是对物品表面缺陷的检测,比如工件表面的斑点、凹坑、划痕、色差、缺损等缺陷进行检测。随着缺陷检测要求的提高,机器学习和深度学习也成了缺陷领域一个不可或缺的技术难点,接下来我会对标准缺陷检测算法、以及半导体行业的非标算法做一个简单分析:


1. 缺陷检测分类

1.1 标准缺陷检测

所谓标准,就是不针对行业特点,这里基本分为如下几类:

  • 标准预处理功能: 图像增强、腐蚀、膨胀、开运算、闭运算、滤波、傅立叶变换(频域空间域转换)、距离变换、差分、等
  • 面积检测:阈值后计算ROI内面积
  • Blob(阈值分割+特征提取)检测:阈值联通后计算Blob
  • 浓度差检测:计算ROI范围内的最大浓度、最小浓度、浓度差
  • 直线/曲线上的毛刺/缺陷:拟合直线/曲线,计算边缘点到直线/曲线距离

标准的做法一般都是拿标准的算法块进行组合,以达到缺陷检测的效果,缺陷检测标准流程一般是:

1设置基准图模板——>2当前图模板定位——>3生成仿射变换矩阵——>4旋转平移图像或者区域——>5预处理差分——>6预处理滤波/腐蚀/膨胀——>7Blob检测——>8面积检测


1.2 非标缺陷检测(针对行业特性)

       相对与标准做法,非标的做法就非常多,有些非标的目的是为了减少操作步骤,例如将上面的组合流程变成一个工具,这个我们称之为业务逻辑非标。还有一些非标主要是做图像预处理部分,例如修改一些标准预处理的算子和预处理流程,将瑕疵提取出来。当然,对数学理论掌握程度较高的朋友,会推导理论公式,然后直接实现数学公式达到检测效果。


2. 行业难点

  • 传统算法检测缺陷:调试难度大,容易在检测不稳定情况下反复调参,且复杂缺陷误测多,兼容性差
  • 机器学习检测缺陷:一般使用类似MLP的一些单层神经网络,对缺陷特征进行训练分类,该方法需要事先提取出缺陷部分,一般用来与传统分割法搭配使用,达到缺陷检测分类的效果。
  • 深度学习检测缺陷(打标签):一般需要客户提供大量的缺陷样本,而且缺陷种类越多、特征越不明显,需要的缺陷样本就越大。其次,打标签过程很难做到自动,需要手动辅助框出缺陷位置,工作量非常大。总结就是训练周期久,训练样本大,如果客户可以提供大量样本,那该方法是首选(半导体行业一般不会出现大量缺陷样品)
  • 深度学习检测缺陷(迁移学习法):该方法我感觉会成为后面工业领域检测瑕疵的一个大趋势,但是需要一些公司去收集各种行业的缺陷类型图片和训练的网络模型,并共享出来(突然感觉是个商机,就看谁能抓住了),然后我们可以使用迁移学习的方法学习别人训练好的模型。

3. 常规缺陷检测算法(Halcon

总的来说,缺陷检测的算法包括:

  • Blob分析+特征提取(常用,较简单)
  • 定位(Blob定位、模板匹配定位)+ 差分(常用)
  • 光度立体
  • 特征训练
  • 测量拟合(常用)
  • 频域+空间域结合(常用)
  • 深度学习

3.1 差分法

       标准缺陷检测我觉得用差分法还是蛮多的。顾名思义,差分就是通过对两幅图像或和两个区域作差,来找出其中有差异的区域。处理流程基本就是定位Blob分析+差分或模板匹配+差分的方式,主要用来检测物品损坏,凸起,破洞,缺失,以及质量检测等。两种方式的具体流程如下:

3.1.1 blob分析+差分

检测流程如下:

  1. 读取图像
  2. 对图像进行Blob分析,提取图像上的Roi检测区域
  3. 在对Roi区域直接进行差分处理或者与没有缺陷的图像进行差分处理
    ps:这里差分包含区域差分和图像差分两种方式。
  4. 最后求差集,根据差集部分的面积判断该物品是否有缺陷

流程解析:以标准图像中的灰度值为模板,计算处检测图像的灰度值,并与标准图像作差,灰度值差异越大,则证明检测图像中存在与标准图比有明显灰度变化的区域,即这部分区域就是我们所要筛选出的缺陷区域。

示例分析:提取灰度值明显的缺陷区域

*1.使用`intensity()`算子计算出模板图(即标准图,图1)的检测区域图像的灰度平均值`OriginalMean`
intensity(OriginalRegion, ImageReduced1, OriginalMean, Deviation1) 
*2.再`intensity()`算子计算出待测图(图2)的检测区域图像的灰度平均值`DetectMean`,计算出两幅图像灰度均值的差值
intensity (DetectRegion, ImageReduced2, DetectMean, Deviation2)
tuple_abs (OriginalMean-DetectMean, Abs)
*3.
*如果两个区域的灰度值差值大于10(if(Abs>10)),则生成一副图像(图3),其灰度值为模板图中计算得到的的平均灰度值;  
*如果两个区域的灰度值差值小于10(if(Abs<10)),则生成一副图像(图3),其灰度值为待测图中计算得到的的平均灰度值。
*ps:这里计算结果是差值小于10,也就是检测图的灰度值差异和模板图差异不大,直接生成一个后者的灰度均值图像
if(Abs>10)
   gen_image_proto (ImageReduced2, ImageCleared, OriginalMean)
else
   gen_image_proto (ImageReduced2, ImageCleared, DetectMean)
endif
reduce_domain (ImageCleared, RegionDifference, ImageReduced1)
*4.将待测图与新生成的灰度值图像做差值(图4),可以找到待测图和模板图灰度值有差异的区域
abs_diff_image (ImageReduced2, ImageReduced1, ImageAbsDiff, 1)
invert_image (ImageAbsDiff, ImageInvert)
threshold (ImageInvert, Region1, 0, 30)
opening_circle (Region1, RegionOpening, 1.5)
connection (RegionOpening, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 10, 99999)

检测效果如下:

没理解的,再列举一些Halcon中的差分例程练练手:

1.检测毛刺(Blob+差分法)—— fin.hdev

2.电路板线路缺陷检测(Blob+差分法)—— pcb_inspection.hdev

3.瓶口破损缺陷检测(Blob+差分法)—— inspect_bottle_mouth.hdev(注意直角坐标系和极坐标系之间的转换)


3.1.2 模板匹配+差分

流程如下:

  1. 先定位模板区域后,求得模板区域的坐标,创建物品的形状模板create_shape_model,注意把模板的旋转角度改为rad(0)和rad(360)
  2. 匹配模板find_shape_model时,由于物品的缺陷使形状有局部的改变,所以要把MinScore设置小一点,否则匹配不到模板。并求得匹配项的坐标
  3. 关键的一步,将模板区域仿射变换到匹配成功的区域。由于差集运算是在相同的区域内作用的,所以必须把模板区域转换到匹配项的区域
  4. 最后求差集,根据差集部分的面积判断该物品是否有缺陷

示例分析:印刷质量缺陷检测(可变现模板匹配+差分法)—— print_check.hdev

ps:里面没用difference做差分,而是用了Halcon为变形模板提供的专门的差分算子:compare_variation_model();


3.1.3 两种检测方式对比

       Blob分析适用于需要整张图都是Roi区域或图像某处Roi区域通过预处理很容易提取出来的情况。而Blob分析没办法定位到图像R区域的时候就需要用到模板匹配了,通过模板匹配(形状匹配或局部变形匹配)定位到图像Roi区域,然后用差异模型去检测缺陷,可以理解为模板匹配 + 差分是Blob分析 + 差分的进阶版,比较容易处理的可以交给儿子Blob分析处理,难的话爸爸模板匹配上。


3.2 频域+空间结合法

3.2.1 傅里叶变换理论

      傅里叶变换是一种函数在空间域和频率域的变换,从空间域到频率域的变换是傅里叶变换,而从频率域到空间域是傅里叶的反变换。

时域与频域:

  • 频域(frequency domain)
    是指在对函数或信号进行分析时,分析其和频率有关部份,而不是和时间有关的部份,和时域一词相对。
  • 时域(空间域)
    是描述数学函数或物理信号对时间的关系。例如一个信号的时域波形可以表达信号随着时间的变化。若考虑离散时间,时域中的函数或信号,在各个离散时间点的数值均为已知。若考虑连续时间,则函数或信号在任意时间的数值均为已知。在研究时域的信号时,常会用示波器将信号转换为其时域的波形。
  • 两者相互间的变换
    时域(信号对时间的函数)和频域(信号对频率的函数)的变换在数学上是通过积分变换实现。对周期信号可以直接使用傅立叶变换,对非周期信号则要进行周期扩展,使用拉普拉斯变换。

信号在频率域的表现:

      在频域中,频率越大说明原始信号 变化速度越快;频率越小说明原始信号越平缓。当频率为0时,表示直流信号,没有变化。因此,频率的大小反应了信号的变化快慢。高频分量解释信号的突变部分,而低频分量决定信号的整体形象。

      在图像处理中,频率反应了图像在空域灰度变化剧烈程度,也就是图像灰度的变化速度,也就是图像的梯度大小。对图像而言,图像的边缘部分是突变部分,变化较快,因此反应在频域上是高频分量;图像的噪声大部分情况下是高频部分;图像平缓变化部分则为低频分量。也就是说,傅立叶变换提供另外一个角度来观察图像, 可以将图像从灰度分布转化到频率分布上来观察图像的特征。书面一点说就是,傅里叶变换提供了一条从空域到频率自由转换的途径。对图像处理而言,以下概念非常的重要。

      由布布丶全权冠名的“ 第一届图像杯拳王挑战锦标赛 "`正式开始,有请:

  • 高频代表队参赛选手:噪声、细节和边缘
    图像高频分量:图像突变部分,在某些情况下指图像边缘信息,某些情况下指噪声,更多是两者的混合。
  • 低频代表队参赛选手:图像整体轮廓
    图像低频分量:图像(亮度/灰度)变化平缓的部分,代表着那是连续渐变的一块区域,这部分就是低频。对于一幅图像来说,除去高频的就是低频了,也就是边缘以内的内容为低频,而边缘内的内容就是图像的大部分信息,即图像的大致概貌和轮廓,是图像的近似信息。
  • 亲高频派裁判代表:高通滤波器 —— 让图像高频分量通过,抑制低频分量。
  • 亲低频派裁判代表:低通滤波器 —— 与高通相反,让图像低频分量通过,抑制高频分量。
  • 铁面无私裁判代表:带通滤波器 —— 使图像在某一部分的频率信息通过,其他过低或过高都抑制。
  • 左右逢源裁判代表:带阻滤波器,是带通的反。

加强理解:图像噪声一般是白点或者黑点,因为它与正常的点颜色不一样了,也就是说该像素点灰度值明显不一样了,也就是灰度有快速地变化了,所以是高频部分;图像细节处也是属于灰度值急剧变化的区域,正是因为灰度值的急剧变化,才会出现细节,也属于高频部分;所以一般会对信号先进行低通滤波处理,即过滤掉图像中的高频部分(噪声/细节/边缘),留下低频(图像轮廓),结果就是图像模糊了。

ps:图像处理中,有书上说低频反应轮廓,高频反应细节;有的文章里面说低频反应的是背景,高频反应的是边缘;低频反应轮廓,这里的轮廓指的不是边缘(很多人会搞混觉得轮廓是指的就是边缘),打个比方,近视眼的人摘了眼镜,人们通常会说:“我什么也看不清,仅仅能看到一个大致轮廓。”就是类似的意思。所以图像的边缘提取仍是提起的边缘的高频信息,这两种说法并不矛盾。

总结:低频代表图像整体轮廓,高频代表了图像噪声、边缘和细节,中频代表图像纹理等。


3.2.2 应用场景

使用傅里叶变换进行频域分析的应用场景:

  1. 具有一定纹理特征的图像,纹理可以理解为条纹,如布匹、木板、纸张等材质容易出现。
  2. 需要提取对比度低或者信噪比低的特征。
  3. 图像尺寸较大或者需要与大尺寸滤波器进行计算,此时转换至频域计算,具有速度优势。因为空间域滤波为卷积过程(加权求和),频域计算直接相乘。

3.2.3 核心检测算子

在Halcon中,使用频域进行检测的思路是先从空间域到频域,在频域中进行适当滤波,选择自己想要的频段,然后再返回到空间域中去,其中有两个步骤是比较关键的:

1. 生成合适的滤波器

对应的关键算子:

gen_std_bandpass
gen_sin_bandpass
*创建一个高斯滤波器,sigma越小滤波器越小,通过的信号更加的集中在低频,这样做的目的是得到背景
gen_gauss_filter( : ImageGauss : Sigma1, Sigma2, Phi, Norm, Mode, Width, Height : )(常用)
gen_mean_filter
gen_derivative_filter
gen_bandpass
gen_bandfilter
gen_highpass
gen_lowpass

2. 快速傅里叶变换(空间域和频域之间的相互转换)

 对应的关键算子:

fft_generic(Image : ImageFFT : Direction, Exponent, Norm, Mode, ResultType : )
rft_generic(Image : ImageFFT : Direction, Norm, ResultType, Width : )

两个算子共同点:

这两个算子都可以进行空间域—>频域,频域—>空间域的变换,只需要针对参数Direction分别进行选择,参数'to_freq'是进行的是空间域—>频域的变换,'from_freq'是频域—>空间域的变换

针对参数ResultType,如果是to_freq',那么ResultType一般选择'complex';如果是'from_freq',ResultType一般选择’byte’(灰度图像)。

两个算子不同点:

fft_generic:DC项在频域中的位置可选在左上角(Mode:'dc_edge')或者原点平移到中心(Mode:'dc_center'

rft_generic:没有设置项Mode,原点在默认在左上角。

除此之外,fft_image:也可进行快速傅里叶变化(空间域到频域),等价于fft_generic(Image,ImageFFT,‘to_freq’,-1,‘sqrt’,‘dc_center’,‘complex’)


3.2.4 相关实际检测案例

🐨 塑料制品的表面进行缺陷检测 —— detect_indent_fft.hdev

* 1.对指定大小的图片的fft速度进行优化
optimize_rft_speed (Width, Height, 'standard')
Sigma1 := 10.0
Sigma2 := 3.0
* 2.构造两个高斯滤波器,ps:Sigma参数的选取很重要
gen_gauss_filter (GaussFilter1, Sigma1, Sigma1, 0.0, 'none', 'rft', Width, Height)
gen_gauss_filter (GaussFilter2, Sigma2, Sigma2, 0.0, 'none', 'rft', Width, Height)
* 两图片相减(灰度)
sub_image (GaussFilter1, GaussFilter2, Filter, 1.025, 0)
NumImages := 16
for Index := 1 to NumImages by 1
    read_image (Image, 'plastics/plastics_' + Index$'02')
    rgb1_to_gray (Image, Image)
    * 3.计算一个图像的实值快速傅里叶变换(空间域转至频域)
    rft_generic (Image, ImageFFT, 'to_freq', 'none', 'complex', Width)
    * 4.用在频域内的滤波器使一个图像卷积。
    convol_fft (ImageFFT, Filter, ImageConvol)
    * 5.卷积后的频域图像转至空间域
    rft_generic (ImageConvol, ImageFiltered, 'from_freq', 'n', 'real', Width)    
    * 6.滤波之后的图像交给形态学来分析
    * 空间域上的blob图像分割
    *原图矩形内的灰度值范围(max-min)作为输出图像像素值,扩大了亮的部分
    gray_range_rect (ImageFiltered, ImageResult, 10, 10)
    * 获得图像最大灰度值和最小灰度值
    min_max_gray (ImageResult, ImageResult, 0, Min, Max, Range)
    *二值化提取( 5.55是经验值,在调试中得到)
    threshold (ImageResult, RegionDynThresh, max([5.55,Max * 0.8]), 255)
    select_shape (RegionDynThresh, SelectedRegions, 'area', 'and', 1, 99999)

对于处理这种细微的缺陷,也可使用频域处理。该例程的关键就是使用两个低通滤波器,进行相减后构造了一个带阻滤波器(先通过高反差保留让中高频通过,然后通过高斯模糊抑制高频,最终的结果是让中频通过)来提取缺陷分量。

此外,Halcon中关于傅里叶变换的例程还有:detect_mura_defects_texture.hdev

🐒 检测布料表面划痕

*《Halcon机器视觉算法原理与编程实战》16-1
* 将测试图像转化为单通道的灰度图像
rgb1_to_gray (Image, ImageGray)
* 1.创建一个高斯滤波器,用于将傅里叶转换后的图像进行滤波
gen_gauss_filter (GaussFilter, 3.0, 3.0, 0.0, 'none', 'rft', Width, Height)
* 对灰度图像进行颜色反转
invert_image (ImageGray, ImageInvert)
* 2.对反转后的图像进行傅里叶变换
rft_generic (ImageInvert, ImageFFT, 'to_freq', 'none', 'complex', Width)
* 3.对傅里叶图像做卷积,使用之前创建的高斯滤波器作为卷积核
convol_fft (ImageFFT, GaussFilter, ImageConvol)
* 4.将卷积后的傅里叶图像还原为空间域图像。可见图像的突变部分得到了增强
rft_generic (ImageConvol, ImageFiltered, 'from_freq', 'n', 'real', Width)
* 5.设置提取线条的参数,将图像中的有灰度差异的线条提取出来
calculate_lines_gauss_parameters (17, [25,3], Sigma, Low, High)
lines_gauss (ImageFiltered, Lines, Sigma, Low, High, 'dark', 'true', 'gaussian', 'true')

🐎 木板划痕检测

*http://www.ihalcon.com/read-13031-1.html
dev_update_off ()
dev_close_window ()
read_image (Image, '缺陷检测木板划痕提取.jpg')
* 1.彩色转灰度图
count_channels (Image, Channels)
if (Channels == 3 or Channels == 4)
    rgb1_to_gray (Image, Image)
endif
get_image_size (Image, Width, Height)
dev_open_window_fit_size (0, 0, Width, Height, -1, -1, WindowHandle)
dev_display (Image)
* 2.傅里叶变换去背景
fft_generic (Image, ImageFFT, 'to_freq', -1, 'sqrt', 'dc_center', 'complex')
gen_rectangle2 (Rectangle1, 308.5, 176.56, rad(-0), 179.4, 7.725)
gen_rectangle2 (Rectangle2, 306.955, 175, rad(-90), 180.765, 4.68)
union2 (Rectangle1, Rectangle2, UnionRectangle)
paint_region (UnionRectangle, ImageFFT, ImageResult, 0, 'fill')
fft_generic (ImageResult, ImageFFT1, 'from_freq', 1, 'sqrt', 'dc_center', 'byte')
* 3.提取划痕
threshold (ImageFFT1, Regions, 5, 240)
connection (Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 20, 99999)
union1 (SelectedRegions, RegionUnion)
dilation_rectangle1 (RegionUnion, RegionDilation, 5, 5)
connection (RegionDilation, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions1, ['width','height'], 'and', [30,15], [150,100])
dilation_rectangle1 (SelectedRegions1, RegionDilation1, 11, 11)
union1 (RegionDilation1, RegionUnion1)
skeleton (RegionUnion1, Skeleton)
* 4.显示
dev_set_color ('red')
dev_display (Image)
dev_display (Skeleton)


3.3 光度立体

      在工业领域,表面检测是一个非常广泛的应用领域。在halcon中,使用增强的光度立体视觉方法,三维表面检测被加强。利用阴影可方便快速的检测物体表面的缺口或凹痕。 使用光度立体视觉方法可在复杂图像中轻松找到表面缺陷 。

  • 适用场景: 适用于检测金属物料上面的凹凸特征。
    检测原理:
    1.通过photometric_stereo算子获得表面梯度图像,该算子可以得到表面梯度图像和反照率图像。需要输入多张从不同角度照明所得到的图像。
    2.通过derivate_vector_field算子获得高斯(平均)曲率图像,该算子中需要输入上面得到的表面梯度图像
    光源: 光度立体法不需要特殊的光源,只需要从不同的角度打光而已。

算子photometric_stereo详解:

* 使用光度立体法重建表面
photometric_stereo (Images : HeightField, Gradient, Albedo : Slants, Tilts, ResultType, ReconstructionMethod, GenParamName, GenParamValue : )
* Images:输入图像(4张)
* HeightField:返回重建高度场
* Gradient:返回表面的梯度场
* Albedo: 表面的反射率
* Slants:光源光线与摄像机光轴的夹角(下面有示意图)
* Tilts: 光源光线投影与被测物主轴的夹角
* ResultType: 请求结果类型(高度场/梯度场/反射率)
* ReconstructionMethod: 重建方法类型
* GenParamName: 一般参数名称
* GenParamValue: 一般参数设置

算子derivate_vector_field详解:

* 梯度场转平均曲率场
derivate_vector_field(VectorField : Result : Sigma, Component : )
* VectorField: 梯度场图像
* Result: 返回平均曲率场图像
* Sigma: 高斯系数
* Component: 组件计算

3.3.1 初试光度立体法

🐨 药片外包装破损的检测

Halcon案例:方法-光度立体法- inspect_blister_photometric_stereo.hdev

read_image (Images, './blister_back_0' + [1:4])
for I := 1 to 4 by 1
    select_obj (Images, ObjectSelected, I)
    *wait_seconds (0.1)
endfor
Tilts := [6.1,95.0,-176.1,-86.8]
Slants := [41.4,42.6,41.7,40.9]
* 光度立体
photometric_stereo (Images, HeightField, Gradient, Albedo, Slants, Tilts, 'all', 'poisson', [], [])
* 梯度场转平均曲率场
derivate_vector_field (Gradient, Result, 1, 'mean_curvature')
*scale_image_max (Result, ImageScaleMax)
* 种子生长
regiongrowing (Result, Regions, 1, 1, 0.01, 250)
select_shape (Regions, SelectedRegions, 'area', 'and', 16332.6, 28629.5)
shape_trans (SelectedRegions, RegionTrans, 'convex')
union1 (RegionTrans, RegionUnion)
erosion_circle (RegionUnion, RegionErosion, 3.5)
reduce_domain (Result, RegionErosion, ImageReduced)
* 求图像的绝对值
abs_image (ImageReduced, ImageAbs)
threshold (ImageAbs, Regions1, 0.3, 0.5)
* 显示

此外,Halcon中关于光度立体法的例程还有:

1.洗发水瓶身缺陷检测(inspect_shampoo_label_photometric_stereo.hdev)

2.皮革表面缺陷检测(inspect_leather_photometric_stereo.hdev)

例程解析参考:halcon——缺陷检测常用方法总结(光度立体)


戳戳小手帮忙点个免费的赞和关注吧,嘿嘿。

参考资料:

1.微信公众号:机器视觉那些事儿

2.https://www.cnblogs.com/xyf327/p/14872873.html

3.http://www.ihalcon.com/read-16432.html

4.https://blog.csdn.net/weixin_38566632/article/details/116377384

6.https://libaineu2004.blog.csdn.net/article/details/105366681

6.傅里叶分析之掐死教程(完整版)更新于2014.06.06 - 知乎 (zhihu.com)

7.图像的傅里叶变换

8.光度立体

目录
相关文章
|
1月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真
### 算法简介 1. **算法运行效果图预览**:展示算法效果,完整程序运行后无水印。 2. **算法运行软件版本**:Matlab 2017b。 3. **部分核心程序**:完整版代码包含中文注释及操作步骤视频。 4. **算法理论概述**: - **MSER**:用于检测显著区域,提取图像中稳定区域,适用于光照变化下的交通标志检测。 - **HOG特征提取**:通过计算图像小区域的梯度直方图捕捉局部纹理信息,用于物体检测。 - **SVM**:寻找最大化间隔的超平面以分类样本。 整个算法流程图见下图。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
|
1月前
|
机器学习/深度学习 人工智能 算法
【MM2024】面向 StableDiffusion 的多目标图像编辑算法 VICTORIA
阿里云人工智能平台 PAI 团队与华南理工大学合作在国际多媒体顶级会议 ACM MM2024 上发表 VICTORIA 算法,这是一种面向 StableDiffusion 的多目标图像编辑算法。VICTORIA 通过文本依存关系来修正图像编辑过程中的交叉注意力图,从而确保关系对象的一致性,支持用户通过修改描述性提示一次性编辑多个目标。
|
15天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA-PSO-SVM算法的混沌背景下微弱信号检测matlab仿真
本项目基于MATLAB 2022a,展示了SVM、PSO、GA-PSO-SVM在混沌背景下微弱信号检测中的性能对比。核心程序包含详细中文注释和操作步骤视频。GA-PSO-SVM算法通过遗传算法和粒子群优化算法优化SVM参数,提高信号检测的准确性和鲁棒性,尤其适用于低信噪比环境。
|
1月前
|
算法 安全
分别使用OVP-UVP和OFP-UFP算法以及AFD检测算法实现反孤岛检测simulink建模与仿真
本课题通过Simulink建模与仿真,实现OVP-UVP、OFP-UFP算法及AFD检测算法的反孤岛检测。OVP-UVP基于电压幅值变化,OFP-UFP基于频率变化,而AFD则通过注入频率偏移信号来检测孤岛效应,确保电力系统安全稳定运行。系统使用MATLAB 2013b进行建模与仿真验证。
|
20天前
|
存储 JSON 算法
TDengine 检测数据最佳压缩算法工具,助你一键找出最优压缩方案
在使用 TDengine 存储时序数据时,压缩数据以节省磁盘空间是至关重要的。TDengine 支持用户根据自身数据特性灵活指定压缩算法,从而实现更高效的存储。然而,如何选择最合适的压缩算法,才能最大限度地降低存储开销?为了解决这一问题,我们特别推出了一个实用工具,帮助用户快速判断并选择最适合其数据特征的压缩算法。
28 0
|
1月前
|
算法 计算机视觉 Python
圆形检测算法-基于颜色和形状(opencv)
该代码实现了一个圆检测算法,用于识别视频中的红色、白色和蓝色圆形。通过将图像从RGB转换为HSV颜色空间,并设置对应颜色的阈值范围,提取出目标颜色的区域。接着对这些区域进行轮廓提取和面积筛选,使用霍夫圆变换检测圆形,并在原图上绘制检测结果。
64 0
|
1月前
|
算法 数据安全/隐私保护
织物图像的配准和拼接算法的MATLAB仿真,对比SIFT,SURF以及KAZE
本项目展示了织物瑕疵检测中的图像拼接技术,使用SIFT、SURF和KAZE三种算法。通过MATLAB2022a实现图像匹配、配准和拼接,最终检测并分类织物瑕疵。SIFT算法在不同尺度和旋转下保持不变性;SURF算法提高速度并保持鲁棒性;KAZE算法使用非线性扩散滤波器构建尺度空间,提供更先进的特征描述。展示视频无水印,代码含注释及操作步骤。
|
2月前
|
算法 数据可视化 数据安全/隐私保护
基于LK光流提取算法的图像序列晃动程度计算matlab仿真
该算法基于Lucas-Kanade光流方法,用于计算图像序列的晃动程度。通过计算相邻帧间的光流场并定义晃动程度指标(如RMS),可量化图像晃动。此版本适用于Matlab 2022a,提供详细中文注释与操作视频。完整代码无水印。
|
24天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。