1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/paddlepaddle-Paddle-Lite-Demo

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Paddle-Lite-Demo

Paddle-Lite предоставляет примеры для iOS, Android и ARMLinux:

  • iOS:
    • классификация изображений на основе MobileNetV1 (поддерживает видеопоток);
    • обнаружение объектов на основе MobileNetV1-SSD (поддерживает видеопоток).
  • Android:
    • классификация изображений на основе MobileNetV1;
    • обнаружение объектов на основе MobileNetV1-SSD;
    • распознавание лиц на основе Ultra-Light-Fast-Generic-Face-Detector-1MB;
    • сегментация лиц на основе DeeplabV3+MobilNetV2;
    • обнаружение лиц и распознавание масок на основе видеопотока;
    • обнаружение объектов на основе YOLOV3-MobileNetV3.
  • ARMLinux:
    • классификация изображений на основе MobileNetV1;
    • обнаружение объектов на основе MobileNetV1-SSD.

Для получения дополнительной информации о Paddle-Lite и примерах обратитесь к оставшимся разделам этой статьи и следующим ссылкам на документы:

Требования

  • iOS:

    • macOS + Xcode, проверенная среда: Xcode Version 11.5 (11E608c) на macOS Catalina (10.15.5);
    • Xcode 11.3 будет выдавать ошибку компиляции «Invalid bitcode version...», обновите до версии 11.4 или выше и перекомпилируйте.
    • Для iOS 12.x, если появляется сообщение «xxx. which may not be supported by this version of Xcode», загрузите соответствующий пакет инструментов, после загрузки распакуйте его в каталог /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport и перезапустите Xcode.
  • Android:

    • Android Studio 3.4;
    • телефон или планшет на Android или версия для разработчиков, NPU поддерживается только на Nova 5, Mate 30 и Mate 30 5G, пользователи могут попробовать другие телефоны Huawei с чипами Kirin 810 и 990 (например, Nova 5i Pro, Mate 30 Pro, Honor V30, Mate 40 или P40), необходимо обновить систему до последней версии.
  • ARMLinux:

    • RK3399 (Ubuntu 18.04) или Raspberry Pi 3B (Raspbian Buster with desktop), эти две аппаратные и программные среды были проверены, другие платформы могут быть опробованы пользователями;
    • поддерживает сбор изображений с камеры Raspberry Pi 3B, см. включение камеры на Raspberry Pi;
    • gcc, g++, opencv, cmake установлены (все команды выполняются на устройстве):
      $ sudo apt-get update
      $ sudo apt-get install gcc g++ make wget unzip libopencv-dev pkg-config
      $ wget https://www.cmake.org/files/v3.10/cmake-3.10.3.tar.gz
      $ tar -zxvf cmake-3.10.3.tar.gz
      $ cd cmake-3.10.3
      $ ./configure
      $ make
      $ sudo make install

Установка

Клонируйте репозиторий Paddle-Lite-Demo с помощью команды git clone https://github.com/PaddlePaddle/Paddle-Lite-Demo.

  • iOS:

    • В каталоге PaddleLite-ios-demo выполните скрипт download_dependencies.sh, который загружает зависимости, необходимые для ios demo, включая библиотеку прогнозирования paddle-lite и модели.
    $ chmod +x download_dependencies.sh
    $ ./download_dependencies.sh
    • Откройте Xcode и нажмите «Open another project...» для открытия проекта Paddle-Lite-Demo/PaddleLite-ios-demo/ios-xxx_demo/ в Xcode;
    • Выберите «classification_demo» в навигаторе проекта, измените информацию «General»;
    • Подключите iPhone или iPad, выберите устройство в меню «Device»;
    • Нажмите кнопку «build and run» в левом верхнем углу.
  • Android:

    • Откройте Android Studio, в окне «Welcome to Android Studio» нажмите «Open an existing Android Studio project», перейдите в каталог «image_classification_demo», затем нажмите кнопку «Open» внизу справа;
    • Подключите телефон или планшет Android через USB;
    • После загрузки проекта нажмите Run->Run 'App' в меню, выберите подключенное устройство в диалоговом окне «Select Deployment Target», нажмите OK;
    • Поскольку Demo использует библиотеки и модели, которые загружаются через файл app/build.gradle, первая компиляция может занять много времени (в зависимости от скорости интернета), пожалуйста, будьте терпеливы;
    • Если загрузка библиотек и моделей не удалась, рекомендуется загрузить их вручную и скопировать в соответствующие каталоги: 1) paddle_lite_libs.tar.gz: распаковать и скопировать java/PaddlePredictor.jar в Paddle-Lite-Demo/PaddleLite-android-demo/image_classification_demo/app/libs, скопировать java/libs/armeabi-v7a/libpaddle_lite_jni.so в Paddle-Lite-Demo/PaddleLite-android-demo/image_classification_demo/app/src/main/jniLibs/armeabi-v7a/libpaddle_lite_jni.so, скопировать java/libs/armeabi-v8a/libpaddle_lite_jni.so в Paddle-Lite-Demo/PaddleLite-android-demo/image_classification_demo/app/src/main/jniLibs/arm64-v8a/libpaddle_lite_jni.so 2) mobilenet_v1_for_cpu.tar.gz: распаковать в Paddle-Lite-Demo/PaddleLite-android-demo/image_classification_demo/app/src/main/assets/models/mobilenet_v1_for_cpu 3) mobilenet_v1_for_npu.tar.gz: распаковать в Paddle-Lite-Demo/PaddleLite-android-demo/image_classification_demo/app/src/main/assets/models/mobilenet_v1_for_npu В запросе текст технической направленности из области разработки и тестирования программного обеспечения. Основной язык текста запроса — английский.

