APP下载

Mac系统的tfrecords图片数据集研究

2021-04-12长沙民政职业技术学院谭刚林

电子世界 2021年5期
关键词:苹果电脑图像系统

长沙民政职业技术学院 谭刚林

本论文对基于Mac OS操作系统的TFRecords图片数据集制作进行了有效地探索。从数据采集、图片预处理到生成TFRecords数据的整个TFRecords图片数据集的制作流程步骤都进行了详细介绍,为基于Mac OS操作系统进行Tensorflow开发的研究人员提供了有效的参考途径。

Mac操作系统是基于Unix开发而来,对python支持相当友好,但最大的缺点就是非常封闭,各种沙盒安全机制,导致除了官方的显卡,对其它显卡支持相当地差,基于此原因,谷歌官方现在放弃了Tensorflow GPU版本对Mac的后续支持。

苹果电脑在市场上占有6%左右市场份额(各个评测机构发布的数据不一样),在Mac系统上进行Tensorflow开发是开发人员的选项之一。数据集是使用Tensorflow进行机器学习的“粮食”,谷歌官方推荐的数据集格式为TFRecords格式。笔者完成了在Mac OS Catalina(10.15.7)上进行tfrecords图片数据集的制作,对在Mac系统上进行Tensorflow开发进行了有效地探索。

1 开发平台

1.1 MAC OS

MAC OS是基于UNIX的苹果电脑专用操作系统,由于苹果公司自己生产MAC的大部分硬件,MAC所用的操作系统是它自行开发的,系统的稳定性高、病毒攻击少于windows系统。根据市场调研机构Canalys发布的数据显示,2020年第一季度苹果电脑出货量占全球PC出货量的6%,如图1所示。

本论文所用操作系统平台为MAC OS Catalin(10.15.7)。

1.2 Miniconda

Conda是一种通用包管理系统,旨在构建和管理任何语言和任何类型的软件。环境管理允许用户方便地安装不同版本的python并可以快速切换。Miniconda是简化版的Conda,只包含最基本的python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种更优选择。只包含最基本的东西,其他的库需要用户后期安装。本论文的开发环境通过Miniconda3来进行管理。

1.3 python

Python是结合了解释性、编译性、互动性和面向对象的脚本语言。具有易学习、易阅读、易维护,标准库丰富,可跨平台使用和系统兼容性好等特点。Python 2.7被确定为最后一个Python 2.x版本,目前python最新版本为python3.8,本论文的研究是基于python3.8进行开发。

图1 2020年第一季度电脑出货量

1.4 TensorFlow

TensorFlow是谷歌开源的一款深度学习框架,2015年谷歌首次发布了TensorFlow1,2019年谷歌对TensorFlow进行了重大版本更新,发布了TensorFlow2。新的版本TensorFlow2推荐使用tf.keras、tf.data等高级库,采用Eager模式搭建原型,tf.data处理数据,tf.feature_column提取特征,tf.keras搭建模型,tf.saved_model打包模型。TensorFlow2相对TensorFlow1来说,对用户更友好,更容易入门。TensorFlow2已被众多企业与初创公司广泛用于自动化工作任务和开发新系统。

图2 摄像头采集到的图片

2 图片数据采集

图片拍摄采用威视达康的C7837WIP无线网络摄像头,图像传感器为1/4in,720p逐行扫描方式。使用C7837WIP采集黑色标志线图片,采集到的图片如图2所示。图片大小为,png格式的彩色图片。共采集500张图片,其中400张图片存放在train文件夹中作为训练集,100张图片存放在test文件夹中作为测试集。

3 图片前期处理

3.1 图片裁剪

摄像头采集到图片过大,若直接将此类图片输入到机器学习网络进行学习,导致计算量过大。先对图像进行裁剪,裁剪掉周围无关的图像。根据图片的特点将的图像裁剪成的图像(如图3所示),方便后期机器学习。图片裁剪python程序流程如图4所求。mac系统中的文件夹会有一些隐藏文件,在读入图片之前要先判断文件是否为图片文件,只能对图片文件进行裁剪操作,否则python程序运行时会报属性错误。

图3 裁剪后的图片

3.2 图片缩小

对于裁剪后的图片喂入机器学习网络时数据量还是过大,对裁剪后的图片再缩小4倍成的图片。在python中导入opencv-python模块,利用cv2.resize(image,size,inte rpolation=cv2.INTER_AREA)函数对图片进入缩小操作。缩小后的图片如图5所求。

图4 图片裁剪流程图

图5 缩小4倍后的图片

图6 生成TFRecords数据流程图

4 生成TFRecords数据

TFRecords是TensorFlow中常用的二进制数据打包格式。将训练数据集和测试数据集分别打包成TFRecords文件,配合TF中相关的DataLoader / Transformer等API实现数据的加载和处理,便于高效地训练和评估模型。TFRecords内部使用了“Protocol Buffer”二进制数据编码方案,帮助开发人员合理地存储数据,程序运行时,只占用一个内存块,只需一次性加载一个二进制文件的方式即可,对大型训练数据很友好。

生成TFRecords数据程序流程如图6所示。训练集和测试集要分开运行,最终生成2个.tfrecords文件。

5 结论

通过实验,发现在Mac系统Catalina(10.15.7)上制作TFRecords图片集是完全可行的。在运行速度和稳定性上相对Windows系统来说更稳定。

猜你喜欢

苹果电脑图像系统
改进的LapSRN遥感图像超分辨重建
Smartflower POP 一体式光伏系统
WJ-700无人机系统
有趣的图像诗
基于PowerPC+FPGA显示系统
苹果电脑诞生记
Apple1
连通与提升系统的最后一块拼图 Audiolab 傲立 M-DAC mini
遥感图像几何纠正中GCP选取
趣味数独等4则