summaryrefslogtreecommitdiff
path: root/source/application
AgeCommit message (Collapse)Author
2023-08-29MLECO-4260: Replace raw C++ pointers with smart variantsLiam Barry
Model: Added std::unique_ptr qualifier to Model.cc member and used make_unique when creating interpreter object Removed custom destructor and un-necessary memory cleanup following failed allocation DataStructures: Refactored array 2d to use a std::vector under the hood. This should preserve desired attributes including contiguous memory while removing the need for custom destructor. Original size function renamed to dimSize to avoid confusion with vector.size() Accompanying changes made to preprocessing and ASR tests. AppContext: Replaced use of raw pointers in AppContext.hpp. Previously a std::map including IAttribute pointers required individual deallocation as they were allocated using new. Signed-off-by: Liam Barry <liam.barry@arm.com> Change-Id: I1a34dce5dea6ecf4883a9ada3a20f827eb6e6d6b
2023-07-28MLECO-4246: Bug fix MLEK hardfault when SRAM exceededLiam Barry
GCC builds of inference runner hardfault when tensor allocation fails. Traced to duplicated delete calls on interpreter member variable in app code and ~Model() which has undefined behaviour Signed-off-by: Liam Barry <liam.barry@arm.com> Change-Id: I3872338b4fdc3c25aa26a5cd55991cd575da5a3c
2023-05-30MLECO-4065 MLECO-4066: Updating to 23.05 dependenciesRichard Burton
* Update dependencies to 23.05 versions * Fix for a break caused by changes in TensorFlow Lite Micro * Update release notes Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: Id2f60ea574aab982911125bdcb513adb8edc723d
2023-03-21MLECO-3802: [Maintenance] Remove Pillow warning23.02Isabella Gottardi
- Image.Resampling.BILINEAR replace deprecated Image.BILINEAR - Trivial documentation fixes Change-Id: Ia75af2d2bf171085d4a0a2c472f0e3f94dbdc5b9 Signed-off-by: Isabella Gottardi <isabella.gottardi@arm.com>
2023-03-15MLECO-3666: Updating to 23.02 dependencies.23.02-rc1Kshitij Sisodia
Updating dependency submodules to 23.02 versions. See https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u/+/refs/tags/23.02/23.02.json Change-Id: If0e396decadc1b4e3c6b263c65f75ccf0dafed28 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2023-02-13MLECO-2709: Inclusive language updateConor Kennedy
* Update various files to use inclusive language Signed-off-by: Conor Kennedy <conor.kennedy@arm.com> Change-Id: I538f61a400e1d58acb6397bb5e2ba3d912196314
2022-12-19MLECO-3611: Formatting fixes for generated files.Kshitij Sisodia
Template files updated for generated files to adhere to coding guidelines and clang format configuration. There will still be unavoidable violations, but most of the others have been fixed. Change-Id: Ia03db40f8c62a369f2b07fe02eea65e41993a523 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-12-06MLECO-3710: Fix for freshly updated submodule build issue.Kshitij Sisodia
TensorFlow Lite Micro can have stale third party components downloaded by an older version. On a submodule update, our recommendation to users would be to use `-DTENSORFLOW_LITE_MICRO_CLEAN_DOWNLOADS=ON` to clean the older downloads. Moving the triggered cleaning and refresh to CMake configuration stage (with no parallel build option). This should have a better chance of success with the subsequent build step. Change-Id: I305439c09658f49765ecc15eb1ce0c8b914dd30a
2022-12-01MLECO-3620 MLECO-3619: Update to 22.11 dependencies22.11-rc122.11Richard Burton
* CMSIS-NN is now a seperate dependency * Added inclusive language commitment * TensorFlow Lite Micro dependency is moved ahead of 22.11 to fix compilation issue Change-Id: I60e3311ff7da2ce064cbcdca054a86bdd1f620d8
2022-11-17MLECO-3583: Update copyright notice according to new guidelinesRichard Burton
Change-Id: I0f057b33993e5196a60e52f4fb0c60e09693dcfe
2022-10-12MLECO-3100: Added summary document of use-casesKshitij Sisodia
Update for use-case API and CMSIS pack. Change-Id: Ic730a80fa43ba2a6e3eaa05333b61d3e1677b04e Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-10-06MLECO-3164: Additional refactoring of KWS APIRichard Burton
Part 1 * Add KwsClassifier * KwsPostProcess can now be told to average results * Averaging is handlded by KwsClassifier * Current sliding window index is now an argument of DoPreProcess Change-Id: I07626da595ad1cbd982e8366f0d1bb56d1040459
2022-09-01MLECO-3395: Fix high coverity issueMaksims Svecovs
Most of the issues identified by coverity scan as high are false-positives revolving around intrinsics of lambda-function in C++. This patch fixes high risk reports about function pointer not being initialized. Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com> Change-Id: I52998ed4603ca943568f7bec5cb0d6a77731b02f
2022-08-25MLECO-3252: Minor documentation additionsKshitij Sisodia
Documentation md files added under source tree with links to the main docs. Minor updates to FAQs for MLECO-3251 as well. Change-Id: Ifdcc587f2fcf77228fd46e211d3f9c3963bc9b97 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-05-23MLECO-3225: Using official support for Arm Cortex-M85 CPU.Kshitij Sisodia
* CMake version requirement bumped up to 3.21.0 * CMake 3.22.4 installed in the local Python virtualenv * CPU flags updated in toolchain files. * Using __ARM_FEATURE_DSP instead of potentially defining ARM_MATH_DSP wrongly. * CMake project version bumped up to 22.05.0 Changes also made for MLECO-3107 (pack generation): * TensorFlow Lite Micro CMSIS-pack version updated to 1.22.02. * Change to using __ARM_FEATURE_DSP will also help the generated pack. Partial changes for MLECO-3095: * CMSIS updated to version post 5.9.0 * TensorFlow Lite Micro updated to latest available * Ethos-U driver and core-platform repositories updated to 20.05_rc2 tags. Change-Id: I012c9e65897aed8ce589cff9bfe3a19efc3edeb9 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-05-20Remove dependency on extern defined constants from OD use caseRichard Burton
OD API now takes in these paramaters as part of the constructor Change-Id: I4cce25e364b2a99847b4540440db059997f6a81b
2022-05-13MLECO-3101: Minor changes for CMSIS packKshitij Sisodia
Improvements based on feedback from initial tests done with the generated pack. Change-Id: Ia769dd6264c53e6b9337473e1c50bdfa6469a216 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-05-12MLECO-3186: Each use case should same namespace convention as KWS and ASRLiam Barry
Certain UCs required additional work due to case context variables which also became part of a namespace in generated files. Solution was to declare these extra variables as part of the UC namespace in the respective model.hpp files. Additional changes to standardise use of namespaces may be required - proposing new task. Minor typo and rewording of customizing.md in relevant sections included. Signed-off-by: Liam Barry <liam.barry@arm.com> Change-Id: Ie78f82a30be252cb841136ea5115f21fc8d762cb
2022-05-06MLECO-3183: Refactoring application sourcesKshitij Sisodia
Platform agnostic application sources are moved into application api module with their own independent CMake projects. Changes for MLECO-3080 also included - they create CMake projects individial API's (again, platform agnostic) that dependent on the common logic. The API for KWS_API "joint" API has been removed and now the use case relies on individual KWS, and ASR API libraries. Change-Id: I1f7748dc767abb3904634a04e0991b74ac7b756d Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-05-04MLECO-3173: Add AD, KWS_ASR and Noise reduction use case API'sRichard Burton
Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: I36f61ce74bf17f7b327cdae9704a22ca54144f37
2022-05-03MLECO-3178: Fix for error reportingKshitij Sisodia
TensorFlow Lite Micro's error reporting fix with some minor wiring changes. Change-Id: Ib011ab132c82db5809b75a7c4b983a3db2a808d6
2022-04-22MLECO-3174: Minor refactoring to implemented use case APISRichard Burton
Looks large but it is mainly just many small adjustments Removed the inference runner code as it wasn't used Fixes to doc strings Consistent naming e.g. Asr/Kws instead of ASR/KWS Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: I43b620b5c51d7910a29a63b509ac4d8a82c3a8fc
2022-04-08MLECO-3070: Further HAL cleanup.Kshitij Sisodia
Cleaning up HAL sources by removing unnecessary redirections with function pointers. The "platform packages" under HAL are now streamlined enough to not need any major HAL wrapping (as was the case before). This allows us to have a very thin HAL layer that sits on top of the platform and compnent packs. Also helps in getting rid of "hal platform" pointer being passed around in the code to use any HAL functionality. Change-Id: I04b2057f972aad7a5cfb4a396bcdf147c9f9ef1c Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-04-07MLECO-3079: Implement image classification APIRichard Burton
All ML related work for image classification seperated out and accessed via new Runner Further work to improve profiling integration to be done in follow up ticket: MLECO-3154 Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: I0fe0550c932241a2d335a560ecb7abc329c934e9
2022-04-06MLECO-3096: Removing data_acq and data_psnKshitij Sisodia
Further to the HAL refactoring done in previous commits, this CR simpifies HAL by removing data_acq and data_psn "modules". The associated function pointers have been removed. Change-Id: I04c194c08dfe0aff98ce4e0f0f056bac254c137d Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-03-28MLECO-2917 Replacing platform CMake definitions with headersKshitij Sisodia
Moving away from CMake description of targets and generation of platform header files (for memory addresses and IRQ numbers). Instead these headers are part of the repository under their respective platform-driver packages under HAL sources. Change-Id: I9bd3e68eb17385f8b93eb3d8d76b212ce0e1a6d5 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2022-02-28MLECO-2976: Configurable Ethos-U cache size for Dedicated_SramIsabella Gottardi
MLECO-2949: Platform drivers should own NPU and TA init Change-Id: I13606a0197f137816bae803eb9d7d46c358b5fb8 Signed-off-by: Isabella Gottardi <isabella.gottardi@arm.com>
2022-02-14MLECO-2874: Move NMS out of the OD use_caseRichard Burton
* Add ImageUtils * Move image related code from UseCaseCommonUtils to ImageUtils * Move NMS related code to ImageUtils * Delete test specific ImageUtils and use new ImageUtils Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: Icbf5dd9c6a941b0126ecdf69a0c9d9969f22729f
2022-02-14MLECO-2970: Moving Profiler out as a CMake target.Kshitij Sisodia
Profiler is a stand alone static lib that will depend on log and hal targets. Change-Id: Ibbff289c6760982f54ae278d95a054e73db018c8
2022-02-10MLECO-2682: CMake and source refactoring.alexander
MLECO-2930: logging macros were extracted from hal.h and used separately around the code. MLECO-2931: arm_math lib introduced, cmsis-dsp removed from top level linkage. MLECO-2915: platform related post-build steps. Change-Id: Id718884e22f262a5c070ded3f3f5d4b048820147 Signed-off-by: alexander <alexander.efremov@arm.com>
2022-02-08MLECO-2873: Object detection usecase follow-upIsabella Gottardi
Change-Id: Ic14e93a50fb7b3f3cfd9497bac1280794cc0fc15 Signed-off-by: Isabella Gottardi <isabella.gottardi@arm.com>
2022-02-02MLECO-2855: Move profiling outside application/mainIsabella Gottardi
Change-Id: I182bfa55b5ae743d6f0b9f5c766b746202a7968d Signed-off-by: Isabella Gottardi <isabella.gottardi@arm.com>
2022-01-25MLECO-2872 Minor improvement to CommonUseCaseUtilsLiam Barry
Replaced overloaded PresentInferenceresults with single function and removed logic to handle arguments which are no longer passed. Change-Id: I745271638fcf78b7121c2a4b95844b752643bac2 Signed-off-by: Liam Barry <liam.barry@arm.com>
2021-12-30MLECO-2816: Trivial fix for inference runner output.Kshitij Sisodia
Aligning with output from other use cases, inference runner output now prints the number of inferences as one. Change-Id: Ifc03385a5de86477508fe8c377d481b7140a8429 Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
2021-12-24MLECO-2599: Replace DSCNN with MicroNet for KWSKshitij Sisodia
Added SoftMax function to Mathutils to allow MicroNet to output probability as it does not nativelu have this layer. Minor refactoring to accommodate Softmax Calculations Extensive renaming and updating of documentation and resource download script. Added SoftMax function to Mathutils to allow MicroNet to output probability. Change-Id: I7cbbda1024d14b85c9ac1beea7ca8fbffd0b6eb5 Signed-off-by: Liam Barry <liam.barry@arm.com>
2021-12-10MLECO-2684: Standardize LCD behaviourRichard Burton
* LCD display behavior for Run All now matches Run Next * Remove repeated code Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: I16706187fd4e7a59dd935783f5bfb8731435f381
2021-12-07MLECO-2723: Updating RNNoise to use 512 frame sizeRichard Burton
* CMSIS-DSP acceleration will now be used for FFT in RNNoise pre-processing * PESQ scores tested and similar Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: Ifeebc041f58867909b27c948950e08f8f39ef276
2021-11-26MLECO-2592: Moving to latest stack of dependenciesRichard Burton
* Currently using 21.11 release candidates Signed-off-by: Richard Burton <richard.burton@arm.com> Change-Id: I696b48c3a4c87c5dca3bbee957049790d900b48e
2021-11-25MLECO-2426: Support for new Corstone-300 app note AN552 rev B.Kshitij Sisodia
These changes will limit the use of FPGA internal SRAM from a max of 4MiB to 2MiB and the BRAM from 2MiB to 1MiB. Change-Id: I69c8e695aee26ff4f235bfe83ffd26efbd66f547
2021-11-18MLECO-2525 Upgrade to C++ 14ayamas01
-Updated CMake to use C++ 14 -Removed cmsis makefile include from tensorflow.cmake -Documentation update -Added more flags for processor in CMake Change-Id: I1c2b72141e98a5cf8bb09176d7c331da3b05b4c5
2021-10-25MLECO-2458 and MLECO-2476 [Fix] VWW IFM quant stepIsabella Gottardi
* Changed image->cc conversion to be similar with preprocessing of img_class and vww models: images are scaled maintaing the aspect ration and then the centre crop of the correct size is taken. * VWW applies input quantization info to the int8 image (prior converted to [0,1] float range). * Changed adult_blur to a image without person. * Fix menu print when selecting a specific ifm to run (Select message was displayed after typing something) Change-Id: Ie6cde7ab4835ea842667b87397458a5d32131df3
2021-10-22MLECO-2489: Minor addition for PlatformMathKshitij Sisodia
Adding sine function and allowing FFTs to be computed for cases where the FFT len is not a power of 2. In this case, the naive implementation is used. Option for computing FFT for a complex vector has also been added, although, the CMSIS-DSP flow needs to be tested. Change-Id: Iad9902b946f3088de91a5f67acfb4cb3d0b00457
2021-10-05MLECO-2395: Allow users to select Ethos-U memory modeIsabella Gottardi
Change-Id: Icf09410f12072e8d7850dd1e540c3243af24ed09
2021-10-04MLECO-2407: Correction for Cortex-M55 core clockKshitij Sisodia
AN547 sets the core clock for both M55 and U55 to 32MHz, while the blocks on APB use a different clock of 25MHz. Note: this will have not change any of the MPS3 FPGA profiling numbers (cycle counts and elapsed time in milliseconds) for Cortex-M55 as this was already using the correct counters under MPS3. The only difference would be that the system tick interrupt will fire every 10ms as intended instead of every 7.8125 ms as it is doing with current software. Change-Id: I77cd269c7c02f5d6e65328eb285185bae74e4e36
2021-09-28MLECO-2348: Update dependencies to 21.08Cisco Cervellera
* Update all dependancies to 21.08 * Refactoring to fit the new changes Change-Id: Icc2ae3628ee6e8fbc0af2cd8f91e368c9ccae053
2021-09-24MLECO-2345: Adding dynamic load support for FVPsKshitij Sisodia
With this patch, the generic inference runner use-case can be configured to accept the model tflite file at run-time via the FVP's command line parameters. Same is true for the IFM and the inference results can be dumped out too. NOTE: this change is only for supporting the FVP, the FPGA implementation will not allow additional loading for the changes in this patch to be useful. Change-Id: I1318bd5b0cfb7bb635ced6fe58d22c3e401d2547
2021-09-16MLECO-2082: Adding visual wake word use case21.08Éanna Ó Catháin
MLECO-2083: Refactoring img_class and visual wake word *Added source files for visual wake word *Added tests *Added docs *Added new images for visual wake word demo *Refactored common functions in img_class, visual wake word and other usecases Change-Id: Ibd25854e19a5517f940a8d3086a5d4835fab89e9 Signed-off-by: Éanna Ó Catháin <eanna.ocathain@arm.com>
2021-09-15MLECO-2135: Memory leak bugCisco Cervellera
The ApplicationContext::Set function allocates always new memory for the attibute. When called multiple times (like it is done in most of the UseCaseHandler) this will generate a memory leak. The function now checks if the attibute exists; If it does it frees the memory and then allocate memory for the new attribute. Change-Id: I21db10009d6d0e360eab2dd33c344ef72eafe77f
2021-09-07MLECO-2160: Error repor when Ethos-U is not usedCisco Cervellera
Change-Id: I0dab5308bf5c3eba9b4bb2c9bf0939ac9598d2f6
2021-09-02MLECO-2226 Fix for for loop in complex magnitude calculationÉanna Ó Catháin
Change-Id: Id5c09851d4377cc52039a4988df93cfd84dab9c0 Signed-off-by: Éanna Ó Catháin <eanna.ocathain@arm.com>