Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Target of the V1.1.0

This is the formal release V1.1.0 of SNNF(Sunplus Neural Network Framework).

Table of Contents
stylenone

Target of the V1.1.0

On the basis of v1.0.0, v1.1.0 mainly has the following updates:

  1. Add some NN module.

    • genderage: gender and age

      • Det_10g + genderage

      • LightFace + genderage

  2. Based on the current main framework of SNNF, provide a porting tool so that users can easily add a new model to the Customized zone using the official generated nbg code as the source. The initial version of this tool is currently available, and there will be further updates in the next version.

  3. Fix some known issues, such as:

    • OCR have a probability of crashing.

    • HumanAttr have a probability of crashing.

    • When multiple models are connected in series, if the last model comes out, the result may have an unfinished flag fin=false.

  4. Standardize post-process code.

  5. Organize samples and unittest codes:

    • samples is a sample code for snnf command sample which is just for snnf_run.sh.

    • unittest/modelTest is just for a buildin model's test sample.

    • unittest/pluginTest is just for the plugin model's test sample.

    • unittest/sequntialTest is the sample for the pipeline in which several models are sequentially linked together in series.

  6. Add NN filter, which can facilitate users to do their own private data processing at the application layer. Users only need to insert the filter directly into the corresponding position of the pipeline when creating the model flow, and then perform private and correct processing at the most appropriate location. The advantage of this is that there is no need to write a dedicated module within SNNF for this private processing, only the official interface of SNNF needs to be called. Of course, SNNF provides some commonly used private processing filters internally, such as label filtering. For example, when Object Detect+HumanAttr, the label results of Object Detect can be filtered, and only the person can be passed to HumanAttr. If the requirements of the application layer happen to match this usage, there is no need to implement it yourself at the application layer. Simply call the methods provided by SNNF.

  7. Provide users with a mAP test sample to compare the precision of the C3V platform's model running results with the precision of the model's official PC running results. The default test model is yolov8s object detection. Users can refer to this mAP sample to rewrite the model they need to test mAP values for. Please refer the SOP.

  8. Improve the toString() function for each model's result, and support the detection result toString JSON format.

  9. Update some make config.

    • In addition to cross compilation on the server, we also provide compilation methods on the C3V platform.

      • If it is cross compilation on the server, please confirm the config CROSS_COMPILE := ON in makefile_config.mk .

      • If compilation is required on the C3V platform, please confirm the config CROSS_COMPILE := OFF in makefile_config.mk .

    • Users can choose the model plugin in makefile_config.mk that needs to be compiled according to their own needs, which can effectively reduce the code size of specific projects and shorten compilation time.

Code Block
languageplain
# ------------------------------------------------------------------------
# define which PLUGIN to build
  NN_PLUGIN_ENABLE_YOLOV5S_V2                 := yes

  NN_PLUGIN_ENABLE_RTMDETS                    := no
  NN_PLUGIN_ENABLE_GEDERAGE                   := no
  NN_PLUGIN_ENABLE_YOLOV8S_DETECTION          := no
  NN_PLUGIN_ENABLE_YOLOV8S_OBB                := no
  NN_PLUGIN_ENABLE_YOLOV8S_POSE               := no
  NN_PLUGIN_ENABLE_YOLOV8S_SEGMENT            := no
  NN_PLUGIN_ENABLE_YOLOV10S_DETECTION         := no

  NN_PLUGIN_ENABLE_YOLOV8N_CCPD               := no
  NN_PLUGIN_ENABLE_YOLOV8N_OBB_OPTI           := no
  NN_PLUGIN_ENABLE_YOLOV8N_POSE_OPTI          := no
  NN_PLUGIN_ENABLE_YOLOV8N_SEGMENT_OPTI       := no
  NN_PLUGIN_ENABLE_YOLOV8N_DETECTION_OPTI     := no
  NN_PLUGIN_ENABLE_YOLOV8S_DETECTION_OPTI     := no

  NN_PLUGIN_ENABLE_BOTSORT_TRACK              := no

...

Please get the V1.1.0 release resource here.

Before starting any work, please carefully read the instruction files such as readme.md in the document directory.

...

