问题标签 [edge-tpu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
31 浏览

tensorflow - Is it possible to bias the training of an object detection model towards classification in tensorflow ModelMaker?

I'm using Tensorflow 2 Model Maker to perform transfer training of EfficientDet-Lite (ultimately to run on a Coral EdgeTPU) and I care much more about the classification output and much less about the precision of the bounding boxes. Is there a way to modify some training parameters to improve the accuracy of the classes at the expense of the accuracy of the bounding boxes? Or does this not make sense?

0 投票
1 回答
421 浏览

python - 是否有 cv2.resize() 函数的替代方法可以更快地放大图像?

问题

我想在我的应用程序中以 60 FPS 的速度全屏显示图像(1920 x 1080),但我实际得到的接近 15 FPS。

我试过的

这是我能够获得的最简化的代码版本,它仍然会产生我上面描述的问题。

基本上,代码所做的是(1)创建一个线程,用于通过 cv2.VideoCapture() 以 640 x 360 分辨率从我的 Raspberry Pi 4 PiCamera 捕获视频流,(2)然后,创建另一个执行对象检测的线程这些视频流图像并输出带注释的图像,(3)最后,使用 cv2.resize() 将该图像的大小调整为全屏 (1920 x 1080),然后通过主线程中的 Pygame blit() 函数显示。

将最终输出分辨率更改为 640 x 360 与 1920 x 1080 相比,将 FPS 提高到 40 左右;但是,我希望生成的图像全屏显示,而不是 640 x 360。

我的研究

在 OpenCV Python 中更快地调整图像大小描述了一个类似的问题,但我相信我的问题有所不同,因为我的任务处于一个 while 循环中,该循环旨在无限期地运行直到关闭。

问题

所以我的基本问题是,有没有一种替代方法可以用来拍摄最初的小图像(640 x 360),对其执行对象检测,并将其调整为更大(1920 x 1080)以显示全屏,同时实现接近的 FPS 60?

0 投票
1 回答
316 浏览

python - tflite量化的mobilenet v2分类器不起作用

我的目标是将 PyTorch 模型转换为可用于在 Edge TPU 上进行推理的量化 tflite 模型。

我能够将一个相当复杂的深度估计模型从 PyTorch 转换为 tflite,并在 Edge TPU 上成功运行它。但由于并非所有操作都受支持,因此推理速度非常慢(>800 毫秒)。

深度估计

因为我想要一个完全在 TPU 上运行的模型,所以我尝试转换我能想到的最简单的模型,即 MobilenetV2 分类模型。但是在运行量化模型时,我得到了奇怪的不准确结果。

PyTorch TFLite
萨摩耶:0.8303 导弹:0.184565
博美犬:0.06989 库瓦兹:0.184565
keeshond: 0.01296 佛塔:0.184565
牧羊犬:0.0108 萨摩耶:0.184565
大比利牛斯山脉:0.00989 北极狐:0.184565

这是由将模型从 float32 量化到 uint8 引起的,还是我做错了什么?如果它是由量化引起的,我该如何缓解呢?corral 的分类示例运行良好,据我所知,它使用相同的模型。

转换过程

PyTorch -> ONNX -> OpenVINO -> TensorFlow -> TensorFlowLite

我编写了自己的代码,将模型从 PyTorch 转换为 ONNX,从 TensorFlow(pd) 转换为 TFlite。对于其他转换步骤,我使用了OpenVINO mo.py 脚本和 openvino2tensorflow 收费,因为 PyTorch 和 TensorFlow 之间的 nchw nhwc 不匹配。

下载

深度估计模型:https ://github.com/AaronZettler/miscellaneous/blob/master/mobilenet_v2_depth_est.pth?raw=true

分类模型:https ://github.com/AaronZettler/miscellaneous/blob/master/mobilenetv2.tflite?raw=true

标签:https ://raw.githubusercontent.com/pytorch/hub/master/imagenet_classes.txt

图片:https ://raw.githubusercontent.com/pytorch/hub/master/images/dog.jpg

代码

此代码不需要运行 Edge TPU,但它确实需要谷歌珊瑚库。如果我对平均值和标准差使用不同的参数,例如 (2.0, 76.0),我会得到 dog.jpg 图像的可靠结果,但如果我尝试对其他内容进行分类,我也会遇到同样的问题。


要在 google colab 上运行 PyTorch 模型,我必须更换

model = torch.hub.load('pytorch/vision:v0.9.0', 'mobilenet_v2', pretrained=True)

model = torchvision.models.mobilenet_v2(pretrained=True)

让它工作。

这是我用来在我的机器上测试 PyTorch 模型的代码。

0 投票
0 回答
21 浏览

python-3.x - 在珊瑚 edgetpu 上运行推理会产生 IndexError: index 10 is out of bounds for axis 0 with size 10

我试图使用他们官方网站上提供的“detect_image.py”示例运行训练后 int8 量化检测模型(通过 tflite 和珊瑚 edgetpu 编译器生成)。

但这会导致以下错误。

0 投票
0 回答
10 浏览

edge-tpu - 如何为自定义数据集重新训练由coral.ai模型提供的tflite?

我想在我的自定义数据集上为珊瑚 ai 提供的 inception v3 重新训练 tflite 模型。提供的 tflite 模型的链接是:https ://www.coral.ai/models/image-classification/ 有没有办法重新训练这个模型?

0 投票
0 回答
37 浏览

raspberry-pi - 训练自定义模型时如何使用edgetpu?

使用 TF2,我正在使用 tensorflow 对象检测 api 训练我的自定义模型

我的训练命令是

问题是我需要使用 edge tpu 在树莓派中运行我的模型,为了转换它,我使用了捕获的命令,但如图所示 Edge TPU 子图数:0 操作总数:155 edge tpu 未使用....我如何使用 edge tpu 在树莓派中使用它?

在此处输入图像描述

0 投票
0 回答
15 浏览

edge-tpu - “Coral USB Accelerator”的最大比特率是多少?

USB 加速器数据表指出“为了获得最佳性能,请使用 USB 3.0 端口”“Coral USB 加速器”的最大比特率是多少?谢谢。

0 投票
1 回答
44 浏览

python - 在 Coral Dev Board 上运行推理时,“IndexError: index 10 is out of bounds for axis 0 with size 10”

我正在尝试在 Coral 开发板上运行量化和 Edge-TPU 编译的 Tensorflow 对象检测模型。

我的代码:

通过“mdt shell”运行它时,会抛出以下错误:

开发板运行 Mendel Linux 并安装了 Python 3.7.3 和 pycoral 2.0.0。

我该怎么做才能成功运行推理?

0 投票
0 回答
17 浏览

tensorflow - 多相机目标检测和计数

我一直在尝试使用多个摄像头检测和计数对象。检测模型运行良好。但是有一种情况,cam1 可以检测到 person1,而 cam2 因为障碍物检测不到。cam2 可以检测到 person2 但 cam1 不能。在这种情况下,到目前为止,我们已经检测到 2 个人。检查两者是同一个人还是不同的人的最佳方法是什么?

我试过直方图分析,但结果不是很好。我不能使用特征提取和匹配,因为它对于边缘设备来说太重了。任何建议将不胜感激。

0 投票
0 回答
11 浏览

edge-tpu - 导入 edgetpu.detection.engine ModuleNotFoundError:没有名为“edg”的模块

我已经根据GoogleCoral https://coral.ai/docs/accelerator/get-started/#2-install-the-pycoral-library成功安装了 EdgeTPU 和 Coral 但不知何故仍然存在错误:没有名为“edgetpu”的模块是的,我也试过这个。sudo apt-get update sudo apt-get install python3-edgetpu... 请看下面的结果。######pycoral结果##############3