feat: 切换后端至PaddleOCR-NCNN,切换工程为CMake
1.项目后端整体迁移至PaddleOCR-NCNN算法,已通过基本的兼容性测试 2.工程改为使用CMake组织,后续为了更好地兼容第三方库,不再提供QMake工程 3.重整权利声明文件,重整代码工程,确保最小化侵权风险 Log: 切换后端至PaddleOCR-NCNN,切换工程为CMake Change-Id: I4d5d2c5d37505a4a24b389b1a4c5d12f17bfa38c
This commit is contained in:
10
3rdparty/opencv-4.5.4/samples/semihosting/CMakeLists.txt
vendored
Normal file
10
3rdparty/opencv-4.5.4/samples/semihosting/CMakeLists.txt
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
# This file is part of OpenCV project.
|
||||
# It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
# of this distribution and at http://opencv.org/license.html
|
||||
|
||||
set(SEMIHOSTING_SUFFIX semihosting)
|
||||
|
||||
add_subdirectory(include)
|
||||
set(RAW_PIXEL_INCLUDE ${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||
add_subdirectory(histogram)
|
||||
add_subdirectory(norm)
|
27
3rdparty/opencv-4.5.4/samples/semihosting/README.md
vendored
Normal file
27
3rdparty/opencv-4.5.4/samples/semihosting/README.md
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
# Arm semihosting
|
||||
|
||||
This folder contain a toolchain file and a couple of examples for
|
||||
building OpenCV based applications that can run in an [Arm
|
||||
semihosting](https://developer.arm.com/documentation/100863/latest)
|
||||
setup.
|
||||
|
||||
OpenCV can be compiled to target a semihosting platform as follows:
|
||||
|
||||
```
|
||||
cmake ../opencv/ \
|
||||
-DCMAKE_TOOLCHAIN_FILE=../opencv/platforms/semihosting/aarch64-semihosting.toolchain.cmake \
|
||||
-DSEMIHOSTING_TOOLCHAIN_PATH=/path/to/baremetal-toolchain/bin/ \
|
||||
-DBUILD_EXAMPLES=ON -GNinja
|
||||
```
|
||||
|
||||
A barematel toolchain for targeting aarch64 semihosting can be found
|
||||
[here](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads),
|
||||
under `aarch64-none-elf`.
|
||||
|
||||
The code of the examples in the `norm` and `histogram` folders can be
|
||||
executed with qemu in Linux userspace:
|
||||
|
||||
```
|
||||
qemu-aarch64 ./bin/example_semihosting_histogram
|
||||
qemu-aarch64 ./bin/example_semihosting_norm
|
||||
```
|
26
3rdparty/opencv-4.5.4/samples/semihosting/histogram/CMakeLists.txt
vendored
Normal file
26
3rdparty/opencv-4.5.4/samples/semihosting/histogram/CMakeLists.txt
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
# This file is part of OpenCV project.
|
||||
# It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
# of this distribution and at http://opencv.org/license.html
|
||||
|
||||
set(PROJECT_NAME histogram)
|
||||
project(${PROJECT_NAME})
|
||||
|
||||
ocv_install_example_src(histogram *.cpp *.hpp CMakeLists.txt)
|
||||
|
||||
set(LOCAL_DEPS
|
||||
opencv_core
|
||||
opencv_imgproc
|
||||
${OPENCV_MODULES_PUBLIC}
|
||||
${OpenCV_LIB_COMPONENTS})
|
||||
ocv_check_dependencies(${LOCAL_DEPS})
|
||||
|
||||
if(NOT OCV_DEPENDENCIES_FOUND)
|
||||
return()
|
||||
endif()
|
||||
|
||||
ocv_define_sample(histogram histogram.cpp ${SEMIHOSTING_SUFFIX})
|
||||
ocv_include_modules_recurse(${LOCAL_DEPS})
|
||||
target_include_directories(${histogram} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
||||
target_include_directories(${histogram} PRIVATE ${RAW_PIXEL_INCLUDE})
|
||||
ocv_target_link_libraries(${histogram} PRIVATE ${OPENCV_LINKER_LIBS}
|
||||
${LOCAL_DEPS})
|
43
3rdparty/opencv-4.5.4/samples/semihosting/histogram/histogram.cpp
vendored
Normal file
43
3rdparty/opencv-4.5.4/samples/semihosting/histogram/histogram.cpp
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html
|
||||
|
||||
#include <opencv2/imgproc.hpp>
|
||||
#include <opencv2/imgcodecs.hpp>
|
||||
|
||||
#include <cstdint>
|
||||
#include <array>
|
||||
#include <iostream>
|
||||
#include "raw_pixels.hpp"
|
||||
|
||||
#define IMG_ROWS 100
|
||||
#define IMG_COLS 100
|
||||
|
||||
static_assert(IMG_ROWS * IMG_COLS <= RAW_PIXELS_SIZE, "Incompatible size");
|
||||
|
||||
int main(void)
|
||||
{
|
||||
// Number of experiment runs
|
||||
int no_runs = 2;
|
||||
|
||||
// https://docs.opencv.org/master/d3/d63/classcv_1_1Mat.html
|
||||
cv::Mat src_new(IMG_ROWS, IMG_COLS, CV_8UC1, (void *)raw_pixels);
|
||||
|
||||
// Set parameters
|
||||
int imgCount = 1;
|
||||
const int channels[] = {0};
|
||||
cv::Mat mask = cv::Mat();
|
||||
cv::Mat hist;
|
||||
int dims = 1;
|
||||
const int hist_sizes[] = {256};
|
||||
float Range[] = {0,256};
|
||||
const float *ranges[] = {Range};
|
||||
|
||||
// Run calc Hist
|
||||
for(int i=0; i < no_runs; i++){
|
||||
std::cout << "Running iteration # "<< i << std::endl;
|
||||
cv::calcHist(&src_new, imgCount, channels, mask, hist, dims, hist_sizes, ranges);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
16
3rdparty/opencv-4.5.4/samples/semihosting/include/CMakeLists.txt
vendored
Normal file
16
3rdparty/opencv-4.5.4/samples/semihosting/include/CMakeLists.txt
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
# Populate a C array with random data.
|
||||
set(RAW_PIXELS_SIZE 102400)
|
||||
set(RAW_PIXELS_HEADER ${CMAKE_CURRENT_BINARY_DIR}/raw_pixels.hpp)
|
||||
set(RAW_PIXELS_HEADER_IN ${CMAKE_CURRENT_SOURCE_DIR}/raw_pixels.hpp.in)
|
||||
|
||||
set(RAW_PIXEL_VALUES "")
|
||||
# Seed the random number generator.
|
||||
string(RANDOM LENGTH 8 ALPHABET 0123456789abcdf RANDOM_SEED 314 number)
|
||||
math(EXPR LOOP_RANGE "${RAW_PIXELS_SIZE} - 1")
|
||||
|
||||
foreach(i RANGE ${LOOP_RANGE})
|
||||
string(RANDOM LENGTH 8 ALPHABET 0123456789abcdf number)
|
||||
string(CONCAT RAW_PIXEL_VALUES ${RAW_PIXEL_VALUES} "0x${number}, \\\n")
|
||||
endforeach()
|
||||
|
||||
configure_file(${RAW_PIXELS_HEADER_IN} ${RAW_PIXELS_HEADER})
|
11
3rdparty/opencv-4.5.4/samples/semihosting/include/raw_pixels.hpp.in
vendored
Normal file
11
3rdparty/opencv-4.5.4/samples/semihosting/include/raw_pixels.hpp.in
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
#ifndef RAW_PIXELS_HPP
|
||||
#define RAW_PIXELS_HP
|
||||
#include <cstdint>
|
||||
|
||||
#cmakedefine RAW_PIXEL_VALUES @RAW_PIXEL_VALUES@
|
||||
#cmakedefine RAW_PIXELS_SIZE @RAW_PIXELS_SIZE@
|
||||
|
||||
static std::uint32_t raw_pixels[RAW_PIXELS_SIZE] = {
|
||||
RAW_PIXEL_VALUES
|
||||
};
|
||||
#endif //RAW_PIXELS_HPP
|
25
3rdparty/opencv-4.5.4/samples/semihosting/norm/CMakeLists.txt
vendored
Normal file
25
3rdparty/opencv-4.5.4/samples/semihosting/norm/CMakeLists.txt
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
# This file is part of OpenCV project.
|
||||
# It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
# of this distribution and at http://opencv.org/license.html
|
||||
|
||||
set(PROJECT_NAME norm)
|
||||
project(${PROJECT_NAME})
|
||||
|
||||
ocv_install_example_src(norm *.cpp *.hpp CMakeLists.txt)
|
||||
|
||||
set(LOCAL_DEPS
|
||||
opencv_core
|
||||
${OPENCV_MODULES_PUBLIC}
|
||||
${OpenCV_LIB_COMPONENTS})
|
||||
ocv_check_dependencies(${LOCAL_DEPS})
|
||||
|
||||
if(NOT OCV_DEPENDENCIES_FOUND)
|
||||
return()
|
||||
endif()
|
||||
|
||||
ocv_define_sample(norm norm.cpp ${SEMIHOSTING_SUFFIX})
|
||||
ocv_include_modules_recurse(${LOCAL_DEPS})
|
||||
target_include_directories(${norm} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
||||
target_include_directories(${norm} PRIVATE ${RAW_PIXEL_INCLUDE})
|
||||
ocv_target_link_libraries(${norm} PRIVATE ${OPENCV_LINKER_LIBS}
|
||||
${LOCAL_DEPS})
|
33
3rdparty/opencv-4.5.4/samples/semihosting/norm/norm.cpp
vendored
Normal file
33
3rdparty/opencv-4.5.4/samples/semihosting/norm/norm.cpp
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html
|
||||
|
||||
#include <opencv2/core.hpp>
|
||||
#include <opencv2/imgcodecs.hpp>
|
||||
|
||||
#include <cstdint>
|
||||
#include <array>
|
||||
#include <iostream>
|
||||
#include "raw_pixels.hpp"
|
||||
|
||||
#define IMG_ROWS 100
|
||||
#define IMG_COLS 100
|
||||
|
||||
static_assert(IMG_ROWS * IMG_COLS <= RAW_PIXELS_SIZE, "Incompatible size");
|
||||
|
||||
int main(void)
|
||||
{
|
||||
// Number of experiment runs
|
||||
int no_runs = 2;
|
||||
|
||||
// https://docs.opencv.org/master/d3/d63/classcv_1_1Mat.html
|
||||
cv::Mat src(IMG_ROWS, IMG_COLS, CV_8UC1, (void *)raw_pixels);
|
||||
|
||||
// Run calc Hist
|
||||
for(int i=0; i < no_runs; i++){
|
||||
std::cout << "Running iteration # "<< i << std::endl;
|
||||
cv::norm(src);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user