增加openpose模型

This commit is contained in:
ouliangliang 2025-10-30 08:59:41 +08:00
parent 68d4c386dd
commit 8e49d188e6
59 changed files with 36480 additions and 19 deletions

View File

@ -67,5 +67,6 @@ mamba activate netrans
| 单目标跟踪 | ostrack | [链接](./docs/ostrack.md) |
| 分类 | resnet18 | [链接](./docs/resnet18.md) |
| 关键点检测 | superpoint | [链接](./docs/superpoint.md) |
| 人体姿态估计 | openpose | [链接](./docs/openpose.md) |
> *作者 {{liangliangou}}*

69
docs/openpose.md Normal file
View File

@ -0,0 +1,69 @@
# openpose示例
## 概述
- 模型类型openpose 人体姿态估计模型OpenPose 是由卡耐基梅隆大学等机构联合提出的人体姿态估计开源框架多阶段、多分支网络结构常采用“Part Affinity Fields (PAFs)”+关键点热力图的思想来实现多人姿态的检测与关联。
- 代码来源:<https://github.com/Daniil-Osokin/lightweight-human-pose-estimation.pytorch>
## 输入、输出
- 输入、输出信息
```text
INPUT:0
DATA_FORMAT:UINT8
NUM_OF_DIMENSION:4
SIZES_OF_DIMENSION:1272 256 1 1 0 0
QUANT_FORMAT:NONE
OUTPUT:0
DATA_FORMAT:FP32
NUM_OF_DIMENSION:4
SIZES_OF_DIMENSION:53 32 19 1 0 0
QUANT_FORMAT:NONE
OUTPUT:1
DATA_FORMAT:FP32
NUM_OF_DIMENSION:4
SIZES_OF_DIMENSION:53 32 38 1 0 0
QUANT_FORMAT:NONE
OUTPUT:2
DATA_FORMAT:FP32
NUM_OF_DIMENSION:4
SIZES_OF_DIMENSION:53 32 19 1 0 0
QUANT_FORMAT:NONE
OUTPUT:3
DATA_FORMAT:FP32
NUM_OF_DIMENSION:4
SIZES_OF_DIMENSION:53 32 38 1 0 0
QUANT_FORMAT:NONE
```
## 后处理流程
- 非极大值抑制
从热力图中定位候选关键点的位置(非极大值点)
- 关键点对齐与骨架候选(候选边)产生
基于两端点的坐标,形成潜在的骨架连线候选
- 基于 PAf 的连接评分与筛选
筛选出高置信度且两端点未被其它连接“占用”的骨架候选
- 构建姿态条目
把筛选出的高置信度骨架连接组装成一个或多个完整的姿态条目
- 多人姿态聚类与去重
在图像中可能出现多个人,需将检测到的骼架分配到不同个体
## 执行与性能
- 执行
```bash
python openpose.py
```
- 推理时间
板卡推理时间约 60.35ms
- 输出fe的相似度
板卡的输出2和pc端输出2的fe_mean、fe_max分别为 0.00037104913 0.14568077
板卡的输出3和pc端输出3的fe_mean、fe_max分别为 0.00013199929 0.093690544
- 输出结果
结果图保存路径 ../resource/openpose/result.jpg
![本地示例图](../resource/openpose/result.jpg)

BIN
resource/openpose/0.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
resource/openpose/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@ -0,0 +1 @@
0.jpg

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,56 @@
# !!!This file disallow TABs!!!
# "category" allowed values: "image, frequency, undefined"
# "database" allowed types: "TEXT, NPY, H5FS, SQLITE, LMDB, GENERATOR, ZIP"
# "tensor_name" only support in H5FS database
# "preproc_type" allowed types:"IMAGE_RGB, IMAGE_RGB888_PLANAR, IMAGE_RGB888_PLANAR_SEP, IMAGE_I420,
# IMAGE_NV12,IMAGE_NV21, IMAGE_YUV444, IMAGE_YUYV422, IMAGE_UYVY422, IMAGE_GRAY, IMAGE_BGRA, TENSOR"
input_meta:
databases:
- path: dataset.txt
type: TEXT
ports:
- lid: input.1_121
category: image
dtype: float32
sparse: false
tensor_name:
layout: nchw
shape:
- 1
- 3
- 256
- 424
fitting: scale
preprocess:
reverse_channel: false
mean:
- 128
- 128
- 128
scale:
- 0.00390625
- 0.00390625
- 0.00390625
preproc_node_params:
add_preproc_node: true
preproc_type: IMAGE_RGB
preproc_dtype_converter:
quantizer: dynamic_fixed_point
qtype: int16
fl: 16
preproc_image_size:
- 424
- 256
preproc_crop:
enable_preproc_crop: false
crop_rect:
- 0
- 0
- 424
- 256
preproc_perm:
- 0
- 1
- 2
- 3
redirect_to_output: false

View File

@ -0,0 +1,41 @@
%YAML 1.2
---
# "acuity_postprocs" allowed types: "detection_validate, classification_validate, mute_built_in_actions, classification_classic, print_topn, dump_results"
postprocess:
app_postprocs:
- lid: attach_onnx//Concat_345/out0_0
postproc_params:
add_postproc_node: true
perm:
- 0
- 1
- 2
- 3
force_float32: true
- lid: attach_onnx//Concat_348/out0_1
postproc_params:
add_postproc_node: true
perm:
- 0
- 1
- 2
- 3
force_float32: true
- lid: attach_397/out0_2
postproc_params:
add_postproc_node: true
perm:
- 0
- 1
- 2
- 3
force_float32: true
- lid: attach_400/out0_3
postproc_params:
add_postproc_node: true
perm:
- 0
- 1
- 2
- 3
force_float32: true

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@ -0,0 +1,966 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130" moduleId="org.eclipse.cdt.core.settings" name="Debug">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" errorParsers="org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser" id="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130" name="Debug" parent="cdt.managedbuild.config.gnu.linux.openvx.exe.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
<folderInfo id="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130." name="/" resourcePath="">
<toolChain errorParsers="" id="cdt.managedbuild.toolchain.gnu.linux.openvx.exe.debug.1704600254" name="OpenVX GCC(Linux)" superClass="cdt.managedbuild.toolchain.gnu.linux.openvx.exe.debug">
<targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.target.gnu.linux.openvx.platform.exe.debug.1602133548" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.linux.openvx.platform.exe.debug"/>
<builder buildPath="${workspace_loc:/${project_name}/Debug}" errorParsers="" id="cdt.managedbuild.target.gnu.linux.openvx.builder.exe.debug.349572263" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="cdt.managedbuild.target.gnu.linux.openvx.builder.exe.debug"/>
<tool command="as" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GASErrorParser" id="cdt.managedbuild.tool.gnu.linux.openvx.assembler.exe.debug.1219759698" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.assembler.exe.debug">
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.448743315" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
<tool command="gcc" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.debug.2058430145" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.debug">
<option defaultValue="gnu.c.optimization.level.none" id="gnu.linux.openvx.c.compiler.exe.debug.option.optimization.level.859665887" name="Optimization Level" superClass="gnu.linux.openvx.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/>
<option id="gnu.linux.openvx.c.compiler.exe.debug.option.debugging.level.1326095069" name="Debug Level" superClass="gnu.linux.openvx.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
<option id="gnu.c.compiler.option.include.paths.1651764214" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${GWG_SDK_DIR}/include/ovxlib&quot;"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.502494195" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool command="g++" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.debug.1442125376" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.debug">
<option id="gnu.linux.openvx.cpp.compiler.exe.debug.option.optimization.level.382229710" name="Optimization Level" superClass="gnu.linux.openvx.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
<option id="gnu.linux.openvx.cpp.compiler.exe.debug.option.debugging.level.943151929" name="Debug Level" superClass="gnu.linux.openvx.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.include.paths.1241742902" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${GWG_SDK_DIR}/include/ovxlib&quot;"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.301472061" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.c.linker.exe.debug.634321620" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.linux.openvx.c.linker.exe.debug"/>
<tool command="g++" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="cdt.managedbuild.tool.gnu.linux.openvx.cpp.linker.exe.debug.520234194" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.linux.openvx.cpp.linker.exe.debug">
<option id="gnu.cpp.link.option.libs.1847698426" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
<listOptionValue builtIn="false" value="ovxlib"/>
<listOptionValue builtIn="false" value="OpenVX"/>
<listOptionValue builtIn="false" value="OpenVXU"/>
<listOptionValue builtIn="false" value="jpeg"/>
<listOptionValue builtIn="false" value="m"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1790836754" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="cdt.managedbuild.tool.gnu.linux.archiver.openvx.1346749068" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.linux.archiver.openvx"/>
<tool command="vcCompiler" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="cdt.managedbuild.tool.gnu.linux.openvx.compiler.gcpgm.debug.1785186538" name="OpenVX Compiler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.compiler.gcpgm.debug">
<option defaultValue="vip.vc.compiler.option.optimization.level.none" id="vip.vc.compiler.option.optimization.level.713126919" name="Optimization Level" superClass="vip.vc.compiler.option.optimization.level" valueType="enumerated"/>
<inputType id="cdt.managedbuild.tool.vip.vc.compiler.input.vx.3013383" superClass="cdt.managedbuild.tool.vip.vc.compiler.input.vx"/>
<inputType id="cdt.managedbuild.tool.vip.vc.compiler.input.cl.1350612027" superClass="cdt.managedbuild.tool.vip.vc.compiler.input.cl"/>
</tool>
<tool command="vcLinker" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="cdt.managedbuild.tool.gnu.linux.openvx.linker.gcpgm.debug.176361644" name="OpenVX Linker" superClass="cdt.managedbuild.tool.gnu.linux.openvx.linker.gcpgm.debug"/>
</toolChain>
</folderInfo>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329;cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329.;cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.release.1943605578;cdt.managedbuild.tool.gnu.c.compiler.input.1118528208">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130;cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130.;cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.debug.1442125376;cdt.managedbuild.tool.gnu.cpp.compiler.input.301472061">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329;cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329.;cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.release.1693473506;cdt.managedbuild.tool.gnu.cpp.compiler.input.856432265">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130;cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130.;cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.debug.2058430145;cdt.managedbuild.tool.gnu.c.compiler.input.502494195">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
</storageModule>
</cconfiguration>
<cconfiguration id="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329" moduleId="org.eclipse.cdt.core.settings" name="Release">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329" name="Release" parent="cdt.managedbuild.config.gnu.linux.openvx.exe.release">
<folderInfo id="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.linux.openvx.exe.release.1587127856" name="OpenVX GCC(Linux)" superClass="cdt.managedbuild.toolchain.gnu.linux.openvx.exe.release">
<targetPlatform id="cdt.managedbuild.target.gnu.linux.openvx.platform.exe.release.289463889" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.linux.openvx.platform.exe.release"/>
<builder buildPath="${workspace_loc:/${project_name}/Release}" id="cdt.managedbuild.target.gnu.linux.openvx.builder.exe.release.1184232161" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="cdt.managedbuild.target.gnu.linux.openvx.builder.exe.release"/>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.assembler.exe.release.355734481" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.assembler.exe.release">
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.368016013" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.release.1943605578" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.release">
<option defaultValue="gnu.c.optimization.level.most" id="gnu.linux.openvx.c.compiler.exe.release.option.optimization.level.1553939765" name="Optimization Level" superClass="gnu.linux.openvx.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/>
<option id="gnu.linux.openvx.c.compiler.exe.release.option.debugging.level.1980676931" name="Debug Level" superClass="gnu.linux.openvx.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
<option id="gnu.c.compiler.option.include.paths.1031613412" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${GWG_SDK_DIR}/include/ovxlib&quot;"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1118528208" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.release.1693473506" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.release">
<option id="gnu.linux.openvx.cpp.compiler.exe.release.option.optimization.level.734580791" name="Optimization Level" superClass="gnu.linux.openvx.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
<option id="gnu.linux.openvx.cpp.compiler.exe.release.option.debugging.level.239734134" name="Debug Level" superClass="gnu.linux.openvx.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.include.paths.1384073886" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${GWG_SDK_DIR}/include/ovxlib&quot;"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.856432265" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.c.linker.exe.release.1176963850" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.linux.openvx.c.linker.exe.release"/>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.cpp.linker.exe.release.413519374" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.linux.openvx.cpp.linker.exe.release">
<option id="gnu.cpp.link.option.libs.1661239344" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
<listOptionValue builtIn="false" value="ovxlib"/>
<listOptionValue builtIn="false" value="OpenVX"/>
<listOptionValue builtIn="false" value="OpenVXU"/>
<listOptionValue builtIn="false" value="jpeg"/>
<listOptionValue builtIn="false" value="m"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.25009685" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="cdt.managedbuild.tool.gnu.linux.archiver.openvx.1506044250" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.linux.archiver.openvx"/>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.compiler.gcpgm.release.862099167" name="OpenVX Compiler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.compiler.gcpgm.release">
<option defaultValue="vip.vc.compiler.option.optimization.level.none" id="vip.vc.compiler.option.optimization.level.778061367" name="Optimization Level" superClass="vip.vc.compiler.option.optimization.level" valueType="enumerated"/>
<inputType id="cdt.managedbuild.tool.vip.vc.compiler.input.vx.1221562505" superClass="cdt.managedbuild.tool.vip.vc.compiler.input.vx"/>
<inputType id="cdt.managedbuild.tool.vip.vc.compiler.input.cl.210232097" superClass="cdt.managedbuild.tool.vip.vc.compiler.input.cl"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.linker.gcpgm.release.1180341267" name="OpenVX Linker" superClass="cdt.managedbuild.tool.gnu.linux.openvx.linker.gcpgm.release"/>
</toolChain>
</folderInfo>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329;cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329.;cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.release.1943605578;cdt.managedbuild.tool.gnu.c.compiler.input.1118528208">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130;cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130.;cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.debug.1442125376;cdt.managedbuild.tool.gnu.cpp.compiler.input.301472061">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329;cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329.;cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.release.1693473506;cdt.managedbuild.tool.gnu.cpp.compiler.input.856432265">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130;cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130.;cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.debug.2058430145;cdt.managedbuild.tool.gnu.c.compiler.input.502494195">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
</storageModule>
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="${project_name}.cdt.managedbuild.target.gnu.linux.openvx.exe.278286742" name="Executable" projectType="cdt.managedbuild.target.gnu.linux.openvx.exe"/>
</storageModule>
</cproject>

View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>asymmetricaffine</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
<dictionary>
<key>?name?</key>
<value></value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.append_environment</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildArguments</key>
<value></value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildCommand</key>
<value>make</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildLocation</key>
<value>${workspace_loc:/${project_name}/Debug}</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.contents</key>
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
<value>false</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.stopOnError</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
<value>true</value>
</dictionary>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.verisilicon.vdt.core.vdtnature</nature>
<nature>com.verisilicon.vdt.core.ovxnature</nature>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,28 @@
# AUTO GENERATED FILE, BUILD AND RUN IN OVXLIB
package(default_visibility = ["//visibility:public"])
filegroup(
name = "srcs",
srcs =
[
"vnn_asymmetricaffine.c",
"vnn_asymmetricaffine.h",
"vnn_post_process.c",
"vnn_post_process.h",
"vnn_pre_process.c",
"vnn_pre_process.h",
"vnn_global.h",
"main.c",
],
)
cc_binary(
name = "inference",
srcs = [":srcs"] + ["//:ovxlib"],
deps = [
"//third-party/jpeg-9b:libjpeg",
"//:ovxlib",
"@VIV_SDK//:VIV_SDK_LIB",
],
)

View File

