全文总字数:4396字
1. 研究目的与意义、国内外研究现状(文献综述)
课题意义和应用前景:
过去,大多数的个人相册管理应用程序和照片分享网站仍然使用文本信息对照片进行检索。当所管理照片的数量有限以及需要访问这些庞大图像资源库的用户很少时,这种基于文字的检索方法还很简单易行。然而近些年来,手机相机的普及使得每个手机用户都产生了成百上千的数字照片。基于目前最大的照片存取和共享网站 flickr 的一个统计结果,到 2017年底,该网站一共存储了 150 亿张以上的照片。因此,越来越多的人发现自己拍摄了上千张照片,然而他们的相片管理工具,却功能不完全,也不能很好的对这些照片进行管理。人们觉得在如此庞大数量的照片中寻找自己需要的照片是一件十分繁琐的事情。所以,制定高效可行的方法来帮助用户检索、浏览或者自动标注他们的相册变得越来越重要。
2. 研究的基本内容和问题
研究目标:
在android平台完成一个可以实现识别,分类,检索等功能手机相册管理的app。
(1)拍摄照片,记录照片的时间和地点;
3. 研究的方法与方案
研究方法:
本次毕设的系统整体框架如下:
用户拍摄照片后,通过系统后台自行标注或用户标注的形式进行分类并且保存,用户可以在相册中查看已经分类的照片或者检索指定的照片。
| 使用的方法 | 解决的问题 | 采用的技术 |
| 背景信息生成器(信息记录) | 记录时间、位置、活动数据 | Exif格式下的图片信息保存 |
| 图像类别检测器(机器学习) | 识别室内/户外,人/非人 | 采用TensorFlow下的训练模型进行识别 |
| 面部识别模块(人脸识别) | 人脸检测和人脸识别 | 基于OpenCV组件的人脸识别 |
技术路线:
实验方案:
-
图像分类训练
环境:TensorFlow
数据来源:网上下载和同学老师拍摄的大量风景和实物照片。
-
人脸识别训练
环境:OpenCV视觉库
数据来源:相机拍摄。
可行性分析:
(1)机器学习下的图像分类:
Google 表示 Lite 版本 TensorFlow 是 TensorFlow Mobile 的一个延伸版本。尽管是一个轻量级版本,依然是在智能手机和嵌入式设备上部署深度学习的一大动作。此前,通过TensorFlow Mobile API,TensorFlow已经支持手机上的模型嵌入式部署。TensorFlow Lite应该被视为TensorFlow Mobile的升级版。
TensorFlow Lite可以与Android 8.1中发布的神经网络API完美配合,即便在没有硬件加速时也能调用CPU处理,确保模型在不同设备上的运行。 而Android端版本演进的控制权是掌握在谷歌手中的,从长期看,TensorFlow Lite会得到Android系统层面上的支持。
本项目主要依靠TensorFlow下训练的机器学习的模型进行图像分类,目前现有的模型和实验使得这一技术变得相对容易实现。
(2)基于OpenCV的人脸识别实现:
首先在工程中导入OpenCV运行库,加载OpenCV中自带的Haar人脸检测器,然后调用手机内置摄像头,获取一帧静态图片或者动态视频流,导入Mat(基本图像容器)中,再从回调的Mat中检测到符合人脸特征的数据,截取人脸部分,使用cvtColor方法进行人脸置灰,通过人脸的灰度化提高识别的准确度。其次,将置灰后的人脸图片进行直方图均衡化处理, 提取并保存Mat容器中的人脸特征值。最后,调用多尺度检测函数实现人脸检测功能。
4. 研究创新点
将机器学习和人脸识别技术应用到个人相册管理方面,并将其做成手机的APP,实现个人手机相册的高效可行的管理和标注,便于手机用户更为方便和安全地管理个人相册。
5. 研究计划与进展
时间计划:
1月5日至1月20日,学习安卓开发,熟练学会使用sdk开发,初步搭建安卓应用框架。
1月21日至2月3日,完成背景信息生成器,和拍照功能,在拍照时保存图像的时间地点信息等。
