Target of the beta release
The beta release will be a open-source release.
In this version, we have done the following work:
Optimize the pipeline dataflow.
Optimize model plugin.
Add some NN modules.
Optical character recognition.
Age recognition.
Face det and Age recognition.
Yolov8 Detection.
Add command for model list.
Regarding the user interface, maintain compatibility and consistency with the alpha version.
Adjust the internal structure of NNF and output the initial version of open-source code.
Optimize the system to make it more robust, and after long-term testing, the system is stable.
Form of the beta release
Provide a sample demo for users to refer to, and they can directly run the sample app to verify the NN environment of C3V.
Provide Libs and header files for users to integrate specific NN modules into their applications using the standard interfaces we provide.
Provide COMPILE SH to enable users to easily compile NN framework and locate generated resources in the specified release directory.
Open source the NN Framework to facilitate users to better understand the internal operations of NNF. In the next version, we will distinguish between official and customized partitions, making it easier for users to add their own models or copy an official model to a customized partition for customized modifications.
Usage of the beta release
How to verify Official Demos
You can use the script we provide to start as follows:
/NNF/release # ./nnf_run.sh usage: ./bin/nnf_nnsample model modelName modelNames: yolov5s lightFace age humanAttr ocrDet ocrCls ocrRec yolov8n usage: ./bin/nnf_nnsample sequential modelNames avaliable model combinations: yolov5s humanAttr lightFace age ocrDet ocrRec ocrDet ocrCls ocrRec usage: ./bin/nnf_nnsample streaming modelNames avaliable model combinations: yolov5s humanAttr lightFace age ocrDet ocrRec ocrDet ocrCls ocrRec usage: ./bin/nnf_nnsample fileStreaming fileName modelNames avaliable model combinations: yolov5s humanAttr lightFace age ocrDet ocrRec ocrDet ocrCls ocrRec usage: ./bin/nnf_nnsample all Perform all the above test items
Release folder structure
bin: nnf_nnsample. Prebuild sample programs that can run on the c3v Linux platform.
image: images used for detection.
model: models to be used in the sample program.
include:header file of NN framework SDK.
lib:libraries of NN framework SDK.
souces:example code for using NN framework.
video: Some released video files.
nnf_run.sh:executable script for running sample code.
How to run NN framework sample
Copy the release foler to C3V Linux.
/NNF/release # ls -alh drwxr-xr-x 9 10989 11400 4.0K Jul 10 2024 . drwxr-xr-x 10 10989 11400 4.0K Jul 10 2024 .. drwxr-xr-x 2 10989 11400 4.0K Jul 10 2024 bin drwxr-xr-x 2 10989 11400 4.0K Jul 10 2024 image drwxr-xr-x 5 10989 11400 4.0K Jul 10 2024 include drwxr-xr-x 5 10989 11400 4.0K Jul 10 2024 lib drwxr-xr-x 2 10989 11400 4.0K Jul 10 2024 model -rw-r-xr-x 1 10989 11400 349 Jul 10 2024 nnf_run.sh drwxr-xr-x 5 10989 11400 4.0K Jul 10 2024 sources drwxr-xr-x 2 10989 11400 4.0K Jul 10 2024 video
Run nnf_run.sh to run NNF sample.
a. One-time input
./nnf_run.sh model yolov8n
sunplus@ubuntu:~/workspace/release$ ./nnf_run.sh model yolov8n yolov8n in general(box: 0 54 634 585) --> label: 0, confidence: 0.90 yolov8n out, retVal: 0
b. Multiple inputs
./nnf_run.sh streaming yolov8n
sunplus@ubuntu:~/workspace/release$ ./nnf_run.sh streaming yolov8n streaming in streaming test: runner func quit general(box: 0 54 634 585) --> label: 0, confidence: 0.90 general(box: 0 54 634 585) --> label: 0, confidence: 0.90 general(box: 0 54 634 585) --> label: 0, confidence: 0.90 general(box: 0 54 634 585) --> label: 0, confidence: 0.90 general(box: 0 54 634 585) --> label: 0, confidence: 0.90 general(box: 0 54 634 585) --> label: 0, confidence: 0.90 general(box: 0 54 634 585) --> label: 0, confidence: 0.90 general(box: 0 54 634 585) --> label: 0, confidence: 0.90 general(box: 0 54 634 585) --> label: 0, confidence: 0.90 general(box: 0 54 634 585) --> label: 0, confidence: 0.90
c. Read inputs from video file.
./nnf_run.sh fileStreaming video/humanCount.mp4 yolov8n
sunplus@ubuntu:~/workspace/release$ ./nnf_run.sh fileStreaming video/humanCount.mp4 yolov8n streaming in streaming test: runner func quit general(box: 671 129 307 873) --> label: 0, confidence: 0.90 general(box: 0 364 267 460) --> label: 7, confidence: 0.38 general(box: 672 127 325 873) --> label: 0, confidence: 0.90 general(box: 0 364 268 461) --> label: 7, confidence: 0.39
How to build NN framework
Compile.
a. Please use nnf_build.sh
for NN framework compiling.
b. All the resouce will installed to release folder.
Copy release folder to the C3V platform.
Setup environment variable.
a. Setting environment variables independently.
export LD_LIBRARY_PATH=${PWD}/lib:${PWD}/lib/opencv:${PWD}/lib/pytorch:${LD_LIBRARY_PATH}
b. Run nnf_run.sh
will auto set environment variables.
Then, you can run nnf_run.sh for NNF sample.
Models of the alpha release
Model Name | Version or Path |
Optical character recognition |
|
Age recognition | https://gitcode.com/smahesh29/Gender-and-Age-Detection/commits/master 7c024d9d453c9b35a72a984d8821b5832ef17401 |
Yolov8 Detection |