@ -0,0 +1,224 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Jenkins-Debug|Win32">
<Configuration>Jenkins-Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Jenkins-Debug|x64">
<Configuration>Jenkins-Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>asymmetricaffine</ProjectName>
<ProjectGuid>{816BB4FE-3813-3D87-9CF9-2B0D268ED67A}</ProjectGuid>
<RootNamespace>asymmetricaffine</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros">
<OVXLIB_PATH Condition="EXISTS('$(SolutionDir)ovxlib.path.user')">$([System.IO.File]::ReadAllText($(SolutionDir)ovxlib.path.user).Trim())</OVXLIB_PATH>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'">
<TargetExt>.exe</TargetExt>
<IntDir>$(SolutionDir)$(Configuration)\objs\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'">
<TargetExt>.exe</TargetExt>
<IntDir>$(SolutionDir)$(Configuration)\objs\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(VIV_SDK_PATH)\include;$(SolutionDir)\include;$(SolutionDir)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(VIV_SDK_PATH)\lib\win32;$(SolutionDir)$(Configuration)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(VIV_SDK_PATH)\include;$(SolutionDir)\include;$(SolutionDir)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(VIV_SDK_PATH)\lib\win32;$(SolutionDir)$(Configuration)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="vnn_asymmetricaffine.h" />
<ClInclude Include="vnn_post_process.h" />
<ClInclude Include="vnn_pre_process.h" />
<ClInclude Include="vnn_global.h" />
<ClCompile Include="vnn_asymmetricaffine.c" />
<ClCompile Include="vnn_post_process.c" />
<ClCompile Include="vnn_pre_process.c" />
<ClCompile Include="main.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,224 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Jenkins-Debug|Win32">
<Configuration>Jenkins-Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Jenkins-Debug|x64">
<Configuration>Jenkins-Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>asymmetricaffine</ProjectName>
<ProjectGuid>{CFF12436-742A-4286-AA83-291F06E8D652}</ProjectGuid>
<RootNamespace>asymmetricaffine</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros">
<OVXLIB_PATH Condition="EXISTS('$(SolutionDir)ovxlib.path.user')">$([System.IO.File]::ReadAllText($(SolutionDir)ovxlib.path.user).Trim())</OVXLIB_PATH>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'">
<TargetExt>.exe</TargetExt>
<IntDir>$(SolutionDir)$(Configuration)\objs\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'">
<TargetExt>.exe</TargetExt>
<IntDir>$(SolutionDir)$(Configuration)\objs\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(VIV_SDK_PATH)\include;$(SolutionDir)\include;$(SolutionDir)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(VIV_SDK_PATH)\lib\win32;$(SolutionDir)$(Configuration)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(VIV_SDK_PATH)\include;$(SolutionDir)\include;$(SolutionDir)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(VIV_SDK_PATH)\lib\win32;$(SolutionDir)$(Configuration)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="vnn_asymmetricaffine.h" />
<ClInclude Include="vnn_post_process.h" />
<ClInclude Include="vnn_pre_process.h" />
<ClInclude Include="vnn_global.h" />
<ClCompile Include="vnn_asymmetricaffine.c" />
<ClCompile Include="vnn_post_process.c" />
<ClCompile Include="vnn_pre_process.c" />
<ClCompile Include="main.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,264 @@
/****************************************************************************
* Generated by NETRANS 6.27.0
* Match ovxlib 1.1.53
*
* Neural Network application project entry file
****************************************************************************/
/*-------------------------------------------
Includes
-------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef __linux__
#include <time.h>
#include <inttypes.h>
#elif defined(_WIN32)
#include <windows.h>
#endif
#define _BASETSD_H
#include "vsi_nn_pub.h"
#include "vnn_global.h"
#include "vnn_pre_process.h"
#include "vnn_post_process.h"
#include "vnn_asymmetricaffine.h"
/*-------------------------------------------
Macros and Variables
-------------------------------------------*/
#ifdef __linux__
#define VSI_UINT64_SPECIFIER PRIu64
#elif defined(_WIN32)
#define VSI_UINT64_SPECIFIER "I64u"
#endif
/*-------------------------------------------
Functions
-------------------------------------------*/
static void vnn_ReleaseNeuralNetwork
(
vsi_nn_graph_t *graph
)
{
vnn_ReleaseAsymmetricAffine( graph, TRUE );
if (vnn_UseImagePreprocessNode())
{
vnn_ReleaseBufferImage();
}
}
static vsi_status vnn_PostProcessNeuralNetwork
(
vsi_nn_graph_t *graph
)
{
return vnn_PostProcessAsymmetricAffine( graph );
}
#define BILLION 1000000000
static uint64_t get_perf_count()
{
#if defined(__linux__) || defined(__ANDROID__) || defined(__QNX__) || defined(__CYGWIN__)
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
return (uint64_t)((uint64_t)ts.tv_nsec + (uint64_t)ts.tv_sec * BILLION);
#elif defined(_WIN32) || defined(UNDER_CE)
LARGE_INTEGER freq;
LARGE_INTEGER ln;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&ln);
return (uint64_t)(ln.QuadPart * BILLION / freq.QuadPart);
#endif
}
static vsi_status vnn_VerifyGraph
(
vsi_nn_graph_t *graph
)
{
vsi_status status = VSI_FAILURE;
uint64_t tmsStart, tmsEnd, msVal, usVal;
/* Verify graph */
printf("Verify...\n");
tmsStart = get_perf_count();
status = vsi_nn_VerifyGraph( graph );
TEST_CHECK_STATUS(status, final);
tmsEnd = get_perf_count();
msVal = (tmsEnd - tmsStart)/1000000;
usVal = (tmsEnd - tmsStart)/1000;
printf("Verify Graph: %"VSI_UINT64_SPECIFIER"ms or %"VSI_UINT64_SPECIFIER"us\n", msVal, usVal);
final:
return status;
}
static vsi_status vnn_ProcessGraph
(
vsi_nn_graph_t *graph
)
{
vsi_status status = VSI_FAILURE;
int32_t i,loop;
char *loop_s;
uint64_t tmsStart, tmsEnd, sigStart, sigEnd;
float msVal, usVal;
status = VSI_FAILURE;
loop = 1; /* default loop time is 1 */
loop_s = getenv("VNN_LOOP_TIME");
if(loop_s)
{
loop = atoi(loop_s);
}
/* Run graph */
tmsStart = get_perf_count();
printf("Start run graph [%d] times...\n", loop);
for(i = 0; i < loop; i++)
{
sigStart = get_perf_count();
#ifdef VNN_APP_ASYNC_RUN
status = vsi_nn_AsyncRunGraph( graph );
if(status != VSI_SUCCESS)
{
printf("Async Run graph the %d time fail\n", i);
}
TEST_CHECK_STATUS( status, final );
//do something here...
status = vsi_nn_AsyncRunWait( graph );
if(status != VSI_SUCCESS)
{
printf("Wait graph the %d time fail\n", i);
}
#else
status = vsi_nn_RunGraph( graph );
if(status != VSI_SUCCESS)
{
printf("Run graph the %d time fail\n", i);
}
#endif
TEST_CHECK_STATUS( status, final );
sigEnd = get_perf_count();
msVal = (sigEnd - sigStart)/(float)1000000;
usVal = (sigEnd - sigStart)/(float)1000;
printf("Run the %u time: %.2fms or %.2fus\n", (i + 1), msVal, usVal);
}
tmsEnd = get_perf_count();
msVal = (tmsEnd - tmsStart)/(float)1000000;
usVal = (tmsEnd - tmsStart)/(float)1000;
printf("vxProcessGraph execution time:\n");
printf("Total %.2fms or %.2fus\n", msVal, usVal);
printf("Average %.2fms or %.2fus\n", ((float)usVal)/1000/loop, ((float)usVal)/loop);
final:
return status;
}
static vsi_status vnn_PreProcessNeuralNetwork
(
vsi_nn_graph_t *graph,
int argc,
char **argv
)
{
/*
* argv0: execute file
* argv1: data file
* argv2~n: inputs n file
*/
const char **inputs = (const char **)argv + 2;
uint32_t input_num = argc - 2;
return vnn_PreProcessAsymmetricAffine( graph, inputs, input_num );
}
static vsi_nn_graph_t *vnn_CreateNeuralNetwork
(
const char *data_file_name
)
{
vsi_nn_graph_t *graph = NULL;
uint64_t tmsStart, tmsEnd, msVal, usVal;
tmsStart = get_perf_count();
graph = vnn_CreateAsymmetricAffine( data_file_name, NULL,
vnn_GetPreProcessMap(), vnn_GetPreProcessMapCount(),
vnn_GetPostProcessMap(), vnn_GetPostProcessMapCount() );
TEST_CHECK_PTR(graph, final);
tmsEnd = get_perf_count();
msVal = (tmsEnd - tmsStart)/1000000;
usVal = (tmsEnd - tmsStart)/1000;
printf("Create Neural Network: %"VSI_UINT64_SPECIFIER"ms or %"VSI_UINT64_SPECIFIER"us\n", msVal, usVal);
final:
return graph;
}
/*-------------------------------------------
Main Functions
-------------------------------------------*/
int main
(
int argc,
char **argv
)
{
vsi_status status = VSI_FAILURE;
vsi_nn_graph_t *graph;
const char *data_name = NULL;
if(argc < 3)
{
printf("Usage: %s data_file inputs...\n", argv[0]);
return -1;
}
data_name = (const char *)argv[1];
/* Create the neural network */
graph = vnn_CreateNeuralNetwork( data_name );
TEST_CHECK_PTR( graph, final );
/* Verify graph */
status = vnn_VerifyGraph( graph );
TEST_CHECK_STATUS( status, final);
/* Pre process the image data */
status = vnn_PreProcessNeuralNetwork( graph, argc, argv );
TEST_CHECK_STATUS( status, final );
/* Process graph */
status = vnn_ProcessGraph( graph );
TEST_CHECK_STATUS( status, final );
if(VNN_APP_DEBUG)
{
/* Dump all node outputs */
vsi_nn_DumpGraphNodeOutputs(graph, "./network_dump", NULL, 0, TRUE, 0);
}
/* Post process output data */
status = vnn_PostProcessNeuralNetwork( graph );
TEST_CHECK_STATUS( status, final );
final:
vnn_ReleaseNeuralNetwork( graph );
fflush(stdout);
fflush(stderr);
return status;
}

View File

@ -0,0 +1,127 @@
ifeq (1,$(USE_IDE_LIB)) #idelib
CC=$(CROSS_COMPILE)gcc
CXX=$(CROSS_COMPILE)g++
DEBUG=0
#GWG_SDK_DIR=../IDE5.4.0/cmdtools/vsimulator
INCLUDES=-I. -I$(GWG_SDK_DIR)/include/ \
-I$(GWG_SDK_DIR)/include/CL \
-I$(GWG_SDK_DIR)/include/VX \
-I$(GWG_SDK_DIR)/include/ovxlib \
-I$(GWG_SDK_DIR)/include/jpeg
CFLAGS=-Wall -std=c++0x $(INCLUDES) -D__linux__ -DLINUX
ifeq (1,$(DEBUG))
CFLAGS+=-g
LFLAGS+=-g
else
CFLAGS+=-O3
LFLAGS+=-O3
endif
LIBS+= -L$(GWG_SDK_DIR)/lib \
-lOpenVX -lOpenVXU -lCLC -lVSC -lGAL -lovxlib -lEmulator -lvdtproxy -lArchModelSw -lNNArchPerf
LIBS+= -L$(GWG_SDK_DIR)/lib/vsim \
-lOpenVX -lOpenVXU -lCLC -lVSC -lGAL -lovxlib -lEmulator -lvdtproxy
LIBS+= -L$(GWG_SDK_DIR)/lib/x64_linux \
-lOpenVX -lOpenVXU -lCLC -lVSC -lGAL -lovxlib -lEmulator -lvdtproxy
LIBS+= -L$(GWG_SDK_DIR)/lib/x64_linux/vsim \
-lOpenVX -lOpenVXU -lCLC -lVSC -lGAL -lovxlib -lEmulator -lvdtproxy
LIBS+= -L$(GWG_SDK_DIR)/lib/x64_linux/vsim \
-lOpenVX -lOpenVXU -lCLC -lVSC -lGAL -lovxlib -lEmulator -lvdtproxy
LIBS+= -L$(GWG_SDK_DIR)/../common/lib/ \
-lvdtproxy
File = $(GWG_SDK_DIR)/lib/libjpeg.a
File2 = $(GWG_SDK_DIR)/lib/x64_linux/libjpeg.a
File3 = $(GWG_SDK_DIR)/../common/lib/libjpeg.a
ifeq ($(File),$(wildcard $(File)))
LIBS+= $(File)
else ifeq ($(File2),$(wildcard $(File2)))
LIBS+= $(File2)
else
LIBS+= $(File3)
endif
SRCS=${wildcard *.c}
SRCS+=${wildcard *.cpp}
BIN=asymmetric_affine
OBJS=$(addsuffix .o, $(basename $(SRCS)))
.SUFFIXES: .cpp .c
.cpp.o:
$(CC) $(CFLAGS) -c $<
.cpp:
$(CXX) $(CFLAGS) $< -o $@ -lm
.c.o:
$(CC) $(CFLAGS) -c $<
.c:
$(CC) $(CFLAGS) $< -o $@ -lm
all: $(BIN)
$(BIN): $(OBJS)
$(CC) $(CFLAGS) $(LFLAGS) $(EXTRALFLAGS) $(OBJS) $(LIBS) -o $@
clean:
rm -rf *.o
rm -rf $(BIN)
rm -rf *~
##############################################################################
# Netranslib. Supply necessary libraries.
else
include $(AQROOT)/makefile.linux.def
INCLUDE += -I$(GWG_SDK_INC) -I$(GWG_SDK_INC)/HAL -I$(AQROOT)/sdk/inc -I./ -I$(OVXLIB_DIR)/include/utils -I$(OVXLIB_DIR)/include/client -I$(OVXLIB_DIR)/include/ops -I$(OVXLIB_DIR)/include -I$(OVXLIB_DIR)/third-party/jpeg-9b
CFLAGS += $(INCLUDE)
ifeq ($(gcdSTATIC_LINK), 1)
LIBS += $(OVXLIB_DIR)/lib/libovxlib.a
LIBS += $(GWG_SDK_LIB)/libOpenVXU.a
LIBS += $(GWG_SDK_LIB)/libOpenVXC.a
LIBS += $(GWG_SDK_LIB)/libOpenVX.a
LIBS += $(GWG_SDK_LIB)/libCLC.a
LIBS += $(GWG_SDK_LIB)/libLLVM_viv.a
LIBS += $(GWG_SDK_LIB)/libclCompiler.a
LIBS += $(GWG_SDK_LIB)/libclPreprocessor.a
LIBS += $(GWG_SDK_LIB)/libclCommon.a
LIBS += $(GWG_SDK_LIB)/libLLVM_viv.a
LIBS += $(GWG_SDK_LIB)/libVSC.a
LIBS += $(GWG_SDK_LIB)/libhalarchuser.a
LIBS += $(GWG_SDK_LIB)/libhalosuser.a
LIBS += $(GWG_SDK_LIB)/libGAL.a
LIBS += $(GWG_SDK_LIB)/libhalarchuser.a
LIBS += $(GWG_SDK_LIB)/libGAL.a
LIBS += $(LIB_DIR)/libm.a
LIBS += $(LIB_DIR)/libpthread.a
LIBS += $(LIB_DIR)/libc.a
LIBS += $(LIB_DIR)/libdl.a
LIBS += $(LIB_DIR)/librt.a
LIBS += $(LIB_DIR)/libstdc++.a
LIBS += $(OVXLIB_DIR)/lib/libjpeg.a
else
ifeq ($(USE_VXC_BINARY)$(USE_VSC_LITE),11)
LIBS += -L$(GWG_SDK_LIB) -l OpenVX -l OpenVXU -l CLC -l VSC_Lite -lGAL
else
LIBS += -L$(GWG_SDK_LIB) -l OpenVX -l OpenVXU -l CLC -l VSC -lGAL
endif
LIBS += $(OVXLIB_DIR)/lib/libjpeg.a
LIBS += -L$(OVXLIB_DIR)/lib -l ovxlib
LIBS += -L$(LIB_DIR) -lm
endif
#############################################################################
# Macros.
PROGRAM = 1
TARGET_NAME = asymmetric_affine
CUR_SOURCE = ${wildcard *.c}
#############################################################################
# Objects.
OBJECTS = ${patsubst %.c, $(OBJ_DIR)/%.o, $(CUR_SOURCE)}
# installation directory
INSTALL_DIR := ./
################################################################################
# Include the common makefile.
include $(AQROOT)/common.target
endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,39 @@
/****************************************************************************
* Generated by NETRANS 6.27.0
* Match ovxlib 1.1.53
*
* Neural Network appliction network definition header file
****************************************************************************/
#ifndef _VNN_ASYMMETRICAFFINE_H
#define _VNN_ASYMMETRICAFFINE_H
#include "vsi_nn_pub.h"
#define VNN_APP_DEBUG (FALSE)
#define VNN_VERSION_MAJOR 1
#define VNN_VERSION_MINOR 1
#define VNN_VERSION_PATCH 53
#define VNN_RUNTIME_VERSION \
(VNN_VERSION_MAJOR * 10000 + VNN_VERSION_MINOR * 100 + VNN_VERSION_PATCH)
_version_assert(VNN_RUNTIME_VERSION <= VSI_NN_VERSION,
CASE_VERSION_is_higher_than_OVXLIB_VERSION)
void vnn_ReleaseAsymmetricAffine
(
vsi_nn_graph_t * graph,
vsi_bool release_ctx
);
vsi_nn_graph_t * vnn_CreateAsymmetricAffine
(
const char * data_file_name,
vsi_nn_context_t in_ctx,
const vsi_nn_preprocess_map_element_t * pre_process_map,
uint32_t pre_process_map_count,
const vsi_nn_postprocess_map_element_t * post_process_map,
uint32_t post_process_map_count
);
#endif

View File

@ -0,0 +1,38 @@
/****************************************************************************
* Generated by NETRANS 6.27.0
* Match ovxlib 1.1.53
*
* Neural Network global header file
****************************************************************************/
#ifndef _VNN_GLOBAL_H_
#define _VNN_GLOBAL_H_
typedef struct {
uint32_t graph_input_idx;
vsi_nn_preprocess_base_t *preprocesses;
uint32_t preprocess_count;
} vsi_nn_preprocess_map_element_t;
typedef struct {
uint32_t graph_output_idx;
vsi_nn_postprocess_base_t *postprocesses;
uint32_t postprocess_count;
} vsi_nn_postprocess_map_element_t;
#ifndef VSI_SIZE_T
typedef uint32_t vsi_size_t;
typedef int32_t vsi_ssize_t;
#endif
#ifdef _WIN32
#define VSI_FSEEK _fseeki64
#else
#define VSI_FSEEK fseek
#endif
/*
* This file will be deprecated in the future
*/
#endif

View File

@ -0,0 +1,173 @@
/****************************************************************************
* Generated by NETRANS 6.27.0
* Match ovxlib 1.1.53
*
* Neural Network appliction post-process source file
****************************************************************************/
/*-------------------------------------------
Includes
-------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "vsi_nn_pub.h"
#include "vnn_global.h"
#include "vnn_post_process.h"
#define _BASETSD_H
/*-------------------------------------------
Variable definitions
-------------------------------------------*/
/*{graph_output_idx, postprocess}*/
const static vsi_nn_postprocess_map_element_t* postprocess_map = NULL;
/*-------------------------------------------
Functions
-------------------------------------------*/
static void save_output_data(vsi_nn_graph_t *graph)
{
uint32_t i;
#define _DUMP_FILE_LENGTH 1028
#define _DUMP_SHAPE_LENGTH 128
char filename[_DUMP_FILE_LENGTH] = {0}, shape[_DUMP_SHAPE_LENGTH] = {0};
vsi_nn_tensor_t *tensor;
for(i = 0; i < graph->output.num; i++)
{
tensor = vsi_nn_GetTensor(graph, graph->output.tensors[i]);
vsi_nn_ShapeToString( tensor->attr.size, tensor->attr.dim_num,
shape, _DUMP_SHAPE_LENGTH, FALSE );
snprintf(filename, _DUMP_FILE_LENGTH, "output%u_%s.dat", i, shape);
vsi_nn_SaveTensorToBinary(graph, tensor, filename);
}
}
static vsi_bool get_top
(
float *pfProb,
float *pfMaxProb,
vsi_size_t *pMaxClass,
vsi_size_t outputCount,
vsi_size_t topNum
)
{
vsi_size_t i, j, k;
#define MAX_TOP_NUM 20
if (topNum > MAX_TOP_NUM) return FALSE;
memset(pfMaxProb, 0xfe, sizeof(float) * topNum);
memset(pMaxClass, 0xff, sizeof(vsi_size_t) * topNum);
for (j = 0; j < topNum; j++)
{
for (i=0; i<outputCount; i++)
{
for (k=0; k < topNum; k ++)
{
if(i == pMaxClass[k])
break;
}
if (k != topNum)
continue;
if (pfProb[i] > *(pfMaxProb+j))
{
*(pfMaxProb+j) = pfProb[i];
*(pMaxClass+j) = i;
}
}
}
return TRUE;
}
static vsi_status show_top5
(
vsi_nn_graph_t *graph,
vsi_nn_tensor_t *tensor
)
{
vsi_status status = VSI_FAILURE;
vsi_size_t i,sz,stride;
float *buffer = NULL;
uint8_t *tensor_data = NULL;
vsi_size_t MaxClass[5];
float fMaxProb[5];
vsi_size_t topk = 5;
sz = 1;
for(i = 0; i < tensor->attr.dim_num; i++)
{
sz *= tensor->attr.size[i];
}
if(topk > sz)
topk = sz;
stride = (vsi_size_t)vsi_nn_TypeGetBytes(tensor->attr.dtype.vx_type);
if(stride == 0)
{
stride = 1;
}
tensor_data = (uint8_t *)vsi_nn_ConvertTensorToData(graph, tensor);
buffer = (float *)malloc(sizeof(float) * sz);
for(i = 0; i < sz; i++)
{
status = vsi_nn_DtypeToFloat32(&tensor_data[stride * i], &buffer[i], &tensor->attr.dtype);
}
if (!get_top(buffer, fMaxProb, MaxClass, sz, topk))
{
printf("Fail to show result.\n");
goto final;
}
printf(" --- Top%d ---\n", topk);
for(i = 0; i< topk; i++)
{
printf("%3d: %8.6f\n", MaxClass[i], fMaxProb[i]);
}
status = VSI_SUCCESS;
final:
if(tensor_data)vsi_nn_Free(tensor_data);
if(buffer)free(buffer);
return status;
}
vsi_status vnn_PostProcessAsymmetricAffine(vsi_nn_graph_t *graph)
{
vsi_status status = VSI_FAILURE;
/* Show the top5 result */
status = show_top5(graph, vsi_nn_GetTensor(graph, graph->output.tensors[0]));
TEST_CHECK_STATUS(status, final);
/* Save all output tensor data to txt file */
save_output_data(graph);
final:
return VSI_SUCCESS;
}
const vsi_nn_postprocess_map_element_t * vnn_GetPostProcessMap()
{
return postprocess_map;
}
uint32_t vnn_GetPostProcessMapCount()
{
if (postprocess_map == NULL)
return 0;
else
return sizeof(postprocess_map) / sizeof(vsi_nn_postprocess_map_element_t);
}

