Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
35eaacd1
O
Opencv
项目概览
Greenplum
/
Opencv
11 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
35eaacd1
编写于
3月 27, 2021
作者:
A
Alexander Alekhin
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
上级
ad2f5ccc
bf03f5fa
变更
20
隐藏空白更改
内联
并排
Showing
20 changed file
with
558 addition
and
84 deletion
+558
-84
modules/core/include/opencv2/core/hal/intrin_neon.hpp
modules/core/include/opencv2/core/hal/intrin_neon.hpp
+21
-0
modules/core/src/directx.cpp
modules/core/src/directx.cpp
+2
-2
modules/core/src/opencl/cvtclr_dx.cl
modules/core/src/opencl/cvtclr_dx.cl
+41
-51
modules/core/src/va_intel.cpp
modules/core/src/va_intel.cpp
+2
-2
modules/dnn/include/opencv2/dnn/all_layers.hpp
modules/dnn/include/opencv2/dnn/all_layers.hpp
+1
-0
modules/dnn/src/layers/slice_layer.cpp
modules/dnn/src/layers/slice_layer.cpp
+82
-6
modules/dnn/src/ocl4dnn/src/math_functions.cpp
modules/dnn/src/ocl4dnn/src/math_functions.cpp
+2
-2
modules/dnn/src/onnx/onnx_importer.cpp
modules/dnn/src/onnx/onnx_importer.cpp
+11
-12
modules/dnn/test/test_halide_layers.cpp
modules/dnn/test/test_halide_layers.cpp
+11
-1
modules/dnn/test/test_layers.cpp
modules/dnn/test/test_layers.cpp
+11
-2
modules/dnn/test/test_onnx_importer.cpp
modules/dnn/test/test_onnx_importer.cpp
+20
-0
modules/dnn/test/test_torch_importer.cpp
modules/dnn/test/test_torch_importer.cpp
+8
-0
platforms/winpack_dldt/2021.3/20200604-dldt-disable-multidevice.patch
...npack_dldt/2021.3/20200604-dldt-disable-multidevice.patch
+13
-0
platforms/winpack_dldt/2021.3/20210324-dldt-disable-unused-targets.patch
...ck_dldt/2021.3/20210324-dldt-disable-unused-targets.patch
+219
-0
platforms/winpack_dldt/2021.3/20210324-dldt-pdb.patch
platforms/winpack_dldt/2021.3/20210324-dldt-pdb.patch
+15
-0
platforms/winpack_dldt/2021.3/20210324-dldt-vs-version.patch
platforms/winpack_dldt/2021.3/20210324-dldt-vs-version.patch
+16
-0
platforms/winpack_dldt/2021.3/build.config.py
platforms/winpack_dldt/2021.3/build.config.py
+3
-0
platforms/winpack_dldt/2021.3/patch.config.py
platforms/winpack_dldt/2021.3/patch.config.py
+4
-0
platforms/winpack_dldt/2021.3/sysroot.config.py
platforms/winpack_dldt/2021.3/sysroot.config.py
+55
-0
platforms/winpack_dldt/build_package.py
platforms/winpack_dldt/build_package.py
+21
-6
未找到文件。
modules/core/include/opencv2/core/hal/intrin_neon.hpp
浏览文件 @
35eaacd1
...
...
@@ -1539,6 +1539,26 @@ OPENCV_HAL_IMPL_NEON_SELECT(v_float32x4, f32, u32)
OPENCV_HAL_IMPL_NEON_SELECT
(
v_float64x2
,
f64
,
u64
)
#endif
#if CV_NEON_AARCH64
#define OPENCV_HAL_IMPL_NEON_EXPAND(_Tpvec, _Tpwvec, _Tp, suffix) \
inline void v_expand(const _Tpvec& a, _Tpwvec& b0, _Tpwvec& b1) \
{ \
b0.val = vmovl_##suffix(vget_low_##suffix(a.val)); \
b1.val = vmovl_high_##suffix(a.val); \
} \
inline _Tpwvec v_expand_low(const _Tpvec& a) \
{ \
return _Tpwvec(vmovl_##suffix(vget_low_##suffix(a.val))); \
} \
inline _Tpwvec v_expand_high(const _Tpvec& a) \
{ \
return _Tpwvec(vmovl_high_##suffix(a.val)); \
} \
inline _Tpwvec v_load_expand(const _Tp* ptr) \
{ \
return _Tpwvec(vmovl_##suffix(vld1_##suffix(ptr))); \
}
#else
#define OPENCV_HAL_IMPL_NEON_EXPAND(_Tpvec, _Tpwvec, _Tp, suffix) \
inline void v_expand(const _Tpvec& a, _Tpwvec& b0, _Tpwvec& b1) \
{ \
...
...
@@ -1557,6 +1577,7 @@ inline _Tpwvec v_load_expand(const _Tp* ptr) \
{ \
return _Tpwvec(vmovl_##suffix(vld1_##suffix(ptr))); \
}
#endif
OPENCV_HAL_IMPL_NEON_EXPAND
(
v_uint8x16
,
v_uint16x8
,
uchar
,
u8
)
OPENCV_HAL_IMPL_NEON_EXPAND
(
v_int8x16
,
v_int16x8
,
schar
,
s8
)
...
...
modules/core/src/directx.cpp
浏览文件 @
35eaacd1
...
...
@@ -1050,7 +1050,7 @@ bool ocl_convert_nv12_to_bgr(
k
.
args
(
clImageY
,
clImageUV
,
clBuffer
,
step
,
cols
,
rows
);
size_t
globalsize
[]
=
{
(
size_t
)
cols
,
(
size_t
)
rows
};
size_t
globalsize
[]
=
{
(
size_t
)
cols
/
2
,
(
size_t
)
rows
/
2
};
return
k
.
run
(
2
,
globalsize
,
0
,
false
);
}
...
...
@@ -1071,7 +1071,7 @@ bool ocl_convert_bgr_to_nv12(
k
.
args
(
clBuffer
,
step
,
cols
,
rows
,
clImageY
,
clImageUV
);
size_t
globalsize
[]
=
{
(
size_t
)
cols
,
(
size_t
)
rows
};
size_t
globalsize
[]
=
{
(
size_t
)
cols
/
2
,
(
size_t
)
rows
/
2
};
return
k
.
run
(
2
,
globalsize
,
0
,
false
);
}
...
...
modules/core/src/opencl/cvtclr_dx.cl
浏览文件 @
35eaacd1
...
...
@@ -91,63 +91,50 @@ void YUV2BGR_NV12_8u(
{
int
x
=
get_global_id
(
0
)
;
int
y
=
get_global_id
(
1
)
;
//
each
iteration
computes
2*2=4
pixels
int
x2
=
x*2
;
int
y2
=
y*2
;
if
(
x
+
1
<
cols
)
{
if
(
y
+
1
<
rows
)
{
__global
uchar*
pDstRow1
=
pBGR
+
mad24
(
y,
bgrStep,
mad24
(
x,
NCHANNELS,
0
))
;
__global
uchar*
pDstRow2
=
pDstRow1
+
bgrStep
;
if
(
x2
+
1
<
cols
)
{
if
(
y2
+
1
<
rows
)
{
__global
uchar
*pDstRow1
=
pBGR
+
mad24
(
y2,
bgrStep,
mad24
(
x2,
NCHANNELS,
0
))
;
__global
uchar
*pDstRow2
=
pDstRow1
+
bgrStep
;
float4
Y1
=
read_imagef
(
imgY,
(
int2
)(
x+0,
y+0
))
;
float4
Y2
=
read_imagef
(
imgY,
(
int2
)(
x+1,
y+0
))
;
float4
Y3
=
read_imagef
(
imgY,
(
int2
)(
x+0,
y+1
))
;
float4
Y4
=
read_imagef
(
imgY,
(
int2
)(
x+1,
y+1
))
;
float4
Y1
=
read_imagef
(
imgY,
(
int2
)(
x2
+
0
,
y2
+
0
))
;
float4
Y2
=
read_imagef
(
imgY,
(
int2
)(
x2
+
1
,
y2
+
0
))
;
float4
Y3
=
read_imagef
(
imgY,
(
int2
)(
x2
+
0
,
y2
+
1
))
;
float4
Y4
=
read_imagef
(
imgY,
(
int2
)(
x2
+
1
,
y2
+
1
))
;
float4
Y
=
(
float4
)(
Y1.x,
Y2.x,
Y3.x,
Y4.x
)
;
float4
UV
=
read_imagef
(
imgUV,
(
int2
)(
x
/2,
y/2
))
-
d2
;
float4
UV
=
read_imagef
(
imgUV,
(
int2
)(
x
,
y
))
-
d2
;
__constant
float
*
coeffs
=
c_YUV2RGBCoeffs_420
;
__constant
float
*
coeffs
=
c_YUV2RGBCoeffs_420
;
Y1
=
max
(
0.f,
Y1
-
d1
)
*
coeffs[0]
;
Y2
=
max
(
0.f,
Y2
-
d1
)
*
coeffs[0]
;
Y3
=
max
(
0.f,
Y3
-
d1
)
*
coeffs[0]
;
Y4
=
max
(
0.f,
Y4
-
d1
)
*
coeffs[0]
;
Y
=
max
(
0.f,
Y
-
d1
)
*
coeffs[0]
;
float
ruv
=
fma
(
coeffs[4],
UV.y,
0.0f
)
;
float
guv
=
fma
(
coeffs[3],
UV.y,
fma
(
coeffs[2],
UV.x,
0.0f
))
;
float
buv
=
fma
(
coeffs[1],
UV.x,
0.0f
)
;
float
R1
=
(
Y1.x
+
ruv
)
*
CV_8U_MAX
;
float
G1
=
(
Y1.x
+
guv
)
*
CV_8U_MAX
;
float
B1
=
(
Y1.x
+
buv
)
*
CV_8U_MAX
;
float
R2
=
(
Y2.x
+
ruv
)
*
CV_8U_MAX
;
float
G2
=
(
Y2.x
+
guv
)
*
CV_8U_MAX
;
float
B2
=
(
Y2.x
+
buv
)
*
CV_8U_MAX
;
float
R3
=
(
Y3.x
+
ruv
)
*
CV_8U_MAX
;
float
G3
=
(
Y3.x
+
guv
)
*
CV_8U_MAX
;
float
B3
=
(
Y3.x
+
buv
)
*
CV_8U_MAX
;
float
R4
=
(
Y4.x
+
ruv
)
*
CV_8U_MAX
;
float
G4
=
(
Y4.x
+
guv
)
*
CV_8U_MAX
;
float
B4
=
(
Y4.x
+
buv
)
*
CV_8U_MAX
;
float4
R
=
(
Y
+
ruv
)
*
CV_8U_MAX
;
float4
G
=
(
Y
+
guv
)
*
CV_8U_MAX
;
float4
B
=
(
Y
+
buv
)
*
CV_8U_MAX
;
pDstRow1[0*NCHANNELS
+
0]
=
convert_uchar_sat
(
B
1
)
;
pDstRow1[0*NCHANNELS
+
1]
=
convert_uchar_sat
(
G
1
)
;
pDstRow1[0*NCHANNELS
+
2]
=
convert_uchar_sat
(
R
1
)
;
pDstRow1[0*NCHANNELS
+
0]
=
convert_uchar_sat
(
B
.x
)
;
pDstRow1[0*NCHANNELS
+
1]
=
convert_uchar_sat
(
G
.x
)
;
pDstRow1[0*NCHANNELS
+
2]
=
convert_uchar_sat
(
R
.x
)
;
pDstRow1[1*NCHANNELS
+
0]
=
convert_uchar_sat
(
B
2
)
;
pDstRow1[1*NCHANNELS
+
1]
=
convert_uchar_sat
(
G
2
)
;
pDstRow1[1*NCHANNELS
+
2]
=
convert_uchar_sat
(
R
2
)
;
pDstRow1[1*NCHANNELS
+
0]
=
convert_uchar_sat
(
B
.y
)
;
pDstRow1[1*NCHANNELS
+
1]
=
convert_uchar_sat
(
G
.y
)
;
pDstRow1[1*NCHANNELS
+
2]
=
convert_uchar_sat
(
R
.y
)
;
pDstRow2[0*NCHANNELS
+
0]
=
convert_uchar_sat
(
B
3
)
;
pDstRow2[0*NCHANNELS
+
1]
=
convert_uchar_sat
(
G
3
)
;
pDstRow2[0*NCHANNELS
+
2]
=
convert_uchar_sat
(
R
3
)
;
pDstRow2[0*NCHANNELS
+
0]
=
convert_uchar_sat
(
B
.z
)
;
pDstRow2[0*NCHANNELS
+
1]
=
convert_uchar_sat
(
G
.z
)
;
pDstRow2[0*NCHANNELS
+
2]
=
convert_uchar_sat
(
R
.z
)
;
pDstRow2[1*NCHANNELS
+
0]
=
convert_uchar_sat
(
B
4
)
;
pDstRow2[1*NCHANNELS
+
1]
=
convert_uchar_sat
(
G
4
)
;
pDstRow2[1*NCHANNELS
+
2]
=
convert_uchar_sat
(
R
4
)
;
pDstRow2[1*NCHANNELS
+
0]
=
convert_uchar_sat
(
B
.w
)
;
pDstRow2[1*NCHANNELS
+
1]
=
convert_uchar_sat
(
G
.w
)
;
pDstRow2[1*NCHANNELS
+
2]
=
convert_uchar_sat
(
R
.w
)
;
}
}
}
...
...
@@ -172,12 +159,15 @@ void BGR2YUV_NV12_8u(
{
int
x
=
get_global_id
(
0
)
;
int
y
=
get_global_id
(
1
)
;
//
each
iteration
computes
2*2=4
pixels
int
x2
=
x*2
;
int
y2
=
y*2
;
if
(
x
<
cols
)
if
(
x
2
+
1
<
cols
)
{
if
(
y
<
rows
)
if
(
y
2
+
1
<
rows
)
{
__global
const
uchar*
pSrcRow1
=
pBGR
+
mad24
(
y
,
bgrStep,
mad24
(
x
,
NCHANNELS,
0
))
;
__global
const
uchar*
pSrcRow1
=
pBGR
+
mad24
(
y
2,
bgrStep,
mad24
(
x2
,
NCHANNELS,
0
))
;
__global
const
uchar*
pSrcRow2
=
pSrcRow1
+
bgrStep
;
float4
src_pix1
=
convert_float4
(
vload4
(
0
,
pSrcRow1
+
0*NCHANNELS
))
*
CV_8U_SCALE
;
...
...
@@ -196,12 +186,12 @@ void BGR2YUV_NV12_8u(
UV.x
=
fma
(
coeffs[3],
src_pix1.z,
fma
(
coeffs[4],
src_pix1.y,
fma
(
coeffs[5],
src_pix1.x,
d2
)))
;
UV.y
=
fma
(
coeffs[5],
src_pix1.z,
fma
(
coeffs[6],
src_pix1.y,
fma
(
coeffs[7],
src_pix1.x,
d2
)))
;
write_imagef
(
imgY,
(
int2
)(
x
+0,
y
+0
)
,
Y1
)
;
write_imagef
(
imgY,
(
int2
)(
x
+1,
y
+0
)
,
Y2
)
;
write_imagef
(
imgY,
(
int2
)(
x
+0,
y
+1
)
,
Y3
)
;
write_imagef
(
imgY,
(
int2
)(
x
+1,
y
+1
)
,
Y4
)
;
write_imagef
(
imgY,
(
int2
)(
x
2+0,
y2
+0
)
,
Y1
)
;
write_imagef
(
imgY,
(
int2
)(
x
2+1,
y2
+0
)
,
Y2
)
;
write_imagef
(
imgY,
(
int2
)(
x
2+0,
y2
+1
)
,
Y3
)
;
write_imagef
(
imgY,
(
int2
)(
x
2+1,
y2
+1
)
,
Y4
)
;
write_imagef
(
imgUV,
(
int2
)(
(
x/2
)
,
(
y/2
)
)
,
UV
)
;
write_imagef
(
imgUV,
(
int2
)(
x,
y
)
,
UV
)
;
}
}
}
modules/core/src/va_intel.cpp
浏览文件 @
35eaacd1
...
...
@@ -189,7 +189,7 @@ static bool ocl_convert_nv12_to_bgr(cl_mem clImageY, cl_mem clImageUV, cl_mem cl
k
.
args
(
clImageY
,
clImageUV
,
clBuffer
,
step
,
cols
,
rows
);
size_t
globalsize
[]
=
{
(
size_t
)
cols
,
(
size_t
)
rows
};
size_t
globalsize
[]
=
{
(
size_t
)
cols
/
2
,
(
size_t
)
rows
/
2
};
return
k
.
run
(
2
,
globalsize
,
0
,
false
);
}
...
...
@@ -202,7 +202,7 @@ static bool ocl_convert_bgr_to_nv12(cl_mem clBuffer, int step, int cols, int row
k
.
args
(
clBuffer
,
step
,
cols
,
rows
,
clImageY
,
clImageUV
);
size_t
globalsize
[]
=
{
(
size_t
)
cols
,
(
size_t
)
rows
};
size_t
globalsize
[]
=
{
(
size_t
)
cols
/
2
,
(
size_t
)
rows
/
2
};
return
k
.
run
(
2
,
globalsize
,
0
,
false
);
}
#endif // HAVE_VA_INTEL
...
...
modules/dnn/include/opencv2/dnn/all_layers.hpp
浏览文件 @
35eaacd1
...
...
@@ -364,6 +364,7 @@ CV__DNN_INLINE_NS_BEGIN
* Inner vector has slice ranges for the first number of input dimensions.
*/
std
::
vector
<
std
::
vector
<
Range
>
>
sliceRanges
;
std
::
vector
<
std
::
vector
<
int
>
>
sliceSteps
;
int
axis
;
int
num_split
;
...
...
modules/dnn/src/layers/slice_layer.cpp
浏览文件 @
35eaacd1
...
...
@@ -70,6 +70,7 @@ public:
SliceLayerImpl
(
const
LayerParams
&
params
)
{
setParamsFrom
(
params
);
hasSteps
=
false
;
axis
=
params
.
get
<
int
>
(
"axis"
,
1
);
num_split
=
params
.
get
<
int
>
(
"num_split"
,
0
);
hasDynamicShapes
=
params
.
get
<
bool
>
(
"has_dynamic_shapes"
,
false
);
...
...
@@ -118,6 +119,22 @@ public:
sliceRanges
[
0
][
i
].
end
=
end
;
// We'll finalize a negative value later.
}
}
if
(
params
.
has
(
"steps"
))
{
const
DictValue
&
steps
=
params
.
get
(
"steps"
);
sliceSteps
.
resize
(
1
);
sliceSteps
[
0
].
resize
(
steps
.
size
());
for
(
int
i
=
0
;
i
<
steps
.
size
();
++
i
)
{
int
step
=
steps
.
get
<
int
>
(
i
);
CV_Assert
(
step
>=
1
);
if
(
step
>
1
)
hasSteps
=
true
;
sliceSteps
[
0
][
i
]
=
step
;
}
}
}
}
...
...
@@ -126,14 +143,17 @@ public:
#ifdef HAVE_DNN_IE_NN_BUILDER_2019
if
(
backendId
==
DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019
)
return
INF_ENGINE_VER_MAJOR_GE
(
INF_ENGINE_RELEASE_2019R1
)
&&
sliceRanges
.
size
()
==
1
&&
sliceRanges
[
0
].
size
()
==
4
;
sliceRanges
.
size
()
==
1
&&
sliceRanges
[
0
].
size
()
==
4
&&
!
hasSteps
;
#endif
#ifdef HAVE_DNN_NGRAPH
if
(
backendId
==
DNN_BACKEND_INFERENCE_ENGINE_NGRAPH
)
return
sliceRanges
.
size
()
==
1
;
return
sliceRanges
.
size
()
==
1
&&
!
hasSteps
;
#endif
#ifdef HAVE_CUDA
if
(
backendId
==
DNN_BACKEND_CUDA
)
return
!
hasSteps
;
#endif
return
backendId
==
DNN_BACKEND_OPENCV
||
backendId
==
DNN_BACKEND_CUDA
;
return
backendId
==
DNN_BACKEND_OPENCV
;
}
bool
getMemoryShapes
(
const
std
::
vector
<
MatShape
>
&
inputs
,
...
...
@@ -154,6 +174,9 @@ public:
{
if
(
shapesInitialized
||
inpShape
[
j
]
>
0
)
outputs
[
i
][
j
]
=
normalize_axis_range
(
sliceRanges
[
i
][
j
],
inpShape
[
j
]).
size
();
if
(
!
sliceSteps
.
empty
()
&&
(
i
<
sliceSteps
.
size
())
&&
(
j
<
sliceSteps
[
i
].
size
())
&&
(
sliceSteps
[
i
][
j
]
>
1
))
outputs
[
i
][
j
]
=
(
outputs
[
i
][
j
]
+
sliceSteps
[
i
][
j
]
-
1
)
/
sliceSteps
[
i
][
j
];
}
}
}
...
...
@@ -188,6 +211,7 @@ public:
const
MatSize
&
inpShape
=
inputs
[
0
].
size
;
finalSliceRanges
=
sliceRanges
;
if
(
sliceRanges
.
empty
())
{
// Divide input blob on equal parts by axis.
...
...
@@ -220,6 +244,9 @@ public:
}
}
if
(
!
sliceSteps
.
empty
()
&&
sliceSteps
[
0
].
size
()
!=
inputs
[
0
].
dims
)
sliceSteps
[
0
].
resize
(
inputs
[
0
].
dims
,
1
);
#if 0
std::cout << "DEBUG: DNN/Slice: " << outputs.size() << " inpShape=" << inpShape << std::endl;
for (int i = 0; i < outputs.size(); ++i)
...
...
@@ -427,6 +454,9 @@ public:
{
CV_TRACE_FUNCTION
();
if
(
hasSteps
)
return
false
;
// TODO not implemented yet: https://github.com/opencv/opencv/pull/19546
std
::
vector
<
UMat
>
inputs
;
std
::
vector
<
UMat
>
outputs
;
...
...
@@ -485,9 +515,24 @@ public:
const
Mat
&
inpMat
=
inputs
[
0
];
CV_Assert
(
outputs
.
size
()
==
finalSliceRanges
.
size
());
for
(
size_t
i
=
0
;
i
<
outputs
.
size
();
i
++
)
if
(
!
hasSteps
)
{
inpMat
(
finalSliceRanges
[
i
]).
copyTo
(
outputs
[
i
]);
for
(
size_t
i
=
0
;
i
<
outputs
.
size
();
i
++
)
{
inpMat
(
finalSliceRanges
[
i
]).
copyTo
(
outputs
[
i
]);
}
}
else
{
int
dimsNum
=
inpMat
.
dims
;
for
(
size_t
i
=
0
;
i
<
outputs
.
size
();
i
++
)
{
std
::
vector
<
int
>
inpIdx
(
dimsNum
,
0
);
std
::
vector
<
int
>
outIdx
(
dimsNum
,
0
);
getSliceRecursive
(
inpMat
,
inpIdx
,
finalSliceRanges
[
i
],
sliceSteps
[
i
],
0
,
dimsNum
,
outputs
[
i
],
outIdx
);
}
}
}
...
...
@@ -603,11 +648,42 @@ public:
#endif
private:
void
getSliceRecursive
(
const
Mat
&
inpMat
,
std
::
vector
<
int
>
&
inpIdx
,
const
std
::
vector
<
Range
>
&
sliceRanges
,
const
std
::
vector
<
int
>
&
sliceSteps
,
int
dim
,
int
dimsNum
,
Mat
&
outputs
,
std
::
vector
<
int
>
&
outIdx
)
{
int
begin
=
sliceRanges
[
dim
].
start
;
int
end
=
sliceRanges
[
dim
].
end
;
int
step
=
!
sliceSteps
.
empty
()
?
sliceSteps
[
dim
]
:
1
;
const
bool
is32F
=
inpMat
.
depth
()
==
CV_32F
;
// TODO optimization is required (for 2D tail case at least)
for
(
int
k
=
begin
,
j
=
0
;
k
<
end
;
k
+=
step
,
j
++
)
{
inpIdx
[
dim
]
=
k
;
outIdx
[
dim
]
=
j
;
if
(
dim
+
1
<
dimsNum
)
getSliceRecursive
(
inpMat
,
inpIdx
,
sliceRanges
,
sliceSteps
,
dim
+
1
,
dimsNum
,
outputs
,
outIdx
);
else
{
if
(
is32F
)
outputs
.
at
<
float
>
(
outIdx
.
data
())
=
inpMat
.
at
<
float
>
(
inpIdx
.
data
());
else
outputs
.
at
<
short
>
(
outIdx
.
data
())
=
inpMat
.
at
<
short
>
(
inpIdx
.
data
());
// 16F emulation
}
}
}
protected:
// The actual non-negative values determined from @p sliceRanges depends on input size.
std
::
vector
<
std
::
vector
<
Range
>
>
finalSliceRanges
;
bool
hasDynamicShapes
;
bool
shapesInitialized
;
bool
hasSteps
;
};
class
CropLayerImpl
CV_FINAL
:
public
SliceLayerImpl
...
...
modules/dnn/src/ocl4dnn/src/math_functions.cpp
浏览文件 @
35eaacd1
...
...
@@ -112,14 +112,14 @@ ocl::Image2D ocl4dnnGEMMCopyBufferToImage(UMat buffer, int offset,
global_copy
[
0
]
=
padded_width
;
global_copy
[
1
]
=
padded_height
;
oclk_gemm_copy
bool
res
=
oclk_gemm_copy
.
args
(
ocl
::
KernelArg
::
PtrReadOnly
(
buffer
),
image
,
offset
,
width
,
height
,
ld
)
.
run
(
2
,
global_copy
,
NULL
,
false
);
oclk_gemm_copy
.
run
(
2
,
global_copy
,
NULL
,
false
);
CV_Assert
(
res
);
}
}
...
...
modules/dnn/src/onnx/onnx_importer.cpp
浏览文件 @
35eaacd1
...
...
@@ -641,20 +641,11 @@ void ONNXImporter::handleNode(const opencv_onnx::NodeProto& node_proto_)
int
axis
=
0
;
std
::
vector
<
int
>
begin
;
std
::
vector
<
int
>
end
;
std
::
vector
<
int
>
steps
;
int
inp_size
=
node_proto
.
input_size
();
if
(
inp_size
==
1
)
{
if
(
layerParams
.
has
(
"steps"
))
{
DictValue
steps
=
layerParams
.
get
(
"steps"
);
for
(
int
i
=
0
;
i
<
steps
.
size
();
++
i
)
{
if
(
steps
.
get
<
int
>
(
i
)
!=
1
)
CV_Error
(
Error
::
StsNotImplemented
,
"Slice layer only supports steps = 1"
);
}
}
if
(
layerParams
.
has
(
"axes"
))
{
DictValue
axes
=
layerParams
.
get
(
"axes"
);
for
(
int
i
=
1
;
i
<
axes
.
size
();
++
i
)
{
...
...
@@ -677,7 +668,7 @@ void ONNXImporter::handleNode(const opencv_onnx::NodeProto& node_proto_)
int
finish
=
ends
.
get
<
int
>
(
i
);
end
.
push_back
((
finish
<
0
)
?
--
finish
:
finish
);
// numpy doesn't include last dim
}
}
else
{
}
else
{
// inp_size > 1
CV_Assert
(
inp_size
>=
3
);
for
(
int
i
=
1
;
i
<
inp_size
;
i
++
)
{
CV_Assert
(
constBlobs
.
find
(
node_proto
.
input
(
i
))
!=
constBlobs
.
end
());
...
...
@@ -711,6 +702,12 @@ void ONNXImporter::handleNode(const opencv_onnx::NodeProto& node_proto_)
if
(
inp_size
==
5
)
{
CV_Assert
(
constBlobs
.
find
(
node_proto
.
input
(
4
))
!=
constBlobs
.
end
());
Mat
step_blob
=
getBlob
(
node_proto
,
4
);
const
int
*
steps_ptr
=
step_blob
.
ptr
<
int
>
();
if
(
axis
>
0
)
steps
.
resize
(
axis
,
1
);
std
::
copy
(
steps_ptr
,
steps_ptr
+
step_blob
.
total
(),
std
::
back_inserter
(
steps
));
// Very strange application for Slice op with tensor reversing.
// We just workaround it for 2d constants.
...
...
@@ -728,13 +725,15 @@ void ONNXImporter::handleNode(const opencv_onnx::NodeProto& node_proto_)
return
;
}
}
CV_CheckEQ
(
countNonZero
(
step_blob
!=
1
),
0
,
"Slice layer only supports steps = 1"
);
}
}
layerParams
.
set
(
"begin"
,
DictValue
::
arrayInt
(
&
begin
[
0
],
begin
.
size
()));
layerParams
.
set
(
"end"
,
DictValue
::
arrayInt
(
&
end
[
0
],
end
.
size
()));
layerParams
.
set
(
"axis"
,
axis
);
if
(
!
steps
.
empty
())
layerParams
.
set
(
"steps"
,
DictValue
::
arrayInt
(
&
steps
[
0
],
steps
.
size
()));
if
(
constBlobs
.
find
(
node_proto
.
input
(
0
))
!=
constBlobs
.
end
())
{
Mat
inp
=
getBlob
(
node_proto
,
0
);
...
...
modules/dnn/test/test_halide_layers.cpp
浏览文件 @
35eaacd1
...
...
@@ -258,7 +258,17 @@ TEST_P(LRN, Accuracy)
int
sz
[]
=
{
1
,
inChannels
,
inSize
.
height
,
inSize
.
width
};
Mat
input
(
4
,
&
sz
[
0
],
CV_32F
);
test
(
lp
,
input
,
backendId
,
targetId
);
double
l1
=
0.0
,
lInf
=
0.0
;
// The OpenCL kernels use the native_ math functions which have
// implementation defined accuracy, so we use relaxed thresholds. See
// https://github.com/opencv/opencv/issues/9821 for more details.
if
(
targetId
==
DNN_TARGET_OPENCL
)
{
l1
=
0.01
;
lInf
=
0.01
;
}
test
(
lp
,
input
,
backendId
,
targetId
,
false
,
l1
,
lInf
);
}
INSTANTIATE_TEST_CASE_P
(
Layer_Test_Halide
,
LRN
,
Combine
(
...
...
modules/dnn/test/test_layers.cpp
浏览文件 @
35eaacd1
...
...
@@ -169,8 +169,17 @@ TEST_P(Test_Caffe_layers, Softmax)
TEST_P
(
Test_Caffe_layers
,
LRN
)
{
testLayerUsingCaffeModels
(
"layer_lrn_spatial"
);
testLayerUsingCaffeModels
(
"layer_lrn_channels"
);
double
l1
=
0.0
,
lInf
=
0.0
;
// The OpenCL kernels use the native_ math functions which have
// implementation defined accuracy, so we use relaxed thresholds. See
// https://github.com/opencv/opencv/issues/9821 for more details.
if
(
target
==
DNN_TARGET_OPENCL
)
{
l1
=
0.01
;
lInf
=
0.01
;
}
testLayerUsingCaffeModels
(
"layer_lrn_spatial"
,
false
,
true
,
l1
,
lInf
);
testLayerUsingCaffeModels
(
"layer_lrn_channels"
,
false
,
true
,
l1
,
lInf
);
}
TEST_P
(
Test_Caffe_layers
,
Convolution
)
...
...
modules/dnn/test/test_onnx_importer.cpp
浏览文件 @
35eaacd1
...
...
@@ -664,6 +664,26 @@ TEST_P(Test_ONNX_layers, Slice)
#endif
}
TEST_P
(
Test_ONNX_layers
,
Slice_Steps_2DInput
)
{
testONNXModels
(
"slice_opset_11_steps_2d"
);
}
TEST_P
(
Test_ONNX_layers
,
Slice_Steps_3DInput
)
{
testONNXModels
(
"slice_opset_11_steps_3d"
);
}
TEST_P
(
Test_ONNX_layers
,
Slice_Steps_4DInput
)
{
testONNXModels
(
"slice_opset_11_steps_4d"
);
}
TEST_P
(
Test_ONNX_layers
,
Slice_Steps_5DInput
)
{
testONNXModels
(
"slice_opset_11_steps_5d"
);
}
TEST_P
(
Test_ONNX_layers
,
Softmax
)
{
testONNXModels
(
"softmax"
);
...
...
modules/dnn/test/test_torch_importer.cpp
浏览文件 @
35eaacd1
...
...
@@ -258,6 +258,14 @@ TEST_P(Test_Torch_layers, net_conv_gemm_lrn)
l1
=
0.0042
;
lInf
=
0.021
;
}
// The OpenCL kernels use the native_ math functions which have
// implementation defined accuracy, so we use relaxed thresholds. See
// https://github.com/opencv/opencv/issues/9821 for more details.
else
if
(
target
==
DNN_TARGET_OPENCL
)
{
l1
=
0.02
;
lInf
=
0.02
;
}
runTorchNet
(
"net_conv_gemm_lrn"
,
""
,
false
,
true
,
true
,
l1
,
lInf
);
}
...
...
platforms/winpack_dldt/2021.3/20200604-dldt-disable-multidevice.patch
0 → 100644
浏览文件 @
35eaacd1
diff --git a/inference-engine/src/CMakeLists.txt b/inference-engine/src/CMakeLists.txt
index 0ba0dd78..7d34e7cb 100644
--- a/inference-engine/src/CMakeLists.txt
+++ b/inference-engine/src/CMakeLists.txt
@@ -26,7 +26,7 @@
endif()
add_subdirectory(hetero_plugin)
-add_subdirectory(multi_device)
+#add_subdirectory(multi_device)
add_subdirectory(transformations)
platforms/winpack_dldt/2021.3/20210324-dldt-disable-unused-targets.patch
0 → 100644
浏览文件 @
35eaacd1
diff --git a/cmake/developer_package/add_ie_target.cmake b/cmake/developer_package/add_ie_target.cmake
index b081a6945..5468f09f0 100644
--- a/cmake/developer_package/add_ie_target.cmake
+++ b/cmake/developer_package/add_ie_target.cmake
@@ -91,7 +91,7 @@
function(addIeTarget)
if (ARG_TYPE STREQUAL EXECUTABLE)
add_executable(${ARG_NAME} ${all_sources})
elseif(ARG_TYPE STREQUAL STATIC OR ARG_TYPE STREQUAL SHARED)
- add_library(${ARG_NAME} ${ARG_TYPE} ${all_sources})
+ add_library(${ARG_NAME} ${ARG_TYPE} EXCLUDE_FROM_ALL ${all_sources})
else()
message(SEND_ERROR "Invalid target type ${ARG_TYPE} specified for target name ${ARG_NAME}")
endif()
diff --git a/inference-engine/CMakeLists.txt b/inference-engine/CMakeLists.txt
index 95c657222..3ab53f854 100644
--- a/inference-engine/CMakeLists.txt
+++ b/inference-engine/CMakeLists.txt
@@ -39,7 +39,7 @@
if(ENABLE_TESTS)
add_subdirectory(tests)
endif()
-add_subdirectory(tools)
+#add_subdirectory(tools)
function(ie_build_samples)
# samples should be build with the same flags as from OpenVINO package,
@@ -58,7 +58,7 @@
endfunction()
# gflags and format_reader targets are kept inside of samples directory and
# they must be built even if samples build is disabled (required for tests and tools).
-ie_build_samples()
+#ie_build_samples()
if (ENABLE_PYTHON)
add_subdirectory(ie_bridges/python)
@@ -138,7 +138,7 @@
endif()
# Developer package
#
-openvino_developer_export_targets(COMPONENT openvino_common TARGETS format_reader)
+#openvino_developer_export_targets(COMPONENT openvino_common TARGETS format_reader)
openvino_developer_export_targets(COMPONENT ngraph TARGETS ${NGRAPH_LIBRARIES})
# for Template plugin
@@ -146,7 +146,7 @@
if(NGRAPH_INTERPRETER_ENABLE)
openvino_developer_export_targets(COMPONENT ngraph TARGETS ngraph_backend interpreter_backend)
endif()
-ie_developer_export()
+#ie_developer_export()
configure_file(
"${IE_MAIN_SOURCE_DIR}/cmake/templates/InferenceEngineDeveloperPackageConfig.cmake.in"
diff --git a/inference-engine/src/inference_engine/CMakeLists.txt b/inference-engine/src/inference_engine/CMakeLists.txt
index 1ea322763..b5c25837d 100644
--- a/inference-engine/src/inference_engine/CMakeLists.txt
+++ b/inference-engine/src/inference_engine/CMakeLists.txt
@@ -95,7 +95,7 @@
add_cpplint_target(${TARGET_NAME}_plugin_api_cpplint FOR_SOURCES ${plugin_api_sr
# Create object library
-add_library(${TARGET_NAME}_obj OBJECT
+add_library(${TARGET_NAME}_obj OBJECT EXCLUDE_FROM_ALL
${LIBRARY_SRC}
${LIBRARY_HEADERS}
${PUBLIC_HEADERS})
@@ -156,7 +156,7 @@
ie_add_api_validator_post_build_step(TARGET ${TARGET_NAME})
# Static library used for unit tests which are always built
-add_library(${TARGET_NAME}_s STATIC
+add_library(${TARGET_NAME}_s STATIC EXCLUDE_FROM_ALL
$<TARGET_OBJECTS:${TARGET_NAME}_legacy_obj>
$<TARGET_OBJECTS:${TARGET_NAME}_obj>
${IE_STATIC_DEPENDENT_FILES})
diff --git a/inference-engine/src/legacy_api/CMakeLists.txt b/inference-engine/src/legacy_api/CMakeLists.txt
index 66498fdbd..4a6c7f619 100644
--- a/inference-engine/src/legacy_api/CMakeLists.txt
+++ b/inference-engine/src/legacy_api/CMakeLists.txt
@@ -26,7 +26,7 @@
endif()
file(TOUCH ${CMAKE_CURRENT_BINARY_DIR}/dummy.cpp)
-add_library(${TARGET_NAME}_obj OBJECT
+add_library(${TARGET_NAME}_obj OBJECT EXCLUDE_FROM_ALL
${LIBRARY_SRC}
${PUBLIC_HEADERS})
diff --git a/inference-engine/src/mkldnn_plugin/CMakeLists.txt b/inference-engine/src/mkldnn_plugin/CMakeLists.txt
index 73c7ba9f9..e8cf8d9f9 100644
--- a/inference-engine/src/mkldnn_plugin/CMakeLists.txt
+++ b/inference-engine/src/mkldnn_plugin/CMakeLists.txt
@@ -78,7 +78,7 @@
ie_add_api_validator_post_build_step(TARGET ${TARGET_NAME})
# add test object library
-add_library(${TARGET_NAME}_obj OBJECT ${SOURCES} ${HEADERS})
+add_library(${TARGET_NAME}_obj OBJECT EXCLUDE_FROM_ALL ${SOURCES} ${HEADERS})
target_link_libraries(${TARGET_NAME}_obj PUBLIC mkldnn)
target_include_directories(${TARGET_NAME}_obj PRIVATE $<TARGET_PROPERTY:inference_engine_preproc_s,INTERFACE_INCLUDE_DIRECTORIES>
diff --git a/inference-engine/src/preprocessing/CMakeLists.txt b/inference-engine/src/preprocessing/CMakeLists.txt
index 973fafcbf..d886d6aa4 100644
--- a/inference-engine/src/preprocessing/CMakeLists.txt
+++ b/inference-engine/src/preprocessing/CMakeLists.txt
@@ -101,7 +101,7 @@
endif()
# Create object library
-add_library(${TARGET_NAME}_obj OBJECT
+add_library(${TARGET_NAME}_obj OBJECT EXCLUDE_FROM_ALL
${LIBRARY_SRC}
${LIBRARY_HEADERS})
@@ -153,7 +153,7 @@
ie_add_api_validator_post_build_step(TARGET ${TARGET_NAME})
# Static library used for unit tests which are always built
-add_library(${TARGET_NAME}_s STATIC
+add_library(${TARGET_NAME}_s STATIC EXCLUDE_FROM_ALL
$<TARGET_OBJECTS:${TARGET_NAME}_obj>)
set_ie_threading_interface_for(${TARGET_NAME}_s)
diff --git a/inference-engine/src/vpu/common/CMakeLists.txt b/inference-engine/src/vpu/common/CMakeLists.txt
index 5c31c9a7a..adb170a5f 100644
--- a/inference-engine/src/vpu/common/CMakeLists.txt
+++ b/inference-engine/src/vpu/common/CMakeLists.txt
@@ -5,7 +5,7 @@
file(GLOB_RECURSE SOURCES *.cpp *.hpp *.h)
function(add_common_target TARGET_NAME STATIC_IE)
- add_library(${TARGET_NAME} STATIC ${SOURCES})
+ add_library(${TARGET_NAME} STATIC EXCLUDE_FROM_ALL ${SOURCES})
ie_faster_build(${TARGET_NAME}
UNITY
@@ -62,7 +62,7 @@
add_common_target("vpu_common_lib" FALSE)
# Unit tests support for graph transformer
if(WIN32)
- add_common_target("vpu_common_lib_test_static" TRUE)
+ #add_common_target("vpu_common_lib_test_static" TRUE)
else()
add_library("vpu_common_lib_test_static" ALIAS "vpu_common_lib")
endif()
diff --git a/inference-engine/src/vpu/graph_transformer/CMakeLists.txt b/inference-engine/src/vpu/graph_transformer/CMakeLists.txt
index 97bd4caa9..0f49ed144 100644
--- a/inference-engine/src/vpu/graph_transformer/CMakeLists.txt
+++ b/inference-engine/src/vpu/graph_transformer/CMakeLists.txt
@@ -5,7 +5,7 @@
file(GLOB_RECURSE SOURCES *.cpp *.hpp *.h *.inc)
function(add_graph_transformer_target TARGET_NAME STATIC_IE)
- add_library(${TARGET_NAME} STATIC ${SOURCES})
+ add_library(${TARGET_NAME} STATIC EXCLUDE_FROM_ALL ${SOURCES})
set_ie_threading_interface_for(${TARGET_NAME})
@@ -63,7 +63,7 @@
add_graph_transformer_target("vpu_graph_transformer" FALSE)
# Unit tests support for graph transformer
if(WIN32)
- add_graph_transformer_target("vpu_graph_transformer_test_static" TRUE)
+ #add_graph_transformer_target("vpu_graph_transformer_test_static" TRUE)
else()
add_library("vpu_graph_transformer_test_static" ALIAS "vpu_graph_transformer")
endif()
diff --git a/inference-engine/thirdparty/pugixml/CMakeLists.txt b/inference-engine/thirdparty/pugixml/CMakeLists.txt
index 8bcb2801a..5a17fa3f7 100644
--- a/inference-engine/thirdparty/pugixml/CMakeLists.txt
+++ b/inference-engine/thirdparty/pugixml/CMakeLists.txt
@@ -41,7 +41,7 @@
if(BUILD_SHARED_LIBS)
else()
add_library(pugixml STATIC ${SOURCES})
if (MSVC)
- add_library(pugixml_mt STATIC ${SOURCES})
+ #add_library(pugixml_mt STATIC ${SOURCES})
#if (WIN32)
# set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
# set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
diff --git a/ngraph/core/builder/CMakeLists.txt b/ngraph/core/builder/CMakeLists.txt
index 13b31ee17..be613b65f 100644
--- a/ngraph/core/builder/CMakeLists.txt
+++ b/ngraph/core/builder/CMakeLists.txt
@@ -28,7 +28,7 @@
source_group("src" FILES ${LIBRARY_SRC})
source_group("include" FILES ${PUBLIC_HEADERS})
# Create shared library
-add_library(${TARGET_NAME} STATIC ${LIBRARY_SRC} ${PUBLIC_HEADERS})
+add_library(${TARGET_NAME} STATIC EXCLUDE_FROM_ALL ${LIBRARY_SRC} ${PUBLIC_HEADERS})
if(COMMAND ie_faster_build)
ie_faster_build(${TARGET_NAME}
diff --git a/ngraph/core/reference/CMakeLists.txt b/ngraph/core/reference/CMakeLists.txt
index 62749a650..dc857f853 100644
--- a/ngraph/core/reference/CMakeLists.txt
+++ b/ngraph/core/reference/CMakeLists.txt
@@ -28,7 +28,7 @@
source_group("src" FILES ${LIBRARY_SRC})
source_group("include" FILES ${PUBLIC_HEADERS})
# Create shared library
-add_library(${TARGET_NAME} STATIC ${LIBRARY_SRC} ${PUBLIC_HEADERS})
+add_library(${TARGET_NAME} STATIC EXCLUDE_FROM_ALL ${LIBRARY_SRC} ${PUBLIC_HEADERS})
if(COMMAND ie_faster_build)
ie_faster_build(${TARGET_NAME}
diff --git a/openvino/itt/CMakeLists.txt b/openvino/itt/CMakeLists.txt
index 648ac0a05..4291740d7 100644
--- a/openvino/itt/CMakeLists.txt
+++ b/openvino/itt/CMakeLists.txt
@@ -18,7 +18,7 @@
set(TARGET_NAME itt)
file(GLOB_RECURSE SOURCES "src/*.cpp" "src/*.hpp")
-add_library(${TARGET_NAME} STATIC ${SOURCES})
+add_library(${TARGET_NAME} STATIC EXCLUDE_FROM_ALL ${SOURCES})
add_library(openvino::itt ALIAS ${TARGET_NAME})
platforms/winpack_dldt/2021.3/20210324-dldt-pdb.patch
0 → 100644
浏览文件 @
35eaacd1
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1f981ed2..90eb500a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,6 +22,10 @@
endif()
project(OpenVINO)
+set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi /FS")
+set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
+set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
+
set(OpenVINO_MAIN_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(IE_MAIN_SOURCE_DIR ${OpenVINO_MAIN_SOURCE_DIR}/inference-engine)
list(APPEND CMAKE_MODULE_PATH "${OpenVINO_MAIN_SOURCE_DIR}/cmake")
platforms/winpack_dldt/2021.3/20210324-dldt-vs-version.patch
0 → 100644
浏览文件 @
35eaacd1
diff --git a/cmake/developer_package/vs_version/vs_version.cmake b/cmake/developer_package/vs_version/vs_version.cmake
index d857e2e4..453903fd 100644
--- a/cmake/developer_package/vs_version/vs_version.cmake
+++ b/cmake/developer_package/vs_version/vs_version.cmake
@@ -22,9 +22,9 @@
if(IE_VS_VER_HAS_VERSION)
endif()
set(IE_VS_VER_PRODUCTVERSION_STR "${CI_BUILD_NUMBER}")
-set(IE_VS_VER_PRODUCTNAME_STR "OpenVINO toolkit")
+set(IE_VS_VER_PRODUCTNAME_STR "OpenVINO toolkit (for OpenCV Windows package)")
set(IE_VS_VER_COPYRIGHT_STR "Copyright (C) 2018-2020, Intel Corporation")
-set(IE_VS_VER_COMMENTS_STR "https://docs.openvinotoolkit.org/")
+set(IE_VS_VER_COMMENTS_STR "https://github.com/opencv/opencv/wiki/Intel%27s-Deep-Learning-Inference-Engine-backend")
#
# ie_add_vs_version_file(NAME <name>
platforms/winpack_dldt/2021.3/build.config.py
0 → 100644
浏览文件 @
35eaacd1
os
.
environ
[
'CI_BUILD_NUMBER'
]
=
'2021.3.0-opencv_winpack_dldt'
cmake_vars
[
'ENABLE_V10_SERIALIZE'
]
=
'ON'
platforms/winpack_dldt/2021.3/patch.config.py
0 → 100644
浏览文件 @
35eaacd1
applyPatch
(
'20210324-dldt-disable-unused-targets.patch'
)
applyPatch
(
'20210324-dldt-pdb.patch'
)
applyPatch
(
'20200604-dldt-disable-multidevice.patch'
)
applyPatch
(
'20210324-dldt-vs-version.patch'
)
platforms/winpack_dldt/2021.3/sysroot.config.py
0 → 100644
浏览文件 @
35eaacd1
sysroot_bin_dir
=
prepare_dir
(
self
.
sysrootdir
/
'bin'
)
copytree
(
self
.
build_dir
/
'install'
,
self
.
sysrootdir
/
'ngraph'
)
#rm_one(self.sysrootdir / 'ngraph' / 'lib' / 'ngraph.dll')
build_config
=
'Release'
if
not
self
.
config
.
build_debug
else
'Debug'
build_bin_dir
=
self
.
build_dir
/
'bin'
/
'intel64'
/
build_config
def
copy_bin
(
name
):
global
build_bin_dir
,
sysroot_bin_dir
copytree
(
build_bin_dir
/
name
,
sysroot_bin_dir
/
name
)
dll_suffix
=
'd'
if
self
.
config
.
build_debug
else
''
def
copy_dll
(
name
):
global
copy_bin
,
dll_suffix
copy_bin
(
name
+
dll_suffix
+
'.dll'
)
copy_bin
(
name
+
dll_suffix
+
'.pdb'
)
copy_bin
(
'cache.json'
)
copy_dll
(
'clDNNPlugin'
)
copy_dll
(
'HeteroPlugin'
)
copy_dll
(
'inference_engine'
)
copy_dll
(
'inference_engine_ir_reader'
)
copy_dll
(
'inference_engine_ir_v7_reader'
)
copy_dll
(
'inference_engine_legacy'
)
copy_dll
(
'inference_engine_transformations'
)
# runtime
copy_dll
(
'inference_engine_lp_transformations'
)
# runtime
copy_dll
(
'MKLDNNPlugin'
)
# runtime
copy_dll
(
'myriadPlugin'
)
# runtime
#copy_dll('MultiDevicePlugin') # runtime, not used
copy_dll
(
'ngraph'
)
copy_bin
(
'plugins.xml'
)
copy_bin
(
'pcie-ma2x8x.elf'
)
copy_bin
(
'usb-ma2x8x.mvcmd'
)
copytree
(
self
.
srcdir
/
'inference-engine'
/
'temp'
/
'tbb'
/
'bin'
,
sysroot_bin_dir
)
copytree
(
self
.
srcdir
/
'inference-engine'
/
'temp'
/
'tbb'
,
self
.
sysrootdir
/
'tbb'
)
sysroot_ie_dir
=
prepare_dir
(
self
.
sysrootdir
/
'deployment_tools'
/
'inference_engine'
)
sysroot_ie_lib_dir
=
prepare_dir
(
sysroot_ie_dir
/
'lib'
/
'intel64'
)
copytree
(
self
.
srcdir
/
'inference-engine'
/
'include'
,
sysroot_ie_dir
/
'include'
)
if
not
self
.
config
.
build_debug
:
copytree
(
build_bin_dir
/
'ngraph.lib'
,
sysroot_ie_lib_dir
/
'ngraph.lib'
)
copytree
(
build_bin_dir
/
'inference_engine.lib'
,
sysroot_ie_lib_dir
/
'inference_engine.lib'
)
copytree
(
build_bin_dir
/
'inference_engine_ir_reader.lib'
,
sysroot_ie_lib_dir
/
'inference_engine_ir_reader.lib'
)
copytree
(
build_bin_dir
/
'inference_engine_legacy.lib'
,
sysroot_ie_lib_dir
/
'inference_engine_legacy.lib'
)
else
:
copytree
(
build_bin_dir
/
'ngraphd.lib'
,
sysroot_ie_lib_dir
/
'ngraphd.lib'
)
copytree
(
build_bin_dir
/
'inference_engined.lib'
,
sysroot_ie_lib_dir
/
'inference_engined.lib'
)
copytree
(
build_bin_dir
/
'inference_engine_ir_readerd.lib'
,
sysroot_ie_lib_dir
/
'inference_engine_ir_readerd.lib'
)
copytree
(
build_bin_dir
/
'inference_engine_legacyd.lib'
,
sysroot_ie_lib_dir
/
'inference_engine_legacyd.lib'
)
sysroot_license_dir
=
prepare_dir
(
self
.
sysrootdir
/
'etc'
/
'licenses'
)
copytree
(
self
.
srcdir
/
'LICENSE'
,
sysroot_license_dir
/
'dldt-LICENSE'
)
copytree
(
self
.
sysrootdir
/
'tbb/LICENSE'
,
sysroot_license_dir
/
'tbb-LICENSE'
)
platforms/winpack_dldt/build_package.py
浏览文件 @
35eaacd1
...
...
@@ -300,7 +300,9 @@ class BuilderDLDT:
# build
cmd
=
[
self
.
cmake_path
,
'--build'
,
'.'
,
'--config'
,
build_config
,
# '--target', 'install',
'--'
,
'/v:n'
,
'/m:2'
,
'/consoleloggerparameters:NoSummary'
'--'
,
# '/m:2' is removed, not properly supported by 2021.3
'/v:n'
,
'/consoleloggerparameters:NoSummary'
,
]
execute
(
cmd
,
cwd
=
build_dir
)
...
...
@@ -382,9 +384,18 @@ class Builder:
)
cmake_vars
[
'INF_ENGINE_LIB_DIRS:PATH'
]
=
str
(
builderDLDT
.
sysrootdir
/
'deployment_tools/inference_engine/lib/intel64'
)
assert
os
.
path
.
exists
(
cmake_vars
[
'INF_ENGINE_LIB_DIRS:PATH'
]),
cmake_vars
[
'INF_ENGINE_LIB_DIRS:PATH'
]
cmake_vars
[
'INF_ENGINE_INCLUDE_DIRS:PATH'
]
=
str
(
builderDLDT
.
sysrootdir
/
'deployment_tools/inference_engine/include'
)
cmake_vars
[
'ngraph_DIR:PATH'
]
=
str
(
builderDLDT
.
sysrootdir
/
'ngraph/cmake'
)
assert
os
.
path
.
exists
(
cmake_vars
[
'INF_ENGINE_INCLUDE_DIRS:PATH'
]),
cmake_vars
[
'INF_ENGINE_INCLUDE_DIRS:PATH'
]
ngraph_DIR
=
str
(
builderDLDT
.
sysrootdir
/
'ngraph/cmake'
)
if
not
os
.
path
.
exists
(
ngraph_DIR
):
ngraph_DIR
=
str
(
builderDLDT
.
sysrootdir
/
'ngraph/deployment_tools/ngraph/cmake'
)
assert
os
.
path
.
exists
(
ngraph_DIR
),
ngraph_DIR
cmake_vars
[
'ngraph_DIR:PATH'
]
=
ngraph_DIR
cmake_vars
[
'TBB_DIR:PATH'
]
=
str
(
builderDLDT
.
sysrootdir
/
'tbb/cmake'
)
assert
os
.
path
.
exists
(
cmake_vars
[
'TBB_DIR:PATH'
]),
cmake_vars
[
'TBB_DIR:PATH'
]
if
self
.
config
.
build_debug
:
cmake_vars
[
'CMAKE_BUILD_TYPE'
]
=
'Debug'
...
...
@@ -455,8 +466,8 @@ class Builder:
def
main
():
dldt_src_url
=
'https://github.com/openvinotoolkit/openvino'
dldt_src_commit
=
'2021.
2
'
dldt_release
=
'20210
2
0000'
dldt_src_commit
=
'2021.
3
'
dldt_release
=
'20210
3
0000'
build_cache_dir_default
=
os
.
environ
.
get
(
'BUILD_CACHE_DIR'
,
'.build_cache'
)
build_subst_drive
=
os
.
environ
.
get
(
'BUILD_SUBST_DRIVE'
,
None
)
...
...
@@ -514,8 +525,12 @@ def main():
args
.
opencv_dir
=
os
.
path
.
abspath
(
args
.
opencv_dir
)
if
not
args
.
dldt_config
:
if
args
.
dldt_src_commit
==
'releases/2020/4'
or
args
.
dldt_src_branch
==
'releases/2020/4'
:
args
.
dldt_config
=
'2020.4'
if
str
(
args
.
dldt_src_commit
).
startswith
(
'releases/20'
):
# releases/2020/4
args
.
dldt_config
=
str
(
args
.
dldt_src_commit
)[
len
(
'releases/'
):].
replace
(
'/'
,
'.'
)
if
not
args
.
dldt_src_branch
:
args
.
dldt_src_branch
=
args
.
dldt_src_commit
elif
str
(
args
.
dldt_src_branch
).
startswith
(
'releases/20'
):
# releases/2020/4
args
.
dldt_config
=
str
(
args
.
dldt_src_branch
)[
len
(
'releases/'
):].
replace
(
'/'
,
'.'
)
else
:
args
.
dldt_config
=
args
.
dldt_src_commit
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录