计算机视觉与智能语音处理融合套件初体验(视觉部分)

视觉部分实验

1.图像采集(视频采集)

采集流程

进入/home/openailab/cases/camera/platform/release目录下,用./ninja.sh命令编译平台

进入/home/openailab/cases/camera/case/vision/camera,用./compile.sh命令编译案例,成功编译后会生成一个build文件夹

在/home/openailab/cases/camera/case/vision/camera目录下,用./run.sh运行案例

2.图像处理

图像处理是指对图像进行分析、加工、和处理,使其满足视觉、心理或其他要求的技术。图像处理是信号处理在图像领域上的一个应用。当前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理,也就是借助于数字计算机来处理数字图像。数字图像处理的方法不仅继承了一些基于光学理论的方法,也发展出一些利用数字图像特点的新方法。

直方图均衡化

图像直方图(Image Histogram)是用以表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素数。通常直方图的横坐标是像素的数值,纵坐标是像素的数量。在这种直方图中横坐标的左侧为纯黑、较暗的区域,而右侧为较亮、纯白的区域

直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。这种方法通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布

边缘检测

边缘检测(Edge detection)是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点,或者说亮度变化不连续的点。这种显著变化通常反映了属性的重要事件和变化,主要包括:

  • 深度上的不连续
  • 表面方向不连续
  • 物质属性变化
  • 场景照明变化

边缘检测是图像处理和计算机视觉中,尤其是图像分割和特征检测中的一个研究领域。

平滑滤波

平滑滤波是低频增强的空间域滤波技术。它常用于模糊处理和降低噪声。空间域的平滑滤波一般采用简单平均法进行,就是以邻域内像素点的平均灰度值代替该像素点的值。邻域的大小与平滑的效果直接相关,邻域越大平滑的效果越好,但邻域过大,平滑会使边缘信息损失的越大,从而使输出的图像变得模糊,因此需合理选择邻域的大小。

运行

进入/home/openailab/cases/image_processing/platform/release目录下,用./ninja.sh命令编译平台

3.背景提取

单高斯模型的背景提取

基于单高斯模型的背景提取方法,认为视频中每一帧图像的一个像素点的像素值在时域上符合一个正态分布,若像素与模型中该像素点的高斯分布的均值相差在一定阈值范围内,用来更新模型,并判断为背景;若不是,则判定为前景。单高斯模型的背景提取通过模型中每个像素点的均值和方差的更新来适应场景的变化,以实现背景学习更新的效果。

混合高斯模型的背景提取

单高斯模型认为对一个背景图像,特定像素点的像素的分布满足单峰的高斯分布。但实际生活并不是这么简单,单峰的模型无法完全描述实际例子。如果画面中光线变化的话,这个单峰的高斯分布的中心位置是会改变的,且均值也随之改变。但并没有充分的数据提供,不能说该点像素的分布满足单峰的正态分布。

混合高斯模型是单高斯模型的延伸,其多峰的高斯模型能够更好的拟合实际生活中的现象。混合高斯模型指这个像素点值存在多个中心位置,如来回摆动的树叶,波光粼粼的水面,闪烁的显示器,图像中特征边缘位置的抖动等,这些都会引起某个像素点会在多个中心位置聚集大量的点,每个位置便会产生一个高斯分布。

混合高斯模型的背景建模算法主要由以下三部分组成:

  • 初始化混合高斯模型

    • 对每个像素点建立混合高斯模型,每个像素点用K重高斯分布来表示,通常K取3-5之间。其均值设置为随机值,方差统一设置为同一初始值
  • 更新混合高斯模型


    • 判断前景/背景

进入/home/openailab/cases/bgs/platform/release目录下,用./ninja.sh命令编译平台


进入/home/openailab/cases/bgs/case/vision/bgs/bgs_mog/目录下,用./compile.sh命令编译案例,成功编译后会生成一个build文件夹

在/home/openailab/cases/bgs/case/vision/bgs/bgs_mog/目录下,用./run.sh运行案例

4.视频跟踪

视频跟踪是在相机获取到的画面中持续定位一个或多个目标的处理方法。跟踪是视频分析类算法的关键技术,应用广泛:人机交互,安防监控,视频通讯和压缩,增强现实,交通控制,医疗影像和视频编辑等等。