Code Block
/SNNF/release # ./snnf_run.sh
Usage: ./bin/snnf_nnsample [-m|-s|-a|-h] [-i|-v|-o|option]
        Version: 1.1.0_
        Time:
        [-m,--model <model>] run a single model
                <model>:Age                        Det10g                     HumanAttr
                        HumanFilter                LightFace                  OcrCls
                        OcrDet                     OcrRec                     VehicleAttr
                        VehicleFilter              W600kR50                   YoloV8sOdMap
                        Yolov5sDetection           Yolov5sV1                  Yolov8nClassify
                        Yolov8sClassify            stgcn                      Yolov5sV2
                        BotSortTrackStgcn          GenderAge                  Rtmdets
                        YoloV10sDetection          YoloV8nCcpdOpti            YoloV8nDetectionBaseOpti
                        YoloV8nDetectionOpti       YoloV8nObbOpti             YoloV8nPoseOpti
                        YoloV8nSegmentOpti         YoloV8sDetection           YoloV8sDetectionBaseOpti
                        YoloV8sDetectionOpti       YoloV8sObb                 YoloV8sPose
                        YoloV8sSegment
                example:./bin/snnf_nnsample -m Yolov5sDetection
                        ./bin/snnf_nnsample --model HumanAttr

        [-s,--sequential <model1,model2,...>] run sequential models
                <models>:Yolov5sDetection,HumanFilter,HumanAttr
                        LightFace,Age
                        OcrDet,OcrRec
                        OcrDet,OcrCls,OcrRec
                        YoloV8nCcpdOpti,OcrRec
                        Det10g,W600kR50
                        YoloV8sDetection,VehicleFilter,VehicleAttr
                        YoloV8nDetectionOpti,BotSortTrack
                        YoloV8nPoseOpti,BotSortTrackStgcn
                        YoloV8nCcpdOpti,OcrRec
                        YoloV8nCcpdOpti,OcrCls,OcrRec
                example:./bin/snnf_nnsample -s Yolov5sDetection,HumanFilter,HumanAttr
                        ./bin/snnf_nnsample --sequential ocrDet,ocrCls,ocrRec
                        ./bin/snnf_nnsample -s YoloV8nCcpdOpti,OcrRec,imageWriter
                        ./bin/snnf_nnsample -s YoloV8sDetectionOpti,BotSortTrack,videoWriter -v resource/video/humanCountpk-12.mp4
                        ./bin/snnf_nnsample -s YoloV8nPoseOpti,BotSortTrackStgcn,videoWriter -v resource/video/person-falling.mp4

        [-i,--image file] set image file to nn detection.
                <file>: file name
                [-c | option]: test count, this parameter is only match with -i
                example:./bin/snnf_nnsample -s Yolov5sDetection,HumanAttr -i filename -c testCount
                        ./bin/snnf_nnsample -s Yolov5sDetection,HumanAttr --image filename -c testCount

        [-v,--video file] set video file to nn detection.
                <file>: file name
                example:./bin/snnf_nnsample -s Yolov5sDetection,HumanAttr -v filename
                        ./bin/snnf_nnsample -s Yolov5sDetection,HumanAttr --video filename

        [-o,--output file] specify the output file name for saving results.
                <file>: file name with extension (e.g., output.jpg, output.json, output.mp4)
                This parameter must be used in conjunction with imageWriter, jsonWriter, or videoWriter.
                example:./bin/snnf_nnsample -s Yolov5sDetection,HumanAttr,imageWriter -i filename -o output.jpg
                        ./bin/snnf_nnsample -s Yolov5sDetection,HumanAttr,jsonWriter -i filename -o output.json
                        ./bin/snnf_nnsample -s Yolov5sDetection,HumanAttr,videoWriter -v filename -o output.mp4
                        
        [-a,--all] run all model testing

        assist tools: imageWriter videoWriter jsonWriter BotSortTrack HumanFilter VehicleFilter

Release folder structure

...

  • bin: nnfsnnf_nnsample. Prebuild sample programs that can run on the c3v Linux platform.

  • include:header file of sunplus NN framework SDK.

  • lib:libraries of sunplus NN framework SDK.

  • resource

    • config: some config files for features.

    • font: ttf file for plotting sample.

    • image: image files used for test.

    • model: models to be used in the sample program.

    • video: video files used for test.

  • samples:example code for using sunplus NN framework.

  • snnf_run.sh:executable script for running sample code.

  • snnf_build_samples.sh: executable script for building sample code.

  • snnf_env.sh: executable script for compiling environment.

  • thirdparty: just as its name implies.

How to run

...

