feat: Update NNSDK path and library linking in CMake configurations and Android build script, and add a new script to build all Android examples.
This commit is contained in:
parent
79a2bd27f6
commit
21105e3db7
35 changed files with 1438 additions and 1222 deletions
29
README.md
29
README.md
|
|
@ -68,6 +68,35 @@ pre-build models:
|
|||
- means currently supported.
|
||||
|
||||
# Examples Compile
|
||||
## AMLNN SDK Setup
|
||||
|
||||
The C++ demos depend on the **AMLNN nnsdk** runtime library. The build system resolves it using the following priority order:
|
||||
|
||||
**Priority 1 – Environment variable (recommended)**
|
||||
|
||||
```bash
|
||||
export AMLNN_HOME=/path/to/amlnn-toolkit
|
||||
```
|
||||
|
||||
**Priority 2 – CMake auto-find (`FindAMLNN.cmake`)**
|
||||
|
||||
Handled automatically via `cmake/FindAMLNN.cmake` in the project root — useful in IDE and CI environments.
|
||||
|
||||
**Priority 3 – Sibling directory fallback**
|
||||
|
||||
If `AMLNN_HOME` is not set, the script automatically looks for `amlnn-toolkit` as a sibling directory:
|
||||
```
|
||||
modelzoo/
|
||||
├── amlnn-model-playground/ ← this repo
|
||||
└── amlnn-toolkit/ ← SDK placed here automatically found
|
||||
```
|
||||
|
||||
Clone it with:
|
||||
```bash
|
||||
git clone git@github.com:Amlogic-NN/amlnn-toolkit.git ../amlnn-toolkit
|
||||
```
|
||||
|
||||
|
||||
|
||||
Each **example** directory contains a **build-android.sh** and build-linux.sh **script**. For compilation steps, refer to **Chapter 4** of the **README.md** file in the corresponding example directory.
|
||||
|
||||
|
|
|
|||
64
cmake/FindAMLNN.cmake
Normal file
64
cmake/FindAMLNN.cmake
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
# FindAMLNN.cmake
|
||||
# ---------------------------------------------------------------------------
|
||||
# Locates the AMLNN nnsdk headers and libraries.
|
||||
#
|
||||
# Inputs (set before calling find_package):
|
||||
# AMLNN_HOME – root of the amlnn-toolkit (contains nn_runtime/)
|
||||
# May also be supplied as the environment variable AMLNN_HOME.
|
||||
#
|
||||
# Outputs:
|
||||
# AMLNN_INCLUDE_DIR – path to nnsdk include dir
|
||||
# AMLNN_LIBRARY_DIR – path to the ABI-specific library dir (use link_directories)
|
||||
# AMLNN_LIBRARY – "nnsdk" (library name, no prefix/suffix)
|
||||
# AMLNN_FOUND
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# Resolve AMLNN_HOME: CMake variable → env var → relative sibling fallbacks
|
||||
if(NOT AMLNN_HOME)
|
||||
if(DEFINED ENV{AMLNN_HOME} AND NOT "$ENV{AMLNN_HOME}" STREQUAL "")
|
||||
set(AMLNN_HOME "$ENV{AMLNN_HOME}")
|
||||
elseif(EXISTS "${CMAKE_SOURCE_DIR}/../../../../../amlnn-toolkit/nn_runtime")
|
||||
set(AMLNN_HOME "${CMAKE_SOURCE_DIR}/../../../../../amlnn-toolkit")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT AMLNN_HOME)
|
||||
message(FATAL_ERROR
|
||||
"AMLNN_HOME not found.\n"
|
||||
"Please set the AMLNN_HOME environment variable (or CMake variable) "
|
||||
"to the root of the amlnn-toolkit directory, e.g.:\n"
|
||||
" export AMLNN_HOME=/path/to/amlnn-toolkit\n"
|
||||
" cmake ... -DAMLNN_HOME=/path/to/amlnn-toolkit")
|
||||
endif()
|
||||
|
||||
get_filename_component(AMLNN_HOME "${AMLNN_HOME}" ABSOLUTE)
|
||||
|
||||
set(AMLNN_NNSDK_ROOT "${AMLNN_HOME}/nn_runtime/nnsdk")
|
||||
set(AMLNN_INCLUDE_DIR "${AMLNN_NNSDK_ROOT}/include")
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||
if(ANDROID_ABI STREQUAL "arm64-v8a")
|
||||
set(AMLNN_LIBRARY_DIR "${AMLNN_NNSDK_ROOT}/android/arm64-v8a")
|
||||
else()
|
||||
set(AMLNN_LIBRARY_DIR "${AMLNN_NNSDK_ROOT}/android/armeabi-v7a")
|
||||
endif()
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
set(AMLNN_LIBRARY_DIR "${AMLNN_NNSDK_ROOT}/linux/yocto/aarch64-poky-linux")
|
||||
else()
|
||||
set(AMLNN_LIBRARY_DIR "${AMLNN_NNSDK_ROOT}/linux/yocto/aarch64-poky-linux")
|
||||
endif()
|
||||
|
||||
set(AMLNN_LIBRARY "nnsdk")
|
||||
|
||||
# Validate paths
|
||||
if(NOT EXISTS "${AMLNN_INCLUDE_DIR}")
|
||||
message(FATAL_ERROR "AMLNN include dir not found: ${AMLNN_INCLUDE_DIR}\n(AMLNN_HOME=${AMLNN_HOME})")
|
||||
endif()
|
||||
if(NOT EXISTS "${AMLNN_LIBRARY_DIR}")
|
||||
message(FATAL_ERROR "AMLNN library dir not found: ${AMLNN_LIBRARY_DIR}\n(AMLNN_HOME=${AMLNN_HOME})")
|
||||
endif()
|
||||
|
||||
set(AMLNN_FOUND TRUE)
|
||||
message(STATUS "Found AMLNN: ${AMLNN_HOME}")
|
||||
message(STATUS " AMLNN_INCLUDE_DIR: ${AMLNN_INCLUDE_DIR}")
|
||||
message(STATUS " AMLNN_LIBRARY_DIR: ${AMLNN_LIBRARY_DIR}")
|
||||
|
|
@ -41,20 +41,43 @@ while getopts 'a:h' opt; do
|
|||
esac
|
||||
done
|
||||
|
||||
if [ -z "${ANDROID_NDK_PATH}" ]; then
|
||||
if [ -n "${ANDROID_NDK}" ]; then
|
||||
ANDROID_NDK_PATH=${ANDROID_NDK}
|
||||
elif [ -n "${ANDROID_NDK_HOME}" ]; then
|
||||
ANDROID_NDK_PATH=${ANDROID_NDK_HOME}
|
||||
else
|
||||
echo "Error: ANDROID_NDK_PATH is not set."
|
||||
echo "Please set ANDROID_NDK_PATH to your Android NDK directory."
|
||||
SCRIPT_DIR=$(cd "$(dirname $0)" && pwd)
|
||||
|
||||
# Priority 1: Environment variable (recommended)
|
||||
if [ -n "$AMLNN_HOME" ]; then
|
||||
if [ ! -d "$AMLNN_HOME/nn_runtime" ]; then
|
||||
echo "Error: AMLNN_HOME is set to '$AMLNN_HOME' but nn_runtime was not found there."
|
||||
echo "Please check your AMLNN_HOME path."
|
||||
exit 1
|
||||
fi
|
||||
RUNTIME_PATH="$AMLNN_HOME/nn_runtime"
|
||||
echo "Priority 1: Using AMLNN_HOME from environment: $AMLNN_HOME"
|
||||
# Priority 3: Fallback to sibling amlnn-toolkit (compatibility)
|
||||
elif [ -d "${SCRIPT_DIR}/../../amlnn-toolkit/nn_runtime" ]; then
|
||||
export AMLNN_HOME="$(cd "${SCRIPT_DIR}/../../amlnn-toolkit" && pwd)"
|
||||
RUNTIME_PATH="$AMLNN_HOME/nn_runtime"
|
||||
echo "Priority 3: Using sibling amlnn-toolkit as fallback: $AMLNN_HOME"
|
||||
elif [ -d "${SCRIPT_DIR}/../../amlnn-toolkit-a/nn_runtime" ]; then
|
||||
export AMLNN_HOME="$(cd "${SCRIPT_DIR}/../../amlnn-toolkit-a" && pwd)"
|
||||
RUNTIME_PATH="$AMLNN_HOME/nn_runtime"
|
||||
echo "Priority 3: Using sibling amlnn-toolkit-a as fallback: $AMLNN_HOME"
|
||||
else
|
||||
echo ""
|
||||
echo "Error: AMLNN SDK not found."
|
||||
echo ""
|
||||
echo "Please do one of the following:"
|
||||
echo ""
|
||||
echo " Option A (recommended) – set AMLNN_HOME:"
|
||||
echo " export AMLNN_HOME=/path/to/amlnn-toolkit"
|
||||
echo " ./build-android-all.sh"
|
||||
echo ""
|
||||
echo " Option B – clone amlnn-toolkit as a sibling directory:"
|
||||
echo " git clone git@github.com:Amlogic-NN/amlnn-toolkit.git ../../../amlnn-toolkit"
|
||||
echo " ./build-android-all.sh"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SCRIPT_DIR=$(cd "$(dirname $0)" && pwd)
|
||||
|
||||
echo "============================================"
|
||||
echo "Building all Android examples"
|
||||
echo "NDK_PATH: ${ANDROID_NDK_PATH}"
|
||||
|
|
@ -93,6 +116,10 @@ for EXAMPLE in "${EXAMPLES[@]}"; do
|
|||
echo "Building: ${EXAMPLE}"
|
||||
echo "--------------------------------------------"
|
||||
|
||||
# Clean previous build to avoid stale CMake cache
|
||||
echo "Cleaning: ${EXAMPLE_DIR}/build/android"
|
||||
rm -rf "${EXAMPLE_DIR}/build/android"
|
||||
|
||||
if bash "${BUILD_SCRIPT}" -a "${TARGET_ABI}"; then
|
||||
SUCCEEDED+=("${EXAMPLE}")
|
||||
echo "[SUCCESS] ${EXAMPLE}"
|
||||
|
|
|
|||
|
|
@ -18,6 +18,20 @@ TO DO
|
|||
|
||||
#### 1. Compile
|
||||
|
||||
#### AMLNN SDK Setup
|
||||
|
||||
Resolve the AMLNN nnsdk dependency using one of the following methods:
|
||||
|
||||
- **Priority 1 – Environment variable (recommended)**
|
||||
```bash
|
||||
export AMLNN_HOME=/path/to/amlnn-toolkit
|
||||
```
|
||||
- **Priority 3 – Sibling directory fallback** *(automatic)*
|
||||
Place `amlnn-toolkit` as a sibling to `amlnn-model-playground`:
|
||||
```bash
|
||||
git clone git@github.com:Amlogic-NN/amlnn-toolkit.git ../amlnn-toolkit
|
||||
```
|
||||
|
||||
**Prerequisites:**
|
||||
- Android NDK (r25e recommended)
|
||||
- `ANDROID_NDK_PATH` environment variable set
|
||||
|
|
|
|||
|
|
@ -65,7 +65,8 @@ echo "BUILD_DIR: ${BUILD_DIR}"
|
|||
mkdir -p ${BUILD_DIR}
|
||||
cd ${BUILD_DIR}
|
||||
|
||||
cmake ../../src \
|
||||
cmake -Wno-dev ../../src \
|
||||
-DAMLNN_HOME=${AMLNN_HOME:-} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake \
|
||||
-DANDROID_ABI=${TARGET_ABI} \
|
||||
-DANDROID_PLATFORM=android-24 \
|
||||
|
|
|
|||
|
|
@ -1,16 +1,13 @@
|
|||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.10...3.27)
|
||||
project(clip_demo)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Set NNSDK path
|
||||
if(NOT DEFINED NNSDK_DIR)
|
||||
set(NNSDK_DIR "${CMAKE_SOURCE_DIR}/../../../../../amlnn-toolkit/nn_runtime/nnsdk")
|
||||
endif()
|
||||
set(NNSDK_ROOT "${NNSDK_DIR}")
|
||||
message(STATUS "NNSDK_ROOT: ${NNSDK_ROOT}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../../../../cmake")
|
||||
find_package(AMLNN REQUIRED)
|
||||
include_directories(${AMLNN_INCLUDE_DIR})
|
||||
link_directories(${AMLNN_LIBRARY_DIR})
|
||||
|
||||
include_directories(${NNSDK_ROOT}/include)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/../../../../common)
|
||||
|
||||
# Set 3rdparty path
|
||||
|
|
@ -22,15 +19,8 @@ include_directories(${3RDPARTY_DIR}/stb_image)
|
|||
include_directories(${3RDPARTY_DIR}/json)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||
if (ANDROID_ABI STREQUAL "arm64-v8a")
|
||||
link_directories(${NNSDK_ROOT}/android/arm64-v8a)
|
||||
else()
|
||||
link_directories(${NNSDK_ROOT}/android/armeabi-v7a)
|
||||
endif()
|
||||
# Android needs log
|
||||
link_libraries(log)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
link_directories(${NNSDK_ROOT}/linux/yocto/aarch64-poky-linux)
|
||||
endif()
|
||||
|
||||
add_executable(${PROJECT_NAME}
|
||||
|
|
@ -41,7 +31,7 @@ add_executable(${PROJECT_NAME}
|
|||
)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
nnsdk
|
||||
${AMLNN_LIBRARY}
|
||||
dl
|
||||
m
|
||||
)
|
||||
|
|
|
|||
|
|
@ -16,6 +16,20 @@ for deployment on Amlogic NPU platforms.
|
|||
|
||||
#### 1. Compile
|
||||
|
||||
#### AMLNN SDK Setup
|
||||
|
||||
Resolve the AMLNN nnsdk dependency using one of the following methods:
|
||||
|
||||
- **Priority 1 – Environment variable (recommended)**
|
||||
```bash
|
||||
export AMLNN_HOME=/path/to/amlnn-toolkit
|
||||
```
|
||||
- **Priority 3 – Sibling directory fallback** *(automatic)*
|
||||
Place `amlnn-toolkit` as a sibling to `amlnn-model-playground`:
|
||||
```bash
|
||||
git clone git@github.com:Amlogic-NN/amlnn-toolkit.git ../amlnn-toolkit
|
||||
```
|
||||
|
||||
**Prerequisites:**
|
||||
- Android NDK (r25e recommended)
|
||||
- `ANDROID_NDK_PATH` environment variable set
|
||||
|
|
|
|||
|
|
@ -49,7 +49,8 @@ echo "BUILD_DIR: ${BUILD_DIR}"
|
|||
mkdir -p ${BUILD_DIR}
|
||||
cd ${BUILD_DIR}
|
||||
|
||||
cmake ../../src \
|
||||
cmake -Wno-dev ../../src \
|
||||
-DAMLNN_HOME=${AMLNN_HOME:-} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake \
|
||||
-DANDROID_ABI=${TARGET_ABI} \
|
||||
-DANDROID_PLATFORM=android-24 \
|
||||
|
|
|
|||
|
|
@ -1,31 +1,21 @@
|
|||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.10...3.27)
|
||||
project(mobilenet_v2_demo)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Set NNSDK path
|
||||
if(NOT DEFINED NNSDK_DIR)
|
||||
set(NNSDK_DIR "${CMAKE_SOURCE_DIR}/../../../../../amlnn-toolkit/nn_runtime/nnsdk")
|
||||
endif()
|
||||
set(NNSDK_ROOT "${NNSDK_DIR}")
|
||||
message(STATUS "NNSDK_ROOT: ${NNSDK_ROOT}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../../../../cmake")
|
||||
find_package(AMLNN REQUIRED)
|
||||
include_directories(${AMLNN_INCLUDE_DIR})
|
||||
link_directories(${AMLNN_LIBRARY_DIR})
|
||||
|
||||
include_directories(${NNSDK_ROOT}/include)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/../../../../common)
|
||||
|
||||
# Set dependency path
|
||||
set(3RDPARTY_DIR "${CMAKE_SOURCE_DIR}/../../../../dependency")
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||
if (ANDROID_ABI STREQUAL "arm64-v8a")
|
||||
link_directories(${NNSDK_ROOT}/android/arm64-v8a)
|
||||
else()
|
||||
link_directories(${NNSDK_ROOT}/android/armeabi-v7a)
|
||||
endif()
|
||||
# Android needs log
|
||||
link_libraries(log)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
link_directories(${NNSDK_ROOT}/linux/yocto/aarch64-poky-linux)
|
||||
endif()
|
||||
|
||||
# Find OpenCV
|
||||
|
|
@ -40,5 +30,5 @@ add_executable(mobilenet_v2_demo
|
|||
|
||||
target_link_libraries(mobilenet_v2_demo
|
||||
${OpenCV_LIBS}
|
||||
nnsdk
|
||||
${AMLNN_LIBRARY}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
# PaddleOCR Detection
|
||||
|
||||
## 4. Demo Run
|
||||
|
||||
### CPP
|
||||
|
||||
#### 1. Compile
|
||||
|
||||
#### AMLNN SDK Setup
|
||||
|
||||
Resolve the AMLNN nnsdk dependency using one of the following methods:
|
||||
|
||||
- **Priority 1 – Environment variable (recommended)**
|
||||
```bash
|
||||
export AMLNN_HOME=/path/to/amlnn-toolkit
|
||||
```
|
||||
- **Priority 3 – Sibling directory fallback** *(automatic)*
|
||||
Place `amlnn-toolkit` as a sibling to `amlnn-model-playground`:
|
||||
```bash
|
||||
git clone git@github.com:Amlogic-NN/amlnn-toolkit.git ../amlnn-toolkit
|
||||
```
|
||||
|
||||
**Prerequisites:**
|
||||
- Android NDK r25c
|
||||
- `ANDROID_NDK_PATH` environment variable set
|
||||
|
||||
**Build:**
|
||||
```bash
|
||||
# Build for arm64-v8a
|
||||
cd examples/ppocr-det/cpp
|
||||
./build-android.sh -a arm64-v8a
|
||||
```
|
||||
|
||||
The executable will be generated in `build/android/`.
|
||||
|
|
@ -65,7 +65,8 @@ echo "BUILD_DIR: ${BUILD_DIR}"
|
|||
mkdir -p ${BUILD_DIR}
|
||||
cd ${BUILD_DIR}
|
||||
|
||||
cmake ../../src \
|
||||
cmake -Wno-dev ../../src \
|
||||
-DAMLNN_HOME=${AMLNN_HOME:-} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake \
|
||||
-DANDROID_ABI=${TARGET_ABI} \
|
||||
-DANDROID_PLATFORM=android-24 \
|
||||
|
|
|
|||
|
|
@ -1,31 +1,21 @@
|
|||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.10...3.27)
|
||||
project(yolo_world_demo)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Set NNSDK path
|
||||
if(NOT DEFINED NNSDK_DIR)
|
||||
set(NNSDK_DIR "${CMAKE_SOURCE_DIR}/../../../../../amlnn-toolkit/nn_runtime/nnsdk")
|
||||
endif()
|
||||
set(NNSDK_ROOT "${NNSDK_DIR}")
|
||||
message(STATUS "NNSDK_ROOT: ${NNSDK_ROOT}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../../../../cmake")
|
||||
find_package(AMLNN REQUIRED)
|
||||
include_directories(${AMLNN_INCLUDE_DIR})
|
||||
link_directories(${AMLNN_LIBRARY_DIR})
|
||||
|
||||
include_directories(${NNSDK_ROOT}/include)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/../../../../common)
|
||||
|
||||
# Set 3rdparty path
|
||||
set(3RDPARTY_DIR "${CMAKE_SOURCE_DIR}/../../../../dependency")
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||
if (ANDROID_ABI STREQUAL "arm64-v8a")
|
||||
link_directories(${NNSDK_ROOT}/android/arm64-v8a)
|
||||
else()
|
||||
link_directories(${NNSDK_ROOT}/android/armeabi-v7a)
|
||||
endif()
|
||||
# Android needs log
|
||||
link_libraries(log)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
link_directories(${NNSDK_ROOT}/linux/yocto/aarch64-poky-linux)
|
||||
endif()
|
||||
|
||||
# Find OpenCV
|
||||
|
|
@ -44,5 +34,5 @@ add_executable(paddleocr_det_demo
|
|||
|
||||
target_link_libraries(paddleocr_det_demo
|
||||
${OpenCV_LIBS}
|
||||
nnsdk
|
||||
${AMLNN_LIBRARY}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -61,6 +61,20 @@ example
|
|||
|
||||
#### 1. Compile
|
||||
|
||||
#### AMLNN SDK Setup
|
||||
|
||||
Resolve the AMLNN nnsdk dependency using one of the following methods:
|
||||
|
||||
- **Priority 1 – Environment variable (recommended)**
|
||||
```bash
|
||||
export AMLNN_HOME=/path/to/amlnn-toolkit
|
||||
```
|
||||
- **Priority 3 – Sibling directory fallback** *(automatic)*
|
||||
Place `amlnn-toolkit` as a sibling to `amlnn-model-playground`:
|
||||
```bash
|
||||
git clone git@github.com:Amlogic-NN/amlnn-toolkit.git ../amlnn-toolkit
|
||||
```
|
||||
|
||||
**Prerequisites:**
|
||||
- Android NDK (r25e recommended)
|
||||
- `ANDROID_NDK_PATH` environment variable set
|
||||
|
|
|
|||
|
|
@ -65,7 +65,8 @@ echo "BUILD_DIR: ${BUILD_DIR}"
|
|||
mkdir -p ${BUILD_DIR}
|
||||
cd ${BUILD_DIR}
|
||||
|
||||
cmake ../../src \
|
||||
cmake -Wno-dev ../../src \
|
||||
-DAMLNN_HOME=${AMLNN_HOME:-} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake \
|
||||
-DANDROID_ABI=${TARGET_ABI} \
|
||||
-DANDROID_PLATFORM=android-24 \
|
||||
|
|
|
|||
|
|
@ -1,31 +1,21 @@
|
|||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.10...3.27)
|
||||
project(resnet_demo)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Set NNSDK path
|
||||
if(NOT DEFINED NNSDK_DIR)
|
||||
set(NNSDK_DIR "${CMAKE_SOURCE_DIR}/../../../../../amlnn-toolkit/nn_runtime/nnsdk")
|
||||
endif()
|
||||
set(NNSDK_ROOT "${NNSDK_DIR}")
|
||||
message(STATUS "NNSDK_ROOT: ${NNSDK_ROOT}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../../../../cmake")
|
||||
find_package(AMLNN REQUIRED)
|
||||
include_directories(${AMLNN_INCLUDE_DIR})
|
||||
link_directories(${AMLNN_LIBRARY_DIR})
|
||||
|
||||
include_directories(${NNSDK_ROOT}/include)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/../../../../common)
|
||||
|
||||
# Set dependency path
|
||||
set(3RDPARTY_DIR "${CMAKE_SOURCE_DIR}/../../../../dependency")
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||
if (ANDROID_ABI STREQUAL "arm64-v8a")
|
||||
link_directories(${NNSDK_ROOT}/android/arm64-v8a)
|
||||
else()
|
||||
link_directories(${NNSDK_ROOT}/android/armeabi-v7a)
|
||||
endif()
|
||||
# Android needs log
|
||||
link_libraries(log)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
link_directories(${NNSDK_ROOT}/linux/yocto/aarch64-poky-linux)
|
||||
endif()
|
||||
|
||||
# Find OpenCV
|
||||
|
|
@ -33,7 +23,6 @@ message(STATUS "OpenCV_DIR: ${OpenCV_DIR}")
|
|||
find_package(OpenCV REQUIRED)
|
||||
include_directories(${OpenCV_INCLUDE_DIRS})
|
||||
|
||||
|
||||
add_executable(resnet_demo
|
||||
main.cpp
|
||||
postprocess.cpp
|
||||
|
|
@ -42,5 +31,5 @@ add_executable(resnet_demo
|
|||
|
||||
target_link_libraries(resnet_demo
|
||||
${OpenCV_LIBS}
|
||||
nnsdk
|
||||
${AMLNN_LIBRARY}
|
||||
)
|
||||
|
|
@ -58,6 +58,20 @@ example
|
|||
|
||||
#### 1. Compile
|
||||
|
||||
#### AMLNN SDK Setup
|
||||
|
||||
Resolve the AMLNN nnsdk dependency using one of the following methods:
|
||||
|
||||
- **Priority 1 – Environment variable (recommended)**
|
||||
```bash
|
||||
export AMLNN_HOME=/path/to/amlnn-toolkit
|
||||
```
|
||||
- **Priority 3 – Sibling directory fallback** *(automatic)*
|
||||
Place `amlnn-toolkit` as a sibling to `amlnn-model-playground`:
|
||||
```bash
|
||||
git clone git@github.com:Amlogic-NN/amlnn-toolkit.git ../amlnn-toolkit
|
||||
```
|
||||
|
||||
**Prerequisites:**
|
||||
- Android NDK (r25e recommended)
|
||||
- `ANDROID_NDK_PATH` environment variable set
|
||||
|
|
|
|||
|
|
@ -65,7 +65,8 @@ echo "BUILD_DIR: ${BUILD_DIR}"
|
|||
mkdir -p ${BUILD_DIR}
|
||||
cd ${BUILD_DIR}
|
||||
|
||||
cmake ../../src \
|
||||
cmake -Wno-dev ../../src \
|
||||
-DAMLNN_HOME=${AMLNN_HOME:-} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake \
|
||||
-DANDROID_ABI=${TARGET_ABI} \
|
||||
-DANDROID_PLATFORM=android-24 \
|
||||
|
|
|
|||
|
|
@ -1,31 +1,21 @@
|
|||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.10...3.27)
|
||||
project(retinaface_demo)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Set NNSDK path
|
||||
if(NOT DEFINED NNSDK_DIR)
|
||||
set(NNSDK_DIR "${CMAKE_SOURCE_DIR}/../../../../../amlnn-toolkit/nn_runtime/nnsdk")
|
||||
endif()
|
||||
set(NNSDK_ROOT "${NNSDK_DIR}")
|
||||
message(STATUS "NNSDK_ROOT: ${NNSDK_ROOT}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../../../../cmake")
|
||||
find_package(AMLNN REQUIRED)
|
||||
include_directories(${AMLNN_INCLUDE_DIR})
|
||||
link_directories(${AMLNN_LIBRARY_DIR})
|
||||
|
||||
include_directories(${NNSDK_ROOT}/include)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/../../../../common)
|
||||
|
||||
# Set dependency path
|
||||
set(3RDPARTY_DIR "${CMAKE_SOURCE_DIR}/../../../../dependency")
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||
if (ANDROID_ABI STREQUAL "arm64-v8a")
|
||||
link_directories(${NNSDK_ROOT}/android/arm64-v8a)
|
||||
else()
|
||||
link_directories(${NNSDK_ROOT}/android/armeabi-v7a)
|
||||
endif()
|
||||
# Android needs log
|
||||
link_libraries(log)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
link_directories(${NNSDK_ROOT}/linux/yocto/aarch64-poky-linux)
|
||||
endif()
|
||||
|
||||
# Find OpenCV
|
||||
|
|
@ -33,7 +23,6 @@ message(STATUS "OpenCV_DIR: ${OpenCV_DIR}")
|
|||
find_package(OpenCV REQUIRED)
|
||||
include_directories(${OpenCV_INCLUDE_DIRS})
|
||||
|
||||
|
||||
add_executable(retinaface_demo
|
||||
main.cpp
|
||||
postprocess.cpp
|
||||
|
|
@ -42,5 +31,5 @@ add_executable(retinaface_demo
|
|||
|
||||
target_link_libraries(retinaface_demo
|
||||
${OpenCV_LIBS}
|
||||
nnsdk
|
||||
${AMLNN_LIBRARY}
|
||||
)
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
# Whisper
|
||||
|
||||
## 4. Demo Run
|
||||
|
||||
### CPP
|
||||
|
||||
#### 1. Compile
|
||||
|
||||
#### AMLNN SDK Setup
|
||||
|
||||
Resolve the AMLNN nnsdk dependency using one of the following methods:
|
||||
|
||||
- **Priority 1 – Environment variable (recommended)**
|
||||
```bash
|
||||
export AMLNN_HOME=/path/to/amlnn-toolkit
|
||||
```
|
||||
- **Priority 3 – Sibling directory fallback** *(automatic)*
|
||||
Place `amlnn-toolkit` as a sibling to `amlnn-model-playground`:
|
||||
```bash
|
||||
git clone git@github.com:Amlogic-NN/amlnn-toolkit.git ../amlnn-toolkit
|
||||
```
|
||||
|
||||
**Prerequisites:**
|
||||
- Android NDK r25c
|
||||
- `ANDROID_NDK_PATH` environment variable set
|
||||
|
||||
**Build:**
|
||||
```bash
|
||||
# Build for arm64-v8a
|
||||
cd examples/whisper/cpp
|
||||
./build-android.sh -a arm64-v8a
|
||||
```
|
||||
|
||||
The executable will be generated in `build/android/`.
|
||||
|
|
@ -65,7 +65,8 @@ echo "BUILD_DIR: ${BUILD_DIR}"
|
|||
mkdir -p ${BUILD_DIR}
|
||||
cd ${BUILD_DIR}
|
||||
|
||||
cmake ../../src \
|
||||
cmake -Wno-dev ../../src \
|
||||
-DAMLNN_HOME=${AMLNN_HOME:-} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake \
|
||||
-DANDROID_ABI=${TARGET_ABI} \
|
||||
-DANDROID_PLATFORM=android-24 \
|
||||
|
|
|
|||
|
|
@ -1,31 +1,21 @@
|
|||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.10...3.27)
|
||||
project(whisper_demo)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Set NNSDK path
|
||||
if(NOT DEFINED NNSDK_DIR)
|
||||
set(NNSDK_DIR "${CMAKE_SOURCE_DIR}/../../../../../amlnn-toolkit/nn_runtime/nnsdk")
|
||||
endif()
|
||||
set(NNSDK_ROOT "${NNSDK_DIR}")
|
||||
message(STATUS "NNSDK_ROOT: ${NNSDK_ROOT}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../../../../cmake")
|
||||
find_package(AMLNN REQUIRED)
|
||||
include_directories(${AMLNN_INCLUDE_DIR})
|
||||
link_directories(${AMLNN_LIBRARY_DIR})
|
||||
|
||||
include_directories(${NNSDK_ROOT}/include)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/../../../../common)
|
||||
|
||||
# Set 3rdparty path
|
||||
set(3RDPARTY_DIR "${CMAKE_SOURCE_DIR}/../../../../dependency")
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||
if (ANDROID_ABI STREQUAL "arm64-v8a")
|
||||
link_directories(${NNSDK_ROOT}/android/arm64-v8a)
|
||||
else()
|
||||
link_directories(${NNSDK_ROOT}/android/armeabi-v7a)
|
||||
endif()
|
||||
# Android needs log
|
||||
link_libraries(log)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
link_directories(${NNSDK_ROOT}/linux/yocto/aarch64-poky-linux)
|
||||
endif()
|
||||
|
||||
add_executable(${PROJECT_NAME}
|
||||
|
|
@ -38,7 +28,7 @@ add_executable(${PROJECT_NAME}
|
|||
)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
nnsdk
|
||||
${AMLNN_LIBRARY}
|
||||
dl
|
||||
m
|
||||
)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
# YOLOE
|
||||
|
||||
## 4. Demo Run
|
||||
|
||||
### CPP
|
||||
|
||||
#### 1. Compile
|
||||
|
||||
#### AMLNN SDK Setup
|
||||
|
||||
Resolve the AMLNN nnsdk dependency using one of the following methods:
|
||||
|
||||
- **Priority 1 – Environment variable (recommended)**
|
||||
```bash
|
||||
export AMLNN_HOME=/path/to/amlnn-toolkit
|
||||
```
|
||||
- **Priority 3 – Sibling directory fallback** *(automatic)*
|
||||
Place `amlnn-toolkit` as a sibling to `amlnn-model-playground`:
|
||||
```bash
|
||||
git clone git@github.com:Amlogic-NN/amlnn-toolkit.git ../amlnn-toolkit
|
||||
```
|
||||
|
||||
**Prerequisites:**
|
||||
- Android NDK r25c
|
||||
- `ANDROID_NDK_PATH` environment variable set
|
||||
|
||||
**Build:**
|
||||
```bash
|
||||
# Build for arm64-v8a
|
||||
cd examples/yoloe/cpp
|
||||
./build-android.sh -a arm64-v8a
|
||||
```
|
||||
|
||||
The executable will be generated in `build/android/`.
|
||||
|
|
@ -65,7 +65,8 @@ echo "BUILD_DIR: ${BUILD_DIR}"
|
|||
mkdir -p ${BUILD_DIR}
|
||||
cd ${BUILD_DIR}
|
||||
|
||||
cmake ../../src \
|
||||
cmake -Wno-dev ../../src \
|
||||
-DAMLNN_HOME=${AMLNN_HOME:-} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake \
|
||||
-DANDROID_ABI=${TARGET_ABI} \
|
||||
-DANDROID_PLATFORM=android-24 \
|
||||
|
|
|
|||
|
|
@ -1,31 +1,21 @@
|
|||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.10...3.27)
|
||||
project(yoloe_demo)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Set NNSDK path
|
||||
if(NOT DEFINED NNSDK_DIR)
|
||||
set(NNSDK_DIR "${CMAKE_SOURCE_DIR}/../../../../../amlnn-toolkit/nn_runtime/nnsdk")
|
||||
endif()
|
||||
set(NNSDK_ROOT "${NNSDK_DIR}")
|
||||
message(STATUS "NNSDK_ROOT: ${NNSDK_ROOT}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../../../../cmake")
|
||||
find_package(AMLNN REQUIRED)
|
||||
include_directories(${AMLNN_INCLUDE_DIR})
|
||||
link_directories(${AMLNN_LIBRARY_DIR})
|
||||
|
||||
include_directories(${NNSDK_ROOT}/include)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/../../../../common)
|
||||
|
||||
# Set dependency path
|
||||
set(3RDPARTY_DIR "${CMAKE_SOURCE_DIR}/../../../../dependency")
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||
if (ANDROID_ABI STREQUAL "arm64-v8a")
|
||||
link_directories(${NNSDK_ROOT}/android/arm64-v8a)
|
||||
else()
|
||||
link_directories(${NNSDK_ROOT}/android/armeabi-v7a)
|
||||
endif()
|
||||
# Android needs log
|
||||
link_libraries(log)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
link_directories(${NNSDK_ROOT}/linux/yocto/aarch64-poky-linux)
|
||||
endif()
|
||||
|
||||
# Find OpenCV
|
||||
|
|
@ -40,5 +30,5 @@ add_executable(yoloe_demo
|
|||
|
||||
target_link_libraries(yoloe_demo
|
||||
${OpenCV_LIBS}
|
||||
nnsdk
|
||||
${AMLNN_LIBRARY}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -70,6 +70,20 @@ example
|
|||
|
||||
#### 1. Compile
|
||||
|
||||
#### AMLNN SDK Setup
|
||||
|
||||
Resolve the AMLNN nnsdk dependency using one of the following methods:
|
||||
|
||||
- **Priority 1 – Environment variable (recommended)**
|
||||
```bash
|
||||
export AMLNN_HOME=/path/to/amlnn-toolkit
|
||||
```
|
||||
- **Priority 3 – Sibling directory fallback** *(automatic)*
|
||||
Place `amlnn-toolkit` as a sibling to `amlnn-model-playground`:
|
||||
```bash
|
||||
git clone git@github.com:Amlogic-NN/amlnn-toolkit.git ../amlnn-toolkit
|
||||
```
|
||||
|
||||
**Prerequisites:**
|
||||
- Android NDK (r25e recommended)
|
||||
- `ANDROID_NDK_PATH` environment variable set
|
||||
|
|
|
|||
|
|
@ -65,7 +65,8 @@ echo "BUILD_DIR: ${BUILD_DIR}"
|
|||
mkdir -p ${BUILD_DIR}
|
||||
cd ${BUILD_DIR}
|
||||
|
||||
cmake ../../src \
|
||||
cmake -Wno-dev ../../src \
|
||||
-DAMLNN_HOME=${AMLNN_HOME:-} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake \
|
||||
-DANDROID_ABI=${TARGET_ABI} \
|
||||
-DANDROID_PLATFORM=android-24 \
|
||||
|
|
|
|||
|
|
@ -1,31 +1,21 @@
|
|||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.10...3.27)
|
||||
project(yolo11_demo)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Set NNSDK path
|
||||
if(NOT DEFINED NNSDK_DIR)
|
||||
set(NNSDK_DIR "${CMAKE_SOURCE_DIR}/../../../../../amlnn-toolkit/nn_runtime/nnsdk")
|
||||
endif()
|
||||
set(NNSDK_ROOT "${NNSDK_DIR}")
|
||||
message(STATUS "NNSDK_ROOT: ${NNSDK_ROOT}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../../../../cmake")
|
||||
find_package(AMLNN REQUIRED)
|
||||
include_directories(${AMLNN_INCLUDE_DIR})
|
||||
link_directories(${AMLNN_LIBRARY_DIR})
|
||||
|
||||
include_directories(${NNSDK_ROOT}/include)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/../../../../common)
|
||||
|
||||
# Set dependency path
|
||||
set(3RDPARTY_DIR "${CMAKE_SOURCE_DIR}/../../../../dependency")
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||
if (ANDROID_ABI STREQUAL "arm64-v8a")
|
||||
link_directories(${NNSDK_ROOT}/android/arm64-v8a)
|
||||
else()
|
||||
link_directories(${NNSDK_ROOT}/android/armeabi-v7a)
|
||||
endif()
|
||||
# Android needs log
|
||||
link_libraries(log)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
link_directories(${NNSDK_ROOT}/linux/yocto/aarch64-poky-linux)
|
||||
endif()
|
||||
|
||||
# Find OpenCV
|
||||
|
|
@ -33,7 +23,6 @@ message(STATUS "OpenCV_DIR: ${OpenCV_DIR}")
|
|||
find_package(OpenCV REQUIRED)
|
||||
include_directories(${OpenCV_INCLUDE_DIRS})
|
||||
|
||||
|
||||
add_executable(yolo11_demo
|
||||
main.cpp
|
||||
postprocess.cpp
|
||||
|
|
@ -42,5 +31,5 @@ add_executable(yolo11_demo
|
|||
|
||||
target_link_libraries(yolo11_demo
|
||||
${OpenCV_LIBS}
|
||||
nnsdk
|
||||
${AMLNN_LIBRARY}
|
||||
)
|
||||
|
|
@ -70,6 +70,20 @@ example
|
|||
|
||||
#### 1. Compile
|
||||
|
||||
#### AMLNN SDK Setup
|
||||
|
||||
Resolve the AMLNN nnsdk dependency using one of the following methods:
|
||||
|
||||
- **Priority 1 – Environment variable (recommended)**
|
||||
```bash
|
||||
export AMLNN_HOME=/path/to/amlnn-toolkit
|
||||
```
|
||||
- **Priority 3 – Sibling directory fallback** *(automatic)*
|
||||
Place `amlnn-toolkit` as a sibling to `amlnn-model-playground`:
|
||||
```bash
|
||||
git clone git@github.com:Amlogic-NN/amlnn-toolkit.git ../amlnn-toolkit
|
||||
```
|
||||
|
||||
**Prerequisites:**
|
||||
- Android NDK (r25e recommended)
|
||||
- `ANDROID_NDK_PATH` environment variable set
|
||||
|
|
|
|||
|
|
@ -65,13 +65,13 @@ echo "BUILD_DIR: ${BUILD_DIR}"
|
|||
mkdir -p ${BUILD_DIR}
|
||||
cd ${BUILD_DIR}
|
||||
|
||||
cmake ../../src \
|
||||
cmake -Wno-dev ../../src \
|
||||
-DAMLNN_HOME=${AMLNN_HOME:-} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake \
|
||||
-DANDROID_ABI=${TARGET_ABI} \
|
||||
-DANDROID_PLATFORM=android-24 \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DOpenCV_DIR=${ROOT_PWD}/../../../dependency/opencv/opencv-android-sdk-build/sdk/native/jni/abi-${TARGET_ABI} \
|
||||
-DNNSDK_DIR=${ROOT_PWD}/../../../../amlnn-toolkit/nn_runtime/nnsdk
|
||||
|
||||
make -j4
|
||||
|
||||
|
|
|
|||
|
|
@ -1,31 +1,21 @@
|
|||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.10...3.27)
|
||||
project(yolo_world_demo)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Set NNSDK path
|
||||
if(NOT DEFINED NNSDK_DIR)
|
||||
set(NNSDK_DIR "${CMAKE_SOURCE_DIR}/../../../../../amlnn-toolkit/nn_runtime/nnsdk")
|
||||
endif()
|
||||
set(NNSDK_ROOT "${NNSDK_DIR}")
|
||||
message(STATUS "NNSDK_ROOT: ${NNSDK_ROOT}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../../../../cmake")
|
||||
find_package(AMLNN REQUIRED)
|
||||
include_directories(${AMLNN_INCLUDE_DIR})
|
||||
link_directories(${AMLNN_LIBRARY_DIR})
|
||||
|
||||
include_directories(${NNSDK_ROOT}/include)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/../../../../common)
|
||||
|
||||
# Set 3rdparty path
|
||||
set(3RDPARTY_DIR "${CMAKE_SOURCE_DIR}/../../../../dependency")
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||
if (ANDROID_ABI STREQUAL "arm64-v8a")
|
||||
link_directories(${NNSDK_ROOT}/android/arm64-v8a)
|
||||
else()
|
||||
link_directories(${NNSDK_ROOT}/android/armeabi-v7a)
|
||||
endif()
|
||||
# Android needs log
|
||||
link_libraries(log)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
link_directories(${NNSDK_ROOT}/linux/yocto/aarch64-poky-linux)
|
||||
endif()
|
||||
|
||||
# Find OpenCV
|
||||
|
|
@ -42,5 +32,5 @@ add_executable(yolov8_demo
|
|||
|
||||
target_link_libraries(yolov8_demo
|
||||
${OpenCV_LIBS}
|
||||
nnsdk
|
||||
${AMLNN_LIBRARY}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -4,6 +4,20 @@
|
|||
|
||||
#### 1. Compile
|
||||
|
||||
#### AMLNN SDK Setup
|
||||
|
||||
Resolve the AMLNN nnsdk dependency using one of the following methods:
|
||||
|
||||
- **Priority 1 – Environment variable (recommended)**
|
||||
```bash
|
||||
export AMLNN_HOME=/path/to/amlnn-toolkit
|
||||
```
|
||||
- **Priority 3 – Sibling directory fallback** *(automatic)*
|
||||
Place `amlnn-toolkit` as a sibling to `amlnn-model-playground`:
|
||||
```bash
|
||||
git clone git@github.com:Amlogic-NN/amlnn-toolkit.git ../amlnn-toolkit
|
||||
```
|
||||
|
||||
**Prerequisites:**
|
||||
- Android NDK (r25e recommended)
|
||||
- `ANDROID_NDK_PATH` environment variable set
|
||||
|
|
|
|||
|
|
@ -65,7 +65,8 @@ echo "BUILD_DIR: ${BUILD_DIR}"
|
|||
mkdir -p ${BUILD_DIR}
|
||||
cd ${BUILD_DIR}
|
||||
|
||||
cmake ../../src \
|
||||
cmake -Wno-dev ../../src \
|
||||
-DAMLNN_HOME=${AMLNN_HOME:-} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake \
|
||||
-DANDROID_ABI=${TARGET_ABI} \
|
||||
-DANDROID_PLATFORM=android-24 \
|
||||
|
|
|
|||
|
|
@ -1,31 +1,21 @@
|
|||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.10...3.27)
|
||||
project(yolo_world_demo)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Set NNSDK path
|
||||
if(NOT DEFINED NNSDK_DIR)
|
||||
set(NNSDK_DIR "${CMAKE_SOURCE_DIR}/../../../../../amlnn-toolkit/nn_runtime/nnsdk")
|
||||
endif()
|
||||
set(NNSDK_ROOT "${NNSDK_DIR}")
|
||||
message(STATUS "NNSDK_ROOT: ${NNSDK_ROOT}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../../../../cmake")
|
||||
find_package(AMLNN REQUIRED)
|
||||
include_directories(${AMLNN_INCLUDE_DIR})
|
||||
link_directories(${AMLNN_LIBRARY_DIR})
|
||||
|
||||
include_directories(${NNSDK_ROOT}/include)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/../../../../common)
|
||||
|
||||
# Set 3rdparty path
|
||||
set(3RDPARTY_DIR "${CMAKE_SOURCE_DIR}/../../../../dependency")
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||
if (ANDROID_ABI STREQUAL "arm64-v8a")
|
||||
link_directories(${NNSDK_ROOT}/android/arm64-v8a)
|
||||
else()
|
||||
link_directories(${NNSDK_ROOT}/android/armeabi-v7a)
|
||||
endif()
|
||||
# Android needs log
|
||||
link_libraries(log)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
link_directories(${NNSDK_ROOT}/linux/yocto/aarch64-poky-linux)
|
||||
endif()
|
||||
|
||||
# Find OpenCV
|
||||
|
|
@ -41,5 +31,5 @@ add_executable(yolo_world_demo
|
|||
|
||||
target_link_libraries(yolo_world_demo
|
||||
${OpenCV_LIBS}
|
||||
nnsdk
|
||||
${AMLNN_LIBRARY}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -65,7 +65,8 @@ echo "BUILD_DIR: ${BUILD_DIR}"
|
|||
mkdir -p ${BUILD_DIR}
|
||||
cd ${BUILD_DIR}
|
||||
|
||||
cmake ../../src \
|
||||
cmake -Wno-dev ../../src \
|
||||
-DAMLNN_HOME=${AMLNN_HOME:-} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake \
|
||||
-DANDROID_ABI=${TARGET_ABI} \
|
||||
-DANDROID_PLATFORM=android-24 \
|
||||
|
|
|
|||
|
|
@ -1,31 +1,21 @@
|
|||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.10...3.27)
|
||||
project(yolo11_demo)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
# Set NNSDK path
|
||||
if(NOT DEFINED NNSDK_DIR)
|
||||
set(NNSDK_DIR "${CMAKE_SOURCE_DIR}/../../../../../amlnn-toolkit/nn_runtime/nnsdk")
|
||||
endif()
|
||||
set(NNSDK_ROOT "${NNSDK_DIR}")
|
||||
message(STATUS "NNSDK_ROOT: ${NNSDK_ROOT}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../../../../cmake")
|
||||
find_package(AMLNN REQUIRED)
|
||||
include_directories(${AMLNN_INCLUDE_DIR})
|
||||
link_directories(${AMLNN_LIBRARY_DIR})
|
||||
|
||||
include_directories(${NNSDK_ROOT}/include)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/../../../../common)
|
||||
|
||||
# Set dependency path
|
||||
set(3RDPARTY_DIR "${CMAKE_SOURCE_DIR}/../../../../dependency")
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||
if (ANDROID_ABI STREQUAL "arm64-v8a")
|
||||
link_directories(${NNSDK_ROOT}/android/arm64-v8a)
|
||||
else()
|
||||
link_directories(${NNSDK_ROOT}/android/armeabi-v7a)
|
||||
endif()
|
||||
# Android needs log
|
||||
link_libraries(log)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
link_directories(${NNSDK_ROOT}/linux/yocto/aarch64-poky-linux)
|
||||
endif()
|
||||
|
||||
# Find OpenCV
|
||||
|
|
@ -33,7 +23,6 @@ message(STATUS "OpenCV_DIR: ${OpenCV_DIR}")
|
|||
find_package(OpenCV REQUIRED)
|
||||
include_directories(${OpenCV_INCLUDE_DIRS})
|
||||
|
||||
|
||||
add_executable(yolox_demo
|
||||
main.cpp
|
||||
postprocess.cpp
|
||||
|
|
@ -42,5 +31,5 @@ add_executable(yolox_demo
|
|||
|
||||
target_link_libraries(yolox_demo
|
||||
${OpenCV_LIBS}
|
||||
nnsdk
|
||||
${AMLNN_LIBRARY}
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue