【发布时间】:2020-06-03 08:26:24
【问题描述】:
我是 OpenCV 和 Tensorflow 的新手。我使用 Tensorflow 2.0 创建了一个分类器来检测美国手语的 26 个字母。
这是 CNN 代码。
# Designing our CNN
i = Input(shape=(IMAGE_SIZE[0],IMAGE_SIZE[0],3))
x = Conv2D(32, (3, 3), activation='relu', padding='same')(i)
x = BatchNormalization()(x)
x = Conv2D(32, (3, 3), activation='relu', padding='same')(x)
x = BatchNormalization()(x)
x = MaxPooling2D((2, 2))(x)
# x = Dropout(0.2)(x)
x = Conv2D(64, (3, 3), activation='relu', padding='same')(x)
x = BatchNormalization()(x)
x = Conv2D(64, (3, 3), activation='relu', padding='same')(x)
x = BatchNormalization()(x)
x = MaxPooling2D((2, 2))(x)
# x = Dropout(0.2)(x)
x = Conv2D(128, (3, 3), activation='relu', padding='same')(x)
x = BatchNormalization()(x)
x = Conv2D(128, (3, 3), activation='relu', padding='same')(x)
x = BatchNormalization()(x)
x = MaxPooling2D((2, 2))(x)
# x = Dropout(0.2)(x)
# x = GlobalMaxPooling2D()(x)
x = Flatten()(x)
x = Dropout(0.2)(x)
x = Dense(1024, activation='relu')(x)
x = Dropout(0.2)(x)
x = Dense(1024, activation='relu')(x)
x = Dropout(0.2)(x)
x = Dense(K, activation='softmax')(x)
model = Model(i, x)
这里是完整代码的链接。 https://colab.research.google.com/drive/1_9MVqaRpk5UnZxc8l4OC78JaHlXkAwrL
这是分类的预览图。
我能够保存 h5 文件,该文件能够对仅包括手的 100 x 100 图像进行分类。
后来我能够使用 OpenCV 从网络摄像头获取提要,但我不确定如何使用我的模型来检测手并在其上创建一个边界框以提取手并将其馈送到 ASL CNN 分类器。我确实尝试使用一些 Haar 级联来检测手,但它似乎检测得不太好。
我正在考虑使用 YOLO,但我不知道如何训练它以获取自定义手部图像,或者将我的 h5 文件提供给 YOLO 分类器,并使用它在网络摄像头的实时视频源上创建跨手的边界框.
欢迎提供任何资源链接。先感谢您。
【问题讨论】:
-
我会建议您避免在问题中发布链接,同时显示您到目前为止尝试了什么以及问题出在哪里,在发布问题时尝试显示您的努力
-
好的。我会修改它。
标签: python opencv tensorflow yolo haar-classifier