视频跟踪通过在连续的视频图像序列中估计跟踪目标的位置、形状或所占区域,确定目标的运动速度、方向及轨迹等运动信息,实现对运动目标行为的分析和理解,以便完成更高级的任务。物体移动速度和运动方向的改变会增加这一问题的困难程度。

可以把目标跟踪划分为5项主要的研究内容:

  • 运动模型:如何产生众多的候选样本
    • 运动模型(Motion Model):生成候选样本的速度与质量直接决定了跟踪系统表现的优劣。常用的有两种方法:粒子滤波(Particle Filter)和滑动窗口(Sliding Window)。粒子滤波是一种序贯贝叶斯推断方法,通过递归的方式推断目标的隐含状态。而滑动窗口是一种穷举搜索方法,它列出目标附近的所有可能的样本作为候选样本。
  • 特征提取:利用何种特征表示目标
    • 特征提取(Feature Extractor): 鉴别性的特征表示是目标跟踪的关键之一。常用的特征被分为两种类型:手工设计的特征(Hand-crafted feature)和深度特征(Deep feature)。常用的手工设计的特征有灰度特征(Gray),方向梯度直方图(HOG),哈尔特征(Haar-like),尺度不变特征(SIFT)等。与人为设计的特征不同,深度特征是通过大量的训练样本学习出来的特征,它比手工设计的特征更具有鉴别性。因此,利用深度特征的跟踪方法通常很轻松就能获得一个不错的效果。
  • 观测模型:如何为众多候选样本进行评分
    • 观测模型(Observation Model):大多数的跟踪方法主要集中在这一块的设计上。根据不同的思路,观测模型可分为两类:生成式模型(Generative Model)和判别式模型(Discriminative Model). 生成式模型通常寻找与目标模板最相似的候选作为跟踪结果,这一过程可以视为模板匹配。常用的理论方法包括:子空间,稀疏表示,字典学习等。而判别式模型通过训练一个分类器去区分目标与背景,选择置信度最高的候选样本作为预测结果。判别式方法已经成为目标跟踪中的主流方法,因为有大量的机器学习方法可以利用。常用的理论方法包括:逻辑回归,岭回归,支持向量机,多示例学习,相关滤波等。
  • 模型更新:如何更新观测模型使其适应目标的变化
    • 模型更新(Model Update): 模型更新主要是更新观测模型,以适应目标表观的变化,防止跟踪过程发生漂移。模型更新没有一个统一的标准,通常认为目标的表观连续变化,所以常常会每一帧都更新一次模型。但也有人认为目标过去的表观对跟踪很重要,连续更新可能会丢失过去的表观信息,引入过多的噪音,因此利用长短期更新相结合的方式来解决这一问题。
  • 集成方法:如何融合多个决策获得一个更优的决策结果
    • 集成方法(Ensemble Method): 集成方法有利于提高模型的预测精度,也常常被视为一种提高跟踪准确率的有效手段。可以把集成方法笼统的划分为两类:在多个预测结果中选一个最好的,或是利用所有的预测加权平均。

安装跟踪的目标的数量,可以将视频跟踪分为单目标跟踪多目标跟踪

  • 单目标跟踪(Single Object Tracking,SOT)主要是针对复杂的外观模型或运动模式,解决具有挑战性的尺度变化,旋转,光照变化,遮挡等。
  • 多目标跟踪(Multiple Object Tracking,MOT)还多了两个任务:
    • 确定目标的数量(会随时间变化)
    • 维持目标ID。

多目标跟踪中存在的问题有:

  1. 频繁遮挡
  2. 轨迹初始化与终止
  3. 相似的外观
  4. 多目标间的相互影响

首先进入到/home/openailab/cases/tracking/case/vision/tracking目录下

然后运行./compile.sh进行编译,再运行./run.sh运行程序。

结语

实验到此就结束了,实验的箱子拥有很多的功能,由于种种原因,至今依然没有挖掘完,通过这次实验我也接触了很多一只向往的东西,实现了许多功能,希望未来的某一天,还能有机会继续学习,在计算机视觉这一领域有所建树

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2022年5月21日
下一篇 2022年5月21日

相关推荐