C++ - 如何实现 Mask R-CNN?

C++ - How to implement a Mask R-CNN?

我需要在 C++ 中实现自定义 Mask-RCNN 以对自定义数据集执行实例分割。由于我是初学者,只知道理论,但我真的不知道如何应用。

你能给我一些开始我的项目的指南吗?谢谢。

对于初学者来说,用 C++ 进行机器学习将是一个很高的门槛。

几乎所有的包都使用 python 作为 API。 Tensorflow 允许在 C++ 中 运行 连接会话 API,但您需要在 python 中构建图形。处理tensorflow的构建会很痛苦。

从它的github得到Mask-RCNN,运行它在python,理解它。检查许可证是否符合您的需要。然后,假设您的项目是在 C++ 中,复习 C++ 和 python 之间的绑定。让您的 C++ 调用导入 Mask-RCNN 的 python 层。

任何其他方法都会给初学者带来很大的障碍。

C++ 非常适合制作 ML 应用程序。

您需要学习的一些概念是

  • 矩阵布局(行为主,列为主)
  • 向量
  • 矩阵向量乘法
  • 矩阵矩阵乘法

最重要的是缓存局部性。减少缓存未命中,尤其是在矩阵乘法(gemm 和 gemv)中,将是网络速度的决定性因素。使用缓存友好的朴素矩阵乘法(n^3 加载)将为您提供最佳结果。