java - Tensorflow 无法正常工作,不知道出了什么问题
问题描述
我使用 Android Studio 进行编码,在 tensorflowObjectDetection 示例中,我注释掉@Disable
并添加了我们的 Vuforia 密钥,当我运行程序时它就崩溃了。我已将其缩小到以下代码:
private void initTfod() {
int tfodMonitorViewId = hardwareMap.appContext.getResources().getIdentifier(
"tfodMonitorViewId", "id", hardwareMap.appContext.getPackageName());
TFObjectDetector.Parameters tfodParameters = new TFObjectDetector.Parameters(tfodMonitorViewId);
tfod = ClassFactory.getInstance().createTFObjectDetector(tfodParameters, vuforia);
tfod.loadModelFromAsset(TFOD_MODEL_ASSET, LABEL_GOLD_MINERAL, LABEL_SILVER_MINERAL);
}
通过注释掉底部的两行,它不会崩溃,但它不明白为什么。
解决方案
弄清楚了。vuforia 需要更多时间来初始化,所以我们这样做了:
robot.initVuforia(hardwareMap);
while(robot.vuforiaLoaded == false && !isStopRequested()){
}
if (ClassFactory.getInstance().canCreateTFObjectDetector()) {
robot.initTfod(hardwareMap);
} else {
telemetry.addData("Sorry!", "This device is not compatible with TFOD");
}
推荐阅读
- javascript - 如何在 JavaSript 中的 3 个类之间切换?
- python - pySpark:如何在数据框中的 arrayType 列中获取 structType 中的所有元素名称?
- mfc - 使用CMFCPropertyGridCtrl,出现:派生类中的OnDestroy或PostNcDestroy将不会被调用
- java - Java Files.walk遇到异常错误后能否继续执行
- python - Pandas 将列熔化为行
- php - 本地主机上 Laravel 8 中的存储链接问题
- r - 在 R 中切换管道中 paste() 的顺序
- php - 如何防止未定义的偏移量:php 中的 1 错误异常
- jupyter-notebook - 终端中的`jupyter-notebook`和`jupyter notebook`有什么区别?
- java - 如何在布尔值中使用方法的结果?(在 Java 中)