feat: 切换后端至PaddleOCR-NCNN,切换工程为CMake

1.项目后端整体迁移至PaddleOCR-NCNN算法,已通过基本的兼容性测试
2.工程改为使用CMake组织,后续为了更好地兼容第三方库,不再提供QMake工程
3.重整权利声明文件,重整代码工程,确保最小化侵权风险

Log: 切换后端至PaddleOCR-NCNN,切换工程为CMake
Change-Id: I4d5d2c5d37505a4a24b389b1a4c5d12f17bfa38c
This commit is contained in:
wangzhengyang
2022-05-10 09:54:44 +08:00
parent ecdd171c6f
commit 718c41634f
10018 changed files with 3593797 additions and 186748 deletions

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1" MenuName="Add to Image Watch"/>
<!-- Tencent NCNN ncnn::Mat support -->
<Type Name="ncnn::Mat">
<UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1" />
</Type>
<Type Name="ncnn::Mat">
<DisplayString Condition="elemsize==4">{{FLOAT32, {c} x {w} x {h}}}</DisplayString>
<DisplayString Condition="elemsize==2">{{FLOAT16, {c} x {w} x {h}}}</DisplayString>
<DisplayString Condition="elemsize==1">{{INT8, {c} x {w} x {h}}}</DisplayString>
<Expand>
<Synthetic Name="[type]" Condition="elemsize==4">
<DisplayString>FLOAT32</DisplayString>
</Synthetic>
<Synthetic Name="[type]" Condition="elemsize==2">
<DisplayString>FLOAT16</DisplayString>
</Synthetic>
<Synthetic Name="[type]" Condition="elemsize==1">
<DisplayString>INT8</DisplayString>
</Synthetic>
<Item Name="[channels]">c</Item>
<Item Name="[width]">w</Item>
<Item Name="[height]">h</Item>
<Item Name="[planes]">c</Item>
<Item Name="[data]" Condition="elemsize==4">((float*)(data))</Item>
<Item Name="[data]" Condition="elemsize==2">data</Item>
<Item Name="[data]" Condition="elemsize==1">data</Item>
<Item Name="[stride]" Condition="elemsize==1">w</Item>
<Item Name="[stride]" Condition="elemsize==2">w*2</Item>
<Item Name="[stride]" Condition="elemsize==4">w*4</Item>
</Expand>
</Type>
</AutoVisualizer>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1" MenuName="Add to Image Watch"/>
<!-- Tencent NCNN ncnn::Mat support -->
<Type Name="hiSVP_BLOB_S">
<UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1" />
</Type>
<Type Name="hiSVP_BLOB_S">
<DisplayString Condition="enType==0">{{INT32, {unShape.stWhc.u32Chn} x {unShape.stWhc.u32Width} x {unShape.stWhc.u32Height}}}</DisplayString>
<DisplayString Condition="enType==1">{{UINT8, {unShape.stWhc.u32Chn} x {unShape.stWhc.u32Width} x {unShape.stWhc.u32Height}}}</DisplayString>
<Expand>
<Synthetic Name="[type]" Condition="enType==0">
<DisplayString>INT32</DisplayString>
</Synthetic>
<Synthetic Name="[type]" Condition="enType==1">
<DisplayString>UINT8</DisplayString>
</Synthetic>
<Item Name="[channels]">unShape.stWhc.u32Chn</Item>
<Item Name="[width]">unShape.stWhc.u32Width</Item>
<Item Name="[height]">unShape.stWhc.u32Height</Item>
<Item Name="[planes]">unShape.stWhc.u32Chn</Item>
<Item Name="[data]">u64VirAddr</Item>
<Item Name="[stride]" Condition="enType==0">u32Stride</Item>
<Item Name="[stride]" Condition="enType==1">u32Stride</Item>
</Expand>
</Type>
</AutoVisualizer>

15
3rdparty/ncnn/tools/plugin/README.md vendored Normal file
View File

@ -0,0 +1,15 @@
## NCNN Image Watch Plugin for Visual Studio
Image Watch plugin is a good tool for better understanding insight of images. This tiny work offer a ".natvis" file which could add ncnn::Mat class support for Image Watch, and users could debug ncnn::Mat image just like debuging cv::Mat via Image Watch.
To use this plugin, please move this "ImageWatchNCNN.natvis" file to "C:/user/${your user name}/Documents/Visual Studio ${VS_Version}/Visualizers" folder. If not exist this folder, create it(such as: "C:\Users\nihui\Documents\Visual Studio 2017\Visualizers").
![](https://github.com/Tencent/ncnn/blob/master/tools/plugin/ncnn_snapshot.png)
See [Image Watch Help](https://imagewatch.azurewebsites.net/ImageWatchHelp/ImageWatchHelp.htm) page for more advanced using tips of Image Watch(For example, get single channel from channels, such as getting confidence heatmap from forward result list {confidence, x1, y1, x2, y2}).
## NNIE Image Watch Plugin for Visual Studio
This image plugin will be a part of NNIE Plugin for NCNN(NPN). NPN will be a WIP, it should be completed by the end of Septembe.
The plugin support SVP_BLOB_TYPE_S32 and SVP_BLOB_TYPE_U8 for now.
![](https://github.com/Tencent/ncnn/blob/master/tools/plugin/nnie_snapshot.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB