我有一个关于findContoursOpenCV 中实现的方法的算法效率的问题。假设我有一段代码或多或少看起来像这样(在 Python 3.6 中,但在 C++ 中看起来几乎相同):
# ... Some image processing code ...\n_, contour, _ = cv2.findContours(img_mtx_binary, \n cv2.RETR_TREE, \n cv2.CHAIN_APPROX_NONE)\n# ... More image processing code ...\nRun Code Online (Sandbox Code Playgroud)\n\n其中img_mtx_binary可以是 Numpy 矩阵或 C++ Mat 对象,其中包含二进制 0 或 255 图像,轮廓是建立的轮廓的列表。图像大小为NxM。
\n\n用Big O表示法实现的算法的效率(或效率范围)是多少?我发现它使用了 Suzuki 算法[1],但是在官方论文[2]中我找不到这方面的明确信息。
\n\n一切顺利,
\n\n米\xc5\x82osz
\n我使用 Python 3.7.4 和 TensorFlow 2.0 和 Keras 2.2.4-tf 来训练我自己的 CNN 模型。一切顺利。我可以使用例如model.save(my_model),然后在其他Python 脚本中使用它。当我想在 OpenCV 中使用经过训练的模型及其 C++ 中的 DNN 模块时出现问题。cv::dnn:readNetFromTensorflow(model.pb, model.pbtxt),你可以看到两个参数,但我无法获得第二个 .pbtxt 文件。所以我决定使用 .onnx 格式,因为它的灵活性。问题是现有的库 keras2onnx 只采用 TensorFlow 1.* 的模型,我想避免使用它。转换它的代码示例如下所示:
import tensorflow as tf
import onnx
import keras2onnx
model = tf.keras.models.load_model(my_model_folder_path)
onnx_model = keras2onnx.convert_keras(model, model.name)
onnx.save_model(onnx_model, model_name_onnx)
Run Code Online (Sandbox Code Playgroud)
是否有其他方法可以将此类模型转换为 onnx 格式?