SNNF sample

  1. Copy the release foler to C3V Linux.

Code Block
/SNNF/release # ls -alh
total 3644K
drwxr-xr-x  8 xxx101065 B400 4096 Sep 30 14:23 ./11400 4.0K Jan  3  2025 .
drwxr-xr-x 5 15 xxx B400 4096 Sep 30 14:15101065 11400 4.0K Jan  3  2025 ../
drwxr-xr-x 2 2 xxx B400 4096 Sep 30 14:15 bin/101065 11400 4.0K Jan  3  2025 bin
drwxr-xr-x 6 6 xxx B400 4096 Sep 30 14:15 include/101065 11400 4.0K Jan  3  2025 include
drwxr-xr-x  3 xxx101065 B400 4096 Sep 30 14:15 lib/11400 4.0K Jan  3  2025 lib
drwxr-xr-x 7 7 xxx B400 4096 Sep 30 14:15 resource/101065 11400 4.0K Jan  3  2025 resource
drwxr-xr-x 4 101065 11400 4.0K xxxJan B400 40963 Sep 302025 14:15 samples/
-rwxr-xr-x 1 1101065 11400 xxx B400223 Jan 262 Sep3 30 14:152025 snnf_runbuild_samples.sh*
drwxr-rwxr-xr-x 1 101065 11400 1.6K Jan  3  2025 snnf_env.sh
-rwxr-xr-x 1 101065 11400  430 Jan  3  2025 snnf_run.sh
drwxr-xr-x 7 xxx B400 4096 Sep 30 14:15 thirdparty/ 101065 11400 4.0K Jan  3  2025 thirdparty
  1. Run nnf_run.sh to run the NNF SNNF sample.

a. One-time input

./snnf_run.sh -m YoloV8sDetection

Code Block
# ./snnf_run.sh -m YoloV8sDetection
17276259052421735821845919|7fad06c0207f808d8a00|T|common: [app]YoloV8sDetection in
1727625905261|7fad06c020|I|common: [nn]create model from pluginName: YoloV8sDetection takes: 17
1727625905722|7f96fdf0e0|I|common: [nn]picked: 5
1727625905722|7f96fdf0e0|1735821846236|7f69ef80e0|T|common: [app]GeneralModelOutputListener detect from resource/image/objectDetectvehicle.jpg, the result: (box: 415.31  35  196  158  403288.56 1218.38 520.88) --> label: 02(personcar), confidence: 0.8996, fin: falsetrue
17276259057221735821846284|7f96fdf0e07f808d8a00|T|common: [app]GeneralModelOutputListener detect from YoloV8sDetection out, retVal: 0

b. Read input from the image file

./snnf_run.sh -m YoloV8nDetectionOpti -i resource/image/

...

person640x640.jpg

...

Code Block
# ./snnf_run.sh -m YoloV8nDetectionOpti -i resource/image/person640x640.jpg
1735822076622|7fbe2f5a00|T|common: [app]YoloV8nDetectionOpti in
1735822079033|7fa61da0e0|T|common: [app]GeneralModelOutputListener detect from resource/image/objectDetectperson640x640.jpg, the result: (box:  173  203   97  3600.00 19.00 614.75 619.44) --> label: 0(person), confidence: 0.8687, fin: falsetrue
17276259057221735822079075|7f96fdf0e07fbe2f5a00|T|common: [app]GeneralModelOutputListenerYoloV8nDetectionOpti detectout, from resource/image/objectDetect.jpg, the result: (box:    0  321   44  253) --> label: 0(person), confidence: 0.75, fin: false
1727625905722|7f96fdf0e0retVal: 0

c. Read inputs from the video file.

./snnf_run.sh -m YoloV8nDetectionOpti -v resource/video/humanCount.mp4