View File

@ -0,0 +1,16 @@
/****************************************************************************
* Generated by NETRANS 6.27.0
* Match ovxlib 1.1.53
*
* Neural Network appliction post-process header file
****************************************************************************/
#ifndef _VNN_POST_PROCESS_H_
#define _VNN_POST_PROCESS_H_
vsi_status vnn_PostProcessAsymmetricAffine(vsi_nn_graph_t *graph);
const vsi_nn_postprocess_map_element_t * vnn_GetPostProcessMap();
uint32_t vnn_GetPostProcessMapCount();
#endif

View File

@ -0,0 +1,900 @@
/****************************************************************************
* Generated by NETRANS 6.27.0
* Match ovxlib 1.1.53
*
* Neural Network appliction pre-process source file
****************************************************************************/
/*-------------------------------------------
Includes
-------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "jpeglib.h"
#include "vsi_nn_pub.h"
#include "vnn_global.h"
#include "vnn_pre_process.h"
#define _BASETSD_H
/*-------------------------------------------
Variable definitions
-------------------------------------------*/
/*{graph_input_idx, preprocess}*/
const static vsi_nn_preprocess_map_element_t* preprocess_map = NULL;
/*-------------------------------------------
Functions
-------------------------------------------*/
#define INPUT_META_NUM 1
static vnn_input_meta_t input_meta_tab[INPUT_META_NUM];
static void _load_input_meta()
{
uint32_t i;
for (i = 0; i < INPUT_META_NUM; i++)
{
memset(&input_meta_tab[i].image.preprocess,
VNN_PREPRO_NONE, sizeof(int32_t) * VNN_PREPRO_NUM);
}
/* lid: input.1_121 */
input_meta_tab[0].image.preprocess[0] = VNN_PREPRO_REORDER;
input_meta_tab[0].image.preprocess[1] = VNN_PREPRO_MEAN;
input_meta_tab[0].image.preprocess[2] = VNN_PREPRO_SCALE;
input_meta_tab[0].image.reorder[0] = 2;
input_meta_tab[0].image.reorder[1] = 1;
input_meta_tab[0].image.reorder[2] = 0;
input_meta_tab[0].image.mean[0] = 128;
input_meta_tab[0].image.mean[1] = 128;
input_meta_tab[0].image.mean[2] = 128;
input_meta_tab[0].image.scale[0] = 0.00390625;
input_meta_tab[0].image.scale[1] = 0.00390625;
input_meta_tab[0].image.scale[2] = 0.00390625;
}
static vsi_enum _get_file_type(const char *file_name)
{
vsi_enum type = 0;
const char *ptr;
char sep = '.';
uint32_t pos,n;
char buff[32] = {0};
ptr = strrchr(file_name, sep);
pos = ptr - file_name;
n = strlen(file_name) - (pos + 1);
strncpy(buff, file_name+(pos+1), n);
if(strcmp(buff, "jpg") == 0
|| strcmp(buff, "jpeg") == 0
|| strcmp(buff, "JPG") == 0
|| strcmp(buff, "JPEG") == 0 )
{
type = NN_FILE_JPG;
}
else if(strcmp(buff, "tensor") == 0
|| strcmp(buff, "txt") == 0)
{
char *qnt_suffix = ".qnt.tensor";
ptr = strstr(file_name, qnt_suffix);
if(ptr && strlen(qnt_suffix))
{
type = NN_FILE_QTENSOR;
}
else
{
type = NN_FILE_TENSOR;
}
}
else if(strcmp(buff, "qtensor") == 0)
{
type = NN_FILE_QTENSOR;
}
else if(strcmp(buff, "bin") == 0
|| strcmp(buff, "dat") == 0)
{
type = NN_FILE_BINARY;
}
else
{
type = NN_FILE_NONE;
}
return type;
}
static vsi_status _jpeg_to_bmp
(
FILE * inputFile,
unsigned char* bmpData,
vsi_size_t bmpWidth,
vsi_size_t bmpHeight,
vsi_size_t channel
)
{
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;
JSAMPARRAY buffer;
unsigned char *point = NULL;
unsigned long width, height;
unsigned short depth = 0;
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_decompress(&cinfo);
jpeg_stdio_src(&cinfo,inputFile);
jpeg_read_header(&cinfo,TRUE);
cinfo.dct_method = JDCT_IFAST;
if (bmpData == NULL)
{
return VSI_FAILURE;
}
else
{
jpeg_start_decompress(&cinfo);
width = cinfo.output_width;
height = cinfo.output_height;
depth = cinfo.output_components;
if(width * height * depth != bmpWidth * bmpHeight * channel)
{
printf("wrong jpg file , the jpg file size should be %u %u %u\n",
bmpWidth, bmpHeight, channel);
return VSI_FAILURE;
}
buffer = (*cinfo.mem->alloc_sarray)
((j_common_ptr)&cinfo, JPOOL_IMAGE, width*depth, 1);
point = bmpData;
while (cinfo.output_scanline < height)
{
jpeg_read_scanlines(&cinfo, buffer, 1);
memcpy(point, *buffer, width * depth);
point += width * depth;
}
jpeg_finish_decompress(&cinfo);
}
jpeg_destroy_decompress(&cinfo);
return VSI_SUCCESS;
}
static uint8_t *_float32_to_dtype
(
float *fdata,
vsi_nn_tensor_t *tensor
)
{
vsi_status status;
uint8_t *data;
vsi_size_t sz,i,stride;
sz = vsi_nn_GetElementNum(tensor);
stride = vsi_nn_TypeGetBytes(tensor->attr.dtype.vx_type);
if(stride == 0)
{
stride = 1;
}
data = (uint8_t *)malloc(stride * sz * sizeof(uint8_t));
TEST_CHECK_PTR(data, final);
memset(data, 0, stride * sz * sizeof(uint8_t));
for(i = 0; i < sz; i++)
{
status = vsi_nn_Float32ToDtype(fdata[i], &data[stride * i], &tensor->attr.dtype);
if(status != VSI_SUCCESS)
{
if(data)free(data);
return NULL;
}
}
final:
return data;
}
static float *_imageData_to_float32
(
uint8_t *bmpData,
vsi_nn_tensor_t *tensor
)
{
float *fdata;
vsi_size_t sz,i;
fdata = NULL;
sz = vsi_nn_GetElementNum(tensor);
fdata = (float *)malloc(sz * sizeof(float));
TEST_CHECK_PTR(fdata, final);
for(i = 0; i < sz; i++)
{
fdata[i] = (float)bmpData[i];
}
final:
return fdata;
}
/*
jpg file --> BMP data(dataformat: RGBRGBRGB...)
*/
static uint8_t *_decode_jpeg
(
const char *name,
vsi_nn_tensor_t *tensor
)
{
FILE *bmpFile;
uint8_t *bmpData;
vsi_size_t sz,w,h,c;
vsi_status status;
bmpFile = NULL;
bmpData = NULL;
w = tensor->attr.size[0];
h = tensor->attr.size[1];
c = tensor->attr.size[2];
sz = vsi_nn_GetElementNum(tensor);
bmpFile = fopen( name, "rb" );
TEST_CHECK_PTR(bmpFile, final);
bmpData = (uint8_t *)malloc(sz * sizeof(uint8_t));
TEST_CHECK_PTR(bmpData, final);
memset(bmpData, 0, sz * sizeof(uint8_t));
status = _jpeg_to_bmp( bmpFile, bmpData, w, h, c);
if(status == VSI_FAILURE)
{
free(bmpData);
fclose(bmpFile);
return NULL;
}
final:
if(bmpFile)fclose(bmpFile);
return bmpData;
}
static void _data_scale
(
float *fdata,
vnn_input_meta_t *meta,
vsi_nn_tensor_t *tensor
)
{
vsi_size_t s0,s1,s2;
vsi_size_t i,j,offset;
float val,scale;
s0 = tensor->attr.size[0];
s1 = tensor->attr.size[1];
s2 = tensor->attr.size[2];
for(i = 0; i < s2; i++)
{
offset = s0 * s1 * i;
scale = meta->image.scale[i];
for(j = 0; j < s0 * s1; j++)
{
val = fdata[offset + j] * scale;
fdata[offset + j ] = val;
}
}
}
static void _data_mean
(
float *fdata,
vnn_input_meta_t *meta,
vsi_nn_tensor_t *tensor
)
{
vsi_size_t s0,s1,s2;
vsi_size_t i,j,offset;
float val,mean;
s0 = tensor->attr.size[0];
s1 = tensor->attr.size[1];
s2 = tensor->attr.size[2];
for(i = 0; i < s2; i++)
{
offset = s0 * s1 * i;
mean = meta->image.mean[i];
for(j = 0; j < s0 * s1; j++)
{
val = fdata[offset + j] - mean;
fdata[offset + j ] = val;
}
}
}
/*
caffe: transpose + reorder
tf: reorder
*/
static void _data_transform
(
float *fdata,
vnn_input_meta_t *meta,
vsi_nn_tensor_t *tensor
)
{
vsi_size_t s0,s1,s2;
vsi_size_t i,j,offset,sz,order;
float * data;
uint32_t * reorder;
data = NULL;
reorder = meta->image.reorder;
s0 = tensor->attr.size[0];
s1 = tensor->attr.size[1];
s2 = tensor->attr.size[2];
sz = vsi_nn_GetElementNum(tensor);
data = (float *)malloc(sz * sizeof(float));
TEST_CHECK_PTR(data, final);
memset(data, 0, sizeof(float) * sz);
for(i = 0; i < s2; i++)
{
if(s2 > 1 && reorder[i] <= s2)
{
order = reorder[i];
}
else
{
order = i;
}
offset = s0 * s1 * i;
for(j = 0; j < s0 * s1; j++)
{
data[j + offset] = fdata[j * s2 + order];
}
}
memcpy(fdata, data, sz * sizeof(float));
final:
if(data)free(data);
}
static uint8_t *_get_binary_data
(
vsi_nn_tensor_t *tensor,
const char *name
)
{
uint8_t *tensorData;
vsi_size_t sz,stride,ret,total_sz;
FILE *tensorFile;
tensorData = NULL;
tensorFile = fopen(name, "rb");
TEST_CHECK_PTR(tensorFile, error);
sz = vsi_nn_GetElementNum(tensor);
stride = vsi_nn_TypeGetBytes(tensor->attr.dtype.vx_type);
if(stride == 0)
{
stride = 1;
}
total_sz = sz * stride;
tensorData = (uint8_t *)malloc(total_sz * sizeof(uint8_t));
TEST_CHECK_PTR(tensorData, error);
memset(tensorData, 0, total_sz * sizeof(uint8_t));
ret = fread(tensorData, 1, total_sz, tensorFile);
if(ret != total_sz)
{
printf("Read %s fail\n", name);
printf("read data %u != tensor sz %u\n", ret, total_sz);
if(tensorData)free(tensorData);
goto error;
}
if(tensorFile)fclose(tensorFile);
return tensorData;
error:
if(tensorFile)fclose(tensorFile);
return NULL;
}
static uint8_t *_get_qtensor_data
(
vsi_nn_tensor_t *tensor,
const char *name
)
{
vsi_size_t i = 0;
float fval = 0.0;
uint8_t *tensorData;
vsi_size_t sz = 1,stride = 1;
FILE *tensorFile;
uint16_t uint16_temp_value = 0;
int16_t int16_temp_value = 0;
tensorData = NULL;
tensorFile = fopen(name, "rb");
TEST_CHECK_PTR(tensorFile, error);
sz = vsi_nn_GetElementNum(tensor);
stride = vsi_nn_TypeGetBytes(tensor->attr.dtype.vx_type);
if(stride == 0)
{
stride = 1;
}
tensorData = (uint8_t *)malloc(sz * stride * sizeof(uint8_t));
TEST_CHECK_PTR(tensorData, error);
memset(tensorData, 0, sz * stride * sizeof(uint8_t));
for(i = 0; i < sz; i++)
{
if(fscanf( tensorFile, "%f ", &fval ) != 1)
{
printf("Read tensor file fail.\n");
printf("Please check file lines or if the file contains illegal characters\n");
goto error;
}
if(1 == stride)
{
if(VSI_NN_TYPE_INT8 == tensor->attr.dtype.vx_type)
tensorData[i * stride] = (int8_t)fval;
else
tensorData[i * stride] = (uint8_t)fval;
}
else if(2 == stride)
{
if(VSI_NN_TYPE_INT16 == tensor->attr.dtype.vx_type)
{
int16_temp_value = (int16_t)fval;
memcpy(tensorData + i * stride, &int16_temp_value, stride * sizeof(uint8_t));
}
else
{
uint16_temp_value = (uint16_t)fval;
memcpy(tensorData + i * stride, &uint16_temp_value, stride * sizeof(uint8_t));
}
}
else
{
printf("Do not support quant data with length of %u.\n", stride);
goto error;
}
}
if(tensorFile)fclose(tensorFile);
return tensorData;
error:
if(tensorFile)fclose(tensorFile);
return NULL;
}
static uint8_t *_get_tensor_data
(
vsi_nn_tensor_t *tensor,
const char *name
)
{
vsi_status status = VSI_FAILURE;
vsi_size_t i = 0;
float fval = 0.0;
uint8_t *tensorData;
vsi_size_t sz = 1;
vsi_size_t stride = 1;
FILE *tensorFile;
tensorData = NULL;
tensorFile = fopen(name, "rb");
TEST_CHECK_PTR(tensorFile, error);
sz = vsi_nn_GetElementNum(tensor);
stride = vsi_nn_TypeGetBytes(tensor->attr.dtype.vx_type);
if(stride ==0)
{
stride = 1;
}
tensorData = (uint8_t *)malloc(stride * sz * sizeof(uint8_t));
TEST_CHECK_PTR(tensorData, error);
memset(tensorData, 0, stride * sz * sizeof(uint8_t));
for(i = 0; i < sz; i++)
{
if(fscanf( tensorFile, "%f ", &fval ) != 1)
{
printf("Read tensor file fail.\n");
printf("Please check file lines or if the file contains illegal characters\n");
goto error;
}
status = vsi_nn_Float32ToDtype(fval, &tensorData[stride * i], &tensor->attr.dtype);
TEST_CHECK_STATUS(status, error);
}
if(tensorFile)fclose(tensorFile);
return tensorData;
error:
if(tensorFile)fclose(tensorFile);
return NULL;
}
static uint8_t *_get_jpeg_data
(
vsi_nn_tensor_t *tensor,
vnn_input_meta_t *meta,
const char *filename
)
{
uint32_t i;
uint8_t *bmpData,*data;
float *fdata;
vsi_bool use_image_process = vnn_UseImagePreprocessNode();
bmpData = NULL;
fdata = NULL;
data = NULL;
bmpData = _decode_jpeg(filename, tensor);
TEST_CHECK_PTR(bmpData, final);
if(use_image_process)
{
data = bmpData;
goto final;
}
fdata = _imageData_to_float32(bmpData, tensor);
TEST_CHECK_PTR(fdata, final);
for(i = 0; i < _cnt_of_array(meta->image.preprocess); i++)
{
switch (meta->image.preprocess[i])
{
case VNN_PREPRO_NONE:
break;
case VNN_PREPRO_REORDER:
_data_transform(fdata, meta, tensor);
break;
case VNN_PREPRO_MEAN:
_data_mean(fdata, meta, tensor);
break;
case VNN_PREPRO_SCALE:
_data_scale(fdata, meta, tensor);
break;
default:
break;
}
}
data = _float32_to_dtype(fdata, tensor);
TEST_CHECK_PTR(data, final);
final:
if(fdata)
{
free(fdata);
fdata = NULL;
}
if(use_image_process)
{
;
}
else
{
if(bmpData)
{
free(bmpData);
bmpData = NULL;
}
}
return data;
}
#define IMAGE_ADDR_ALIGN_START_SIZE 64
#define IMAGE_ADDR_ALIGN_BLOCK_SIZE 64
static uint8_t *buffer_img = NULL;
static uint8_t *buffer_img_align_addr = NULL;
static void _get_image_handle_buffer
(
vsi_size_t width,
vsi_size_t height,
vsi_size_t channels,
vsi_size_t align_start_size,
vsi_size_t align_block_size
)
{
vsi_size_t sz;
uint64_t temp;
sz = width * height * channels + align_start_size + align_block_size;
buffer_img = (uint8_t *)malloc( sz * sizeof( uint8_t ) );
memset(buffer_img, 0, sizeof( uint8_t ) * sz);
temp = (uint64_t)(buffer_img) % align_start_size;
if (temp == 0)
{
buffer_img_align_addr = buffer_img;
}
else
{
buffer_img_align_addr = buffer_img + align_start_size - temp;
}
}
static vsi_status _handle_multiple_inputs
(
vsi_nn_graph_t *graph,
uint32_t idx,
const char *input_file
)
{
vsi_status status;
vsi_nn_tensor_t *tensor;
uint8_t *data;
vnn_input_meta_t meta;
vsi_enum fileType;
char dumpInput[128];
char *p1 = NULL;
status = VSI_FAILURE;
data = NULL;
tensor = NULL;
memset(&meta, 0, sizeof(vnn_input_meta_t));
tensor = vsi_nn_GetTensor( graph, graph->input.tensors[idx] );
meta = input_meta_tab[idx];
fileType = _get_file_type(input_file);
switch(fileType)
{
case NN_FILE_JPG:
data = _get_jpeg_data(tensor, &meta, input_file);
TEST_CHECK_PTR(data, final);
break;
case NN_FILE_TENSOR:
data = _get_tensor_data(tensor, input_file);
TEST_CHECK_PTR(data, final);
break;
case NN_FILE_QTENSOR:
data = _get_qtensor_data(tensor, input_file);
TEST_CHECK_PTR(data, final);
break;
case NN_FILE_BINARY:
data = _get_binary_data(tensor, input_file);
TEST_CHECK_PTR(data, final);
break;
default:
printf("error input file type\n");
break;
}
/* Copy the Pre-processed data to input tensor */
status = vsi_nn_CopyDataToTensor(graph, tensor, data);
TEST_CHECK_STATUS(status, final);
/* Save the image data to file */
p1 = getenv( "VSI_SAVE_FILE_TYPE");
snprintf(dumpInput, sizeof(dumpInput), "input_%d.dat", idx);
vsi_nn_SaveTensorToBinary(graph, tensor, dumpInput);
status = VSI_SUCCESS;
final:
if(data)free(data);
return status;
}
void vnn_ReleaseBufferImage()
{
if (buffer_img) free(buffer_img);
buffer_img = NULL;
}
vsi_bool vnn_UseImagePreprocessNode()
{
int32_t use_img_process;
char *use_img_process_s;
use_img_process = 0; /* default is 0 */
use_img_process_s = getenv("VSI_USE_IMAGE_PROCESS");
if(use_img_process_s)
{
use_img_process = atoi(use_img_process_s);
}
if (use_img_process)
{
return TRUE;
}
return FALSE;
}
vsi_status vnn_PreProcessAsymmetricAffine
(
vsi_nn_graph_t *graph,
const char **inputs,
uint32_t input_num
)
{
uint32_t i;
vsi_status status;
status = VSI_FAILURE;
_load_input_meta();
if(input_num != graph->input.num)
{
printf("Graph need %u inputs, but enter %u inputs!!!\n",
graph->input.num, input_num);
return status;
}
for(i = 0; i < input_num; i++)
{
status = _handle_multiple_inputs(graph, i, inputs[i]);
TEST_CHECK_STATUS(status, final);
}
status = VSI_SUCCESS;
final:
return status;
}
vsi_size_t vnn_LoadFP32DataFromTextFile
(
const char * fname,
uint8_t ** buffer_ptr,
vsi_size_t * buffer_sz
)
{
float fval = 0.0;
vsi_size_t i = 0;
uint8_t * buffer = NULL;
vsi_size_t item_ount = 0;
vsi_size_t read_size = 0;
vsi_size_t stride = sizeof(fval);
FILE *fp = NULL;
if(!fname || !buffer_ptr || !buffer_sz)
{
return read_size;
}
fp = fopen(fname, "rb");
if(fp)
{
while(!feof(fp) && fscanf( fp, "%f ", &fval ) == 1)
{
item_ount++;
}
if(item_ount > 0)
{
read_size = item_ount * stride;
buffer = (uint8_t *)malloc(read_size);
if(buffer)
{
int fail_to_read = FALSE;
VSI_FSEEK(fp, 0, SEEK_SET);
for(i = 0; i < item_ount && !fail_to_read; i++)
{
if(fscanf( fp, "%f ", (float *)&buffer[stride * i] ) != 1)
{
printf("Read tensor file fail.\n");
printf("Please check file lines or if the file contains illegal characters\n");
free(buffer);
fail_to_read = TRUE;
read_size = 0;
break;
}
}
if(!fail_to_read)
{
*buffer_ptr = buffer;
*buffer_sz = read_size;
}
}
else
{
read_size = 0;
printf("Allocate memory fail!\n");
}
}
else
{
printf("No available data found!\n");
}
fclose(fp);
}
else
{
printf("Fail to open %s\n", fname);
}
if(!read_size)
{
printf("Load data from %s fail!\n", fname);
}
return read_size;
}
vsi_size_t vnn_LoadRawDataFromBinaryFile
(
const char * fname,
uint8_t ** buffer_ptr,
vsi_size_t * buffer_sz
)
{
FILE * fp = NULL;
vsi_size_t fsize = 0;
vsi_size_t read_size = 0;
uint8_t* buffer = NULL;
if(!fname || !buffer_ptr || !buffer_sz)
{
return fsize;
}
fp = fopen(fname, "rb");
if(fp)
{
fsize = VSI_FSEEK(fp, 0, SEEK_END);
fsize = ftell(fp);
buffer = (uint8_t *)malloc(fsize);
if(buffer)
{
VSI_FSEEK(fp, 0, SEEK_SET);
read_size = fread(buffer, 1, fsize, fp);
if(read_size == fsize)
{
*buffer_ptr = buffer;
*buffer_sz = read_size;
}
else
{
fsize = 0;
free(buffer);
buffer = NULL;
}
}
else
{
fsize = 0;
printf("Allocate memory fail!\n");
}
if(fp)
{
fclose(fp);
}
}
if(!fsize)
{
printf("Load data from %s fail!\n", fname);
}
return fsize;
}
const vsi_nn_preprocess_map_element_t * vnn_GetPreProcessMap()
{
return preprocess_map;
}
uint32_t vnn_GetPreProcessMapCount()
{
if (preprocess_map == NULL)
return 0;
else
return sizeof(preprocess_map) / sizeof(vsi_nn_preprocess_map_element_t);
}

