package Ġcom . je ong ari . mask _ or _ not Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . os . System Clock Ċ import Ġandroid . util . Log Ċ import Ġtim ber . log . Tim ber ĊĊ Ċ class ĠImage Classifier Float Exception Ġprivate Ġconstructor ( ĊĠĠĠ Ġactivity : ĠActivity , ĊĠĠĠ Ġimage Size X : ĠInt , ĊĠĠĠ Ġimage Size Y : ĠInt , ĊĠĠĠ Ġprivate Ġval Ġoutput W : ĠInt , ĊĠĠĠ Ġprivate Ġval Ġoutput F inger Pose Draw View H : ĠInt , ĊĠĠĠ Ġmodel Path : ĠString , ĊĠĠĠ Ġnum Bytes Per Channel : ĠInt Ġ= Ġ 4 Ġ// Ġa Ġ 3 2 bit Ġfloat Ġvalue Ġrequires Ġ 4 Ġbytes Ċ ) Ġ: Image Classifier ( activity , Ġimage Size X , Ġimage Size Y , Ġmodel Path , Ġnum Bytes Per Channel ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAn Ġarray Ġto Ġhold Ġinference Ġresults , Ġto Ġbe Ġfeed Ġinto ĠTensor flow ĠLite Ġas Ġoutputs . ĊĠĠĠĠ Ġ* ĠThis Ġisn 't Ġpart Ġof Ġthe Ġsuper Ġclass , Ġbecause Ġwe Ġneed Ġa Ġprimitive Ġarray Ġhere . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġheat Map Array : ĠArray < Float Array > Ġ= ĠArray ( 1 ){ ĠFloat Array ( 2 ) Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġadd Pixel Value ( pixel Value : ĠInt ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ// b gr Ċ // ĠĠĠĠĠĠĠ Ġimg Data !!. put Float ((( pixel Value Ġand Ġ 0 xFF ). toFloat ())) Ċ // ĠĠĠĠĠĠĠ Ġimg Data !!. put Float ((( pixel Value Ġshr Ġ 8 Ġand Ġ 0 xFF ). toFloat ())) Ċ // ĠĠĠĠĠĠĠ Ġimg Data !!. put Float ((( pixel Value Ġshr Ġ 1 6 Ġand Ġ 0 xFF ). toFloat ())) ĊĠĠĠĠĠĠĠ Ġ// rgb ĊĠĠĠĠĠĠĠ Ġimg Data !!. put Float ((( pixel Value Ġshr Ġ 1 6 Ġand Ġ 0 xFF ). toFloat ())) ĊĠĠĠĠĠĠĠ Ġimg Data !!. put Float ((( pixel Value Ġshr Ġ 8 Ġand Ġ 0 xFF ). toFloat ())) ĊĠĠĠĠĠĠĠ Ġimg Data !!. put Float ((( pixel Value Ġand Ġ 0 xFF ). toFloat ())) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġrun Inference () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel StartTime Ġ= ĠSystem Clock . uptime Millis () ĊĠĠĠĠĠĠĠ Ġt flite ?. run ( img Data !! , Ġheat Map Array ) ĊĠĠĠĠĠĠĠ Ġval Ġmodel EndTime Ġ= ĠSystem Clock . uptime Millis () ĊĊĠĠĠĠĠĠĠ Ġprob Mask Ġ= Ġheat Map Array [ 0 ][ 0 ] ĊĠĠĠĠĠĠĠ Ġprob Non Mask Ġ= Ġheat Map Array [ 0 ][ 1 ] ĊĊĠĠĠĠĠĠĠ ĠLog . d (" Inference ĠResult ", Ġheat Map Array . content Deep ToString ()) Ċ Ċ // ĠĠĠĠĠĠĠ ĠLog . d (" Inference ĠTime ", Ġ( model EndTime Ġ- Ġmodel StartTime ). toString ()) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTAG Ġ= Ġ" F pe Float Exception " ĊĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCreate ĠImage Classifier Float In ception Ġinstance ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġimage Size X ĠGet Ġthe Ġimage Ġsize Ġalong Ġthe Ġx Ġaxis . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġimage Size Y ĠGet Ġthe Ġimage Ġsize Ġalong Ġthe Ġy Ġaxis . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġoutput W ĠThe Ġoutput Ġwidth Ġof Ġmodel ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġoutput H ĠThe Ġoutput Ġheight Ġof Ġmodel ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġmodel Path ĠGet Ġthe Ġname Ġof Ġthe Ġmodel Ġfile Ġstored Ġin ĠAssets . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġnum Bytes Per Channel ĠGet Ġthe Ġnumber Ġof Ġbytes Ġthat Ġis Ġused Ġto Ġstore Ġa Ġsingle ĊĠĠĠĠĠĠĠĠ Ġ* Ġcolor Ġchannel Ġvalue . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity : ĠActivity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Size X : ĠInt Ġ= Ġ 2 2 4 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Size Y : ĠInt Ġ= Ġ 2 2 4 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput W : ĠInt Ġ= Ġ 1 1 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput H : ĠInt Ġ= Ġ 1 1 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Path : ĠString Ġ= Ġ" model _ un quant . t flite ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnum Bytes Per Channel : ĠInt Ġ= Ġ 4 ĊĠĠĠĠĠĠĠ Ġ): ĠImage Classifier Float Exception Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage Classifier Float Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Size X , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Size Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput W , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput H , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Path , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnum Bytes Per Channel ) ĊĠĠĠ Ġ} Ċ }