Code Block
# ./snnf_run.sh -m YoloV8nDetectionOpti -v resource/video/humanCount.mp4
1735823196079|7fabb9e040|T|common: [app]streaming in
1735823198479|7f91468080|T|common: [app]streaming test: runner func in
1735823198840|7f91c78080|T|common: [app]GeneralModelOutputListener detect from resource/image/objectDetect.jpg, the result: (box: 672.19  12   66  625  403131.25 303.19 873.38) --> label: 50(busperson), confidence: 0.7490, fin: truefalse
17276259057811735823198840|7fad06c0207f91c78080|T|common: [app]YoloV8sDetectionGeneralModelOutputListener detect from out, retVal the result: (box: 0

b. Read input from the image file

./snnf_run.sh -m YoloV8nDetectionOpti -i resource/image/person640x640.jpg

Code Block
# ./snnf_run.sh -m YoloV8nDetectionOpti -i resource/image/person640x640.jpg
1727626580087|7fbd7de020|T|common: [app]YoloV8nDetectionOpti in
1727626582152|7fbd7de020|I|common: [nn]create model from pluginName: YoloV8nDetectionOpti takes: 2063
1727626582574|7fa569a0e0.56 364.31 268.12 460.69) --> label: 7(truck), confidence: 0.39, fin: false
1735823198840|7f91c78080|T|common: [app]GeneralModelOutputListener detect from resource/image/person640x640.jpg, the result: (box: 548.06 10.31  0   19  614  6191369.88 1009.69) --> label: 6(train), confidence: 0.25, fin: true
1735823198859|7f91c78080|T|common: [app]GeneralModelOutputListener detect from , the result: (box: 673.88 127.88 323.06 875.44) --> label: 0(person), confidence: 0.8790, fin: truefalse
17276265826221735823198859|7fbd7de0207f91c78080|T|common: [app]YoloV8nDetectionOptiGeneralModelOutputListener detect from out, retValthe result: (box: 0

c. Read inputs from the video file.

./snnf_run.sh -m YoloV8nDetectionOpti -v resource/video/humanCount.mp4

Code Block
# ./snnf_run.sh -m YoloV8nDetectionOpti -v resource/video/humanCount.mp4
1727626644381|7faf81e020|T|common: [app]streaming in
1727626645952|7faf81e020|I|common: [nn]create model from pluginName: YoloV8nDetectionOpti takes: 1388
1727626646044|7f951d80e0|T|common: [app]streaming test: runner func in
1727626646304|7f959e80e0|.56 364.31 268.31 460.69) --> label: 7(truck), confidence: 0.40, fin: false
1735823198859|7f91c78080|T|common: [app]GeneralModelOutputListener detect from , the result: (box:  671  129  307  873543.00 13.31 1375.31 1009.50) --> label: 06(persontrain), confidence: 0.9026, fin: false
1727626646305|7f959e80e0 true
......
1735823234584|7f91c78080|T|common: [app]GeneralModelOutputListener detect from , the result: (box: 977.81 159.75  0  364  268  461329.81 895.69) --> label: 70(truckperson), confidence: 0.3890, fin: truefalse
17276266463751735823234584|7f959e80e07f91c78080|T|common: [app]GeneralModelOutputListener detect from , the result: (box:  672  127  325  873) --> label666.94 263.81 275.06 708.00) --> label: 0(person), confidence: 0.9087, fin: false
17276266463751735823234584|7f959e80e07f91c78080|T|common: [app]GeneralModelOutputListener detect from , the result: (box: 1583.39 458.81  0  364  267  46164.27 130.03) --> label: 70(truckperson), confidence: 0.3933, fin: truefalse
17276266464401735823234584|7f959e80e07f91c78080|T|common: [app]GeneralModelOutputListener detect from , the result: (box:  671  125  327  878466.12 10.88 1453.88 1017.75) --> label: 06(persontrain), confidence: 0.9032, fin: falsetrue

17276266464401735823343756|7f959e80e07fabb9e040|T|common: [app]GeneralModelOutputListenerq detectto fromquit
, the result: (box:    0  364  267  460) --> label: 7(truck), confidence: 0.41, fin: true
1727626646498|7f959e80e0q
1735823348373|7fabb9e040|T|common: [app]The input file: resource/video/humanCount.mp4 has 516 frames
1735823348374|7fabb9e040|T|common: [app]GeneralModelOutputListenerstreaming detectout, from , the result: (box:  673  125  323  878) --> label: 0(person), confidence: 0.90, fin: false
......
1727626682667|7f959e80e0retVal: -0x0

d. Sequential models

./snnf_run.sh -s Yolov5sDetection,HumanAttr

