Neural Networks Use Cases
Description
The application contains examples showing the operation of neural network models (Nanodeth, YOLOv3/YOLOv7) for recognizing objects in images. The application allows you to upload photos, select a model, and visualize the detection results. It is implemented in C++/QML using the OpenCV and Ncnn libraries. It serves as a practical example of integrating computer vision into mobile applications, demonstrating the features of working with neural networks, image processing, and performance optimization.
Build status:
Table of Contents
- Compatibility
- Build Features
- Branches Info
- Install and Run
- Screenshots
- Use Cases
- Project Structure
- Terms of Use and Participation
Compatibility
The project is compatible with all the current versions of the Aurora OS.
Build Features
To build the project it needs to increase the Build Engine virtual machine RAM. It is required to allocate 500 MB RAM to the virtual machine for each processor core. For example, if Build Engine has 4 processor cores, then its RAM must be at least 2000 MB.
To build OpenCV library it uses CMake. The Cmake running configuration is described inside the CMakeLists.txt file.
The shared libraries and include files of OpenCV library will be built into the <build-project-dir>/opencv directory.
The shared libraries files of OpenCV library will be installed into the /usr/share/ru.auroraos.NeuralNetworksUseCases/lib/ directory on the Aurora OS device.
The shared libraries and include files of Ncnn library will be built into the <build-project-dir>/ncnn directory.
The shared libraries files of Ncnn library will be installed into the /usr/share/ru.auroraos.NeuralNetworksUseCases/lib/ directory on the Aurora OS device.
You can read more about connecting the OpenCV library to the Aurora IDE here.
Branch info
Application versions conform to the branch naming convention
Install and Run
The application is installed and launched according to the instructions Example's build.
The application needs to have permissions for UserDirs, Camera, RemovableMedia and MediaIndexing to work. These permissions are set in the .desktop file.
Screenshots
Use Cases
The application has the following use cases:
- Choosing a neural network model that identifies different types of objects in images,
- Selecting objects in the selected image using a neural network model.
Project Structure
The project has a standard structure of an application based on C++ and QML for Aurora OS.
app subproject contains the application source code:
- CMakeLists.txt file describes the app subproject structure for the CMake build system.
- icons directory contains the application icons for different screen resolutions.
-
qml directory contains the QML source code and the UI resources.
- cover directory contains the application cover implementations.
- icons directory contains the additional custom UI icons.
- pages directory contains the application pages.
- NeuralNetworksUseCases.qml file provides the application window implementation.
-
src directory contains the C++ source code.
- main.cpp file is the application entry point.
- translations directory contains the UI translation files.
- ru.auroraos.NeuralNetworksUseCases.desktop file defines the display and parameters for launching the application.
-
opencv subproject contains the git submodule with OpenCV library source code.
- opencv directory is a git submodule with OpenCV 4.7.0.
- CMakeLists.txt file describes the opencv subproject structure for the CMake build system.
-
ncnn subproject contains the git submodule with Ncnn library source code.
- ncnn directory is a git submodule with Ncnn.
- CMakeLists.txt file describes the ncnn subproject structure for the CMake build system.
-
network folder contains the neural network binaries, neural networks licenses, test image.
-
nanodet_m.bin file is the binary file of nanodet neural network model. (license:
Apache-2.0) Nanodet_LICENSE -
nanodet_m.param file is the parametr file of nanodet neural network model. (license:
Apache-2.0) Nanodet_LICENSE -
nanodet_classes.txt file is the binary files of nanodet neural network model. (license:
Apache-2.0) Nanodet_LICENSE -
yollov7_classes.txt file is the classes file of Yollov7 neural network model. (license:
BSD-3) Yollov7_LICENSE -
yolov7-tiny.bin file is the binary file of Yollov7 neural network model. (license:
BSD-3) Yollov7_LICENSE -
yolov7-tiny.param fils is the parametr file of Yollov7 neural network model. (license:
BSD-3) Yollov7_LICENSE -
mobilenetv2_yolov3.bin file is the binary file of Yollov3 neural network model. (license:
MIT) Yollo3_LICENSE -
mobilenetv2_yolov3.param file is the parametr files of Yollov3 neural network model. (license:
MIT) Yollo3_LICENSE -
yollov3_classes.txt file is the binary files of Yollov3 neural network model. (license:
MIT) Yollo3_LICENSE -
yolov3-tiny.weights file contains weights for Yollov3 neural network model. (license:
MIT) Yollo3_LICENSE -
yolov3-tiny.cfg file is the config file of Yollov3 neural network model. (license:
MIT) Yollo3_LICENSE -
coco.names file is the list of classes for Yollov3 neural network model. (license:
MIT)
-
nanodet_m.bin file is the binary file of nanodet neural network model. (license:
- CMakeLists.txt file describes the project structure for the CMake build system.
-
rpm directory contains the rpm-package build settings.
- ru.auroraos.NeuralNetworksUseCases.spec file is used by rpmbuild tool.
Terms of Use and Participation
The source code of the project is provided under the license, which allows its use in third-party applications.
The contributor agreement documents the rights granted by contributors of the Open Mobile Platform.
Information about the contributors is specified in the AUTHORS file.
Code of conduct is a current set of rules of the Open Mobile Platform which informs you how we expect the members of the community will interact while contributing and communicating.