View File

@ -0,0 +1,72 @@
/****************************************************************************
* Generated by NETRANS 6.27.0
* Match ovxlib 1.1.53
*
* Neural Network appliction pre-process header file
****************************************************************************/
#ifndef _VNN_PRE_PROCESS_H_
#define _VNN_PRE_PROCESS_H_
typedef enum _vnn_file_type
{
NN_FILE_NONE,
NN_FILE_TENSOR,
NN_FILE_QTENSOR,
NN_FILE_JPG,
NN_FILE_BINARY
} vnn_file_type_e;
typedef enum _vnn_pre_order
{
VNN_PREPRO_NONE = -1,
VNN_PREPRO_REORDER,
VNN_PREPRO_MEAN,
VNN_PREPRO_SCALE,
VNN_PREPRO_NUM
} vnn_pre_order_e;
typedef struct _vnn_input_meta
{
union
{
struct
{
int32_t preprocess[VNN_PREPRO_NUM];
uint32_t reorder[4];
float mean[4];
float scale[4];
int32_t channel_count;
} image;
};
} vnn_input_meta_t;
vsi_status vnn_PreProcessAsymmetricAffine
(
vsi_nn_graph_t *graph,
const char **inputs,
uint32_t input_num
);
vsi_bool vnn_UseImagePreprocessNode();
void vnn_ReleaseBufferImage();
vsi_size_t vnn_LoadFP32DataFromTextFile
(
const char * fname,
uint8_t ** buffer_ptr,
vsi_size_t * buffer_sz
);
vsi_size_t vnn_LoadRawDataFromBinaryFile
(
const char * fname,
uint8_t ** buffer_ptr,
vsi_size_t * buffer_sz
);
const vsi_nn_preprocess_map_element_t * vnn_GetPreProcessMap();
uint32_t vnn_GetPreProcessMapCount();
#endif

View File

@ -0,0 +1,966 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130" moduleId="org.eclipse.cdt.core.settings" name="Debug">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" errorParsers="org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser" id="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130" name="Debug" parent="cdt.managedbuild.config.gnu.linux.openvx.exe.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
<folderInfo id="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130." name="/" resourcePath="">
<toolChain errorParsers="" id="cdt.managedbuild.toolchain.gnu.linux.openvx.exe.debug.1704600254" name="OpenVX GCC(Linux)" superClass="cdt.managedbuild.toolchain.gnu.linux.openvx.exe.debug">
<targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.target.gnu.linux.openvx.platform.exe.debug.1602133548" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.linux.openvx.platform.exe.debug"/>
<builder buildPath="${workspace_loc:/${project_name}/Debug}" errorParsers="" id="cdt.managedbuild.target.gnu.linux.openvx.builder.exe.debug.349572263" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="cdt.managedbuild.target.gnu.linux.openvx.builder.exe.debug"/>
<tool command="as" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GASErrorParser" id="cdt.managedbuild.tool.gnu.linux.openvx.assembler.exe.debug.1219759698" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.assembler.exe.debug">
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.448743315" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
<tool command="gcc" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.debug.2058430145" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.debug">
<option defaultValue="gnu.c.optimization.level.none" id="gnu.linux.openvx.c.compiler.exe.debug.option.optimization.level.859665887" name="Optimization Level" superClass="gnu.linux.openvx.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/>
<option id="gnu.linux.openvx.c.compiler.exe.debug.option.debugging.level.1326095069" name="Debug Level" superClass="gnu.linux.openvx.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
<option id="gnu.c.compiler.option.include.paths.1651764214" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${GWG_SDK_DIR}/include/ovxlib&quot;"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.502494195" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool command="g++" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.debug.1442125376" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.debug">
<option id="gnu.linux.openvx.cpp.compiler.exe.debug.option.optimization.level.382229710" name="Optimization Level" superClass="gnu.linux.openvx.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
<option id="gnu.linux.openvx.cpp.compiler.exe.debug.option.debugging.level.943151929" name="Debug Level" superClass="gnu.linux.openvx.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.include.paths.1241742902" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${GWG_SDK_DIR}/include/ovxlib&quot;"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.301472061" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.c.linker.exe.debug.634321620" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.linux.openvx.c.linker.exe.debug"/>
<tool command="g++" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="cdt.managedbuild.tool.gnu.linux.openvx.cpp.linker.exe.debug.520234194" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.linux.openvx.cpp.linker.exe.debug">
<option id="gnu.cpp.link.option.libs.1847698426" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
<listOptionValue builtIn="false" value="ovxlib"/>
<listOptionValue builtIn="false" value="OpenVX"/>
<listOptionValue builtIn="false" value="OpenVXU"/>
<listOptionValue builtIn="false" value="jpeg"/>
<listOptionValue builtIn="false" value="m"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1790836754" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="cdt.managedbuild.tool.gnu.linux.archiver.openvx.1346749068" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.linux.archiver.openvx"/>
<tool command="vcCompiler" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="cdt.managedbuild.tool.gnu.linux.openvx.compiler.gcpgm.debug.1785186538" name="OpenVX Compiler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.compiler.gcpgm.debug">
<option defaultValue="vip.vc.compiler.option.optimization.level.none" id="vip.vc.compiler.option.optimization.level.713126919" name="Optimization Level" superClass="vip.vc.compiler.option.optimization.level" valueType="enumerated"/>
<inputType id="cdt.managedbuild.tool.vip.vc.compiler.input.vx.3013383" superClass="cdt.managedbuild.tool.vip.vc.compiler.input.vx"/>
<inputType id="cdt.managedbuild.tool.vip.vc.compiler.input.cl.1350612027" superClass="cdt.managedbuild.tool.vip.vc.compiler.input.cl"/>
</tool>
<tool command="vcLinker" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="cdt.managedbuild.tool.gnu.linux.openvx.linker.gcpgm.debug.176361644" name="OpenVX Linker" superClass="cdt.managedbuild.tool.gnu.linux.openvx.linker.gcpgm.debug"/>
</toolChain>
</folderInfo>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329;cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329.;cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.release.1943605578;cdt.managedbuild.tool.gnu.c.compiler.input.1118528208">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130;cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130.;cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.debug.1442125376;cdt.managedbuild.tool.gnu.cpp.compiler.input.301472061">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329;cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329.;cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.release.1693473506;cdt.managedbuild.tool.gnu.cpp.compiler.input.856432265">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130;cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130.;cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.debug.2058430145;cdt.managedbuild.tool.gnu.c.compiler.input.502494195">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
</storageModule>
</cconfiguration>
<cconfiguration id="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329" moduleId="org.eclipse.cdt.core.settings" name="Release">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329" name="Release" parent="cdt.managedbuild.config.gnu.linux.openvx.exe.release">
<folderInfo id="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329." name="/" resourcePath="">
<toolChain id="cdt.managedbuild.toolchain.gnu.linux.openvx.exe.release.1587127856" name="OpenVX GCC(Linux)" superClass="cdt.managedbuild.toolchain.gnu.linux.openvx.exe.release">
<targetPlatform id="cdt.managedbuild.target.gnu.linux.openvx.platform.exe.release.289463889" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.linux.openvx.platform.exe.release"/>
<builder buildPath="${workspace_loc:/${project_name}/Release}" id="cdt.managedbuild.target.gnu.linux.openvx.builder.exe.release.1184232161" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="cdt.managedbuild.target.gnu.linux.openvx.builder.exe.release"/>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.assembler.exe.release.355734481" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.assembler.exe.release">
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.368016013" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.release.1943605578" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.release">
<option defaultValue="gnu.c.optimization.level.most" id="gnu.linux.openvx.c.compiler.exe.release.option.optimization.level.1553939765" name="Optimization Level" superClass="gnu.linux.openvx.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/>
<option id="gnu.linux.openvx.c.compiler.exe.release.option.debugging.level.1980676931" name="Debug Level" superClass="gnu.linux.openvx.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
<option id="gnu.c.compiler.option.include.paths.1031613412" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${GWG_SDK_DIR}/include/ovxlib&quot;"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1118528208" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.release.1693473506" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.release">
<option id="gnu.linux.openvx.cpp.compiler.exe.release.option.optimization.level.734580791" name="Optimization Level" superClass="gnu.linux.openvx.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
<option id="gnu.linux.openvx.cpp.compiler.exe.release.option.debugging.level.239734134" name="Debug Level" superClass="gnu.linux.openvx.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.include.paths.1384073886" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${GWG_SDK_DIR}/include/ovxlib&quot;"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.856432265" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.c.linker.exe.release.1176963850" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.linux.openvx.c.linker.exe.release"/>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.cpp.linker.exe.release.413519374" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.linux.openvx.cpp.linker.exe.release">
<option id="gnu.cpp.link.option.libs.1661239344" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
<listOptionValue builtIn="false" value="ovxlib"/>
<listOptionValue builtIn="false" value="OpenVX"/>
<listOptionValue builtIn="false" value="OpenVXU"/>
<listOptionValue builtIn="false" value="jpeg"/>
<listOptionValue builtIn="false" value="m"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.25009685" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="cdt.managedbuild.tool.gnu.linux.archiver.openvx.1506044250" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.linux.archiver.openvx"/>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.compiler.gcpgm.release.862099167" name="OpenVX Compiler" superClass="cdt.managedbuild.tool.gnu.linux.openvx.compiler.gcpgm.release">
<option defaultValue="vip.vc.compiler.option.optimization.level.none" id="vip.vc.compiler.option.optimization.level.778061367" name="Optimization Level" superClass="vip.vc.compiler.option.optimization.level" valueType="enumerated"/>
<inputType id="cdt.managedbuild.tool.vip.vc.compiler.input.vx.1221562505" superClass="cdt.managedbuild.tool.vip.vc.compiler.input.vx"/>
<inputType id="cdt.managedbuild.tool.vip.vc.compiler.input.cl.210232097" superClass="cdt.managedbuild.tool.vip.vc.compiler.input.cl"/>
</tool>
<tool id="cdt.managedbuild.tool.gnu.linux.openvx.linker.gcpgm.release.1180341267" name="OpenVX Linker" superClass="cdt.managedbuild.tool.gnu.linux.openvx.linker.gcpgm.release"/>
</toolChain>
</folderInfo>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329;cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329.;cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.release.1943605578;cdt.managedbuild.tool.gnu.c.compiler.input.1118528208">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130;cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130.;cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.debug.1442125376;cdt.managedbuild.tool.gnu.cpp.compiler.input.301472061">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329;cdt.managedbuild.config.gnu.linux.openvx.exe.release.607456329.;cdt.managedbuild.tool.gnu.linux.openvx.cpp.compiler.exe.release.1693473506;cdt.managedbuild.tool.gnu.cpp.compiler.input.856432265">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130;cdt.managedbuild.config.gnu.linux.openvx.exe.debug.1504043130.;cdt.managedbuild.tool.gnu.linux.openvx.c.compiler.exe.debug.2058430145;cdt.managedbuild.tool.gnu.c.compiler.input.502494195">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
</storageModule>
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="${project_name}.cdt.managedbuild.target.gnu.linux.openvx.exe.278286742" name="Executable" projectType="cdt.managedbuild.target.gnu.linux.openvx.exe"/>
</storageModule>
</cproject>

