feat: 切换后端至PaddleOCR-NCNN,切换工程为CMake
1.项目后端整体迁移至PaddleOCR-NCNN算法,已通过基本的兼容性测试 2.工程改为使用CMake组织,后续为了更好地兼容第三方库,不再提供QMake工程 3.重整权利声明文件,重整代码工程,确保最小化侵权风险 Log: 切换后端至PaddleOCR-NCNN,切换工程为CMake Change-Id: I4d5d2c5d37505a4a24b389b1a4c5d12f17bfa38c
This commit is contained in:
272
3rdparty/opencv-4.5.4/platforms/maven/opencv/pom.xml
vendored
Normal file
272
3rdparty/opencv-4.5.4/platforms/maven/opencv/pom.xml
vendored
Normal file
@ -0,0 +1,272 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.opencv</groupId>
|
||||
<artifactId>opencv-parent</artifactId>
|
||||
<version>4.5.4</version>
|
||||
</parent>
|
||||
<groupId>org.opencv</groupId>
|
||||
<artifactId>opencv</artifactId>
|
||||
<packaging>bundle</packaging>
|
||||
<name>OpenCV</name>
|
||||
|
||||
<properties>
|
||||
<source.path>../../..</source.path>
|
||||
<build.directory>${source.path}/build</build.directory>
|
||||
<nativelibrary.name>libopencv_java${lib.version.string}.so</nativelibrary.name>
|
||||
<resources.directory>${build.directory}/src</resources.directory>
|
||||
</properties>
|
||||
<build>
|
||||
<directory>../../../build/maven/opencv/target</directory>
|
||||
<outputDirectory>../../../build/src</outputDirectory>
|
||||
<sourceDirectory>../../../build/src</sourceDirectory>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>3.0.0</version>
|
||||
<configuration>
|
||||
<filesets>
|
||||
<fileset>
|
||||
<directory>${build.directory}</directory>
|
||||
</fileset>
|
||||
</filesets>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>exec-maven-plugin</artifactId>
|
||||
<version>1.4.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>get-opencv-version</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>exec</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<executable>bash</executable>
|
||||
<workingDirectory>${project.basedir}/scripts</workingDirectory>
|
||||
<arguments>
|
||||
<argument>properties</argument>
|
||||
<argument>${build.directory}</argument>
|
||||
<argument>build.properties</argument>
|
||||
</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>setup-environment</id>
|
||||
<phase>validate</phase>
|
||||
<goals>
|
||||
<goal>exec</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<executable>bash</executable>
|
||||
<workingDirectory>${project.basedir}/scripts</workingDirectory>
|
||||
<arguments>
|
||||
<!-- Optional packages should be placed BEFORE required ones
|
||||
in the following argument list. -->
|
||||
<argument>deb_package_check</argument>
|
||||
<argument>-olibpng-dev|libpng12-dev</argument>
|
||||
<argument>-olibopenjp2-7-dev|libjasper-dev</argument>
|
||||
<argument>-opython-dev</argument>
|
||||
<argument>-opython-numpy</argument>
|
||||
<argument>build-essential</argument>
|
||||
<argument>cmake</argument>
|
||||
<argument>git</argument>
|
||||
<argument>libgtk2.0-dev</argument>
|
||||
<argument>pkg-config</argument>
|
||||
<argument>libavcodec-dev</argument>
|
||||
<argument>libavformat-dev</argument>
|
||||
<argument>libswscale-dev</argument>
|
||||
<argument>libtbb2</argument>
|
||||
<argument>libtbb-dev</argument>
|
||||
<argument>libjpeg-dev</argument>
|
||||
<argument>libtiff5-dev</argument>
|
||||
<argument>libdc1394-22-dev</argument>
|
||||
<argument>execstack</argument>
|
||||
<argument>ant</argument>
|
||||
</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>check-execstack</id>
|
||||
<phase>process-classes</phase>
|
||||
<goals>
|
||||
<goal>exec</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<workingDirectory>${project.basedir}/scripts</workingDirectory>
|
||||
<executable>bash</executable>
|
||||
<arguments>
|
||||
<argument>execstack_check</argument>
|
||||
<argument>${build.directory}/lib/libopencv_java${lib.version.string}.so</argument>
|
||||
</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.0.2</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-resources</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${resources.directory}</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>resources</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>properties-maven-plugin</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>set-arch-properties</id>
|
||||
<phase>process-resources</phase>
|
||||
<goals>
|
||||
<goal>read-project-properties</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<files>
|
||||
<file>${build.directory}/build.properties</file>
|
||||
</files>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<version>1.4.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>validate</phase>
|
||||
<id>enforce-os</id>
|
||||
<goals>
|
||||
<goal>enforce</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<rules>
|
||||
<requireOS>
|
||||
<family>unix</family>
|
||||
<message>This POM is written to function on UNIX family of OS.
|
||||
More specifically it should be a Debian flavour of Linux.</message>
|
||||
</requireOS>
|
||||
</rules>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>enforce-environment</id>
|
||||
<goals>
|
||||
<goal>enforce</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<rules>
|
||||
<requireEnvironmentVariable>
|
||||
<level>ERROR</level>
|
||||
<variableName>ANT_HOME</variableName>
|
||||
<message>$ANT_HOME is not set. Build may fail.</message>
|
||||
</requireEnvironmentVariable>
|
||||
<requireEnvironmentVariable>
|
||||
<level>ERROR</level>
|
||||
<variableName>JAVA_HOME</variableName>
|
||||
<message>$JAVA_HOME is not set. Build will fail.</message>
|
||||
</requireEnvironmentVariable>
|
||||
<requireEnvironmentVariable>
|
||||
<level>WARN</level>
|
||||
<variableName>MAKEFLAGS</variableName>
|
||||
<message>No MAKEFLAGS environment variable. Build may be slow.
|
||||
To speed up the build you can try exporting MAKEFLAGS=-jX where X equals the number of parallel builds.</message>
|
||||
</requireEnvironmentVariable>
|
||||
</rules>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<phase>process-resources</phase>
|
||||
<id>check-versions-match</id>
|
||||
<goals>
|
||||
<goal>enforce</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<rules>
|
||||
<requireProperty>
|
||||
<property>project.version</property>
|
||||
<regex>${opencv.version}</regex>
|
||||
<regexMessage>The Maven POM version ${project.version} does not match the extracted OpenCV version ${opencv.version}.
|
||||
To correct this please execute the following Maven command from the Maven root directory:
|
||||
mvn versions:set -DnewVersion=$(. ./opencv/scripts/functions && cd ./opencv/scripts && extract_version && echo $REPLY)</regexMessage>
|
||||
</requireProperty>
|
||||
</rules>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.felix</groupId>
|
||||
<artifactId>maven-bundle-plugin</artifactId>
|
||||
<version>2.3.7</version>
|
||||
<extensions>true</extensions>
|
||||
<configuration>
|
||||
<instructions>
|
||||
<Export-Package>*</Export-Package>
|
||||
<Bundle-NativeCode>${nativelibrary.name};osname=linux;processor=${osgi.processor}</Bundle-NativeCode>
|
||||
<Include-Resource>${build.directory}/lib/${nativelibrary.name}</Include-Resource>
|
||||
</instructions>
|
||||
<manifestLocation>${build.directory}/manifest</manifestLocation>
|
||||
<niceManifest>true</niceManifest>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.googlecode.cmake-maven-project</groupId>
|
||||
<artifactId>cmake-maven-plugin</artifactId>
|
||||
<version>3.4.1-b2</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>generate-sources</phase>
|
||||
<id>cmake-generate</id>
|
||||
<goals>
|
||||
<goal>generate</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<sourcePath>../../..</sourcePath>
|
||||
<targetPath>../../../build</targetPath>
|
||||
<generator>Unix Makefiles</generator>
|
||||
<options>
|
||||
<option>-DBUILD_SHARED_LIBS:BOOL=OFF</option>
|
||||
</options>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<phase>generate-sources</phase>
|
||||
<id>cmake-compile</id>
|
||||
<goals>
|
||||
<goal>compile</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>opencv_java</target>
|
||||
<projectDirectory>../../../build</projectDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.15</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
11
3rdparty/opencv-4.5.4/platforms/maven/opencv/resources/OSGI-INF/blueprint/blueprint.xml
vendored
Normal file
11
3rdparty/opencv-4.5.4/platforms/maven/opencv/resources/OSGI-INF/blueprint/blueprint.xml
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<blueprint
|
||||
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
|
||||
xmlns='http://www.osgi.org/xmlns/blueprint/v1.0.0'
|
||||
xsi:schemaLocation='http://www.osgi.org/xmlns/blueprint/v1.0.0 https://osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd'>
|
||||
|
||||
<bean id="opencvnativeloader" class="org.opencv.osgi.OpenCVNativeLoader" scope="singleton" init-method="init" />
|
||||
|
||||
<service id="opencvtestservice" ref="opencvnativeloader" interface="org.opencv.osgi.OpenCVInterface" />
|
||||
|
||||
</blueprint>
|
102
3rdparty/opencv-4.5.4/platforms/maven/opencv/scripts/deb_package_check
vendored
Executable file
102
3rdparty/opencv-4.5.4/platforms/maven/opencv/scripts/deb_package_check
vendored
Executable file
@ -0,0 +1,102 @@
|
||||
#!/bin/bash
|
||||
##################################################################################################
|
||||
#
|
||||
# This script checks for the required Debian packages are installed
|
||||
# to build OpenCV.
|
||||
# Commandline parameters:
|
||||
# $@ These are the names of the packages to check with 'dpkg'. Multiple values may
|
||||
# be specified per package by using pipe as a delimiter, e.g. libpng-dev|libpng12-dev.
|
||||
# Multiple values are evaluated left-to-right and the first found prevents checking of
|
||||
# the remaining package options.
|
||||
#
|
||||
# -o <package_name> Specifying this switch with a package name marks it as optional
|
||||
# i.e. it is not required to be installed.
|
||||
#
|
||||
# Returns:
|
||||
# 0 - All packages installed (success)
|
||||
# 1 - One or more packages missing (failure)
|
||||
#
|
||||
# Kerry Billingham <contact (at) avionicengineers (d0t) com>
|
||||
# 20 April 2016
|
||||
#
|
||||
##################################################################################################
|
||||
red=$'\e[1;31m'
|
||||
green=$'\e[1;32m'
|
||||
yellow=$'\e[1;33m'
|
||||
end=$'\e[0m'
|
||||
check_message="Checking for "
|
||||
declare -i packageMissing=0
|
||||
declare -i installed=1
|
||||
|
||||
#########################
|
||||
# Function declarations.
|
||||
#########################
|
||||
function check_package() {
|
||||
check_message="Checking for package "
|
||||
dpkg -s $1 &>/dev/null
|
||||
is_installed=$?
|
||||
if [ ${is_installed} -ne 0 ]; then
|
||||
printf "%-80s%s\n" "$2${check_message}${red}$1" " MISSING.${end}"
|
||||
packageMissing=1
|
||||
else
|
||||
printf "%-80s%s\n" "$2${check_message}${green}$1" " INSTALLED.${end}"
|
||||
packageMissing=0
|
||||
fi
|
||||
return $is_installed
|
||||
}
|
||||
|
||||
# Main part of script.
|
||||
ORIGINAL_IFS=$IFS
|
||||
|
||||
dpkg -? &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
printf "%-80s%s\n" "${check_message} ${red}'dpkg'" " MISSING.${end}"
|
||||
exit 1
|
||||
else
|
||||
printf "%-80s%s\n" "${check_message} ${green}'dpkg'" " INSTALLED.${end}"
|
||||
fi
|
||||
|
||||
while getopts o: option; do
|
||||
case $option in
|
||||
o)
|
||||
IFS="|"
|
||||
packageChoices=( ${OPTARG} )
|
||||
if [ ${#packageChoices[@]} -gt 1 ]; then
|
||||
echo "Optional package. One of ${yellow}${packageChoices[@]}${end} can be installed."
|
||||
for choice in ${packageChoices[@]}; do
|
||||
check_package ${choice} " "
|
||||
if [ $? -eq 0 ]; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo "Optional package ${yellow}${packageChoices}${end}"
|
||||
check_package ${OPTARG} " "
|
||||
fi
|
||||
IFS=$ORIGINAL_IFS
|
||||
;;
|
||||
\?)
|
||||
echo "No option found"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $((OPTIND-1))
|
||||
packageArray=( $@ )
|
||||
for package in ${packageArray[@]}; do
|
||||
IFS="|"
|
||||
packageChoices=( ${package} )
|
||||
if [ ${#packageChoices[@]} -gt 1 ]; then
|
||||
echo "Multiple options. One of ${yellow}${packageChoices[@]}${end} must be installed."
|
||||
for choice in ${packageChoices[@]}; do
|
||||
check_package ${choice} " "
|
||||
if [ $? -eq 0 ]; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
else
|
||||
check_package ${package} ""
|
||||
fi
|
||||
done
|
||||
|
||||
exit $packageMissing
|
32
3rdparty/opencv-4.5.4/platforms/maven/opencv/scripts/execstack_check
vendored
Executable file
32
3rdparty/opencv-4.5.4/platforms/maven/opencv/scripts/execstack_check
vendored
Executable file
@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
##################################################################
|
||||
#
|
||||
# This script will clear the executable flag on
|
||||
# the specified library and then check it has
|
||||
# been cleared as a separate operation.
|
||||
#
|
||||
# $1 - The absolute path to the OpenCV native library.
|
||||
#
|
||||
# Returns:
|
||||
# 0 - The executable flag has been cleared
|
||||
# 1 - The executable flag could NOT be cleared (failure).
|
||||
#
|
||||
# Kerry Billingham <contact (at) avionicengineers (d0t) com>
|
||||
# 11 March 2017
|
||||
#
|
||||
##################################################################
|
||||
red=$'\e[1;31m'
|
||||
green=$'\e[1;32m'
|
||||
end=$'\e[0m'
|
||||
echo "${green}[INFO] Checking that the native library executable stack flag is NOT set.${end}"
|
||||
BINARY=execstack
|
||||
$BINARY --help > /dev/null || BINARY=/usr/sbin/execstack
|
||||
$BINARY -c $1
|
||||
$BINARY -q $1 | grep -o ^-
|
||||
if [ $? -ne 0 ]; then
|
||||
echo
|
||||
echo "${red}[ERROR] The Executable Flag could not be cleared on the library $1.${end}"
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
21
3rdparty/opencv-4.5.4/platforms/maven/opencv/scripts/functions
vendored
Executable file
21
3rdparty/opencv-4.5.4/platforms/maven/opencv/scripts/functions
vendored
Executable file
@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
###############################################################
|
||||
#
|
||||
# Defines some common functions.
|
||||
#
|
||||
# Kerry Billingham <contact [At] AvionicEngineers.{com]>
|
||||
#
|
||||
##############################################################
|
||||
majorHashDefine="#define CV_VERSION_MAJOR"
|
||||
minorHashDefine="#define CV_VERSION_MINOR"
|
||||
revisionHashDefine="#define CV_VERSION_REVISION"
|
||||
statusHashDefine="#define CV_VERSION_STATUS"
|
||||
versionHeader="../../../../modules/core/include/opencv2/core/version.hpp"
|
||||
|
||||
function extract_version() {
|
||||
minorVersion=$(grep "${minorHashDefine}" $versionHeader | grep -o ".$")
|
||||
majorVersion=$(grep "${majorHashDefine}" $versionHeader | grep -o ".$")
|
||||
revision=$(grep "${revisionHashDefine}" $versionHeader | grep -o ".$")
|
||||
|
||||
REPLY="${majorVersion}.${minorVersion}.${revision}"
|
||||
}
|
86
3rdparty/opencv-4.5.4/platforms/maven/opencv/scripts/properties
vendored
Executable file
86
3rdparty/opencv-4.5.4/platforms/maven/opencv/scripts/properties
vendored
Executable file
@ -0,0 +1,86 @@
|
||||
#!/bin/bash
|
||||
#####################################################################
|
||||
# This script extracts several properties and then writes them to a
|
||||
# to a file, 'build.properties'. These properties include:
|
||||
#
|
||||
# 1. OpenCV version.
|
||||
# 2. OpenVC version as a string for use by Maven.
|
||||
# 3. The CPU binary word size.
|
||||
# 4. Architecture string.
|
||||
# 4. OSGi compatible CPU architecture string.
|
||||
#
|
||||
# There is no need to execute this script directly as it will be
|
||||
# called during the Maven build process.
|
||||
#
|
||||
# Command-line parameters:
|
||||
# $1 - The build directory and where the output file will be written
|
||||
# $2 - The name of the output file to write to.
|
||||
#
|
||||
# Returns:
|
||||
# 0 - Successfully written the properties file.
|
||||
# 1 - Error occurred such as build directory does not exist
|
||||
# or OpenCV version could not be determined or an
|
||||
# unexpected error.
|
||||
#
|
||||
# Kerry Billingham <contact (at) avionicengineers (d0t) com>
|
||||
# 20 April 2016
|
||||
#
|
||||
#####################################################################
|
||||
|
||||
# Include some external functions and variables
|
||||
. ./functions
|
||||
|
||||
#Test build directory exists
|
||||
if [ ! -n "$1" ] || [ ! -d $1 ];then
|
||||
echo "Build directory not specified or does not exist!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -n "${versionHeader}" ] && [ -e ${versionHeader} ];then
|
||||
|
||||
extract_version
|
||||
|
||||
bits=$(getconf LONG_BIT)
|
||||
architecture=$(arch)
|
||||
osgiProcessor="Not Set"
|
||||
|
||||
case ${architecture} in
|
||||
x86*)
|
||||
echo "This is x86 (32 | 64) bit"
|
||||
case ${bits} in
|
||||
32)
|
||||
osgiProcessor="x86"
|
||||
;;
|
||||
64)
|
||||
osgiProcessor="x86_64"
|
||||
;;
|
||||
*)
|
||||
osgiProcessor="Unknown"
|
||||
esac
|
||||
;;
|
||||
arm*)
|
||||
echo "This is ARM"
|
||||
byteOrder=$(lscpu | grep -i "byte order")
|
||||
shopt -s nocasematch
|
||||
if [[ "${byteOrder}" == *little* ]]; then
|
||||
osgiProcessor="arm_le"
|
||||
elif [[ "${byteOrder}}" == *big* ]]; then
|
||||
osgiProcessor="arm_be"
|
||||
fi
|
||||
shopt -u nocasematch
|
||||
;;
|
||||
*)
|
||||
echo "This is unknown architecture"
|
||||
esac
|
||||
|
||||
echo "The version number will be ${majorVersion}.${minorVersion}.${revision}"
|
||||
echo "opencv.version=${majorVersion}.${minorVersion}.${revision}" > ${1}/${2}
|
||||
echo "lib.version.string=${majorVersion}${minorVersion}${revision}" >> ${1}/${2}
|
||||
echo "bits=${bits}" >> ${1}/${2}
|
||||
echo "architecture=$(arch)" >> ${1}/${2}
|
||||
echo "osgi.processor=${osgiProcessor}" >> ${1}/${2}
|
||||
exit 0
|
||||
else
|
||||
echo "Could not locate file ${versionHeader} to determine versioning."
|
||||
exit 1
|
||||
fi
|
Reference in New Issue
Block a user