diff --git a/testdata/cv/cameracalibration/checkerboard_marker_black.png b/testdata/cv/cameracalibration/checkerboard_marker_black.png new file mode 100644 index 000000000..52d02f1f7 Binary files /dev/null and b/testdata/cv/cameracalibration/checkerboard_marker_black.png differ diff --git a/testdata/cv/cameracalibration/checkerboard_marker_white.png b/testdata/cv/cameracalibration/checkerboard_marker_white.png new file mode 100644 index 000000000..8893d0030 Binary files /dev/null and b/testdata/cv/cameracalibration/checkerboard_marker_white.png differ diff --git a/testdata/dnn/download_models.py b/testdata/dnn/download_models.py index f755a0fb3..3998be647 100755 --- a/testdata/dnn/download_models.py +++ b/testdata/dnn/download_models.py @@ -995,7 +995,16 @@ def is_archive(self): ], sha='462f15d668c046d38e27d3df01fe8142dd004cb4', filename='onnx/models/yolov8x.onnx'), - + Model( + name='yolov9t', + url='https://dl.opencv.org/models/yolov9/yolov9t.onnx', + sha='330292f15e1b312b11ce58e70a9e455d54415fa3', + filename='onnx/models/yolov9t.onnx'), + Model( + name='yolov10s', + url='https://dl.opencv.org/models/yolov10/yolov10s.onnx', + sha='5311212e431912a27d5f54b3a5277bc573890a99', + filename='onnx/models/yolov10s.onnx'), Model( name='yolo_nas_s', url='https://dl.opencv.org/models/yolo-nas/yolo_nas_s.onnx', diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_default_1/model.onnx b/testdata/dnn/onnx/conformance/node/test_gelu_default_1/model.onnx new file mode 100644 index 000000000..ada8f652b Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_default_1/model.onnx differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_default_1/test_data_set_0/input_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_default_1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..8a9445744 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_default_1/test_data_set_0/input_0.pb differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_default_1/test_data_set_0/output_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_default_1/test_data_set_0/output_0.pb new file mode 100644 index 000000000..b12e822f1 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_default_1/test_data_set_0/output_0.pb differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_default_1_expanded/model.onnx b/testdata/dnn/onnx/conformance/node/test_gelu_default_1_expanded/model.onnx new file mode 100644 index 000000000..ffee90bea Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_default_1_expanded/model.onnx differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_default_1_expanded/test_data_set_0/input_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_default_1_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..8a9445744 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_default_1_expanded/test_data_set_0/input_0.pb differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_default_1_expanded/test_data_set_0/output_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_default_1_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..b12e822f1 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_default_1_expanded/test_data_set_0/output_0.pb differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_default_2/model.onnx b/testdata/dnn/onnx/conformance/node/test_gelu_default_2/model.onnx new file mode 100644 index 000000000..c03f4701e Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_default_2/model.onnx differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_default_2/test_data_set_0/input_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_default_2/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_gelu_default_2/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJx?h>z?j@$ ?.z8s?bhdӽ9>(>%?^B?0= B>]ת>=?RiJ>Z/d#S'?K]?=C@(Hm;= ?2??>>Ec! >*z??Oƾmǚ6&õgڿ?xFKྙ[ G?4οYL=e> kQN>.:=ݚ>b"6 \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_default_2/test_data_set_0/output_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_default_2/test_data_set_0/output_0.pb new file mode 100644 index 000000000..c55aea167 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_gelu_default_2/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ +ByJ?K>Q?A @t? V$I?WuB>d=?VQ?V=q>~W>Q?xG>d+8^_$>o2?.ޓ@3ٽxD<+7?п?24=Iz>jL*'A=D?D? +| +BKR?h@:UZ?T;%;)>faJ>s=?>*S  \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_default_2_expanded/model.onnx b/testdata/dnn/onnx/conformance/node/test_gelu_default_2_expanded/model.onnx new file mode 100644 index 000000000..1988c1b62 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_default_2_expanded/model.onnx differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_default_2_expanded/test_data_set_0/input_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_default_2_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_gelu_default_2_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJx?h>z?j@$ ?.z8s?bhdӽ9>(>%?^B?0= B>]ת>=?RiJ>Z/d#S'?K]?=C@(Hm;= ?2??>>Ec! >*z??Oƾmǚ6&õgڿ?xFKྙ[ G?4οYL=e> kQN>.:=ݚ>b"6 \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_default_2_expanded/test_data_set_0/output_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_default_2_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..c55aea167 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_gelu_default_2_expanded/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ +ByJ?K>Q?A @t? V$I?WuB>d=?VQ?V=q>~W>Q?xG>d+8^_$>o2?.ޓ@3ٽxD<+7?п?24=Iz>jL*'A=D?D? +| +BKR?h@:UZ?T;%;)>faJ>s=?>*S  \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1/model.onnx b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1/model.onnx new file mode 100644 index 000000000..cbb06f2b0 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1/model.onnx differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1/test_data_set_0/input_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..8a9445744 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1/test_data_set_0/input_0.pb differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1/test_data_set_0/output_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1/test_data_set_0/output_0.pb new file mode 100644 index 000000000..0f554cc42 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1/test_data_set_0/output_0.pb differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1_expanded/model.onnx b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1_expanded/model.onnx new file mode 100644 index 000000000..254f70263 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1_expanded/model.onnx differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1_expanded/test_data_set_0/input_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..8a9445744 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1_expanded/test_data_set_0/input_0.pb differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1_expanded/test_data_set_0/output_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..0f554cc42 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_1_expanded/test_data_set_0/output_0.pb differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2/model.onnx b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2/model.onnx new file mode 100644 index 000000000..887e5c520 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2/model.onnx differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2/test_data_set_0/input_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJx?h>z?j@$ ?.z8s?bhdӽ9>(>%?^B?0= B>]ת>=?RiJ>Z/d#S'?K]?=C@(Hm;= ?2??>>Ec! >*z??Oƾmǚ6&õgڿ?xFKྙ[ G?4οYL=e> kQN>.:=ݚ>b"6 \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2/test_data_set_0/output_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d9ba5e0c6 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2/test_data_set_0/output_0.pb differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2_expanded/model.onnx b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2_expanded/model.onnx new file mode 100644 index 000000000..6456042ec Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2_expanded/model.onnx differ diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2_expanded/test_data_set_0/input_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJx?h>z?j@$ ?.z8s?bhdӽ9>(>%?^B?0= B>]ת>=?RiJ>Z/d#S'?K]?=C@(Hm;= ?2??>>Ec! >*z??Oƾmǚ6&õgڿ?xFKྙ[ G?4οYL=e> kQN>.:=ݚ>b"6 \ No newline at end of file diff --git a/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2_expanded/test_data_set_0/output_0.pb b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d9ba5e0c6 Binary files /dev/null and b/testdata/dnn/onnx/conformance/node/test_gelu_tanh_2_expanded/test_data_set_0/output_0.pb differ diff --git a/testdata/dnn/onnx/data/input_pytorch_attention_single_head.npy b/testdata/dnn/onnx/data/input_pytorch_attention_single_head.npy new file mode 100644 index 000000000..e59a39adb Binary files /dev/null and b/testdata/dnn/onnx/data/input_pytorch_attention_single_head.npy differ diff --git a/testdata/dnn/onnx/data/input_unflatten.npy b/testdata/dnn/onnx/data/input_unflatten.npy new file mode 100644 index 000000000..f01242c26 Binary files /dev/null and b/testdata/dnn/onnx/data/input_unflatten.npy differ diff --git a/testdata/dnn/onnx/data/output_pytorch_attention_single_head.npy b/testdata/dnn/onnx/data/output_pytorch_attention_single_head.npy new file mode 100644 index 000000000..d36fda7c3 Binary files /dev/null and b/testdata/dnn/onnx/data/output_pytorch_attention_single_head.npy differ diff --git a/testdata/dnn/onnx/data/output_unflatten.npy b/testdata/dnn/onnx/data/output_unflatten.npy new file mode 100644 index 000000000..f844fd211 Binary files /dev/null and b/testdata/dnn/onnx/data/output_unflatten.npy differ diff --git a/testdata/dnn/onnx/generate_onnx_models.py b/testdata/dnn/onnx/generate_onnx_models.py index 07dcc0a34..6cfe6aca1 100644 --- a/testdata/dnn/onnx/generate_onnx_models.py +++ b/testdata/dnn/onnx/generate_onnx_models.py @@ -1540,6 +1540,47 @@ def forward(self, x): save_data_and_model("einsum_transpose", mat, einsum, export_params=True) +class TorchAttentionLayer(nn.Module): + def __init__(self, embed_dim=6, num_heads=1): + super(TorchAttentionLayer, self).__init__() + self.attention = nn.MultiheadAttention( + embed_dim=embed_dim, + num_heads=num_heads, + bias=True, + batch_first=True) + def forward(self, x): + return self.attention(x, x, x)[0] + +num_heads = 1 +batch_size = 2 +num_tokens = 5 +emb_dim = 6 +model = TorchAttentionLayer(embed_dim=emb_dim, num_heads=num_heads).eval() + +x = torch.rand(batch_size, num_tokens, emb_dim) +with torch.no_grad(): + output = model(x) + +save_data_and_model("pytorch_attention_single_head", x, model, export_params=True) +class Unflatten(torch.nn.Module): + def __init__(self, E, times): + super(Unflatten, self).__init__() + self.E = E + self.times = times + + def forward(self, x): + return x.unflatten(-1, (self.times, self.E)) + +unflatten_dim = 5 +times = 3 +model = Unflatten(unflatten_dim, times).eval() + +x = torch.rand(10, 3, unflatten_dim * times) +with torch.no_grad(): + output = model(x) + +save_data_and_model("unflatten", x, model, export_params=True) + def _extract_value_info(x, name, type_proto=None): # type: (Union[List[Any], np.ndarray, None], Text, Optional[TypeProto]) -> onnx.ValueInfoProto if type_proto is None: if x is None: diff --git a/testdata/dnn/onnx/models/pytorch_attention_single_head.onnx b/testdata/dnn/onnx/models/pytorch_attention_single_head.onnx new file mode 100644 index 000000000..5be90217e Binary files /dev/null and b/testdata/dnn/onnx/models/pytorch_attention_single_head.onnx differ diff --git a/testdata/dnn/onnx/models/unflatten.onnx b/testdata/dnn/onnx/models/unflatten.onnx new file mode 100644 index 000000000..caaf71f6d Binary files /dev/null and b/testdata/dnn/onnx/models/unflatten.onnx differ