View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>dynamicfixedpoint16</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
<dictionary>
<key>?name?</key>
<value></value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.append_environment</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildArguments</key>
<value></value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildCommand</key>
<value>make</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildLocation</key>
<value>${workspace_loc:/${project_name}/Debug}</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.contents</key>
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
<value>false</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.stopOnError</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
<value>true</value>
</dictionary>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.verisilicon.vdt.core.vdtnature</nature>
<nature>com.verisilicon.vdt.core.ovxnature</nature>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,28 @@
# AUTO GENERATED FILE, BUILD AND RUN IN OVXLIB
package(default_visibility = ["//visibility:public"])
filegroup(
name = "srcs",
srcs =
[
"vnn_dynamicfixedpoint16.c",
"vnn_dynamicfixedpoint16.h",
"vnn_post_process.c",
"vnn_post_process.h",
"vnn_pre_process.c",
"vnn_pre_process.h",
"vnn_global.h",
"main.c",
],
)
cc_binary(
name = "inference",
srcs = [":srcs"] + ["//:ovxlib"],
deps = [
"//third-party/jpeg-9b:libjpeg",
"//:ovxlib",
"@VIV_SDK//:VIV_SDK_LIB",
],
)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,224 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Jenkins-Debug|Win32">
<Configuration>Jenkins-Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Jenkins-Debug|x64">
<Configuration>Jenkins-Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>dynamicfixedpoint16</ProjectName>
<ProjectGuid>{816BB4FE-3813-3D87-9CF9-2B0D268ED67A}</ProjectGuid>
<RootNamespace>dynamicfixedpoint16</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros">
<OVXLIB_PATH Condition="EXISTS('$(SolutionDir)ovxlib.path.user')">$([System.IO.File]::ReadAllText($(SolutionDir)ovxlib.path.user).Trim())</OVXLIB_PATH>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'">
<TargetExt>.exe</TargetExt>
<IntDir>$(SolutionDir)$(Configuration)\objs\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'">
<TargetExt>.exe</TargetExt>
<IntDir>$(SolutionDir)$(Configuration)\objs\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(VIV_SDK_PATH)\include;$(SolutionDir)\include;$(SolutionDir)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(VIV_SDK_PATH)\lib\win32;$(SolutionDir)$(Configuration)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(VIV_SDK_PATH)\include;$(SolutionDir)\include;$(SolutionDir)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(VIV_SDK_PATH)\lib\win32;$(SolutionDir)$(Configuration)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="vnn_dynamicfixedpoint16.h" />
<ClInclude Include="vnn_post_process.h" />
<ClInclude Include="vnn_pre_process.h" />
<ClInclude Include="vnn_global.h" />
<ClCompile Include="vnn_dynamicfixedpoint16.c" />
<ClCompile Include="vnn_post_process.c" />
<ClCompile Include="vnn_pre_process.c" />
<ClCompile Include="main.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,224 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Jenkins-Debug|Win32">
<Configuration>Jenkins-Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Jenkins-Debug|x64">
<Configuration>Jenkins-Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>dynamicfixedpoint16</ProjectName>
<ProjectGuid>{CFF12436-742A-4286-AA83-291F06E8D652}</ProjectGuid>
<RootNamespace>dynamicfixedpoint16</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros">
<OVXLIB_PATH Condition="EXISTS('$(SolutionDir)ovxlib.path.user')">$([System.IO.File]::ReadAllText($(SolutionDir)ovxlib.path.user).Trim())</OVXLIB_PATH>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'">
<TargetExt>.exe</TargetExt>
<IntDir>$(SolutionDir)$(Configuration)\objs\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'">
<TargetExt>.exe</TargetExt>
<IntDir>$(SolutionDir)$(Configuration)\objs\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetExt>.exe</TargetExt>
<OutDir>$(GWG_SDK_DIR)\bin\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(VIV_SDK_PATH)\include;$(SolutionDir)\include;$(SolutionDir)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(VIV_SDK_PATH)\lib\win32;$(SolutionDir)$(Configuration)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Jenkins-Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(VIV_SDK_PATH)\include;$(SolutionDir)\include;$(SolutionDir)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(VIV_SDK_PATH)\lib\win32;$(SolutionDir)$(Configuration)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>$(AQROOT)\sdk\inc;$(OVXLIB_PATH)\include;$(OVXLIB_PATH)\third-party\jpeg-9b</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(GWG_SDK_DIR)\lib;$(GWG_SDK_DIR)\bin;$(SolutionDir)$(Configuration);</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)libCLC.lib;libVSC.lib;libOpenVX.lib;libopenvxu.lib;libovxlib.lib;jpeg.lib;</AdditionalDependencies>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="vnn_dynamicfixedpoint16.h" />
<ClInclude Include="vnn_post_process.h" />
<ClInclude Include="vnn_pre_process.h" />
<ClInclude Include="vnn_global.h" />
<ClCompile Include="vnn_dynamicfixedpoint16.c" />
<ClCompile Include="vnn_post_process.c" />
<ClCompile Include="vnn_pre_process.c" />
<ClCompile Include="main.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,264 @@
/****************************************************************************
* Generated by NETRANS 6.27.0
* Match ovxlib 1.1.53
*
* Neural Network application project entry file
****************************************************************************/
/*-------------------------------------------
Includes
-------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef __linux__
#include <time.h>
#include <inttypes.h>
#elif defined(_WIN32)
#include <windows.h>
#endif
#define _BASETSD_H
#include "vsi_nn_pub.h"
#include "vnn_global.h"
#include "vnn_pre_process.h"
#include "vnn_post_process.h"
#include "vnn_dynamicfixedpoint16.h"
/*-------------------------------------------
Macros and Variables
-------------------------------------------*/
#ifdef __linux__
#define VSI_UINT64_SPECIFIER PRIu64
#elif defined(_WIN32)
#define VSI_UINT64_SPECIFIER "I64u"
#endif
/*-------------------------------------------
Functions
-------------------------------------------*/
static void vnn_ReleaseNeuralNetwork
(
vsi_nn_graph_t *graph
)
{
vnn_ReleaseDynamicFixedPoint16( graph, TRUE );
if (vnn_UseImagePreprocessNode())
{
vnn_ReleaseBufferImage();
}
}
static vsi_status vnn_PostProcessNeuralNetwork
(
vsi_nn_graph_t *graph
)
{
return vnn_PostProcessDynamicFixedPoint16( graph );
}
#define BILLION 1000000000
static uint64_t get_perf_count()
{
#if defined(__linux__) || defined(__ANDROID__) || defined(__QNX__) || defined(__CYGWIN__)
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
return (uint64_t)((uint64_t)ts.tv_nsec + (uint64_t)ts.tv_sec * BILLION);
#elif defined(_WIN32) || defined(UNDER_CE)
LARGE_INTEGER freq;
LARGE_INTEGER ln;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&ln);
return (uint64_t)(ln.QuadPart * BILLION / freq.QuadPart);
#endif
}
static vsi_status vnn_VerifyGraph
(
vsi_nn_graph_t *graph
)
{
vsi_status status = VSI_FAILURE;
uint64_t tmsStart, tmsEnd, msVal, usVal;
/* Verify graph */
printf("Verify...\n");
tmsStart = get_perf_count();
status = vsi_nn_VerifyGraph( graph );
TEST_CHECK_STATUS(status, final);
tmsEnd = get_perf_count();
msVal = (tmsEnd - tmsStart)/1000000;
usVal = (tmsEnd - tmsStart)/1000;
printf("Verify Graph: %"VSI_UINT64_SPECIFIER"ms or %"VSI_UINT64_SPECIFIER"us\n", msVal, usVal);
final:
return status;
}
static vsi_status vnn_ProcessGraph
(
vsi_nn_graph_t *graph
)
{
vsi_status status = VSI_FAILURE;
int32_t i,loop;
char *loop_s;
uint64_t tmsStart, tmsEnd, sigStart, sigEnd;
float msVal, usVal;
status = VSI_FAILURE;
loop = 1; /* default loop time is 1 */
loop_s = getenv("VNN_LOOP_TIME");
if(loop_s)
{
loop = atoi(loop_s);
}
/* Run graph */
tmsStart = get_perf_count();
printf("Start run graph [%d] times...\n", loop);
for(i = 0; i < loop; i++)
{
sigStart = get_perf_count();
#ifdef VNN_APP_ASYNC_RUN
status = vsi_nn_AsyncRunGraph( graph );
if(status != VSI_SUCCESS)
{
printf("Async Run graph the %d time fail\n", i);
}
TEST_CHECK_STATUS( status, final );
//do something here...
status = vsi_nn_AsyncRunWait( graph );
if(status != VSI_SUCCESS)
{
printf("Wait graph the %d time fail\n", i);
}
#else
status = vsi_nn_RunGraph( graph );
if(status != VSI_SUCCESS)
{
printf("Run graph the %d time fail\n", i);
}
#endif
TEST_CHECK_STATUS( status, final );
sigEnd = get_perf_count();
msVal = (sigEnd - sigStart)/(float)1000000;
usVal = (sigEnd - sigStart)/(float)1000;
printf("Run the %u time: %.2fms or %.2fus\n", (i + 1), msVal, usVal);
}
tmsEnd = get_perf_count();
msVal = (tmsEnd - tmsStart)/(float)1000000;
usVal = (tmsEnd - tmsStart)/(float)1000;
printf("vxProcessGraph execution time:\n");
printf("Total %.2fms or %.2fus\n", msVal, usVal);
printf("Average %.2fms or %.2fus\n", ((float)usVal)/1000/loop, ((float)usVal)/loop);
final:
return status;
}
static vsi_status vnn_PreProcessNeuralNetwork
(
vsi_nn_graph_t *graph,
int argc,
char **argv
)
{
/*
* argv0: execute file
* argv1: data file
* argv2~n: inputs n file
*/
const char **inputs = (const char **)argv + 2;
uint32_t input_num = argc - 2;
return vnn_PreProcessDynamicFixedPoint16( graph, inputs, input_num );
}
static vsi_nn_graph_t *vnn_CreateNeuralNetwork
(
const char *data_file_name
)
{
vsi_nn_graph_t *graph = NULL;
uint64_t tmsStart, tmsEnd, msVal, usVal;
tmsStart = get_perf_count();
graph = vnn_CreateDynamicFixedPoint16( data_file_name, NULL,
vnn_GetPreProcessMap(), vnn_GetPreProcessMapCount(),
vnn_GetPostProcessMap(), vnn_GetPostProcessMapCount() );
TEST_CHECK_PTR(graph, final);
tmsEnd = get_perf_count();
msVal = (tmsEnd - tmsStart)/1000000;
usVal = (tmsEnd - tmsStart)/1000;
printf("Create Neural Network: %"VSI_UINT64_SPECIFIER"ms or %"VSI_UINT64_SPECIFIER"us\n", msVal, usVal);
final:
return graph;
}
/*-------------------------------------------
Main Functions
-------------------------------------------*/
int main
(
int argc,
char **argv
)
{
vsi_status status = VSI_FAILURE;
vsi_nn_graph_t *graph;
const char *data_name = NULL;
if(argc < 3)
{
printf("Usage: %s data_file inputs...\n", argv[0]);
return -1;
}
data_name = (const char *)argv[1];
/* Create the neural network */
graph = vnn_CreateNeuralNetwork( data_name );
TEST_CHECK_PTR( graph, final );
/* Verify graph */
status = vnn_VerifyGraph( graph );
TEST_CHECK_STATUS( status, final);
/* Pre process the image data */
status = vnn_PreProcessNeuralNetwork( graph, argc, argv );
TEST_CHECK_STATUS( status, final );
/* Process graph */
status = vnn_ProcessGraph( graph );
TEST_CHECK_STATUS( status, final );
if(VNN_APP_DEBUG)
{
/* Dump all node outputs */
vsi_nn_DumpGraphNodeOutputs(graph, "./network_dump", NULL, 0, TRUE, 0);
}
/* Post process output data */
status = vnn_PostProcessNeuralNetwork( graph );
TEST_CHECK_STATUS( status, final );
final:
vnn_ReleaseNeuralNetwork( graph );
fflush(stdout);
fflush(stderr);
return status;
}

View File

@ -0,0 +1,127 @@
ifeq (1,$(USE_IDE_LIB)) #idelib
CC=$(CROSS_COMPILE)gcc
CXX=$(CROSS_COMPILE)g++
DEBUG=0
#GWG_SDK_DIR=../IDE5.4.0/cmdtools/vsimulator
INCLUDES=-I. -I$(GWG_SDK_DIR)/include/ \
-I$(GWG_SDK_DIR)/include/CL \
-I$(GWG_SDK_DIR)/include/VX \
-I$(GWG_SDK_DIR)/include/ovxlib \
-I$(GWG_SDK_DIR)/include/jpeg
CFLAGS=-Wall -std=c++0x $(INCLUDES) -D__linux__ -DLINUX
ifeq (1,$(DEBUG))
CFLAGS+=-g
LFLAGS+=-g
else
CFLAGS+=-O3
LFLAGS+=-O3
endif
LIBS+= -L$(GWG_SDK_DIR)/lib \
-lOpenVX -lOpenVXU -lCLC -lVSC -lGAL -lovxlib -lEmulator -lvdtproxy -lArchModelSw -lNNArchPerf
LIBS+= -L$(GWG_SDK_DIR)/lib/vsim \
-lOpenVX -lOpenVXU -lCLC -lVSC -lGAL -lovxlib -lEmulator -lvdtproxy
LIBS+= -L$(GWG_SDK_DIR)/lib/x64_linux \
-lOpenVX -lOpenVXU -lCLC -lVSC -lGAL -lovxlib -lEmulator -lvdtproxy
LIBS+= -L$(GWG_SDK_DIR)/lib/x64_linux/vsim \
-lOpenVX -lOpenVXU -lCLC -lVSC -lGAL -lovxlib -lEmulator -lvdtproxy
LIBS+= -L$(GWG_SDK_DIR)/lib/x64_linux/vsim \
-lOpenVX -lOpenVXU -lCLC -lVSC -lGAL -lovxlib -lEmulator -lvdtproxy
LIBS+= -L$(GWG_SDK_DIR)/../common/lib/ \
-lvdtproxy
File = $(GWG_SDK_DIR)/lib/libjpeg.a
File2 = $(GWG_SDK_DIR)/lib/x64_linux/libjpeg.a
File3 = $(GWG_SDK_DIR)/../common/lib/libjpeg.a
ifeq ($(File),$(wildcard $(File)))
LIBS+= $(File)
else ifeq ($(File2),$(wildcard $(File2)))
LIBS+= $(File2)
else
LIBS+= $(File3)
endif
SRCS=${wildcard *.c}
SRCS+=${wildcard *.cpp}
BIN=dynamic_fixed_point-16
OBJS=$(addsuffix .o, $(basename $(SRCS)))
.SUFFIXES: .cpp .c
.cpp.o:
$(CC) $(CFLAGS) -c $<
.cpp:
$(CXX) $(CFLAGS) $< -o $@ -lm
.c.o:
$(CC) $(CFLAGS) -c $<
.c:
$(CC) $(CFLAGS) $< -o $@ -lm
all: $(BIN)
$(BIN): $(OBJS)
$(CC) $(CFLAGS) $(LFLAGS) $(EXTRALFLAGS) $(OBJS) $(LIBS) -o $@
clean:
rm -rf *.o
rm -rf $(BIN)
rm -rf *~
##############################################################################
# Netranslib. Supply necessary libraries.
else
include $(AQROOT)/makefile.linux.def
INCLUDE += -I$(GWG_SDK_INC) -I$(GWG_SDK_INC)/HAL -I$(AQROOT)/sdk/inc -I./ -I$(OVXLIB_DIR)/include/utils -I$(OVXLIB_DIR)/include/client -I$(OVXLIB_DIR)/include/ops -I$(OVXLIB_DIR)/include -I$(OVXLIB_DIR)/third-party/jpeg-9b
CFLAGS += $(INCLUDE)
ifeq ($(gcdSTATIC_LINK), 1)
LIBS += $(OVXLIB_DIR)/lib/libovxlib.a
LIBS += $(GWG_SDK_LIB)/libOpenVXU.a
LIBS += $(GWG_SDK_LIB)/libOpenVXC.a
LIBS += $(GWG_SDK_LIB)/libOpenVX.a
LIBS += $(GWG_SDK_LIB)/libCLC.a
LIBS += $(GWG_SDK_LIB)/libLLVM_viv.a
LIBS += $(GWG_SDK_LIB)/libclCompiler.a
LIBS += $(GWG_SDK_LIB)/libclPreprocessor.a
LIBS += $(GWG_SDK_LIB)/libclCommon.a
LIBS += $(GWG_SDK_LIB)/libLLVM_viv.a
LIBS += $(GWG_SDK_LIB)/libVSC.a
LIBS += $(GWG_SDK_LIB)/libhalarchuser.a
LIBS += $(GWG_SDK_LIB)/libhalosuser.a
LIBS += $(GWG_SDK_LIB)/libGAL.a
LIBS += $(GWG_SDK_LIB)/libhalarchuser.a
LIBS += $(GWG_SDK_LIB)/libGAL.a
LIBS += $(LIB_DIR)/libm.a
LIBS += $(LIB_DIR)/libpthread.a
LIBS += $(LIB_DIR)/libc.a
LIBS += $(LIB_DIR)/libdl.a
LIBS += $(LIB_DIR)/librt.a
LIBS += $(LIB_DIR)/libstdc++.a
LIBS += $(OVXLIB_DIR)/lib/libjpeg.a
else
ifeq ($(USE_VXC_BINARY)$(USE_VSC_LITE),11)
LIBS += -L$(GWG_SDK_LIB) -l OpenVX -l OpenVXU -l CLC -l VSC_Lite -lGAL
else
LIBS += -L$(GWG_SDK_LIB) -l OpenVX -l OpenVXU -l CLC -l VSC -lGAL
endif
LIBS += $(OVXLIB_DIR)/lib/libjpeg.a
LIBS += -L$(OVXLIB_DIR)/lib -l ovxlib
LIBS += -L$(LIB_DIR) -lm
endif
#############################################################################
# Macros.
PROGRAM = 1
TARGET_NAME = dynamic_fixed_point-16
CUR_SOURCE = ${wildcard *.c}
#############################################################################
# Objects.
OBJECTS = ${patsubst %.c, $(OBJ_DIR)/%.o, $(CUR_SOURCE)}
# installation directory
INSTALL_DIR := ./
################################################################################
# Include the common makefile.
include $(AQROOT)/common.target
endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,39 @@
/****************************************************************************
* Generated by NETRANS 6.27.0
* Match ovxlib 1.1.53
*
* Neural Network appliction network definition header file
****************************************************************************/
#ifndef _VNN_DYNAMICFIXEDPOINT16_H
#define _VNN_DYNAMICFIXEDPOINT16_H
#include "vsi_nn_pub.h"
#define VNN_APP_DEBUG (FALSE)
#define VNN_VERSION_MAJOR 1
#define VNN_VERSION_MINOR 1
#define VNN_VERSION_PATCH 53
#define VNN_RUNTIME_VERSION \
(VNN_VERSION_MAJOR * 10000 + VNN_VERSION_MINOR * 100 + VNN_VERSION_PATCH)
_version_assert(VNN_RUNTIME_VERSION <= VSI_NN_VERSION,
CASE_VERSION_is_higher_than_OVXLIB_VERSION)
void vnn_ReleaseDynamicFixedPoint16
(
vsi_nn_graph_t * graph,
vsi_bool release_ctx
);
vsi_nn_graph_t * vnn_CreateDynamicFixedPoint16
(
const char * data_file_name,
vsi_nn_context_t in_ctx,
const vsi_nn_preprocess_map_element_t * pre_process_map,
uint32_t pre_process_map_count,
const vsi_nn_postprocess_map_element_t * post_process_map,
uint32_t post_process_map_count
);
#endif

View File

@ -0,0 +1,38 @@
/****************************************************************************
* Generated by NETRANS 6.27.0
* Match ovxlib 1.1.53
*
* Neural Network global header file
****************************************************************************/
#ifndef _VNN_GLOBAL_H_
#define _VNN_GLOBAL_H_
typedef struct {
uint32_t graph_input_idx;
vsi_nn_preprocess_base_t *preprocesses;
uint32_t preprocess_count;
} vsi_nn_preprocess_map_element_t;
typedef struct {
uint32_t graph_output_idx;
vsi_nn_postprocess_base_t *postprocesses;
uint32_t postprocess_count;
} vsi_nn_postprocess_map_element_t;
#ifndef VSI_SIZE_T
typedef uint32_t vsi_size_t;
typedef int32_t vsi_ssize_t;
#endif
#ifdef _WIN32
#define VSI_FSEEK _fseeki64
#else
#define VSI_FSEEK fseek
#endif
/*
* This file will be deprecated in the future
*/
#endif

