Formal Release Record
Record
Version | Tag | Date | Note |
V1.1.0 | V1.1.0 | 2025/01/07 | Formal release |
V1.0.0 | V1.0.0 | 2024/09/30 | Formal release |
Gamma release | gamma_ver | 2024/07/19 | The 3rd formal release |
Beta release | beta_ver | 2024/07/11 | The 2nd formal release |
Alpha release | alpha_ver | 2024/06/11 | The 1st formal release |
Release note
V1.1.0
Add some NN module.
genderage: gender and age
Det_10g + genderage
LightFace + genderage
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.
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.
Standardize post-process code.
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.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.
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.
Improve the toString() function for each model's result, and support the detection result toString JSON format.
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.
# ------------------------------------------------------------------------
# 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
Adjust the access of certain model header files and provide more necessary header files for the application layer to use.
Change the bbox value type from uint to float. Although this change does not have a substantial impact on the rendering of the results, it can make the precision value more accurate when calculating mAP.
In previous versions, assist modules such as imageWriter/videoWriter/JsonWriter only supported the default filename. Starting from this version, we will support filename config.
Also provide release folder so that new users can easily preview or evaluate our SNNF demo without spending too much time on environment setup and code compilation.
V1.0.0
Add some NN modules and Samples.
Human tracking. This feature could track one person with the specified ID all along.
Human falling detection. This feature combined with tracking technology, can accurately identify whether someone has fallen.
Face Recognition. This feature is composed of two models and needs to be combined with the upper layer application of the database to achieve a complete face recognition. There are already mature demos for this feature.
Implement official and customized partitions, you can copy an offical model to customized zone for further customizing, or just put your own model in the customized zone as a new model.
Define some specified paths for some resource, for example, config, font, test image, model file, test video and so on.
Define some specified folders such as botSortTrack, imageWriter, videoWriter for assist.
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 SNNF and locate generated resources in the specified release directory.
Optimize the system to make it more robust, and after long-term testing, the system is stable.
Gamma release
Add some NN modules and Samples.
a. Yolov8 Pose for human posture detection.
b. Yolov8 OBB (oriented bounding box), can detect the peripheral direction of objects.
c. Yolov8 Segmentation. The detected targets can be identified using masks.
d. Yolov8 Classification. Each target in the detected image can be classified based on confidence level.
e. Vehicle attributes. Can identify trucks, cars, buses, and their respective colors.
f. License plate recognition. It can detect license plates and recognize their contents.
g. Yolov10 Detection. Models for Object Detection.
h. RTMDet. Real-time Models for Object Detection.
Parallel operations in multi-model applications can maximize the utilization of NPU and CPU, ultimately maximizing the processing frame rate of the application.
Implement official and customized partitions.
Arrangement of some folder struct such as tool and algo and so on.
The parameters of nnf_sample are designed in the standard Linux option (-, --) way.
Beta release
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. In future versions, we will consider providing a more user-friendly and convenient way to port the code generated by ACUITY TOOL to NNF.
Optimize the pipeline dataflow. Optimized some link matching and data flow transmission processes in the pipeline flow, making the data flow path more convenient and the system running smoother.
Optimize model plugin. Crop the directory structure related to the model, merge the content related to the model, and make the structure more compact and clear.
Add some NN modules.
Optical character recognition.
In the OCR section, we optimized the optical processing, tilt processing, and flip detection of the collected images, greatly improving the accuracy of character recognition.
Age recognition.
Classify the identified individuals into 8 age groups.
Face det and Age recognition.
Combining facial detection module to classify people into 8 age groups.
Yolov8 Detection.
Mainly used for object detection tasks, it can quickly detect 80 different targets and achieve fast and accurate image analysis.
Add command for model list. You can list the currently supported models and serial connection methods of the system through commands. In future versions, model related information will be dynamically listed based on the actual situation inside the code.
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.
Alpha release
The basic struct of the NN framework. Intended to facilitate users to quickly get started with C3V NN projects, and to use this framework to easily build complex multi-model comprehensive applications. At present, it mainly includes model building and NN application function combination, message passing and log management functions, and other functions will continue to be improved according to the goal in the future.
Serialization mechanism, achieving serial links between output and input of multiple models, the concept of a pipeline is similar to the derectshow.
Message mechanism to achieve real-time transmission of output results or status information within the system.
Provide various forms of sample DEMOs.
From a system perspective, provide sample codes in the form of single model and multiple model collaborations.
From a functional perspective, provide official examples such as yolov5, yolov5&person attr, face detection, etc. for user reference.
A complete log management mechanism can achieve multi-level control such as TIMING, FATAL, ERROR, WARN, INFO, DEBUG, VERB, etc. The release version defaults to the ERROR level. This mechanism has a standardized log flag that can be refined to module control, supports custom tags, millisecond timestamps, and can be directly saved to a file, supporting subsequent chart analysis.
A standardized make&release mechanism provides standard compilation scripts without the need for users to worry. A single command completes all compilation tasks, and the generated sample app and libs are standardized to the default specified directory, making it convenient for users to access.
The source code is not currently open source for this release, libs, header files and a sample app will be provided for this release. Customers can use our sample demos or add them to their own applications to achieve predetermined functions.
At the same time, we will produce an SOP that provides a detailed description of what is necessary to easily add a multi model combination NN application.
We will open source the code during the Beta release, and at that time, the NN framework will have a better data transmission mechanism, a more convenient process for adding models, and the addition of official models.