Разработка программы на python для распознавания жестов (дактильный алфавит)

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

Для создания данного проекта были использованы библиотеки OpenCV и mediapipe. Код данного проекта размещен на GitHub.

Реализация проекта состоит из следующих основных этапов: сбор данных, создание и классификация набора данных (dataset), обучение модели (model) и тестирование полученной модели. Как видно это классические этапы машинного обучения.

Первый этап — это сбор данных для этого написан скрипт images_collect.py, ниже приведу код данного скрипта.

#...
DATA_DIR = './data'
if not os.path.exists(DATA_DIR):
    os.makedirs(DATA_DIR)
number_of_classes = 3
dataset_size = 100

cap = cv2.VideoCapture(1)
for j in range(number_of_classes):
    if not os.path.exists(os.path.join(DATA_DIR, str(j))):
        os.makedirs(os.path.join(DATA_DIR, str(j)))
    print('Начинаем сбор данных для класса {}'.format(j))
    done = False
    while True:
        ret, frame = cap.read()
        cv2.putText(frame, 'Please press "q" !', (100, 50), cv2.FONT_HERSHEY_SIMPLEX, 1.3, (255, 0, 0), 3,cv2.LINE_AA)
        cv2.imshow('frame', frame)
        if cv2.waitKey(25) == ord('q'):
            break
    counter = 0
    while counter < dataset_size:
        ret, frame = cap.read()
        cv2.imshow('frame', frame)
        cv2.waitKey(25)
        cv2.imwrite(os.path.join(DATA_DIR, str(j), '{}.jpg'.format(counter)), frame)
        counter += 1
cap.release()
cv2.destroyAllWindows()

Проверяем полученные изображения.

Далее пишем скрипт для обработки данных изображений (получаем dataset).

На основе полученных данных обучаем модель (т.е. создаем модель).

После получения выходного файла model.p, приступаем к финальному тестированию полученной модели.

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

Прокрутить вверх