View File

@ -0,0 +1,215 @@
/****************************************************************************
* Generated by NETRANS 6.27.0
* Match ovxlib 1.1.53
*
* Neural Network appliction post-process source file
****************************************************************************/
/*-------------------------------------------
Includes
-------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "vsi_nn_pub.h"
#include "vnn_global.h"
#include "vnn_post_process.h"
#define _BASETSD_H
/*-------------------------------------------
Variable definitions
-------------------------------------------*/
/*post process for lid: attach_onnx//Concat_345/out0_0*/
int32_t perm_0[] = {0, 1, 2, 3};
vsi_nn_postprocess_permute_t permute_for_norm_tensor_0 = {perm_0, 4};
vsi_nn_postprocess_dtype_convert_t dtype_convert_for_norm_tensor_0 = {{VSI_NN_DIM_FMT_NCHW, VSI_NN_TYPE_FLOAT32, {VSI_NN_QNT_TYPE_NONE}}};
vsi_nn_postprocess_base_t post_process_for_norm_tensor_0[] =
{
{VSI_NN_POSTPROCESS_PERMUTE, &permute_for_norm_tensor_0},
{VSI_NN_POSTPROCESS_DTYPE_CONVERT, &dtype_convert_for_norm_tensor_0},
};
/*post process for lid: attach_onnx//Concat_348/out0_1*/
int32_t perm_1[] = {0, 1, 2, 3};
vsi_nn_postprocess_permute_t permute_for_norm_tensor_1 = {perm_1, 4};
vsi_nn_postprocess_dtype_convert_t dtype_convert_for_norm_tensor_1 = {{VSI_NN_DIM_FMT_NCHW, VSI_NN_TYPE_FLOAT32, {VSI_NN_QNT_TYPE_NONE}}};
vsi_nn_postprocess_base_t post_process_for_norm_tensor_1[] =
{
{VSI_NN_POSTPROCESS_PERMUTE, &permute_for_norm_tensor_1},
{VSI_NN_POSTPROCESS_DTYPE_CONVERT, &dtype_convert_for_norm_tensor_1},
};
/*post process for lid: attach_397/out0_2*/
int32_t perm_2[] = {0, 1, 2, 3};
vsi_nn_postprocess_permute_t permute_for_norm_tensor_2 = {perm_2, 4};
vsi_nn_postprocess_dtype_convert_t dtype_convert_for_norm_tensor_2 = {{VSI_NN_DIM_FMT_NCHW, VSI_NN_TYPE_FLOAT32, {VSI_NN_QNT_TYPE_NONE}}};
vsi_nn_postprocess_base_t post_process_for_norm_tensor_2[] =
{
{VSI_NN_POSTPROCESS_PERMUTE, &permute_for_norm_tensor_2},
{VSI_NN_POSTPROCESS_DTYPE_CONVERT, &dtype_convert_for_norm_tensor_2},
};
/*post process for lid: attach_400/out0_3*/
int32_t perm_3[] = {0, 1, 2, 3};
vsi_nn_postprocess_permute_t permute_for_norm_tensor_3 = {perm_3, 4};
vsi_nn_postprocess_dtype_convert_t dtype_convert_for_norm_tensor_3 = {{VSI_NN_DIM_FMT_NCHW, VSI_NN_TYPE_FLOAT32, {VSI_NN_QNT_TYPE_NONE}}};
vsi_nn_postprocess_base_t post_process_for_norm_tensor_3[] =
{
{VSI_NN_POSTPROCESS_PERMUTE, &permute_for_norm_tensor_3},
{VSI_NN_POSTPROCESS_DTYPE_CONVERT, &dtype_convert_for_norm_tensor_3},
};
/*{graph_output_idx, postprocess}*/
const static vsi_nn_postprocess_map_element_t postprocess_map[] =
{
{0, post_process_for_norm_tensor_0, sizeof(post_process_for_norm_tensor_0) / sizeof(vsi_nn_postprocess_base_t)},
{1, post_process_for_norm_tensor_1, sizeof(post_process_for_norm_tensor_1) / sizeof(vsi_nn_postprocess_base_t)},
{2, post_process_for_norm_tensor_2, sizeof(post_process_for_norm_tensor_2) / sizeof(vsi_nn_postprocess_base_t)},
{3, post_process_for_norm_tensor_3, sizeof(post_process_for_norm_tensor_3) / sizeof(vsi_nn_postprocess_base_t)},
};
/*-------------------------------------------
Functions
-------------------------------------------*/
static void save_output_data(vsi_nn_graph_t *graph)
{
uint32_t i;
#define _DUMP_FILE_LENGTH 1028
#define _DUMP_SHAPE_LENGTH 128
char filename[_DUMP_FILE_LENGTH] = {0}, shape[_DUMP_SHAPE_LENGTH] = {0};
vsi_nn_tensor_t *tensor;
for(i = 0; i < graph->output.num; i++)
{
tensor = vsi_nn_GetTensor(graph, graph->output.tensors[i]);
vsi_nn_ShapeToString( tensor->attr.size, tensor->attr.dim_num,
shape, _DUMP_SHAPE_LENGTH, FALSE );
snprintf(filename, _DUMP_FILE_LENGTH, "output%u_%s.dat", i, shape);
vsi_nn_SaveTensorToBinary(graph, tensor, filename);
}
}
static vsi_bool get_top
(
float *pfProb,
float *pfMaxProb,
vsi_size_t *pMaxClass,
vsi_size_t outputCount,
vsi_size_t topNum
)
{
vsi_size_t i, j, k;
#define MAX_TOP_NUM 20
if (topNum > MAX_TOP_NUM) return FALSE;
memset(pfMaxProb, 0xfe, sizeof(float) * topNum);
memset(pMaxClass, 0xff, sizeof(vsi_size_t) * topNum);
for (j = 0; j < topNum; j++)
{
for (i=0; i<outputCount; i++)
{
for (k=0; k < topNum; k ++)
{
if(i == pMaxClass[k])
break;
}
if (k != topNum)
continue;
if (pfProb[i] > *(pfMaxProb+j))
{
*(pfMaxProb+j) = pfProb[i];
*(pMaxClass+j) = i;
}
}
}
return TRUE;
}
static vsi_status show_top5
(
vsi_nn_graph_t *graph,
vsi_nn_tensor_t *tensor
)
{
vsi_status status = VSI_FAILURE;
vsi_size_t i,sz,stride;
float *buffer = NULL;
uint8_t *tensor_data = NULL;
vsi_size_t MaxClass[5];
float fMaxProb[5];
vsi_size_t topk = 5;
sz = 1;
for(i = 0; i < tensor->attr.dim_num; i++)
{
sz *= tensor->attr.size[i];
}
if(topk > sz)
topk = sz;
stride = (vsi_size_t)vsi_nn_TypeGetBytes(tensor->attr.dtype.vx_type);
if(stride == 0)
{
stride = 1;
}
tensor_data = (uint8_t *)vsi_nn_ConvertTensorToData(graph, tensor);
buffer = (float *)malloc(sizeof(float) * sz);
for(i = 0; i < sz; i++)
{
status = vsi_nn_DtypeToFloat32(&tensor_data[stride * i], &buffer[i], &tensor->attr.dtype);
}
if (!get_top(buffer, fMaxProb, MaxClass, sz, topk))
{
printf("Fail to show result.\n");
goto final;
}
printf(" --- Top%d ---\n", topk);
for(i = 0; i< topk; i++)
{
printf("%3d: %8.6f\n", MaxClass[i], fMaxProb[i]);
}
status = VSI_SUCCESS;
final:
if(tensor_data)vsi_nn_Free(tensor_data);
if(buffer)free(buffer);
return status;
}
vsi_status vnn_PostProcessDynamicFixedPoint16(vsi_nn_graph_t *graph)
{
vsi_status status = VSI_FAILURE;
/* Show the top5 result */
status = show_top5(graph, vsi_nn_GetTensor(graph, graph->output.tensors[0]));
TEST_CHECK_STATUS(status, final);
/* Save all output tensor data to txt file */
save_output_data(graph);
final:
return VSI_SUCCESS;
}
const vsi_nn_postprocess_map_element_t * vnn_GetPostProcessMap()
{
return postprocess_map;
}
uint32_t vnn_GetPostProcessMapCount()
{
if (postprocess_map == NULL)
return 0;
else
return sizeof(postprocess_map) / sizeof(vsi_nn_postprocess_map_element_t);
}

View File

@ -0,0 +1,16 @@
/****************************************************************************
* Generated by NETRANS 6.27.0
* Match ovxlib 1.1.53
*
* Neural Network appliction post-process header file
****************************************************************************/
#ifndef _VNN_POST_PROCESS_H_
#define _VNN_POST_PROCESS_H_
vsi_status vnn_PostProcessDynamicFixedPoint16(vsi_nn_graph_t *graph);
const vsi_nn_postprocess_map_element_t * vnn_GetPostProcessMap();
uint32_t vnn_GetPostProcessMapCount();
#endif

View File

