Обнаружение и отслеживание руки человека с OpenCV - PullRequest
0 голосов
/ 19 февраля 2020

Я новичок в 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

Это предварительный просмотр классифицированного изображения.

enter image description here

Это в состоянии обнаружить все 26 алфавитов с приличной точностью. Вот матрица путаницы. enter image description here

Мне удалось сохранить файл h5, который может классифицировать изображения размером 100 x 100, которые включают только руку.

Позже я смог получить канал с веб-камеры, используя OpenCV, но я не уверен, как использовать мою модель для обнаружения рук и создания ограничивающего прямоугольника для нее, чтобы извлечь руку и подать ее на ASL. Классификатор CNN. Я пытался использовать несколько каскадов Хаара для обнаружения руки, но, похоже, он не очень хорошо определяет.

Как я могу обнаружить руку из видеопотока, подобного изображенному на этом изображении? enter image description here

Я думал об использовании YOLO, но я не уверен, как обучить его для пользовательских изображений рук или передать мой файл h5 в классификатор YOLO и использовать его для создания границ коробки на руках в прямом эфире видео с веб-камеры.

Любые ссылки на ресурсы приветствуются. Заранее спасибо.

1 Ответ

1 голос
/ 19 февраля 2020

Вот ссылка, которая может быть полезна https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv/

...