Текст в переводе на русский язык:

В демоверсии классификации изображений по умолчанию загружается изображение кошки, и под изображением отображается прогноз CPU. Если вы используете смартфон Huawei с чипом Kirin 810 или 990, таким как серия Nova5, вы можете выбрать «Settings...» в контекстном меню в правом верхнем углу, чтобы открыть окно настроек и переключиться на модель NPU для прогнозирования.

  • В демоверсии классификации изображений вы также можете загрузить тестовые изображения из галереи или камеры с помощью кнопок «Gallery» и «Take Photo» в верхней части.

ARMLinux

  • Загрузка моделей и библиотек:
$ cd Paddle-Lite-Demo/PaddleLite-armlinux-demo
$ ./download_models_and_libs.sh # загрузка моделей и библиотек прогнозирования
  • Компиляция и запуск демоверсии классификации изображений (все команды выполняются на устройстве):
$ cd Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo
$ ./run.sh armv8 # RK3399
$ ./run.sh armv7hf # Raspberry Pi 3B

Результаты прогнозирования и данные о производительности отображаются в терминале, а файл result.jpg создаётся в каталоге build.

  • Компиляция и запуск демонстрационного примера обнаружения объектов (все команды выполняются на устройстве):
$ cd Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo
$ ./run.sh armv8 # RK3399
$ ./run.sh armv7hf # Raspberry Pi 3B

Результаты прогнозирования и данные о производительности отображаются в терминале, а файл result.jpg создаётся в каталоге build.

Обновление до последней версии библиотеки прогнозирования

Проект Paddle-Lite: https://github.com/PaddlePaddle/Paddle-Lite

См. документацию Paddle-Lite для компиляции библиотек iOS, Android и ARMLinux.

Окончательный продукт компиляции находится в папке build.lite.xxx.xxx.xxx, а библиотека вывода — в inference_lite_lib.xxx.xxx.

Обновление библиотеки прогнозирования для iOS

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

Замените файлы заголовков в каталоге include на файлы в каталоге paddle_lite.

Обновление библиотеки прогнозирования для Android

Замените файл jar в каталоге libs на файл PaddlePredictor.jar, созданный в результате компиляции.

Замените библиотеку jni для архитектуры arm64-v8a на файл libpaddle_lite_jni.so, созданный в результате компиляции, в каталоге java/so.

Замените библиотеку jni для архитектуры armeabi-v7a на файл libpaddle_lite_jni.so, созданный в результате компиляции, в каталоге java/src/main/jniLibs/armeabi-v7a.

Обновление библиотеки прогнозирования для ARMLinux

Замените каталог заголовков include файлами, созданными в результате компиляции в каталоге cxx.

Замените динамическую библиотеку armv8 файлом libpaddle_light_api_shared.so, созданным в результате компиляции в каталоге cxx/libs.

Замените динамическую библиотеку armv7hf файлом libpaddle_light_api_shared.so, созданным в результате компиляции в каталоге cxx/libs.

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

iOS

  • Классификация изображений на основе MobileNetV1:

    • Статические изображения: ios_static ios_video
    • Видео: Демонстрационные видеоролики не предоставлены.
  • Обнаружение объектов на основе MobileNetV1-SSD:

    • Статические изображения: ios_static ios_video Видеодемонстрационные ролики не предоставлены.

Android

  • Классификация изображений на основе MobileNetV1: — Результаты прогнозирования CPU (тестовая среда: Huawei Nova5): * Изображение кошки: android_image_classification_cat_cpu * Клавиатура: android_image_classification_keyboard_cpu — Результаты прогнозирования NPU (тестовая среда: Huawei Nova5): * Изображение кошки: android_image_classification_cat_npu * Клавиатура: android_image_classification_keyboard_npu

  • Обнаружение объектов на основе MobileNetV1-SSD: — Результаты прогнозирования CPU (тестовая среда: Huawei Nova5): * Демонстрационные видеоролики не предоставлены. — Результаты прогнозирования NPU: Ожидается поддержка.

  • Распознавание лиц на основе Ultra-Light-Fast-Generic-Face-Detector-1MB: — Результаты прогнозирования CPU (тестовая среда: Huawei Nova5): android_face_detection_cpu — Результаты прогнозирования NPU: ожидается поддержка.

  • Сегментация лица на основе DeeplabV3+MobilNetV2: — Результаты прогнозирования CPU (тестовая среда: Huawei Nova5): Демонстрационные видеоролики не предоставлены.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Paddle Lite Demo предоставляет примеры кода для iOS, Android и ARM Linux, реализованные с использованием Paddle Lite, включая примеры для классификации изображений, обнаружения объектов и распознавания лиц. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/paddlepaddle-Paddle-Lite-Demo.git
git@api.gitlife.ru:oschina-mirror/paddlepaddle-Paddle-Lite-Demo.git
oschina-mirror
paddlepaddle-Paddle-Lite-Demo
paddlepaddle-Paddle-Lite-Demo
master