Code Block
# ./snnf_run.sh -s Yolov5sDetection,HumanAttr
1735827166109|7f8a9f9040|T|common: [app]sequential in
1735827166536|7f8a9f9040|T|common: [app]input image name: resource/image/person.jpg
1735827166657|7f792b9080|T|common: [app]GeneralModelOutputListener detect from , the result: human attr(box:  977  159  330  894612.44 156.84 268.88 625.51) --> labelresult:
0(person), confidence: 0.91, fin: false
1727626682667|7f959e80e0|T|common: [app]GeneralModelOutputListener detect from , the result: (box:  668  262  270  708) --> label: 0(person), confidence: 0.86, fin: false
1727626682667|7f959e80e0|T|common: [app]GeneralModelOutputListener detect from , the result: (box:    1  363  267  457) --> label: 7(truck), confidence: 0.35, fin: false
1727626682667|7f959e80e0age: 18-60
bag: No bag
direction: Front
gender: Male
glasses: True
hat: False
holdObjectsInFront: False
lower: Trousers
shose: No boots
upper: ShortSleeve UpperStride
1735827166660|7f792b9080|T|common: [app]human attr(box: 311.82 181.12 199.79 606.84) --> result:
age: 18-60
bag: ShoulderBag
direction: Back
gender: Female
glasses: False
hat: False
holdObjectsInFront: False
lower: LowerPattern Shorts
shose: No boots
upper: ShortSleeve

1735827171625|7f8a9f9040|T|common: [app]GeneralModelOutputListener detect from sequential out, the result: (box:  465   26 1454 1003) --> label: 6(train), confidence: 0.32, fin: false
1727626682667|7f959e80e0retVal: -0x0

e. Model inference results save to image.

./snnf_run.sh -s YoloV8sPose,imageWriter

Code Block
# ./snnf_run.sh -s YoloV8sPose,imageWriter
1735827675908|7fba745040|T|common: [app]GeneralModelOutputListenersequential detect from , the result: (box:  847  565  173  403) --> label: 0(person), confidence: 0.26, fin: true

1727626686753|7faf81e020in
1735827675908|7fba745040|T|common: [app]warning: sequential model list(not tested)
1735827676344|7fba745040|T|common: [app]q to quit

d. Sequential models

./snnf_run.sh -s Yolov5sDetection,HumanAttr

Code Block
# ./snnf_run.sh -s Yolov5sDetection,HumanAttr
1727627713332|7fa3285020input image name: resource/image/pose_input.jpg
1735827676641|7fa3fff080|T|common: [app]sequential in
1727627713501|7fa3285020|T|common: [app]input image name: resource/image/person.jpg
1727627713833|7f937c50e0write an image: detected_1883_0931_1735827676535.jpg
1735827681383|7fba745040|T|common: [nnapp]detectedInfos:sequential 1
1727627713833|7f937c50e0|T|common: [app]human attr(box:  606  141  274  655) --> result:
Male
Age18-60
Direct: Front
Glasses: True
Hat: False
HoldObjectsInFront: False
Bag: No bag
Upper: ShortSleeve UpperStride
Lower: Trousers
Shose: No boots
1727627713833|7f937c50e0out, retVal: -0x0

Results will save to the image detected_1883_0931_1735827676535.jpg.

f. Model inference results save to json file.

./snnf_run.sh -s YoloV8sPose,jsonWriter -o yolov8PoseResults.json

Code Block
 # ./snnf_run.sh -s YoloV8sPose,jsonWriter -o yolov8PoseResults.json
 1736129305551|7fb7dfae30|T|common: [app]sequential in
 1736129305551|7fb7dfae30|T|common: [app]warning: sequential model list(not tested)
 1736129305738|7fb7dfae30|T|common: [nn]detectedInfos: 1
1727627713833|7f937c50e0app]input image name: resource/image/pose_input.jpg
 1736129310785|7fb7dfae30|T|common: [app]human attr(box:  308  188  207  591) --> result:
Female
Age18-60
Direct: Back
Glasses: False
Hat: False
HoldObjectsInFront: False
Bag: ShoulderBag
Upper: ShortSleeve UpperLogo
Lower: LowerPattern Shorts
Shose: No boots
1727627718787|7fa3285020|T|common: [app]sequential out, retVal: -0x0

e. Model inference results save to image.

./snnf_run.sh -s YoloV8sPose,imageWriter

