<p>据我所知,你不能在OpenCV上训练/建立自己的网络。您可以使用OpenCV加载预先训练的模型并对一组图像执行检测。在</p>
<p>为了创建一个新模型,您可以使用caffe、torch或tensorflow框架,并在OpenCV中使用它来执行检测。在</p>
<p>要执行检测,您需要执行以下操作:</p>
<ul>
<li>首先,确保已经用<code>contrib</code>模块编译了OpenCV。如果您不简单地在您的终端上输入以下内容:<code>pip install opencv-contrib-python</code>。在</li>
<li>首先确保您有<code>cv2.dnn</code>。如果不这样做,则需要更新OpenCV的版本。在</li>
<li>现在您可以从以下框架中选择模型caffe、tensorflow、darkNet和torch:
<ul>
<li><code>readNetFromCaffe</code></li>
<li><code>readNetFromDarknet</code></li>
<li><code>readNetFromTensorflow</code></li>
<li><code>readNetFromTorch</code></li>
</ul></li>
<li>选择框架后,选择一个预先训练的模型。您可以从<a href="https://github.com/BVLC/caffe/wiki/Model-Zoo" rel="nofollow noreferrer">HERE</a>获得预先训练的caffe模型,从<a href="https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md" rel="nofollow noreferrer">HERE</a>获得张量流模型。在github上好好搜索一下,你会发现更多的模型。在</li>
</ul>
<p>在阅读了<a href="https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and-opencv/" rel="nofollow noreferrer">this blogpost by Adrian</a>之后,我遇到了<code>dnn</code>模块。在</p>
<p>为了重新迭代,您可以在OpenCV上使用预先训练的模型执行检测,但不能创建新的模型。在</p>
<h3>如何运行预先培训的模型?</h3>
<ol>
<li><p><strong>caffe</strong>:<code>model= cv2.dnn.readNetFromCaffe(ResNet.prototxt.txt, ResNet.caffemodel)</code>,其中<code>prototxt.txt</code>文件包含体系结构,另一个文件包含模型权重。</p></li>
<li><p><strong>tensorflow</strong>:<code>model = cv2.dnn.readNetFromCaffe(ResNet.pb, ResNet.pbtxt)</code>,其中<code>.pb</code>文件包含network架构,<code>.pbtxt</code>包含模型权重。</p></li>
</ol>
<p>有关详细信息,请参阅链接。在</p>