@ -0,0 +1,938 @@
/****************************************************************************
* Generated by NETRANS 6.27.0
* Match ovxlib 1.1.53
*
* Neural Network appliction pre-process source file
****************************************************************************/
/*-------------------------------------------
Includes
-------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "jpeglib.h"
#include "vsi_nn_pub.h"
#include "vnn_global.h"
#include "vnn_pre_process.h"
#define _BASETSD_H
/*-------------------------------------------
Variable definitions
-------------------------------------------*/
/*pre process for lid: input.1_121*/
vsi_nn_preprocess_source_layout_e source_layout_for_norm_tensor_4 = VSI_NN_SOURCE_LAYOUT_NCHW;
vsi_nn_preprocess_source_format_e source_format_for_norm_tensor_4 = VSI_NN_SOURCE_FORMAT_IMAGE_RGB;
vsi_nn_preprocess_image_size_t size_for_norm_tensor_4 = {424, 256, 3};
vsi_nn_preprocess_image_resize_t resize_for_norm_tensor_4 = {424, 256, 3};
int8_t reverse_channel_for_norm_tensor_4 = 1;
float mean_and_scale_4[] = {128, 128, 128};
vsi_nn_preprocess_mean_and_scale_t mean_and_scale_for_norm_tensor_4 = {mean_and_scale_4, 3, 0.00390625};
int32_t perm_4[] = {0, 1, 2, 3};
vsi_nn_preprocess_permute_t permute_for_norm_tensor_4 = {perm_4, 4};
vsi_nn_preprocess_dtype_convert_t dtype_converter_for_norm_tensor4={.dtype.fmt=VSI_NN_DIM_FMT_NCHW, .dtype.vx_type=VSI_NN_TYPE_INT16, .dtype.qnt_type=VSI_NN_QNT_TYPE_DFP, .dtype.fl=16};
vsi_nn_preprocess_base_t pre_process_for_norm_tensor_4[] =
{
{VSI_NN_PREPROCESS_SOURCE_LAYOUT, &source_layout_for_norm_tensor_4},
{VSI_NN_PREPROCESS_SET_SOURCE_FORMAT, &source_format_for_norm_tensor_4},
{VSI_NN_PREPROCESS_IMAGE_SIZE, &size_for_norm_tensor_4},
{VSI_NN_PREPROCESS_IMAGE_RESIZE_BILINEAR, &resize_for_norm_tensor_4},
{VSI_NN_PREPROCESS_REVERSE_CHANNEL, &reverse_channel_for_norm_tensor_4},
{VSI_NN_PREPROCESS_MEAN_AND_SCALE, &mean_and_scale_for_norm_tensor_4},
{VSI_NN_PREPROCESS_PERMUTE, &permute_for_norm_tensor_4},
{VSI_NN_PREPROCESS_DTYPE_CONVERT, &dtype_converter_for_norm_tensor4},
};
/*{graph_input_idx, preprocess}*/
const static vsi_nn_preprocess_map_element_t preprocess_map[] =
{
{0, pre_process_for_norm_tensor_4, sizeof(pre_process_for_norm_tensor_4) / sizeof(vsi_nn_preprocess_base_t)},
};
/*-------------------------------------------
Functions
-------------------------------------------*/
#define INPUT_META_NUM 1
static vnn_input_meta_t input_meta_tab[INPUT_META_NUM];
static void _load_input_meta()
{
uint32_t i;
for (i = 0; i < INPUT_META_NUM; i++)
{
memset(&input_meta_tab[i].image.preprocess,
VNN_PREPRO_NONE, sizeof(int32_t) * VNN_PREPRO_NUM);
}
if (vnn_UseImagePreprocessNode())
{
/* lid: input.1_121 */
input_meta_tab[0].image.preprocess[0] = VNN_PREPRO_NONE;
input_meta_tab[0].image.preprocess[1] = VNN_PREPRO_NONE;
input_meta_tab[0].image.preprocess[2] = VNN_PREPRO_NONE;
}
else
{
/* lid: input.1_121 */
input_meta_tab[0].image.preprocess[0] = VNN_PREPRO_REORDER;
input_meta_tab[0].image.preprocess[1] = VNN_PREPRO_MEAN;
input_meta_tab[0].image.preprocess[2] = VNN_PREPRO_SCALE;
input_meta_tab[0].image.reorder[0] = 2;
input_meta_tab[0].image.reorder[1] = 1;
input_meta_tab[0].image.reorder[2] = 0;
input_meta_tab[0].image.mean[0] = 128;
input_meta_tab[0].image.mean[1] = 128;
input_meta_tab[0].image.mean[2] = 128;
input_meta_tab[0].image.scale[0] = 0.00390625;
input_meta_tab[0].image.scale[1] = 0.00390625;
input_meta_tab[0].image.scale[2] = 0.00390625;
}
}
static vsi_enum _get_file_type(const char *file_name)
{
vsi_enum type = 0;
const char *ptr;
char sep = '.';
uint32_t pos,n;
char buff[32] = {0};
ptr = strrchr(file_name, sep);
pos = ptr - file_name;
n = strlen(file_name) - (pos + 1);
strncpy(buff, file_name+(pos+1), n);
if(strcmp(buff, "jpg") == 0
|| strcmp(buff, "jpeg") == 0
|| strcmp(buff, "JPG") == 0
|| strcmp(buff, "JPEG") == 0 )
{
type = NN_FILE_JPG;
}
else if(strcmp(buff, "tensor") == 0
|| strcmp(buff, "txt") == 0)
{
char *qnt_suffix = ".qnt.tensor";
ptr = strstr(file_name, qnt_suffix);
if(ptr && strlen(qnt_suffix))
{
type = NN_FILE_QTENSOR;
}
else
{
type = NN_FILE_TENSOR;
}
}
else if(strcmp(buff, "qtensor") == 0)
{
type = NN_FILE_QTENSOR;
}
else if(strcmp(buff, "bin") == 0
|| strcmp(buff, "dat") == 0)
{
type = NN_FILE_BINARY;
}
else
{
type = NN_FILE_NONE;
}
return type;
}
static vsi_status _jpeg_to_bmp
(
FILE * inputFile,
unsigned char* bmpData,
vsi_size_t bmpWidth,
vsi_size_t bmpHeight,
vsi_size_t channel
)
{
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;
JSAMPARRAY buffer;
unsigned char *point = NULL;
unsigned long width, height;
unsigned short depth = 0;
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_decompress(&cinfo);
jpeg_stdio_src(&cinfo,inputFile);
jpeg_read_header(&cinfo,TRUE);
cinfo.dct_method = JDCT_IFAST;
if (bmpData == NULL)
{
return VSI_FAILURE;
}
else
{
jpeg_start_decompress(&cinfo);
width = cinfo.output_width;
height = cinfo.output_height;
depth = cinfo.output_components;
if(width * height * depth != bmpWidth * bmpHeight * channel)
{
printf("wrong jpg file , the jpg file size should be %u %u %u\n",
bmpWidth, bmpHeight, channel);
return VSI_FAILURE;
}
buffer = (*cinfo.mem->alloc_sarray)
((j_common_ptr)&cinfo, JPOOL_IMAGE, width*depth, 1);
point = bmpData;
while (cinfo.output_scanline < height)
{
jpeg_read_scanlines(&cinfo, buffer, 1);
memcpy(point, *buffer, width * depth);
point += width * depth;
}
jpeg_finish_decompress(&cinfo);
}
jpeg_destroy_decompress(&cinfo);
return VSI_SUCCESS;
}
static uint8_t *_float32_to_dtype
(
float *fdata,
vsi_nn_tensor_t *tensor
)
{
vsi_status status;
uint8_t *data;
vsi_size_t sz,i,stride;
sz = vsi_nn_GetElementNum(tensor);
stride = vsi_nn_TypeGetBytes(tensor->attr.dtype.vx_type);
if(stride == 0)
{
stride = 1;
}
data = (uint8_t *)malloc(stride * sz * sizeof(uint8_t));
TEST_CHECK_PTR(data, final);
memset(data, 0, stride * sz * sizeof(uint8_t));
for(i = 0; i < sz; i++)
{
status = vsi_nn_Float32ToDtype(fdata[i], &data[stride * i], &tensor->attr.dtype);
if(status != VSI_SUCCESS)
{
if(data)free(data);
return NULL;
}
}
final:
return data;
}
static float *_imageData_to_float32
(
uint8_t *bmpData,
vsi_nn_tensor_t *tensor
)
{
float *fdata;
vsi_size_t sz,i;
fdata = NULL;
sz = vsi_nn_GetElementNum(tensor);
fdata = (float *)malloc(sz * sizeof(float));
TEST_CHECK_PTR(fdata, final);
for(i = 0; i < sz; i++)
{
fdata[i] = (float)bmpData[i];
}
final:
return fdata;
}
/*
jpg file --> BMP data(dataformat: RGBRGBRGB...)
*/
static uint8_t *_decode_jpeg
(
const char *name,
vsi_nn_tensor_t *tensor
)
{
FILE *bmpFile;
uint8_t *bmpData;
vsi_size_t sz,w,h,c;
vsi_status status;
bmpFile = NULL;
bmpData = NULL;
w = tensor->attr.size[0];
h = tensor->attr.size[1];
c = tensor->attr.size[2];
sz = vsi_nn_GetElementNum(tensor);
bmpFile = fopen( name, "rb" );
TEST_CHECK_PTR(bmpFile, final);
bmpData = (uint8_t *)malloc(sz * sizeof(uint8_t));
TEST_CHECK_PTR(bmpData, final);
memset(bmpData, 0, sz * sizeof(uint8_t));
status = _jpeg_to_bmp( bmpFile, bmpData, w, h, c);
if(status == VSI_FAILURE)
{
free(bmpData);
fclose(bmpFile);
return NULL;
}
final:
if(bmpFile)fclose(bmpFile);
return bmpData;
}
static void _data_scale
(
float *fdata,
vnn_input_meta_t *meta,
vsi_nn_tensor_t *tensor
)
{
vsi_size_t s0,s1,s2;
vsi_size_t i,j,offset;
float val,scale;
s0 = tensor->attr.size[0];
s1 = tensor->attr.size[1];
s2 = tensor->attr.size[2];
for(i = 0; i < s2; i++)
{
offset = s0 * s1 * i;
scale = meta->image.scale[i];
for(j = 0; j < s0 * s1; j++)
{
val = fdata[offset + j] * scale;
fdata[offset + j ] = val;
}
}
}
static void _data_mean
(
float *fdata,
vnn_input_meta_t *meta,
vsi_nn_tensor_t *tensor
)
{
vsi_size_t s0,s1,s2;
vsi_size_t i,j,offset;
float val,mean;
s0 = tensor->attr.size[0];
s1 = tensor->attr.size[1];
s2 = tensor->attr.size[2];
for(i = 0; i < s2; i++)
{
offset = s0 * s1 * i;
mean = meta->image.mean[i];
for(j = 0; j < s0 * s1; j++)
{
val = fdata[offset + j] - mean;
fdata[offset + j ] = val;
}
}
}
/*
caffe: transpose + reorder
tf: reorder
*/
static void _data_transform
(
float *fdata,
vnn_input_meta_t *meta,
vsi_nn_tensor_t *tensor
)
{
vsi_size_t s0,s1,s2;
vsi_size_t i,j,offset,sz,order;
float * data;
uint32_t * reorder;
data = NULL;
reorder = meta->image.reorder;
s0 = tensor->attr.size[0];
s1 = tensor->attr.size[1];
s2 = tensor->attr.size[2];
sz = vsi_nn_GetElementNum(tensor);
data = (float *)malloc(sz * sizeof(float));
TEST_CHECK_PTR(data, final);
memset(data, 0, sizeof(float) * sz);
for(i = 0; i < s2; i++)
{
if(s2 > 1 && reorder[i] <= s2)
{
order = reorder[i];
}
else
{
order = i;
}
offset = s0 * s1 * i;
for(j = 0; j < s0 * s1; j++)
{
data[j + offset] = fdata[j * s2 + order];
}
}
memcpy(fdata, data, sz * sizeof(float));
final:
if(data)free(data);
}
static uint8_t *_get_binary_data
(
vsi_nn_tensor_t *tensor,
const char *name
)
{
uint8_t *tensorData;
vsi_size_t sz,stride,ret,total_sz;
FILE *tensorFile;
tensorData = NULL;
tensorFile = fopen(name, "rb");
TEST_CHECK_PTR(tensorFile, error);
sz = vsi_nn_GetElementNum(tensor);
stride = vsi_nn_TypeGetBytes(tensor->attr.dtype.vx_type);
if(stride == 0)
{
stride = 1;
}
total_sz = sz * stride;
tensorData = (uint8_t *)malloc(total_sz * sizeof(uint8_t));
TEST_CHECK_PTR(tensorData, error);
memset(tensorData, 0, total_sz * sizeof(uint8_t));
ret = fread(tensorData, 1, total_sz, tensorFile);
if(ret != total_sz)
{
printf("Read %s fail\n", name);
printf("read data %u != tensor sz %u\n", ret, total_sz);
if(tensorData)free(tensorData);
goto error;
}
if(tensorFile)fclose(tensorFile);
return tensorData;
error:
if(tensorFile)fclose(tensorFile);
return NULL;
}
static uint8_t *_get_qtensor_data
(
vsi_nn_tensor_t *tensor,
const char *name
)
{
vsi_size_t i = 0;
float fval = 0.0;
uint8_t *tensorData;
vsi_size_t sz = 1,stride = 1;
FILE *tensorFile;
uint16_t uint16_temp_value = 0;
int16_t int16_temp_value = 0;
tensorData = NULL;
tensorFile = fopen(name, "rb");
TEST_CHECK_PTR(tensorFile, error);
sz = vsi_nn_GetElementNum(tensor);
stride = vsi_nn_TypeGetBytes(tensor->attr.dtype.vx_type);
if(stride == 0)
{
stride = 1;
}
tensorData = (uint8_t *)malloc(sz * stride * sizeof(uint8_t));
TEST_CHECK_PTR(tensorData, error);
memset(tensorData, 0, sz * stride * sizeof(uint8_t));
for(i = 0; i < sz; i++)
{
if(fscanf( tensorFile, "%f ", &fval ) != 1)
{
printf("Read tensor file fail.\n");
printf("Please check file lines or if the file contains illegal characters\n");
goto error;
}
if(1 == stride)
{
if(VSI_NN_TYPE_INT8 == tensor->attr.dtype.vx_type)
tensorData[i * stride] = (int8_t)fval;
else
tensorData[i * stride] = (uint8_t)fval;
}
else if(2 == stride)
{
if(VSI_NN_TYPE_INT16 == tensor->attr.dtype.vx_type)
{
int16_temp_value = (int16_t)fval;
memcpy(tensorData + i * stride, &int16_temp_value, stride * sizeof(uint8_t));
}
else
{
uint16_temp_value = (uint16_t)fval;
memcpy(tensorData + i * stride, &uint16_temp_value, stride * sizeof(uint8_t));
}
}
else
{
printf("Do not support quant data with length of %u.\n", stride);
goto error;
}
}
if(tensorFile)fclose(tensorFile);
return tensorData;
error:
if(tensorFile)fclose(tensorFile);
return NULL;
}
static uint8_t *_get_tensor_data
(
vsi_nn_tensor_t *tensor,
const char *name
)
{
vsi_status status = VSI_FAILURE;
vsi_size_t i = 0;
float fval = 0.0;
uint8_t *tensorData;
vsi_size_t sz = 1;
vsi_size_t stride = 1;
FILE *tensorFile;
tensorData = NULL;
tensorFile = fopen(name, "rb");
TEST_CHECK_PTR(tensorFile, error);
sz = vsi_nn_GetElementNum(tensor);
stride = vsi_nn_TypeGetBytes(tensor->attr.dtype.vx_type);
if(stride ==0)
{
stride = 1;
}
tensorData = (uint8_t *)malloc(stride * sz * sizeof(uint8_t));
TEST_CHECK_PTR(tensorData, error);
memset(tensorData, 0, stride * sz * sizeof(uint8_t));
for(i = 0; i < sz; i++)
{
if(fscanf( tensorFile, "%f ", &fval ) != 1)
{
printf("Read tensor file fail.\n");
printf("Please check file lines or if the file contains illegal characters\n");
goto error;
}
status = vsi_nn_Float32ToDtype(fval, &tensorData[stride * i], &tensor->attr.dtype);
TEST_CHECK_STATUS(status, error);
}
if(tensorFile)fclose(tensorFile);
return tensorData;
error:
if(tensorFile)fclose(tensorFile);
return NULL;
}
static uint8_t *_get_jpeg_data
(
vsi_nn_tensor_t *tensor,
vnn_input_meta_t *meta,
const char *filename
)
{
uint32_t i;
uint8_t *bmpData,*data;
float *fdata;
vsi_bool use_image_process = vnn_UseImagePreprocessNode();
bmpData = NULL;
fdata = NULL;
data = NULL;
bmpData = _decode_jpeg(filename, tensor);
TEST_CHECK_PTR(bmpData, final);
if(use_image_process)
{
data = bmpData;
goto final;
}
fdata = _imageData_to_float32(bmpData, tensor);
TEST_CHECK_PTR(fdata, final);
for(i = 0; i < _cnt_of_array(meta->image.preprocess); i++)
{
switch (meta->image.preprocess[i])
{
case VNN_PREPRO_NONE:
break;
case VNN_PREPRO_REORDER:
_data_transform(fdata, meta, tensor);
break;
case VNN_PREPRO_MEAN:
_data_mean(fdata, meta, tensor);
break;
case VNN_PREPRO_SCALE:
_data_scale(fdata, meta, tensor);
break;
default:
break;
}
}
data = _float32_to_dtype(fdata, tensor);
TEST_CHECK_PTR(data, final);
final:
if(fdata)
{
free(fdata);
fdata = NULL;
}
if(use_image_process)
{
;
}
else
{
if(bmpData)
{
free(bmpData);
bmpData = NULL;
}
}
return data;
}
#define IMAGE_ADDR_ALIGN_START_SIZE 64
#define IMAGE_ADDR_ALIGN_BLOCK_SIZE 64
static uint8_t *buffer_img = NULL;
static uint8_t *buffer_img_align_addr = NULL;
static void _get_image_handle_buffer
(
vsi_size_t width,
vsi_size_t height,
vsi_size_t channels,
vsi_size_t align_start_size,
vsi_size_t align_block_size
)
{
vsi_size_t sz;
uint64_t temp;
sz = width * height * channels + align_start_size + align_block_size;
buffer_img = (uint8_t *)malloc( sz * sizeof( uint8_t ) );
memset(buffer_img, 0, sizeof( uint8_t ) * sz);
temp = (uint64_t)(buffer_img) % align_start_size;
if (temp == 0)
{
buffer_img_align_addr = buffer_img;
}
else
{
buffer_img_align_addr = buffer_img + align_start_size - temp;
}
}
static vsi_status _handle_multiple_inputs
(
vsi_nn_graph_t *graph,
uint32_t idx,
const char *input_file
)
{
vsi_status status;
vsi_nn_tensor_t *tensor;
uint8_t *data;
vnn_input_meta_t meta;
vsi_enum fileType;
char dumpInput[128];
char *p1 = NULL;
status = VSI_FAILURE;
data = NULL;
tensor = NULL;
memset(&meta, 0, sizeof(vnn_input_meta_t));
tensor = vsi_nn_GetTensor( graph, graph->input.tensors[idx] );
meta = input_meta_tab[idx];
fileType = _get_file_type(input_file);
switch(fileType)
{
case NN_FILE_JPG:
data = _get_jpeg_data(tensor, &meta, input_file);
TEST_CHECK_PTR(data, final);
break;
case NN_FILE_TENSOR:
data = _get_tensor_data(tensor, input_file);
TEST_CHECK_PTR(data, final);
break;
case NN_FILE_QTENSOR:
data = _get_qtensor_data(tensor, input_file);
TEST_CHECK_PTR(data, final);
break;
case NN_FILE_BINARY:
data = _get_binary_data(tensor, input_file);
TEST_CHECK_PTR(data, final);
break;
default:
printf("error input file type\n");
break;
}
/* Copy the Pre-processed data to input tensor */
status = vsi_nn_CopyDataToTensor(graph, tensor, data);
TEST_CHECK_STATUS(status, final);
/* Save the image data to file */
p1 = getenv( "VSI_SAVE_FILE_TYPE");
snprintf(dumpInput, sizeof(dumpInput), "input_%d.dat", idx);
vsi_nn_SaveTensorToBinary(graph, tensor, dumpInput);
status = VSI_SUCCESS;
final:
if(data)free(data);
return status;
}
void vnn_ReleaseBufferImage()
{
if (buffer_img) free(buffer_img);
buffer_img = NULL;
}
vsi_bool vnn_UseImagePreprocessNode()
{
int32_t use_img_process;
char *use_img_process_s;
use_img_process = 0; /* default is 0 */
use_img_process_s = getenv("VSI_USE_IMAGE_PROCESS");
if(use_img_process_s)
{
use_img_process = atoi(use_img_process_s);
}
if (use_img_process)
{
return TRUE;
}
return FALSE;
}
vsi_status vnn_PreProcessDynamicFixedPoint16
(
vsi_nn_graph_t *graph,
const char **inputs,
uint32_t input_num
)
{
uint32_t i;
vsi_status status;
status = VSI_FAILURE;
_load_input_meta();
if(input_num != graph->input.num)
{
printf("Graph need %u inputs, but enter %u inputs!!!\n",
graph->input.num, input_num);
return status;
}
for(i = 0; i < input_num; i++)
{
status = _handle_multiple_inputs(graph, i, inputs[i]);
TEST_CHECK_STATUS(status, final);
}
status = VSI_SUCCESS;
final:
return status;
}
vsi_size_t vnn_LoadFP32DataFromTextFile
(
const char * fname,
uint8_t ** buffer_ptr,
vsi_size_t * buffer_sz
)
{
float fval = 0.0;
vsi_size_t i = 0;
uint8_t * buffer = NULL;
vsi_size_t item_ount = 0;
vsi_size_t read_size = 0;
vsi_size_t stride = sizeof(fval);
FILE *fp = NULL;
if(!fname || !buffer_ptr || !buffer_sz)
{
return read_size;
}
fp = fopen(fname, "rb");
if(fp)
{
while(!feof(fp) && fscanf( fp, "%f ", &fval ) == 1)
{
item_ount++;
}
if(item_ount > 0)
{
read_size = item_ount * stride;
buffer = (uint8_t *)malloc(read_size);
if(buffer)
{
int fail_to_read = FALSE;
VSI_FSEEK(fp, 0, SEEK_SET);
for(i = 0; i < item_ount && !fail_to_read; i++)
{
if(fscanf( fp, "%f ", (float *)&buffer[stride * i] ) != 1)
{
printf("Read tensor file fail.\n");
printf("Please check file lines or if the file contains illegal characters\n");
free(buffer);
fail_to_read = TRUE;
read_size = 0;
break;
}
}
if(!fail_to_read)
{
*buffer_ptr = buffer;
*buffer_sz = read_size;
}
}
else
{
read_size = 0;
printf("Allocate memory fail!\n");
}
}
else
{
printf("No available data found!\n");
}
fclose(fp);
}
else
{
printf("Fail to open %s\n", fname);
}
if(!read_size)
{
printf("Load data from %s fail!\n", fname);
}
return read_size;
}
vsi_size_t vnn_LoadRawDataFromBinaryFile
(
const char * fname,
uint8_t ** buffer_ptr,
vsi_size_t * buffer_sz
)
{
FILE * fp = NULL;
vsi_size_t fsize = 0;
vsi_size_t read_size = 0;
uint8_t* buffer = NULL;
if(!fname || !buffer_ptr || !buffer_sz)
{
return fsize;
}
fp = fopen(fname, "rb");
if(fp)
{
fsize = VSI_FSEEK(fp, 0, SEEK_END);
fsize = ftell(fp);
buffer = (uint8_t *)malloc(fsize);
if(buffer)
{
VSI_FSEEK(fp, 0, SEEK_SET);
read_size = fread(buffer, 1, fsize, fp);
if(read_size == fsize)
{
*buffer_ptr = buffer;
*buffer_sz = read_size;
}
else
{
fsize = 0;
free(buffer);
buffer = NULL;
}
}
else
{
fsize = 0;
printf("Allocate memory fail!\n");
}
if(fp)
{
fclose(fp);
}
}
if(!fsize)
{
printf("Load data from %s fail!\n", fname);
}
return fsize;
}
const vsi_nn_preprocess_map_element_t * vnn_GetPreProcessMap()
{
return preprocess_map;
}
uint32_t vnn_GetPreProcessMapCount()
{
if (preprocess_map == NULL)
return 0;
else
return sizeof(preprocess_map) / sizeof(vsi_nn_preprocess_map_element_t);
}

View File

@ -0,0 +1,72 @@
/****************************************************************************
* Generated by NETRANS 6.27.0
* Match ovxlib 1.1.53
*
* Neural Network appliction pre-process header file
****************************************************************************/
#ifndef _VNN_PRE_PROCESS_H_
#define _VNN_PRE_PROCESS_H_
typedef enum _vnn_file_type
{
NN_FILE_NONE,
NN_FILE_TENSOR,
NN_FILE_QTENSOR,
NN_FILE_JPG,
NN_FILE_BINARY
} vnn_file_type_e;
typedef enum _vnn_pre_order
{
VNN_PREPRO_NONE = -1,
VNN_PREPRO_REORDER,
VNN_PREPRO_MEAN,
VNN_PREPRO_SCALE,
VNN_PREPRO_NUM
} vnn_pre_order_e;
typedef struct _vnn_input_meta
{
union
{
struct
{
int32_t preprocess[VNN_PREPRO_NUM];
uint32_t reorder[4];
float mean[4];
float scale[4];
int32_t channel_count;
} image;
};
} vnn_input_meta_t;
vsi_status vnn_PreProcessDynamicFixedPoint16
(
vsi_nn_graph_t *graph,
const char **inputs,
uint32_t input_num
);
vsi_bool vnn_UseImagePreprocessNode();
void vnn_ReleaseBufferImage();
vsi_size_t vnn_LoadFP32DataFromTextFile
(
const char * fname,
uint8_t ** buffer_ptr,
vsi_size_t * buffer_sz
);
vsi_size_t vnn_LoadRawDataFromBinaryFile
(
const char * fname,
uint8_t ** buffer_ptr,
vsi_size_t * buffer_sz
);
const vsi_nn_preprocess_map_element_t * vnn_GetPreProcessMap();
uint32_t vnn_GetPreProcessMapCount();
#endif

475
src/openpose.py Normal file
View File

