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

外贸公司企业网站推广引流平台排行榜

外贸公司企业网站,推广引流平台排行榜,成都高度网站技术建设公司,网站建设专业的有哪些一、简介在实际的工程应用中#xff0c;经常会遇到初始结果噪声太多的问题#xff0c;比如信号强度抖动的太厉害#xff0c;比如视频流中的bbox抖动的太厉害#xff0c;比如光谱信号抖动的太厉害等等#xff0c;这时候就需要一些简单的滑动平均算法。滑动平均其实是一个很…一、简介在实际的工程应用中经常会遇到初始结果噪声太多的问题比如信号强度抖动的太厉害比如视频流中的bbox抖动的太厉害比如光谱信号抖动的太厉害等等这时候就需要一些简单的滑动平均算法。滑动平均其实是一个很朴素的方法但是要与实际结合构造出合适的平滑方式是需要一些思考的。下面我将分别介绍滑动平均法(Moving Average)、指数滑动平均法(Exponential Mean Average)、SG滤波法(Savitzky Golay Filter)。二、滑动平均法简单来说滑动平均法把前后时刻的一共2n1个观测值做平均得到当前时刻的滤波结果。这是一个比较符合直觉的平滑方法在生活中、工作中很经常会用到但是很少去思考这么做的依据是什么下面我就来仔细分析一下其中的原理。对于一个观测序列我们有这样的假设每一次的观测值是带有噪声的而我们期望噪声的均值为0方差为观测值和真实值之间的关系如下 (1)其中 为观测值 为真实值 为噪声。为了降低噪声的影响我们把相邻时刻的观测值相加后平均公式如下 (2) 表示 时刻的滤波结果 表示 时刻的观测值 代表滑动窗口半径。将公式(1)代入公式(2)可以得到 (3)前面说到了我们假设噪声的均值为0所以 为0那么我们得到的结果就是: (4)当观测数据的真实值变化较小时或者变化为线性时可以近似认为 (5)从上面的分析过程我们可以看到当滑动窗口内的真实数据变化不大的时候我们可以抑制掉很大一部分噪声滤波结果近似真实值当滑动窗口内的真实值变化较大时这种滤波方式就会损失一部分精确度滤波结果接近真实值的平均期望。所以窗口的大小会对滤波结果有很大影响。窗口越大滤波结果越平滑但会一定程度上偏离真实值窗口越小滤波结果越接近观测值但噪声偏大。滑动平均法还有一个升级版本也就是加权滑动平均法。实际场景中每个观测值的重要程度不同忽略每个观测值的置信度直接平均不能得到精确的结果所以就需要给观测值加权。加权滑动平均法的公式如下 (6) 为 时刻的权重。(6)式表示的是把每个观测值乘以权重后再平均。这种方法适用于观测值本身带有置信度的情况。注意这里有一个小问题如果置信度的取值范围是0到1之间那么加权之后计算得到的观测值往往小于真实值我来解释一下为什么。首先我们假设观测值和真实值的均值是相等的也就是 (7)当我们把观测值乘以权重了之后观测值和真实值的均值就不相等了因为真实值的权重均值为1而观测值的权重均值为 是小于等于1的最终的预测值也是小于等于真实值的而且大概率是小于。所以我们需要对(6)式增加一个修正 (8)这样得到的预测值就会更加合理了。小结滑动平均法使用的前提是噪声的均值为0真实值变化不大或线性变化的场景。如果真实值有较高频率的非线性突变的话滑动平均法的效果就不够好了。同时滑动平均法的窗口选取很重要需要根据具体数据来选择。如果需要使用在线版本的滑动平均那么就要把窗口前移也就是把当前时刻的前n个观测值进行平均但这样得到的结果会明显滞后于当前观测值窗口越大滞后的现象越严重。class MovAvg(object):def __init__(self, window_size7):self.window_size window_sizeself.data_queue []def update(self, data):if len(self.data_queue) self.window_size:del self.data_queue[0]self.data_queue.append(data) return sum(self.data_queue)/len(self.data_queue)鼠标轨迹的滑动平均效果一维数据的滑动平均效果三、指数滑动平均法指数滑动平均法相当于加权滑动平均法的变体主要区别在于指数滑动平均法的权重是固定的、随时间推移呈指数衰减。指数滑动平均法的公式如下 (9) 表示预测值 表示衰减权重通常我们设为固定值0.9 表示观测值这是一个递推公式。前面说了指数滑动平均法的权重是随时间推移呈指数衰减的那么上面的这个递推公式的指数体现在哪里呢我们把(9)式进行延伸 (10)将(9)和(10)两式子联立可得 (11)发现没有在(11)式中 与 的关系是 倍而在(9)式中 与 的关系是 倍呈指数衰减关系。同时在初始时刻有如下关系 (12)根据这一关系和上述的递推公式我们就能够得到整个算法的公式了。由于这种指数衰减的特性指数滑动平均法会比滑动平均法的实时性更强更加接近当前时刻的观测值。在实际场景下如果目标的波动较大时指数滑动平均法会比滑动平均更加接近当前的真实值。那么是不是就说明指数滑动平均法在任意场景下都比滑动平均法更好呢不一定。我们来分析一下指数衰减法的误差项这里为了简便表示设定 同时将(1)式和(12)式代入公式(11)可得到误差项 (13)所以误差项也是呈指数衰减的越接近当前时刻的误差项权重越大。假如在当前的工程场景中误差是固定的分布不受目标的观测值大小影响的话那么指数滑动平均法会更接近真实值假如误差会受目标观测值影响比如我们观测的是一个连续运动的目标中间突然出现了一个偏离很远的观测点那么这个点为误检的概率相当大也就是该观测值的误差比之前其他点的误差要大得多此时指数加权平均法的结果就会波动较大结果就不如滑动平均了。小结当误差不受观测值大小影响的话指数滑动平均比滑动平均好当误差随观测值大小变化时滑动平均比指数滑动平均更好。class ExpMovAvg(object):def __init__(self, decay0.9):self.shadow 0self.decay decayself.first_time Truedef update(self, data):if self.first_time:self.shadow dataself.first_time Falsereturn dataelse:self.shadow self.decay*self.shadow(1-self.decay)*data return self.shadow鼠标轨迹的指数滑动平均效果一维数据的指数滑动平均效果四、SG滤波法SG滤波法(Savitzky Golay Filter)的核心思想也是对窗口内的数据进行加权滤波但是它的加权权重是对给定的高阶多项式进行最小二乘拟合得到。它的优点在于在滤波平滑的同时能够更有效地保留信号的变化信息下面我来介绍一下其原理。我们同样对当前时刻的前后一共2n1个观测值进行滤波用k-1阶多项式对其进行拟合。对于当前时刻的观测值我们用下面的公式进行拟合 (14)同样对于前后时刻(如t-1、t1、t-2、t2等时刻)的预测值我们同样可以用(14)式来计算这样一共得到2n1个式子构成一个矩阵(似乎发不了矩阵我放个图片吧)要使得整个矩阵有解必须满足 2n1k这样我们才能够通过最小二乘法确定参数 、 、 ... 。我们把上面的矩阵简化表示为下面公式 (15)各个参数下标表示它们各自的维度如 表示有k行1列的参数。通过最小二乘法我们可以求得的解为 (16)上标trans表示转置。那么模型的滤波值为 (17)最终可以得到滤波值和观测值之间的关系矩阵 (18)算出了B矩阵我们就能够快速的将观测值转换为滤波值了。小结SG滤波法对于数据的观测信息保持的更好在一些注重数据变化的场合会比较适用。class SavGol(object):def __init__(self, window_size11, rank2):assert window_size % 2 1self.window_size window_sizeself.rank rankself.size int((self.window_size - 1) / 2)self.mm self.create_matrix(self.size)self.data_seq []def create_matrix(self, size):line_seq np.linspace(-size, size, 2*size1)rank_seqs [line_seq**j for j in range(self.rank)]rank_seqs np.mat(rank_seqs)kernel (rank_seqs.T * (rank_seqs * rank_seqs.T).I) * rank_seqsmm kernel[self.size].Treturn mmdef update(self, data):self.data_seq.append(data)if len(self.data_seq) self.window_size:del self.data_seq[0]padded_data self.data_seq.copy()if len(padded_data) self.window_size:left int((self.window_size-len(padded_data))/2)right self.window_size-len(padded_data)-leftfor i in range(left):padded_data.insert(0, padded_data[0])for i in range(right):padded_data.insert(len(padded_data), padded_data[len(padded_data)-1]) return (np.mat(padded_data)*self.mm).item()鼠标轨迹的SG滤波效果一维数据的SG滤波效果附录本文图片制作的相关代码。import cv2import numpy as npimport matplotlib.pyplot as pltimport imageio# 一维数据滤波ma, ema, sg MovAvg(), ExpMovAvg(), SavGol()data_list, data_ma, data_ema, data_sg [], [], [], []for i in range(200):data inp.random.randint(-50, 50)data_list.append(data)data_ma.append(ma.update(data))data_ema.append(ema.update(data))data_sg.append(sg.update(data))plt.plot(data_list, labelraw)plt.plot(data_ma, labelma)plt.plot(data_ema, labelema)plt.plot(data_sg, labelsg)plt.legend()plt.show()# 鼠标轨迹滤波ma_x, ma_y MovAvg(), MovAvg()ema_x, ema_y ExpMovAvg(), ExpMovAvg()sg_x, sg_y SavGol(), SavGol()def draw_circle(event, x, y, flags, param):if event cv2.EVENT_MOUSEMOVE:sx np.random.randint(-50, 51)sy np.random.randint(-50, 51)cv2.circle(show, (xsx, ysy), 5, (255, 255, 255), -1)x, y ma_x.update(xsx), ma_y.update(ysy)cv2.circle(show, (int(x), int(y)), 5, (0, 0, 255), -1)x, y ema_x.update(xsx), ema_y.update(ysy)cv2.circle(show, (int(x), int(y)), 5, (0, 255, 0), -1)x, y sg_x.update(xsx), sg_y.update(ysy)cv2.circle(show, (int(x), int(y)), 5, (255, 0, 0), -1)show np.zeros((1024, 1024, 3), np.uint8)cv2.namedWindow(image)buff []while True:cv2.setMouseCallback(image, draw_circle)cv2.imshow(image, show)save cv2.resize(show, (512, 512))save cv2.cvtColor(save, cv2.COLOR_BGR2RGB)buff.append(save)if cv2.waitKey(100) ord(q):breakcv2.destroyAllWindows()imageio.mimwrite(test.gif, buff, GIF, duration0.1)
http://www.huolong8.cn/news/279356/

