![AI源码解读:数字图像处理案例(Python版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/118/44510118/b_44510118.jpg)
3.3.4 模型生成
该测试分两部分:一是移动端(以Android为例)调用摄像头和相册获取数字图片;二是将数字图片转换为数据,输入TensorFlow的模型中,并且获取输出。
1.权限注册
权限注册相关操作步骤如下。
(1)调用摄像头需要注册内容提供器,对数据进行保护。在Android Manifest.xml中注册,相关代码如下:
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P112_24593.jpg?sign=1739437004-4zLrSzDg9khgFmZz6gfGDFkRzYM5KWcC-0-afcce3c03de2b4d24c53ec300403fa7d)
android:name属性值是固定的(若targetSDKversion为29,该属性应为"androidx.core.content.FileProvider"),android:authorities属性的值必须和FileProvider.getUriForFile()方法中的第二个参数一致。
另外,<meta-data>的resource属性需自行创建,右击res目录→New→Directory,创建xml目录;右击xml目录→New→File,创建file_paths.xml文件。修改file_paths.xml文件中的内容,相关代码如下:
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P113_24597.jpg?sign=1739437004-N68pQdPIYbKeOHiplpK1BHfuxDgBPVwi-0-43bf3ba6e974c6eff7bcaf8db1de4a48)
(2)调用摄像头需要访问SD卡的应用关联目录。在Android 4.4系统之前,访问SD卡的应用关联目录要声明权限。为了兼容旧版本系统,需要在AndroidManifest.xml中增加访问SD卡的权限。
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P113_24599.jpg?sign=1739437004-6XHVyYgskzXqwVmgOi4yU3SlPnzie8An-0-2da50e98723e62216581028066f8f88e)
(3)调用手机相册时需要动态申请WRITE_EXTERNAL_STORAGE这个危险权限,该权限表示同时授予程序对SD卡读和写的能力。
(4)不同版本的手机,在处理图片上方法不同。因为Android系统从4.4版本开始,选取相册中的图片不再返回真实的Uri,而是封装过的,因此,如果是4.4版本以上的手机需要对Uri进行解析,调用handleImageOnKitKat()方法处理图片,否则调用handleImageBeforeKitKat()。
2.模型导入及调用
模型导入相关操作步骤如下:
(1)把训练好的.pb文件放入Android项目app/src/main/assets下,若不存在assets目录,右击main→new→Directory,输入assets。
(2)新建类PredictionTF.java,在该类中加载so库,调用TensorFlow模型得到预测结果。
(3)在MainActivity.java中声明模型存放路径,调用PredictionTF类。
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P114_24603.jpg?sign=1739437004-zfloWtVK6fyTsgoVBHAghk96skYqEbSv-0-ce12e9a9549c87f1ed7b63e710ffb31e)
3.相关代码
本部分包括布局文件、模型预测类和主活动类。
1)布局文件
相关代码如下:
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P114_24605.jpg?sign=1739437004-DyN1Cnv7ST6CwbgtoyRR8bXQvwAhdjn8-0-cfb4a0b08d019d390dea5a7dd1f13f69)
该布局文件提供5个控件,3个button,分别是“拍照上传”“从相册获取”“单击输出结果”,1个TextView,显示预测结果,1个ImageView,展示数字图片。
上述代码中android:src="@drawable/test_image"负责设置初始界面的图片显示。将想要显示的名字为test_image的图片放入/res/drawable文件夹中。
2)模型预测类
相关代码如下:
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P115_24608.jpg?sign=1739437004-Ex0gWCfPOI0TbbEJ9f8hgvAVlWE4iRXp-0-27e8648cd39f7ab3338c8eeee2eafaa3)
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P116_24609.jpg?sign=1739437004-a2bwCVzTa3RgE4asLlvIHPqfKLp2LZgF-0-38b4787208fb41d3347fb1ff8e9fcefc)
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P117_24611.jpg?sign=1739437004-aeb1aFP808dzcqY3pYhsjrWP7FoFuTsY-0-ff4b3d5b1bc1e56ed4d1997811727892)
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P118_24887.jpg?sign=1739437004-raJtbO3wG3erA3VpgtO7ardMwui00Va7-0-ab20d3ba956603af68bdec0a3e72d3f8)
3)主活动类
相关代码如下:
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P118_24886.jpg?sign=1739437004-Sa7BPfuhkXafTI7bYYfJFrz5uLpe2Kr7-0-9c144f4a8af253bc821c1176a70fc5cc)
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P119_24613.jpg?sign=1739437004-8V8fqioqb0QLTJ9mVikHUPhwBslYwlrD-0-0fd6cd1ef789e8698bf61fd3542795a4)
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P120_24614.jpg?sign=1739437004-Ymh1T4Ks8QMczY3JCCvZTOaDPOUihFLU-0-31f8b7ecb35ad87dd223d42da62f4238)
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P121_24615.jpg?sign=1739437004-bk0u5u42UZR7s7Lj4as40tHBh4aw2UIP-0-58b8598d59549222a4f4659371535dde)
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P122_24616.jpg?sign=1739437004-RnB2llmdKJYtGim3vdfbmts1fTY93dbF-0-60be24c7a9a89912d5c170e4291024a4)
![](https://epubservercos.yuewen.com/631FC2/23721638301028906/epubprivate/OEBPS/Images/Figure-P123_24617.jpg?sign=1739437004-4TGQ3bLX4bKfJFpuz1iVmnB3XW3Bq0pr-0-717c4896d1c42546f496283bcd4119b4)