@ -0,0 +1,475 @@
import cv2
import numpy as np
import math
from operator import itemgetter
from utils.client import *
from utils.common import load_image_cv, init_service_rpc, fiducial_e
BODY_PARTS_KPT_IDS = [[1, 2], [1, 5], [2, 3], [3, 4], [5, 6], [6, 7], [1, 8], [8, 9], [9, 10], [1, 11],
[11, 12], [12, 13], [1, 0], [0, 14], [14, 16], [0, 15], [15, 17], [2, 16], [5, 17]]
BODY_PARTS_PAF_IDS = ([12, 13], [20, 21], [14, 15], [16, 17], [22, 23], [24, 25], [0, 1], [2, 3], [4, 5],
[6, 7], [8, 9], [10, 11], [28, 29], [30, 31], [34, 35], [32, 33], [36, 37], [18, 19], [26, 27])
def get_alpha(rate=30, cutoff=1):
tau = 1 / (2 * math.pi * cutoff)
te = 1 / rate
return 1 / (1 + tau / te)
class LowPassFilter:
"""低通滤波器
"""
def __init__(self):
self.x_previous = None
def __call__(self, x, alpha=0.5):
if self.x_previous is None:
self.x_previous = x
return x
x_filtered = alpha * x + (1 - alpha) * self.x_previous
self.x_previous = x_filtered
return x_filtered
class OneEuroFilter:
""" 由两路低通滤波组成:
filter_dx对输入导数的低通滤波
filter_x对原始信号本身的低通滤波
"""
def __init__(self, freq=15, mincutoff=1, beta=0.05, dcutoff=1):
self.freq = freq
self.mincutoff = mincutoff
self.beta = beta
self.dcutoff = dcutoff
self.filter_x = LowPassFilter()
self.filter_dx = LowPassFilter()
self.x_previous = None
self.dx = None
def __call__(self, x):
if self.dx is None:
self.dx = 0
else:
self.dx = (x - self.x_previous) * self.freq
dx_smoothed = self.filter_dx(self.dx, get_alpha(self.freq, self.dcutoff))
cutoff = self.mincutoff + self.beta * abs(dx_smoothed)
x_filtered = self.filter_x(x, get_alpha(self.freq, cutoff))
self.x_previous = x
return x_filtered
class Pose:
"""解析关键节的位置并画图
"""
num_kpts = 18
kpt_names = ['nose', 'neck',
'r_sho', 'r_elb', 'r_wri', 'l_sho', 'l_elb', 'l_wri',
'r_hip', 'r_knee', 'r_ank', 'l_hip', 'l_knee', 'l_ank',
'r_eye', 'l_eye',
'r_ear', 'l_ear']
sigmas = np.array([.26, .79, .79, .72, .62, .79, .72, .62, 1.07, .87, .89, 1.07, .87, .89, .25, .25, .35, .35],
dtype=np.float32) / 10.0
vars = (sigmas * 2) ** 2
last_id = -1
color = [0, 224, 255]
def __init__(self, keypoints, confidence):
super().__init__()
self.keypoints = keypoints
self.confidence = confidence
self.bbox = Pose.get_bbox(self.keypoints)
self.id = None
self.filters = [[OneEuroFilter(), OneEuroFilter()] for _ in range(Pose.num_kpts)]
@staticmethod
def get_bbox(keypoints):
"""从一组关键点(keypoints)中筛选出有效的关键点(即坐标不是 -1的子集
并计算这些有效关键点的最小外接矩形bounding box
----------
keypoints : 关键点
Returns
-------
最小外接矩形
"""
found_keypoints = np.zeros((np.count_nonzero(keypoints[:, 0] != -1), 2), dtype=np.int32)
found_kpt_id = 0
for kpt_id in range(Pose.num_kpts):
if keypoints[kpt_id, 0] == -1:
continue
found_keypoints[found_kpt_id] = keypoints[kpt_id]
found_kpt_id += 1
bbox = cv2.boundingRect(found_keypoints)
return bbox
def draw(self, img):
"""将关键点画到原图上
Parameters
----------
img : 原图
"""
assert self.keypoints.shape == (Pose.num_kpts, 2)
for part_id in range(len(BODY_PARTS_PAF_IDS) - 2):
kpt_a_id = BODY_PARTS_KPT_IDS[part_id][0]
global_kpt_a_id = self.keypoints[kpt_a_id, 0]
if global_kpt_a_id != -1:
x_a, y_a = self.keypoints[kpt_a_id]
cv2.circle(img, (int(x_a), int(y_a)), 3, Pose.color, -1)
kpt_b_id = BODY_PARTS_KPT_IDS[part_id][1]
global_kpt_b_id = self.keypoints[kpt_b_id, 0]
if global_kpt_b_id != -1:
x_b, y_b = self.keypoints[kpt_b_id]
cv2.circle(img, (int(x_b), int(y_b)), 3, Pose.color, -1)
if global_kpt_a_id != -1 and global_kpt_b_id != -1:
cv2.line(img, (int(x_a), int(y_a)), (int(x_b), int(y_b)), Pose.color, 1)
def extract_keypoints(heatmap, all_keypoints, total_keypoint_num):
"""从一个热力图heatmap中检测并提取关键点keypoints
Parameters
----------
heatmap : 二维的热力图通常表示某个关键点的检测概率或置信度分布
all_keypoints : 所有检测出的关键点及其信息
total_keypoint_num : 已存在的总关键点数量
Returns
-------
本次检测到的有效关键点数量
"""
heatmap[heatmap < 0.1] = 0
heatmap_with_borders = np.pad(heatmap, [(2, 2), (2, 2)], mode='constant')
heatmap_center = heatmap_with_borders[1:heatmap_with_borders.shape[0]-1, 1:heatmap_with_borders.shape[1]-1]
heatmap_left = heatmap_with_borders[1:heatmap_with_borders.shape[0]-1, 2:heatmap_with_borders.shape[1]]
heatmap_right = heatmap_with_borders[1:heatmap_with_borders.shape[0]-1, 0:heatmap_with_borders.shape[1]-2]
heatmap_up = heatmap_with_borders[2:heatmap_with_borders.shape[0], 1:heatmap_with_borders.shape[1]-1]
heatmap_down = heatmap_with_borders[0:heatmap_with_borders.shape[0]-2, 1:heatmap_with_borders.shape[1]-1]
heatmap_peaks = (heatmap_center > heatmap_left) &\
(heatmap_center > heatmap_right) &\
(heatmap_center > heatmap_up) &\
(heatmap_center > heatmap_down)
heatmap_peaks = heatmap_peaks[1:heatmap_center.shape[0]-1, 1:heatmap_center.shape[1]-1]
keypoints = list(zip(np.nonzero(heatmap_peaks)[1], np.nonzero(heatmap_peaks)[0])) # (w, h)
keypoints = sorted(keypoints, key=itemgetter(0))
suppressed = np.zeros(len(keypoints), np.uint8)
keypoints_with_score_and_id = []
keypoint_num = 0
for i in range(len(keypoints)):
if suppressed[i]:
continue
for j in range(i+1, len(keypoints)):
if math.sqrt((keypoints[i][0] - keypoints[j][0]) ** 2 +
(keypoints[i][1] - keypoints[j][1]) ** 2) < 6:
suppressed[j] = 1
keypoint_with_score_and_id = (keypoints[i][0], keypoints[i][1], heatmap[keypoints[i][1], keypoints[i][0]],
total_keypoint_num + keypoint_num)
keypoints_with_score_and_id.append(keypoint_with_score_and_id)
keypoint_num += 1
all_keypoints.append(keypoints_with_score_and_id)
return keypoint_num
def connections_nms(a_idx, b_idx, affinity_scores):
"""对一组成对点对及其对应的亲和度分数affinity scores进行排序和去重选择
得到一个非极大抑制NMS风格的点对子集
Parameters
----------
a_idx : 第一个关键点集合的索引数组
b_idx : 第二个关键点集合的索引数组
affinity_scores : 每对点的亲和度分数一维数组越大表示越可信的连接
Returns
-------
一个不重叠的置信度较高的点对集合
"""
order = affinity_scores.argsort()[::-1]
affinity_scores = affinity_scores[order]
a_idx = a_idx[order]
b_idx = b_idx[order]
idx = []
has_kpt_a = set()
has_kpt_b = set()
for t, (i, j) in enumerate(zip(a_idx, b_idx)):
if i not in has_kpt_a and j not in has_kpt_b:
idx.append(t)
has_kpt_a.add(i)
has_kpt_b.add(j)
idx = np.asarray(idx, dtype=np.int32)
return a_idx[idx], b_idx[idx], affinity_scores[idx]
def group_keypoints(all_keypoints_by_type, pafs, pose_entry_size=20, min_paf_score=0.05):
"""一组人体关键点及其关节连线的检测结果中,基于对齐的对齐关节(骨架)关系和部分字段的评分,
组装成一个或多个姿态入口pose_entries并返回更新后的所有关键点集合all_keypoints
Parameters
----------
all_keypoints_by_type : 一组按类型划分的关键点集合
pafs : 部分关节对场用于计算候选骨架的亲和度评分
pose_entry_size : 每个姿态条目的固定长度默认值为 20
min_paf_score : 匹配分数阈值
Returns
-------
过滤后的姿态条目集合;更新后的关键点集合
"""
pose_entries = []
all_keypoints = np.array([item for sublist in all_keypoints_by_type for item in sublist])
points_per_limb = 10
grid = np.arange(points_per_limb, dtype=np.float32).reshape(1, -1, 1)
all_keypoints_by_type = [np.array(keypoints, np.float32) for keypoints in all_keypoints_by_type]
for part_id in range(len(BODY_PARTS_PAF_IDS)):
part_pafs = pafs[:, :, BODY_PARTS_PAF_IDS[part_id]]
kpts_a = all_keypoints_by_type[BODY_PARTS_KPT_IDS[part_id][0]]
kpts_b = all_keypoints_by_type[BODY_PARTS_KPT_IDS[part_id][1]]
n = len(kpts_a)
m = len(kpts_b)
if n == 0 or m == 0:
continue
# Get vectors between all pairs of keypoints, i.e. candidate limb vectors.
a = kpts_a[:, :2]
a = np.broadcast_to(a[None], (m, n, 2))
b = kpts_b[:, :2]
vec_raw = (b[:, None, :] - a).reshape(-1, 1, 2)
# Sample points along every candidate limb vector.
steps = (1 / (points_per_limb - 1) * vec_raw)
points = steps * grid + a.reshape(-1, 1, 2)
points = points.round().astype(dtype=np.int32)
x = points[..., 0].ravel()
y = points[..., 1].ravel()
# Compute affinity score between candidate limb vectors and part affinity field.
field = part_pafs[y, x].reshape(-1, points_per_limb, 2)
vec_norm = np.linalg.norm(vec_raw, ord=2, axis=-1, keepdims=True)
vec = vec_raw / (vec_norm + 1e-6)
affinity_scores = (field * vec).sum(-1).reshape(-1, points_per_limb)
valid_affinity_scores = affinity_scores > min_paf_score
valid_num = valid_affinity_scores.sum(1)
affinity_scores = (affinity_scores * valid_affinity_scores).sum(1) / (valid_num + 1e-6)
success_ratio = valid_num / points_per_limb
# Get a list of limbs according to the obtained affinity score.
valid_limbs = np.where(np.logical_and(affinity_scores > 0, success_ratio > 0.8))[0]
if len(valid_limbs) == 0:
continue
b_idx, a_idx = np.divmod(valid_limbs, n)
affinity_scores = affinity_scores[valid_limbs]
# Suppress incompatible connections.
a_idx, b_idx, affinity_scores = connections_nms(a_idx, b_idx, affinity_scores)
connections = list(zip(kpts_a[a_idx, 3].astype(np.int32),
kpts_b[b_idx, 3].astype(np.int32),
affinity_scores))
if len(connections) == 0:
continue
if part_id == 0:
pose_entries = [np.ones(pose_entry_size) * -1 for _ in range(len(connections))]
for i in range(len(connections)):
pose_entries[i][BODY_PARTS_KPT_IDS[0][0]] = connections[i][0]
pose_entries[i][BODY_PARTS_KPT_IDS[0][1]] = connections[i][1]
pose_entries[i][-1] = 2
pose_entries[i][-2] = np.sum(all_keypoints[connections[i][0:2], 2]) + connections[i][2]
elif part_id == 17 or part_id == 18:
kpt_a_id = BODY_PARTS_KPT_IDS[part_id][0]
kpt_b_id = BODY_PARTS_KPT_IDS[part_id][1]
for i in range(len(connections)):
for j in range(len(pose_entries)):
if pose_entries[j][kpt_a_id] == connections[i][0] and pose_entries[j][kpt_b_id] == -1:
pose_entries[j][kpt_b_id] = connections[i][1]
elif pose_entries[j][kpt_b_id] == connections[i][1] and pose_entries[j][kpt_a_id] == -1:
pose_entries[j][kpt_a_id] = connections[i][0]
continue
else:
kpt_a_id = BODY_PARTS_KPT_IDS[part_id][0]
kpt_b_id = BODY_PARTS_KPT_IDS[part_id][1]
for i in range(len(connections)):
num = 0
for j in range(len(pose_entries)):
if pose_entries[j][kpt_a_id] == connections[i][0]:
pose_entries[j][kpt_b_id] = connections[i][1]
num += 1
pose_entries[j][-1] += 1
pose_entries[j][-2] += all_keypoints[connections[i][1], 2] + connections[i][2]
if num == 0:
pose_entry = np.ones(pose_entry_size) * -1
pose_entry[kpt_a_id] = connections[i][0]
pose_entry[kpt_b_id] = connections[i][1]
pose_entry[-1] = 2
pose_entry[-2] = np.sum(all_keypoints[connections[i][0:2], 2]) + connections[i][2]
pose_entries.append(pose_entry)
filtered_entries = []
for i in range(len(pose_entries)):
if pose_entries[i][-1] < 3 or (pose_entries[i][-2] / pose_entries[i][-1] < 0.2):
continue
filtered_entries.append(pose_entries[i])
pose_entries = np.asarray(filtered_entries)
return pose_entries, all_keypoints
def calculate_poses(heatmaps, pafs):
"""通过热力图heatmaps和部分关节对场PAFs估计并组装出一个或多个姿态poses
Parameters
----------
heatmaps : 原始的热力图张量
pafs : 部分关节对场PAFs用于评估骨架连接的置信度
Returns
-------
包含若干 Pose 对象的列表 current_poses
"""
stride = 8
upsample_ratio = 4
scale = 1
num_keypoints = Pose.num_kpts
heatmaps = cv2.resize(heatmaps, (0, 0), fx=upsample_ratio, fy=upsample_ratio, interpolation=cv2.INTER_CUBIC)
pafs = cv2.resize(pafs, (0, 0), fx=upsample_ratio, fy=upsample_ratio, interpolation=cv2.INTER_CUBIC)
total_keypoints_num = 0
all_keypoints_by_type = []
for kpt_idx in range(num_keypoints): # 19th for bg
total_keypoints_num += extract_keypoints(heatmaps[:, :, kpt_idx], all_keypoints_by_type, total_keypoints_num)
pose_entries, all_keypoints = group_keypoints(all_keypoints_by_type, pafs)
for kpt_id in range(all_keypoints.shape[0]):
all_keypoints[kpt_id, 0] = (all_keypoints[kpt_id, 0] * stride / upsample_ratio) / scale
all_keypoints[kpt_id, 1] = (all_keypoints[kpt_id, 1] * stride / upsample_ratio) / scale
current_poses = []
for n in range(len(pose_entries)):
if len(pose_entries[n]) == 0:
continue
pose_keypoints = np.ones((num_keypoints, 2), dtype=np.int32) * -1
for kpt_id in range(num_keypoints):
if pose_entries[n][kpt_id] != -1.0: # keypoint was found
pose_keypoints[kpt_id, 0] = int(all_keypoints[int(pose_entries[n][kpt_id]), 0])
pose_keypoints[kpt_id, 1] = int(all_keypoints[int(pose_entries[n][kpt_id]), 1])
pose = Pose(pose_keypoints, pose_entries[n][18])
current_poses.append(pose)
return current_poses
def binary2np(rsp):
"""
二进制数据转为指定size的np
Parameters
----------
rsp : 板卡推理结果
Returns
-------
返回np
"""
ret_bytes = []
for ret in rsp['tensor']:
ret_bytes.append(base64.b64decode(ret))
stage2_heatmaps = np.frombuffer(ret_bytes[2], dtype=np.float32).flatten()
stage2_pafs = np.frombuffer(ret_bytes[3], dtype=np.float32).flatten()
stage2_heatmaps = np.transpose(stage2_heatmaps.reshape(19, 32, 53), (1, 2, 0))
stage2_pafs = np.transpose(stage2_pafs.reshape(38, 32, 53), (1, 2, 0))
return stage2_heatmaps, stage2_pafs
def draw_content(im_src, current_poses):
"""图像上标注检测结果
Args:
im_src : 输入图片
current_poses : 关键点信息
Returns:
结果图
"""
draw_img = im_src.copy()
if len(current_poses) > 0:
orig_img = im_src.copy()
for pose in current_poses:
pose.draw(draw_img)
img_tmp = cv2.addWeighted(orig_img, 0.6, draw_img, 0.4, 0)
for pose in current_poses:
cv2.rectangle(img_tmp, (pose.bbox[0], pose.bbox[1]),
(pose.bbox[0] + pose.bbox[2], pose.bbox[1] + pose.bbox[3]), (0, 255, 0))
return img_tmp
else:
return draw_img
def post_process(rsp, im_src):
"""后处理
Args:
rsp : 板卡推理结果
im_src : 原图
Returns:
结果图
"""
stage2_heatmaps, stage2_pafs = binary2np(rsp)
current_poses = calculate_poses(stage2_heatmaps, stage2_pafs)
result_image = draw_content(im_src, current_poses)
return result_image
def compare_result(rsp):
"""
对比PC端网络输出和板卡的结果的fe
Parameters
----------
rsp : 板卡推理结果
"""
ret_bytes = []
for ret in rsp['tensor']:
ret_bytes.append(base64.b64decode(ret))
infer_result_0 = np.frombuffer(ret_bytes[2], dtype=np.float32).flatten()
infer_result_1 = np.frombuffer(ret_bytes[3], dtype=np.float32).flatten()
output_2 = np.load('../resource/openpose/output_2.npy')
output_3 = np.load('../resource/openpose/output_3.npy')
fe_result_0 = fiducial_e(infer_result_0, output_2)
fe_result_1 = fiducial_e(infer_result_1, output_3)
print('infer_time', rsp['infer_time'])
print(' 输出1的板卡 和pc fe_mean fe_max', fe_result_0.mean(), fe_result_0.max())
print(' 输出2的板卡 和pc fe_mean fe_max', fe_result_1.mean(), fe_result_1.max())
def data_preprocessing(img_path):
"""数据前处理后转成base64格式
Parameters
----------
img_path : 图片路径
Returns
-------
原图以及base64格式数据
"""
img_src = load_image_cv(img_path)
resize_imag = cv2.resize(img_src, (424, 256))
img_src_b64 = base64.b64encode(np.ascontiguousarray(resize_imag)).decode('utf-8')
return resize_imag, img_src_b64
if __name__ == "__main__":
method_model = 'openpose'
src_img, img_b64 = data_preprocessing('../resource/openpose/1.jpg')
init_service_rpc('../resource/openpose/wksp/dynamic_fixed_point-16/network_binary.nb', method_model)
ret_infer = rpc_call(method_model, img_b64)
result_image = post_process(ret_infer, src_img)
cv2.imwrite('../resource/openpose/result.jpg', result_image)
compare_result(ret_infer)

View File

@ -86,25 +86,6 @@ names = {0: 'person', 1: 'bicycle', 2: 'car', 3: 'motorcycle', 4: 'airplane', 5:
def infer(img_data, web_service):
"""下位机推理
Args:
img_data (np.array): 推理数据
web_service: 实例化service
Returns:
推理结果信息
"""
rsp = web_service.infer(img_data)
infer_result0 = np.frombuffer(rsp['output_0.dat'], dtype=np.float32).flatten()
infer_result1 = np.frombuffer(rsp['output_1.dat'], dtype=np.float32).flatten()
np_reshaped = infer_result0.reshape(1, 25200, 117)
pred = torch.from_numpy(np_reshaped)
np_reshaped1 = infer_result1.reshape(1, 32, 160, 160)
proto = torch.from_numpy(np_reshaped1)
return pred, proto
def binary2tensor(rsp):
"""
二进制数据转为指定size的tensor