Real-time Object Image Tracking Based on Block-Matching AlgorithmOutlineIntroductionObject-tracking algorithmSlide 5Slide 6Implementation MethodologyImplementation Methodology & OptimizationImplementation approachesImplementation approaches - PLXSlide 11Implementation Approaches - ET44M210Evaluation of ET44M210Let’s make a brief demonstration about motion tracking on ET44M210 chip…41SWS/BPDReal-time Object Image Tracking Based on Block-Matching Algorithm ECE 734Hsiang-Kuo TangTai-Hsuan WuYing-Tien LinOutlineIntroductionMotion Tracking TheoriesDifferent Motion Analysis (DMA) MethodBlock-Matching Algorithm (BMA)Implementation IssuesMethodology & OptimizationsDifferent Approaches – C++, PLX, ET44M210DemonstrationIntroductionMotivation: There are many commercial applications about motion trackingRobotic VisionElectrical PetTraffic MonitoringMore….Objective: Efficient Implementation in portable embedded systemSimple but powerful algorithmsSmart optimizations by developersObject-tracking algorithmDifferent motion analysis methodSAD of consecutive framesA threshold is set to detect the movingThe motion objectis here!Object-tracking algorithmDisadvantage of DMA methodMay include covered or covering backgroundThe size of tracking area is not the same as the sizeof tracking object !Object-tracking algorithmSolution: Block-Matching Algorithm (BMA)Using motion vector to compensate the redundant part of tracking areaUsing motion estimationto adjust the size of tracking areaImplementation MethodologyImplementation Methodology & OptimizationCapture images from I/O device & transfer RGB to YUV valuesPre-compute YUV values & save them in ROMCompute SAD values between adjacent framesParallel Processing as much as possibleCompute motion estimation & compensate tracking areaReplace full-search with 41SWS/BPD (FS-like sub-sampling)Implementation approachesSimulation in C++ programEvaluate the whole algorithmSimulation in PLXImplement some optimizationsRealization in ET44M210 micro-controllerFind the performance bottlenecksImplementation approaches - PLXOptimizations: Parallel ProcessingAbsolute value calculation: 4 ops per register abs8 macro Rd,Rs1,Rs2 // used in SAD, MAD operations psub.1.u Rtmp1,Rs1,Rs2 psub.1.u Rtmp2,Rs2,Rs1 padd.1.u Rd,Rtmp1,Rtmp2 endmLoad & store operation alignment: 4 ops/registermix.4.r Rtmp6,RGB2,RGB1 // fit 4 RGB values in 1 register mix.4.r Rtmp7,RGB4,RGB3 store.8 Rtmp6,PLCD,0 // plot them in LCD screen store.8 Rtmp7,PLCD,8Implementation approaches - PLXResults: DMA/BMA between two framesImplementation Approaches - ET44M210Evaluation of ET44M210Type Inst / frameGrab image 460800Convert Y 3234600Calculate SAD161100Find MVs 491355Summation 4347855frames/sec 11.04 When running at full speed (48MHz), 11 frames per cycle can be achieved.But due to the USB module, the ET44M210 can only run at 24MHz.Lots of instructions must be cost to handle USB transmission, so that the average performance reduced to 0.9 frame per second.Let’s make a briefdemonstration about motion tracking on ET44M210
View Full Document