├── README.md
├── YOLO.gif
├── cfg
└── tiny-yolo-voc-3c.cfg
├── labels.txt
└── object-detection-with-YOLO.ipynb
/README.md:
--------------------------------------------------------------------------------
1 | ## Intro
2 |
3 | While learning YOLO I have gone through a lot of blogs, github codes, blogs, courses. I have tried to combine all of them and see how to work with my own dataset set.
4 |
5 | I have used Anaconda and jupyter notebook. Here I have used Darkflow to detect custom object.
6 | Also I use Windows. Therefore all my tips are likely to run well on Windows.
7 |
8 | ## Requirements
9 |
10 | Python3, tensorflow 1.0, numpy, opencv 3. Links for installation below:
11 |
12 |
13 | - [Python 3.5 or 3.6, Anaconda](https://www.youtube.com/watch?v=T8wK5loXkXg)
14 | - [Tensorflow](https://www.youtube.com/watch?v=RplXYjxgZbw&t=91s). I recommend using the tensorflow GPU version. But if you don't have GPU, just go ahead and install the CPU versoin. GPUs are more than 100x faster for training and testing neural networks than a CPU. Find more [here](https://pjreddie.com/darknet/hardware-guide/)
15 | - [Opencv](https://anaconda.org/conda-forge/opencv)
16 | ## Download the Darkflow repo
17 |
18 | - Click [this](https://github.com/thtrieu/darkflow)
19 | - Download and extract the files somewhere locally
20 |
21 |
22 | ## Getting started
23 |
24 | You can choose _one_ of the following three ways to get started with darkflow. If you are using Python 3 on windows you will need to install Microsoft Visual C++ 14.0. [Here](https://www.scivision.co/python-windows-visual-c++-14-required/) you can find installation process, why it is required, references etc or you can try [stackoverflow ](https://stackoverflow.com/).
25 |
26 | 1. Just build the Cython extensions in place. NOTE: If installing this way you will have to use `./flow` in the cloned darkflow directory instead of `flow` as darkflow is not installed globally.
27 | ```
28 | python3 setup.py build_ext --inplace
29 | ```
30 |
31 | 2. Let pip install darkflow globally in dev mode (still globally accessible, but changes to the code immediately take effect)
32 | ```
33 | pip install -e .
34 | ```
35 |
36 | 3. Install with pip globally
37 | ```
38 | pip install .
39 | ```
40 |
41 | ## Download a weights file
42 |
43 | - Download the YOLOv2 608x608 weights file [here](https://pjreddie.com/darknet/yolov2/)
44 | - Read more about YOLO (in darknet) and download weight files [here](http://pjreddie.com/darknet/yolo/). In case the weight file cannot be found, you can check [here](https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU), which include `yolo-full` and `yolo-tiny` of v1.0, `tiny-yolo-v1.1` of v1.1 and `yolo`, `tiny-yolo-voc` of v2. Owner of this weights is [Trieu](https://github.com/thtrieu).
45 | - NOTE: there are other weights files you can try if you like
46 | - create a ```wights``` folder within the ```darkflow-master``` folder
47 | - put the weights file in the ```weights``` folder
48 |
49 | ## Make own Dataset
50 |
51 | I have run the model on around 250 images. I recommend to have a much bigger dataset for better performance.
52 | #### Dataset
53 | To make a dataset of objects around you
54 | - start taking photos of the objects that you want to detect.
55 | - make sure have pictures from different angles, different poses, in different environment etc.
56 | - try to make the dataset as big as possible for better performance.
57 |
58 | #### Annotation
59 | - To annotate images download [labelImg](https://tzutalin.github.io/labelImg/).
60 | - Check this [video](https://www.youtube.com/watch?v=p0nR2YsCY_U&feature=youtu.be) to learn how to use lebelImg.
61 | - Github repo for labelImg can be found [here](https://github.com/tzutalin/labelImg#installation)
62 |
63 | ## Training on your own dataset
64 |
65 | *The steps below assume we want to use tiny YOLO and our dataset has 3 classes*
66 |
67 | 1. Create a copy of the configuration file `tiny-yolo-voc.cfg` and rename it according to your preference `tiny-yolo-voc-3c.cfg` (It is crucial that you leave the original `tiny-yolo-voc.cfg` file unchanged, see below for explanation). Here `tiny-yolo-voc-3c.cfg` is for 3 classes, you can change the name as you wish.
68 |
69 | 2. In `tiny-yolo-voc-3c.cfg`, change classes in the [region] layer (the last layer) to the number of classes you are going to train for. In our case, classes are set to 3.
70 |
71 | ```python
72 | ...
73 |
74 | [region]
75 | anchors = 1.08,1.19, 3.42,4.41, 6.63,11.38, 9.42,5.11, 16.62,10.52
76 | bias_match=1
77 | classes=3 ## 3 classes
78 | coords=4
79 | num=5
80 | softmax=1
81 |
82 | ...
83 | ```
84 |
85 | 3. In `tiny-yolo-voc-3c.cfg`, change filters in the [convolutional] layer (the second to last layer) to num * (classes + 5). In our case, num is 5 and classes are 3 so 5 * (3 + 5) = 40 therefore filters are set to 40.
86 |
87 | ```python
88 | ...
89 |
90 | [convolutional]
91 | size=1
92 | stride=1
93 | pad=1
94 | filters=40 ## 5 * (3 + 5) = 40
95 | activation=linear
96 |
97 | [region]
98 | anchors = 1.08,1.19, 3.42,4.41, 6.63,11.38, 9.42,5.11, 16.62,10.52
99 |
100 | ...
101 | ```
102 |
103 | 4. Change `labels.txt` to include the label(s) you want to train on (number of labels should be the same as the number of classes you set in `tiny-yolo-voc-3c.cfg` file). In my case, `labels.txt` will contain 3 labels.
104 |
105 | ```
106 | king
107 | ace
108 | ten
109 | ```
110 | 5. Reference the `tiny-yolo-voc-3c.cfg` model when you train.
111 |
112 | `python flow --model cfg/tiny-yolo-voc-3c.cfg --load weights/tiny-yolo-voc.weights --train --annotation train/Annotations --dataset train/Images --gpu 1.0 --epochs 300`
113 | In windows you need to type `python` at the beginning otherwise it does not recognise the flow command. Next spesify the model `--model cfg/tiny-yolo-voc-3c.cfg` and the weights `--load weights/tiny-yolo-voc.weights`. After that specify the path for the annatations `--annotation train/Annotations` and images `--dataset train/Images`. Use `--gpu 1.0` to use gpu for speed, if you do not have GPU just don't use this part. You can specify the number of epochs. By default it is 1000. However it can be stopped anytime. I recommend to keep the lose below 1.
114 |
115 |
116 | - Why should I leave the original `tiny-yolo-voc.cfg` file unchanged?
117 |
118 | When darkflow sees you are loading `tiny-yolo-voc.weights` it will look for `tiny-yolo-voc.cfg` in your cfg/ folder and compare that configuration file to the new one you have set with `--model cfg/tiny-yolo-voc-3c.cfg`. In this case, every layer will have the same exact number of weights except for the last two, so it will load the weights into all layers up to the last two because they now contain different number of weights.
119 |
120 |
121 |
122 | ## Object Detection using YOLO
123 |
124 | Open the object-detection-with-YOLO.ipynb file. I have tried to add comments to make it easy to understand.
125 |
126 | #### Image
127 |
128 | To detect object from images:
129 | 1. Go to the Object Detection from Image section.
130 | 2. Change the image name with your image name from the following line
131 | `img = cv2.imread('images/img_2386.jpg', cv2.IMREAD_COLOR)`
132 | 3. If you have multiple object in your image then you have to define all the `tl` (Top left), `br` (Bottom right) for different ofjects and their labels.
133 |
134 | #### Video
135 |
136 | To detect object from video:
137 | 1. Go to the Object Detection from Video section.
138 | 2. Change the image name with your image name from the following line
139 | `capture = cv2.VideoCapture('test2.mkv')`
140 | 3. Run.
141 | 4. Press `Q` to quit
142 |
143 | #### Webcam
144 |
145 | To detect object from webcam just run the code from Object Detection from Webcam section. If you have multiple webcams you may need to specify the number correctly for your desired webcam. I have my laptops default webcam. Thats why I have used 0. To change the nummber edit this line
146 | `capture = cv2.VideoCapture(0)`
147 | - Press `Q` to quit
148 |
149 | My webcam results are below below.
150 |
151 |
152 | My confidence factor is low because of lack of data (about 250 images) and having no GPU. I had to stop training after 60 epochs. It took 9 hours and the lose was around 3.8. I was just trying to learn things so that was enough for me.
153 |
154 |
155 | ## References
156 |
157 | - Real-time object detection and classification. Paper: [version 1](https://arxiv.org/pdf/1506.02640.pdf), [version 2](https://arxiv.org/pdf/1612.08242.pdf).
158 | - Official [YOLO](https://pjreddie.com/darknet/yolo/) website.
159 |
160 | - I have learned YOLO, how it works from [coursera](https://www.coursera.org/lecture/convolutional-neural-networks/yolo-algorithm-fF3O0). Also Siraj has a nice [tutorial](https://www.youtube.com/watch?v=4eIBisqx9_g&t=1170s) on it.
161 |
162 | - The original darkflow repo is [this](https://github.com/thtrieu/darkflow) by [Trieu](https://github.com/thtrieu).
163 |
164 | - To have video description of the codes and more understanding follow [this](https://www.youtube.com/watch?v=PyjBd7IDYZs&index=1&list=PLX-LrBk6h3wSGvuTnxB2Kj358XfctL4BM) videos. I have followed Mark Jay a lot whil making this project.
165 |
166 |
--------------------------------------------------------------------------------
/YOLO.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ratulKabir/Custom-Object-Detection-using-Darkflow/b00507cb6c6d37a3c5b8252af7623e249558b2bb/YOLO.gif
--------------------------------------------------------------------------------
/cfg/tiny-yolo-voc-3c.cfg:
--------------------------------------------------------------------------------
1 | [net]
2 | batch=64
3 | subdivisions=8
4 | width=416
5 | height=416
6 | channels=3
7 | momentum=0.9
8 | decay=0.0005
9 | angle=0
10 | saturation = 1.5
11 | exposure = 1.5
12 | hue=.1
13 |
14 | learning_rate=0.001
15 | max_batches = 40100
16 | policy=steps
17 | steps=-1,100,20000,30000
18 | scales=.1,10,.1,.1
19 |
20 | [convolutional]
21 | batch_normalize=1
22 | filters=16
23 | size=3
24 | stride=1
25 | pad=1
26 | activation=leaky
27 |
28 | [maxpool]
29 | size=2
30 | stride=2
31 |
32 | [convolutional]
33 | batch_normalize=1
34 | filters=32
35 | size=3
36 | stride=1
37 | pad=1
38 | activation=leaky
39 |
40 | [maxpool]
41 | size=2
42 | stride=2
43 |
44 | [convolutional]
45 | batch_normalize=1
46 | filters=64
47 | size=3
48 | stride=1
49 | pad=1
50 | activation=leaky
51 |
52 | [maxpool]
53 | size=2
54 | stride=2
55 |
56 | [convolutional]
57 | batch_normalize=1
58 | filters=128
59 | size=3
60 | stride=1
61 | pad=1
62 | activation=leaky
63 |
64 | [maxpool]
65 | size=2
66 | stride=2
67 |
68 | [convolutional]
69 | batch_normalize=1
70 | filters=256
71 | size=3
72 | stride=1
73 | pad=1
74 | activation=leaky
75 |
76 | [maxpool]
77 | size=2
78 | stride=2
79 |
80 | [convolutional]
81 | batch_normalize=1
82 | filters=512
83 | size=3
84 | stride=1
85 | pad=1
86 | activation=leaky
87 |
88 | [maxpool]
89 | size=2
90 | stride=1
91 |
92 | [convolutional]
93 | batch_normalize=1
94 | filters=1024
95 | size=3
96 | stride=1
97 | pad=1
98 | activation=leaky
99 |
100 | ###########
101 |
102 | [convolutional]
103 | batch_normalize=1
104 | size=3
105 | stride=1
106 | pad=1
107 | filters=1024
108 | activation=leaky
109 |
110 | [convolutional]
111 | size=1
112 | stride=1
113 | pad=1
114 | filters=40
115 | activation=linear
116 |
117 | [region]
118 | anchors = 1.08,1.19, 3.42,4.41, 6.63,11.38, 9.42,5.11, 16.62,10.52
119 | bias_match=1
120 | classes=3
121 | coords=4
122 | num=5
123 | softmax=1
124 | jitter=.2
125 | rescore=1
126 |
127 | object_scale=5
128 | noobject_scale=1
129 | class_scale=1
130 | coord_scale=1
131 |
132 | absolute=1
133 | thresh = .5
134 | random=1
135 |
--------------------------------------------------------------------------------
/labels.txt:
--------------------------------------------------------------------------------
1 | king
2 | ace
3 | ten
--------------------------------------------------------------------------------
/object-detection-with-YOLO.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import cv2\n",
10 | "from darkflow.net.build import TFNet\n",
11 | "import matplotlib.pyplot as plt\n",
12 | "\n",
13 | "#To show this as svg images\n",
14 | "%config InlineBackend.figure_format = 'svg'"
15 | ]
16 | },
17 | {
18 | "cell_type": "code",
19 | "execution_count": 2,
20 | "metadata": {},
21 | "outputs": [
22 | {
23 | "name": "stdout",
24 | "output_type": "stream",
25 | "text": [
26 | "Parsing cfg/tiny-yolo-voc-6c.cfg\n",
27 | "Loading None ...\n",
28 | "Finished in 0.0s\n",
29 | "\n",
30 | "Building net ...\n",
31 | "Source | Train? | Layer description | Output size\n",
32 | "-------+--------+----------------------------------+---------------\n",
33 | " | | input | (?, 416, 416, 3)\n",
34 | " Init | Yep! | conv 3x3p1_1 +bnorm leaky | (?, 416, 416, 16)\n",
35 | " Load | Yep! | maxp 2x2p0_2 | (?, 208, 208, 16)\n",
36 | " Init | Yep! | conv 3x3p1_1 +bnorm leaky | (?, 208, 208, 32)\n",
37 | " Load | Yep! | maxp 2x2p0_2 | (?, 104, 104, 32)\n",
38 | " Init | Yep! | conv 3x3p1_1 +bnorm leaky | (?, 104, 104, 64)\n",
39 | " Load | Yep! | maxp 2x2p0_2 | (?, 52, 52, 64)\n",
40 | " Init | Yep! | conv 3x3p1_1 +bnorm leaky | (?, 52, 52, 128)\n",
41 | " Load | Yep! | maxp 2x2p0_2 | (?, 26, 26, 128)\n",
42 | " Init | Yep! | conv 3x3p1_1 +bnorm leaky | (?, 26, 26, 256)\n",
43 | " Load | Yep! | maxp 2x2p0_2 | (?, 13, 13, 256)\n",
44 | " Init | Yep! | conv 3x3p1_1 +bnorm leaky | (?, 13, 13, 512)\n",
45 | " Load | Yep! | maxp 2x2p0_1 | (?, 13, 13, 512)\n",
46 | " Init | Yep! | conv 3x3p1_1 +bnorm leaky | (?, 13, 13, 1024)\n",
47 | " Init | Yep! | conv 3x3p1_1 +bnorm leaky | (?, 13, 13, 1024)\n",
48 | " Init | Yep! | conv 1x1p0_1 linear | (?, 13, 13, 55)\n",
49 | "-------+--------+----------------------------------+---------------\n",
50 | "GPU mode with 1.0 usage\n",
51 | "Loading from ./ckpt/tiny-yolo-voc-6c-750\n",
52 | "INFO:tensorflow:Restoring parameters from ./ckpt/tiny-yolo-voc-6c-750\n",
53 | "Finished in 40.86121439933777s\n",
54 | "\n"
55 | ]
56 | }
57 | ],
58 | "source": [
59 | "# define the model options and run\n",
60 | "\n",
61 | "options = {\n",
62 | " 'model': 'cfg/tiny-yolo-voc-6c.cfg',\n",
63 | " 'load': 750, # 750 is the step number. Can be found in the ckpt folder\n",
64 | " 'threshold': 0.05, # this number can be higher if the performance is better\n",
65 | " 'gpu': 1.0 # Dont use this if you have no gpu\n",
66 | "}\n",
67 | "\n",
68 | "tfnet = TFNet(options)"
69 | ]
70 | },
71 | {
72 | "cell_type": "markdown",
73 | "metadata": {},
74 | "source": [
75 | "# Object Detection from Image"
76 | ]
77 | },
78 | {
79 | "cell_type": "code",
80 | "execution_count": 3,
81 | "metadata": {},
82 | "outputs": [
83 | {
84 | "data": {
85 | "text/plain": [
86 | "(504, 378, 3)"
87 | ]
88 | },
89 | "execution_count": 3,
90 | "metadata": {},
91 | "output_type": "execute_result"
92 | }
93 | ],
94 | "source": [
95 | "# read the color image and covert to RGB\n",
96 | "\n",
97 | "img = cv2.imread('images/img_2386.jpg', cv2.IMREAD_COLOR)\n",
98 | "img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)\n",
99 | "\n",
100 | "# use YOLO to predict the image\n",
101 | "result = tfnet.return_predict(img)\n",
102 | "\n",
103 | "img.shape"
104 | ]
105 | },
106 | {
107 | "cell_type": "markdown",
108 | "metadata": {},
109 | "source": [
110 | "I have put the image below to see if it detecs accurately \n",
111 | " \n",
112 | "It detects ace."
113 | ]
114 | },
115 | {
116 | "cell_type": "code",
117 | "execution_count": 4,
118 | "metadata": {},
119 | "outputs": [
120 | {
121 | "data": {
122 | "text/plain": [
123 | "[{'label': 'ace',\n",
124 | " 'confidence': 0.5337237,\n",
125 | " 'topleft': {'x': 115, 'y': 160},\n",
126 | " 'bottomright': {'x': 252, 'y': 340}}]"
127 | ]
128 | },
129 | "execution_count": 4,
130 | "metadata": {},
131 | "output_type": "execute_result"
132 | }
133 | ],
134 | "source": [
135 | "# the label below is shown \"ace\"\n",
136 | "result"
137 | ]
138 | },
139 | {
140 | "cell_type": "code",
141 | "execution_count": 5,
142 | "metadata": {
143 | "scrolled": true
144 | },
145 | "outputs": [
146 | {
147 | "data": {
148 | "image/svg+xml": [
149 | "\r\n",
150 | "\r\n",
152 | "\r\n",
153 | "\r\n",
154 | " \r\n",
155 | " \r\n",
158 | " \r\n",
159 | " \r\n",
160 | " \r\n",
161 | " \r\n",
167 | " \r\n",
168 | " \r\n",
169 | " \r\n",
170 | " \r\n",
176 | " \r\n",
177 | " \r\n",
178 | " \r\n",
180 | " \r\n",
181 | " \r\n",
182 | " \r\n",
183 | " \r\n",
184 | " \r\n",
185 | " \r\n",
188 | " \r\n",
189 | " \r\n",
190 | " \r\n",
191 | " \r\n",
192 | " \r\n",
193 | " \r\n",
194 | " \r\n",
195 | " \r\n",
196 | " \r\n",
217 | " \r\n",
218 | " \r\n",
219 | " \r\n",
220 | " \r\n",
221 | " \r\n",
222 | " \r\n",
223 | " \r\n",
224 | " \r\n",
225 | " \r\n",
226 | " \r\n",
227 | " \r\n",
228 | " \r\n",
229 | " \r\n",
230 | " \r\n",
231 | " \r\n",
232 | " \r\n",
245 | " \r\n",
246 | " \r\n",
247 | " \r\n",
248 | " \r\n",
249 | " \r\n",
250 | " \r\n",
251 | " \r\n",
252 | " \r\n",
253 | " \r\n",
254 | " \r\n",
255 | " \r\n",
256 | " \r\n",
257 | " \r\n",
258 | " \r\n",
259 | " \r\n",
260 | " \r\n",
261 | " \r\n",
262 | " \r\n",
286 | " \r\n",
287 | " \r\n",
288 | " \r\n",
289 | " \r\n",
290 | " \r\n",
291 | " \r\n",
292 | " \r\n",
293 | " \r\n",
294 | " \r\n",
295 | " \r\n",
296 | " \r\n",
297 | " \r\n",
298 | " \r\n",
299 | " \r\n",
300 | " \r\n",
301 | " \r\n",
302 | " \r\n",
303 | " \r\n",
335 | " \r\n",
336 | " \r\n",
337 | " \r\n",
338 | " \r\n",
339 | " \r\n",
340 | " \r\n",
341 | " \r\n",
342 | " \r\n",
343 | " \r\n",
344 | " \r\n",
345 | " \r\n",
346 | " \r\n",
347 | " \r\n",
348 | " \r\n",
351 | " \r\n",
352 | " \r\n",
353 | " \r\n",
354 | " \r\n",
355 | " \r\n",
356 | " \r\n",
357 | " \r\n",
358 | " \r\n",
359 | " \r\n",
360 | " \r\n",
361 | " \r\n",
362 | " \r\n",
363 | " \r\n",
364 | " \r\n",
365 | " \r\n",
366 | " \r\n",
367 | " \r\n",
368 | " \r\n",
369 | " \r\n",
370 | " \r\n",
371 | " \r\n",
372 | " \r\n",
373 | " \r\n",
374 | " \r\n",
375 | " \r\n",
376 | " \r\n",
377 | " \r\n",
378 | " \r\n",
379 | " \r\n",
380 | " \r\n",
381 | " \r\n",
382 | " \r\n",
383 | " \r\n",
384 | " \r\n",
385 | " \r\n",
386 | " \r\n",
387 | " \r\n",
388 | " \r\n",
389 | " \r\n",
390 | " \r\n",
391 | " \r\n",
392 | " \r\n",
393 | " \r\n",
394 | " \r\n",
395 | " \r\n",
396 | " \r\n",
397 | " \r\n",
398 | " \r\n",
399 | " \r\n",
400 | " \r\n",
401 | " \r\n",
402 | " \r\n",
403 | " \r\n",
404 | " \r\n",
405 | " \r\n",
406 | " \r\n",
407 | " \r\n",
408 | " \r\n",
409 | " \r\n",
410 | " \r\n",
411 | " \r\n",
412 | " \r\n",
413 | " \r\n",
414 | " \r\n",
415 | " \r\n",
416 | " \r\n",
417 | " \r\n",
434 | " \r\n",
435 | " \r\n",
436 | " \r\n",
437 | " \r\n",
438 | " \r\n",
439 | " \r\n",
440 | " \r\n",
441 | " \r\n",
442 | " \r\n",
443 | " \r\n",
444 | " \r\n",
445 | " \r\n",
446 | " \r\n",
447 | " \r\n",
448 | " \r\n",
449 | " \r\n",
450 | " \r\n",
451 | " \r\n",
475 | " \r\n",
476 | " \r\n",
477 | " \r\n",
478 | " \r\n",
479 | " \r\n",
480 | " \r\n",
481 | " \r\n",
482 | " \r\n",
483 | " \r\n",
484 | " \r\n",
485 | " \r\n",
488 | " \r\n",
489 | " \r\n",
490 | " \r\n",
493 | " \r\n",
494 | " \r\n",
495 | " \r\n",
498 | " \r\n",
499 | " \r\n",
500 | " \r\n",
503 | " \r\n",
504 | " \r\n",
505 | " \r\n",
506 | " \r\n",
507 | " \r\n",
508 | " \r\n",
509 | " \r\n",
510 | " \r\n",
511 | " \r\n"
512 | ],
513 | "text/plain": [
514 | ""
515 | ]
516 | },
517 | "metadata": {},
518 | "output_type": "display_data"
519 | }
520 | ],
521 | "source": [
522 | "# pull out some info from the results\n",
523 | "\n",
524 | "tl = (result[0]['topleft']['x'], result[0]['topleft']['y'])\n",
525 | "br = (result[0]['bottomright']['x'], result[0]['bottomright']['y'])\n",
526 | "label = result[0]['label']\n",
527 | "\n",
528 | "\n",
529 | "# add the box and label and display it\n",
530 | "img = cv2.rectangle(img, tl, br, (0, 255, 0), 7) # draw a ractangle onto an image\n",
531 | "img = cv2.putText(img, label, tl, cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 0), 2) # add laebl name\n",
532 | "plt.imshow(img)\n",
533 | "plt.show()"
534 | ]
535 | },
536 | {
537 | "cell_type": "markdown",
538 | "metadata": {},
539 | "source": [
540 | "Now I will show how to detect object from videos and using webcam"
541 | ]
542 | },
543 | {
544 | "cell_type": "code",
545 | "execution_count": 6,
546 | "metadata": {},
547 | "outputs": [],
548 | "source": [
549 | "import numpy as np\n",
550 | "import time"
551 | ]
552 | },
553 | {
554 | "cell_type": "markdown",
555 | "metadata": {},
556 | "source": [
557 | "# Object Detection from Video"
558 | ]
559 | },
560 | {
561 | "cell_type": "code",
562 | "execution_count": 7,
563 | "metadata": {},
564 | "outputs": [],
565 | "source": [
566 | "capture = cv2.VideoCapture('test2.mkv')\n",
567 | "colors = [tuple(255 * np.random.rand(3)) for i in range(10)]"
568 | ]
569 | },
570 | {
571 | "cell_type": "code",
572 | "execution_count": 9,
573 | "metadata": {},
574 | "outputs": [
575 | {
576 | "name": "stdout",
577 | "output_type": "stream",
578 | "text": [
579 | "FPS 0.6\n",
580 | "FPS 2.8\n",
581 | "FPS 3.7\n",
582 | "FPS 3.7\n",
583 | "FPS 3.7\n",
584 | "FPS 3.8\n",
585 | "FPS 3.7\n",
586 | "FPS 3.7\n",
587 | "FPS 3.4\n",
588 | "FPS 3.8\n",
589 | "FPS 3.7\n",
590 | "FPS 3.8\n",
591 | "FPS 3.7\n",
592 | "FPS 3.8\n",
593 | "FPS 3.7\n",
594 | "FPS 2.9\n",
595 | "FPS 3.8\n",
596 | "FPS 3.7\n",
597 | "FPS 3.7\n",
598 | "FPS 3.7\n",
599 | "FPS 3.7\n",
600 | "FPS 3.6\n",
601 | "FPS 3.7\n",
602 | "FPS 3.7\n",
603 | "FPS 3.7\n",
604 | "FPS 3.8\n",
605 | "FPS 3.7\n",
606 | "FPS 3.7\n",
607 | "FPS 3.7\n",
608 | "FPS 3.7\n",
609 | "FPS 3.7\n",
610 | "FPS 3.7\n",
611 | "FPS 3.7\n",
612 | "FPS 3.7\n",
613 | "FPS 3.7\n",
614 | "FPS 3.8\n",
615 | "FPS 3.7\n",
616 | "FPS 3.7\n",
617 | "FPS 3.7\n",
618 | "FPS 3.0\n",
619 | "FPS 3.6\n",
620 | "FPS 3.8\n",
621 | "FPS 3.8\n",
622 | "FPS 3.4\n",
623 | "FPS 3.8\n",
624 | "FPS 3.8\n",
625 | "FPS 3.8\n",
626 | "FPS 3.8\n",
627 | "FPS 3.7\n",
628 | "FPS 3.8\n",
629 | "FPS 3.8\n",
630 | "FPS 3.7\n",
631 | "FPS 3.8\n",
632 | "FPS 3.8\n",
633 | "FPS 3.8\n"
634 | ]
635 | }
636 | ],
637 | "source": [
638 | "while (capture.isOpened()):\n",
639 | " stime = time.time()\n",
640 | " ret, frame = capture.read()# ret is a boolean. True when the video is playing.\n",
641 | " if ret:\n",
642 | " results = tfnet.return_predict(frame)\n",
643 | " for color, result in zip(colors, results):\n",
644 | " tl = (result['topleft']['x'], result['topleft']['y'])\n",
645 | " br = (result['bottomright']['x'], result['bottomright']['y'])\n",
646 | " label = result['label']\n",
647 | " frame = cv2.rectangle(frame, tl, br, color, 7)\n",
648 | " frame = cv2.putText(frame, label, tl, cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 0), 2)\n",
649 | " cv2.imshow('frame', frame)\n",
650 | " print('FPS {:.1f}'.format(1 / (time.time() - stime)))\n",
651 | " if cv2.waitKey(1) & 0xFF == ord('q'):\n",
652 | " break\n",
653 | " else:\n",
654 | " capture.release()\n",
655 | " cv2.destroyAllWindows()\n",
656 | " break"
657 | ]
658 | },
659 | {
660 | "cell_type": "markdown",
661 | "metadata": {},
662 | "source": [
663 | "It works fine for videos!"
664 | ]
665 | },
666 | {
667 | "cell_type": "markdown",
668 | "metadata": {},
669 | "source": [
670 | "# Object Detection from Webcam"
671 | ]
672 | },
673 | {
674 | "cell_type": "code",
675 | "execution_count": 8,
676 | "metadata": {},
677 | "outputs": [
678 | {
679 | "name": "stdout",
680 | "output_type": "stream",
681 | "text": [
682 | "FPS 1.3\n",
683 | "FPS 11.2\n",
684 | "FPS 12.1\n",
685 | "FPS 12.2\n",
686 | "FPS 12.7\n",
687 | "FPS 12.5\n",
688 | "FPS 12.7\n",
689 | "FPS 12.9\n",
690 | "FPS 12.5\n",
691 | "FPS 12.7\n",
692 | "FPS 12.8\n",
693 | "FPS 12.3\n",
694 | "FPS 12.7\n",
695 | "FPS 12.5\n",
696 | "FPS 12.9\n",
697 | "FPS 13.0\n",
698 | "FPS 12.7\n",
699 | "FPS 12.9\n",
700 | "FPS 13.2\n",
701 | "FPS 12.5\n",
702 | "FPS 12.2\n",
703 | "FPS 12.7\n",
704 | "FPS 12.7\n",
705 | "FPS 12.7\n",
706 | "FPS 12.7\n",
707 | "FPS 12.5\n",
708 | "FPS 12.9\n",
709 | "FPS 12.4\n",
710 | "FPS 12.7\n",
711 | "FPS 12.4\n",
712 | "FPS 12.4\n",
713 | "FPS 12.4\n",
714 | "FPS 12.7\n",
715 | "FPS 12.9\n",
716 | "FPS 12.9\n",
717 | "FPS 12.8\n",
718 | "FPS 12.5\n",
719 | "FPS 12.7\n",
720 | "FPS 12.3\n",
721 | "FPS 12.9\n",
722 | "FPS 12.7\n",
723 | "FPS 12.7\n",
724 | "FPS 12.9\n",
725 | "FPS 12.4\n",
726 | "FPS 12.7\n",
727 | "FPS 12.2\n",
728 | "FPS 13.0\n",
729 | "FPS 12.9\n",
730 | "FPS 12.1\n",
731 | "FPS 12.9\n",
732 | "FPS 12.5\n",
733 | "FPS 12.4\n",
734 | "FPS 13.0\n",
735 | "FPS 12.7\n",
736 | "FPS 12.4\n",
737 | "FPS 12.9\n",
738 | "FPS 12.4\n",
739 | "FPS 12.8\n",
740 | "FPS 13.0\n",
741 | "FPS 12.4\n",
742 | "FPS 12.9\n",
743 | "FPS 12.9\n",
744 | "FPS 13.0\n",
745 | "FPS 12.9\n",
746 | "FPS 12.9\n",
747 | "FPS 12.9\n",
748 | "FPS 12.9\n",
749 | "FPS 12.7\n",
750 | "FPS 12.9\n",
751 | "FPS 13.0\n",
752 | "FPS 12.5\n",
753 | "FPS 13.2\n",
754 | "FPS 12.9\n",
755 | "FPS 12.7\n",
756 | "FPS 13.0\n",
757 | "FPS 12.5\n",
758 | "FPS 13.0\n",
759 | "FPS 12.9\n",
760 | "FPS 12.5\n",
761 | "FPS 13.0\n",
762 | "FPS 12.7\n",
763 | "FPS 12.5\n",
764 | "FPS 13.2\n",
765 | "FPS 12.5\n",
766 | "FPS 13.0\n",
767 | "FPS 13.0\n",
768 | "FPS 12.9\n",
769 | "FPS 12.9\n",
770 | "FPS 13.0\n",
771 | "FPS 12.7\n",
772 | "FPS 13.0\n",
773 | "FPS 13.2\n",
774 | "FPS 12.9\n",
775 | "FPS 13.2\n",
776 | "FPS 13.0\n",
777 | "FPS 12.7\n",
778 | "FPS 13.0\n",
779 | "FPS 13.0\n",
780 | "FPS 12.9\n",
781 | "FPS 13.0\n",
782 | "FPS 12.7\n",
783 | "FPS 12.7\n",
784 | "FPS 13.0\n",
785 | "FPS 12.9\n",
786 | "FPS 12.9\n",
787 | "FPS 12.7\n",
788 | "FPS 12.9\n",
789 | "FPS 13.0\n",
790 | "FPS 12.9\n",
791 | "FPS 12.9\n",
792 | "FPS 13.0\n",
793 | "FPS 12.7\n",
794 | "FPS 12.7\n",
795 | "FPS 13.0\n",
796 | "FPS 12.9\n",
797 | "FPS 12.9\n",
798 | "FPS 13.0\n",
799 | "FPS 12.4\n",
800 | "FPS 11.0\n",
801 | "FPS 13.0\n",
802 | "FPS 12.5\n",
803 | "FPS 12.9\n",
804 | "FPS 12.4\n",
805 | "FPS 13.2\n",
806 | "FPS 13.0\n",
807 | "FPS 12.7\n",
808 | "FPS 12.9\n",
809 | "FPS 13.2\n",
810 | "FPS 12.9\n",
811 | "FPS 12.9\n",
812 | "FPS 13.0\n",
813 | "FPS 12.7\n",
814 | "FPS 13.0\n",
815 | "FPS 12.9\n",
816 | "FPS 12.7\n",
817 | "FPS 13.0\n",
818 | "FPS 12.7\n",
819 | "FPS 12.7\n",
820 | "FPS 12.9\n",
821 | "FPS 12.7\n",
822 | "FPS 12.9\n",
823 | "FPS 12.9\n",
824 | "FPS 12.5\n",
825 | "FPS 12.7\n",
826 | "FPS 13.0\n",
827 | "FPS 12.5\n",
828 | "FPS 13.0\n",
829 | "FPS 12.7\n",
830 | "FPS 12.7\n",
831 | "FPS 13.0\n",
832 | "FPS 12.4\n",
833 | "FPS 13.2\n",
834 | "FPS 13.0\n",
835 | "FPS 12.9\n",
836 | "FPS 13.2\n",
837 | "FPS 12.7\n",
838 | "FPS 12.7\n",
839 | "FPS 13.0\n",
840 | "FPS 12.7\n",
841 | "FPS 12.9\n",
842 | "FPS 13.2\n",
843 | "FPS 12.9\n",
844 | "FPS 12.7\n",
845 | "FPS 12.9\n",
846 | "FPS 12.7\n",
847 | "FPS 13.0\n",
848 | "FPS 11.0\n",
849 | "FPS 12.7\n",
850 | "FPS 12.9\n",
851 | "FPS 12.9\n",
852 | "FPS 12.7\n",
853 | "FPS 12.9\n",
854 | "FPS 13.0\n",
855 | "FPS 12.5\n",
856 | "FPS 13.0\n",
857 | "FPS 12.7\n",
858 | "FPS 13.0\n",
859 | "FPS 13.0\n",
860 | "FPS 12.7\n",
861 | "FPS 12.5\n",
862 | "FPS 12.9\n",
863 | "FPS 12.7\n",
864 | "FPS 13.0\n",
865 | "FPS 12.9\n",
866 | "FPS 12.9\n",
867 | "FPS 13.0\n",
868 | "FPS 12.9\n",
869 | "FPS 12.9\n",
870 | "FPS 12.9\n",
871 | "FPS 12.7\n",
872 | "FPS 13.0\n",
873 | "FPS 12.7\n",
874 | "FPS 12.9\n",
875 | "FPS 13.2\n",
876 | "FPS 12.9\n",
877 | "FPS 12.7\n",
878 | "FPS 13.0\n",
879 | "FPS 12.2\n",
880 | "FPS 13.0\n",
881 | "FPS 13.0\n",
882 | "FPS 12.7\n",
883 | "FPS 13.2\n",
884 | "FPS 13.0\n",
885 | "FPS 12.9\n",
886 | "FPS 13.0\n",
887 | "FPS 12.9\n",
888 | "FPS 12.7\n",
889 | "FPS 13.0\n",
890 | "FPS 12.9\n",
891 | "FPS 12.7\n",
892 | "FPS 13.2\n",
893 | "FPS 12.9\n",
894 | "FPS 12.9\n",
895 | "FPS 13.0\n",
896 | "FPS 12.7\n",
897 | "FPS 13.0\n",
898 | "FPS 12.9\n",
899 | "FPS 12.7\n",
900 | "FPS 12.9\n",
901 | "FPS 12.7\n",
902 | "FPS 12.5\n",
903 | "FPS 12.9\n",
904 | "FPS 12.7\n",
905 | "FPS 12.7\n",
906 | "FPS 12.7\n",
907 | "FPS 12.5\n",
908 | "FPS 12.7\n",
909 | "FPS 13.0\n",
910 | "FPS 12.2\n",
911 | "FPS 12.9\n",
912 | "FPS 12.5\n",
913 | "FPS 12.7\n",
914 | "FPS 13.0\n",
915 | "FPS 12.9\n",
916 | "FPS 13.0\n",
917 | "FPS 12.9\n",
918 | "FPS 12.9\n",
919 | "FPS 13.0\n",
920 | "FPS 12.7\n",
921 | "FPS 12.7\n",
922 | "FPS 12.7\n",
923 | "FPS 12.5\n",
924 | "FPS 13.0\n",
925 | "FPS 12.9\n",
926 | "FPS 12.7\n",
927 | "FPS 13.0\n",
928 | "FPS 10.6\n",
929 | "FPS 13.0\n",
930 | "FPS 13.0\n",
931 | "FPS 12.9\n",
932 | "FPS 11.5\n",
933 | "FPS 12.5\n",
934 | "FPS 12.4\n",
935 | "FPS 12.9\n",
936 | "FPS 12.7\n",
937 | "FPS 13.0\n",
938 | "FPS 13.0\n",
939 | "FPS 12.9\n",
940 | "FPS 12.9\n",
941 | "FPS 13.0\n",
942 | "FPS 13.0\n",
943 | "FPS 12.9\n",
944 | "FPS 12.5\n",
945 | "FPS 10.7\n",
946 | "FPS 13.0\n",
947 | "FPS 12.7\n",
948 | "FPS 13.0\n",
949 | "FPS 12.7\n",
950 | "FPS 12.9\n",
951 | "FPS 13.2\n",
952 | "FPS 12.9\n",
953 | "FPS 12.5\n",
954 | "FPS 12.7\n",
955 | "FPS 13.0\n",
956 | "FPS 12.4\n",
957 | "FPS 12.9\n",
958 | "FPS 12.5\n",
959 | "FPS 12.9\n",
960 | "FPS 12.8\n",
961 | "FPS 12.7\n",
962 | "FPS 12.7\n",
963 | "FPS 12.7\n",
964 | "FPS 12.9\n",
965 | "FPS 13.0\n",
966 | "FPS 12.9\n",
967 | "FPS 13.0\n",
968 | "FPS 12.9\n",
969 | "FPS 13.0\n",
970 | "FPS 12.7\n",
971 | "FPS 13.0\n",
972 | "FPS 13.0\n",
973 | "FPS 13.0\n",
974 | "FPS 12.7\n",
975 | "FPS 12.5\n",
976 | "FPS 13.0\n",
977 | "FPS 12.9\n",
978 | "FPS 12.7\n",
979 | "FPS 12.7\n",
980 | "FPS 12.5\n",
981 | "FPS 13.0\n",
982 | "FPS 13.2\n",
983 | "FPS 12.4\n",
984 | "FPS 12.9\n",
985 | "FPS 12.9\n",
986 | "FPS 12.9\n",
987 | "FPS 13.0\n",
988 | "FPS 12.7\n",
989 | "FPS 12.9\n",
990 | "FPS 12.9\n",
991 | "FPS 12.7\n",
992 | "FPS 12.7\n",
993 | "FPS 12.7\n",
994 | "FPS 12.4\n",
995 | "FPS 13.0\n",
996 | "FPS 12.7\n",
997 | "FPS 12.7\n",
998 | "FPS 12.9\n",
999 | "FPS 12.5\n",
1000 | "FPS 13.0\n",
1001 | "FPS 12.9\n",
1002 | "FPS 12.9\n",
1003 | "FPS 13.0\n",
1004 | "FPS 12.9\n",
1005 | "FPS 12.5\n",
1006 | "FPS 13.0\n",
1007 | "FPS 12.9\n",
1008 | "FPS 12.7\n",
1009 | "FPS 12.9\n",
1010 | "FPS 12.4\n",
1011 | "FPS 12.2\n",
1012 | "FPS 12.4\n",
1013 | "FPS 12.7\n",
1014 | "FPS 12.7\n",
1015 | "FPS 12.5\n",
1016 | "FPS 12.7\n",
1017 | "FPS 13.0\n",
1018 | "FPS 12.9\n",
1019 | "FPS 12.7\n",
1020 | "FPS 13.2\n",
1021 | "FPS 12.5\n",
1022 | "FPS 12.7\n",
1023 | "FPS 12.7\n",
1024 | "FPS 12.7\n",
1025 | "FPS 13.0\n",
1026 | "FPS 12.9\n",
1027 | "FPS 12.5\n",
1028 | "FPS 13.2\n",
1029 | "FPS 13.0\n",
1030 | "FPS 12.4\n",
1031 | "FPS 13.0\n",
1032 | "FPS 12.7\n",
1033 | "FPS 13.0\n",
1034 | "FPS 13.0\n",
1035 | "FPS 12.7\n",
1036 | "FPS 13.0\n",
1037 | "FPS 12.9\n",
1038 | "FPS 12.4\n",
1039 | "FPS 13.0\n",
1040 | "FPS 12.9\n",
1041 | "FPS 12.4\n",
1042 | "FPS 13.0\n",
1043 | "FPS 12.9\n",
1044 | "FPS 12.2\n",
1045 | "FPS 12.7\n",
1046 | "FPS 12.7\n",
1047 | "FPS 13.0\n",
1048 | "FPS 13.0\n",
1049 | "FPS 12.5\n",
1050 | "FPS 13.0\n",
1051 | "FPS 12.7\n",
1052 | "FPS 12.5\n",
1053 | "FPS 11.1\n",
1054 | "FPS 11.9\n",
1055 | "FPS 13.2\n",
1056 | "FPS 13.0\n",
1057 | "FPS 12.5\n",
1058 | "FPS 13.2\n",
1059 | "FPS 13.0\n",
1060 | "FPS 12.9\n",
1061 | "FPS 13.0\n",
1062 | "FPS 13.0\n",
1063 | "FPS 12.5\n",
1064 | "FPS 12.7\n",
1065 | "FPS 12.9\n",
1066 | "FPS 12.5\n",
1067 | "FPS 13.0\n",
1068 | "FPS 12.9\n",
1069 | "FPS 13.0\n",
1070 | "FPS 13.0\n",
1071 | "FPS 12.7\n",
1072 | "FPS 12.7\n",
1073 | "FPS 12.7\n",
1074 | "FPS 12.5\n",
1075 | "FPS 12.7\n",
1076 | "FPS 10.7\n",
1077 | "FPS 12.1\n",
1078 | "FPS 12.5\n",
1079 | "FPS 12.2\n",
1080 | "FPS 12.7\n",
1081 | "FPS 12.2\n",
1082 | "FPS 12.9\n",
1083 | "FPS 12.7\n",
1084 | "FPS 12.7\n",
1085 | "FPS 12.5\n",
1086 | "FPS 12.9\n",
1087 | "FPS 12.5\n",
1088 | "FPS 13.0\n",
1089 | "FPS 13.0\n",
1090 | "FPS 12.5\n",
1091 | "FPS 12.9\n",
1092 | "FPS 12.5\n",
1093 | "FPS 13.2\n",
1094 | "FPS 13.0\n",
1095 | "FPS 12.5\n",
1096 | "FPS 12.7\n",
1097 | "FPS 12.9\n",
1098 | "FPS 12.5\n",
1099 | "FPS 12.7\n",
1100 | "FPS 12.2\n",
1101 | "FPS 12.9\n",
1102 | "FPS 12.9\n",
1103 | "FPS 12.9\n",
1104 | "FPS 12.7\n",
1105 | "FPS 12.7\n",
1106 | "FPS 12.7\n",
1107 | "FPS 13.0\n",
1108 | "FPS 12.7\n",
1109 | "FPS 12.4\n",
1110 | "FPS 13.0\n",
1111 | "FPS 13.0\n",
1112 | "FPS 13.0\n",
1113 | "FPS 13.0\n",
1114 | "FPS 12.9\n",
1115 | "FPS 13.2\n",
1116 | "FPS 12.9\n",
1117 | "FPS 12.7\n",
1118 | "FPS 13.0\n",
1119 | "FPS 13.0\n",
1120 | "FPS 12.9\n",
1121 | "FPS 12.9\n",
1122 | "FPS 13.0\n",
1123 | "FPS 12.9\n",
1124 | "FPS 13.0\n",
1125 | "FPS 12.7\n",
1126 | "FPS 12.7\n",
1127 | "FPS 13.0\n",
1128 | "FPS 12.7\n",
1129 | "FPS 13.0\n",
1130 | "FPS 12.5\n",
1131 | "FPS 13.0\n",
1132 | "FPS 13.2\n",
1133 | "FPS 12.7\n",
1134 | "FPS 12.7\n",
1135 | "FPS 13.2\n",
1136 | "FPS 12.9\n",
1137 | "FPS 12.7\n",
1138 | "FPS 13.0\n",
1139 | "FPS 12.9\n",
1140 | "FPS 12.7\n",
1141 | "FPS 13.2\n",
1142 | "FPS 12.7\n",
1143 | "FPS 12.5\n",
1144 | "FPS 12.9\n",
1145 | "FPS 12.7\n",
1146 | "FPS 13.2\n",
1147 | "FPS 12.7\n",
1148 | "FPS 12.9\n",
1149 | "FPS 13.0\n",
1150 | "FPS 12.7\n",
1151 | "FPS 12.7\n",
1152 | "FPS 13.0\n",
1153 | "FPS 12.7\n",
1154 | "FPS 12.9\n",
1155 | "FPS 12.7\n",
1156 | "FPS 12.5\n",
1157 | "FPS 13.2\n",
1158 | "FPS 12.5\n",
1159 | "FPS 12.7\n",
1160 | "FPS 13.2\n",
1161 | "FPS 12.5\n",
1162 | "FPS 12.7\n",
1163 | "FPS 12.9\n",
1164 | "FPS 12.7\n",
1165 | "FPS 12.9\n",
1166 | "FPS 12.7\n",
1167 | "FPS 12.4\n",
1168 | "FPS 12.9\n",
1169 | "FPS 12.9\n",
1170 | "FPS 13.0\n",
1171 | "FPS 13.0\n",
1172 | "FPS 12.9\n",
1173 | "FPS 12.7\n",
1174 | "FPS 13.0\n",
1175 | "FPS 12.5\n",
1176 | "FPS 12.5\n",
1177 | "FPS 12.7\n",
1178 | "FPS 12.7\n",
1179 | "FPS 13.0\n",
1180 | "FPS 13.0\n",
1181 | "FPS 12.7\n",
1182 | "FPS 13.0\n",
1183 | "FPS 12.9\n",
1184 | "FPS 12.5\n",
1185 | "FPS 12.7\n",
1186 | "FPS 13.0\n",
1187 | "FPS 13.0\n",
1188 | "FPS 13.0\n",
1189 | "FPS 11.5\n",
1190 | "FPS 11.3\n",
1191 | "FPS 12.9\n",
1192 | "FPS 12.5\n",
1193 | "FPS 12.7\n",
1194 | "FPS 12.4\n",
1195 | "FPS 12.2\n",
1196 | "FPS 12.9\n",
1197 | "FPS 12.5\n",
1198 | "FPS 12.9\n",
1199 | "FPS 12.4\n",
1200 | "FPS 12.5\n",
1201 | "FPS 12.7\n",
1202 | "FPS 12.9\n",
1203 | "FPS 13.0\n",
1204 | "FPS 13.0\n",
1205 | "FPS 12.7\n",
1206 | "FPS 12.9\n",
1207 | "FPS 12.9\n",
1208 | "FPS 11.0\n",
1209 | "FPS 12.7\n",
1210 | "FPS 12.9\n",
1211 | "FPS 12.9\n",
1212 | "FPS 12.9\n",
1213 | "FPS 12.5\n",
1214 | "FPS 13.0\n",
1215 | "FPS 12.9\n",
1216 | "FPS 12.7\n",
1217 | "FPS 13.0\n",
1218 | "FPS 12.5\n",
1219 | "FPS 12.4\n",
1220 | "FPS 13.2\n",
1221 | "FPS 12.7\n",
1222 | "FPS 13.0\n",
1223 | "FPS 12.9\n",
1224 | "FPS 12.7\n",
1225 | "FPS 13.2\n",
1226 | "FPS 12.9\n",
1227 | "FPS 12.7\n",
1228 | "FPS 12.9\n",
1229 | "FPS 13.0\n",
1230 | "FPS 12.7\n",
1231 | "FPS 12.9\n",
1232 | "FPS 12.9\n",
1233 | "FPS 12.7\n",
1234 | "FPS 13.0\n",
1235 | "FPS 12.4\n",
1236 | "FPS 12.9\n",
1237 | "FPS 12.9\n",
1238 | "FPS 12.9\n",
1239 | "FPS 13.0\n",
1240 | "FPS 12.9\n",
1241 | "FPS 12.7\n",
1242 | "FPS 13.0\n",
1243 | "FPS 13.0\n",
1244 | "FPS 13.0\n",
1245 | "FPS 13.0\n",
1246 | "FPS 12.7\n",
1247 | "FPS 13.0\n",
1248 | "FPS 12.5\n",
1249 | "FPS 12.7\n",
1250 | "FPS 12.7\n",
1251 | "FPS 12.4\n",
1252 | "FPS 12.7\n",
1253 | "FPS 12.7\n",
1254 | "FPS 12.7\n",
1255 | "FPS 13.0\n",
1256 | "FPS 13.0\n",
1257 | "FPS 12.9\n",
1258 | "FPS 12.9\n",
1259 | "FPS 13.0\n",
1260 | "FPS 12.5\n",
1261 | "FPS 12.7\n",
1262 | "FPS 13.0\n",
1263 | "FPS 12.7\n",
1264 | "FPS 12.9\n",
1265 | "FPS 12.9\n",
1266 | "FPS 12.4\n",
1267 | "FPS 11.1\n",
1268 | "FPS 12.7\n",
1269 | "FPS 12.9\n",
1270 | "FPS 12.4\n",
1271 | "FPS 12.2\n",
1272 | "FPS 12.7\n",
1273 | "FPS 12.4\n",
1274 | "FPS 12.2\n",
1275 | "FPS 12.9\n",
1276 | "FPS 12.5\n",
1277 | "FPS 12.7\n",
1278 | "FPS 12.5\n",
1279 | "FPS 12.4\n",
1280 | "FPS 12.9\n",
1281 | "FPS 12.7\n",
1282 | "FPS 12.5\n",
1283 | "FPS 12.9\n",
1284 | "FPS 12.5\n",
1285 | "FPS 12.9\n",
1286 | "FPS 12.9\n",
1287 | "FPS 12.7\n",
1288 | "FPS 12.9\n",
1289 | "FPS 12.7\n",
1290 | "FPS 12.7\n",
1291 | "FPS 12.7\n",
1292 | "FPS 12.7\n",
1293 | "FPS 13.0\n",
1294 | "FPS 10.8\n",
1295 | "FPS 12.4\n",
1296 | "FPS 12.7\n",
1297 | "FPS 12.5\n",
1298 | "FPS 13.0\n",
1299 | "FPS 12.7\n",
1300 | "FPS 12.4\n",
1301 | "FPS 12.9\n",
1302 | "FPS 12.1\n",
1303 | "FPS 12.2\n",
1304 | "FPS 12.4\n",
1305 | "FPS 12.5\n",
1306 | "FPS 12.4\n",
1307 | "FPS 13.0\n",
1308 | "FPS 12.4\n",
1309 | "FPS 12.7\n",
1310 | "FPS 13.0\n",
1311 | "FPS 12.4\n",
1312 | "FPS 12.9\n",
1313 | "FPS 12.5\n",
1314 | "FPS 12.4\n",
1315 | "FPS 12.9\n",
1316 | "FPS 12.7\n",
1317 | "FPS 12.9\n",
1318 | "FPS 12.7\n",
1319 | "FPS 12.4\n",
1320 | "FPS 12.7\n",
1321 | "FPS 12.5\n",
1322 | "FPS 12.7\n",
1323 | "FPS 12.9\n",
1324 | "FPS 12.4\n",
1325 | "FPS 13.0\n",
1326 | "FPS 12.9\n",
1327 | "FPS 12.5\n",
1328 | "FPS 12.9\n",
1329 | "FPS 12.9\n",
1330 | "FPS 12.9\n",
1331 | "FPS 12.9\n",
1332 | "FPS 12.7\n",
1333 | "FPS 12.9\n",
1334 | "FPS 11.3\n",
1335 | "FPS 12.5\n",
1336 | "FPS 12.9\n",
1337 | "FPS 12.7\n",
1338 | "FPS 12.7\n",
1339 | "FPS 12.9\n",
1340 | "FPS 12.4\n",
1341 | "FPS 12.4\n",
1342 | "FPS 12.7\n",
1343 | "FPS 12.7\n",
1344 | "FPS 13.0\n",
1345 | "FPS 12.5\n",
1346 | "FPS 12.7\n",
1347 | "FPS 13.0\n",
1348 | "FPS 12.9\n",
1349 | "FPS 13.0\n",
1350 | "FPS 12.9\n",
1351 | "FPS 12.7\n",
1352 | "FPS 12.5\n",
1353 | "FPS 11.4\n",
1354 | "FPS 12.7\n",
1355 | "FPS 12.9\n",
1356 | "FPS 12.7\n",
1357 | "FPS 12.4\n",
1358 | "FPS 13.0\n",
1359 | "FPS 12.7\n",
1360 | "FPS 12.5\n",
1361 | "FPS 12.7\n",
1362 | "FPS 12.5\n",
1363 | "FPS 13.0\n",
1364 | "FPS 12.9\n",
1365 | "FPS 12.7\n",
1366 | "FPS 13.0\n",
1367 | "FPS 12.7\n",
1368 | "FPS 12.9\n",
1369 | "FPS 12.9\n",
1370 | "FPS 12.5\n",
1371 | "FPS 12.9\n",
1372 | "FPS 12.7\n",
1373 | "FPS 11.8\n",
1374 | "FPS 12.9\n",
1375 | "FPS 12.5\n",
1376 | "FPS 12.4\n",
1377 | "FPS 12.9\n",
1378 | "FPS 12.4\n",
1379 | "FPS 12.4\n",
1380 | "FPS 12.9\n",
1381 | "FPS 12.7\n",
1382 | "FPS 12.9\n",
1383 | "FPS 12.5\n",
1384 | "FPS 12.5\n",
1385 | "FPS 12.9\n",
1386 | "FPS 12.5\n",
1387 | "FPS 13.0\n",
1388 | "FPS 11.9\n",
1389 | "FPS 12.5\n",
1390 | "FPS 12.2\n",
1391 | "FPS 12.5\n",
1392 | "FPS 12.2\n",
1393 | "FPS 12.7\n",
1394 | "FPS 12.9\n",
1395 | "FPS 12.7\n",
1396 | "FPS 12.9\n",
1397 | "FPS 12.4\n",
1398 | "FPS 12.9\n",
1399 | "FPS 12.7\n",
1400 | "FPS 12.7\n",
1401 | "FPS 12.7\n",
1402 | "FPS 12.5\n",
1403 | "FPS 12.7\n",
1404 | "FPS 12.7\n",
1405 | "FPS 12.4\n",
1406 | "FPS 12.7\n",
1407 | "FPS 12.5\n",
1408 | "FPS 12.1\n",
1409 | "FPS 12.4\n",
1410 | "FPS 12.2\n",
1411 | "FPS 12.7\n",
1412 | "FPS 12.4\n",
1413 | "FPS 12.5\n",
1414 | "FPS 12.1\n",
1415 | "FPS 12.2\n",
1416 | "FPS 12.4\n",
1417 | "FPS 12.9\n",
1418 | "FPS 12.2\n",
1419 | "FPS 12.1\n",
1420 | "FPS 12.5\n",
1421 | "FPS 11.9\n",
1422 | "FPS 12.7\n",
1423 | "FPS 12.7\n",
1424 | "FPS 12.5\n",
1425 | "FPS 12.9\n",
1426 | "FPS 12.5\n",
1427 | "FPS 12.9\n",
1428 | "FPS 12.9\n",
1429 | "FPS 12.4\n",
1430 | "FPS 12.7\n",
1431 | "FPS 12.4\n",
1432 | "FPS 12.5\n",
1433 | "FPS 12.4\n",
1434 | "FPS 12.4\n",
1435 | "FPS 12.1\n",
1436 | "FPS 12.5\n",
1437 | "FPS 12.1\n",
1438 | "FPS 12.2\n",
1439 | "FPS 12.4\n",
1440 | "FPS 11.7\n",
1441 | "FPS 12.9\n",
1442 | "FPS 12.4\n",
1443 | "FPS 12.5\n",
1444 | "FPS 12.9\n",
1445 | "FPS 12.4\n",
1446 | "FPS 12.5\n",
1447 | "FPS 12.7\n",
1448 | "FPS 12.4\n",
1449 | "FPS 12.9\n",
1450 | "FPS 12.5\n",
1451 | "FPS 12.9\n",
1452 | "FPS 12.5\n",
1453 | "FPS 12.7\n",
1454 | "FPS 12.7\n",
1455 | "FPS 12.5\n",
1456 | "FPS 12.5\n",
1457 | "FPS 12.7\n",
1458 | "FPS 12.5\n",
1459 | "FPS 12.4\n",
1460 | "FPS 12.7\n",
1461 | "FPS 12.7\n",
1462 | "FPS 12.9\n",
1463 | "FPS 12.2\n",
1464 | "FPS 12.4\n",
1465 | "FPS 12.7\n",
1466 | "FPS 12.7\n",
1467 | "FPS 11.5\n",
1468 | "FPS 12.7\n",
1469 | "FPS 12.4\n",
1470 | "FPS 12.5\n",
1471 | "FPS 12.5\n",
1472 | "FPS 12.5\n",
1473 | "FPS 12.4\n",
1474 | "FPS 12.5\n",
1475 | "FPS 12.7\n",
1476 | "FPS 12.7\n",
1477 | "FPS 12.5\n",
1478 | "FPS 12.9\n",
1479 | "FPS 12.4\n",
1480 | "FPS 12.7\n",
1481 | "FPS 12.7\n",
1482 | "FPS 12.2\n",
1483 | "FPS 12.5\n",
1484 | "FPS 12.5\n",
1485 | "FPS 12.4\n",
1486 | "FPS 12.2\n",
1487 | "FPS 12.5\n",
1488 | "FPS 12.2\n",
1489 | "FPS 12.1\n",
1490 | "FPS 12.5\n",
1491 | "FPS 11.9\n",
1492 | "FPS 12.4\n",
1493 | "FPS 12.2\n",
1494 | "FPS 12.1\n",
1495 | "FPS 12.4\n",
1496 | "FPS 12.4\n",
1497 | "FPS 12.7\n",
1498 | "FPS 12.4\n",
1499 | "FPS 11.5\n",
1500 | "FPS 12.7\n",
1501 | "FPS 12.4\n",
1502 | "FPS 12.7\n",
1503 | "FPS 12.7\n",
1504 | "FPS 12.4\n",
1505 | "FPS 12.4\n",
1506 | "FPS 12.5\n",
1507 | "FPS 12.4\n",
1508 | "FPS 12.7\n",
1509 | "FPS 12.1\n",
1510 | "FPS 12.7\n",
1511 | "FPS 12.7\n",
1512 | "FPS 12.4\n",
1513 | "FPS 12.7\n",
1514 | "FPS 12.7\n",
1515 | "FPS 12.4\n",
1516 | "FPS 12.7\n",
1517 | "FPS 12.5\n",
1518 | "FPS 12.5\n",
1519 | "FPS 12.7\n",
1520 | "FPS 12.2\n",
1521 | "FPS 12.4\n",
1522 | "FPS 12.5\n",
1523 | "FPS 12.7\n",
1524 | "FPS 12.7\n",
1525 | "FPS 12.2\n",
1526 | "FPS 12.4\n",
1527 | "FPS 12.5\n",
1528 | "FPS 12.5\n",
1529 | "FPS 12.7\n",
1530 | "FPS 12.5\n",
1531 | "FPS 12.2\n",
1532 | "FPS 12.5\n",
1533 | "FPS 10.4\n",
1534 | "FPS 12.4\n",
1535 | "FPS 12.5\n",
1536 | "FPS 12.4\n",
1537 | "FPS 12.5\n",
1538 | "FPS 12.7\n",
1539 | "FPS 12.4\n",
1540 | "FPS 12.7\n",
1541 | "FPS 12.1\n",
1542 | "FPS 12.5\n",
1543 | "FPS 12.7\n",
1544 | "FPS 12.4\n",
1545 | "FPS 12.2\n",
1546 | "FPS 12.7\n",
1547 | "FPS 12.5\n",
1548 | "FPS 12.7\n",
1549 | "FPS 12.7\n",
1550 | "FPS 12.2\n",
1551 | "FPS 12.7\n",
1552 | "FPS 12.4\n",
1553 | "FPS 12.7\n",
1554 | "FPS 12.7\n",
1555 | "FPS 12.4\n",
1556 | "FPS 12.7\n",
1557 | "FPS 12.5\n",
1558 | "FPS 12.7\n",
1559 | "FPS 12.7\n",
1560 | "FPS 12.4\n",
1561 | "FPS 12.4\n",
1562 | "FPS 12.4\n",
1563 | "FPS 12.2\n",
1564 | "FPS 12.7\n",
1565 | "FPS 12.4\n",
1566 | "FPS 12.7\n",
1567 | "FPS 12.7\n",
1568 | "FPS 12.2\n",
1569 | "FPS 12.7\n",
1570 | "FPS 12.4\n",
1571 | "FPS 12.5\n",
1572 | "FPS 12.7\n",
1573 | "FPS 12.2\n",
1574 | "FPS 12.7\n",
1575 | "FPS 12.7\n",
1576 | "FPS 12.2\n",
1577 | "FPS 12.7\n",
1578 | "FPS 12.7\n",
1579 | "FPS 12.1\n",
1580 | "FPS 12.5\n",
1581 | "FPS 12.5\n",
1582 | "FPS 11.9\n",
1583 | "FPS 12.2\n",
1584 | "FPS 11.7\n",
1585 | "FPS 12.2\n",
1586 | "FPS 11.9\n",
1587 | "FPS 12.4\n",
1588 | "FPS 12.2\n",
1589 | "FPS 12.1\n",
1590 | "FPS 12.4\n",
1591 | "FPS 12.2\n",
1592 | "FPS 12.1\n",
1593 | "FPS 11.8\n",
1594 | "FPS 12.7\n"
1595 | ]
1596 | },
1597 | {
1598 | "name": "stdout",
1599 | "output_type": "stream",
1600 | "text": [
1601 | "FPS 12.1\n",
1602 | "FPS 12.5\n",
1603 | "FPS 12.5\n",
1604 | "FPS 12.7\n",
1605 | "FPS 12.5\n",
1606 | "FPS 12.4\n",
1607 | "FPS 12.7\n",
1608 | "FPS 12.7\n",
1609 | "FPS 12.5\n",
1610 | "FPS 12.5\n",
1611 | "FPS 12.2\n",
1612 | "FPS 12.4\n",
1613 | "FPS 12.2\n",
1614 | "FPS 12.5\n",
1615 | "FPS 12.5\n",
1616 | "FPS 12.5\n",
1617 | "FPS 12.7\n",
1618 | "FPS 12.2\n",
1619 | "FPS 12.4\n",
1620 | "FPS 12.4\n",
1621 | "FPS 12.7\n",
1622 | "FPS 12.4\n",
1623 | "FPS 12.7\n",
1624 | "FPS 12.4\n",
1625 | "FPS 12.2\n",
1626 | "FPS 12.7\n",
1627 | "FPS 12.5\n",
1628 | "FPS 12.7\n",
1629 | "FPS 12.5\n",
1630 | "FPS 11.9\n",
1631 | "FPS 12.7\n",
1632 | "FPS 12.5\n",
1633 | "FPS 12.2\n",
1634 | "FPS 12.4\n",
1635 | "FPS 12.5\n",
1636 | "FPS 12.5\n",
1637 | "FPS 12.5\n",
1638 | "FPS 12.5\n",
1639 | "FPS 12.7\n",
1640 | "FPS 12.4\n",
1641 | "FPS 12.2\n",
1642 | "FPS 12.1\n",
1643 | "FPS 12.4\n",
1644 | "FPS 12.4\n",
1645 | "FPS 12.2\n",
1646 | "FPS 12.2\n",
1647 | "FPS 11.4\n",
1648 | "FPS 12.1\n",
1649 | "FPS 12.1\n",
1650 | "FPS 12.2\n",
1651 | "FPS 11.8\n",
1652 | "FPS 11.9\n",
1653 | "FPS 12.7\n",
1654 | "FPS 12.4\n",
1655 | "FPS 12.7\n",
1656 | "FPS 12.4\n",
1657 | "FPS 12.4\n",
1658 | "FPS 12.7\n",
1659 | "FPS 12.4\n",
1660 | "FPS 12.2\n",
1661 | "FPS 12.5\n",
1662 | "FPS 10.4\n",
1663 | "FPS 12.7\n",
1664 | "FPS 12.4\n",
1665 | "FPS 11.3\n",
1666 | "FPS 12.5\n",
1667 | "FPS 12.5\n",
1668 | "FPS 12.7\n",
1669 | "FPS 12.5\n",
1670 | "FPS 12.4\n",
1671 | "FPS 12.4\n",
1672 | "FPS 12.4\n",
1673 | "FPS 12.2\n",
1674 | "FPS 12.5\n",
1675 | "FPS 12.4\n",
1676 | "FPS 12.4\n",
1677 | "FPS 11.8\n",
1678 | "FPS 12.2\n",
1679 | "FPS 12.4\n",
1680 | "FPS 12.1\n",
1681 | "FPS 11.8\n",
1682 | "FPS 11.9\n",
1683 | "FPS 11.4\n",
1684 | "FPS 12.2\n",
1685 | "FPS 12.1\n",
1686 | "FPS 12.2\n",
1687 | "FPS 12.1\n",
1688 | "FPS 12.2\n",
1689 | "FPS 12.2\n",
1690 | "FPS 12.5\n",
1691 | "FPS 12.2\n",
1692 | "FPS 12.5\n",
1693 | "FPS 12.2\n",
1694 | "FPS 12.1\n",
1695 | "FPS 12.4\n",
1696 | "FPS 12.2\n",
1697 | "FPS 12.4\n",
1698 | "FPS 12.4\n",
1699 | "FPS 11.5\n",
1700 | "FPS 12.5\n",
1701 | "FPS 11.3\n",
1702 | "FPS 12.4\n",
1703 | "FPS 12.5\n",
1704 | "FPS 12.2\n",
1705 | "FPS 12.1\n",
1706 | "FPS 12.5\n",
1707 | "FPS 12.4\n",
1708 | "FPS 12.5\n",
1709 | "FPS 12.2\n",
1710 | "FPS 12.2\n",
1711 | "FPS 12.4\n",
1712 | "FPS 12.4\n",
1713 | "FPS 12.4\n",
1714 | "FPS 12.4\n",
1715 | "FPS 12.2\n",
1716 | "FPS 12.4\n",
1717 | "FPS 12.4\n",
1718 | "FPS 12.4\n",
1719 | "FPS 12.5\n",
1720 | "FPS 12.4\n",
1721 | "FPS 12.2\n",
1722 | "FPS 12.4\n",
1723 | "FPS 12.2\n",
1724 | "FPS 12.5\n",
1725 | "FPS 12.2\n",
1726 | "FPS 12.1\n",
1727 | "FPS 12.4\n",
1728 | "FPS 12.2\n",
1729 | "FPS 12.5\n",
1730 | "FPS 12.4\n",
1731 | "FPS 12.4\n",
1732 | "FPS 11.9\n",
1733 | "FPS 12.4\n",
1734 | "FPS 12.4\n",
1735 | "FPS 12.5\n",
1736 | "FPS 12.1\n",
1737 | "FPS 12.2\n",
1738 | "FPS 12.2\n",
1739 | "FPS 12.2\n",
1740 | "FPS 12.5\n",
1741 | "FPS 12.4\n",
1742 | "FPS 12.2\n",
1743 | "FPS 12.4\n",
1744 | "FPS 12.4\n",
1745 | "FPS 12.4\n",
1746 | "FPS 12.7\n",
1747 | "FPS 12.5\n",
1748 | "FPS 12.5\n",
1749 | "FPS 12.5\n",
1750 | "FPS 12.4\n",
1751 | "FPS 12.5\n",
1752 | "FPS 12.4\n",
1753 | "FPS 12.1\n",
1754 | "FPS 12.5\n",
1755 | "FPS 12.2\n",
1756 | "FPS 12.5\n",
1757 | "FPS 12.2\n",
1758 | "FPS 12.1\n",
1759 | "FPS 12.2\n",
1760 | "FPS 11.9\n",
1761 | "FPS 12.4\n",
1762 | "FPS 12.5\n",
1763 | "FPS 12.2\n",
1764 | "FPS 12.5\n",
1765 | "FPS 12.5\n",
1766 | "FPS 12.2\n",
1767 | "FPS 12.5\n",
1768 | "FPS 12.1\n",
1769 | "FPS 12.5\n",
1770 | "FPS 12.5\n",
1771 | "FPS 12.1\n",
1772 | "FPS 12.4\n",
1773 | "FPS 12.2\n",
1774 | "FPS 12.2\n",
1775 | "FPS 12.1\n",
1776 | "FPS 11.9\n",
1777 | "FPS 12.1\n",
1778 | "FPS 11.9\n",
1779 | "FPS 12.2\n",
1780 | "FPS 12.1\n",
1781 | "FPS 11.8\n",
1782 | "FPS 11.8\n",
1783 | "FPS 12.4\n",
1784 | "FPS 12.1\n",
1785 | "FPS 12.5\n",
1786 | "FPS 12.4\n",
1787 | "FPS 12.2\n",
1788 | "FPS 12.5\n",
1789 | "FPS 12.2\n",
1790 | "FPS 12.5\n",
1791 | "FPS 12.5\n",
1792 | "FPS 12.4\n",
1793 | "FPS 12.4\n",
1794 | "FPS 12.5\n",
1795 | "FPS 12.4\n",
1796 | "FPS 12.5\n",
1797 | "FPS 12.4\n",
1798 | "FPS 12.4\n",
1799 | "FPS 12.4\n",
1800 | "FPS 12.2\n",
1801 | "FPS 12.5\n",
1802 | "FPS 10.7\n",
1803 | "FPS 12.1\n",
1804 | "FPS 12.4\n",
1805 | "FPS 10.7\n",
1806 | "FPS 12.2\n",
1807 | "FPS 12.2\n",
1808 | "FPS 12.1\n",
1809 | "FPS 11.3\n",
1810 | "FPS 12.2\n",
1811 | "FPS 12.1\n",
1812 | "FPS 12.5\n",
1813 | "FPS 12.2\n",
1814 | "FPS 12.2\n",
1815 | "FPS 12.4\n",
1816 | "FPS 12.1\n",
1817 | "FPS 12.4\n",
1818 | "FPS 12.4\n",
1819 | "FPS 12.4\n",
1820 | "FPS 12.2\n",
1821 | "FPS 12.2\n",
1822 | "FPS 12.1\n",
1823 | "FPS 12.4\n",
1824 | "FPS 12.1\n",
1825 | "FPS 12.2\n",
1826 | "FPS 12.2\n",
1827 | "FPS 12.2\n",
1828 | "FPS 12.5\n",
1829 | "FPS 12.2\n",
1830 | "FPS 12.1\n",
1831 | "FPS 12.1\n",
1832 | "FPS 12.1\n",
1833 | "FPS 12.4\n",
1834 | "FPS 12.4\n",
1835 | "FPS 12.2\n",
1836 | "FPS 12.4\n",
1837 | "FPS 12.2\n",
1838 | "FPS 10.7\n",
1839 | "FPS 12.4\n",
1840 | "FPS 12.1\n",
1841 | "FPS 12.4\n",
1842 | "FPS 12.1\n",
1843 | "FPS 12.1\n",
1844 | "FPS 11.9\n",
1845 | "FPS 12.1\n",
1846 | "FPS 11.5\n",
1847 | "FPS 12.1\n",
1848 | "FPS 11.9\n",
1849 | "FPS 11.7\n",
1850 | "FPS 10.7\n",
1851 | "FPS 11.8\n",
1852 | "FPS 11.3\n",
1853 | "FPS 11.7\n",
1854 | "FPS 12.2\n",
1855 | "FPS 12.4\n",
1856 | "FPS 12.2\n",
1857 | "FPS 12.1\n",
1858 | "FPS 11.9\n",
1859 | "FPS 12.1\n",
1860 | "FPS 11.9\n",
1861 | "FPS 11.8\n",
1862 | "FPS 11.8\n",
1863 | "FPS 10.0\n",
1864 | "FPS 11.8\n",
1865 | "FPS 10.8\n",
1866 | "FPS 11.9\n",
1867 | "FPS 12.1\n",
1868 | "FPS 12.2\n",
1869 | "FPS 12.4\n",
1870 | "FPS 12.4\n",
1871 | "FPS 12.1\n",
1872 | "FPS 12.1\n",
1873 | "FPS 12.2\n",
1874 | "FPS 12.1\n",
1875 | "FPS 12.1\n",
1876 | "FPS 12.4\n",
1877 | "FPS 11.9\n",
1878 | "FPS 12.2\n",
1879 | "FPS 12.2\n",
1880 | "FPS 11.1\n",
1881 | "FPS 12.4\n",
1882 | "FPS 12.1\n",
1883 | "FPS 12.1\n",
1884 | "FPS 12.2\n",
1885 | "FPS 12.1\n",
1886 | "FPS 12.2\n",
1887 | "FPS 12.1\n",
1888 | "FPS 11.3\n",
1889 | "FPS 12.2\n",
1890 | "FPS 11.9\n",
1891 | "FPS 12.2\n",
1892 | "FPS 12.2\n",
1893 | "FPS 11.9\n",
1894 | "FPS 11.5\n",
1895 | "FPS 11.9\n",
1896 | "FPS 12.1\n",
1897 | "FPS 12.2\n",
1898 | "FPS 12.2\n",
1899 | "FPS 11.9\n",
1900 | "FPS 12.2\n",
1901 | "FPS 11.1\n",
1902 | "FPS 11.9\n",
1903 | "FPS 12.4\n",
1904 | "FPS 12.1\n",
1905 | "FPS 12.2\n",
1906 | "FPS 12.2\n",
1907 | "FPS 12.1\n",
1908 | "FPS 12.2\n",
1909 | "FPS 12.1\n",
1910 | "FPS 12.1\n",
1911 | "FPS 12.1\n",
1912 | "FPS 11.9\n",
1913 | "FPS 12.4\n",
1914 | "FPS 11.8\n",
1915 | "FPS 11.5\n",
1916 | "FPS 12.1\n",
1917 | "FPS 12.1\n",
1918 | "FPS 12.1\n",
1919 | "FPS 12.4\n",
1920 | "FPS 11.9\n",
1921 | "FPS 12.2\n",
1922 | "FPS 11.9\n",
1923 | "FPS 12.1\n",
1924 | "FPS 12.2\n",
1925 | "FPS 11.7\n",
1926 | "FPS 11.8\n",
1927 | "FPS 12.2\n",
1928 | "FPS 12.1\n",
1929 | "FPS 12.4\n",
1930 | "FPS 12.2\n",
1931 | "FPS 12.2\n",
1932 | "FPS 12.2\n",
1933 | "FPS 11.8\n",
1934 | "FPS 12.4\n",
1935 | "FPS 12.4\n",
1936 | "FPS 12.1\n",
1937 | "FPS 12.1\n",
1938 | "FPS 11.8\n",
1939 | "FPS 12.1\n",
1940 | "FPS 12.4\n",
1941 | "FPS 12.1\n",
1942 | "FPS 12.1\n",
1943 | "FPS 12.2\n",
1944 | "FPS 11.8\n",
1945 | "FPS 12.1\n",
1946 | "FPS 12.1\n",
1947 | "FPS 12.2\n",
1948 | "FPS 12.4\n",
1949 | "FPS 11.8\n",
1950 | "FPS 12.2\n",
1951 | "FPS 12.4\n",
1952 | "FPS 12.1\n",
1953 | "FPS 12.4\n",
1954 | "FPS 12.2\n",
1955 | "FPS 11.9\n",
1956 | "FPS 11.9\n",
1957 | "FPS 11.9\n",
1958 | "FPS 11.7\n",
1959 | "FPS 12.1\n",
1960 | "FPS 11.7\n",
1961 | "FPS 11.7\n",
1962 | "FPS 11.8\n",
1963 | "FPS 11.5\n",
1964 | "FPS 11.3\n",
1965 | "FPS 11.7\n",
1966 | "FPS 11.7\n",
1967 | "FPS 11.8\n",
1968 | "FPS 12.1\n",
1969 | "FPS 11.7\n",
1970 | "FPS 11.8\n",
1971 | "FPS 11.5\n",
1972 | "FPS 12.1\n",
1973 | "FPS 11.9\n",
1974 | "FPS 12.2\n",
1975 | "FPS 12.1\n",
1976 | "FPS 11.7\n",
1977 | "FPS 11.7\n",
1978 | "FPS 12.1\n",
1979 | "FPS 10.1\n",
1980 | "FPS 7.3\n",
1981 | "FPS 7.3\n",
1982 | "FPS 7.3\n",
1983 | "FPS 7.4\n",
1984 | "FPS 7.3\n",
1985 | "FPS 7.3\n",
1986 | "FPS 7.3\n",
1987 | "FPS 7.3\n",
1988 | "FPS 7.3\n",
1989 | "FPS 7.2\n",
1990 | "FPS 7.2\n",
1991 | "FPS 7.3\n",
1992 | "FPS 7.4\n",
1993 | "FPS 7.3\n",
1994 | "FPS 7.2\n",
1995 | "FPS 7.3\n",
1996 | "FPS 7.4\n",
1997 | "FPS 7.3\n",
1998 | "FPS 7.3\n",
1999 | "FPS 7.3\n",
2000 | "FPS 7.3\n",
2001 | "FPS 7.4\n",
2002 | "FPS 7.2\n",
2003 | "FPS 7.4\n",
2004 | "FPS 7.3\n",
2005 | "FPS 7.3\n",
2006 | "FPS 7.2\n",
2007 | "FPS 7.2\n",
2008 | "FPS 7.2\n",
2009 | "FPS 7.2\n",
2010 | "FPS 7.1\n",
2011 | "FPS 7.1\n",
2012 | "FPS 7.1\n",
2013 | "FPS 7.2\n",
2014 | "FPS 7.2\n",
2015 | "FPS 7.1\n",
2016 | "FPS 7.2\n",
2017 | "FPS 7.3\n",
2018 | "FPS 7.3\n",
2019 | "FPS 7.3\n",
2020 | "FPS 7.2\n",
2021 | "FPS 7.3\n",
2022 | "FPS 7.3\n",
2023 | "FPS 7.3\n",
2024 | "FPS 7.3\n",
2025 | "FPS 7.3\n",
2026 | "FPS 7.2\n",
2027 | "FPS 7.3\n",
2028 | "FPS 7.3\n",
2029 | "FPS 7.3\n",
2030 | "FPS 7.0\n",
2031 | "FPS 7.2\n",
2032 | "FPS 7.3\n",
2033 | "FPS 7.3\n",
2034 | "FPS 7.4\n",
2035 | "FPS 7.3\n",
2036 | "FPS 7.3\n",
2037 | "FPS 7.3\n",
2038 | "FPS 7.3\n",
2039 | "FPS 7.4\n",
2040 | "FPS 7.3\n",
2041 | "FPS 7.3\n",
2042 | "FPS 7.3\n",
2043 | "FPS 7.3\n",
2044 | "FPS 7.3\n",
2045 | "FPS 7.3\n",
2046 | "FPS 7.3\n",
2047 | "FPS 7.3\n",
2048 | "FPS 7.1\n",
2049 | "FPS 7.2\n",
2050 | "FPS 7.3\n",
2051 | "FPS 7.2\n",
2052 | "FPS 7.2\n",
2053 | "FPS 7.3\n",
2054 | "FPS 7.2\n",
2055 | "FPS 7.3\n",
2056 | "FPS 7.3\n",
2057 | "FPS 7.4\n",
2058 | "FPS 7.2\n",
2059 | "FPS 7.1\n",
2060 | "FPS 7.2\n",
2061 | "FPS 7.3\n",
2062 | "FPS 7.4\n",
2063 | "FPS 7.2\n",
2064 | "FPS 7.3\n",
2065 | "FPS 7.3\n",
2066 | "FPS 7.4\n",
2067 | "FPS 7.3\n",
2068 | "FPS 7.2\n",
2069 | "FPS 7.4\n",
2070 | "FPS 7.3\n",
2071 | "FPS 7.4\n",
2072 | "FPS 7.3\n",
2073 | "FPS 7.4\n",
2074 | "FPS 7.3\n",
2075 | "FPS 7.3\n",
2076 | "FPS 7.2\n",
2077 | "FPS 7.0\n",
2078 | "FPS 7.3\n",
2079 | "FPS 7.0\n",
2080 | "FPS 7.3\n",
2081 | "FPS 7.2\n",
2082 | "FPS 7.3\n",
2083 | "FPS 7.4\n",
2084 | "FPS 7.3\n",
2085 | "FPS 7.4\n",
2086 | "FPS 7.3\n",
2087 | "FPS 7.1\n",
2088 | "FPS 7.4\n",
2089 | "FPS 7.3\n",
2090 | "FPS 7.3\n",
2091 | "FPS 7.3\n",
2092 | "FPS 7.3\n",
2093 | "FPS 7.3\n",
2094 | "FPS 7.4\n",
2095 | "FPS 7.3\n",
2096 | "FPS 7.3\n",
2097 | "FPS 7.3\n",
2098 | "FPS 7.3\n",
2099 | "FPS 7.1\n",
2100 | "FPS 7.3\n",
2101 | "FPS 7.3\n",
2102 | "FPS 7.3\n",
2103 | "FPS 7.1\n",
2104 | "FPS 7.4\n",
2105 | "FPS 7.3\n",
2106 | "FPS 7.4\n",
2107 | "FPS 7.3\n",
2108 | "FPS 7.3\n",
2109 | "FPS 7.3\n",
2110 | "FPS 7.3\n",
2111 | "FPS 7.3\n",
2112 | "FPS 7.3\n",
2113 | "FPS 7.3\n",
2114 | "FPS 7.3\n",
2115 | "FPS 7.4\n",
2116 | "FPS 7.2\n",
2117 | "FPS 7.4\n",
2118 | "FPS 7.3\n",
2119 | "FPS 7.3\n",
2120 | "FPS 7.3\n",
2121 | "FPS 7.3\n",
2122 | "FPS 7.4\n",
2123 | "FPS 7.3\n",
2124 | "FPS 7.4\n",
2125 | "FPS 7.2\n",
2126 | "FPS 7.3\n",
2127 | "FPS 7.3\n",
2128 | "FPS 7.3\n",
2129 | "FPS 7.3\n",
2130 | "FPS 7.3\n",
2131 | "FPS 7.4\n",
2132 | "FPS 7.3\n",
2133 | "FPS 7.0\n",
2134 | "FPS 7.1\n",
2135 | "FPS 7.2\n",
2136 | "FPS 7.3\n",
2137 | "FPS 7.3\n",
2138 | "FPS 7.1\n",
2139 | "FPS 7.3\n",
2140 | "FPS 7.1\n",
2141 | "FPS 7.2\n",
2142 | "FPS 7.1\n",
2143 | "FPS 7.2\n",
2144 | "FPS 7.3\n",
2145 | "FPS 7.2\n",
2146 | "FPS 7.3\n",
2147 | "FPS 7.2\n",
2148 | "FPS 7.2\n",
2149 | "FPS 7.2\n",
2150 | "FPS 7.2\n",
2151 | "FPS 7.3\n",
2152 | "FPS 7.1\n",
2153 | "FPS 6.7\n",
2154 | "FPS 7.3\n",
2155 | "FPS 7.2\n",
2156 | "FPS 6.8\n",
2157 | "FPS 7.3\n",
2158 | "FPS 7.3\n",
2159 | "FPS 7.3\n",
2160 | "FPS 7.3\n",
2161 | "FPS 7.3\n",
2162 | "FPS 7.3\n",
2163 | "FPS 7.4\n",
2164 | "FPS 7.3\n",
2165 | "FPS 7.3\n",
2166 | "FPS 7.3\n",
2167 | "FPS 7.4\n",
2168 | "FPS 7.3\n",
2169 | "FPS 7.3\n",
2170 | "FPS 7.4\n",
2171 | "FPS 7.3\n",
2172 | "FPS 7.1\n",
2173 | "FPS 7.2\n",
2174 | "FPS 7.3\n",
2175 | "FPS 7.2\n",
2176 | "FPS 7.3\n",
2177 | "FPS 7.4\n",
2178 | "FPS 7.3\n",
2179 | "FPS 7.4\n",
2180 | "FPS 7.3\n",
2181 | "FPS 7.3\n",
2182 | "FPS 7.3\n",
2183 | "FPS 7.3\n",
2184 | "FPS 7.3\n",
2185 | "FPS 7.2\n",
2186 | "FPS 7.4\n",
2187 | "FPS 7.3\n",
2188 | "FPS 7.3\n",
2189 | "FPS 7.3\n",
2190 | "FPS 7.3\n",
2191 | "FPS 7.4\n",
2192 | "FPS 7.3\n",
2193 | "FPS 7.4\n",
2194 | "FPS 7.3\n",
2195 | "FPS 7.3\n",
2196 | "FPS 7.3\n",
2197 | "FPS 7.3\n",
2198 | "FPS 7.2\n",
2199 | "FPS 7.4\n",
2200 | "FPS 7.3\n",
2201 | "FPS 7.3\n",
2202 | "FPS 7.3\n",
2203 | "FPS 7.3\n",
2204 | "FPS 7.4\n",
2205 | "FPS 7.3\n",
2206 | "FPS 7.3\n",
2207 | "FPS 7.2\n",
2208 | "FPS 7.3\n",
2209 | "FPS 7.3\n",
2210 | "FPS 7.3\n",
2211 | "FPS 7.3\n",
2212 | "FPS 7.3\n",
2213 | "FPS 7.1\n",
2214 | "FPS 7.3\n",
2215 | "FPS 7.3\n",
2216 | "FPS 7.4\n",
2217 | "FPS 7.2\n",
2218 | "FPS 7.3\n",
2219 | "FPS 7.3\n",
2220 | "FPS 7.2\n",
2221 | "FPS 7.2\n",
2222 | "FPS 7.2\n",
2223 | "FPS 7.2\n",
2224 | "FPS 7.2\n",
2225 | "FPS 7.3\n",
2226 | "FPS 7.3\n",
2227 | "FPS 7.4\n",
2228 | "FPS 7.3\n",
2229 | "FPS 7.3\n",
2230 | "FPS 7.3\n",
2231 | "FPS 7.2\n",
2232 | "FPS 7.3\n",
2233 | "FPS 7.3\n",
2234 | "FPS 7.4\n",
2235 | "FPS 7.2\n",
2236 | "FPS 7.3\n",
2237 | "FPS 7.3\n",
2238 | "FPS 7.3\n",
2239 | "FPS 7.2\n",
2240 | "FPS 7.2\n",
2241 | "FPS 7.2\n",
2242 | "FPS 7.2\n",
2243 | "FPS 7.2\n",
2244 | "FPS 7.2\n",
2245 | "FPS 7.3\n",
2246 | "FPS 7.3\n",
2247 | "FPS 7.2\n",
2248 | "FPS 7.3\n",
2249 | "FPS 7.2\n",
2250 | "FPS 7.3\n",
2251 | "FPS 7.4\n",
2252 | "FPS 7.2\n",
2253 | "FPS 7.3\n",
2254 | "FPS 7.3\n",
2255 | "FPS 7.1\n",
2256 | "FPS 7.3\n",
2257 | "FPS 7.2\n",
2258 | "FPS 7.4\n",
2259 | "FPS 7.2\n",
2260 | "FPS 7.4\n",
2261 | "FPS 7.3\n",
2262 | "FPS 7.4\n",
2263 | "FPS 7.4\n",
2264 | "FPS 7.3\n",
2265 | "FPS 7.3\n",
2266 | "FPS 7.3\n",
2267 | "FPS 6.8\n",
2268 | "FPS 7.3\n",
2269 | "FPS 7.3\n",
2270 | "FPS 7.3\n",
2271 | "FPS 7.3\n",
2272 | "FPS 7.4\n",
2273 | "FPS 7.2\n",
2274 | "FPS 7.3\n",
2275 | "FPS 7.3\n",
2276 | "FPS 7.3\n",
2277 | "FPS 7.1\n",
2278 | "FPS 7.1\n",
2279 | "FPS 7.3\n",
2280 | "FPS 7.3\n",
2281 | "FPS 7.4\n",
2282 | "FPS 7.3\n",
2283 | "FPS 7.3\n",
2284 | "FPS 7.3\n",
2285 | "FPS 7.3\n",
2286 | "FPS 7.3\n",
2287 | "FPS 7.3\n",
2288 | "FPS 7.3\n",
2289 | "FPS 7.3\n",
2290 | "FPS 7.4\n",
2291 | "FPS 7.3\n",
2292 | "FPS 7.3\n",
2293 | "FPS 7.4\n",
2294 | "FPS 7.3\n",
2295 | "FPS 7.3\n",
2296 | "FPS 7.1\n",
2297 | "FPS 7.2\n",
2298 | "FPS 7.3\n",
2299 | "FPS 7.2\n",
2300 | "FPS 7.3\n",
2301 | "FPS 7.0\n",
2302 | "FPS 7.2\n",
2303 | "FPS 7.2\n",
2304 | "FPS 7.2\n",
2305 | "FPS 7.1\n",
2306 | "FPS 7.2\n",
2307 | "FPS 7.3\n",
2308 | "FPS 7.3\n",
2309 | "FPS 7.3\n",
2310 | "FPS 7.3\n",
2311 | "FPS 7.4\n",
2312 | "FPS 7.3\n",
2313 | "FPS 7.3\n",
2314 | "FPS 7.2\n",
2315 | "FPS 7.3\n",
2316 | "FPS 7.4\n",
2317 | "FPS 7.3\n",
2318 | "FPS 7.2\n",
2319 | "FPS 7.3\n",
2320 | "FPS 7.3\n",
2321 | "FPS 7.3\n",
2322 | "FPS 7.3\n",
2323 | "FPS 7.3\n",
2324 | "FPS 7.2\n",
2325 | "FPS 7.2\n",
2326 | "FPS 7.2\n",
2327 | "FPS 7.2\n",
2328 | "FPS 7.4\n",
2329 | "FPS 7.2\n",
2330 | "FPS 7.2\n",
2331 | "FPS 7.3\n",
2332 | "FPS 7.3\n",
2333 | "FPS 7.3\n",
2334 | "FPS 7.3\n",
2335 | "FPS 7.3\n",
2336 | "FPS 7.3\n",
2337 | "FPS 7.3\n",
2338 | "FPS 7.3\n",
2339 | "FPS 7.3\n",
2340 | "FPS 7.1\n",
2341 | "FPS 7.3\n",
2342 | "FPS 7.3\n",
2343 | "FPS 7.1\n",
2344 | "FPS 7.2\n",
2345 | "FPS 7.0\n",
2346 | "FPS 7.3\n",
2347 | "FPS 6.8\n",
2348 | "FPS 7.3\n",
2349 | "FPS 7.3\n",
2350 | "FPS 7.2\n",
2351 | "FPS 7.3\n",
2352 | "FPS 7.3\n",
2353 | "FPS 7.2\n",
2354 | "FPS 7.1\n",
2355 | "FPS 7.3\n",
2356 | "FPS 7.1\n",
2357 | "FPS 7.1\n",
2358 | "FPS 7.3\n",
2359 | "FPS 7.3\n",
2360 | "FPS 7.1\n",
2361 | "FPS 7.3\n",
2362 | "FPS 7.3\n",
2363 | "FPS 7.2\n",
2364 | "FPS 7.3\n",
2365 | "FPS 7.2\n",
2366 | "FPS 7.2\n",
2367 | "FPS 7.2\n",
2368 | "FPS 7.3\n",
2369 | "FPS 7.3\n",
2370 | "FPS 7.2\n",
2371 | "FPS 7.3\n",
2372 | "FPS 7.3\n",
2373 | "FPS 7.3\n",
2374 | "FPS 7.3\n",
2375 | "FPS 7.2\n",
2376 | "FPS 7.3\n",
2377 | "FPS 7.3\n",
2378 | "FPS 7.3\n",
2379 | "FPS 7.3\n",
2380 | "FPS 7.3\n",
2381 | "FPS 7.3\n",
2382 | "FPS 7.3\n",
2383 | "FPS 7.2\n",
2384 | "FPS 7.2\n",
2385 | "FPS 7.2\n",
2386 | "FPS 7.2\n",
2387 | "FPS 7.3\n",
2388 | "FPS 6.5\n",
2389 | "FPS 7.3\n",
2390 | "FPS 7.1\n",
2391 | "FPS 7.1\n",
2392 | "FPS 7.3\n",
2393 | "FPS 7.3\n",
2394 | "FPS 7.2\n",
2395 | "FPS 7.3\n",
2396 | "FPS 7.3\n",
2397 | "FPS 7.4\n",
2398 | "FPS 7.3\n",
2399 | "FPS 7.3\n",
2400 | "FPS 7.3\n",
2401 | "FPS 7.3\n",
2402 | "FPS 7.3\n",
2403 | "FPS 7.3\n",
2404 | "FPS 7.3\n",
2405 | "FPS 7.3\n",
2406 | "FPS 7.4\n",
2407 | "FPS 7.2\n",
2408 | "FPS 7.2\n",
2409 | "FPS 7.1\n",
2410 | "FPS 7.3\n",
2411 | "FPS 7.3\n",
2412 | "FPS 7.1\n",
2413 | "FPS 7.3\n",
2414 | "FPS 7.2\n",
2415 | "FPS 7.3\n",
2416 | "FPS 7.3\n",
2417 | "FPS 7.4\n",
2418 | "FPS 7.3\n",
2419 | "FPS 7.3\n",
2420 | "FPS 7.3\n",
2421 | "FPS 7.3\n",
2422 | "FPS 7.3\n",
2423 | "FPS 7.3\n",
2424 | "FPS 7.3\n",
2425 | "FPS 7.3\n",
2426 | "FPS 7.3\n",
2427 | "FPS 7.2\n",
2428 | "FPS 7.3\n",
2429 | "FPS 7.4\n",
2430 | "FPS 7.3\n",
2431 | "FPS 7.2\n",
2432 | "FPS 7.3\n",
2433 | "FPS 7.2\n",
2434 | "FPS 7.2\n",
2435 | "FPS 7.3\n",
2436 | "FPS 7.2\n",
2437 | "FPS 7.3\n",
2438 | "FPS 7.4\n",
2439 | "FPS 7.3\n",
2440 | "FPS 7.3\n",
2441 | "FPS 7.3\n",
2442 | "FPS 7.3\n",
2443 | "FPS 7.3\n",
2444 | "FPS 7.4\n",
2445 | "FPS 7.1\n",
2446 | "FPS 7.2\n",
2447 | "FPS 7.1\n",
2448 | "FPS 7.3\n",
2449 | "FPS 7.3\n",
2450 | "FPS 7.1\n",
2451 | "FPS 7.0\n",
2452 | "FPS 7.2\n",
2453 | "FPS 7.3\n",
2454 | "FPS 7.3\n",
2455 | "FPS 7.3\n",
2456 | "FPS 7.3\n",
2457 | "FPS 7.3\n",
2458 | "FPS 7.3\n",
2459 | "FPS 7.3\n",
2460 | "FPS 7.3\n",
2461 | "FPS 7.2\n",
2462 | "FPS 7.1\n",
2463 | "FPS 7.2\n",
2464 | "FPS 7.1\n",
2465 | "FPS 7.2\n",
2466 | "FPS 7.3\n",
2467 | "FPS 7.3\n",
2468 | "FPS 7.2\n",
2469 | "FPS 7.3\n",
2470 | "FPS 6.9\n",
2471 | "FPS 7.2\n",
2472 | "FPS 7.3\n",
2473 | "FPS 7.3\n",
2474 | "FPS 7.1\n",
2475 | "FPS 7.3\n",
2476 | "FPS 7.3\n",
2477 | "FPS 7.0\n",
2478 | "FPS 6.9\n",
2479 | "FPS 7.1\n",
2480 | "FPS 7.0\n",
2481 | "FPS 7.2\n",
2482 | "FPS 6.7\n",
2483 | "FPS 6.6\n",
2484 | "FPS 7.2\n",
2485 | "FPS 7.1\n",
2486 | "FPS 7.1\n",
2487 | "FPS 7.3\n",
2488 | "FPS 7.2\n",
2489 | "FPS 7.3\n",
2490 | "FPS 6.8\n",
2491 | "FPS 7.0\n",
2492 | "FPS 7.1\n",
2493 | "FPS 5.8\n",
2494 | "FPS 5.8\n",
2495 | "FPS 7.0\n",
2496 | "FPS 6.2\n",
2497 | "FPS 6.5\n",
2498 | "FPS 7.3\n",
2499 | "FPS 6.0\n",
2500 | "FPS 6.8\n",
2501 | "FPS 6.4\n",
2502 | "FPS 6.5\n",
2503 | "FPS 6.3\n",
2504 | "FPS 7.2\n",
2505 | "FPS 7.2\n",
2506 | "FPS 7.0\n",
2507 | "FPS 7.1\n",
2508 | "FPS 6.5\n",
2509 | "FPS 7.3\n",
2510 | "FPS 7.3\n",
2511 | "FPS 7.2\n",
2512 | "FPS 7.2\n",
2513 | "FPS 6.9\n",
2514 | "FPS 6.4\n",
2515 | "FPS 6.6\n",
2516 | "FPS 7.2\n",
2517 | "FPS 6.8\n",
2518 | "FPS 7.3\n",
2519 | "FPS 7.0\n",
2520 | "FPS 7.2\n",
2521 | "FPS 7.2\n",
2522 | "FPS 7.3\n",
2523 | "FPS 6.9\n",
2524 | "FPS 7.2\n",
2525 | "FPS 7.2\n",
2526 | "FPS 7.2\n",
2527 | "FPS 7.2\n",
2528 | "FPS 6.9\n",
2529 | "FPS 6.9\n",
2530 | "FPS 6.3\n",
2531 | "FPS 6.0\n",
2532 | "FPS 7.0\n",
2533 | "FPS 7.3\n",
2534 | "FPS 7.3\n",
2535 | "FPS 7.3\n",
2536 | "FPS 7.2\n",
2537 | "FPS 7.2\n",
2538 | "FPS 7.1\n",
2539 | "FPS 7.3\n",
2540 | "FPS 7.2\n",
2541 | "FPS 7.1\n",
2542 | "FPS 7.0\n",
2543 | "FPS 7.3\n",
2544 | "FPS 7.3\n",
2545 | "FPS 7.2\n",
2546 | "FPS 7.3\n",
2547 | "FPS 7.3\n",
2548 | "FPS 6.9\n",
2549 | "FPS 7.3\n",
2550 | "FPS 7.2\n",
2551 | "FPS 7.2\n",
2552 | "FPS 7.0\n",
2553 | "FPS 7.3\n",
2554 | "FPS 7.2\n",
2555 | "FPS 7.3\n",
2556 | "FPS 7.1\n",
2557 | "FPS 7.3\n",
2558 | "FPS 6.3\n",
2559 | "FPS 5.1\n",
2560 | "FPS 5.0\n",
2561 | "FPS 5.0\n",
2562 | "FPS 5.1\n",
2563 | "FPS 5.0\n",
2564 | "FPS 5.0\n",
2565 | "FPS 4.9\n",
2566 | "FPS 5.1\n",
2567 | "FPS 5.0\n",
2568 | "FPS 5.0\n",
2569 | "FPS 5.1\n",
2570 | "FPS 5.1\n",
2571 | "FPS 5.0\n",
2572 | "FPS 5.1\n",
2573 | "FPS 5.0\n",
2574 | "FPS 5.0\n",
2575 | "FPS 4.9\n",
2576 | "FPS 5.0\n",
2577 | "FPS 5.1\n"
2578 | ]
2579 | },
2580 | {
2581 | "name": "stdout",
2582 | "output_type": "stream",
2583 | "text": [
2584 | "FPS 5.1\n",
2585 | "FPS 5.0\n",
2586 | "FPS 5.1\n",
2587 | "FPS 5.1\n",
2588 | "FPS 5.2\n",
2589 | "FPS 5.1\n",
2590 | "FPS 5.1\n",
2591 | "FPS 5.0\n",
2592 | "FPS 5.0\n",
2593 | "FPS 4.9\n",
2594 | "FPS 4.9\n",
2595 | "FPS 4.8\n",
2596 | "FPS 4.7\n",
2597 | "FPS 4.9\n",
2598 | "FPS 4.9\n",
2599 | "FPS 5.0\n",
2600 | "FPS 4.9\n",
2601 | "FPS 5.1\n",
2602 | "FPS 5.1\n",
2603 | "FPS 5.1\n",
2604 | "FPS 4.9\n",
2605 | "FPS 4.9\n",
2606 | "FPS 4.9\n",
2607 | "FPS 4.9\n",
2608 | "FPS 5.1\n",
2609 | "FPS 5.1\n",
2610 | "FPS 5.2\n",
2611 | "FPS 5.1\n",
2612 | "FPS 5.1\n",
2613 | "FPS 5.0\n",
2614 | "FPS 5.1\n",
2615 | "FPS 5.1\n",
2616 | "FPS 5.1\n",
2617 | "FPS 5.1\n",
2618 | "FPS 5.0\n",
2619 | "FPS 5.1\n",
2620 | "FPS 5.1\n",
2621 | "FPS 5.1\n",
2622 | "FPS 5.2\n",
2623 | "FPS 5.1\n",
2624 | "FPS 5.1\n",
2625 | "FPS 5.0\n",
2626 | "FPS 4.7\n",
2627 | "FPS 5.0\n",
2628 | "FPS 4.9\n",
2629 | "FPS 5.0\n",
2630 | "FPS 5.0\n",
2631 | "FPS 5.0\n",
2632 | "FPS 5.0\n",
2633 | "FPS 5.0\n",
2634 | "FPS 4.9\n",
2635 | "FPS 4.9\n",
2636 | "FPS 5.1\n",
2637 | "FPS 4.8\n",
2638 | "FPS 5.0\n",
2639 | "FPS 4.8\n",
2640 | "FPS 4.7\n",
2641 | "FPS 4.7\n",
2642 | "FPS 4.9\n",
2643 | "FPS 4.9\n",
2644 | "FPS 5.0\n",
2645 | "FPS 4.7\n",
2646 | "FPS 4.9\n",
2647 | "FPS 4.8\n",
2648 | "FPS 5.1\n",
2649 | "FPS 4.9\n",
2650 | "FPS 4.7\n",
2651 | "FPS 4.5\n",
2652 | "FPS 4.9\n",
2653 | "FPS 4.9\n",
2654 | "FPS 4.9\n",
2655 | "FPS 5.0\n",
2656 | "FPS 4.8\n",
2657 | "FPS 4.7\n",
2658 | "FPS 4.9\n",
2659 | "FPS 4.9\n",
2660 | "FPS 4.8\n",
2661 | "FPS 4.8\n",
2662 | "FPS 4.8\n",
2663 | "FPS 4.8\n",
2664 | "FPS 4.8\n",
2665 | "FPS 4.8\n",
2666 | "FPS 4.9\n",
2667 | "FPS 4.9\n",
2668 | "FPS 5.0\n",
2669 | "FPS 4.9\n",
2670 | "FPS 5.0\n",
2671 | "FPS 4.9\n",
2672 | "FPS 4.9\n",
2673 | "FPS 5.0\n",
2674 | "FPS 5.0\n",
2675 | "FPS 4.7\n",
2676 | "FPS 5.0\n",
2677 | "FPS 4.9\n",
2678 | "FPS 4.9\n",
2679 | "FPS 4.9\n",
2680 | "FPS 4.9\n",
2681 | "FPS 4.9\n",
2682 | "FPS 5.0\n",
2683 | "FPS 5.0\n",
2684 | "FPS 4.8\n",
2685 | "FPS 4.8\n",
2686 | "FPS 4.8\n",
2687 | "FPS 4.8\n",
2688 | "FPS 5.0\n",
2689 | "FPS 5.0\n",
2690 | "FPS 5.0\n",
2691 | "FPS 5.1\n",
2692 | "FPS 5.0\n",
2693 | "FPS 5.0\n",
2694 | "FPS 4.9\n",
2695 | "FPS 5.0\n",
2696 | "FPS 5.0\n",
2697 | "FPS 4.8\n",
2698 | "FPS 5.0\n",
2699 | "FPS 4.9\n",
2700 | "FPS 4.9\n",
2701 | "FPS 5.0\n",
2702 | "FPS 4.5\n",
2703 | "FPS 4.9\n",
2704 | "FPS 4.8\n",
2705 | "FPS 4.9\n",
2706 | "FPS 5.1\n",
2707 | "FPS 4.9\n",
2708 | "FPS 5.0\n",
2709 | "FPS 5.0\n",
2710 | "FPS 4.7\n",
2711 | "FPS 5.0\n",
2712 | "FPS 4.9\n",
2713 | "FPS 4.9\n",
2714 | "FPS 4.7\n",
2715 | "FPS 4.8\n",
2716 | "FPS 4.8\n",
2717 | "FPS 5.0\n",
2718 | "FPS 4.8\n",
2719 | "FPS 4.6\n",
2720 | "FPS 4.8\n",
2721 | "FPS 4.7\n",
2722 | "FPS 4.8\n",
2723 | "FPS 4.9\n",
2724 | "FPS 4.8\n",
2725 | "FPS 4.6\n",
2726 | "FPS 4.7\n",
2727 | "FPS 4.9\n",
2728 | "FPS 4.8\n",
2729 | "FPS 4.9\n",
2730 | "FPS 4.8\n",
2731 | "FPS 4.9\n",
2732 | "FPS 4.9\n",
2733 | "FPS 4.7\n",
2734 | "FPS 5.0\n",
2735 | "FPS 4.9\n",
2736 | "FPS 4.7\n",
2737 | "FPS 4.8\n",
2738 | "FPS 4.9\n",
2739 | "FPS 4.8\n",
2740 | "FPS 4.9\n",
2741 | "FPS 4.8\n",
2742 | "FPS 4.8\n",
2743 | "FPS 4.9\n",
2744 | "FPS 4.8\n",
2745 | "FPS 4.9\n",
2746 | "FPS 4.8\n",
2747 | "FPS 4.9\n",
2748 | "FPS 4.9\n",
2749 | "FPS 4.9\n",
2750 | "FPS 5.1\n",
2751 | "FPS 4.8\n",
2752 | "FPS 5.0\n",
2753 | "FPS 5.0\n",
2754 | "FPS 4.9\n",
2755 | "FPS 5.0\n",
2756 | "FPS 4.8\n",
2757 | "FPS 4.9\n",
2758 | "FPS 5.0\n",
2759 | "FPS 4.9\n",
2760 | "FPS 4.8\n",
2761 | "FPS 4.9\n",
2762 | "FPS 4.7\n",
2763 | "FPS 5.0\n",
2764 | "FPS 5.0\n",
2765 | "FPS 4.8\n",
2766 | "FPS 4.9\n",
2767 | "FPS 5.1\n",
2768 | "FPS 5.0\n",
2769 | "FPS 4.6\n",
2770 | "FPS 5.0\n",
2771 | "FPS 4.8\n",
2772 | "FPS 5.0\n",
2773 | "FPS 4.8\n",
2774 | "FPS 4.4\n",
2775 | "FPS 4.8\n",
2776 | "FPS 4.9\n",
2777 | "FPS 4.9\n",
2778 | "FPS 4.8\n",
2779 | "FPS 4.8\n",
2780 | "FPS 4.8\n",
2781 | "FPS 5.0\n",
2782 | "FPS 4.8\n",
2783 | "FPS 4.9\n",
2784 | "FPS 4.8\n",
2785 | "FPS 4.9\n",
2786 | "FPS 4.7\n",
2787 | "FPS 4.7\n",
2788 | "FPS 4.7\n",
2789 | "FPS 4.9\n",
2790 | "FPS 4.8\n",
2791 | "FPS 4.9\n",
2792 | "FPS 4.8\n",
2793 | "FPS 4.9\n",
2794 | "FPS 4.6\n",
2795 | "FPS 4.9\n",
2796 | "FPS 4.7\n",
2797 | "FPS 4.7\n",
2798 | "FPS 5.0\n",
2799 | "FPS 4.8\n",
2800 | "FPS 5.0\n",
2801 | "FPS 4.7\n",
2802 | "FPS 5.1\n",
2803 | "FPS 4.6\n",
2804 | "FPS 5.1\n",
2805 | "FPS 5.2\n",
2806 | "FPS 5.1\n",
2807 | "FPS 5.0\n",
2808 | "FPS 4.8\n",
2809 | "FPS 4.9\n",
2810 | "FPS 5.1\n",
2811 | "FPS 5.2\n",
2812 | "FPS 5.0\n",
2813 | "FPS 5.1\n",
2814 | "FPS 5.0\n",
2815 | "FPS 4.9\n",
2816 | "FPS 5.1\n",
2817 | "FPS 5.0\n",
2818 | "FPS 5.0\n",
2819 | "FPS 5.1\n",
2820 | "FPS 5.0\n",
2821 | "FPS 5.0\n",
2822 | "FPS 5.1\n",
2823 | "FPS 5.0\n",
2824 | "FPS 5.0\n",
2825 | "FPS 5.1\n",
2826 | "FPS 5.0\n",
2827 | "FPS 5.1\n",
2828 | "FPS 5.0\n",
2829 | "FPS 5.0\n",
2830 | "FPS 5.0\n",
2831 | "FPS 5.0\n",
2832 | "FPS 5.2\n",
2833 | "FPS 4.9\n",
2834 | "FPS 5.0\n",
2835 | "FPS 5.0\n",
2836 | "FPS 5.0\n",
2837 | "FPS 5.1\n",
2838 | "FPS 5.1\n",
2839 | "FPS 5.0\n",
2840 | "FPS 5.0\n",
2841 | "FPS 5.0\n",
2842 | "FPS 5.0\n",
2843 | "FPS 5.1\n",
2844 | "FPS 4.8\n",
2845 | "FPS 5.1\n",
2846 | "FPS 4.6\n",
2847 | "FPS 5.1\n",
2848 | "FPS 5.1\n",
2849 | "FPS 5.0\n",
2850 | "FPS 5.0\n",
2851 | "FPS 5.0\n",
2852 | "FPS 5.1\n",
2853 | "FPS 5.1\n",
2854 | "FPS 5.1\n",
2855 | "FPS 5.2\n",
2856 | "FPS 5.1\n",
2857 | "FPS 5.2\n",
2858 | "FPS 5.1\n",
2859 | "FPS 5.1\n",
2860 | "FPS 5.2\n",
2861 | "FPS 5.1\n",
2862 | "FPS 5.2\n",
2863 | "FPS 5.0\n",
2864 | "FPS 5.1\n",
2865 | "FPS 5.0\n",
2866 | "FPS 5.1\n",
2867 | "FPS 5.1\n",
2868 | "FPS 5.2\n",
2869 | "FPS 5.1\n",
2870 | "FPS 5.1\n",
2871 | "FPS 5.1\n",
2872 | "FPS 5.1\n",
2873 | "FPS 5.0\n",
2874 | "FPS 5.1\n",
2875 | "FPS 5.1\n",
2876 | "FPS 5.1\n",
2877 | "FPS 4.9\n",
2878 | "FPS 5.2\n",
2879 | "FPS 5.1\n",
2880 | "FPS 4.9\n",
2881 | "FPS 5.0\n",
2882 | "FPS 4.9\n",
2883 | "FPS 5.1\n",
2884 | "FPS 5.2\n",
2885 | "FPS 5.1\n",
2886 | "FPS 5.0\n",
2887 | "FPS 5.1\n",
2888 | "FPS 5.0\n",
2889 | "FPS 5.1\n",
2890 | "FPS 5.0\n",
2891 | "FPS 5.1\n",
2892 | "FPS 5.0\n",
2893 | "FPS 5.1\n",
2894 | "FPS 5.1\n",
2895 | "FPS 5.0\n",
2896 | "FPS 5.0\n",
2897 | "FPS 5.0\n",
2898 | "FPS 5.0\n",
2899 | "FPS 5.1\n",
2900 | "FPS 4.7\n",
2901 | "FPS 5.2\n",
2902 | "FPS 5.1\n",
2903 | "FPS 5.2\n",
2904 | "FPS 5.1\n",
2905 | "FPS 5.1\n",
2906 | "FPS 5.0\n",
2907 | "FPS 5.1\n",
2908 | "FPS 5.1\n",
2909 | "FPS 5.0\n",
2910 | "FPS 5.1\n",
2911 | "FPS 5.0\n",
2912 | "FPS 5.0\n",
2913 | "FPS 5.1\n",
2914 | "FPS 4.9\n",
2915 | "FPS 5.1\n",
2916 | "FPS 5.2\n",
2917 | "FPS 5.0\n",
2918 | "FPS 5.1\n",
2919 | "FPS 5.0\n",
2920 | "FPS 5.1\n",
2921 | "FPS 5.1\n",
2922 | "FPS 5.2\n",
2923 | "FPS 5.0\n",
2924 | "FPS 5.1\n",
2925 | "FPS 4.9\n",
2926 | "FPS 5.1\n",
2927 | "FPS 5.1\n",
2928 | "FPS 5.1\n",
2929 | "FPS 4.8\n",
2930 | "FPS 4.7\n"
2931 | ]
2932 | }
2933 | ],
2934 | "source": [
2935 | "capture = cv2.VideoCapture(0)\n",
2936 | "capture.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)\n",
2937 | "capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)\n",
2938 | "\n",
2939 | "while True:\n",
2940 | " stime = time.time()\n",
2941 | " ret, frame = capture.read()\n",
2942 | " if ret:\n",
2943 | " results = tfnet.return_predict(frame)\n",
2944 | " for color, result in zip(colors, results):\n",
2945 | " tl = (result['topleft']['x'], result['topleft']['y'])\n",
2946 | " br = (result['bottomright']['x'], result['bottomright']['y'])\n",
2947 | " label = result['label']\n",
2948 | " confidence = result['confidence']\n",
2949 | " text = '{}: {:.0f}%'.format(label, confidence * 100)\n",
2950 | " frame = cv2.rectangle(frame, tl, br, color, 5)\n",
2951 | " frame = cv2.putText(\n",
2952 | " frame, text, tl, cv2.FONT_HERSHEY_COMPLEX, 1, (255, 255, 255), 2)\n",
2953 | " cv2.imshow('frame', frame)\n",
2954 | " print('FPS {:.1f}'.format(1 / (time.time() - stime)))\n",
2955 | " if cv2.waitKey(1) & 0xFF == ord('q'):\n",
2956 | " break\n",
2957 | "\n",
2958 | "capture.release()\n",
2959 | "cv2.destroyAllWindows()"
2960 | ]
2961 | }
2962 | ],
2963 | "metadata": {
2964 | "kernelspec": {
2965 | "display_name": "Python 3",
2966 | "language": "python",
2967 | "name": "python3"
2968 | },
2969 | "language_info": {
2970 | "codemirror_mode": {
2971 | "name": "ipython",
2972 | "version": 3
2973 | },
2974 | "file_extension": ".py",
2975 | "mimetype": "text/x-python",
2976 | "name": "python",
2977 | "nbconvert_exporter": "python",
2978 | "pygments_lexer": "ipython3",
2979 | "version": "3.6.6"
2980 | }
2981 | },
2982 | "nbformat": 4,
2983 | "nbformat_minor": 2
2984 | }
2985 |
--------------------------------------------------------------------------------