相关文章:

  • 自己的网站是什么样子的wordpress图片本地化插件
  • cf小号自助购买网站seo网站编辑
  • 建设部网站 干部学院 一级注册建筑师培训 2014年绵阳网站建设培训学校
  • 温江建设局备案网站Sierra wordpress
  • 深圳网站建设费用多少钱微信小程序与wordpress
  • 网站建设与运营 市场分析电子商务网页设计与网站建设
  • 网站检测报告那里做wordpress邮件验证评论
  • 网站开发研究生公司做网站的目的
  • 网站建设有云端吗网站分站开发计划书
  • 网站建设 中软如何推广自己的外贸网站
  • wordpress应用市场主体seo描述是写什么
  • 做网站合肥响应式企业官网
  • 简述建设iis网站的基本过程6深圳品牌包装设计公司
  • 用什么做网站最好新手怎么开网店
  • 网站建设如何敲图标代码嘉兴市做外贸网站
  • 相亲网站开发与设计报告厦门建设网站首页
  • 青岛网站建设方案服务山西建设厅网站首页
  • 高端品牌建站wordpress getoption
  • 有没有什么做高数的网站鞍山58同城找工作 招聘
  • wordpress发送密码到邮箱优化防疫二十条措施
  • 辽宁建设科技信息网网站怎么做全网小说网站
  • 云南省网站建设收费调查报告论文台州网站注册 公司
  • 传媒的域名做个什么网站惠州百度seo哪里强
  • 网上商城网站开发报告平面设计大师
  • 便捷的网站建设景观网站设计网站
  • 广州网站建设 中网科技网站推广做那个较好呢
  • 广州网站优化指导免备案网站怎么备案域名
  • 网站301重定向 权重转移西安高端网页制作
  • 国际网站推广专员招聘wordpress 8080端口
  • 做电影网站如何不侵权vps怎么做网站