Code Block
# ./snnf_run.sh -s YoloV8sPose,imageWriter
1727627887700|7fafe27020|T|common: [app]sequential in
1727627887700|7fafe27020|T|common: [app]warning: sequential model list(not tested)
1727627887725|7fafe27020|I|common: [nn]create model from pluginName: YoloV8sPose takes: 24
1727627887858|7fafe27020|T|common: [app]input image name: resource/image/pose_input.jpg
1727627888707|7f9db2a0e0|I|common: [nn]picked: 5
1727627888707|7f9db2a0e0|I|common: [nn]plot:  0  91%, [(852, 142) - (1169, 753)], person
1727627888710|7f9db2a0e0|I|common: [nn]plot:  0  89%, [(1689, 187) - (1835, 642)], person
1727627888711|7f9db2a0e0|I|common: [nn]plot:  0  89%, [(61, 123) - (232, 601)], person
1727627888711|7f9db2a0e0|I|common: [nn]plot:  0  88%, [(1337, 330) - (1441, 679)], person
1727627888712|7f9db2a0e0|I|common: [nn]plot:  0  87%, [(369, 252) - (480, 671)], person
1727627888839|7f9db2a0e0|T|common: [app]write an image: detected_1883_0931_1727627888712.jpg
1727627893526|7fafe27020|T|common: [app]sequential out, retVal: -0x0

Results will save to the image detected_1883_0931_1727627888712.jpg.

How to build SNNF

  1. Cross-compile for C3V environment.

a. Please use snnf_build.sh for SNNF compiling.

b. All the resource will installed to release folder.

  1. Copy release folder to the C3V platform.

  2. Setup environment variable.

a. Setting environment variables independently.

Code Block
export LD_LIBRARY_PATH=${PWD}/lib:${PWD}/thirdparty/opencv4/lib:${PWD}/thirdparty/pytorch/lib:${PWD}/thirdparty/freetype/lib:${PWD}/thirdparty/libpng/lib:${LD_LIBRARY_PATH}

b. Run snnf_run.sh will auto set environment variables.

  1. Then, you can run snnf_run.sh for SNNF sample.

Models reference

...

Model Name

...

Version or Path

...

Yolov5s

...

https://github.com/ultralytics/yolov5/releases/download/v7.0/yolov5s.pt

...

Human Attributes

...

https://bj.bcebos.com/v1/paddledet/models/pipeline/PPLCNet_x1_0_person_attribute_945_infer.zip

...

Light Face

...

https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB/blob/master/models/onnx/version-slim-320.onnx

...

Optical character recognition

...

  • ch_PP-OCRv3_det_infer

  • ch_ppocr_mobile_v2.0_cls_infer

  • ch_PP-OCRv3_rec_infer

...

Age recognition

...

https://gitcode.com/smahesh29/Gender-and-Age-Detection/commits/master 7c024d9d453c9b35a72a984d8821b5832ef17401

...

Yolov8 Detection

...

https://github.com/ultralytics/ultralytics

...

Yolov8 Pose

...

https://github.com/ultralytics/ultralytics

...

Yolov8 OBB

...

https://github.com/ultralytics/ultralytics

...

Yolov8 Segmentation

...

https://github.com/ultralytics/ultralytics

...

Yolov8 Classification

...

https://github.com/ultralytics/ultralytics

...

Vehicle attributes

...

https://bj.bcebos.com/v1/paddledet/models/pipeline/vehicle_attribute_model.zip

...

License plate recognition

...

CCPD2020

Yolov8 CCPD detection

OCR

...

Yolov10 Detection

sequential out, retVal: -0x0

Results will save to yolov8PoseResults.json. If the - o option is unused, it will be saved as a file by default: default_result.json.

How to build SNNF

  1. Cross-compile for C3V environment.

a. Please use snnf_build.sh for SNNF compiling.

b. All the resource will be installed to the release folder.

  1. Copy the release folder to the C3V platform.

  2. Setup environment variable.

a. Setting environment variables independently.

Code Block
export LD_LIBRARY_PATH=${PWD}/lib:${PWD}/thirdparty/opencv4/lib:${PWD}/thirdparty/pytorch/lib:${PWD}/thirdparty/freetype/lib:${PWD}/thirdparty/libpng/lib:${LD_LIBRARY_PATH}

b. Run snnf_run.sh will auto set environment variables.

  1. Then, you can run snnf_run.sh for SNNF sample.

Models reference

STGCN

Model Name

Version or Path

genderage

https://github.com/THU-MIGdeepinsight/yolov10insightface

RTMDet

https://github.com/open-mmlab/mmdetection

Face Recognition

https://github.com/deepinsight/insightface

Object tracking

BotSort

Falling Recognition

User API

Please refer to API DOC v2.0 .