使用带有 OpenCV DNN 模块的自定义 SSD Mobilenet 模型没有检测到
No detections using custom SSD Mobilenet model with OpenCV DNN module
我一直在Raspberry Pi4上使用OpenCV的DNN模块,需要冻结推理图(.pb文件)和相应的文本图文件(.pbtxt文件)。
使用 TF1 model zoo and using the tf_text_graph_ssd.py script from OpenCV 中的预训练 ssd_mobilenet_v3_small_coco 生成 pbtxt 文件,此 运行s 在 Raspberry 上成功平均 5 FPS.
然后我想尝试通过仅针对一个 class 训练该模型来加快速度。
在反复思考错误和依赖版本之后,我已经接受了培训。我构建了一个数据集,标记了图像,创建了所有必要的文件。使用ssdlite_mobilenet_v3_small_320x320_coco.config from sample configs, 设置所有路径,将fine-tune-checkpoint指向模型文件夹,设置数量classes 为 1,批量大小为 16.
model_train.py 运行 似乎产生了结果,尽管我不太确定如何解释它们。我已经训练了 100K 步,然后导出了一个冻结的推理图,并再次使用 tf_text_graph_ssd.py 生成了一个 pbtxt 文件。 我 运行 这些在我的 raspberry pi 应用程序上,它没有抛出任何错误,运行s 在 10FPS,但绝对没有检测到任何东西。
所以要么我在训练中做错了,要么在导出或 pbtxt 生成中做错了。不知道从这里去哪里。希望有人能指出我正确的方向。以下是 Tensorboard 输出的一些截图。
损失图表:
精度图:
评估图像选项卡:
回答我自己的问题,因为我确实弄清楚了,它可能会对其他人有所帮助。
我试图使用 export_inference_graph.py 生成的冻结推理图并尝试从中生成文本图。)
事实上我应该使用export_tflite_ssd_graph.py, and then using this frozen inference graph along with tf_text_graph_ssd.py导出冻结的推理图来生成相应的文本图。
完成此操作后,我得到了正确的 pb 和 pbtxt,运行 与 OpenCV 的 DNN 模块完美结合。
我一直在Raspberry Pi4上使用OpenCV的DNN模块,需要冻结推理图(.pb文件)和相应的文本图文件(.pbtxt文件)。
使用 TF1 model zoo and using the tf_text_graph_ssd.py script from OpenCV 中的预训练 ssd_mobilenet_v3_small_coco 生成 pbtxt 文件,此 运行s 在 Raspberry 上成功平均 5 FPS.
然后我想尝试通过仅针对一个 class 训练该模型来加快速度。 在反复思考错误和依赖版本之后,我已经接受了培训。我构建了一个数据集,标记了图像,创建了所有必要的文件。使用ssdlite_mobilenet_v3_small_320x320_coco.config from sample configs, 设置所有路径,将fine-tune-checkpoint指向模型文件夹,设置数量classes 为 1,批量大小为 16.
model_train.py 运行 似乎产生了结果,尽管我不太确定如何解释它们。我已经训练了 100K 步,然后导出了一个冻结的推理图,并再次使用 tf_text_graph_ssd.py 生成了一个 pbtxt 文件。 我 运行 这些在我的 raspberry pi 应用程序上,它没有抛出任何错误,运行s 在 10FPS,但绝对没有检测到任何东西。
所以要么我在训练中做错了,要么在导出或 pbtxt 生成中做错了。不知道从这里去哪里。希望有人能指出我正确的方向。以下是 Tensorboard 输出的一些截图。
损失图表:
精度图:
评估图像选项卡:
回答我自己的问题,因为我确实弄清楚了,它可能会对其他人有所帮助。
我试图使用 export_inference_graph.py 生成的冻结推理图并尝试从中生成文本图。)
事实上我应该使用export_tflite_ssd_graph.py, and then using this frozen inference graph along with tf_text_graph_ssd.py导出冻结的推理图来生成相应的文本图。
完成此操作后,我得到了正确的 pb 和 pbtxt,运行 与 OpenCV 的 DNN 模块完美结合。