From 3aacc18d8c36c847eb25dbc1c310d8990ec60f19 Mon Sep 17 00:00:00 2001 From: o__-xpf-__o <2689129162@qq.com> Date: Mon, 2 Jun 2025 22:33:19 +0800 Subject: [PATCH] . --- .../8.5/executionHistory/executionHistory.bin | Bin 4158335 -> 4158335 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes android/.gradle/8.5/fileHashes/fileHashes.bin | Bin 262519 -> 262869 bytes .../.gradle/8.5/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.5/fileHashes/resourceHashesCache.bin | Bin 25195 -> 25331 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes android/.gradle/file-system.probe | Bin 8 -> 8 bytes .../examples/poseestimation/ml/PoseNet.kt | 32 ++++++++++++++---- 8 files changed, 26 insertions(+), 6 deletions(-) diff --git a/android/.gradle/8.5/executionHistory/executionHistory.bin b/android/.gradle/8.5/executionHistory/executionHistory.bin index dd85478ad99a275dd79cd691b30e4430e3f3c1d2..f9e3bacb157454dcad8179ece4125135cff2788a 100644 GIT binary patch delta 7454 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 V2wMmNgdN0Wh$-Sqn*Ei4{{!#c4XgkF delta 6380 zcmZu#c|4Tc|M$#-N6#?BFk|1P>_b|{lDh4(R0=KjqA)^Ix0^(f7|Y-wg$PNyv`l47 zDk|5Kb`&MFnz|*?@;lEneedsn_5I^Lug`qWXFun2o^#HRp>N0!h(C+>kb3tDs@=3n z3_pSSA6w3v{n1DTji2Z36vpUKbdk8k_=LoGM3@*)de{Y$$Xt04zLtDY`q71<91*AI zG>F~IQUNOK$h)M62v#l`bS5xaCRQT3E~9tSzImhT+sE@Si7L+G3ipo+$Ycrnsbk?; zs)oVOG>2$qO>+mL!CrTAsq`RW;6oi~e>F`DIC_w`F;5U$BPZo3hyLwfWqDThI1rsgK>prOv5B&{)k>_)wWF@dNQ2{vOLBXW(<5W(vILaAk$jA!s;7K6j_pe8xoK znmVuK;eZNsDN+Y~HehpvR^jMDviv=o>VoL9Jc}Q1mNYmF&fbh%20qtlvxVd+)EZ+n z#0;P6FO0}q$5@kNFQrJS0osA6g*^R#^BKSJLC1cy-gxCfhU6weo{w;sr2MeK<@Z&| z!?3cW-zc!K9L2DSeU+Uv4h;<5O!_gc3tWst(cEHpxwn_fsSg7MG@fQ1Guh3|B-9Pm!x8CpLc3N0(9dEjV6+BPrlt|Xw6mBsB?C8OcNkS+ZS1%ooeLc zd-9LOMnZ^lPRKiq3P{u#n>*kiC;B$R^-ba#1Q8h8{xa~A_ANO zB2E2*eIg9_qJ> zKV5m85baO_ybG8h~>vwpniyaTX`{qq)}np|#zsB&8hz+&{?2*r0I|%Zkz7E}LKT5?Ek5)o(LJ`!?-5CZRNF}BKcu?Lvx%Dah|RQ)xiW?2QkG;0pL1hncf zeP)2%<-V&iw5p}wrHbfx_Oi}Fc@Uh98mM^46%6j5zcaSqbn80AymjyBF~YtUQVhK6 zFb#0!Dkdp!xpw_{pw%~DCGWbUylabITuTNWAGq2q*;VvXx}(!%v~PUPh_0#HwV#QG zWuq*hQIAbyy&hD1Je(jI_qKVqXS9{7G45Ez83FU_F;&I$jPln@$&|O{nFap43k^kt zZxB|GanS2xOGrK_YQR*LBe4g@yAXd1CW9mRTz*$Ev33*)Y5gyKj9^mkhK&bJgXSjMUq^Fg=HZ?sd&*uN^yD z3oH7WtF5v2FFlQKrzpP#Bu-L#wfSysgac`WPuK+MIjD-|e|YKt_%RiCoCN*4$}`8r z=vTgV#Se_J)88Za9mXg3+XhhGgt4{&*=HJj2@lnx8HQKCU|rlxgz?i~5JWK5lquXC zmv2b|eKA>$i-+g~A+t?8#m2};@;}0O_a3i!^PqZ^5ttK_xR>zh8nQh>r7OB$a@R;g^KL*Wq6^mg7F zwZHxX?&x#@>QBL27bq5@(IqT2^5OZrIZ%jfmabaLrf(X zp_=SW;T_ZAb9W~H7%?__mwd7n4@|`ALxJcz#sm+FP>1!n8uSNu%UcW+=G8s6H0#D* zk3pB7GRRWfecOb2rNi@NN+kJI*qM0}iNQSHwjE&+NQxhCM`&a~_|FPNp57h%&{gqL z%H6BvMW=c%8jml-X=tK4xM)svq( zqrJ%>Z-T2TKXpDKzh#1}?Z7NP(4)7v_ssFzm$|*Y-FkP3l!{15`sSeE0Fy|bNsvE2 zQTQU9I=8r25ol_`jE$a%D}kg2`Qtjcu6TOgo>Vs;)K@P$Jj=(%FZ8$2u4E812{Vuz z^=dwM*w%ddT>o}~l(#aTG|(=A8ASVm; zbq~qC&Q`L8eD+taHrt!+*|cw-Q@rE)m+?*BZw83+aYQP>^(&VtZ$7B={$gEBW=h0_ zoo&Y|9`wKSE7xph@6Ujfe@==x+Oe(L9!3i96w@-786241KfMQ!%H{;B!Ca%zXOdW3 z@oG`K^@p`_F$RzDkBtiFI>Fe`xfl}$~86< z;w0?j|DK%J*_AKn#P5yrocw*ihg(IQSZd!sGH`%3R6K>udmFqUR%z^!UCWOdJ(a{T z;GICV?PY?qntDR9SBXAPJezFdO4@(g|8`)aP^sJv^eFOBngChtH8x>~GgujRBXDvnJ(a`sb0?;@A>2%TNdzp=Q~% z9zb%B20q`pI>>C$^j1S36xw6f!l&Q4r^&+U3o%&)SqRbsxe3Dh->{W3z5~t?yF&*K_m-L1%^*+`3@P-SGU;{Z&so zwkMB54G||_4J7d~4azHAzmkuctBVMJr81n=_O)Am)U<+%q^_jsR9Dkq!vhwNhq3`9 z6;qTcD#iVj8$;%ME|(3KLMG)QWCEX5YzCzlr}(Lu8FTuc_Ez&x3CB`mS_@|8zFGVO z1_-)RF;kTqW<*K#a8c)TL`gdQ`_rf=gvm-eauPJzauq-TGm&ZZ3_ zqzf(6rJlYa#Lm&-p%z||RN#59S#)kh{VUJV)%fwaV|uzvKkhsw4KroBes;YQ@S<$o zL9kk+6WGxz!bdvNFg?|=9nPtLE*fo^d^2kAUgfjCo3NU!j@(8-(I#w(GEp^M&(gFN z^>RvEw5%uev!axV1Vhs?eU+LYYxIpNs_V>2OD_crwaxx6!|QQQ4>^XbvjN?kMunkK z9?x>QJ8#qFSv`TleScmL%EbfdPsi9S^`m{wf0UM4FHGyLI~+i=E++zL1#%hKbQ$sN zT%p60wd)0%4)D#u=DXpoH>de3v$_$HhnT8Yq z2S+ZvtP0@Ve1ri4R{=Jc@)(bSFTji`6F9FyfLT#+hhR*A%@k95nV2Ev0WRl~iOr+* z5gM78x_?#n@}uDw?{cJ%p}tRV>^6J|ox&>y3rYUZg^;M*aN6%BuO;_vo;-wEIxy(9 z-Gtbn^FQ}ScpW4JEk|P48yUUfs*d)BeRbX7{soUCF$`7zhp?yVp6>%8uvk4v?HX3tMVIk?|G)c$^=qG8AuJ4}W2|2qm$icb+OR>EX1w?>1(n9=IC1`U{ zK)AR~z8~1#?@%Whb;fs~kM60GbBHjcp9%Y1o zxM`6{Rsh*yqYA?K(vreQ+iffnaOMETSXkUci(x3}uIg)}Hs4cHdJvYrtj=sc!nXt) zM`-~d?=3AvVb}78=SFQ0Ki^8MKK^%^`96eiB_54=N4rfg{hQ2Q9QcO2*!Hi=38@kZ zq30+~Rhr?q>8?^ou93)A?a-BvuD6)oz~LipweZnr+D#g@JP&Wl28JvPG*D%u*j4(o zOd2(QWau>UT`e6i^Kazf9aN42zPzj^*d{6Kq1!%N%R0WoKXgQ8&&S@RphmbrRpq^J z2h_Ktn~L-oHMU68!LX$4W|d_hv^y^ai?Xg?T|4n=S+~;(+!rTT6src_AEGFMG^(t; zDiHwZ5dMr>7`5Wd>u8I}qfg#n{p+dCWI~0MEQA~cU05N-$SNkeNx>&j9mGahEy+zI zA*%plXlD#W=NKVEeib845qSb)hZu4H{~;H`5BW{fFJD}E+-FzZ`OIjHrRQl8} zqfon@K|<(LKZ{^s3uXpf+8GK!wgdhob}*`dlRIq-INHf51p7Q_9>9rXvl@sx8Fqkw zhoKCrJmF~B9ma9+Y&~r~DCuT&f;k&$hrqYHjAD?wiM9cJy$7jFUXYr+&&USeXK7Bt zrwj6qSxU;SWrkm*x5dEj-8W&^xN7}@lx+dBRRYyra7 zaAkz^Uox^38B@2H$G`$5&l76>U<{IirY^{5<@mStVFCU;o8~iKp6Ix%EXg6ed-&Mi zYZCjdkYwT!65ck6rk%QAYqRks(76pNM?|5Q4>a{TW$k%U)B2~@G9X%FV`w~e4L1`C zm5n5*p`QH2n6DakCZmZ>-8KF`12mE3LzJd2Z~VOL#uR$rp_wB<@h0sI$c%$$0L?ZA z6}3!w+0 z4`Bc?9l{V|2EapxT)i9}v1U7J)E#Em z7^10otd$CIwe_|LdgAKt4j(XVZ&|+=vcq(ca4ebJo_nGZ+L=IH##e`@k5MLp?n} zDib>Y@d<4xVb+e|~2)lN$J&!a{W=mc6 zBSD52c;H3oQ_u3qXr^wy-U)}JYM?~@tM9e50mTkT+9eh7a=iiZgyewiqhueCD!cLL z=lYy*<>Mt1mV@0(%$g#uJH_XDD{I&E6z=*@?PHhH6$6t;7)%xypWyT6ulaaxXLaQR z;fqN%(?1g0aw9-6mEh~nSoh`N30)R1YsW9Q?cP3NVKfoBK<)z`Jc6V7!7}@jAUj&J zBX!n{(nl~Bm<*{)5;$bf* zx4Zq*c80a_Fn*YrXe2`K`bMtcNm}DZo1D?^ ziEYRkkoDJqvU_aq1*?ajJCxe5G|}S1ZP>Xo2cTvd>g?jjHhWQCZqGfi>2Oc?!KZS~ z*u7HtJJ}q5L6eNJvX9y*hHrye{>R*`VaZMR6ILG?&{uYr-cC@nz=f%$DV_aP`l(wj ztkqoH$-eplv)Ln;)jyVYWEglQNtJyHgC}n3#ON%9o;4u%Z>=e)T@k--w~-d5j!|dY zW#D(7-oS1yG|5|VjIiyL zR^qmGn*&n|A5Av=8kFxJL@)=)BS3a|ToW(b+?Qv^nM`-%@s-Pm4Z7fDd7%*_ANcGus!)5{ zD)(<7N^fNM&BcTdIS(_Q=||5jid;Wysa!LvM1LxC@t#u$T-An~B|X>Cg4Y|}>y8MO z{JVPk{Q#E1ao+OYV|wfQFzSgk-*<4F{xCy$Ccr?sV&D8X6ENyUqdLVG$qkXQ9q|SE z$0rwdOfivbMiFfW-MIvZXX0$PbdPykhY|VDsM`I94dqM&K`cV1o;0j-jDHvQspD%` z-{O#%fB`;wv$Ob{8+()ZQ-e~7g{=+S_F>ck1@VK;?twJ_V6!7s_k*!jUBwsatJn8D zPunMXoxz&tq9C+40zos$(PUkcydO?Dy=mflTnNfY889#JH*BhxY`1BAU#ztJv)#e% zdP3N_bgpO9ZUX8e=>U&NH#a~~=vaU&AyZ4|npT!Y(V11s$D1<)xTl-2ls$4`XauNB zg*VeyikvHxc1KZN{XF}8;Sr7esquu%xm(hPZ%uJ8Aye~dX0YiJIvxxp!FUXpQzyFj^fy_SbG~ z7j6mJLrni!HJ1&vWEe6PJMmyBP_?yv+Y)a{Uci>Ne2j*G2oI)~Q{aN| zY)zg>wBLtm+2Sj|oN%^>!)guAcHM^wwQq`cKhCLozpmz(;x;(B{bGJ1?xS3CbE1dEst7XZ|&h7I~Ay>j6IOTG{uY<8WnmME@60 zo>Jti=Dvx{#$2p#9SSmGflL|pfQrSJ}=^sbS6Nw`IXrr>%Ry_to^pc}77fQZ#hzV65KUT@bV_}*lgd0BwM#h`mKoK>0U+kZ1X<}i0vx_3aRRKu2M}Sc^Q$J_pUH;_JskUO@=Nj`0Mg= zqWZUqFN7nbhZWtF4`e1Q;}q7tdNg1q(c=fxKRl50Wu#1>yuSGoh9ltSj-o{ly!1ZBL2~ZO8t{fIC%i zc-}PB*m+{xj=g&`?n^c9UV& zJS51Sk)R*;708vyb6vL$=Jp;Y^}r-qz<2y`L@TIKHKe8Tmh7~lRzuV(HtBzDD0u6j z2v1pAIz3m@o)W6{@ORLuw|Rr3X6HEzaZ10wDA6k{mZnLToPZ1eHB1^WoQ^7^{bEZmynLXyQ(Es8Qgv{Q8=Q2ASk`G+m(4 z4gAwiXWVTueb(xxzkks)`g3ehg!yz{#uV)eWX%l^x{PU{dpwf^Tpy!x1`Dxy9ox2c z)r|l8aO1(XDdjj4S5yYZq6BeWBu7Ug_E@D*cP8?z?bOgae)zPJ^Dx-5H~2ZcWkoBM zFG><$h{lXi?>@Xu51ALLQ@&3~zRs3!U)&P?Und7)YN`X_Qw(i$b$*HWD@@e DZi$Q6 delta 4075 zcma)93s_8f8=rH|l(m|sn$k2;Gd8VOr6M7@eCeL9(nV>Sq_h;f>?V}Nx~;0t&v?G=dA@zV|MSe8|NFe}`+I-qegBvD++Jhw zW|hIw&CP`3*p}wgLysxmucCCO@_2LCLb4GhgF++fH&BWwhhrU|3R8$3^iKzfls?g+vhTQAk7@(F}KK>$0LCHa`!nNJNV`F!`+k~A??!_ zrD*)7{jzS&7Xc-W*IJR;j_!R!1=wt|3kdg6_oUAZMJan5@A>>@qw z=}r~(BPpHrr>XDFC+_3ywz`deP&76cdsh#^w!%;#Iw%q36jAS>Y6>aR0kU_xiL(BX zM44BjmC8#bAe_i42ZN(CAyIxT5eXPu5eB02;G-TfoOL&bf~llLnaKHzl$j+GWi2Ne zg3Jvm14}Wu0esv~NuWiKz_JmHDyAgL%p$E?FpiYa%ZjN9B&tZYOes7l5jS6d^+%%Z zq%3vL;qlIkA1~qFNd`|3P!cI`Ej`Xyk^aE+;)Z-jqOXtBN- zhZgP-uRM))Q^)}be^zGrau2?&>&dTEBA^x<4bszZ6vK)4uqpJJk8h9LK4@XY4 z1pN++9A2ck%4Wp*cY5`%9MpJ*K99E?diD?^@xFu48p~f8Chc618*Lf())Q4*hF#tEJ)=dtZ&knD$E}pl zyU!QrSsZRB`O8SI%-L%qF7Y`Ur^UuJ#Us$OU!LKw?B=Gm(ArF zo)DQ%-ESUJ+PbS^kKn+%`SGQkQOG~mtf*hjqA}&qHN zap9W#RvFDl_SIInHa9m|X|XW@f;lArznT?sHJi=G5r;h}uli~DP}N4~xQX#8(^5Fx zV9Z(gBKE@ZjcyKKkDqf*IY6$>auC+0#Y5rMT>X7EbF-CeoqQI+KXxyw0e;e-x;D7yLD#{KJmCV_SMYnOluA! zl1-fM4d&4=aS=E5AK&piuIjTFWgTu>K9KW>#R&@@RDb*0%aryGVNRqxtnkp^w9@LW z?Up;HcUsPD>+pQR&p*p((Z=Lj7NesO?1j$AtJY+vUe=A>4SDMB!`F&AhzOW^j*^(( zPqw-kR=HmHP}^6Jye^YFa`^(FvGvtv9Sq!eFMjLP_Bi1=^e8WNY7V*ty)F_uR zu*?zN@P~K!?)mQ2EvGMj8K`KjNk@k`Q)W#Q)M-%9*R^?B(No>!b3d%t8$H#~;0&j2 zz?8r4R1zT~kX*uy7lPv@%p@IWd&MQpWD%&DVjSVbWmpVn6Nh3wfK(=NvGZ`_r11yG z0K$&x`!w?*<}!wif?RIa25N3r2eX)>3a;QV8)1|k5+`$FB7|STzB#aov0G-xWCEco zpe`N-Y}LvU;5Y}#K3X{e;uxSZtsD)(wHPS^J~C@!Pc4p^4)s5ylwRk=C>Y7SXI(6b z78#0j2dBxj2m)=;hlA%;YM>spEFeXhXmig{uv$Xcgr5D5lBK?t4@X{YdUIu6`M%f1 z4l8lmYf)ps3}@!_>F2TkH6`{;dgkisR#*CdKoK%v%2?~p*rRVibf^5c2Y5LXrtr3j zNhm+- zKk;b@z)|XkGcl-@X=b$JJ?eKI-veFY-@a}wop?F@QQMf+W!!~UJ&ZBq@dSbBuOI!Z zm3gQ4pG_F&u@y2aUB20kforDV79hI~U(2}1fvz?-`!!gUUhm#AG(yi}gH_{OmD1RR z=6un`!4A~KTcL~Dza94hxTEx~mUQ^9OM9X?Ti9r;SN4hhEz{Y`Y)lm* p%3=?b))n?zrTggWJkx%OsUljykj3HB@%|}G_&H6jt&>YYN&xklM~?si delta 51 zcmV-30L=gM#R2QY0kAX}0mZX57!U%pT^ex$v*sMY1GBy$$ON;VC3*z`iLoL07qKvq J1+zg&DjFs~6b1kQ diff --git a/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock index c1876c51dba757b41ec91856f7ad03cddeb11c4e..6ccf9c21e350094fd196b74a7644021c175081f0 100644 GIT binary patch literal 17 VcmZS1dlYu{GvD!g1~3qu4gfsc1#SQU literal 17 VcmZS1dlYu{GvD!g1~3q80RTM61zP|B diff --git a/android/.gradle/file-system.probe b/android/.gradle/file-system.probe index d2f11f82f991462800ba549821433970e3b6b7f3..6818b5d016e086e5a9cc83b615b813a22cb85373 100644 GIT binary patch literal 8 PcmZQzV4Ti&Nq#*527CfP literal 8 PcmZQzV4Tj(;^+$i1Ly%R diff --git a/android/app/src/main/java/org/tensorflow/lite/examples/poseestimation/ml/PoseNet.kt b/android/app/src/main/java/org/tensorflow/lite/examples/poseestimation/ml/PoseNet.kt index 868320f..fee427e 100644 --- a/android/app/src/main/java/org/tensorflow/lite/examples/poseestimation/ml/PoseNet.kt +++ b/android/app/src/main/java/org/tensorflow/lite/examples/poseestimation/ml/PoseNet.kt @@ -45,10 +45,12 @@ class PoseNet(private val interpreter: Interpreter, private var gpuDelegate: Gpu companion object { // 设置CPU线程数 private const val CPU_NUM_THREADS = 4 + // 图像标准化时的均值和标准差 private const val MEAN = 127.5f private const val STD = 127.5f private const val TAG = "Posenet" + // 模型文件名称 private const val MODEL_FILENAME = "posenet.tflite" @@ -60,10 +62,12 @@ class PoseNet(private val interpreter: Interpreter, private var gpuDelegate: Gpu when (device) { Device.CPU -> { } + Device.GPU -> { gpuDelegate = GpuDelegate() // 使用GPU加速 options.addDelegate(gpuDelegate) } + Device.NNAPI -> options.setUseNNAPI(true) // 使用NNAPI加速 } return PoseNet( @@ -77,6 +81,7 @@ class PoseNet(private val interpreter: Interpreter, private var gpuDelegate: Gpu // 保存上一次推理的时间 private var lastInferenceTimeNanos: Long = -1 + // 获取输入张量的宽度和高度 private val inputWidth = interpreter.getInputTensor(0).shape()[1] private val inputHeight = interpreter.getInputTensor(0).shape()[2] @@ -140,8 +145,9 @@ class PoseNet(private val interpreter: Interpreter, private var gpuDelegate: Gpu fun calculateAngle(x1: Float, y1: Float, x2: Float, y2: Float): Float { val Y = y2 - y1 val X = x2 - x1 - return Math.toDegrees(atan2(Y.toDouble(),X.toDouble())).toFloat() + return Math.toDegrees(atan2(Y.toDouble(), X.toDouble())).toFloat() } + private fun postProcessModelOuputs( heatmaps: Array>>, offsets: Array>> @@ -231,7 +237,7 @@ class PoseNet(private val interpreter: Interpreter, private var gpuDelegate: Gpu return Math.toDegrees(acos(cosAngle.toDouble())).toFloat() } - // 添加角度并控制角度列表长度 + // 添加角度 fun addAngle(angle: Float) { angles.add(angle) if (angles.size > 8) { @@ -255,20 +261,24 @@ class PoseNet(private val interpreter: Interpreter, private var gpuDelegate: Gpu val leftWrist = keypointList.first { it.bodyPart == BodyPart.LEFT_WRIST } calculateAndAddAngle(leftShoulder, leftElbow, leftWrist) - val rightShoulder = keypointList.first { it.bodyPart == BodyPart.RIGHT_SHOULDER } + val rightShoulder = + keypointList.first { it.bodyPart == BodyPart.RIGHT_SHOULDER } val rightElbow = keypointList.first { it.bodyPart == BodyPart.RIGHT_ELBOW } calculateAndAddAngle(leftShoulder, rightShoulder, rightElbow) } + BodyPart.RIGHT_SHOULDER -> { val rightShoulder = keypoint val rightElbow = keypointList.first { it.bodyPart == BodyPart.RIGHT_ELBOW } val rightWrist = keypointList.first { it.bodyPart == BodyPart.RIGHT_WRIST } calculateAndAddAngle(rightShoulder, rightElbow, rightWrist) - val leftShoulder = keypointList.first { it.bodyPart == BodyPart.LEFT_SHOULDER } + val leftShoulder = + keypointList.first { it.bodyPart == BodyPart.LEFT_SHOULDER } val leftElbow = keypointList.first { it.bodyPart == BodyPart.LEFT_ELBOW } calculateAndAddAngle(rightShoulder, leftShoulder, leftElbow) } + BodyPart.LEFT_HIP -> { val leftHip = keypoint val rightHip = keypointList.first { it.bodyPart == BodyPart.RIGHT_HIP } @@ -281,6 +291,7 @@ class PoseNet(private val interpreter: Interpreter, private var gpuDelegate: Gpu val leftAnkle = keypointList.first { it.bodyPart == BodyPart.LEFT_ANKLE } calculateAndAddAngle(leftHip, leftKnee, leftAnkle) } + BodyPart.RIGHT_HIP -> { val rightHip = keypoint val leftHip = keypointList.first { it.bodyPart == BodyPart.LEFT_HIP } @@ -290,14 +301,23 @@ class PoseNet(private val interpreter: Interpreter, private var gpuDelegate: Gpu val rightAnkle = keypointList.first { it.bodyPart == BodyPart.RIGHT_ANKLE } calculateAndAddAngle(rightHip, rightKnee, rightAnkle) } - // 这里可以继续添加其他 BodyPart 的处理分支 + else -> { - // 如果遇到其他没有显式列出的bodyPart,进行处理 println("Unknown body part: ${keypoint.bodyPart}") } } } } + + // 提供外部访问 angles 的方法 + fun getAngles(): List { + return angles.toList() // 返回 angles 的副本 + } + + // 可以选择提供修改 angles 的方法 + fun clearAngles() { + angles.clear() + } } // 返回上一次推理的时间