| Literature DB >> 32512749 |
Giuseppe Conti1, Marcos Quintana2, Pedro Malagón3,4, David Jiménez1.
Abstract
This paper presents a study on the optimization of the tracking system designed for patients with Parkinson's disease tested at a day hospital center. The work performed significantly improves the efficiency of the computer vision based system in terms of energy consumption and hardware requirements. More specifically, it optimizes the performances of the background subtraction by segmenting every frame previously characterized by a Gaussian mixture model (GMM). This module is the most demanding part in terms of computation resources, and therefore, this paper proposes a method for its implementation by means of a low-cost development board based on Zynq XC7Z020 SoC (system on chip). The platform used is the ZedBoard, which combines an ARM Processor unit and a FPGA. It achieves real-time performance and low power consumption while performing the target request accurately. The results and achievements of this study, validated in real medical settings, are discussed and analyzed within.Entities:
Keywords: FPGA; GMM; MoG; background subtraction; human detection; image analysis; image processing; patient privacy; tracking
Mesh:
Year: 2020 PMID: 32512749 PMCID: PMC7309050 DOI: 10.3390/s20113189
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1Typical application scenario.
Figure 2ICT4Life project structure from [14].
Figure 3System elements considered: the Zenith camera (source), the ZedBoard (processing system) and control server (sink).
Figure 4Workflow of the global tracking algorithm.
Figure 5Software processing workflow to be modified and implemented into the FPGA.
Figure 6Zynq structure.
Figure 7RAM distribution and utilization on the ZedBoard.
Data type conversion of the main variables.
| Variable | Original Type | Size (in Bit) | FPGA Type | Size (in Bit) |
|---|---|---|---|---|
| Image In | unsigned char | 8 | unsigned char | 8 |
| Image Out | unsigned char | 8 | unsigned char | 8 |
| modeUsed[] | unsigned char | 8 | unsigned char | 8 |
| Variance[] | float | 32 | fixed | 16 |
| Weight[] | float | 32 | fixed | 16 |
| Mean[] | float | 32 | fixed | 16 |
Figure 8Frame buffering strategy used to move data.
Figure 9Multi-threading Frame buffering.
Time measurements (in ms) to process one frame depending on the video sequence and the resolution for the i7. Rpi3 and ZedB are presented in i7 slower ratio. BS stands for background subtraction, KT stands for Kalman Tracking, i7 represents the personal computer, Rpi3 stands for Raspberry pi 3 and ZedB stands for ZedBoard.
| Sequence | Resolution | Average Num | i7 BS | i7 KT | Rpi3 BS | Rpi3 KT | ZedB BS | ZedB KT |
|---|---|---|---|---|---|---|---|---|
| shop1.mp4 | 640 × 480 | 3.5 | 13.3 | 0.04 | 8.84 | 12.5 | 16.2 | 16.5 |
| shop2.mp4 | 640 × 480 | 8 | 13.6 | 0.08 | 8.87 | 14.5 | 16.6 | 20.75 |
| hosp1.mp4 | 1056 × 1056 | 4.3 | 48.9 | 0.045 | 8.02 | 11.11 | 17,2 | 14.88 |
| hosp2.mp4 | 1056 × 1056 | 3 | 48.4 | 0.051 | 7.6 | 8.82 | 17.14 | 15.5 |
| hosp3.mp4 | 1056 × 1056 | 3.3 | 48.5 | 0.042 | 7.56 | 9.3 | 17.13 | 15.48 |
| hosp4.mp4 | 1056 × 1056 | 2.3 | 49.3 | 0.049 | 5.62 | 7.75 | 17.68 | 15.10 |
| hosp5.mp4 | 1056 × 1056 | 5 | 48.4 | 0.056 | 7.8 | 6.96 | 16.98 | 10 |
| lab1.mp4 | 854 × 480 | 2 | 17.5 | 0.038 | 8.82 | 12.37 | 16.69 | 17.37 |
| lab2.mp4 | 1920 × 1080 | 3 | 88.7 | 0.05 | 8.93 | 12.2 | 17.03 | 15.4 |
Figure 10Evolution of the number of frames to buffer in RAM.
Time (in ms) to process the background subtraction on one frame depending on the video sequence and the resolution (square aspect ratio), using the ZedBoard (CPU+FPGA).
| Sequence | 480 × 480 | 480 × 480 | 512 × 512 | 512 × 512 | 768 × 768 | 768 × 768 | 1056 × 1056 | 1056 × 1056 |
|---|---|---|---|---|---|---|---|---|
| RGB (ms) | Gray (ms) | RGB (ms) | Gray (ms) | RGB (ms) | Gray (ms) | RGB (ms) | Gray (ms) | |
| shop1.mp4 | 45.8 | 43.05 | 52.9 | 48.9 | 121.3 | 115.9 | 234.9 | 219.9 |
| shop2.mp4 | 45.1 | 43.6 | 52.2 | 50.6 | 121.5 | 116.5 | 237.5 | 221.9 |
| hosp1.mp4 | 47.4 | 44.6 | 53.5 | 49.05 | 123.9 | 123.9 | 242.2 | 228.7 |
| hosp2.mp4 | 46.9 | 45.1 | 51.4 | 50 | 125.1 | 117.2 | 243.3 | 227.3 |
| hosp3.mp4 | 47.2 | 44.6 | 52.5 | 51.8 | 124.3 | 124.3 | 245.8 | 229.9 |
| hosp4.mp4 | 48.5 | 45.4 | 53.8 | 49.8 | 125.8 | 119.1 | 244.9 | 230.4 |
| hosp5.mp4 | 46.5 | 43.8 | 53.5 | 50.5 | 124.2 | 117.9 | 242.9 | 229.8 |
| lab1.mp4 | 44.6 | 43.3 | 50.9 | 49.2 | 121.9 | 115.2 | 233.2 | 222.2 |
| lab2.mp4 | 44.9 | 43.2 | 50.3 | 48.8 | 118.7 | 115.4 | 232.1 | 219.9 |
Time (in ms) to process the background subtraction on one frame depending on the video sequence and the resolution (rectangle aspect ratio), using the ZedBoard (CPU+FPGA).
| Sequence | 160 × 120 | 160 × 120 | 320 × 240 | 320 × 240 | 640 × 480 | 640 × 480 |
|---|---|---|---|---|---|---|
| RGB (ms) | Gray (ms) | RGB (ms) | Gray (ms) | RGB (ms) | Gray (ms) | |
| shop1.mp4 | 3.9 | 3.6 | 15.3 | 13.7 | 62.2 | 59.04 |
| shop2.mp4 | 4.1 | 3.8 | 15.5 | 13.9 | 63.6 | 59.7 |
System average time measures in FPS, using the ZedBoard (CPU+FPGA).
| Sequence | 160 × 120 | 320 × 240 | 480 × 480 | 512 × 512 | 640 × 480 | 768 × 768 | 1056 × 1056 |
|---|---|---|---|---|---|---|---|
| FPS | FPS | FPS | FPS | FPS | FPS | FPS | |
| RGB | 250 | 64.93 | 21.58 | 19.11 | 15.9 | 8.13 | 4.17 |
| Grayscale | 277.8 | 72.46 | 22.7 | 20.07 | 16.84 | 8.45 | 4.43 |
Main characteristics of literature tracking systems and differences with related work. NS stands for not specified, Eth stands for Ethernet, BGS stands for background subtractor.
| Work | Hardware | Connectivity | Resolutions | Frame Rate | Power Consumption | Remarks |
|---|---|---|---|---|---|---|
| IN/OUT | (FPS) | (W) | ||||
| Chen et al. 2017 [ | Zynq 7020 | Eth/NS | 640 × 480 | 30 | 1.82 | In/Out times not considered |
| Guo et al. 2017 [ | Zynq 7020 | PMOD/NS | 320 × 240 resized to 160 × 120 | 89.2 | 2.99 | Out system times not specified |
| Cocorullo et al. 2019 [ | Zynq 7020 Virtex 6 | NS | HD resized to 160 × 128 and 320 × 240 | up to 74 | NS | In/Out times not considered and not specified |
| Sajjanar et al. 2016 [ | Zynq 7020 | PMOD/VGA | 640 × 480 | 81.57 | NS | The chain process only the BGS |
| Zhang et al. 2018 [ | Zynq 7020 | NS | VOT2015 dataset | 18.6 | 1.284 | In/Out times not considered |
| Liu et al. 2015 [ | Zynq 7020 | NS/HDMI | 1137 × 686 | 1.30 | NS | In system times not specified |
| Cho et al. 2019 [ | Virtex 5 | NS/HDMI | 640 × 480 | 30 | NS | In system times not specified |
| Our Work | Zynq 7020 | Eth/Eth | up to 1056 × 1056 see | up to 277.8 see | 2.025 Gray 2.297 RGB | Complete chain analyzed, In/Out times considered |
FPGA mixture of Gaussian performance comparison.
| Previous Works | Our Work | |||||
|---|---|---|---|---|---|---|
| Work | Real Resized Resolution | FPS | Resolution | FPS Complete Chain | FPS MoG Only FPGA | Remarks |
| Chen et al. 2017 [ | 640 × 480 | 30 | 640 × 480 | 15.9 (RGB) 16.84 (Gray) | 162 | I/O data exchange associated times are not considered |
| Guo et al. 2017 [ | 160 × 120 | 89.2 | 160 × 120 | 250 (RGB) 277.8 (Gray) | 2600 | The Input is resized, the Output data exchange associated times are not specified |
| Cocorullo et al. 2019 [ | 160 × 128 and 320 × 240 | 74 | 160 × 120 | 250 (RGB) 277.8 (Gray) | 2438 | The Input is resized, I/O data exchange associated times are not considered, the I/O interfaces are not specify |
| Sajjanar et al. 2016 [ | 640 × 480 | 81.57 | 640 × 480 | 15.9 (RGB) 16.84 (Gray) | 162 | The complete chain is specified, but no Tracking is performed, only MoG |
| Zhang et al. 2018 [ | from 320 × 180 to 1280 × 720 | 18.6 | 320 × 240 | 64.93 (RGB) 72.46 (Gray) | 650 | I/O data exchange associated times are not considered |
| Liu et al. 2015 [ | 1137686 | 1.30 | 1056 × 1056 | 4.17 (RGB) 4.43 (Gray) | 44.8 | The Input data exchange associated times are not specified |
| Cho et al. 2019 [ | 640 × 480 | 30 | 640 × 480 | 15.9 (RGB) 16.84 (Gray) | 162 | Only FPGA implementation, the time associated to input interface is not specified |
Figure 11Images comparison (a–t).
Tracking algorithm results comparison (represented in percentages).
| Sequence | TP (%) | FP (%) | FN (%) | TP (%) | FP (%) | FN (%) | TP (%) | FP (%) | FN (%) |
|---|---|---|---|---|---|---|---|---|---|
| i7 RGB | i7 RGB | i7 RGB | ZB Gray | ZB Gray | ZB Gray | ZB RGB | ZB RGB | ZB RGB | |
| hosp1 | 81.78 | 9.98 | 4.23 | 48.94 | 38.80 | 12.26 | 72.01 | 18.13 | 9.86 |
| hosp2 | 69.78 | 14.10 | 16.11 | 40.87 | 31.01 | 28.12 | 66 | 15 | 19 |
| shop1 | 84.87 | 4.52 | 10.61 | 54.28 | 32.21 | 13.51 | 73.57 | 15.80 | 10.63 |
| shop2 | 60.23 | 22.59 | 17.18 | 22.62 | 7.60 | 69.78 | 39.91 | 6.04 | 54.05 |
| lab1 | 87.82 | 2.78 | 9.39 | 46.67 | 34.36 | 18.97 | 79.83 | 8.41 | 11.76 |
| lab2 | 74.01 | 12.77 | 13.21 | 39.66 | 34.18 | 26.16 | 67.41 | 11.24 | 21.35 |
Comparison of precision and recall for the tracking algorithm.
| Sequence | Precision (%) | Recall (%) | Precision (%) | Recall (%) | Precision (%) | Recall (%) |
|---|---|---|---|---|---|---|
| i7 RGB | i7 RGB | ZB Gray | ZB Gray | ZB RGB | ZB RGB | |
| hosp1 | 89.58 | 93.22 | 55.78 | 79.97 | 79.89 | 87.95 |
| hosp2 | 83.19 | 88.89 | 56.85 | 59.24 | 81.48 | 77.65 |
| shop1 | 94.94 | 89.89 | 62.76 | 80.08 | 82.32 | 87.38 |
| shop2 | 72.72 | 77.81 | 74.84 | 24.48 | 86.86 | 42.48 |
| lab1 | 96.92 | 90.33 | 57.59 | 71.09 | 90.48 | 87.16 |
| lab2 | 85.27 | 84.91 | 53.71 | 60.26 | 85.71 | 75.95 |
FPGA resources utilization (in number of elements).
| Resource | Available | Utilization | Utilization (%) | Utilization | Utilization (%) |
|---|---|---|---|---|---|
| RGB | RGB | Gray | Gray | ||
| LUT | 53,200 | 24,170 | 45.43 | 6892 | 12.95 |
| LUTRAM | 17,400 | 11,589 | 66.60 | 328 | 1.89 |
| FF | 106,400 | 11,588 | 10.89 | 9397 | 8.83 |
| BRAM | 140 | 135 | 96.43 | 111 | 79.29 |
| DSP | 220 | 39 | 17.73 | 24 | 10.91 |
| BUFG | 32 | 1 | 3.13 | 1 | 3.13 |