Android环境下实时测试TFLite模型

设置

测试了两个不同的设备——三星SM-A710FD和华为MediaPad T3 10——两者都运行Android版本7.0。一个建议是:不要在房间里测试应用程序,因为任何发射或反射光的东西都会被检测为闪电。这是训练模型的目的,对吧?数据集中大约300张图片都显示了夜晚闪电的景象。这意味着黑色背景和明亮的物体——被检测为闪电。当将手机或平板的摄像头指向电脑屏幕或天花板上的光源时,也会发生同样的事情。建议在户外测试应用程序,最好是在夜晚,以街灯作为闪电的替代品。用iPhone做了测试——在iPhone上打开一张闪电图片,然后用运行应用程序的Android设备对准屏幕。是的:应用程序检测到了闪电!

注意,目标(摄像头指向)应该是突然的,以模仿真实闪电的突然出现。

手动测试

为了手动测试,将Android手机、华为平板和iPhone(装载了闪电图片)带到了阳台上。那是一个美丽、晴朗的夜晚。然后在Android设备上运行了应用程序。看看结果的视频和截图。

华为平板也是如此——查看视频和截图。

神奇,对吧?正如之前提到的,任何发射或反射的光都会被检测为闪电。要使模型工作得更准确,可以对其进行更多的训练。用大约300张图片进行了训练。试试用更大的数据集,比如说1000张图片。

在下一篇文章中,将讨论项目结果和“经验教训”——所遵循的方法如何用于类似的检测任务。敬请期待!

代码示例

以下是在Android设备上进行实时测试时可能用到的代码示例。

public void detectLightning() { // 初始化模型 tfliteModel = new TFLiteModel(); // 加载模型 tfliteModel.loadModelFromAsset(this, "model.tflite"); // 准备输入数据 inputData = new float[inputSize]; // 检测闪电 tfliteModel.runModel(inputData, outputData); // 分析输出数据 if (outputData[0] > detectionThreshold) { // 发现闪电 detectLightningCallback.onDetected(); } }

这段代码展示了如何在Android应用程序中使用TFLite模型进行实时检测。首先,初始化并加载模型,然后准备输入数据。模型运行后,分析输出数据,如果检测到闪电,就调用回调函数。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485