转自于
OpenCV入门及应用案例:手把手教你做DNN图像分类 - 云+社区 - 腾讯云 (tencent.com)
侵删!
感谢原作者!
自己训练了一个网络,发现opencv中无法使用,然后看到了这篇文章,觉得很nice,欢迎大佬给出如何在opencv中使用不支持的网络,有类似教程的朋友可以留言给我看看,谢谢!
OpenCV深度学习模块只提供网络推理功能,不支持网络训练。像所有的推理框架一样,加载和运行网络模型是基本的功能。深度学习模块支持TensorFlow、Caffe、Torch、DarkNet、ONNX和OpenVINO格式的网络模型,用户无须考虑原格式的差异。在加载过程中,各种格式的模型被转换成统一的内部网络结构。
深度学习模块支持所有的基本网络层类型和子结构,包括AbsVal、AveragePooling、BatchNormalization、Concatenation、Convolution (with DILATION)、Crop、DetectionOutput、Dropout、Eltwise、Flatten、FullConvolution、FullyConnected、LRN、LSTM、MaxPooling、MaxUnpooling、MVN、NormalizeBBox、Padding、Permute、Power、PReLU、PriorBox、Relu、RNN、Scale、Shift、Sigmoid、Slice、Softmax、Split和Tanh。
如果需要的层类型不在这个支持列表之内,则可以通过脚注中的申请链接来请求新的层类型的支持,OpenCV的开发者们有可能会在将来加入对该层类型的支持。读者也可以自己动手实现新的层类型,并把代码反馈回社区,参与到深度学习模块的开发中来。
除了实现基本的层类型,支持常见的网络架构也很重要,经过严格测试,深度学习模块支持的网络架构如下所示。
- 图像分类网络
- Caffe:AlexNet、GoogLeNet、VGG、ResNet、SqueezeNet、DenseNet、ShuffleNet
- TensorFlow:Inception、MobileNet
- Darknet:darknet-imagenet
- ONNX:AlexNet、GoogleNet、CaffeNet、RCNN_ILSVRC13、ZFNet512、VGG16、VGG16_bn、ResNet-18v1、ResNet-50v1、CNN Mnist、MobileNetv2、LResNet100E-IR、Emotion FERPlus、Squeezenet、DenseNet121、Inception-v1/v2、ShuffleNet
- 对象检测网络
- Caffe:SSD、VGG、MobileNet-SSD、Faster-RCNN、R-FCN、OpenCV face detector
- TensorFlow:SSD、Faster-RCNN、Mask-RCNN、EAST
- Darknet:YOLOv2、Tiny YOLO、YOLOv3(注:opencv4.5已经支持YOLOv4)
- ONNX:TinyYOLOv2
- 语义分割网络:FCN(Caffe)、ENet(Torch)、ResNet101_DUC_HDC(ONNX)
- 姿势估计网络:openpose(Caffe)
- 图像处理网络:Colorization(Caffe)、Fast-Neural-Style(Torch)
- 人脸识别网络:openface(Torch)