!+7x
z)5N=M{2ih0v*L{|o~`~pOk!n>0y+SFd_jBG*h8Kb=v#*#L_VcCz|x_HnYa8ezy+wV
zieiSZ!T2T1kP4eS)t?A!;L6yV=5@TCH?b>K3}
zc|&0{D>p!|TmG{K6_==Aw>x8gr%FidlHXVkA1W56%;83TWE5VB(Lh@Zmx@ljhGG>g
z-VL7hy(IAVl)!yx*>8C#f3!TtktKtTf5$#qtIh7tF8^!6q8E{_{SMwE-Q
z(ii6uCuF?jPz(*yB$k9B5Z0I?3$-QWXxStLz)2%AoW^;Rd?>}S?bbyIs^D)3xjC?O
zmY&I|3e&b*RNp8EOv~6^_5$em~Us$~5f>%jSViF`d^%06?uB^Gaqn
z?tKMyyNe+Y333DhR_rSWfnT|GWa#q>hjD!`?K>K6NAs^6HVUG?Y|gqWMY4=Y((Qeu
zp4lUgnARVH1o3sPei0y2hY0xeXvuU^0$}{4X`s!z#ME~0cWaa7dvY0V&U_|jj51x3
zg2X=V*A^RA*bIa3%~uxp+lkP3wvQDZvp25y@zI2Ao9{Jqlu)JTBrf#U>@wt_y
zX44TfS>dECMC?Sq#U3ZQ5^VqA4g5{N(4ky!!<_pU5gRz=8y|hl=htXike)07m8su_9jD4s9=Si#7frrIEQtQ%1)-|05
z&Fprf5~8HY`x3`27Aq;t=&IEMvtRlt`BX5Wo|&a8XHWcWlhS=?xHY?biW366>p=NX
z(LeX}3;3$jJNb=#73rsVyOKmmOVG737WTsaSK}c^yG`>vke8S1tqezXYryWGNw3-q
zc1e|XeD$D@_wS>ILl`@lc-B!**X5~*{J;)`lc^ToenN-dq51T@UJQ&fKzSO(814uY
z_=|qP>46r-=VV}~7RpR^U*tNNL_Lf7`?#!j9?{C2bBg)=QNC!|BfDpV*SB|>uP36e
z;H!xn!HG{Mr&l_91%b_C=-?`1%vHG;O_?qFeK#M9-;82!T?aX5D!bMvLJ|Dcq=HHa
zH=T-sNAIvuEDOX0xcTg>@?-TWheJ(A7{@)WybNzhB4>OvW6^w9Dr!Tw)`
z1?Z$3`uzq!kX`xdP!l^Z3&W6}Y*d|Og5;Kg=K)s373@DB?R8#NXBKbgYiRnI7vPhX
z>8{&!f3ry3Nw2P8kO@O<$`GNjF8~5-5On^6uXXJf&6jMEjzE}!mHC6%K_)!*BzfuZz6>@{I(7pW8VSWFV
zH%Nj=HJbul61R(rg%G4~7+)A0gnacwcnLsoI^CDW#>+r#COwC;+*cD~$A*{V3R8Jn
z0Cfg+ufrXdHAmk3rz}c9K=b&nd6S*#ybvE|d8kmRaHiW~%O3>bV@kfRT{LEXoC<7G
z6`EADb7qlMF)T~;I_*Mi4FXXLfd)wyYzwsjrB-h-zu4PKoCRlTQoZs{oqegm%p+m_
zT6tXmaZhsK59jVwv5fg(z>BFpNW216IsAv?(J2|RZ5{_uRUo*#o^q)TZM48S3otKI
z=v^QNJl~@?i2I~&St^{T?k4k~D2P*~
zF_$a5R63JUatj^w>i10fYN93B;@BR)$*`wqxWFKB1-;70d`px~N=Gkja}qyby5x7-
z+6%(~$FZFx^}Gge^FmpP)c4FvH1DCb-UsMTdv
zd7{me@T$0Z9j(R6_|KZgTl+~xI(!v$@7N>b>`|c%fQ#i{%VT@VK5|@CvNVG-!$Kh`
zVRnb-cd95C22cOg*DRXkPO-$7R!21XU?(JYvfbyN<5TW2324;ncw*%2p2r0p3`Amw
z7ECtAtF9t=-T35^oolKKRG?X!x%0*FP8l+nem1e_LgDm3my4G_!*~LIbg?`t&y3%`
z&@ALcCAp}_9NBsV*ns1(MGg8Pn09j14F&M3k5L>Oo8}$#sgNQ(5?`W-Nc3dVEnTgt
z0)jpyay;P@u3}7pb%C(7cM5_4sZR!M==C5%Bs_p8J4$xYf>tL%ZQ=Rb@YABZD(MG!
zyDp|E_Tetj*coAT4U5Y0O=G_X9PFB}
zkN*W2RsD8^qO==ZG!mVMIxSFq$=ih%MKdovOEPP~`pCaVPRzdCnjkO7*iLY#^S<1q
zmIX$j{w!hXC3Y=vda}kZ0ad50O^z5a*~z8b=Mh!SMj5_;%}w})%Dpdz6J(UcM*-8+s!`m=XnxgfhY%k!Nxun^TS~m!!$A%g1(XE4Nd;7-+sWvl
z`M+{Jw0za!nmgY97jSkW8av2HYw_6j`0O{Nmt6+9bA$J%&GZY2!hPb@l-s7yCs%1k
z`A6&wK4Md{J~tfGD3(Wg%yd@=0lO1ab@mX|Z{`_Qo{Sr~>->Q#&3tork6(LU8gAVH
zz-67_GV)s9G8ERrX_NDk9<~9e_u>mIb?Vbwp?Vl|Bk!GE&!k1=2Y4T>HsoR5E?)0w
z!qU%US(0Fl@F!i
zVvWcKw7c#BxyLkbvVJQ)b|}BROa^jIBE9@^T+=j4RN>mD=udkaN~yD^4q%_1!rMmU
zQZ9U1Yy<|l3S~uO_f+Bg&+ZSRna(E1-!W-JDSvJq8|!Pm$co6?5#Q6{dPf+!|6&eN
z%b@!QJ7L@#7O94Qr6Fv988W%tr#XD2=q4UR0QZWXm$pI|HUyR1-ULWO09J
ztYSQsemVe(TPj&m>4=NYC8KRt=%`pjQOnLSwDD<7Cso4;?3+6243^|Qi@<8gW;hHj
zY+ucN|CJGR<tMKSq%XtWuO#jJ}
zx3uF`aX=Yf+o#y5&^#y&+TlwkbSm4MBQj{;+qS}{Jq}WfWBOBB;mxn~UP8PM+Ge`B
z?P=G-dp0kgjr(c7YiQe=f;g0A9ZFG@r2Q%!C^10NgDzlMZYYTkVtsG0I*U8qOFCe@
zwb56Yn*HvZ%~V7g2zB4P0wNu&6eihIMY|?Gx@@Ju1{B>hoFj;|Jl!!chN-;Y+l0d$
zcrKNI%E_ehZId)aE|!4SB-gP+$C--~@r?Ase-9rAq(wvU$Z4PEx0^rVs~%A#xJ${=
zRFeAcfT_$!V?6gNm96+wi!jB3hy;2XTz4O(bLg!&+jmik$^_Rb3HO1>3ue^Y
zS;n00&qCKYHn(4Ke+|*l&owvrhc0_m;At05DLUi?ZIQu;3=U>g;iC<>$6Dk4-^IScob%
zUenlYTBGwAP(YD!ecW&fySEQ=t7j^$C1_Z0
z2Gf0S^$_j6yvc%b(LW9G-{Ol6o{8gE3&P^ltbevq_T(+gf?$6J55>Z~$XS7Xv9qZoA9;hjG0
z`Q25_zSGX%Js=t5F{D93E;mp|LV-B=EIY-OL{d*6TG(58XsIvm_={mq8!8DFV+k`k
zrF!$H_f0EoKP}{A4&)&PXVt7uLKYMG)dH*QtjzE8dW#YdC8)P~-d|yz&>%l32GE%+
z7S@x#YD2fI93m|;C<3;?DpQnEVyFwrs<{sz1w80qS->rtSW%6$szPjYMBzFu`H4CL
zs-CkOY$KEoI47twPN>Hv{(hNuWlm??a)&{tnAdnHK|0FhL6->iJG39P86WmGdmQ%aC-ws}8#QJr1vHJNY+hEg%5$wn
z?EJ{@(nAp;qKp`pA&TWWP3U)wPzJ5;AGN+szdyv!$T(SViubUkTL(59)Njm%+&w}Aq;CMRp}!H5o{vsgcVsc9gfJiyY!r{ijSm80fcm=CkQLD;G2ec{Of5}82DdU_gGV6hjY
z^poZ82%A_I1WU{@P}A_RXY`_t!)Fa6F`-s(k^hxQ4LOpvPgaw^RunOp9+QFip8evB
z7l8r3*ZLj{_mkk*b$xsJ%pK2_ib@CV8%km2Pnw7=h5etBjVwHu1DF-xLZ{1U%Ro}m(U%F6PYA_
z3>GGi8&Tf$vq|k>JrpB!!WeF(##k$dJ>(<6^vSfZZlX}h0br#)bkW%FGhQrrcin4$
z0S4$abnp{K;!XCIEe`-oLD_`y>D!h$-ZyM)(JFO_AT!noxTqQZ-LxVC2FQ|2SDy)u
zWb|O=89y^*+tOCvNMFz(e0n&BkwgQlG+jHVEBv)S@5uIPv~{o4^z9gs*0xxWYkmh6
z8hroL0ZU3OV~!ohwev1;xjG`>?~a#Pjf&kv0fN7pB-YFe&D4T@#bMI-V34q|#o*eC
zth%%m6yHv?Je1Ut*N>R)$YR(&^d!yVY@E7&l~-w+`F?q9gOS^Tr?^!rAmNp+<~40x
z4VX!XOA>oOXX{HMKTo-!=!HX$f%;1ZZ%sQ7<=cKFak7&CYBD>*9k~Hz?zMdswk(2o
zR60MR!6Pu1_Vz>M33gls1w+es2BL>>IY#jQ0!EqWFI)sskCQHOvEj;Z_&;Zx?!Bse
zi!R7k4>H~RUB!xS050Cdt60F@I|22<_YFA%M%CkdiL`$tuH(uxtUW|N?Tq0&8*wS2
z=x;P)8S>d@P56a18mam;Xj?d5m)I(q*0S|a_iC|8+vdG8R%-STP5-3xJtS+@-Q9LO
z)N5`_evo}Az+~pr^V39;d=7T{Nr|)G*4&chmwRKg3aLGF{VL&Ds(Jpz_!j$j(C9P-
z{;X{PAoR~Si!{z8HzfroO+0P`cdZy>S2e
z^3P&he;V2j9?^imxaC>v2IyjuHXs0pmScAR_WOD021`v4JormX<@CNtmj7SCE9NvT
z_G54E^h;04yl6n#8AZ(vJ=xBkU*k24a6<4P_8@0%?eJ`G*~|B-5O=U1!zN#3r+f{Krko{$jg_$;QMcW8zrk}eNP6e<1Yjfo0I
zdALxlx(kVWe+0{S%XST=D^sIV*0h*PrJjwm*Av9#u|@V@7L>j$g~>(i*WXAkW}7d*
zSA}2f@5NEus?!&Mg@}?R5^!_4W{{Dc=7_L-eqUcipS7{ZKyP7MHmoQ74~7&bZEHX?
zvZ*=byhzIZiS(3MOs}(-`I00%zZq{#(Bez_uE!j*fv(pizuY*E;grv4?!}J@j~VsF
zap)uv;PBpzlKJHj1bnfTUgQt6Lwr^ajF4uO;RpwM9>KKZqdJdH_#P?K?ZxBjd+O{#
z$68eP%zV0y3TF}cA8q3D)7XnXAhj+<$I8KM9f@W?R_xd~ReOAyl1q1a5NXzO{#fO8
zxEz{bgM;i3X6NEc=)CmceTj-Gm7DAr16)2?W*E$SQ(m~#QF&Cxcu?JDV^`(FoALHq
ze<}tO&!5jX`;6#i(5X%c12)I4FjHNtgLG}DN^8y{yDHEw7AX1LnuuD=oz
zb;pGE8-rB!8^EYlA{42TSdw}lwW^x-)q~BO^2IC+-rZouT63D(9#r4sL?&E?(^D3G
zY9B-@$vwM_Ksdgwws4K#l?iuwAzEiAh|jz__YJAmyz3RZp2-0?2ve*2uZ&a0Hs
z|KsxvD;kVw4YG``O6OOlY95=H6QdY~%^f9_anZDF=c^@8+;_Z0;*XfcoFtBm4#M)r+Mbt-%Lc9gKvdCt
zebC2STdSoLSEwSGI~q5@Z>MpXsWTl7xfkK#VK_x59&}!OqnHek7S&{?q%XD8!3KQK
z_niD@zD%Vf8~s~zx|H}j#+(VML)=5P*Sn+;J)ON&oEw$3$9}K34yG86w=uQlqMgtxrL+OeT71?T{?Rg21ju*
zvg-?(cbjf(dR_PuzpPB##$>;|U9=8=28e@Tx04xd`;4*Z_2#MLQIbW!haw5me0imU
znepiPT7@@@ce}?x4G9FG7i(|8wBo-{IdZX(WEQg=ZP;HySrA*5p+djCrx+$b9rnBV
z)$^31-V~jmtO39?>+oo-lhxp7!I_DCXPi+vd{dWHR;Sgzif%nY?~RY1+kCrXrwPMU
zCNRDjSJ34)B`$h*8>PmFK$RGy85e!i)Y9MX;cD)(%raR0?a#B_V+MRr
zUFz@Pf1Z4zc<_yK=(osj%w!7H0893qHHMP9+(wQyXXjLdRg+ucU%_%ak7@u@Y(!+q
zM##1Jk6Fmx`N_~L9_7@K7_BmKWo8Or;PSPwK=1G0EnPkJrY^TA_trdE
zW?9r^{WWwkK`fO@i}&tDoc4*99SL+65?E&))x4J@eSh8r_2B4bcl-c-n-|9ra8W;^
zljzeNq
zd+p@eeKV(HeW(}~GjkSr@fuy_qU`Zcy(AT#HF)15pnHqqLiGUrHI(m=sWC)aC(l*f
zdQ^pt4xPOd+(xU0)Y48~*zuTg$sn!{$3j;<*B#d9$7HQsXlfH^_U61cI-|QYEm+HK
zs81eSCl7z6iS5xORT(Vu=zcqKlsj(slZ*uYBk2Rhe;x-L|8c+DyUbmX%GpcA%{1Tn
z`oD!A!=|C;rtS)Xz_iWv|61rjC&p5BKS73Gh;wFj^NpPUNBn2inSdH0FUt?oe6+;A
zOQD0>Dd=yuS&-g#>@psHLQ+yYX6DCoYT|=HFLAXGf?;TCeuxCSD0reY))9Hz={U{C
zdj+jCSD?r0YujYT=@5-7(-#zt$3OsvJ7cnEY*nb$V3DJARosBTC>^5+t}ygG+WmJM
zkWu%>`wsB7pqC)LKOWN04Ck}bit{3U?jlmsR;mS3nghxXP%d8E_CJ!CrFY*1YX*J4fl8v-e3@`9<+#{;LcjKZd*)aiVs4t~=WVFG
za`2^_@}N}lMp*fFfEe6HNHUx&S*YRI+CwE$`%j^cN&{an0ydN-PwQ7@$ac1NM0IUu
zT+K1%sKyLVJc#0VIZ!s98;B(f_k8USp1S;#_?AfKn>sK>e7#XzTMo0_2+YOkEW}&5
zYOTjGO=P^{m^KPY6Z35C%df$|lMJ4^801r7tB%|%G_gw`EH@ef$PhaeH(3F&*|3v6
zKAsw+rAZ4B_}YCgJk7m&VyFvuvplqc8_KaJU~L%wgFnoWiJ|aInHw2*c3vcd!di6-
z$H(ptlrGL9e$GS-qO(nkWwu3v4O*8A`ua-JXlzCv8Jk+h1_`=rOUVrEwU%Mk9Be%1
zX(M6+RNf*54kpBQX1ZXgos3ErSYZCe$1f_Zj_{LHo^L5~j@~|Et$WdEpWn?7Y%qF{
zCr;vz1xrQQ`8Tb>L~-9oYoUqY!`$Y^krW=vx!;W9E*4Nb1polxU4k@lX)&V~i7PSt
zNw#z|JloxAOj^Wz!{gam(@Ao+BDUK}NydRXk+P1rB4gUYN9G~NEqP5XuC3c{Hf(f?
zYMLw@byTUta$!!EBd3=le=(D9qfI
zroC;#k}G4;;&&hUmnB^|<#IHtK!}I6%2i;)M|K<$^&eqB!t>$x92c8GUJMxDR6niDul>b25*h$Sr!vQqo0{>Zs>%x2&c
zlcxz>RqX*_DWBwPg^<-y{gF_Sw@_5NzD?h(Z4k|&`mt0B{^DJ-g%gk~E6_>+o77ZU
z^NRUqoVbqHm2<&eVXN)yag)Zr@ELy1Ux1K~!fzHR8m8@A#}}NWv8dOcsUscCMr6Jy|uUiBAO~^>^w201qcIM*si-
literal 0
HcmV?d00001
--
Gitee
From 5662844366ca38153407c8e4b8d8a12b3cd3843d Mon Sep 17 00:00:00 2001
From: ab_dx_z <10158481+ab_dx_z@user.noreply.gitee.com>
Date: Fri, 25 Mar 2022 06:45:09 +0000
Subject: [PATCH 14/16] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=8F=90?=
=?UTF-8?q?=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../contrib/cv/SVD_ID2019_for_Tensorflow/modelzoo_level.txt | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 TensorFlow/contrib/cv/SVD_ID2019_for_Tensorflow/modelzoo_level.txt
diff --git a/TensorFlow/contrib/cv/SVD_ID2019_for_Tensorflow/modelzoo_level.txt b/TensorFlow/contrib/cv/SVD_ID2019_for_Tensorflow/modelzoo_level.txt
new file mode 100644
index 000000000..d648fdf46
--- /dev/null
+++ b/TensorFlow/contrib/cv/SVD_ID2019_for_Tensorflow/modelzoo_level.txt
@@ -0,0 +1,3 @@
+FuncStatus:NOK
+PerfStatus:NOK
+PrecisionStatus:NOK
\ No newline at end of file
--
Gitee
From 1a9b03d9a1428cb7869ff7cf9851fb07cf29c47a Mon Sep 17 00:00:00 2001
From: ab_dx_z <10158481+ab_dx_z@user.noreply.gitee.com>
Date: Sat, 7 May 2022 13:49:06 +0000
Subject: [PATCH 15/16] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20Te?=
=?UTF-8?q?nsorFlow/contrib/cv/SVD=5FID2019=5Ffor=5FTensorflow/README.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../cv/SVD_ID2019_for_Tensorflow/README.md | 183 ------------------
1 file changed, 183 deletions(-)
delete mode 100644 TensorFlow/contrib/cv/SVD_ID2019_for_Tensorflow/README.md
diff --git a/TensorFlow/contrib/cv/SVD_ID2019_for_Tensorflow/README.md b/TensorFlow/contrib/cv/SVD_ID2019_for_Tensorflow/README.md
deleted file mode 100644
index 2c4d94f72..000000000
--- a/TensorFlow/contrib/cv/SVD_ID2019_for_Tensorflow/README.md
+++ /dev/null
@@ -1,183 +0,0 @@
-基本信息
-
-**发布者(Publisher):Huawei**
-
-**应用领域(Application Domain):CV**
-
-**版本(Version):**
-
-**修改时间(Modified) :2022.3.25**
-
-**框架(Framework):TensorFlow 1.15.0**
-
-**处理器(Processor):昇腾910**
-
-**描述(Description):使用训练好的SVD模型,评估对称正交化在点云对准中的应用效果。**
-
-概述
-
-给定两个三维点云图,利用SVD正交化过程SVDO+(M)将其投射到SO(3)上,要求网络预测最佳对齐它们的3D旋转。
-
-- 开源代码:
-
- https://github.com/google-research/google-research/tree/master/special_orthogonalization。
-
-- 参考论文:
-
- [An Analysis of SVD for Deep Rotation Estimation](https://arxiv.org/abs/2006.14616)
-
-- 参考实现:
-
- obs://cann-id2019/gpu/
-
-
-- 通过Git获取对应commit\_id的代码方法如下:
-
- ```
- git clone {repository_url} # 克隆仓库的代码
- cd {repository_name} # 切换到模型的代码仓目录
- git checkout {branch} # 切换到对应分支
- git reset --hard {commit_id} # 代码设置到对应的commit_id
- cd {code_path} # 切换到模型代码所在路径,若仓库下只有该模型,则无需切换
- ```
-
-## 默认配置
-
-- 数据集获取:obs://cann-id2019/dataset/
-
-- 训练超参
-
- - log_step_count=200
- - save_summaries_steps=25000
- - train_steps=2600000
- - save_checkpoints_steps=100000
- - eval_examples=39900
-
-
-
-训练环境准备
-
-1. 硬件环境准备请参见各硬件产品文档"[驱动和固件安装升级指南]( https://support.huawei.com/enterprise/zh/category/ai-computing-platform-pid-1557196528909)"。需要在硬件设备上安装与CANN版本配套的固件与驱动。
-2. 宿主机上需要安装Docker并登录[Ascend Hub中心](https://ascendhub.huawei.com/#/detail?name=ascend-tensorflow-arm)获取镜像。
-
- 当前模型支持的镜像列表如[表1](#zh-cn_topic_0000001074498056_table1519011227314)所示。
-
- **表 1** 镜像列表
-
-
- 镜像名称
- |
- 镜像版本
- |
- 配套CANN版本
- |
-
-
-
- |
- 20.2.0
- |
- 20.2
- |
-
-
-
-
-
-
-## 脚本参数
-
-```
---input_test_files1 原始输入测试文件的正则表达式
---input_test_files2 原始输入测试文件的正则表达式
---output_directory1 将存储新测试文件的输出目录
---output_directory2 将存储新测试文件的输出目录
---num_rotations_per_file 每个测试点云的随机旋转增加数。默认为100
---random_rotation_axang 如果为真,则使用该方法从原始基准代码中对随机旋转进行采样,否则样本采用哈尔测量。默认为真
---method 指定用于预测旋转的方式。选项为"svd", "svd-inf", or "gs"。默认为“svd”
---checkpoint_dir 保存检查点位置
---train_steps 训练迭代的次数。默认为2600000
---save_checkpoints_steps 保存检查点的频率。默认为10000
---log_step_count 日志记录一次的步数。默认为500
---save_summaries_steps 保存一次summary的步数。默认为5000
---learning_rate 默认为1e-5
---lr_decay 如果为真,则衰减learning rate。默认为假
---lr_decay_steps learning rate衰减步数。默认为35000
---lr_decay_rate learning rate衰减速率。默认为0.95
---predict_all_test 如果为真,则在最新的检查点上运行eval作业,并打印每个输入的错误。默认为假
---eval_examples 测试样本的数量。默认为0
---print_variable_names 打印模型变量名。默认为假
---num_train_augmentations 增加每个输入点云的随机旋转数。默认为10
---pt_cloud_train_files 匹配所有训练点文件的表达式
---pt_cloud_test_files 匹配所有修改的测试点文件的表达式
-
-```
-
-
-
-## 运行
-
-GPU运行命令如下:
-
-**修改原始测试数据**
-
-注:生成的文件points_test_modified、points0已包含在dataset文件夹中。
-```bash
-# 将路径设置到训练点云图文件
-IN_FILES1=/shapenet/data/pc_plane/points/*.pts
-IN_FILES2=/shapenet/data/pc_plane/points_test/*.pts
-
-# 设置新生成文件的路径
-NEW_TEST_FILES_DIR1=/shapenet/data/pc_plane/points0
-NEW_TEST_FILES_DIR2=/shapenet/data/pc_plane/points_test_modified
-
-# 决定旋转轴角的分布
-AXANG_SAMPLING=True
-
-python -m special_orthogonalization.gen_pt_test_data --input_test_files1=$IN_FILES1 --input_test_files2=$IN_FILES2 --output_directory1=$NEW_TEST_FILES_DIR1 --output_directory2=$NEW_TEST_FILES_DIR2 --random_rotation_axang=$AXANG_SAMPLING
-```
-
-**训练与评价**
-```bash
-# 将路径设置到原始训练数据
-TRAIN_FILES=/shapenet/data/pc_plane/points0/*.pts
-
-#将路径设置到旋转后的训练数据
-TEST_FILES=$NEW_TEST_FILES_DIR2/*.pts
-
-# 指定旋转预测方式
-METHOD=svd
-
-# 指定ckpt、summaries、评价结果等的存储路径
-OUT_DIR=/path/to/model
-
-python -m special_orthogonalization.main_point_cloud --method=$METHOD --checkpoint_dir=$OUT_DIR --log_step_count=200 --save_summaries_steps=25000 --pt_cloud_train_files=$TRAIN_FILES --pt_cloud_test_files=$TEST_FILES --train_steps=2200000 --save_checkpoints_steps=100000 --eval_examples=39900
-```
-
-**从所有训练样本中生成统计数据**
-```bash
-# 打印均值、中位数、标准差和分位数
-python -m special_orthogonalization.main_point_cloud --method=$METHOD --checkpoint_dir=$OUT_DIR --pt_cloud_test_files=$TEST_FILES --predict_all_test=True
-```
-
-## 训练结果
-**精度对比:**
-
-由于弹性云服务器上Tesla V100的GPU训练环境无法支持运行超过100万步,选用矩池云GPU的运行结果进行精度对比。
-
-
-| 测地线误差(°) | 论文发布 | GPU实测 | NPU实测 |
-| ------------------------ | ------- | ----- | ------- |
-| 平均值 | 1.63 | 5.55 | 待测 |
-| 中值 | 0.89 | 3.65 | 待测 |
-| 标准偏差 | 6.70 | 10.68 | 待测 |
-
-**性能对比:**
-
-取弹性云GPU运行的前2600步的global_step/sec平均值和NPU运行的前2600步的global_step/sec平均值进行对比,以达到性能对比的目的。
-
-| 性能指标项 | 论文发布 | GPU实测 | NPU实测 |
-| ------------------- | ------- | ------ | ------ |
-| global_step/sec| 无 | 79.48 | 66.08 |
-
-
--
Gitee
From f353bdabf5627ce2ca8bb9fc8d019e04b7f5202d Mon Sep 17 00:00:00 2001
From: ab_dx_z <10158481+ab_dx_z@user.noreply.gitee.com>
Date: Sat, 7 May 2022 13:49:32 +0000
Subject: [PATCH 16/16] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=90=8E=E7=9A=84readm?=
=?UTF-8?q?e=EF=BC=8C=E5=8A=A0=E5=85=A5=E4=BA=86NPU=E4=B8=8A=E8=BF=90?=
=?UTF-8?q?=E8=A1=8C=E7=9A=84=E6=9C=80=E6=96=B0=E7=BB=93=E6=9E=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../cv/SVD_ID2019_for_Tensorflow/README.md | 229 ++++++++++++++++++
1 file changed, 229 insertions(+)
create mode 100644 TensorFlow/contrib/cv/SVD_ID2019_for_Tensorflow/README.md
diff --git a/TensorFlow/contrib/cv/SVD_ID2019_for_Tensorflow/README.md b/TensorFlow/contrib/cv/SVD_ID2019_for_Tensorflow/README.md
new file mode 100644
index 000000000..a4ccebb34
--- /dev/null
+++ b/TensorFlow/contrib/cv/SVD_ID2019_for_Tensorflow/README.md
@@ -0,0 +1,229 @@
+基本信息
+
+**发布者(Publisher):Huawei**
+
+**应用领域(Application Domain):CV**
+
+**版本(Version):**
+
+**修改时间(Modified) :2022.05.05**
+
+**框架(Framework):TensorFlow 1.15.0**
+
+**处理器(Processor):昇腾910**
+
+**描述(Description):使用训练好的SVD模型,评估对称正交化在点云对准中的应用效果。**
+
+概述
+
+给定两个三维点云图,利用SVD正交化过程SVDO+(M)将其投射到SO(3)上,要求网络预测最佳对齐它们的3D旋转。
+
+- 开源代码:
+
+ https://github.com/google-research/google-research/tree/master/special_orthogonalization。
+
+- 参考论文:
+
+ [An Analysis of SVD for Deep Rotation Estimation](https://arxiv.org/abs/2006.14616)
+
+- 参考实现:
+
+ obs://cann-id2019/gpu/
+
+- 相关迁移的工作:
+ 在进行代码迁移到NPU上时,输入的训练数据为点云数据,点云数据的shape为(N,3),其中N并不是固定的,因此在NPU上存在动态shape的问题,导致模型训练无法正常进行。我们为此想了三个解决方法:1、找出所有点云数据中最小的N,对于大于N的点云数据,仅取前N行的数据输入训练。2、找到所有点云数据中最大的N,对于小于N的点云进行补0操作,将所有数据固定为最大的N后,输入网络进行训练。3、找到所有点云数据中最大的N,对小于N的点云数据,从原数据中选择一个点云进行填补至行数为N,再将数据输入网络进行训练。该三种方法均成功解决了NPU上的动态shape问题,但是第一种方法删除了样本点,因此导致最后训练出的模型精度很差;第二种方法虽然并没有丢失样本信息,但是向数据中填入大量的0,改变了本来的代码逻辑,导致最后训练出的模型精度也并不高。对于第三种方法,即没有丢失样本信息,对每个点云数据中的某一个点云样本点进行重复操作,没有改变原始的代码逻辑,最后也获得了不错的精度表现。
+
+- 通过Git获取对应commit\_id的代码方法如下:
+
+ ```
+ git clone {repository_url} # 克隆仓库的代码
+ cd {repository_name} # 切换到模型的代码仓目录
+ git checkout {branch} # 切换到对应分支
+ git reset --hard {commit_id} # 代码设置到对应的commit_id
+ cd {code_path} # 切换到模型代码所在路径,若仓库下只有该模型,则无需切换
+ ```
+
+## 默认配置
+
+- 数据集获取:obs://cann-id2019/dataset/
+
+- 训练超参
+
+ - log_step_count=200
+ - save_summaries_steps=25000
+ - train_steps=2600000
+ - save_checkpoints_steps=100000
+ - eval_examples=39900
+
+
+
+训练环境准备
+
+1. 硬件环境准备请参见各硬件产品文档"[驱动和固件安装升级指南]( https://support.huawei.com/enterprise/zh/category/ai-computing-platform-pid-1557196528909)"。需要在硬件设备上安装与CANN版本配套的固件与驱动。
+2. 宿主机上需要安装Docker并登录[Ascend Hub中心](https://ascendhub.huawei.com/#/detail?name=ascend-tensorflow-arm)获取镜像。
+
+ 当前模型支持的镜像列表如[表1](#zh-cn_topic_0000001074498056_table1519011227314)所示。
+
+ **表 1** 镜像列表
+
+
+ 镜像名称
+ |
+ 镜像版本
+ |
+ 配套CANN版本
+ |
+
+
+
+ |
+ 20.2.0
+ |
+ 20.2
+ |
+
+
+
+
+
+
+## 脚本参数
+
+```
+gen_pt_test_data_gpu.py 中的参数
+
+--input_test_files 传入需要进行旋转的点云数据集
+--output_directory 存储旋转后点云集的路径
+--random_rotation_axang boole型,若为真将会对传入的数据集采用指定方法旋转,默认为真
+--num_rotations_per_file 每个测试点云的随机旋转增加数。默认为100
+
+
+main_point_cloud_gpu.py 中的参数
+
+--pt_cloud_test_files 测试数据集路径
+--pt_cloud_train_files 熟练数据集路径
+--method 指定用于预测旋转的方式。选项为"svd", "svd-inf", or "gs"。默认为“svd”
+--checkpoint_dir 训练模型的存放位置
+--train_steps 训练迭代的次数。默认为2600000
+--save_checkpoints_steps 保存检查点的频率。默认为10000
+--log_step_count 日志记录一次的步数。默认为200
+--save_summaries_steps 保存一次summary的步数。默认为5000
+--learning_rate 默认为1e-5
+--lr_decay 如果为真,则衰减learning rate。默认为假
+--lr_decay_steps learning rate衰减步数。默认为35000
+--lr_decay_rate learning rate衰减速率。默认为0.95
+--predict_all_test 如果为真,则在最新的检查点上运行eval作业,并打印每个输入的误差信息。默认为假
+--eval_examples 测试样本的数量。默认为0
+--print_variable_names 打印模型变量名。默认为假
+--num_train_augmentations 增加每个输入点云的随机旋转数。默认为10
+
+```
+
+
+
+## 运行
+
+GPU运行命令如下:
+
+**生成测试数据**
+
+注:生成的文件points_test_modified、points已包含在dataset文件夹中。
+```bash
+# 将路径设置到训练点云图文件
+IN_FILES=/shapenet/data/pc_plane/points_test/*.pts
+
+NEW_TEST_FILES_DIR=/shapenet/data/pc_plane/points_test_modified
+
+AXANG_SAMPLING=True
+
+# 决定旋转轴角的分布
+AXANG_SAMPLING=True
+
+python -m special_orthogonalization.gen_pt_test_data_gpu --input_test_files=$IN_FILES --output_directory=$NEW_TEST_FILES_DIR --random_rotation_axang=$AXANG_SAMPLING
+```
+
+**训练与评价**
+```bash
+# 将路径设置到原始训练数据
+TRAIN_FILES=/shapenet/data/pc_plane/points/*.pts
+
+#将路径设置到旋转后的训练数据
+TEST_FILES=$NEW_TEST_FILES_DIR/*.pts
+
+# 指定旋转预测方式
+METHOD=svd
+
+# 指定ckpt、summaries、评价结果等的存储路径
+OUT_DIR=/path/to/model
+
+python -m special_orthogonalization.main_point_cloud_gpu --method=$METHOD --checkpoint_dir=$OUT_DIR --log_step_count=200 --save_summaries_steps=25000 --pt_cloud_train_files=$TRAIN_FILES --pt_cloud_test_files=$TEST_FILES --train_steps=2600000 --save_checkpoints_steps=100000 --eval_examples=39900
+```
+
+**从所有训练样本中生成统计数据**
+```bash
+# 打印均值、中位数、标准差和分位数
+python -m special_orthogonalization.main_point_cloud_gpu --method=$METHOD --checkpoint_dir=$OUT_DIR --pt_cloud_test_files=$TEST_FILES --predict_all_test=True
+```
+## 运行
+
+NPU运行命令方式如下:
+
+对于所有的三个步骤程序来说,modelarts插件obs桶中的数据路径均要写到真正包含数据的那一个路径
+如在pc_plane文件夹中含有points、points_test等包含数据的文件夹
+modelarts插件中的数据路径写为 obs://cann-id2019/data/pc_palne/
+
+**生成测试数据**
+
+运行这一步我们需要的程序文件为gen_pt_test_data.py、modelarts_entry_Axang.py、genTestData.sh
+这三个文件中的代码均不需要修改
+最后生成的旋转后的数据文件存放在obs桶当次程序文件的output路径中,文件名为test_points_modified,
+为进行第二步模型训练,需要将生成旋转后的文件转移至obs桶中存放data的路径
+
+注:需要确保的是存在obs桶里的data文件名为points_test
+
+**训练与评价**
+
+运行这一步我们需要的程序文件为main_point_cloud.py、modelarts_entry_acc_train.py、train_full_1p.sh
+这三个文件中的代码均不需要修改
+最后生成的旋转后的数据文件存放在obs桶当次程序文件的output路径中,文件名为test_points_modified,
+为进行第三步,需要将生成的output文件转移至obs桶中存放data的路径
+
+注意:该次训练的模型保存在该次的obs文件夹中,进行第三步时又需要重启一次新的modelarts,因此我们需要将output文件中的
+checkpoint文件中最新模型的路径修改
+"/home/ma-user/modelarts/inputs/data_url_0/output"
+这样第三步才能跑出正确的精度指标
+
+**从所有训练样本中生成统计数据**
+
+运行这一步我们需要的程序文件为main_point_cloud.py、modelarts_entry_stat.py、genStatistical.sh
+这三个文件的代码均不需要修改
+运行成功后将会在屏幕上打印出关于精度相应的统计量值
+
+注意:由于加入了混合精度提高训练性能,导致该步出现未知错误,输出的误差均为0,因此建议将训练后的结果下载到本地
+修改checkpoint文件中模型的路径后,利用本地的GPU进行运行,实际上该步骤在运行时NPU成功启动但也未曾利用。
+
+## 训练结果
+**精度对比:**
+
+
+
+| 测地线误差(°) | 论文发布 | GPU(初始代码未改动版本) | GPU实测|NPU实测 |
+| ------------------------ | ------- | ----- | --------- |----------|
+| 平均值 | 1.63 | 2.58 | 3.98 | 2.92 |
+| 中值 | 0.89 | 1.68 | 2.6 | 1.7 |
+| 标准差 | 6.70 | 6.93 | 9.36 | 8.45 |
+
+相比于论文中的精度,我们NPU迁移后实测差距依然较大,但是与我们未对代码任何改动初始的版本在GPU上跑出来的精度相差较小,
+且对于相同的代码的代码改动,NPU上的精度优于GPU上的精度。需要注意的是,在NPU上运行程序时,我们采用混合精度来提升训练
+的性能,但是其中产生了未知的错误,导致代表的精度指标mean_degree_err在整个训练过程中始终为0,因此我们无法得知在NPU训练的
+260w步的过程中,精度指标是下降的过程是怎样的。值得庆幸的是通过NPU训练出的模型,能够在GPU上计算出精度,并且精度还不错。
+
+**性能对比:**
+
+取弹性云GPU运行的前2600步的global_step/sec平均值和NPU运行的前2600步的global_step/sec平均值进行对比,以达到性能对比的目的。
+
+| 性能指标项 | 论文发布 | GPU实测 | NPU实测 |
+| ------------------- | ------- | ------ | ------ |
+| global_step/sec| 无 | 87.64 | 101.24 |
+
+
--
Gitee