Android-приложение для распознавания цифровых жестов на основе сверточной нейронной сети

искусственный интеллект TensorFlow Android
Android-приложение для распознавания цифровых жестов на основе сверточной нейронной сети

Приложение для распознавания жестов на китайском языке (приложение для распознавания цифровых жестов, распознавание 0-10)

Приложение для распознавания цифровых жестов на основе сверточной нейронной сети (Android)

1. Введение проекта

Это приложение для распознавания цифровых жестов (Android), основанное на сверточной нейронной сети.Основные функции: цифровые жесты, сделанные распознаванием камеры мобильного телефона 8, 9, 10, соответствуют жестам.

Проект распознавания жестов на китайском языке содержит два фрагмента кода: 1. DigitalGestureRecognition — это код приложения для Android, 2. digital_gesture_recognition — код модели обработки и обучения данных на стороне ПК, язык программирования — Python.

Среда разработки:

Сторона ПК: python3.6, TensorFlow-gpu1.8, keras2.1.6, PIL, оборудование NVIDIA GTX1070, память 16 ГБ

Сторона приложения: Android studio3.1.2, TensorFlow Lite, opencv-3.4.0-android-sdk

2. Демонстрация результата распознавания приложения

2.1 Дневная сцена

2.2, ночная сцена

2.3 Сложные сцены (низкая точность, удача... просто понимающая улыбка, просто интересно попробовать)

3. Набор данных

3.1. Исходный набор данных

адрес:disk.baidu.com/yes/1me и ТТ VO6G…

Набор данных содержит в общей сложности 215 цифровых изображений жестов.Набор данных был сделан мной, женским голосованием (Ли На) ​​и друзьями: Цзян Вэнь, Сун Юйчжан, Пэн Чжунцзюнь, Чжан Мэн, Юань Ченг, Син Шоуи и Чжэн Чао. (В произвольном порядке, все вносят одинаковый вклад), поблагодарите их за помощь. Метка, соответствующая каждому изображению, отмечена в именовании изображения, и формат именования изображения: номер_метки. Например:

#f03c15 Набор данных все еще слишком мал, поэтому преданные учащиеся могут помещать сделанные вами фотографии в файл collect_picture, а правила именования относятся к указанному выше именованию.

3.2 Набор данных после дополнения данных

адрес:disk.baidu.com/yes/1_TL go_H CS…

Исходное изображение переводится, растягивается, поворачивается и т. д., и для каждого изображения создается 100 изображений.Используется сгенерированный код: digital_gesture_recognition/data_augmentation.py. Таким образом, сгенерированный набор данных содержит в общей сложности 21592 изображения.

NOTE:Размер набора данных составляет 11,6 ГБ, что составляет около 11 ГБ после сжатия. Если пропускная способность вашей сети загружается медленно, вы можете восстановить ее самостоятельно, используя исходный набор данных и файл digital_gesture_recognition/data_augmentation.py.

3.3. Сжатый набор данных

Масштабируйте каждое изображение до размера 64 * 64, и результирующий набор данных будет следующим: digital_gesture_recognition/resized_img, всего 21592 изображения, а используемый алгоритм сжатия — интерполяция области в TensorFlow. Набор данных digital_gesture_recognition/resized_img_split такой же, как resized_img, только разделенный на 10 небольших папок.

3.4 Набор данных H5

адрес:disk.baidu.com/is/1co V1UV M3…

Этот набор данных h5 получается путем преобразования изображений в resized_img в файлы h5. Размер этого набора данных: 215926464*3, можно использоватьh5pyбиблиотека для работы с этим набором данных. Например, вы можете использовать следующую инструкцию для загрузки набора данных:

data = h5py.File("dataset//data.h5","r")
X_data = np.array(data['X']) #data['X']是h5py._hl.dataset.Dataset类型,转化为array
Y_data = np.array(data['Y'])

4. Обученная модель

Модель, обученная для эпохи = 200 в digital_gesture_recognition/model_200, также является моделью, используемой в приложении, а модель_2500 — это модель, обученная для эпохи = 2500. Точность модели, обученной на стороне ПК на обучающей и тестовой выборках, составляет 99,8% и 99,5% соответственно. В приложении, поскольку среда более сложная, уровень точности далек от этой цифры. Произвольно протестируйте несколько фотографий, сделанных друзьями на стороне ПК (ни одной в обучающем наборе и тестовом наборе), и результаты тестирования вполне удовлетворительны.Результаты тестирования следующие:

5. Конфигурация среды Android Studio

Перенесите обученную модель в Android Studio, смотрите руководство в моем блоге:blog.CSDN.net/U012328159/…

Чтобы настроить среду OpenCV в студии Android, см. мой блог:blog.CSDN.net/U012328159/…

Другие сведения об этом проекте можно найти в моем блоге:blog.CSDN.net/U012328159/…

Примечание. Часть приложения для камеры использует код CHNicelee, адрес:GitHub.com/CH приятный Ли/C…благодарный. Адрес блога CHNicelee об этом коде камеры:blog.CSDN.net/пожалуйста 1242027878…