没有合适的资源?快使用搜索试试~ 我知道了~
人工智能-图像处理-基于RenderScript的图像处理算法研究与实现.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 151 浏览量
2022-07-03
02:14:40
上传
评论
收藏 1.36MB PDF 举报
温馨提示
试读
47页
人工智能-图像处理-基于RenderScript的图像处理算法研究与实现.pdf
资源推荐
资源详情
资源评论
基于 RenderScript 的图像处理算法研究与实现
2
有率最高的操作系统,仅次于 Android 的 IOS 操作系统的占有率为 12.99%
[8]
。而随着
人们不断的提高对移动设备功能的需求,再加上移动设备本身硬件配置相对较弱,从
而对智能手机操作系统上的图像处理能力有了新的要求。因此,在 Android 智能手机
上研究图像处理算法是很有价值的。
当前,优化 Android 平台上数字图像处理算法的性能主要有两种方法
[9]
:一种是
Google 推出的 RenderScript 框架
[10]
,它主要用于运行高性能 Android 端的密集型计算
任务;另一种则是 Android 在引入 NDK
[11]
(Native Development Kit)之后,Java 层通过
JNI 调用下层的汇编、C/C++代码进行优化,如果同样是 CPU 串行算法,调用 C/C++
代码不会使算法有明显的加速,在移动设备上开发一些复杂的算法,通常情况下通过
编写汇编指令来优化该算法。
如果将 RenderScript 框架运用到智能移动设备的图像处理上,然后进行并行处理,
则会大大提高图像处理算法在移动端实现的运行速度。因此基于 RenderScript 的图像
处理算法的研究对于快速响应用户操作以及智能移动设备的性能评估有着重大的意
义。
§1.2 国内外研究现状与发展趋势
2011 年,谷歌为了解决异构移动计算的问题,发布了 RenderScript 作为 Android3.0
的一部分,并从 Android4.0 版本起开始进行推广
[12]
。而使用 Android 早期版本的移动
产品都会强制 RenderScript 运行在设备的 CPU 上,但是在 Android4.3 以后的版本中,
RenderScript 应用可以在任意闲置的处理器上运行,比如 GPU、CPU 和 DSP 等。在
Android4.4 上,可以直接从原生代码中使用 RenderScript,利用 Android 原生开发工
具包(NDK)中新的 C++API,可以访问与通过框架 API 提供的相同 RenderScript 功能,
包括脚本内联、自定义内核等。
随着 RenderScript 的性能不断的提升,使得图像处理中大量密集型任务在移动端
实现成为了一种可能
[13-14]
。随着智能移动端的功能越来越丰富,人们开始研究
RenderScript 在移动端图像处理中的应用。Qianao Ju 等人针对多核移动设备上采用异
构计算是否节能的问题,通过采用 Android 系统中的六种选择基准测量 RenderScript
来评估移动异构计算
[15]
。尽管最终的结果表明通过使用 RenderScript 计算速度增加了
2 到 18 倍,但是能量消耗增加到了 75%。而最终的结果只是说明了在移动异构计算
方面 RenderScript 大大增加了计算速度,但是对于大部分图像处理中的应用是否也可
以大大提高计算速度,这个还需要进行大量的实验验证。Spencer Davis 等人希望利用
Android 平台上新的语言技术 RenderScript 并行去增加 Blowfish 加密算法的效率
[16]
。
实验结果表明使用 RenderScript 的运行时间效率比原始的加密算法提高了很多:1G
的文件加密使用 RenderScript 提高了 2 倍多的计算速度。而且移动设备的性能越高、
计算的数量越大 RenderScript 的效率越高。图像处理中异构计算的处理很多,如果将
万方数据
第一章 绪 论
3
RenderScript 运用到移动设备图像处理上来,必将为图像处理在速度上带来很大的提
高。
国内学者也在 RenderScript 方面有所研究。2015 年张赫龙为了得到移动设备图像
处理算法应用不同并行技术的加速效果,从图形处理多个应用方面中选取了不同的算
法来进行研究
[9]
。实验结果表明,参与实验的算法中,与 CPU 串行相比,使用
RenderScript 框架加速了 1.1~6.0 倍之间。不同算法的加速比差异较大,RenderScript
对于大图像加速比较稳定。虽然加速比最大提高了 6 倍,但是该学者只是针对图像处
理中简单的高斯模糊、腐蚀、Sobel 边缘检测等算法进行了实验。
到目前为止,国内外可以查阅到的关于 RenderScript 的研究成果非常之少。当然
还有一些研究 RenderScript 的理论知识,比如 2014 年夏国柱研究了 Android Render-
Script 框架在 Java 中的移植
[17]
,将 RenderScript 框架的编写放入与普通的 Java 类和函
数编写等同的地位,使得编程人员能够在进行 client 编写的同一处进行 kernel 编写。
这样便使得编程人员对脚本中 kernel 的编写和其他 Java 代码无差异。但是作者研究
的移植方法缺少规范性。2013 年王伦研究了 Android 操作系统中 RenderScript 开发框
架的分析与应用
[18]
,在论文中主要讲述了 RenderScript 应用程序开发框架的原理、实
现以及应用。
上面是关于 RenderScript 的研究现状,当然除了基于 RenderScript 的图像处理算
法外,还有其他关于移动端图像处理算法的研究与改进。Tim 等人提出了 SURF 算法
与移动硬件不匹配的两种不匹配:数据访问模式和小的高速缓存之间的不匹配;大量
的分支结构与高流水线冒险之间的不匹配
[19]
。为了处理这两种不匹配,他们提出了两
种技术:分块的 SURF 和基于梯度时刻定位任务。最终得到了高的效率和高精确度。
罗亚威等人利用重力感应加速特征点匹配,提出了 GAFD-ORB(Gravity Aligning
Feature Descriptor ORB)算法,此算法为 ORB 的改进
[7]
。它采用了重力信息,将重力
方向作为特征点的主要方向进行运算。简化了原来计算方向角的计算过程,从而减少
了运算时间。严卡等人将重力感应技术应用到了 ORB 算法和 SIFT-FAST 算法中,改
进后的 ORB 算法省去了计算特征点角度和确定特征点主方向,这样便减少了大量的
计算,大大提高了时间的消耗
[6]
。改进后的 SIFT-FAST 算法也得到了同样的效果。
随着智能手机的快速发展,研究移动端实现图像处理算法已经成为了一种趋势。
越来越多的人都在不断的研究基于移动端的图像处理算法实现,如果能够在他们改进
的算法中加入 RenderScript 框架的并行处理,那么这些研究成果在运行时间效率上将
会得到相当大的提高。可是,到目前为止关于 RenderScript 框架的相关资料非常之少,
这样对于研究 RenderScript 框架在图像处理算法中的应用有了非常重要的价值。
§1.3 本文研究内容与结构安排
尽管关于 RenderScript 的研究很少,但是它可以在移动端实现并行处理,这对于
万方数据
基于 RenderScript 的图像处理算法研究与实现
4
图像处理算法来说是一个非常有利的优势。在图像处理中,大部分算法都是对图像中
的每一个像素进行重复密集型计算,而这一部分可以使用 RenderScript 框架进行实现,
这样便会大大提高图像处理算法在移动端的运行速率。搜索发现在现有的关于
RenderScript 的资料中,他们都是对非常简单的算法进行了实现,比如高斯模糊、腐
蚀算法和最简单的边缘检测算法,还有使用在大量可以并行处理的数据计算中。正是
因为这些原因,本文将对相对复杂的图像处理算法进行关于 RenderScript 并行处理的
研究。本文的研究内容可以分为以下几个方面:
首先,对图像处理算法的研究。由于国内外研究现状中关于 RenderScript 框架的
研究只是停留在简单的图像处理算法,比如灰度处理、模糊平滑和腐蚀膨胀等算法上,
所以本文选取了几种图像处理中经常用到的同时相对复杂的算法进行研究,包括形态
学梯度边缘检测算法、Sobel 边缘检测算法、Canny 边缘检测算法以及特征提取算法。
其次,对 Android 中可以优化图像处理算法的技术进行学习与研究。本文分别研
究了 JNI 和 RenderScript 编程框架的原理与实现。对 JNI 方法中注意事项以及实现步
骤进行简单的介绍,同时对 RenderScript 的相关内容做出了比较详细的介绍。
接着,将上面研究的两种技术运用到所选择的几种图像处理算法上。设计优化方
案并在 Android 手机上实现。
最后,本文对所获得的实验结果进行对比分析,得出结论。
除了以上研究的主要内容之外,本文也在 Java 语言和 Android 开发平台 Android
Studio 方面进行了研究与学习,使得整个实验过程顺利进行。
本文一共分为六个章节,章节内容安排大致如下:
第一章,主要介绍了移动设备图像处理算法的研究背景及意义,以及 RenderScript
框架在图像处理中使用的国内外研究现状,同时也介绍了本文的研究内容以及论文结
构安排。
第二章,主要介绍了图像处理算法的原理。分别对形态学梯度边缘检测算法、
Sobel 边缘检测算法、Canny 边缘检测算法以及特征点提取算法的实现原理进行了简
单的阐述。
第三章,对本文研究的关键技术进行概述。分别介绍了本文运用的两种关键技术
JNI 与 RenderScript,主要包括编程中遇到的一些知识、在 Android Studio 中实现的步
骤以及它们的应用。
第四章,图像处理算法的优化方案设计。分别介绍了四种图像处理算法的实现过
程与方法,同时设计了基于 JNI框架的 C语言图像处理算法的方案和基于 RenderScript
的并行处理图像处理算法的优化方案。
第五章 实验结果与分析。介绍了本文的开发环境、实验环境、以及开发平台,
得出了两种方法对应每种算法的实验结果,然后对每种算法的实验结果进行了简单的
分析,最后通过整体分析算法的实验数据得出实验结论。
万方数据
第一章 绪 论
5
第六章,总结与展望。对本文的工作进行了总结,并结合本文遇到的问题提出了
下一步的工作展望。
该项目来源于国家自然科学基金(61367002,41271362);桂林电子科技大学创新团
队资助项目。
万方数据
基于 RenderScript 的图像处理算法研究与实现
6
第二章 图像处理算法的简介
数字图像处理是一门对图像进行获取分析和处理,使其满足人或机器的需求的技
术。可以移植到移动端的图像处理算法,包括高斯模糊、边缘检测、特征点提取等等,
在空间域中,这些算法是以像素为基本单位进行计算的,根据一个算子生成的模板对
整幅图像中每个像素进行大量的循环操作(例如卷积),而这部分内容可以进行并行
处理,比如运用 RenderScript 框架实现,来提高在移动端运行时间效率。本章选取了
几种图像处理中使用广泛的算法进行研究与概述。
§2.1 Sobel 边缘检测算法
Sobel 算子
[20-21]
是一个离散微分算子,它主要用于图像的边缘检测。该算法首先
使用高斯平滑处理图像,然后对图像求一阶导数,就可以得出图像的梯度。在这种算
法中需要对每一个像素点进行重复操作来得出梯度矢量。
Sobel 算子包含两个卷积模板
[22]
,如图 2.1 所示。用图中模板分别与原始图像做
卷积,分别求取两个卷积后的值的绝对值,将两个绝对值的和保存为该像素的值。遍
历整幅图像后则会产生该图像的边缘图像。
-1
0
1
-2
0
2
-1
0
1
1
2
1
0
0
0
-1
-2
-1
图 2.1 Sobel 模板
该算子的模板包含两个 33 的矩阵
和
,分别为水平方的模板和竖直方向的
模板。将
和
分别与图像进行卷积运算,即可分别获得水平方向和竖直方向近似的
一阶导数。如图 2.2 所示,其中 A 为要处理的图像,
和
分别是经过水平方向和垂
直方向模板卷积后的边缘检测图像。
图 2.2 Sobel 卷积计算公式
该算法是以
为中心依据 Sobel模板计算 33邻域的 x 方向和 y方向偏导数,
并对像素的重心位置做了加权,即:
(2-1)
(2-2)
万方数据
剩余46页未读,继续阅读
资源评论
programyp
- 粉丝: 89
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功