From 7f81ffb41b425940d2ed87df73cfb153a0b18d8b Mon Sep 17 00:00:00 2001 From: Justin Chu Date: Tue, 5 Sep 2023 19:10:12 -0700 Subject: [PATCH] Use Pillow to implement ImageDecoder (#5555) Use Pillow to replace opencv to implement ImageDecoder to remove dependency on the heavy opencv. Code change made with help from Copilot Chat. ### Motivation and Context Fixes #5545 --------- Signed-off-by: Justin Chu Co-authored-by: Chun-Wei Chen --- .github/workflows/release_win.yml | 3 +- docs/Operators.md | 18 +++--- docs/TestCoverage.md | 18 +++--- onnx/backend/test/case/node/image_decoder.py | 59 +++++++++++------- .../model.onnx | Bin 165 -> 165 bytes .../test_data_set_0/input_0.pb | Bin 4868 -> 3140 bytes .../test_data_set_0/output_0.pb | Bin 4819 -> 3091 bytes .../model.onnx | Bin 168 -> 168 bytes .../test_data_set_0/input_0.pb | Bin 1220 -> 1901 bytes .../test_data_set_0/output_0.pb | Bin 4819 -> 3091 bytes .../model.onnx | Bin 166 -> 166 bytes .../test_data_set_0/input_0.pb | Bin 2221 -> 1072 bytes .../test_data_set_0/output_0.pb | Bin 4819 -> 3091 bytes .../model.onnx | Bin 178 -> 178 bytes .../test_data_set_0/input_0.pb | Bin 2221 -> 1072 bytes .../test_data_set_0/output_0.pb | 11 +++- .../model.onnx | Bin 166 -> 166 bytes .../test_data_set_0/input_0.pb | Bin 2221 -> 1072 bytes .../test_data_set_0/output_0.pb | Bin 4819 -> 3091 bytes .../model.onnx | Bin 165 -> 165 bytes .../test_data_set_0/input_0.pb | Bin 1366 -> 326 bytes .../test_data_set_0/output_0.pb | Bin 4819 -> 3091 bytes .../model.onnx | Bin 165 -> 165 bytes .../test_data_set_0/input_0.pb | Bin 4827 -> 3099 bytes .../test_data_set_0/output_0.pb | Bin 4819 -> 3091 bytes .../model.onnx | Bin 166 -> 166 bytes .../test_data_set_0/input_0.pb | Bin 1194 -> 3226 bytes .../test_data_set_0/output_0.pb | Bin 4819 -> 3091 bytes .../model.onnx | Bin 166 -> 166 bytes .../test_data_set_0/input_0.pb | Bin 374 -> 566 bytes .../test_data_set_0/output_0.pb | Bin 4819 -> 3091 bytes onnx/reference/ops/op_image_decoder.py | 28 ++++----- onnx/test/reference_evaluator_backend_test.py | 28 +++------ onnx/test/test_backend_reference.py | 3 +- pyproject_pylint.toml | 5 +- requirements-reference.txt | 2 +- 36 files changed, 94 insertions(+), 81 deletions(-) diff --git a/.github/workflows/release_win.yml b/.github/workflows/release_win.yml index 433535c4589..acca98ad17e 100644 --- a/.github/workflows/release_win.yml +++ b/.github/workflows/release_win.yml @@ -50,7 +50,8 @@ jobs: python -m pip install -q --upgrade pip cd onnx if ('${{ matrix.architecture }}' -eq 'x86') { - sed -i '' '/google-re2/d' requirements-release.txt + sed -i '' '/google-re2/d' requirements-reference.txt + sed -i '' '/Pillow/d' requirements-reference.txt } python -m pip install -q -r requirements-release.txt diff --git a/docs/Operators.md b/docs/Operators.md index f3c8e9be5e0..77df2ec9232 100644 --- a/docs/Operators.md +++ b/docs/Operators.md @@ -12138,7 +12138,7 @@ node = onnx.helper.make_node( pixel_format="RGB", ) -data, output = generate_test_data(".bmp", "RGB") +data, output = _generate_test_data("bmp", "RGB") expect( node, inputs=[data], @@ -12161,7 +12161,7 @@ node = onnx.helper.make_node( pixel_format="RGB", ) -data, output = generate_test_data(".jp2", "RGB") +data, output = _generate_test_data("jpeg2000", "RGB") expect( node, inputs=[data], @@ -12184,7 +12184,7 @@ node = onnx.helper.make_node( pixel_format="BGR", ) -data, output = generate_test_data(".jpg", "BGR") +data, output = _generate_test_data("jpeg", "BGR") expect( node, inputs=[data], @@ -12207,7 +12207,7 @@ node = onnx.helper.make_node( pixel_format="Grayscale", ) -data, output = generate_test_data(".jpg", "Grayscale") +data, output = _generate_test_data("jpeg", "Grayscale") expect( node, inputs=[data], @@ -12230,7 +12230,7 @@ node = onnx.helper.make_node( pixel_format="RGB", ) -data, output = generate_test_data(".jpg", "RGB") +data, output = _generate_test_data("jpeg", "RGB") expect( node, inputs=[data], @@ -12253,7 +12253,7 @@ node = onnx.helper.make_node( pixel_format="RGB", ) -data, output = generate_test_data(".png", "RGB") +data, output = _generate_test_data("png", "RGB") expect( node, inputs=[data], @@ -12276,7 +12276,7 @@ node = onnx.helper.make_node( pixel_format="RGB", ) -data, output = generate_test_data(".pnm", "RGB") +data, output = _generate_test_data("ppm", "RGB") expect( node, inputs=[data], @@ -12299,7 +12299,7 @@ node = onnx.helper.make_node( pixel_format="RGB", ) -data, output = generate_test_data(".tiff", "RGB") +data, output = _generate_test_data("tiff", "RGB") expect( node, inputs=[data], @@ -12322,7 +12322,7 @@ node = onnx.helper.make_node( pixel_format="RGB", ) -data, output = generate_test_data(".webp", "RGB") +data, output = _generate_test_data("webp", "RGB") expect( node, inputs=[data], diff --git a/docs/TestCoverage.md b/docs/TestCoverage.md index 2c76fd88a21..669f2d5851e 100644 --- a/docs/TestCoverage.md +++ b/docs/TestCoverage.md @@ -8194,7 +8194,7 @@ node = onnx.helper.make_node( pixel_format="RGB", ) -data, output = generate_test_data(".bmp", "RGB") +data, output = _generate_test_data("bmp", "RGB") expect( node, inputs=[data], @@ -8215,7 +8215,7 @@ node = onnx.helper.make_node( pixel_format="RGB", ) -data, output = generate_test_data(".jp2", "RGB") +data, output = _generate_test_data("jpeg2000", "RGB") expect( node, inputs=[data], @@ -8236,7 +8236,7 @@ node = onnx.helper.make_node( pixel_format="BGR", ) -data, output = generate_test_data(".jpg", "BGR") +data, output = _generate_test_data("jpeg", "BGR") expect( node, inputs=[data], @@ -8257,7 +8257,7 @@ node = onnx.helper.make_node( pixel_format="Grayscale", ) -data, output = generate_test_data(".jpg", "Grayscale") +data, output = _generate_test_data("jpeg", "Grayscale") expect( node, inputs=[data], @@ -8278,7 +8278,7 @@ node = onnx.helper.make_node( pixel_format="RGB", ) -data, output = generate_test_data(".jpg", "RGB") +data, output = _generate_test_data("jpeg", "RGB") expect( node, inputs=[data], @@ -8299,7 +8299,7 @@ node = onnx.helper.make_node( pixel_format="RGB", ) -data, output = generate_test_data(".png", "RGB") +data, output = _generate_test_data("png", "RGB") expect( node, inputs=[data], @@ -8320,7 +8320,7 @@ node = onnx.helper.make_node( pixel_format="RGB", ) -data, output = generate_test_data(".pnm", "RGB") +data, output = _generate_test_data("ppm", "RGB") expect( node, inputs=[data], @@ -8341,7 +8341,7 @@ node = onnx.helper.make_node( pixel_format="RGB", ) -data, output = generate_test_data(".tiff", "RGB") +data, output = _generate_test_data("tiff", "RGB") expect( node, inputs=[data], @@ -8362,7 +8362,7 @@ node = onnx.helper.make_node( pixel_format="RGB", ) -data, output = generate_test_data(".webp", "RGB") +data, output = _generate_test_data("webp", "RGB") expect( node, inputs=[data], diff --git a/onnx/backend/test/case/node/image_decoder.py b/onnx/backend/test/case/node/image_decoder.py index 69105dee62d..88163a6365b 100644 --- a/onnx/backend/test/case/node/image_decoder.py +++ b/onnx/backend/test/case/node/image_decoder.py @@ -1,16 +1,19 @@ # Copyright (c) ONNX Project Contributors # # SPDX-License-Identifier: Apache-2.0 +from __future__ import annotations + +import io -import cv2 import numpy as np +import PIL.Image import onnx from onnx.backend.test.case.base import Base from onnx.backend.test.case.node import expect -def generate_checkerboard(width, height, square_size): +def generate_checkerboard(width: int, height: int, square_size: int) -> np.ndarray: # Create an empty RGB image image = np.zeros((height, width, 3), dtype=np.uint8) @@ -39,22 +42,32 @@ def generate_checkerboard(width, height, square_size): return image -def generate_test_data(extension, pixel_format="RGB", h=40, w=40, tile_sz=5): - data, output = None, None +def _generate_test_data( + format_: str, + pixel_format: str = "RGB", + height: int = 32, + width: int = 32, + tile_sz: int = 5, +) -> tuple[np.ndarray, np.ndarray]: np.random.seed(12345) - image = generate_checkerboard(h, w, tile_sz) - image_bgr = cv2.cvtColor(image, cv2.COLOR_RGB2BGR) - _, encoded_image = cv2.imencode(extension, image_bgr) - data = np.frombuffer(encoded_image, dtype=np.uint8) + image = generate_checkerboard(height, width, tile_sz) + image_pil = PIL.Image.fromarray(image) + with io.BytesIO() as f: + image_pil.save(f, format=format_) + data = f.getvalue() + data_array = np.frombuffer(data, dtype=np.uint8) if pixel_format == "BGR": - output = cv2.imdecode(data, cv2.IMREAD_COLOR) + output_pil = PIL.Image.open(io.BytesIO(data)) + output = np.array(output_pil)[:, :, ::-1] elif pixel_format == "RGB": - output_bgr = cv2.imdecode(data, cv2.IMREAD_COLOR) - output = cv2.cvtColor(output_bgr, cv2.COLOR_BGR2RGB) + output_pil = PIL.Image.open(io.BytesIO(data)) + output = np.array(output_pil) elif pixel_format == "Grayscale": - output = cv2.imdecode(data, cv2.IMREAD_GRAYSCALE) - output = np.expand_dims(output, axis=2) # (H, W) to (H, W, 1) - return data, output + output_pil = PIL.Image.open(io.BytesIO(data)).convert("L") + output = np.array(output_pil)[:, :, np.newaxis] + else: + raise ValueError(f"Unsupported pixel format: {pixel_format}") + return data_array, output class ImageDecoder(Base): @@ -67,7 +80,7 @@ def export_image_decoder_decode_jpeg_rgb() -> None: pixel_format="RGB", ) - data, output = generate_test_data(".jpg", "RGB") + data, output = _generate_test_data("jpeg", "RGB") expect( node, inputs=[data], @@ -84,7 +97,7 @@ def export_image_decoder_decode_jpeg_grayscale() -> None: pixel_format="Grayscale", ) - data, output = generate_test_data(".jpg", "Grayscale") + data, output = _generate_test_data("jpeg", "Grayscale") expect( node, inputs=[data], @@ -101,7 +114,7 @@ def export_image_decoder_decode_jpeg_bgr() -> None: pixel_format="BGR", ) - data, output = generate_test_data(".jpg", "BGR") + data, output = _generate_test_data("jpeg", "BGR") expect( node, inputs=[data], @@ -118,7 +131,7 @@ def export_image_decoder_decode_jpeg2k_rgb() -> None: pixel_format="RGB", ) - data, output = generate_test_data(".jp2", "RGB") + data, output = _generate_test_data("jpeg2000", "RGB") expect( node, inputs=[data], @@ -135,7 +148,7 @@ def export_image_decoder_decode_bmp_rgb() -> None: pixel_format="RGB", ) - data, output = generate_test_data(".bmp", "RGB") + data, output = _generate_test_data("bmp", "RGB") expect( node, inputs=[data], @@ -152,7 +165,7 @@ def export_image_decoder_decode_png_rgb() -> None: pixel_format="RGB", ) - data, output = generate_test_data(".png", "RGB") + data, output = _generate_test_data("png", "RGB") expect( node, inputs=[data], @@ -169,7 +182,7 @@ def export_image_decoder_decode_tiff_rgb() -> None: pixel_format="RGB", ) - data, output = generate_test_data(".tiff", "RGB") + data, output = _generate_test_data("tiff", "RGB") expect( node, inputs=[data], @@ -186,7 +199,7 @@ def export_image_decoder_decode_webp_rgb() -> None: pixel_format="RGB", ) - data, output = generate_test_data(".webp", "RGB") + data, output = _generate_test_data("webp", "RGB") expect( node, inputs=[data], @@ -203,7 +216,7 @@ def export_image_decoder_decode_pnm_rgb() -> None: pixel_format="RGB", ) - data, output = generate_test_data(".pnm", "RGB") + data, output = _generate_test_data("ppm", "RGB") expect( node, inputs=[data], diff --git a/onnx/backend/test/data/node/test_image_decoder_decode_bmp_rgb/model.onnx b/onnx/backend/test/data/node/test_image_decoder_decode_bmp_rgb/model.onnx index 69eded0b8b4deffb42b8c33a74014f236683ea9f..0b90ba5f2d443c1b3a3ed4229839fb841924ef36 100644 GIT binary patch delta 28 hcmZ3=xRh~1J<~RciH)NC3S3MaAk6H^>&xs>!4ir#p6bvKYGx?&&-@dksk$)IktV4yC=V7Z98 z#bQubMw7pTD1*+RlW%^8&-hmL`}O(#`t)9XhHt#!G{(HDsqAt#Rd77tt&98~S8tbY z>)(w=9GQ;(U)GyzKK%c;w(OAV+Y{1p;gjdh7|EpeNXx)GG21XMXI##>oN+nha>nJh zA7-EQ*e4kd@}$&xM2fThWMO}a^jtj>vp?f<#^sF58J9CIXIyUkVfN_@21(xCA*;<> zWOU}0j2BPI%>23BW8cb<&4W2moqMBT+X=M_QUM+1IIZsi2wiq literal 4868 zcmeH@U1-f=0Ef4=SO<}eMJJIHwU#EG8_Mad)YeXRlFx-snUK{c&YGlTtIfsQxpU*A zEc02E+7{Z4k_)ruf^sqQ9b-a&7fhbGc`n@k@BVMk`}Wj(@zk#@NX#oqm+s9S$<+mk zbS9Wz^!FrrSLqfPRs8$-&wDMFGE-9n=G5m}({{UHs$;)Q$MIdJbMp>!b0RQ~;*R2u z;*R2u;*R2u;*R1`*HeeL^S8uO^Yva}a!*UmP))0ue9&lWw#_yx`r6G%(|+S9?kMgk z?kMgk?kMgk?kFC0J#~0H$9gMG>fL3t=t8%7yy=B$z8^Oq2j824@r|aZWsY$acNBLN zcNBLNcNBLNcNCAho;tjp6L&M_?dcMetvhd)Z1`dpEF3e>F6}cj>)Xu8)pp}3?kMgk z?kMgk?kMgk?kFC0J#~0HH|+djw&eTG=*sJ6_~3fea`CWP^YFEq6;zlR&u#4)r`NN^SdDI%1b@`O(Po6c$7WbI#2PRG9@SxcI~uO>{x^t8#Boiv%gW#-E2auch%VI0LB#T~^R T#T~^R#T~^R#iOpL4sYi_YxZ+v diff --git a/onnx/backend/test/data/node/test_image_decoder_decode_bmp_rgb/test_data_set_0/output_0.pb b/onnx/backend/test/data/node/test_image_decoder_decode_bmp_rgb/test_data_set_0/output_0.pb index 6ed563ac91a35cc6878819920b4eeeda82ac4d90..8a8f1a1a41523f93540c1f1248099fc29a2519de 100644 GIT binary patch literal 3091 zcmeH@KPZH89EUk|y)m$;i>{86=~B`y6y12ax_2N^Oa>xH_r8NcY%-|ZEXUyLx?->q zb+bWT8BP8Uq6|8NPCof9&-h!_@7vS2XL^Q@m+%r^TUR6oN+nha>nJZZ?jK-Iz@Klha@;?C71P260W?G#`+C0`!gnJ1%Ndt5E_Z#KeZFRMq!Lb% zlfgO}Tdt9f<2-q~9wugg#^sF58J9CIXI##>-1Tkti8VUN*)Y&OR{FpH7oJfsxc~qF literal 4819 zcmeH@&r8z*07q%X{IZHVl!`ILXe5M0BD*L!6oN#_5v3+29Tp~zrns+6L=X+CgS1;0 zHE6U_0|j9Y3p)hT!5`G2z(ZMSq0@=VJebnw`2KM&*pk8I?0CXH;%? zx!StVho|n6k{&;aehHA^ttdHP;U$mVLnQqC2$^2oC5*}$l`|@5RL-cJQ8}Y>M&)*w ztF8NNwyu#(+Z^$krDV_>Cj)t1B=w-4OwBZs>SPmPRL-cJQ8}Y>M&*pk8I?0Cx4T?z z-RHgAwIpudBx4sBNm=9`>(!{&gv`@8JQ=H${Ce2DrZ#AsGLzbqjE;&c9*NI z`+Vt{i@g5hBTruBkRR6M&*pk8I?0Cx4T?z z-RFGI4#~XVCdaJM diff --git a/onnx/backend/test/data/node/test_image_decoder_decode_jpeg2k_rgb/test_data_set_0/input_0.pb b/onnx/backend/test/data/node/test_image_decoder_decode_jpeg2k_rgb/test_data_set_0/input_0.pb index 2dfca67b041f5cd28fde79f3d6b0efca619daac1..66db10c971f7bc76eaf32994c299b2dd45aa8f93 100644 GIT binary patch delta 1786 zcmV051Rl0000W0000W00000000000000W0000Wk%L-)H7+p! zkN^q*00006ivR)tlf&l(03X5f0ttV^=K=@A>H?3n3Lj_?1ak$S08hu-1rMkSA7}^z z83>;V!SjNH=LJ77APH{>e*~w;+6zAbX#4>{4jJr$KML}oa5TRIBHx%7&%hQw&{%z- zzz%q6!R86lld%~Ikd(uIzt6yb8a~ii`~g4*_wO*ZpA1?$dI<~-$HR}$z)pSwarg=V z7OG%Fb=|q{d)SAuK|D{0K^(2V{SeE5~5f)I^vzxyO zcj})Og`+E4DXA_i5EUnRs|T~lfUH`iA`-#AxLNh-4;gWGBi+s@rEYs8bU@FHT2zd zIHkp-V+U~_>G2+0*^)SA*e5vptkVw=FF}9L!2W&*(EClmCtb&#$=L=JF>zTl?wg8< z%3y}w#xL;E%Sa5$n--l>`UTHN4bWQ-v_cuGd;5FHV2tEzSzQzyMfsAmkotcpS* z(`E#YL|-LRP}UR+SaZW-YT9yfj{qZFf7T$SM1jn!19;R1q@Mb+go;egP%C%<>)npRg>OvhJ@*G^D{&)?JK#{a z-89A)fBlnxW;}lJTgZ~CMcI2KjaZlH^|F!N0`|zQg6S(4&#;=@Ptcg?F_gs&9J|-&O8s)3EjT_cHzhyZga07C`*bAC z5J-HAUMyg4K4>}iEUvSYk|0}La>Q5Bs#sqYi~df3&zyXhbmK7|tD-}AAIE>Jz%(wG z=8gDnBlCyo8Y_;(xeOnBiFT1NTR1LNND^Tp{m)4T%-MY8JCfKT6?tjILFm@CA#fu% zAR&D&`^)m;ui?9SZ*Tt{O9=zQ+wNF}NW|_l>1_-d3hBEEz|RewC$oacKGTnvDXJ$6 zgFJ$NPJ1fKUprRf;?-UE!yuwQ zC0erGTOH8UW8@1&C+N1QfJ85NTh|UJanqcCNNgT}t1Ga!t8ww&L%j`5Ki#bbcTO cC@yDhkjUsF*_kFxxq6e~Zte9cdCr&r*)^0jc>n+a delta 1099 zcmV-R1ho6@4#Wu#2(}3j0zw32VRT_iwh56AGeRf;001Ze0|y5H000004`Xj^asdDU z0000G000DOYH%`R|4;u>051Rl0000e0000e00000000000000e0000ek%L-)G%hgz zkN^q*00003;s62vlh3de1h&O!KgZG#4^x(Z&#)8@S5?mY!|4YH1s`}23Z9P&nFYzm z(hferIQzhW0J4b%b(aZq$I=Q11s`A#3YQD@0iVal8hpW{=?V|v3?D083@no27+VPU zl<^bKpgeqGq4NX`W-V`}e#i=cV)&~9=L9g^kk6Pbd|{*F2nOE)ostX?OaMm03t07z z&yqGR58mmkcK?{;s?$8hV*2_h)HBUOp`CCPCEPaga z+wBBh_51FEA{kivuEWDpeJYJk9oE?6h3&T23xh@YCkkL zCqUH>PkMAs97hr5YW7db0hB{dbtPLQme3Jg^1VH}b2YzegioA*c7LX9erG2zXcl>| zIu{Z;Ds|dlC1P53n1*;TA27#v`Ol49d=+r&Ks=Zlw@e}(lmNUn{zYN}UvuD!a|8@Nxc61n{G=3t@4kF>zi(=4)*?(vs)~p) zB>@&~*OQwVfUM4cIp84Ua-Pc><%5UPt@9chudTyFW93fv{n!U<{Q6xtQxEWrulC zjMoc_V3Tw%i3No|4aa zHE|s4Q1<0Kf)j!w%-m&~f=6NLGwoV`(rh4wesm!=sd#{DdJc8m@Cmy~atV(iQ>d=5 z5YL9Hd`@9*P;2)N?#TN_W;;Q%glx*GoSm-vig_ofQs#~2AQ+}Z9sC~{86=~B`y6y12ax_2N^Oa>xH_r8NcY%-|ZEXUyLx?->q zb+bWT8BP8Uq6|8NPCof9&-h!_@7vS2XL^Q@m+%r^TUR6oN+nha>nJZZ?jK-Iz@Klha@;?C71P260W?G#`+C0`!gnJ1%Ndt5E_Z#KeZFRMq!Lb% zlfgO}Tdt9f<2-q~9wugg#^sF58J9CIXI##>-1Tkti8VUN*)Y&OR{FpH7oJfsxc~qF literal 4819 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 Y+x9LcJKL3%%`WnK*AC%7|6jfT1Jw<9e*gdg diff --git a/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_bgr/model.onnx b/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_bgr/model.onnx index 6278b3c7fd38457b456ef810496b5f324d79e5b7..24334e7a438eaa4b1101e873352f759c20096074 100644 GIT binary patch delta 45 vcmZ3+xQuZ^gW4jFBpEKY{L+$w(h?ydE&&cEAs#L!4h1M?c4FaT5D)KH diff --git a/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_bgr/test_data_set_0/input_0.pb b/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_bgr/test_data_set_0/input_0.pb index 1773f14db39ee32c8a7d9cf897b8f153d15f70a9..4436a575c7eefba45209a5441acbe0663d06024b 100644 GIT binary patch delta 609 zcmZ20xPgO@V-be{lM_oyVo9RcB94iClJy*HZ0u~T9PI4uoSYn7JR-b2+}u2pLc;ta zvQqMLvQjcK3MzW)3Q9W4GBO(GnmPuCCMG8G>Xx<^MmBoJCPx2nGdMGHa&q!;^GNXW zN*F21C>oIf_#tZlA7BvVU{GLC*tqosV|^_D@v7LZuXi7;aO~-yDt@JYYphDVz?Nwf zRm8sUE@%EO{GXv~z3i6lGgVa%EBvfpxo*8n*CEfGN4ql)W;*TKGTV>4w&Kx_&u4gf zQcHVh<>_6#T>ZUP_p|LBJEh(j>$RP}C-3UT{pD*v#%HJSxBIuc!Qb}!ncwzLxBm86 zy1c%i{_F9q2Q^V`mk(_(D@r)Y(PyT8VQMM6+@0`cuf(?fN}v9>W%2i!pZ6>?`f}{f zbBkBmeILKhUGX7oVNn40=BJy5j$8M1&oh3Py_vu1n~12n%7gW%CSUvg`m;@`-!e5V z(_1mK*3FtMtDJCt{`?>8{~6*or)>Fcw_?-#yH9s*GwgZHR=;&^P5pzXQ)X^u(e5+O zR($^N$117my*0`vpH0LkPB{H(Vz$C_`FGdZB4>s6`X|Tr?3AB6^>%Ddw!1}(#^;L* zHP%h6zQ1p|_mZripZ6F3z5n>v@38VCx%P4lSJv0u-=kDJyDD$0#ktzolm9cc9Cz>k z8@Ax&yxqwY(!Z>lr~0vVnc4D(vuAT`^<0+D!Q!KG@UZ4P!&~bO4{1eg{Tko)>f3c+ ct5*_H@$rj3TI^h^GTZaTyDd?fH~!xQ0O)QE-2eap delta 1767 zcma)*`B%~j7seSk+{v*L#swWU%_W^iO??$+a@W+zv2fQRr77GZ_vL%uCN+^{jMS4G zk#EPqbN zC7>Wq5-FNk115^HXK8#NP9@>nx2#c|?H%^r&cZa|LlcN=ac#IqHS!QpE~ zSHJX}T(b)6!<>Z@Pt{rm%moGJI5)S&YuPgL7LaJcCBxeZ^V2`RG@@Fe)k|y5{o7+^ zP0c6{T+IAeROQ72jKGv|a8 zHj|x&aF-Djagzk@n&I`?OW^E2jm&r>t+Shc41#sZ%Hbsk4Fgie$?>anCq#53*3b(e zAhq3m1d1ETIhp44R`TPlKJ1)LQ{{`d4E-MZaC!}P^7U*C1G$m6Vyhd(CzVJd_y8G2 zH}xnCSX}&IXX07Lv(Gr3@}L5TDfLz88+2_NlxgzEZJrWoTR~YXmB-12Cd=(nNmxD0 z9KYz%6Mr?4EL>JDMuz?|U4buYu!2H^dX4-mZY7Y(_}tFar`eH0yZI8Cnv2*=63o|H zXWq$VvrZ3c)6JjRt~aE&qP=v1Zxt3E4I5-^)%VSoLz~47)ehA{3(#lth&5Fe_YCn!+gtuc=4P@|!Lrd|$e~5Nm z&1n<)y2Y5wL6z@zg`Q5>^d+md=pSG8{w`A^ts>R)C*>fc4nX-Ldt~(?X3sJ=<*;JEhG)tRa@w z$z-_CEdLw7N<+LfJT3?QT+KSCS)7)jH$i+pyBvVCXO2Nz=7r=kN^*(Yzv|KmV{jwK z>p;tQiR_2d_d-J5tJPYzwcw{ zO@qEfXKRPlG@x3ZL|2Eb&r>n_+oz;WOip~ROYdudqb}Afr;UQkrA_PD0|Sc;Zrcu> zm|ovwvE5R6b_!t4hnvcZOPY#1#igTOWfhnEg$eJhi2=sl{N>PMY%ge`uu91yE~Teu3p)zvI99jK#cTll7E=;x?}Mmgvb}4)Muhb+8Hqv((`<++y}MaEKd=UM z5nwnaT9DyNc>7Ev8*u6cGMuQ6jYO?GRs621yFWqNv&P%?%wo^iT}H)}^SAL;scFA) z7*!8@UCgQ~#{GmHOUHzFTc4F#1Nm2j__CZR_jvoYL9VF?PE=o5j_Bl7wG0sKvA;s5{u diff --git a/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_bgr/test_data_set_0/output_0.pb b/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_bgr/test_data_set_0/output_0.pb index bdce5b58386638490ea838c32aafdc17f4417548..9bf17faea46fe5987904f42795bb05240dd32b7b 100644 GIT binary patch literal 3091 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 O{{b-xX;Gjk3;qv6kUjSR literal 4819 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 diff --git a/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_grayscale/model.onnx b/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_grayscale/model.onnx index 61b1beb83fa36270c7b1275040edcefde7f3a47a..4a643cede44636e7354cbac45f08a6ce293d5794 100644 GIT binary patch delta 45 vcmdnQxQTH>kJ=)RBpEKY{L+$w(h?ydE&&cEAs#L!4h1M?bYkIR5D)kJ@~}BpEKY{L+$w(h?ydE&&cEAs#L!4h<+~bYkIR5D)h diff --git a/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_grayscale/test_data_set_0/input_0.pb b/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_grayscale/test_data_set_0/input_0.pb index 1773f14db39ee32c8a7d9cf897b8f153d15f70a9..4436a575c7eefba45209a5441acbe0663d06024b 100644 GIT binary patch delta 609 zcmZ20xPgO@V-be{lM_oyVo9RcB94iClJy*HZ0u~T9PI4uoSYn7JR-b2+}u2pLc;ta zvQqMLvQjcK3MzW)3Q9W4GBO(GnmPuCCMG8G>Xx<^MmBoJCPx2nGdMGHa&q!;^GNXW zN*F21C>oIf_#tZlA7BvVU{GLC*tqosV|^_D@v7LZuXi7;aO~-yDt@JYYphDVz?Nwf zRm8sUE@%EO{GXv~z3i6lGgVa%EBvfpxo*8n*CEfGN4ql)W;*TKGTV>4w&Kx_&u4gf zQcHVh<>_6#T>ZUP_p|LBJEh(j>$RP}C-3UT{pD*v#%HJSxBIuc!Qb}!ncwzLxBm86 zy1c%i{_F9q2Q^V`mk(_(D@r)Y(PyT8VQMM6+@0`cuf(?fN}v9>W%2i!pZ6>?`f}{f zbBkBmeILKhUGX7oVNn40=BJy5j$8M1&oh3Py_vu1n~12n%7gW%CSUvg`m;@`-!e5V z(_1mK*3FtMtDJCt{`?>8{~6*or)>Fcw_?-#yH9s*GwgZHR=;&^P5pzXQ)X^u(e5+O zR($^N$117my*0`vpH0LkPB{H(Vz$C_`FGdZB4>s6`X|Tr?3AB6^>%Ddw!1}(#^;L* zHP%h6zQ1p|_mZripZ6F3z5n>v@38VCx%P4lSJv0u-=kDJyDD$0#ktzolm9cc9Cz>k z8@Ax&yxqwY(!Z>lr~0vVnc4D(vuAT`^<0+D!Q!KG@UZ4P!&~bO4{1eg{Tko)>f3c+ ct5*_H@$rj3TI^h^GTZaTyDd?fH~!xQ0O)QE-2eap delta 1767 zcma)*`B%~j7seSk+{v*L#swWU%_W^iO??$+a@W+zv2fQRr77GZ_vL%uCN+^{jMS4G zk#EPqbN zC7>Wq5-FNk115^HXK8#NP9@>nx2#c|?H%^r&cZa|LlcN=ac#IqHS!QpE~ zSHJX}T(b)6!<>Z@Pt{rm%moGJI5)S&YuPgL7LaJcCBxeZ^V2`RG@@Fe)k|y5{o7+^ zP0c6{T+IAeROQ72jKGv|a8 zHj|x&aF-Djagzk@n&I`?OW^E2jm&r>t+Shc41#sZ%Hbsk4Fgie$?>anCq#53*3b(e zAhq3m1d1ETIhp44R`TPlKJ1)LQ{{`d4E-MZaC!}P^7U*C1G$m6Vyhd(CzVJd_y8G2 zH}xnCSX}&IXX07Lv(Gr3@}L5TDfLz88+2_NlxgzEZJrWoTR~YXmB-12Cd=(nNmxD0 z9KYz%6Mr?4EL>JDMuz?|U4buYu!2H^dX4-mZY7Y(_}tFar`eH0yZI8Cnv2*=63o|H zXWq$VvrZ3c)6JjRt~aE&qP=v1Zxt3E4I5-^)%VSoLz~47)ehA{3(#lth&5Fe_YCn!+gtuc=4P@|!Lrd|$e~5Nm z&1n<)y2Y5wL6z@zg`Q5>^d+md=pSG8{w`A^ts>R)C*>fc4nX-Ldt~(?X3sJ=<*;JEhG)tRa@w z$z-_CEdLw7N<+LfJT3?QT+KSCS)7)jH$i+pyBvVCXO2Nz=7r=kN^*(Yzv|KmV{jwK z>p;tQiR_2d_d-J5tJPYzwcw{ zO@qEfXKRPlG@x3ZL|2Eb&r>n_+oz;WOip~ROYdudqb}Afr;UQkrA_PD0|Sc;Zrcu> zm|ovwvE5R6b_!t4hnvcZOPY#1#igTOWfhnEg$eJhi2=sl{N>PMY%ge`uu91yE~Teu3p)zvI99jK#cTll7E=;x?}Mmgvb}4)Muhb+8Hqv((`<++y}MaEKd=UM z5nwnaT9DyNc>7Ev8*u6cGMuQ6jYO?GRs621yFWqNv&P%?%wo^iT}H)}^SAL;scFA) z7*!8@UCgQ~#{GmHOUHzFTc4F#1Nm2j__CZR_jvoYL9VF?PE=o5j_Bl7wG0sKvA;s5{u diff --git a/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_grayscale/test_data_set_0/output_0.pb b/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_grayscale/test_data_set_0/output_0.pb index 7117d4fc04b..763045579db 100644 --- a/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_grayscale/test_data_set_0/output_0.pb +++ b/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_grayscale/test_data_set_0/output_0.pb @@ -1 +1,10 @@ -((BoutputJ :9999srsqu65538OPLRM89:98vqtwl74753ONPPP7:998upvrv27655ONOMN89:98wrptt43248NQOON;:888rwtrs38:51PPMNQ^\b`[iba`_bdghd94598IMKJOxzz`]a``abegcecaag39968OMLNJz~|y_`]_`cbcaadedf`<6876JKNLJ{{||__^_^ebcccddcdb97767NLLJK}|||}_]b_^dcddbaedef57876KLLMM}{{{}}}}~b]_``eb__eDJJHH~y~x^]c\\acdcaIGFGG|z~~_^_^acabaaIIHIJ|~{|````\acaaeDHHGE|{|~]_^]caacc^KGFIJb`cc_gfgeg`abbbgfgfebcca`fegdha`bcbgfefgcabb_eehdf–nkkjncdddfqpoqqLLOMMSROQTmknjleedccooqopNOMOMNQRSNkkmnkdbdeepqpqoOMNMMPSORQmlkljfdddcpoporLONOOQQRPShqimncccfaroqpoNNLNNQPQPPbdabf½ΫQVTVSbbeaaĿͬV[QT[eafdcŠʮXWWWQbc_bbͰVUTZWcfdbcĿͫTXUVU<8=:>։^]\^_=<>?=spstr<;9=8Ў__\`[=??=@qrrrr;;:=;ԇ^^_^]==<>@qsrsq9::<:ԋ]]\^\>?D8>qsvpr=>;;9э``^`^=>;A@qqmst)+*,/றTWVVXuursrYZ[YY--,,,ݮYWWVVssrwuZ[ZXZ+++,+޲WTWXWtvust[YW]Y,+,-+యUYYTVwtrsuYZ]X]-+,-*ޯYWTYXrsuusY[YW[ \ No newline at end of file +  BoutputJ0?3=-|pskw;5<=Azgvws<388:vnuzr ;E4='s|oqu D5(=Lpwfls7454.VTWW[XY]XZimVYpĬmbbmj8566-PKMPX\_d_]hZavff_dfb31692UPQGSZ_a^ZcegY\`mgY`5863:IQOKQbdXZbedj^`fh\jW /32/7GOMQF[`^d\f^cbpjmcma6:96=LSQTOx̾}y{ +69849GLIGC|ryyzw +6;:6KH diff --git a/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_rgb/test_data_set_0/input_0.pb b/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_rgb/test_data_set_0/input_0.pb index 1773f14db39ee32c8a7d9cf897b8f153d15f70a9..4436a575c7eefba45209a5441acbe0663d06024b 100644 GIT binary patch delta 609 zcmZ20xPgO@V-be{lM_oyVo9RcB94iClJy*HZ0u~T9PI4uoSYn7JR-b2+}u2pLc;ta zvQqMLvQjcK3MzW)3Q9W4GBO(GnmPuCCMG8G>Xx<^MmBoJCPx2nGdMGHa&q!;^GNXW zN*F21C>oIf_#tZlA7BvVU{GLC*tqosV|^_D@v7LZuXi7;aO~-yDt@JYYphDVz?Nwf zRm8sUE@%EO{GXv~z3i6lGgVa%EBvfpxo*8n*CEfGN4ql)W;*TKGTV>4w&Kx_&u4gf zQcHVh<>_6#T>ZUP_p|LBJEh(j>$RP}C-3UT{pD*v#%HJSxBIuc!Qb}!ncwzLxBm86 zy1c%i{_F9q2Q^V`mk(_(D@r)Y(PyT8VQMM6+@0`cuf(?fN}v9>W%2i!pZ6>?`f}{f zbBkBmeILKhUGX7oVNn40=BJy5j$8M1&oh3Py_vu1n~12n%7gW%CSUvg`m;@`-!e5V z(_1mK*3FtMtDJCt{`?>8{~6*or)>Fcw_?-#yH9s*GwgZHR=;&^P5pzXQ)X^u(e5+O zR($^N$117my*0`vpH0LkPB{H(Vz$C_`FGdZB4>s6`X|Tr?3AB6^>%Ddw!1}(#^;L* zHP%h6zQ1p|_mZripZ6F3z5n>v@38VCx%P4lSJv0u-=kDJyDD$0#ktzolm9cc9Cz>k z8@Ax&yxqwY(!Z>lr~0vVnc4D(vuAT`^<0+D!Q!KG@UZ4P!&~bO4{1eg{Tko)>f3c+ ct5*_H@$rj3TI^h^GTZaTyDd?fH~!xQ0O)QE-2eap delta 1767 zcma)*`B%~j7seSk+{v*L#swWU%_W^iO??$+a@W+zv2fQRr77GZ_vL%uCN+^{jMS4G zk#EPqbN zC7>Wq5-FNk115^HXK8#NP9@>nx2#c|?H%^r&cZa|LlcN=ac#IqHS!QpE~ zSHJX}T(b)6!<>Z@Pt{rm%moGJI5)S&YuPgL7LaJcCBxeZ^V2`RG@@Fe)k|y5{o7+^ zP0c6{T+IAeROQ72jKGv|a8 zHj|x&aF-Djagzk@n&I`?OW^E2jm&r>t+Shc41#sZ%Hbsk4Fgie$?>anCq#53*3b(e zAhq3m1d1ETIhp44R`TPlKJ1)LQ{{`d4E-MZaC!}P^7U*C1G$m6Vyhd(CzVJd_y8G2 zH}xnCSX}&IXX07Lv(Gr3@}L5TDfLz88+2_NlxgzEZJrWoTR~YXmB-12Cd=(nNmxD0 z9KYz%6Mr?4EL>JDMuz?|U4buYu!2H^dX4-mZY7Y(_}tFar`eH0yZI8Cnv2*=63o|H zXWq$VvrZ3c)6JjRt~aE&qP=v1Zxt3E4I5-^)%VSoLz~47)ehA{3(#lth&5Fe_YCn!+gtuc=4P@|!Lrd|$e~5Nm z&1n<)y2Y5wL6z@zg`Q5>^d+md=pSG8{w`A^ts>R)C*>fc4nX-Ldt~(?X3sJ=<*;JEhG)tRa@w z$z-_CEdLw7N<+LfJT3?QT+KSCS)7)jH$i+pyBvVCXO2Nz=7r=kN^*(Yzv|KmV{jwK z>p;tQiR_2d_d-J5tJPYzwcw{ zO@qEfXKRPlG@x3ZL|2Eb&r>n_+oz;WOip~ROYdudqb}Afr;UQkrA_PD0|Sc;Zrcu> zm|ovwvE5R6b_!t4hnvcZOPY#1#igTOWfhnEg$eJhi2=sl{N>PMY%ge`uu91yE~Teu3p)zvI99jK#cTll7E=;x?}Mmgvb}4)Muhb+8Hqv((`<++y}MaEKd=UM z5nwnaT9DyNc>7Ev8*u6cGMuQ6jYO?GRs621yFWqNv&P%?%wo^iT}H)}^SAL;scFA) z7*!8@UCgQ~#{GmHOUHzFTc4F#1Nm2j__CZR_jvoYL9VF?PE=o5j_Bl7wG0sKvA;s5{u diff --git a/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_rgb/test_data_set_0/output_0.pb b/onnx/backend/test/data/node/test_image_decoder_decode_jpeg_rgb/test_data_set_0/output_0.pb index bb2d5aa1168b3b8a939a0c0a4b37462b149869bf..087c56793b559ac60625e67ba1917b8ced4425df 100644 GIT binary patch literal 3091 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 diff --git a/onnx/backend/test/data/node/test_image_decoder_decode_png_rgb/model.onnx b/onnx/backend/test/data/node/test_image_decoder_decode_png_rgb/model.onnx index b33613c0076d28216df6e978b6dc17a5338d678f..42cb3f474fff897cac24037cca6e2b3d8e58b6e8 100644 GIT binary patch delta 28 hcmZ3=xRh~1J<|@RiH)NC3S3MaAk6HEakt zF(=f>stm5Xa<#ZK5cS<+3pvLNEXiYF;;XZ&~1Z9G#O zJ-6pf>1Kz{CwGhYDHcmd$SW7`{M9Sj<}AQl%N_B=Ct~8yMe!CBcjov`JrU#lUnJ$- zeS@@=yc_yrBAb6pNX6 N22WQ%mvv4FO#sjhg4zH8 literal 1366 zcmc(f*;f;H0EHt+6T*@iq=BkHW>OoFgDfIPzyKKr0xkgomBpfo9zdbAQOo8+fl2tW ziPVY_1JxiX9yQ{EAP{Sux?4`HA})XgifCkOz(fJ5{Riq}AMU*m-^2HIX}9T+2{w1D zaF=l9ZF*6pfNw>gPp42QR^efI)Ted+H#Cz^Z7O&7qfpEk;W#fQ)_l$N2xq;Ra%3^7w#+ir4Pl9 z4n*iT1}YDSH_fo#HtxXv^wJ+}*R#+JJ5jaGhOq1?N7}| z7W2}$O4b+WsIYtAK0J6GUFek^KyYN(M20OZy?!N>(BTU5bUboZvy&$B5GGq)!{{@w zhuR&?z|jU9vQtkNz085eZASRsF?G;42VVte<-6eD^XF)jPS0(eY|FQAcEsC=DcEYA z3-K9ssA&WUf6i6h@hKhZX0UpkmcXjY1Ts6BiN32Y^Qg_^kSB&6HCq>iPK;2YQO04~ zrh9JMwxt&E)E}WT&2RHW4>QVBE?BX145q+PxQbBz#T54(k$}C)?E5J%%{{lZ^1Yu* z;r6LHL)u&mXF@YNYzC+$$N~DUFv36rQHBMGZgJipG{wCONcx(2@&-^rRkq` z7kBOIf|_u9`0VbGtkd(r0Ufk9E=LlZHO-TCjI1Z?Z%EHCQiGIkS9NrC5V5fk+0*_z2&w@3DR>D;Tthu^@IO&&1Yq5q8)olQhTTaBbo}FmZ5^HFDZ=hnh z-?rkC3ThmJ(cH_H;~km#9uIa4$j;yApsG>+rM+_W=T1A6$;AegmB`2U0;oQ_qp0iZ z@*vVM1DeXC@rNHUQo#q)kG;siUURkgs4tvgM+HWeljfbcI4ph>h@GHST#J_)U-|Q7 zgItbCr=`HX2KKW60UWNgfJ+>azc<{2X7_Mt{rd-5H`^V_?){Rn^fdPN&`K!zwK<_Q zE);vEBBlOS1@?vc!s^tB?9jMO`5CpTLOi{&oFvf0AhZkDLj5Phl1}Hduxx(}fRaksTHV;CPUo)+H)03~vX=2mMLi z_4#UB-)LIuM@B`0J#J}s6^f{!30Tn<_!(m;Xu2eYHg4 z{%F7PvLzbOA1Zq$|B>w4!WE6UOH)<|*wfXmKo#k)ec}a-r3-}HcXq;C$|pg~HG9SQ z^0Kka5%dE#3^v_kX_uxG4G-e@rQA;T;71X-+3&6HZ7CVDxXj+?RscGh;r|v-Q?KMt Vl{n{)C4G8GN_dC>KZkA3{|C?KZ$JP5 diff --git a/onnx/backend/test/data/node/test_image_decoder_decode_png_rgb/test_data_set_0/output_0.pb b/onnx/backend/test/data/node/test_image_decoder_decode_png_rgb/test_data_set_0/output_0.pb index 6ed563ac91a35cc6878819920b4eeeda82ac4d90..8a8f1a1a41523f93540c1f1248099fc29a2519de 100644 GIT binary patch literal 3091 zcmeH@KPZH89EUk|y)m$;i>{86=~B`y6y12ax_2N^Oa>xH_r8NcY%-|ZEXUyLx?->q zb+bWT8BP8Uq6|8NPCof9&-h!_@7vS2XL^Q@m+%r^TUR6oN+nha>nJZZ?jK-Iz@Klha@;?C71P260W?G#`+C0`!gnJ1%Ndt5E_Z#KeZFRMq!Lb% zlfgO}Tdt9f<2-q~9wugg#^sF58J9CIXI##>-1Tkti8VUN*)Y&OR{FpH7oJfsxc~qF literal 4819 zcmeH@&r8z*07q%X{IZHVl!`ILXe5M0BD*L!6oN#_5v3+29Tp~zrns+6L=X+CgS1;0 zHE6U_0|j9Y3p)hT!5`G2z(ZMSq0@=VJebnw`2KM&*pk8I?0CXH;%? zx!StVho|n6k{&;aehHA^ttdHP;U$mVLnQqC2$^2oC5*}$l`|@5RL-cJQ8}Y>M&)*w ztF8NNwyu#(+Z^$krDV_>Cj)t1B=w-4OwBZs>SPmPRL-cJQ8}Y>M&*pk8I?0Cx4T?z z-RHgAwIpudBx4sBNm=9`>(!{&gv`@8JQ=H${Ce2DrZ#AsGLzbqjE;&c9*NI z`+Vt{i@g5hBTruBkRR6M&*pk8I?0Cx4T?z z-RFGI4#~XVCdaou^bH@ZT}bgB2;yHIrFo$EpK&?k za>nJ1%Ndt5E|2;q`-}vGWX~;=V#fw~o1Y-(l_@fMF+;-r8J9CIXI##>oN+nh@~CgJ z&)1|!%E1^p>8p~Vg$h|cTqaM~4hi>XT+XnJ1%Ndt5E@xaG^-cB(SNgyI7Z+qPDF6Tf literal 4827 zcmeH@&r8z*07q#^$=4zeR+5ZL934coF?T6&C1aDr(HFMv$ob)4(yRXKdVUgyPfRs`^lriC^<9GNRCwxld&p;Fe+zM&ZwMGIiqq$ z<&4T1m0Mk|Ht+Mlqc@4GCqNP(!=$x2LCWjhd3Q8}Y>M&*pk8I?0C zXH?Fp-0E_*d7q;Xevy1zig=>u$!m9##7{mX>-VmasktEWP2VDn${Ce2DrZ#AsGLzb zqjE;&R+p>I`@DPIPm<9q>nlB;~Uk(yR<&4T1l`|@5RL-cJ zQ8}Y>tIO5qeQum}5Zj9t(&r73&AKwObi9Pz8T?FQzC)yIBuyBVGb(3P&ZwMGIiqq$ z<&4U$E?1lPx$>n!hE_e~dH)IW?eYg=pKm2=Q@_c@uao3RBu*HWGb(3P&ZwMGIiqq$ z<&4U$E?1lP`IKXu{86=~B`y6y12ax_2N^Oa>xH_r8NcY%-|ZEXUyLx?->q zb+bWT8BP8Uq6|8NPCof9&-h!_@7vS2XL^Q@m+%r^TUR6oN+nha>nJZZ?jK-Iz@Klha@;?C71P260W?G#`+C0`!gnJ1%Ndt5E_Z#KeZFRMq!Lb% zlfgO}Tdt9f<2-q~9wugg#^sF58J9CIXI##>-1Tkti8VUN*)Y&OR{FpH7oJfsxc~qF literal 4819 zcmeH@&r8z*07q%X{IZHVl!`ILXe5M0BD*L!6oN#_5v3+29Tp~zrns+6L=X+CgS1;0 zHE6U_0|j9Y3p)hT!5`G2z(ZMSq0@=VJebnw`2KM&*pk8I?0CXH;%? zx!StVho|n6k{&;aehHA^ttdHP;U$mVLnQqC2$^2oC5*}$l`|@5RL-cJQ8}Y>M&)*w ztF8NNwyu#(+Z^$krDV_>Cj)t1B=w-4OwBZs>SPmPRL-cJQ8}Y>M&*pk8I?0Cx4T?z z-RHgAwIpudBx4sBNm=9`>(!{&gv`@8JQ=H${Ce2DrZ#AsGLzbqjE;&c9*NI z`+Vt{i@g5hBTruBkRR6M&*pk8I?0Cx4T?z z-RFGI4#~XVCdaFeFIuU{}7F7w3#6XT2HiF7y~Z!tk*Ovo53 zU@Td^js^Ewe&g4(H66d)zGI)Fg8SsoN+nha>nJ1%e}sveHvp?vL4wXOIsE>%fFG-%oBN^za-B7jLR99GcIRb&bXX$ zxz~5IPfx0oY)7+Xvu2q*PYsci+z9DC9V5>EjLR99GcIRb&bXX$xz~5I&&O~-$)*O# zVRN2zP3OqM-W<8VXeZA8jLR99GcIRb&bXX$xz~5IPxX5-Ile9;edkTYxA91J6G`&g eT}zz(8J9CIXI##>oN+nha!zsYz#FCO&lIS&u)6-Ln;TJOlLxV+^{stB?UiPM@OU)WCCJbNdZ4@swJjh5F zZeGZklyOATVNUk(g!L|wMJ^0J_B}=wB0{cQZ61pRHATYom3rM(0)O(H@>ZX6>PgT| zn?wG_lg}>sJk#b=zx~93)CpEPdi{b+j;<`+mD4m|ZN;foMK9h;rAExUwp{e&-KyGz zzAH=oA5>QPnVIi-^7PV*Aiq0~-72rclcxEl<<3%hcll!$;qqy8klxGd9pxr*S7;^p7-?J=FHjSpYM6I zH9=;s#xEw%-*aDzHy@d3({DWQi>-h1oga4oi{JdQ_j|qX!=8NYb6=MDN8g%g`@YNN z=f0J~@BZvADE`giATWiUOL@ZGhfs+pdN>uUBL zY3!KXq-qd1xxwjUfACe)*r-2)i>ms#9QQ@YmOQOYew6$?Y5Jahhmnmc(E>gI;TaI)#Q_w)2jH-7x<;AJhN2pS}YMKH8Jr=muu%! zj(Pe$OCs)BO-%mDV>t22PAmVZi8tC*yHtM8Gwn;h$>usqCDJUZJwr0Bb^41=vEErP zC67&=`?BNR-1!e@@x}B#lhQL>{OrZM;-$}bRY~!;tP7ILp3MHskDb{WnC5z$4*8V| zbndc>n8dX2o7x;r%X|t(Q(XMml9+nmU0-E3S)VDL^GN;r7uhcBn_uQM@n8Nl*I)nY=h!UQ z2j#W=sTY?xF^GgNdA#$KlFE~b|GZQlIrdbkJdRistMZuRiRO~$57#kVJyH-h`PaQe zu5YV5#rJ+ti5EZNG2i%wivP-QLh5(^h&g|%>yLf2cl)mI_qiX}te^X3-}YO-?{|N$ z+F{86=~B`y6y12ax_2N^Oa>xH_r8NcY%-|ZEXUyLx?->q zb+bWT8BP8Uq6|8NPCof9&-h!_@7vS2XL^Q@m+%r^TUR6oN+nha>nJZZ?jK-Iz@Klha@;?C71P260W?G#`+C0`!gnJ1%Ndt5E_Z#KeZFRMq!Lb% zlfgO}Tdt9f<2-q~9wugg#^sF58J9CIXI##>-1Tkti8VUN*)Y&OR{FpH7oJfsxc~qF literal 4819 zcmeH@&r8z*07q%X{IZHVl!`ILXe5M0BD*L!6oN#_5v3+29Tp~zrns+6L=X+CgS1;0 zHE6U_0|j9Y3p)hT!5`G2z(ZMSq0@=VJebnw`2KM&*pk8I?0CXH;%? zx!StVho|n6k{&;aehHA^ttdHP;U$mVLnQqC2$^2oC5*}$l`|@5RL-cJQ8}Y>M&)*w ztF8NNwyu#(+Z^$krDV_>Cj)t1B=w-4OwBZs>SPmPRL-cJQ8}Y>M&*pk8I?0Cx4T?z z-RHgAwIpudBx4sBNm=9`>(!{&gv`@8JQ=H${Ce2DrZ#AsGLzbqjE;&c9*NI z`+Vt{i@g5hBTruBkRR6M&*pk8I?0Cx4T?z z-RFGI4#~XVCda delta 45 vcmZ3+xQuZ^gW3zGBpEKY{L+$w(h?ydE&&cEAs#L!4h<+~c4FaT5D)ic4JEW)@bfgPI9p=CiUZE6zEO6X<~zix<|aOAa(nZ&)?}*zieWn!+S6B1DwJ z#ZOV(&EHu1Do5H6e1Qxm$aMQ%lQ|@}^&e!Qbkwv#b{YhQ^2Rb*B5m}?{W6BR6X$3@ z%K!YSJ^ye^A*Jj2(EdC9LUU*V#uf5@p0$`aGEE&*2TF?vosom11!=XeCiPQEx5M+I z&#jIQCUTW)q6kW?RfohjK0==y@0JY##q4>vMZFh_77z8<^h4ZfO;BZ#FaAM}2^pHWcH8V_Q_G16alkajV z6X(j!0T?$)q|`qBij%cE`KJ@Q_{Mln zA~T4m!k`g$%e*7ye1P@+==xqwmZ2^Kxz|N{r=Qc&cW={~vY?r+wB*{H2?qr literal 374 zcmV-+0g3(y=mHP|LIh-CbYV*90#ZpvMqmK|09QpqP*zYlOj7{>052!N2>}1$HUa>` zdE2b4O3|Jf>@S^d+s+(L0{}o8+}#sdKd{Ch+{qm@lDp1*ZUX=yo7k*vx0l$j>VZtP zJ=wPAKkf!S#TTesR>y_ZFa{47W$+LTN|xT=S2%mlD^+mmb(%o4BRu8wM+gK3>^X}@ z`K0GJ@4tjUIu_I24;$K_KQdu&1jrnUr`Dv<_<&%Au|qsaEb4CsMFip!!%p3c^UDzV#wbn5gh1b9 z6m02vBs2v*H_9mMV}K;dwrT6xwr%@;|M`zA`==ez{|Tsg_Ts^gTVvJ@pQ9VQj$GL? z=cnP5x8&NUZRh@)GJF=!Y*@7K)ren)Puho5tJZuu@oo4#{V{9Voi`Ky8$MC*?j8H# U(u@VeC+@dNd!8IP^w01C00+jkF#rGn diff --git a/onnx/backend/test/data/node/test_image_decoder_decode_webp_rgb/test_data_set_0/output_0.pb b/onnx/backend/test/data/node/test_image_decoder_decode_webp_rgb/test_data_set_0/output_0.pb index 6ed563ac91a35cc6878819920b4eeeda82ac4d90..99629ad2c38306462f55fc8ddb8cfb4bdd33656e 100644 GIT binary patch literal 3091 zcmXYz2UL^E7RQH=8ZzJdR;yghHd&(I&h>l`q%>VA~*k+#r0| z@P5A>Ix!iW0gdE*e1_kCY54k;#r7s@{iW8+)uWqh$}g5xR-WrXf8(Jqp3qnPKi^!S zHyO!?9Wo?SVSUOWsy%`bz+)L#L?}0SsR;2#mH*dY_4y35?ECR)*xY#RIp{(0m&Jg0 zE2#IckgvB8o9oA3t}48Isl2+Pvb3ZD%ffv9=JF@x0=+$xc*Kq`m72OMm2!}7kMIoQ zC85hh)apDm>hY*Df3O>NUvwt;>;IUH`el$-0u2eES<=@wkJ; z`eq)zHE#}m3HkUfvfa0*SKTNOv>U-C5&_*oW(f?YfM zJyZzhRxH#PztPWXgofIor)Qy=U})S28X`bFK2V1rbTb0#iGs!xq0KX||IAwXc4qb8 zjMpD76He%as@a9B+WF{M+nZStd34uol3fAGu{hQ>D;De)gY{9$4Q5KhlL{^NiurEx zZd|O%c`K1B8&HJ;?IvK5yqZtb$K|geki$qC`mZLZ|=Sr9ZQOc zWCjQGLW48H!gv6_08uG`Y7#>>?a^;lK@?%s1KE}iRhUC?c4< z#OEr(E$D!B|4>)DKa%Hdoa&8Evn!rvmd`|&%|;0xF&b|dk;!DDFDHhO8y{2}8+uLz z4p31sDRjFGs&$`9ld3_Ug=Po`>r`$eE7Sum2GYGM^4p4Tf9(tVCL6h~7G#Xg2|+-{UszKksfrG=2IB!UqTAb5(VNSVqh;OZyzT2 zAUa3gm}{;T!o&oX9yhDi(rP$v(4=lStmiPQW<956J!a}Cu*M~Mxw+8-(VSpYZlF2G zyZm9LV6>>}VNu=SrE52?Cj@i3_-r1ofQK((c%795l5hYiTH_S0Too<7w9tWQoe&y2 zEk}b_dNd_Zo^in_qKWQOpRQMzpaKiTzUsq@K;p1IfYytX7xPXgz5 zN>YD5wSOqA+KA-@-!Q%o|vLU>u51Tuh|BN~XTzlV4suy)eOD-(>9Qf2L2bum%;t z0Wl!1YpJJgrKe%7uWMmufx;89oD|Iq1)2@H8ns+QdTADppMNN`Kq0e0=S;rM)MDG% z?84a8*2Kit`1ofgbCk(gU?n}ypikzL?~ddw&Zjg0KCaQ} zo(1LD+ICELgMM2rrh;eW!oldX4Apr?TIt4m6KUx~$*K35srOl&&a{-f9anF3x7_F! zUh5SKdmDbP%Fel%cCIWvtCF8nnX{99fVfo>&N>lin}BnP^$HKAu-*7Y*s5ydtJQ{0 zb*SoW4O)(7c&=JN-Z75?HQS{){_|M+GL^JUC62Kp9(MA(`gt&I_jwhgJbHUXbZb;p zdrVjhnclkE$Z3zgVK@{H0W z(dCLB+oa4_B;s$RfVa^BPZ)$pU6iiDD43R!=;CP-u^aE(<4d>|g6|57yiNf>03ZcU zGA&`OlC5!ZuE7zJ3=eLBWoflZU7bPwRpZ*iqr5^TW|2Z-iF|Y!tWW0uMm+s4+V5R- zz+#f;qwc8A2cexq;mxB_B~v6)H$Je-+qXBsv&%2?IvM;3;1nHBM1>R0BBRX7VYUoE z?+iC`p)Ie%BD)HcRfj2n{V$Twz95&GcZ7XTiTs#aJ4MTyNJxRX&7=4Cv0H{IEyGmd zLu%D{O!76S_%=IQ$Elb$8%E3b|3wN+#`;fF{O4l)=g5H*l*oHA(KjiyR!Y1uj@BN1 zt{x?9M%-^k4AdCi$;bAk;5wsy8iK+u`A3xdkutdzJkI4PW=%NfN&vsc_0DYU_>A}D zl+(n#`|u=5QUZto@IJ`nL!if}0FU=UUh5Iw(?suXnr}mrcQw#w8sf?P)tjnHbkBG}-b{iumYm;V+qdsu- z!ymwhVBCiw=T8Cd?}9znBE2U`Ufnb=VUkBZ!=sJDYD8Xb(VlG5eN<&M#Xq^D?;J9W zCEqop+_8uk&;&UNH56JMnNb^(bs0ZCPFx$c-5N1ipF}P`B>W(@(qFyhU%a!@W?#ux-RJlJdYP?w)ykO=49J zS3qV}N2duw3M=pn4@htC;Xd6(|2}N7dOryEAGXqB_0nR^vLem0LhZ^6+LsFv71^p+ z@)6~^T32#$X@nrYM+(O)orKSf45@O7Xu~8-Aec|I*>f0X2e0TtULo~-5v8awTzJ7} zyE_)@3WSO}H#*V1NBn+u$+*fOx$KIVZ9~ws89Wfag#phr2`?(~M zl}}}qq?1a^v78#MlyL>#vRvA8V|H(N1ce)fV+T8=2U+C%AbKM7CjAaQA^bSywYSS( z`!E1vK=j1sA%jg>C?LP_U(R^SN^0v~1tP!D~;B(^_;xo3TNy*uXAd-1U^h zIoSuYAM8H6DxI~4NV%IBLM!)jDkiv9dD?g5v9ko^GY6$@+|lPYvV-n=M*)x)lREVG zLAkF#DSX|7_(KA>1u}mBNw~VFdqL{f(w?g?ltX)EUAonrd(`Z1TOj+W`>M`KOIZ*0|GTPsgG87Y1DU+(iya-a7rewNXF zFYd4nGX6MN|6o)H8(dV~y-pRO1s= z*PL1Vj9J}d`0uR4JykD7{XFcBa zria4=H_Jy(rc*A)H{3DG@cF<2BnQ9|02Ba_|K3*wa9JS&myU4ufD2%mog4-Be(&s& z0^+-XgdC7i1d@tCWIycQzVCx@D+_<+02~8A6##Vr;KPTP!VxMCL|}tU2_PW?-#3t! zfcF%alH7S4V5b6r<$nN@qCix1r=S!Q*;xeJP7CY9qwpNK122UqNr*~{18GSSQP^`B Hc#Ho61gkoj literal 4819 zcmeH@&r8z*07q%X{IZHVl!`ILXe5M0BD*L!6oN#_5v3+29Tp~zrns+6L=X+CgS1;0 zHE6U_0|j9Y3p)hT!5`G2z(ZMSq0@=VJebnw`2KM&*pk8I?0CXH;%? zx!StVho|n6k{&;aehHA^ttdHP;U$mVLnQqC2$^2oC5*}$l`|@5RL-cJQ8}Y>M&)*w ztF8NNwyu#(+Z^$krDV_>Cj)t1B=w-4OwBZs>SPmPRL-cJQ8}Y>M&*pk8I?0Cx4T?z z-RHgAwIpudBx4sBNm=9`>(!{&gv`@8JQ=H${Ce2DrZ#AsGLzbqjE;&c9*NI z`+Vt{i@g5hBTruBkRR6M&*pk8I?0Cx4T?z z-RFGI4#~XVCda tuple[np.ndarray]: # type: ignore try: - # pylint: disable=import-outside-toplevel` - import cv2 + import PIL.Image # pylint: disable=import-outside-toplevel except ImportError as e: raise ImportError( - "opencv-python must be installed to use the reference implementation of the ImageDecoder operator" + "Pillow must be installed to use the reference implementation of the ImageDecoder operator" ) from e - decoded = None + img = PIL.Image.open(io.BytesIO(encoded.tobytes())) if pixel_format == "BGR": - decoded = cv2.imdecode(encoded, cv2.IMREAD_COLOR) + decoded = np.array(img)[:, :, ::-1] elif pixel_format == "RGB": - decoded = cv2.imdecode(encoded, cv2.IMREAD_COLOR) - decoded = cv2.cvtColor(decoded, cv2.COLOR_BGR2RGB) + decoded = np.array(img) elif pixel_format == "Grayscale": - decoded = cv2.imdecode(encoded, cv2.IMREAD_GRAYSCALE) + img = img.convert("L") + decoded = np.array(img) decoded = np.expand_dims(decoded, axis=2) # (H, W) to (H, W, 1) else: - raise RuntimeError(f"pixel_format={pixel_format!r} is not supported.") + raise ValueError(f"pixel_format={pixel_format!r} is not supported.") return (decoded,) diff --git a/onnx/test/reference_evaluator_backend_test.py b/onnx/test/reference_evaluator_backend_test.py index 65336296cc8..4d924eda28d 100644 --- a/onnx/test/reference_evaluator_backend_test.py +++ b/onnx/test/reference_evaluator_backend_test.py @@ -71,12 +71,6 @@ "test__simple_gradient_of_add_and_mul", # gradient not implemented } -if version(npver) < version("1.21.5"): - SKIP_TESTS |= { - "test_cast_FLOAT_to_BFLOAT16", - "test_castlike_FLOAT_to_BFLOAT16", - "test_castlike_FLOAT_to_BFLOAT16_expanded", - } if version(npver) < version("1.21.5"): SKIP_TESTS |= { "test_cast_FLOAT_to_BFLOAT16", @@ -88,6 +82,15 @@ "test_regex_full_match_basic", "test_regex_full_match_email_domain", "test_regex_full_match_empty", + "test_image_decoder_decode_jpeg_rgb", + "test_image_decoder_decode_jpeg_grayscale", + "test_image_decoder_decode_jpeg_bgr", + "test_image_decoder_decode_jpeg2k_rgb", + "test_image_decoder_decode_bmp_rgb", + "test_image_decoder_decode_png_rgb", + "test_image_decoder_decode_tiff_rgb", + "test_image_decoder_decode_webp_rgb", + "test_image_decoder_decode_pnm_rgb", } @@ -577,19 +580,6 @@ def run_fct(obj, *inputs, verbose=0): # pylint: disable=W0613 got = obj.run(None, feeds) return got - # def test_onnx_test_run_test_abs(self): - # done = 0 - # for te in enumerate_onnx_tests("node", lambda folder: folder == "test_abs"): - # self.assertIn(te.name, repr(te)) - # self.assertGreater(len(te), 0) - # te.run( - # TestOnnxBackEndWithReferenceEvaluator.load_fct, - # TestOnnxBackEndWithReferenceEvaluator.run_fct, - # comment="[runtime=ReferenceEvaluator]", - # ) - # done += 1 - # self.assertEqual(done, 1) - def common_test_onnx_test_run( self, te, diff --git a/onnx/test/test_backend_reference.py b/onnx/test/test_backend_reference.py index 3627060f4bd..531c3b527a1 100644 --- a/onnx/test/test_backend_reference.py +++ b/onnx/test/test_backend_reference.py @@ -173,11 +173,12 @@ def run_node(cls, node, inputs, device=None, outputs_info=None, **kwargs): # The following tests fail due to discrepancies (small but still higher than 1e-7). backend_test.exclude("test_adam_multiple") # 1e-2 -# Currently google-re2 is not supported on Win32 and is required for the reference implementation of RegexFullMatch. +# Currently google-re2/Pillow is not supported on Win32 and is required for the reference implementation of RegexFullMatch. if sys.platform == "win32": backend_test.exclude("test_regex_full_match_basic_cpu") backend_test.exclude("test_regex_full_match_email_domain_cpu") backend_test.exclude("test_regex_full_match_empty_cpu") + backend_test.exclude("test_image_decoder_decode_") # import all test cases at global scope to make them visible to python.unittest globals().update(backend_test.test_cases) diff --git a/pyproject_pylint.toml b/pyproject_pylint.toml index 9752a67beec..572f2b70456 100644 --- a/pyproject_pylint.toml +++ b/pyproject_pylint.toml @@ -3,11 +3,12 @@ [tool.pylint.messages_control] disable = [ + "arguments-differ", # The reference runtime tend to use inheritance and redefine methods. "cyclic-import", "fixme", "format", "import-error", - "invalid-name", # TODO: Add naming guidance and enable this check. + "invalid-name", # TODO: Add naming guidance and enable this check. "line-too-long", "missing-docstring", "no-else-return", @@ -20,7 +21,7 @@ disable = [ "too-many-locals", "too-many-public-methods", "too-many-return-statements", - "use-dict-literal", # Dict literals are sometimes preferable when creating kwargs + "use-dict-literal", # Dict literals are sometimes preferable when creating kwargs "useless-return", "wrong-import-order", ] diff --git a/requirements-reference.txt b/requirements-reference.txt index d03b30f5747..08511fa533e 100644 --- a/requirements-reference.txt +++ b/requirements-reference.txt @@ -1,2 +1,2 @@ google-re2 -opencv-python \ No newline at end of file +Pillow