Python 基于OpenCV的人手检测与跟踪
我是OpenCV和Tensorflow的新手。我使用Tensorflow 2.0创建了一个分类器,用于检测美国手语的26个字母 这是CNN的代码Python 基于OpenCV的人手检测与跟踪,python,opencv,tensorflow,yolo,haar-classifier,Python,Opencv,Tensorflow,Yolo,Haar Classifier,我是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,
# 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)
这是完整代码的链接。
这是图像分类的预览
它能够以相当高的精度检测所有26个字母。
这是混淆矩阵。
我能够保存h5文件,该文件能够对仅包括手的100 x 100图像进行分类
后来,我能够使用OpenCV从网络摄像头获取反馈,但我不确定如何使用我的模型检测手,并在其上创建一个边界框,以提取手并将其提供给ASL CNN分类器。我曾尝试使用一些哈尔级联来检测手部,但它似乎检测不太好
如何从视频源中检测手部,如图中所示?
我正在考虑使用YOLO,但我不知道如何训练它来定制手部图像,或者如何将我的h5文件提供给YOLO分类器,并使用它在网络摄像头的实时视频馈送上创建手部的边界框
欢迎链接到资源。先谢谢你 对于yolov3或yolov4的检测,您可以尝试以下方法: 至于数据集: 通常有两种类型的数据集:
- 从以自我为中心的观点来看,如Egohand:
- 从第三人称的角度来看,如牛津之手:
您可以通过检查来检查如何培训他们或您自己的数据,我建议您避免在问题中发布链接,同时显示您迄今为止尝试过的内容以及问题所在,在发布问题时尝试显示您的努力好的。我会修改它。