├── README.md ├── converting_data_distribution ├── converting_distribution.ipynb └── picture.png ├── creating_csv_files.py ├── drawing_dynamic_bar_OpenCV ├── PPT_explanation.pptx ├── README.md ├── data.csv ├── draw_dynamic_rect.py ├── explanation.png ├── frame_2.png └── frames.zip ├── generating_video_from_seq_of_images ├── generating_video_from_frames.py └── generating_video_from_frames_2.py ├── plotly_graphs ├── Performance comparison.ipynb ├── hardware_performance.html ├── model_performance.html ├── model_performance.png ├── performance_hardwares.csv ├── performance_models.csv └── ~$performance_hardwares.csv ├── recording_and_saving_live_data_from_camera ├── record_and_save_live_data.py └── record_and_save_live_data_2.py ├── renaming_multiple_files_in_sequence ├── renaming_files.py └── renaming_files_multiple_dir.py └── streamlit_image_comparison_app_demo ├── README.md ├── data ├── folder_1 │ ├── 17_low.png │ └── 328_low.png └── folder_2 │ ├── 17_high.png │ └── 328_high.png ├── requirements.txt ├── streamlit_image_comp_multiple_files.py └── streamlit_image_comp_single_file.py /README.md: -------------------------------------------------------------------------------- 1 | [](https://www.buymeacoffee.com/anujshah645) 2 | 3 | # useful-scripts-for-handling-data 4 | This repository contains some simple and useful scripts that can be helpful for handling data 5 | 6 | This Repository is a mixture of different scripts that can be useful while preparing and handling data for training machine learning or deep learning algorithms 7 | -------------------------------------------------------------------------------- /converting_data_distribution/picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anujshah1003/useful-scripts-for-handling-data/d26b334713b509ba5542b28b499d9bdecb156977/converting_data_distribution/picture.png -------------------------------------------------------------------------------- /creating_csv_files.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import os 3 | data_path = 'flowers_renamed' 4 | data_dir_list = os.listdir(data_path) 5 | print ('the data list is: ',data_dir_list) 6 | 7 | # Assigning labels to each flower category 8 | num_classes = 5 9 | labels_name={'daisy':0,'dandelion':1,'rose':2,'sunflower':3,'tulip':4} 10 | 11 | train_df = pd.DataFrame(columns=['FileName', 'Label', 'ClassName']) 12 | test_df = pd.DataFrame(columns=['FileName', 'Label', 'ClassName']) 13 | 14 | num_images_for_test = 60 15 | 16 | for dataset in data_dir_list: 17 | img_list = os.listdir(os.path.join(data_path,dataset)) 18 | print ('Loading the images of dataset-'+'{}\n'.format(dataset)) 19 | label = labels_name[dataset] 20 | num_img_files = len(img_list) 21 | num_corrupted_files=0 22 | test_list_index = random.sample(range(1, num_img_files-1), num_images_for_test) 23 | 24 | for i in range(num_img_files): 25 | img_name = img_list[i] 26 | img_filename = os.path.join(data_path,dataset,img_name) 27 | try: 28 | input_img = cv2.imread(img_filename) 29 | img_shape=input_img.shape 30 | if i in test_list_index: 31 | test_df = test_df.append({'FileName': img_filename, 'Label': label,'ClassName': dataset},ignore_index=True) 32 | else: 33 | train_df = train_df.append({'FileName': img_filename, 'Label': label,'ClassName': dataset},ignore_index=True) 34 | 35 | except: 36 | print ('{} is corrupted\n'.format(img_filename)) 37 | num_corrupted_files+=1 38 | print ('Read {0} images out of {1} images from data dir {2}\n'.format(num_img_files-num_corrupted_files,num_img_files,dataset)) 39 | 40 | 41 | 42 | print ('completed reading all the image files and assigned labels accordingly') 43 | 44 | if not os.path.exists('data_files'): 45 | os.mkdir('data_files') 46 | 47 | train_df.to_csv('data_files/flower_recognition_train.csv') 48 | test_df.to_csv('data_files/flower_recognition_test.csv') 49 | print('The train and test csv files are saved') -------------------------------------------------------------------------------- /drawing_dynamic_bar_OpenCV/PPT_explanation.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anujshah1003/useful-scripts-for-handling-data/d26b334713b509ba5542b28b499d9bdecb156977/drawing_dynamic_bar_OpenCV/PPT_explanation.pptx -------------------------------------------------------------------------------- /drawing_dynamic_bar_OpenCV/README.md: -------------------------------------------------------------------------------- 1 | [](https://www.buymeacoffee.com/anujshah645) 2 | 3 | # Drawing Dynamic Bar with OpenCV 4 | we are going to learn how to draw dynamic bar in opencv without using any other GUI Library. 5 | 6 | The Video Tutorial: https://youtu.be/hIFzISGDaKQ 7 | 8 | This kind of dynamic bar are very interesting to present and visualize your results where certain quantity is changing every frame and you want to represent it in an intuitve visual way 9 | 10 | Let's take a scenario where you want to represent eye opening which changes dynamically every frame. 11 | And for this example let's see how we can plot such dynamic bar as shown below 12 | 13 | Note: open the PPT in slideshow mode to see the explanantion 14 | 15 | ## Example 16 | 17 | https://user-images.githubusercontent.com/20814689/196973549-28461fe6-185a-4173-9303-88e099d30cda.mp4 18 | 19 | ## Explanation 20 | 21 |  22 | 23 | -------------------------------------------------------------------------------- /drawing_dynamic_bar_OpenCV/data.csv: -------------------------------------------------------------------------------- 1 | Frame_number,Image_name,left_eyelid_opening_valid,left_eyelid_opening_mm,right_eyelid_opening_valid,right_eyelid_opening_mm 2 | 0,frame_0,1,8.306759,1,8.218197 3 | 1,frame_1,1,8.230459,1,8.291724 4 | 2,frame_2,1,8.722193,1,8.163418 5 | 3,frame_3,1,8.461135,1,8.290079 6 | 4,frame_4,1,8.457934,1,8.407548 7 | 5,frame_5,1,8.375063,1,8.363123 8 | 6,frame_6,1,8.444463,1,8.279162 9 | 7,frame_7,1,8.504954,1,8.469269 10 | 8,frame_8,1,8.437367,1,8.394454 11 | 9,frame_9,1,8.974602,1,8.344787 12 | 10,frame_10,1,8.987537,1,8.332308 13 | 11,frame_11,1,8.907134,1,8.247064 14 | 12,frame_12,1,8.445354,1,8.379023 15 | 13,frame_13,1,8.467916,1,8.345684 16 | 14,frame_14,1,8.482971,1,8.260279 17 | 15,frame_15,1,8.454772,1,8.285245 18 | 16,frame_16,1,8.440748,1,8.411664 19 | 17,frame_17,1,8.483689,1,8.392079 20 | 18,frame_18,1,8.450667,1,8.353128 21 | 19,frame_19,1,8.617705,1,8.466074 22 | 20,frame_20,1,8.448233,1,8.323906 23 | 21,frame_21,1,8.571114,1,8.325378 24 | 22,frame_22,1,8.524988,1,8.312068 25 | 23,frame_23,1,8.38398,1,8.407458 26 | 24,frame_24,1,8.507729,1,8.435745 27 | 25,frame_25,1,8.506107,1,8.275714 28 | 26,frame_26,1,8.47035,1,8.304584 29 | 27,frame_27,1,8.424599,1,8.524179 30 | 28,frame_28,1,8.606942,1,8.377265 31 | 29,frame_29,1,8.440464,1,7.796082 32 | 30,frame_30,1,5.426499,1,2.238996 33 | 31,frame_31,1,1.919167,1,1.206718 34 | 32,frame_32,1,4.897271,1,2.485681 35 | 33,frame_33,1,6.604093,1,4.684207 36 | 34,frame_34,1,7.711826,1,6.347576 37 | 35,frame_35,1,8.139569,1,7.228027 38 | 36,frame_36,1,8.404397,1,7.7288 39 | 37,frame_37,1,8.541382,1,7.907279 40 | 38,frame_38,1,8.596033,1,7.985611 41 | 39,frame_39,1,8.643562,1,8.104299 42 | 40,frame_40,1,8.604269,1,7.891633 43 | 41,frame_41,1,8.555237,1,8.130565 44 | 42,frame_42,1,8.490536,1,8.192537 45 | 43,frame_43,1,8.501424,1,8.245803 46 | 44,frame_44,1,8.574723,1,8.2909 47 | 45,frame_45,1,8.49867,1,8.225274 48 | 46,frame_46,1,8.637513,1,8.023264 49 | 47,frame_47,1,8.686384,1,8.227615 50 | 48,frame_48,1,8.506672,1,8.177739 51 | 49,frame_49,1,8.599388,1,8.139187 52 | 50,frame_50,1,8.586042,1,8.58307 53 | 51,frame_51,1,8.519363,1,8.169046 54 | 52,frame_52,1,8.37229,1,8.144239 55 | 53,frame_53,1,8.47697,1,8.25373 56 | 54,frame_54,1,8.430385,1,8.298511 57 | 55,frame_55,1,8.521161,1,8.151832 58 | 56,frame_56,1,8.532984,1,8.175323 59 | 57,frame_57,1,8.575677,1,8.270275 60 | 58,frame_58,1,8.589052,1,8.145078 61 | 59,frame_59,1,8.399525,1,8.585829 62 | 60,frame_60,1,8.339353,1,8.281643 63 | 61,frame_61,1,8.379451,1,8.264415 64 | 62,frame_62,1,8.421706,1,8.160872 65 | 63,frame_63,1,8.481906,1,8.164394 66 | 64,frame_64,1,8.461938,1,8.346018 67 | 65,frame_65,1,8.554825,1,8.391939 68 | 66,frame_66,1,8.500439,1,8.229634 69 | 67,frame_67,1,9.160593,1,8.659241 70 | 68,frame_68,1,8.466301,1,7.947762 71 | 69,frame_69,1,7.053569,1,6.376253 72 | 70,frame_70,1,4.97338,1,2.753505 73 | 71,frame_71,1,2.133905,1,1.077031 74 | 72,frame_72,1,1.726148,1,1.489804 75 | 73,frame_73,1,3.635801,1,2.676421 76 | 74,frame_74,1,5.493837,1,3.900009 77 | 75,frame_75,1,6.042453,1,4.233894 78 | 76,frame_76,1,5.770585,1,4.417174 79 | 77,frame_77,1,6.036765,1,4.580764 80 | 78,frame_78,1,6.611154,1,4.850404 81 | 79,frame_79,1,6.776731,1,4.985933 82 | 80,frame_80,1,7.004847,1,5.174176 83 | 81,frame_81,1,7.272612,1,5.275754 84 | 82,frame_82,1,6.826346,1,4.785812 85 | 83,frame_83,1,6.702037,1,4.861315 86 | 84,frame_84,1,6.416594,1,4.655487 87 | 85,frame_85,1,6.386905,1,4.847113 88 | 86,frame_86,1,6.220015,1,4.230449 89 | 87,frame_87,1,5.993017,1,4.274077 90 | 88,frame_88,1,6.15062,1,4.610348 91 | 89,frame_89,1,6.262411,1,4.709659 92 | 90,frame_90,1,6.146555,1,4.682463 93 | 91,frame_91,1,6.002594,1,4.761478 94 | 92,frame_92,1,6.320566,1,4.50296 95 | 93,frame_93,1,6.245136,1,4.181287 96 | 94,frame_94,1,6.336773,1,4.371045 97 | 95,frame_95,1,6.383499,1,4.332869 98 | 96,frame_96,1,6.007742,1,4.614317 99 | 97,frame_97,1,6.180062,1,4.733516 100 | 98,frame_98,1,6.188422,1,4.51745 101 | 99,frame_99,1,6.020657,1,4.725155 102 | 100,frame_100,1,5.909923,1,4.54541 103 | 101,frame_101,1,6.137051,1,4.531654 104 | 102,frame_102,1,6.19925,1,4.676934 105 | 103,frame_103,1,6.128618,1,4.524487 106 | 104,frame_104,1,5.965902,1,4.765593 107 | 105,frame_105,1,6.143335,1,4.638875 108 | 106,frame_106,1,6.339028,1,4.651552 109 | 107,frame_107,1,6.09966,1,4.597981 110 | 108,frame_108,1,6.186454,1,4.593141 111 | 109,frame_109,1,6.132106,1,4.640381 112 | 110,frame_110,1,6.043941,1,4.873894 113 | 111,frame_111,1,6.133633,1,4.707214 114 | 112,frame_112,1,6.138968,1,4.639282 115 | 113,frame_113,1,6.096927,1,4.657569 116 | 114,frame_114,1,6.01977,1,4.817938 117 | 115,frame_115,1,5.781822,1,4.73025 118 | 116,frame_116,1,6.169751,1,4.551717 119 | 117,frame_117,1,6.248006,1,4.688858 120 | 118,frame_118,1,5.996956,1,4.773419 121 | 119,frame_119,1,6.152724,1,4.839008 122 | 120,frame_120,1,6.380323,1,4.899431 123 | 121,frame_121,1,6.172041,1,4.735897 124 | 122,frame_122,1,6.053255,1,4.809385 125 | 123,frame_123,1,6.292402,1,4.776465 126 | 124,frame_124,1,6.13002,1,4.872518 127 | 125,frame_125,1,6.123981,1,4.871182 128 | 126,frame_126,1,6.353321,1,4.854615 129 | 127,frame_127,1,6.076799,1,5.010592 130 | 128,frame_128,1,6.012657,1,4.883537 131 | 129,frame_129,1,5.944923,1,4.722962 132 | 130,frame_130,1,6.104536,1,4.819025 133 | 131,frame_131,1,6.242258,1,4.786678 134 | 132,frame_132,1,6.137551,1,4.827416 135 | 133,frame_133,1,6.160138,1,4.748398 136 | 134,frame_134,1,6.136244,1,4.830877 137 | 135,frame_135,1,6.11535,1,4.772708 138 | 136,frame_136,1,6.067492,1,4.954284 139 | 137,frame_137,1,6.084001,1,4.892013 140 | 138,frame_138,1,6.098472,1,4.910821 141 | 139,frame_139,1,6.021883,1,4.801701 142 | 140,frame_140,1,6.415743,1,4.967291 143 | 141,frame_141,1,6.258469,1,4.913127 144 | 142,frame_142,1,6.240334,1,4.824838 145 | 143,frame_143,1,6.230133,1,4.759733 146 | 144,frame_144,1,5.948342,1,4.949666 147 | 145,frame_145,1,5.985493,1,4.70936 148 | 146,frame_146,1,6.003823,1,4.712695 149 | 147,frame_147,1,6.17813,1,4.764922 150 | 148,frame_148,1,6.201542,1,4.754486 151 | 149,frame_149,1,6.10822,1,5.005723 152 | 150,frame_150,1,6.189177,1,4.754951 153 | 151,frame_151,1,6.056447,1,4.754085 154 | 152,frame_152,1,6.179964,1,4.529206 155 | 153,frame_153,1,6.096027,1,4.70374 156 | 154,frame_154,1,6.259394,1,4.865581 157 | 155,frame_155,1,6.09859,1,5.114192 158 | 156,frame_156,1,6.037069,1,4.729963 159 | 157,frame_157,1,6.081115,1,4.79242 160 | 158,frame_158,1,6.211719,1,4.59121 161 | 159,frame_159,1,6.152687,1,4.681987 162 | 160,frame_160,1,6.093526,1,4.776987 163 | 161,frame_161,1,6.237358,1,4.586014 164 | 162,frame_162,1,6.177385,1,4.819751 165 | 163,frame_163,1,6.272968,1,4.631 166 | 164,frame_164,1,6.333358,1,5.216748 167 | 165,frame_165,1,6.26764,1,4.655617 168 | 166,frame_166,1,6.152965,1,4.724394 169 | 167,frame_167,1,6.127916,1,4.736383 170 | 168,frame_168,1,6.316691,1,4.821001 171 | 169,frame_169,1,6.220909,1,4.496319 172 | 170,frame_170,1,6.153968,1,4.653265 173 | 171,frame_171,1,6.170461,1,4.724103 174 | 172,frame_172,1,6.231683,1,4.835174 175 | 173,frame_173,1,6.127424,1,4.612496 176 | 174,frame_174,1,6.293093,1,4.543368 177 | 175,frame_175,1,6.145239,1,4.430178 178 | 176,frame_176,1,6.027238,1,4.52164 179 | 177,frame_177,1,5.928166,1,4.466397 180 | 178,frame_178,1,5.950182,1,4.287556 181 | 179,frame_179,1,6.085874,1,4.395903 182 | 180,frame_180,1,6.134416,1,4.523733 183 | 181,frame_181,1,6.055421,1,4.840081 184 | 182,frame_182,1,5.958335,1,4.621422 185 | 183,frame_183,1,6.0704,1,4.55996 186 | 184,frame_184,1,6.078454,1,4.519819 187 | 185,frame_185,1,6.084835,1,4.628269 188 | 186,frame_186,1,6.153823,1,4.706972 189 | 187,frame_187,1,6.195286,1,4.428366 190 | 188,frame_188,1,6.099589,1,4.544711 191 | 189,frame_189,1,6.23596,1,4.33437 192 | 190,frame_190,1,6.098971,1,4.588024 193 | 191,frame_191,1,6.137087,1,4.553104 194 | 192,frame_192,1,6.132369,1,4.453933 195 | 193,frame_193,1,0,1,4.607765 196 | 194,frame_194,1,5.071104,1,2.246848 197 | 195,frame_195,1,2.516863,1,1.519075 198 | 196,frame_196,1,3.181948,1,0.955958 199 | 197,frame_197,1,5.328805,1,2.657457 200 | 198,frame_198,1,6.369748,1,5.532982 201 | 199,frame_199,1,8.565698,1,6.698769 202 | 200,frame_200,1,8.550351,1,8.550074 203 | 201,frame_201,1,9.248165,1,8.119174 204 | 202,frame_202,1,9.112963,1,8.567873 205 | 203,frame_203,1,9.22267,1,9.097061 206 | 204,frame_204,1,9.270524,1,9.062435 207 | 205,frame_205,1,9.170347,1,9.47675 208 | 206,frame_206,1,9.058902,1,9.452759 209 | 207,frame_207,1,9.378749,1,9.232984 210 | 208,frame_208,1,9.34749,1,9.355215 211 | 209,frame_209,1,9.05065,1,9.313413 212 | 210,frame_210,1,8.969159,1,9.406639 213 | 211,frame_211,1,9.153082,1,9.549105 214 | 212,frame_212,1,9.142079,1,9.720366 215 | 213,frame_213,1,8.761701,1,9.585678 216 | 214,frame_214,1,9.280439,1,9.539693 217 | 215,frame_215,1,9.076209,1,9.667983 218 | 216,frame_216,1,9.233689,1,9.699026 219 | 217,frame_217,1,9.18151,1,9.709149 220 | 218,frame_218,1,9.161022,1,9.885378 221 | 219,frame_219,1,9.222329,1,9.685189 222 | 220,frame_220,1,8.96398,1,9.813658 223 | 221,frame_221,1,9.409765,1,9.566926 224 | 222,frame_222,1,9.42816,1,9.98403 225 | 223,frame_223,1,9.364078,1,9.852667 226 | 224,frame_224,1,9.013958,1,9.919629 227 | 225,frame_225,1,8.799689,1,9.571723 228 | 226,frame_226,1,8.980663,1,9.783929 229 | 227,frame_227,1,8.846419,1,9.634343 230 | 228,frame_228,1,8.903877,1,9.599448 231 | 229,frame_229,1,9.200487,1,9.7352 232 | 230,frame_230,1,9.336025,1,9.556852 233 | 231,frame_231,1,8.770672,1,9.383188 234 | 232,frame_232,1,8.978502,1,9.384722 235 | 233,frame_233,1,8.860362,1,9.304131 236 | 234,frame_234,1,8.931205,1,9.528343 237 | 235,frame_235,1,8.721433,1,9.220058 238 | 236,frame_236,1,8.834581,1,9.386031 239 | 237,frame_237,1,8.858789,1,9.615214 240 | 238,frame_238,1,9.094716,1,9.378693 241 | 239,frame_239,1,8.840251,1,9.257948 242 | 240,frame_240,1,8.990244,1,9.460946 243 | 241,frame_241,1,8.753942,1,9.493424 244 | 242,frame_242,1,9.116369,1,9.496405 245 | 243,frame_243,1,8.757373,1,9.383412 246 | 244,frame_244,1,8.650359,1,9.288224 247 | 245,frame_245,1,8.765524,1,9.397024 248 | 246,frame_246,1,8.94497,1,9.40547 249 | 247,frame_247,1,8.625783,1,9.534264 250 | 248,frame_248,1,9.068035,1,9.595977 251 | 249,frame_249,1,9.045128,1,9.527437 252 | 250,frame_250,1,8.945131,1,9.279154 253 | 251,frame_251,1,9.251102,1,9.372829 254 | 252,frame_252,1,8.659774,1,9.252989 255 | 253,frame_253,1,8.701853,1,9.414718 256 | 254,frame_254,1,8.659046,1,9.490214 257 | 255,frame_255,1,8.834753,1,9.454911 258 | 256,frame_256,1,8.645425,1,9.521338 259 | 257,frame_257,1,9.062038,1,9.467125 260 | 258,frame_258,1,9.131039,1,9.354331 261 | 259,frame_259,1,8.880929,1,9.493469 262 | 260,frame_260,1,8.716348,1,9.331692 263 | 261,frame_261,1,8.888672,1,9.411657 264 | 262,frame_262,1,8.827869,1,9.573908 265 | 263,frame_263,1,8.95237,1,9.26051 266 | 264,frame_264,1,8.94839,1,9.430481 267 | 265,frame_265,1,8.827356,1,9.358588 268 | 266,frame_266,1,8.822169,1,9.410887 269 | 267,frame_267,1,9.018479,1,9.388135 270 | 268,frame_268,1,9.040606,1,9.427323 271 | 269,frame_269,1,9.220468,1,9.40669 272 | 270,frame_270,1,8.689229,1,9.346665 273 | 271,frame_271,1,8.818514,1,9.518496 274 | 272,frame_272,1,9.049549,1,9.353695 275 | 273,frame_273,1,9.01023,1,9.357677 276 | 274,frame_274,1,9.149861,1,9.351395 277 | 275,frame_275,1,8.803351,1,9.446723 278 | 276,frame_276,1,8.971506,1,9.591356 279 | 277,frame_277,1,8.684509,1,9.437595 280 | 278,frame_278,1,8.609589,1,9.441647 281 | 279,frame_279,1,9.023049,1,9.432818 282 | 280,frame_280,1,8.544605,1,9.442789 283 | 281,frame_281,1,9.225625,1,9.344009 284 | 282,frame_282,1,9.116079,1,9.267168 285 | 283,frame_283,1,8.982327,1,9.349657 286 | 284,frame_284,1,8.672403,1,9.324262 287 | 285,frame_285,1,8.873128,1,9.468061 288 | 286,frame_286,1,8.802013,1,9.434025 289 | 287,frame_287,1,9.031227,1,9.344238 290 | 288,frame_288,1,9.308163,1,9.343259 291 | 289,frame_289,1,8.987244,1,9.506332 292 | 290,frame_290,1,8.937085,1,9.44787 293 | 291,frame_291,1,8.668046,1,9.438496 294 | 292,frame_292,1,8.609753,1,9.51096 295 | 293,frame_293,1,8.819911,1,9.46543 296 | 294,frame_294,1,9.108778,1,9.412009 297 | 295,frame_295,1,8.769552,1,9.187904 298 | 296,frame_296,1,9.071575,1,9.465572 299 | 297,frame_297,1,8.770502,1,9.305882 300 | 298,frame_298,1,9.129283,1,9.239988 301 | 299,frame_299,1,9.220718,1,9.443467 302 | 300,frame_300,1,9.027561,1,9.351864 303 | 301,frame_301,1,8.425827,1,9.291029 304 | 302,frame_302,1,8.808411,1,9.501814 305 | 303,frame_303,1,9.235811,1,9.210982 306 | 304,frame_304,1,9.09932,1,9.480792 307 | 305,frame_305,1,8.856939,1,9.412386 308 | 306,frame_306,1,9.033263,1,9.155018 309 | 307,frame_307,1,7.268721,1,7.169193 310 | 308,frame_308,1,3.511027,1,0.917555 311 | 309,frame_309,1,2.373036,1,1.233825 312 | 310,frame_310,1,3.936429,1,0.966953 313 | 311,frame_311,1,4.066081,1,2.417578 314 | 312,frame_312,1,4.374978,1,3.230441 315 | 313,frame_313,1,4.36924,1,3.593584 316 | 314,frame_314,1,4.560564,1,3.529551 317 | 315,frame_315,1,4.493522,1,3.363477 318 | 316,frame_316,1,4.491092,1,3.730856 319 | 317,frame_317,1,4.164197,1,3.493498 320 | 318,frame_318,1,4.250283,1,3.514166 321 | 319,frame_319,1,4.247862,1,3.413483 322 | 320,frame_320,1,4.278679,1,4.113401 323 | 321,frame_321,1,3.856562,1,3.412913 324 | 322,frame_322,1,4.088013,1,3.521503 325 | 323,frame_323,1,4.102117,1,3.474721 326 | 324,frame_324,1,4.196587,1,3.93921 327 | 325,frame_325,1,4.220352,1,3.935241 328 | 326,frame_326,1,4.148046,1,3.270448 329 | 327,frame_327,1,4.153849,1,3.896872 330 | 328,frame_328,1,4.204439,1,3.966521 331 | 329,frame_329,1,4.117217,1,3.934698 332 | 330,frame_330,1,3.833635,1,3.967691 333 | 331,frame_331,1,4.075479,1,3.80729 334 | 332,frame_332,1,3.987849,1,3.875254 335 | 333,frame_333,1,4.079217,1,3.969105 336 | 334,frame_334,1,4.142814,1,3.864108 337 | 335,frame_335,1,4.018637,1,3.964717 338 | 336,frame_336,1,4.065172,1,3.855584 339 | 337,frame_337,1,3.960291,1,3.890725 340 | 338,frame_338,1,4.123433,1,3.91103 341 | 339,frame_339,1,3.940194,1,3.862144 342 | 340,frame_340,1,4.15818,1,3.950078 343 | 341,frame_341,1,4.081293,1,3.939362 344 | 342,frame_342,1,4.036538,1,3.785172 345 | 343,frame_343,1,4.011323,1,3.89272 346 | 344,frame_344,1,4.133834,1,3.711778 347 | 345,frame_345,1,4.111962,1,3.299913 348 | 346,frame_346,1,3.910098,1,3.839172 349 | 347,frame_347,1,4.046327,1,3.768312 350 | 348,frame_348,1,4.108685,1,3.280886 351 | 349,frame_349,1,3.953601,1,3.249674 352 | 350,frame_350,1,4.050775,1,3.84812 353 | 351,frame_351,1,4.045042,1,3.874591 354 | 352,frame_352,1,3.934572,1,3.753205 355 | 353,frame_353,1,4.070343,1,3.975643 356 | 354,frame_354,1,4.071695,1,3.140046 357 | 355,frame_355,1,4.157766,1,3.745677 358 | 356,frame_356,1,4.127288,1,3.803098 359 | 357,frame_357,1,4.112747,1,4.077415 360 | 358,frame_358,1,4.071137,1,3.906115 361 | 359,frame_359,1,4.01164,1,3.339424 362 | 360,frame_360,1,4.116294,1,3.872411 363 | 361,frame_361,1,4.247298,1,3.140213 364 | 362,frame_362,1,4.014072,1,4.024358 365 | 363,frame_363,1,3.97979,1,3.698289 366 | 364,frame_364,1,4.143326,1,3.836764 367 | 365,frame_365,1,3.939196,1,3.852575 368 | 366,frame_366,1,4.130575,1,3.742863 369 | 367,frame_367,1,4.20996,1,3.211691 370 | 368,frame_368,1,4.05466,1,3.150367 371 | 369,frame_369,1,4.005664,1,3.832085 372 | 370,frame_370,1,3.945255,1,3.81171 373 | 371,frame_371,1,3.896056,1,3.725091 374 | 372,frame_372,1,3.829857,1,3.92024 375 | 373,frame_373,1,4.094565,1,3.889688 376 | 374,frame_374,1,4.166398,1,3.981049 377 | 375,frame_375,1,3.810708,1,3.175724 378 | 376,frame_376,1,4.035022,1,3.890021 379 | 377,frame_377,1,3.964702,1,4.006616 380 | 378,frame_378,1,4.118848,1,3.857404 381 | 379,frame_379,1,4.072663,1,3.79989 382 | 380,frame_380,1,4.098394,1,3.898727 383 | 381,frame_381,1,3.991156,1,3.79934 384 | 382,frame_382,1,4.073381,1,3.753235 385 | 383,frame_383,1,4.079079,1,3.202841 386 | 384,frame_384,1,4.289513,1,3.260212 387 | 385,frame_385,1,4.047086,1,3.950354 388 | 386,frame_386,1,4.044495,1,3.77535 389 | 387,frame_387,1,4.031977,1,4.054241 390 | 388,frame_388,1,4.203955,1,3.847604 391 | 389,frame_389,1,3.990047,1,3.05474 392 | 390,frame_390,1,4.229118,1,3.853855 393 | 391,frame_391,1,4.060155,1,3.952127 394 | 392,frame_392,1,4.114698,1,4.006301 395 | 393,frame_393,1,4.167543,1,3.756389 396 | 394,frame_394,1,4.101846,1,3.868072 397 | 395,frame_395,1,4.181853,1,3.777354 398 | 396,frame_396,1,3.841232,1,3.686216 399 | 397,frame_397,1,4.103689,1,3.885952 400 | 398,frame_398,1,4.12559,1,3.745489 401 | 399,frame_399,1,4.063819,1,3.761177 402 | 400,frame_400,1,3.805708,1,3.664583 403 | 401,frame_401,1,3.907549,1,3.700695 404 | 402,frame_402,1,4.036991,1,3.719313 405 | 403,frame_403,1,4.08295,1,3.728437 406 | 404,frame_404,1,3.904043,1,3.626744 407 | 405,frame_405,1,3.898324,1,3.066238 408 | 406,frame_406,1,4.13838,1,3.913423 409 | 407,frame_407,1,3.996025,1,3.749381 410 | 408,frame_408,1,3.953459,1,3.747533 411 | 409,frame_409,1,3.849252,1,3.887317 412 | 410,frame_410,1,4.014298,1,3.646725 413 | 411,frame_411,1,4.089941,1,3.80756 414 | 412,frame_412,1,4.120463,1,3.939664 415 | 413,frame_413,1,4.084895,1,3.860873 416 | 414,frame_414,1,4.040286,1,3.923165 417 | 415,frame_415,1,3.904246,1,2.975983 418 | 416,frame_416,1,4.139265,1,3.743199 419 | 417,frame_417,1,3.958652,1,3.781173 420 | 418,frame_418,1,3.662036,1,2.613355 421 | 419,frame_419,1,1.797157,1,0.953018 422 | 420,frame_420,1,1.042628,1,1.020993 423 | 421,frame_421,1,2.249649,1,0.717305 424 | 422,frame_422,1,3.438337,1,1.99923 425 | 423,frame_423,1,4.797867,1,4.135517 426 | 424,frame_424,1,5.774994,1,4.390324 427 | 425,frame_425,1,6.128963,1,5.91941 428 | 426,frame_426,1,6.216338,1,5.700812 429 | 427,frame_427,1,6.466888,1,5.349823 430 | 428,frame_428,1,6.245532,1,5.574092 431 | 429,frame_429,1,6.944634,1,5.64588 432 | 430,frame_430,1,6.674571,1,5.420253 433 | 431,frame_431,1,6.833863,1,5.404728 434 | 432,frame_432,1,6.573457,1,5.573635 435 | 433,frame_433,1,6.512236,1,5.417897 436 | 434,frame_434,1,6.531074,1,5.53939 437 | 435,frame_435,1,6.878636,1,5.299307 438 | 436,frame_436,1,6.902081,1,5.594288 439 | 437,frame_437,1,6.964485,1,5.531942 440 | 438,frame_438,1,6.479271,1,5.309052 441 | 439,frame_439,1,6.346557,1,5.654477 442 | 440,frame_440,1,6.598515,1,5.57171 443 | 441,frame_441,1,6.68718,1,5.491167 444 | 442,frame_442,1,6.432006,1,5.307412 445 | 443,frame_443,1,7.052837,1,5.327872 446 | 444,frame_444,1,6.747606,1,5.447844 447 | 445,frame_445,1,6.652078,1,5.600164 448 | 446,frame_446,1,6.523077,1,5.548314 449 | 447,frame_447,1,6.646822,1,5.474574 450 | 448,frame_448,1,6.613797,1,5.225416 451 | 449,frame_449,1,6.214263,1,5.346955 452 | 450,frame_450,1,6.30032,1,5.240008 453 | 451,frame_451,1,6.34968,1,5.481373 454 | 452,frame_452,1,6.282536,1,5.332088 455 | 453,frame_453,1,6.286506,1,5.131816 456 | 454,frame_454,1,6.205614,1,5.545453 457 | 455,frame_455,1,6.350683,1,5.422995 458 | 456,frame_456,1,6.450321,1,5.70998 459 | 457,frame_457,1,6.161978,1,5.371036 460 | 458,frame_458,1,6.29599,1,5.302636 461 | 459,frame_459,1,6.204044,1,5.14505 462 | 460,frame_460,1,6.263372,1,5.096538 463 | 461,frame_461,1,6.318972,1,5.217329 464 | 462,frame_462,1,5.808792,1,5.272437 465 | 463,frame_463,1,5.951694,1,5.455954 466 | 464,frame_464,1,6.030978,1,5.197367 467 | 465,frame_465,1,6.034158,1,5.272296 468 | 466,frame_466,1,5.988945,1,5.246212 469 | 467,frame_467,1,6.010143,1,5.2535 470 | 468,frame_468,1,6.133622,1,5.346937 471 | 469,frame_469,1,6.08857,1,5.211435 472 | 470,frame_470,1,6.075482,1,5.414645 473 | 471,frame_471,1,6.093686,1,5.161696 474 | 472,frame_472,1,6.03008,1,5.182924 475 | 473,frame_473,1,5.937727,1,5.085352 476 | 474,frame_474,1,5.93806,1,5.253255 477 | 475,frame_475,1,5.862885,1,5.329707 478 | 476,frame_476,1,6.049795,1,5.295294 479 | 477,frame_477,1,6.0119,1,5.237218 480 | 478,frame_478,1,5.966865,1,5.214248 481 | 479,frame_479,1,6.030681,1,5.287854 482 | 480,frame_480,1,5.943957,1,5.290503 483 | 481,frame_481,1,5.86549,1,5.162877 484 | 482,frame_482,1,5.993857,1,5.160235 485 | 483,frame_483,1,5.915377,1,5.217134 486 | 484,frame_484,1,5.972159,1,5.162993 487 | 485,frame_485,1,5.924989,1,5.227298 488 | 486,frame_486,1,5.921673,1,5.307851 489 | 487,frame_487,1,6.195595,1,5.463075 490 | 488,frame_488,1,6.0616,1,5.433827 491 | 489,frame_489,1,6.092628,1,5.274104 492 | 490,frame_490,1,5.886907,1,5.153144 493 | 491,frame_491,1,5.956296,1,5.066129 494 | 492,frame_492,1,5.910268,1,6.748067 495 | 493,frame_493,1,5.906824,1,5.337446 496 | 494,frame_494,1,6.129812,1,5.233799 497 | 495,frame_495,1,5.864167,1,5.392382 498 | 496,frame_496,1,5.980137,1,5.24395 499 | 497,frame_497,1,6.065116,1,5.207809 500 | 498,frame_498,1,6.133034,1,4.961352 501 | 499,frame_499,1,6.163085,1,5.202029 502 | 500,frame_500,1,5.999997,1,5.158463 503 | 501,frame_501,1,5.875278,1,5.092711 504 | 502,frame_502,1,6.003069,1,5.162792 505 | 503,frame_503,1,5.837617,1,4.888758 506 | 504,frame_504,1,5.969641,1,5.130661 507 | 505,frame_505,1,5.971978,1,4.999903 508 | 506,frame_506,1,5.864608,1,5.259614 509 | 507,frame_507,1,5.999776,1,5.470851 510 | 508,frame_508,1,6.166631,1,5.115703 511 | 509,frame_509,1,5.951029,1,5.24244 512 | 510,frame_510,1,5.937158,1,5.023566 513 | 511,frame_511,1,6.064426,1,5.208772 514 | 512,frame_512,1,6.195829,1,5.041181 515 | 513,frame_513,1,6.031586,1,5.215264 516 | 514,frame_514,1,5.822554,1,5.051056 517 | 515,frame_515,1,6.045992,1,5.385479 518 | 516,frame_516,1,6.016039,1,5.200159 519 | 517,frame_517,1,6.158675,1,5.340177 520 | 518,frame_518,1,6.088336,1,5.174485 521 | 519,frame_519,1,6.092452,1,5.427233 522 | 520,frame_520,1,5.99223,1,5.067876 523 | 521,frame_521,1,5.87616,1,5.388477 524 | 522,frame_522,1,5.963663,1,5.312645 525 | 523,frame_523,1,5.819379,1,4.99036 526 | 524,frame_524,1,6.007238,1,5.026085 527 | 525,frame_525,1,5.878802,1,5.118832 528 | 526,frame_526,1,5.815709,1,5.228153 529 | 527,frame_527,1,6.150384,1,5.284871 530 | 528,frame_528,1,5.862792,1,5.090735 531 | 529,frame_529,1,6.008588,1,5.300219 532 | 530,frame_530,1,6.134401,1,4.945751 533 | 531,frame_531,1,6.134666,1,5.3895 534 | 532,frame_532,1,6.117085,1,4.787024 535 | 533,frame_533,1,4.492185,1,3.8978 536 | 534,frame_534,1,1.221162,1,0.99106 537 | 535,frame_535,1,1.984759,1,1.045278 538 | 536,frame_536,1,2.001312,1,0.751446 539 | 537,frame_537,1,4.192454,1,2.705017 540 | 538,frame_538,1,5.047061,1,3.67962 541 | 539,frame_539,1,5.651559,1,4.751721 542 | 540,frame_540,1,5.994672,1,5.047308 543 | 541,frame_541,1,6.359723,1,5.20299 544 | 542,frame_542,1,6.53553,1,4.912632 545 | 543,frame_543,1,6.564559,1,5.252919 546 | 544,frame_544,1,6.46254,1,5.494307 547 | 545,frame_545,1,6.70462,1,5.415643 548 | 546,frame_546,1,6.706482,1,5.559115 549 | 547,frame_547,1,6.557233,1,5.239762 550 | 548,frame_548,1,6.727625,1,5.129048 551 | 549,frame_549,1,6.707686,1,5.282253 552 | 550,frame_550,1,7.079675,1,5.243467 553 | 551,frame_551,1,6.96818,1,5.186456 554 | 552,frame_552,1,7.049185,1,5.282537 555 | 553,frame_553,1,6.884513,1,5.171364 556 | 554,frame_554,1,7.001407,1,5.132743 557 | 555,frame_555,1,6.951825,1,5.206817 558 | 556,frame_556,1,6.906775,1,5.197058 559 | 557,frame_557,1,6.757388,1,5.247258 560 | 558,frame_558,1,6.963914,1,5.165673 561 | 559,frame_559,1,6.819531,1,5.273469 562 | 560,frame_560,1,6.840057,1,5.187512 563 | 561,frame_561,1,6.649381,1,5.101414 564 | 562,frame_562,1,6.311198,1,5.082437 565 | 563,frame_563,1,6.454215,1,5.011852 566 | 564,frame_564,1,6.361332,1,5.031126 567 | 565,frame_565,1,6.361054,1,5.11791 568 | 566,frame_566,1,6.442725,1,5.179083 569 | 567,frame_567,1,6.511803,1,5.060443 570 | 568,frame_568,1,6.386838,1,5.081162 571 | 569,frame_569,1,6.211687,1,5.129062 572 | 570,frame_570,1,6.184041,1,5.159231 573 | 571,frame_571,1,6.189494,1,5.319637 574 | 572,frame_572,1,6.382894,1,5.125876 575 | 573,frame_573,1,6.231965,1,5.05441 576 | 574,frame_574,1,6.419378,1,4.968056 577 | 575,frame_575,1,6.285224,1,4.997973 578 | 576,frame_576,1,6.083552,1,4.894144 579 | 577,frame_577,1,6.425257,1,5.225285 580 | 578,frame_578,1,6.461334,1,5.293326 581 | 579,frame_579,1,6.439272,1,5.300873 582 | 580,frame_580,1,6.447942,1,4.942729 583 | 581,frame_581,1,6.372272,1,5.088534 584 | 582,frame_582,1,6.419673,1,5.424598 585 | 583,frame_583,1,6.11983,1,5.013871 586 | 584,frame_584,1,6.343375,1,5.028202 587 | 585,frame_585,1,6.293187,1,4.798972 588 | 586,frame_586,1,6.188028,1,5.40317 589 | 587,frame_587,1,6.3636,1,5.052835 590 | 588,frame_588,1,6.220628,1,4.943196 591 | 589,frame_589,1,6.336108,1,5.169499 592 | 590,frame_590,1,6.177616,1,5.469047 593 | 591,frame_591,1,6.415966,1,5.149214 594 | 592,frame_592,1,6.611693,1,5.137119 595 | 593,frame_593,1,6.354067,1,5.001284 596 | 594,frame_594,1,6.450121,1,5.021683 597 | 595,frame_595,1,6.355629,1,5.02505 598 | 596,frame_596,1,6.431168,1,5.024243 599 | 597,frame_597,1,6.396339,1,5.384549 600 | 598,frame_598,1,6.443059,1,5.552523 601 | 599,frame_599,1,6.402093,1,5.321278 602 | 600,frame_600,1,6.030231,1,5.21321 603 | 601,frame_601,1,6.296484,1,5.129431 604 | 602,frame_602,1,6.452328,1,5.3066 605 | 603,frame_603,1,6.044814,1,5.263404 606 | 604,frame_604,1,6.34353,1,5.090436 607 | 605,frame_605,1,6.425687,1,5.232052 608 | 606,frame_606,1,6.385564,1,4.957228 609 | 607,frame_607,1,6.4251,1,4.963102 610 | 608,frame_608,1,6.63188,1,5.411108 611 | 609,frame_609,1,6.501665,1,5.176702 612 | 610,frame_610,1,6.542123,1,5.272931 613 | 611,frame_611,1,6.349908,1,5.419574 614 | 612,frame_612,1,6.628773,1,5.359213 615 | 613,frame_613,1,6.500361,1,5.311785 616 | 614,frame_614,1,6.455095,1,5.534481 617 | 615,frame_615,1,6.509779,1,5.156775 618 | 616,frame_616,1,6.333381,1,5.369229 619 | 617,frame_617,1,6.368292,1,5.17215 620 | 618,frame_618,1,6.336081,1,5.086157 621 | 619,frame_619,1,6.483243,1,5.067934 622 | 620,frame_620,1,6.382583,1,5.4473 623 | 621,frame_621,1,6.233155,1,5.138524 624 | 622,frame_622,1,6.107881,1,5.533284 625 | 623,frame_623,1,6.173074,1,5.068316 626 | 624,frame_624,1,6.382493,1,5.265699 627 | 625,frame_625,1,6.406675,1,5.19823 628 | 626,frame_626,1,6.297941,1,5.537852 629 | 627,frame_627,1,6.185625,1,5.542465 630 | 628,frame_628,1,6.412994,1,5.433027 631 | 629,frame_629,1,6.368742,1,5.821735 632 | 630,frame_630,1,6.385703,1,5.013412 633 | 631,frame_631,1,6.280615,1,5.0856 634 | 632,frame_632,1,6.468975,1,5.006443 635 | 633,frame_633,1,6.470972,1,4.975124 636 | 634,frame_634,1,6.38293,1,5.25467 637 | 635,frame_635,1,6.299635,1,4.938238 638 | 636,frame_636,1,6.360474,1,4.977196 639 | 637,frame_637,1,6.288045,1,5.047126 640 | 638,frame_638,1,6.144962,1,4.983271 641 | 639,frame_639,1,6.127671,1,5.045469 642 | 640,frame_640,1,6.227542,1,5.252164 643 | 641,frame_641,1,6.152619,1,5.194479 644 | 642,frame_642,1,6.253046,1,5.476779 645 | 643,frame_643,1,6.370796,1,5.395404 646 | 644,frame_644,1,4.868098,1,4.21559 647 | 645,frame_645,1,2.172827,1,0.943621 648 | 646,frame_646,1,1.812123,1,0.918128 649 | 647,frame_647,1,2.25717,1,1.532001 650 | 648,frame_648,1,5.013455,1,3.507013 651 | 649,frame_649,1,6.623704,1,6.270476 652 | 650,frame_650,1,8.04492,1,7.800324 653 | 651,frame_651,1,8.554111,1,8.726985 654 | 652,frame_652,1,8.610698,1,8.882698 655 | 653,frame_653,1,8.67927,1,8.95519 656 | 654,frame_654,1,8.843799,1,8.8477 657 | 655,frame_655,1,9.105922,1,9.041784 658 | 656,frame_656,1,9.288852,1,8.637575 659 | 657,frame_657,1,9.413594,1,8.814711 660 | 658,frame_658,1,8.75277,1,8.986063 661 | 659,frame_659,1,8.65115,1,8.819224 662 | 660,frame_660,1,8.94196,1,8.795809 663 | 661,frame_661,1,8.940609,1,8.849666 664 | 662,frame_662,1,8.855809,1,8.806949 665 | 663,frame_663,1,8.958109,1,8.904305 666 | 664,frame_664,1,9.267945,1,8.730221 667 | 665,frame_665,1,8.962361,1,8.655143 668 | 666,frame_666,1,8.916612,1,8.893607 669 | 667,frame_667,1,8.956877,1,8.793176 670 | 668,frame_668,1,8.934805,1,8.638357 671 | 669,frame_669,1,8.833001,1,8.830217 672 | 670,frame_670,1,8.966641,1,8.77717 673 | 671,frame_671,1,9.176912,1,8.951588 674 | 672,frame_672,1,8.802683,1,8.71861 675 | 673,frame_673,1,9.041567,1,8.854574 676 | 674,frame_674,1,8.963908,1,8.569032 677 | 675,frame_675,1,8.941354,1,8.706963 678 | 676,frame_676,1,8.931864,1,8.673273 679 | 677,frame_677,1,8.802892,1,8.543661 680 | 678,frame_678,1,8.920796,1,8.782063 681 | 679,frame_679,1,8.967575,1,8.830688 682 | 680,frame_680,1,8.742444,1,8.687249 683 | 681,frame_681,1,8.849257,1,8.856376 684 | 682,frame_682,1,8.736209,1,8.823318 685 | 683,frame_683,1,8.631186,1,8.688006 686 | 684,frame_684,1,8.913415,1,8.703818 687 | 685,frame_685,1,8.881699,1,8.722608 688 | 686,frame_686,1,8.443923,1,8.748925 689 | 687,frame_687,1,8.674715,1,8.497794 690 | 688,frame_688,1,8.610389,1,8.734742 691 | 689,frame_689,1,8.56505,1,8.6104 692 | 690,frame_690,1,8.549959,1,8.673162 693 | 691,frame_691,1,8.648808,1,8.80958 694 | 692,frame_692,1,8.770821,1,8.609192 695 | 693,frame_693,1,8.932243,1,8.691837 696 | 694,frame_694,1,8.41045,1,8.624537 697 | 695,frame_695,1,8.690593,1,8.631524 698 | 696,frame_696,1,8.845881,1,8.518897 699 | 697,frame_697,1,8.812012,1,8.735768 700 | 698,frame_698,1,8.479866,1,8.465179 701 | 699,frame_699,1,8.666888,1,8.792483 702 | 700,frame_700,1,8.823525,1,8.66749 703 | 701,frame_701,1,8.599341,1,8.43304 704 | 702,frame_702,1,8.615793,1,8.588454 705 | 703,frame_703,1,8.824185,1,8.677985 706 | 704,frame_704,1,8.61566,1,8.637166 707 | 705,frame_705,1,8.585352,1,8.605286 708 | 706,frame_706,1,8.754446,1,8.822971 709 | 707,frame_707,1,8.696374,1,8.532618 710 | 708,frame_708,1,8.622602,1,8.613656 711 | 709,frame_709,1,8.715294,1,8.664507 712 | 710,frame_710,1,8.659788,1,8.762497 713 | 711,frame_711,1,8.575224,1,8.643621 714 | 712,frame_712,1,8.575876,1,8.608679 715 | 713,frame_713,1,8.721249,1,8.588724 716 | 714,frame_714,1,8.712116,1,8.565012 717 | 715,frame_715,1,8.61324,1,8.604432 718 | 716,frame_716,1,8.629146,1,8.603462 719 | 717,frame_717,1,8.67212,1,8.663213 720 | 718,frame_718,1,8.533726,1,8.513661 721 | 719,frame_719,1,8.711076,1,8.549242 722 | 720,frame_720,1,8.767445,1,8.545621 723 | 721,frame_721,1,8.634704,1,8.834361 724 | 722,frame_722,1,8.668972,1,8.682799 725 | 723,frame_723,1,8.6837,1,8.606 726 | 724,frame_724,1,8.679252,1,8.65623 727 | 725,frame_725,1,8.720518,1,8.588937 728 | 726,frame_726,1,8.642526,1,8.405701 729 | 727,frame_727,1,8.838596,1,8.699371 730 | 728,frame_728,1,8.511785,1,8.697774 731 | 729,frame_729,1,8.686082,1,8.693569 732 | 730,frame_730,1,8.802122,1,8.698783 733 | 731,frame_731,1,8.731001,1,8.530499 734 | 732,frame_732,1,8.733442,1,8.472374 735 | 733,frame_733,1,8.656387,1,8.575731 736 | 734,frame_734,1,8.826103,1,8.660676 737 | 735,frame_735,1,8.800954,1,8.742825 738 | 736,frame_736,1,8.74509,1,8.665462 739 | 737,frame_737,1,8.758526,1,8.700673 740 | 738,frame_738,1,8.879176,1,8.971314 741 | 739,frame_739,1,8.805545,1,8.734001 742 | 740,frame_740,1,8.654933,1,8.795519 743 | 741,frame_741,1,8.787257,1,8.73815 744 | 742,frame_742,1,8.82058,1,8.697428 745 | 743,frame_743,1,8.889326,1,8.775848 746 | 744,frame_744,1,8.687528,1,8.583149 747 | 745,frame_745,1,8.739291,1,8.760133 748 | 746,frame_746,1,8.721686,1,8.771101 749 | 747,frame_747,1,8.820098,1,8.907755 750 | 748,frame_748,1,8.914575,1,8.737188 751 | 749,frame_749,1,8.859413,1,8.772689 752 | 750,frame_750,1,8.843365,1,8.75551 753 | 751,frame_751,1,8.822137,1,8.895028 754 | 752,frame_752,1,8.668115,1,8.494131 755 | 753,frame_753,1,8.693763,1,8.636768 756 | 754,frame_754,1,8.535644,1,8.531681 757 | 755,frame_755,1,7.568264,1,7.193272 758 | 756,frame_756,1,3.203893,1,1.705611 759 | 757,frame_757,1,1.272232,1,1.665522 760 | 758,frame_758,1,1.519146,1,1.190105 761 | 759,frame_759,1,3.42317,1,2.330106 762 | 760,frame_760,1,5.836937,1,4.543812 763 | 761,frame_761,1,8.172004,1,8.328988 764 | 762,frame_762,1,9.496236,1,10.031917 765 | 763,frame_763,1,10.699568,1,10.955299 766 | 764,frame_764,1,11.748713,1,11.452889 767 | 765,frame_765,1,11.741223,1,12.372001 768 | 766,frame_766,1,12.072573,1,12.72522 769 | 767,frame_767,1,12.497235,1,12.788055 770 | 768,frame_768,1,13.087091,1,12.971866 771 | 769,frame_769,1,13.10792,1,12.789921 772 | 770,frame_770,1,12.327501,1,12.470194 773 | 771,frame_771,1,12.698335,1,11.866281 774 | 772,frame_772,1,11.912806,1,12.082243 775 | 773,frame_773,1,11.628251,1,11.671836 776 | 774,frame_774,1,11.903103,1,11.951035 777 | 775,frame_775,1,11.605795,1,11.519085 778 | 776,frame_776,1,11.659786,1,12.478241 779 | 777,frame_777,1,11.962185,1,12.057035 780 | 778,frame_778,1,12.21808,1,12.073226 781 | 779,frame_779,1,12.501913,1,12.18862 782 | 780,frame_780,1,12.400572,1,12.086214 783 | 781,frame_781,1,12.248384,1,12.299891 784 | 782,frame_782,1,12.172584,1,12.236268 785 | 783,frame_783,1,12.588846,1,11.916527 786 | 784,frame_784,1,12.185602,1,11.915855 787 | 785,frame_785,1,11.919226,1,12.057004 788 | 786,frame_786,1,12.357221,1,11.82626 789 | 787,frame_787,1,12.119443,1,11.957215 790 | 788,frame_788,1,11.832627,1,11.955869 791 | 789,frame_789,1,12.051784,1,12.012652 792 | 790,frame_790,1,11.922407,1,12.097985 793 | 791,frame_791,1,11.907322,1,12.000083 794 | 792,frame_792,1,11.924771,1,11.934293 795 | 793,frame_793,1,11.9242,1,12.363824 796 | 794,frame_794,1,11.981225,1,12.055911 797 | 795,frame_795,1,12.074629,1,12.086862 798 | 796,frame_796,1,12.227768,1,12.175448 799 | 797,frame_797,1,12.089974,1,12.204302 800 | 798,frame_798,1,12.328072,1,12.156891 801 | 799,frame_799,1,12.319802,1,12.239879 802 | 800,frame_800,1,11.865528,1,12.129778 803 | 801,frame_801,1,12.267201,1,12.267532 804 | 802,frame_802,1,12.156493,1,12.090904 805 | 803,frame_803,1,11.742691,1,12.314085 806 | 804,frame_804,1,12.027455,1,12.370902 807 | 805,frame_805,1,11.825412,1,12.152205 808 | 806,frame_806,1,11.95298,1,12.262069 809 | 807,frame_807,1,11.661189,1,12.243393 810 | 808,frame_808,1,12.159641,1,12.046091 811 | 809,frame_809,1,12.285708,1,12.332795 812 | 810,frame_810,1,11.690496,1,12.119669 813 | 811,frame_811,1,12.035737,1,12.480021 814 | 812,frame_812,1,12.141422,1,11.990416 815 | 813,frame_813,1,11.99624,1,12.055276 816 | 814,frame_814,1,12.217534,1,12.224527 817 | 815,frame_815,1,11.944706,1,12.163737 818 | 816,frame_816,1,12.260509,1,12.368559 819 | 817,frame_817,1,12.170782,1,12.27453 820 | 818,frame_818,1,11.968893,1,12.383288 821 | 819,frame_819,1,11.780484,1,12.148246 822 | 820,frame_820,1,12.166571,1,12.294041 823 | 821,frame_821,1,11.980235,1,12.219142 824 | 822,frame_822,1,12.119954,1,12.174637 825 | 823,frame_823,1,12.507182,1,12.116612 826 | 824,frame_824,1,12.216401,1,12.122669 827 | 825,frame_825,1,12.223131,1,12.277551 828 | 826,frame_826,1,12.318795,1,12.207698 829 | 827,frame_827,1,12.316099,1,12.14539 830 | 828,frame_828,1,12.208129,1,12.131679 831 | 829,frame_829,1,12.187322,1,11.925654 832 | 830,frame_830,1,12.251604,1,11.86782 833 | 831,frame_831,1,12.206042,1,12.319918 834 | 832,frame_832,1,12.29886,1,11.855526 835 | 833,frame_833,1,12.093591,1,11.872465 836 | 834,frame_834,1,11.983084,1,12.061014 837 | 835,frame_835,1,12.180503,1,12.309746 838 | 836,frame_836,1,12.176426,1,12.333423 839 | 837,frame_837,1,11.968335,1,12.223444 840 | 838,frame_838,1,11.941205,1,12.008846 841 | 839,frame_839,1,12.079601,1,12.039128 842 | 840,frame_840,1,12.255462,1,12.128647 843 | 841,frame_841,1,12.183996,1,12.235776 844 | 842,frame_842,1,12.061794,1,11.961323 845 | 843,frame_843,1,12.330231,1,12.105744 846 | 844,frame_844,1,12.049994,1,11.957511 847 | 845,frame_845,1,12.083051,1,11.938014 848 | 846,frame_846,1,12.23644,1,12.006385 849 | 847,frame_847,1,12.152618,1,12.057052 850 | 848,frame_848,1,12.100562,1,12.107169 851 | 849,frame_849,1,12.116396,1,12.083761 852 | 850,frame_850,1,12.013129,1,11.943765 853 | 851,frame_851,1,12.300479,1,12.060564 854 | 852,frame_852,1,12.35938,1,12.09348 855 | 853,frame_853,1,12.38272,1,12.128995 856 | 854,frame_854,1,12.19602,1,12.161993 857 | 855,frame_855,1,12.170031,1,12.455952 858 | 856,frame_856,1,11.780945,1,12.245505 859 | 857,frame_857,1,11.942958,1,11.855024 860 | 858,frame_858,1,11.94473,1,12.015889 861 | 859,frame_859,1,12.23914,1,12.229644 862 | 860,frame_860,1,12.032839,1,12.140199 863 | 861,frame_861,1,12.202714,1,11.971831 864 | 862,frame_862,1,11.998093,1,11.979117 865 | 863,frame_863,1,11.98647,1,12.139414 866 | 864,frame_864,1,12.077023,1,12.001677 867 | 865,frame_865,1,11.976697,1,12.265843 868 | 866,frame_866,1,11.971794,1,12.230168 869 | 867,frame_867,1,12.13956,1,12.274402 870 | 868,frame_868,1,11.94549,1,12.145844 871 | 869,frame_869,1,12.334506,1,12.274393 872 | 870,frame_870,1,11.970479,1,12.127832 873 | 871,frame_871,1,12.086886,1,12.042733 874 | 872,frame_872,1,12.107542,1,12.142527 875 | 873,frame_873,1,12.02179,1,12.129343 876 | 874,frame_874,1,11.837883,1,12.310056 877 | 875,frame_875,1,11.975094,1,11.870559 878 | 876,frame_876,1,11.005084,1,10.75743 879 | 877,frame_877,1,6.951787,1,5.217608 880 | 878,frame_878,1,3.769027,1,2.691206 881 | 879,frame_879,1,4.221421,1,3.165226 882 | 880,frame_880,1,6.075488,1,5.330743 883 | 881,frame_881,1,6.691142,1,8.008641 884 | 882,frame_882,1,9.563235,1,9.875885 885 | 883,frame_883,1,10.052526,1,10.519646 886 | 884,frame_884,1,11.413357,1,11.142337 887 | 885,frame_885,1,11.480231,1,11.285097 888 | 886,frame_886,1,10.990501,1,11.498564 889 | 887,frame_887,1,12.104939,1,11.351114 890 | 888,frame_888,1,11.01945,1,11.468367 891 | 889,frame_889,1,11.088702,1,11.399574 892 | 890,frame_890,1,11.914695,1,11.319295 893 | 891,frame_891,1,11.236212,1,11.383711 894 | 892,frame_892,1,11.160392,1,11.47972 895 | 893,frame_893,1,10.548041,1,10.883322 896 | 894,frame_894,1,10.59165,1,11.577203 897 | 895,frame_895,1,11.08137,1,10.420821 898 | 896,frame_896,1,11.33239,1,10.815381 899 | 897,frame_897,1,11.119253,1,11.543293 900 | 898,frame_898,1,10.926109,1,12.217904 901 | 899,frame_899,1,11.107571,1,12.201841 902 | 900,frame_900,1,11.041491,1,11.239331 903 | 901,frame_901,1,11.075566,1,11.5306 904 | 902,frame_902,1,10.999322,1,12.000139 905 | 903,frame_903,1,10.862085,1,11.676693 906 | 904,frame_904,1,10.820476,1,11.241691 907 | 905,frame_905,1,10.922499,1,11.813418 908 | 906,frame_906,1,10.807217,1,11.893377 909 | 907,frame_907,1,10.681933,1,11.836254 910 | 908,frame_908,1,10.683153,1,11.804339 911 | 909,frame_909,1,10.823543,1,11.724991 912 | 910,frame_910,1,10.623819,1,12.03529 913 | 911,frame_911,1,10.622964,1,12.053545 914 | 912,frame_912,1,10.656057,1,11.740766 915 | 913,frame_913,1,10.23953,1,11.619398 916 | 914,frame_914,1,10.667316,1,11.634152 917 | 915,frame_915,1,10.276474,1,12.108617 918 | 916,frame_916,1,10.658028,1,12.133876 919 | 917,frame_917,1,10.549839,1,12.0458 920 | 918,frame_918,1,10.458432,1,11.819232 921 | 919,frame_919,1,10.411555,1,11.613972 922 | 920,frame_920,1,10.076622,1,12.137145 923 | 921,frame_921,1,10.354077,1,11.986048 924 | 922,frame_922,1,10.04789,1,11.938652 925 | 923,frame_923,1,10.013018,1,9.357747 926 | 924,frame_924,1,7.345767,1,6.656175 927 | 925,frame_925,1,7.011361,1,6.6571 928 | 926,frame_926,1,9.4003,1,9.232669 929 | 927,frame_927,1,10.337012,1,9.736162 930 | 928,frame_928,1,10.060316,1,10.831489 931 | 929,frame_929,1,10.542442,1,11.291566 932 | 930,frame_930,1,10.782095,1,10.756662 933 | 931,frame_931,1,10.290723,1,11.739092 934 | 932,frame_932,1,10.52346,1,10.805812 935 | 933,frame_933,1,10.606276,1,11.669089 936 | 934,frame_934,1,10.021407,1,11.907503 937 | 935,frame_935,1,10.429477,1,11.855173 938 | 936,frame_936,1,10.54919,1,11.492776 939 | 937,frame_937,1,10.491137,1,11.609669 940 | 938,frame_938,1,10.234683,1,11.058604 941 | 939,frame_939,1,10.59977,1,11.001875 942 | 940,frame_940,1,10.213227,1,11.580094 943 | 941,frame_941,1,10.541509,1,11.836996 944 | 942,frame_942,1,10.720138,1,11.93999 945 | 943,frame_943,1,10.627698,1,11.858504 946 | 944,frame_944,1,10.51938,1,11.862211 947 | 945,frame_945,1,9.952784,1,11.953749 948 | 946,frame_946,1,10.427246,1,11.985148 949 | 947,frame_947,1,10.197702,1,12.12357 950 | 948,frame_948,1,10.527154,1,11.827446 951 | 949,frame_949,1,10.094278,1,11.978337 952 | 950,frame_950,1,10.139964,1,12.043879 953 | 951,frame_951,1,10.582894,1,12.125731 954 | 952,frame_952,1,10.231248,1,11.841693 955 | 953,frame_953,1,10.545499,1,11.834897 956 | 954,frame_954,1,10.517766,1,11.958349 957 | 955,frame_955,1,10.16266,1,11.776824 958 | 956,frame_956,1,10.579678,1,11.607097 959 | 957,frame_957,1,10.562415,1,11.885058 960 | 958,frame_958,1,10.544352,1,11.835147 961 | 959,frame_959,1,10.570594,1,12.047949 962 | 960,frame_960,1,10.516447,1,11.822697 963 | 961,frame_961,1,10.42588,1,12.200963 964 | 962,frame_962,1,10.169559,1,12.098263 965 | 963,frame_963,1,10.610312,1,12.132647 966 | 964,frame_964,1,10.566344,1,11.967444 967 | 965,frame_965,1,10.807364,1,11.978409 968 | 966,frame_966,1,10.066819,1,12.114008 969 | 967,frame_967,1,10.473663,1,11.993028 970 | 968,frame_968,1,10.50981,1,12.070669 971 | 969,frame_969,1,10.550262,1,11.729952 972 | 970,frame_970,1,10.712536,1,11.807099 973 | 971,frame_971,1,10.390563,1,12.14505 974 | 972,frame_972,1,10.650747,1,11.966736 975 | 973,frame_973,1,10.653015,1,12.290989 976 | 974,frame_974,1,10.638909,1,11.742561 977 | 975,frame_975,1,10.57736,1,11.819619 978 | 976,frame_976,1,10.517936,1,12.00108 979 | 977,frame_977,1,10.645133,1,11.866703 980 | 978,frame_978,1,10.616281,1,12.069007 981 | 979,frame_979,1,10.668237,1,12.06964 982 | 980,frame_980,1,10.678301,1,12.080548 983 | 981,frame_981,1,10.725603,1,11.966722 984 | 982,frame_982,1,10.750881,1,12.059506 985 | 983,frame_983,1,10.841387,1,12.100309 986 | 984,frame_984,1,10.672572,1,11.875024 987 | 985,frame_985,1,10.634812,1,11.957895 988 | 986,frame_986,1,10.269913,1,11.81228 989 | 987,frame_987,1,10.63397,1,12.065656 990 | 988,frame_988,1,10.658338,1,12.091724 991 | 989,frame_989,1,10.840114,1,11.759229 992 | 990,frame_990,1,10.624773,1,12.2067 993 | 991,frame_991,1,10.698527,1,12.088952 994 | 992,frame_992,1,10.326244,1,12.025756 995 | 993,frame_993,1,10.75104,1,11.889927 996 | 994,frame_994,1,10.665548,1,12.001859 997 | 995,frame_995,1,10.789057,1,11.898351 998 | 996,frame_996,1,10.814115,1,11.894288 999 | 997,frame_997,1,10.890821,1,12.304472 1000 | 998,frame_998,1,10.809722,1,12.132628 1001 | 999,frame_999,1,10.876348,1,12.349811 1002 | 1000,frame_1000,1,10.525655,1,10.889328 1003 | 1001,frame_1001,1,8.28541,1,6.768152 1004 | 1002,frame_1002,1,4.788041,1,3.050921 1005 | 1003,frame_1003,1,5.072067,1,2.829063 1006 | 1004,frame_1004,1,5.765235,1,4.402248 1007 | 1005,frame_1005,1,6.789586,1,5.036008 1008 | 1006,frame_1006,1,6.85372,1,5.723233 1009 | 1007,frame_1007,1,6.979035,1,6.066006 1010 | 1008,frame_1008,1,7.09525,1,6.472304 1011 | 1009,frame_1009,1,7.089016,1,6.670497 1012 | 1010,frame_1010,1,7.166276,1,6.421061 1013 | 1011,frame_1011,1,7.277289,1,6.782025 1014 | 1012,frame_1012,1,7.242377,1,6.803129 1015 | 1013,frame_1013,1,7.240115,1,6.68061 1016 | 1014,frame_1014,1,7.298935,1,6.843798 1017 | 1015,frame_1015,1,7.491364,1,6.756442 1018 | 1016,frame_1016,1,7.148493,1,6.770404 1019 | 1017,frame_1017,1,7.282281,1,6.573949 1020 | 1018,frame_1018,1,7.35645,1,6.628758 1021 | 1019,frame_1019,1,7.343075,1,6.72691 1022 | 1020,frame_1020,1,7.377667,1,6.946849 1023 | 1021,frame_1021,1,7.428424,1,6.620474 1024 | 1022,frame_1022,1,7.413011,1,6.891439 1025 | 1023,frame_1023,1,7.314245,1,6.74911 1026 | 1024,frame_1024,1,7.360572,1,7.239981 1027 | 1025,frame_1025,1,7.526991,1,7.465765 1028 | 1026,frame_1026,1,7.942007,1,7.867253 1029 | 1027,frame_1027,1,8.036501,1,8.226781 1030 | 1028,frame_1028,1,8.399605,1,8.467951 1031 | 1029,frame_1029,1,8.607074,1,8.838677 1032 | 1030,frame_1030,1,8.775649,1,9.162662 1033 | 1031,frame_1031,1,8.944142,1,9.582286 1034 | 1032,frame_1032,1,8.847792,1,10.001472 1035 | 1033,frame_1033,1,9.112975,1,10.56619 1036 | 1034,frame_1034,1,9.442759,1,10.118978 1037 | 1035,frame_1035,1,9.94915,1,10.330245 1038 | 1036,frame_1036,1,9.999468,1,10.318762 1039 | 1037,frame_1037,1,10.130046,1,10.522251 1040 | 1038,frame_1038,1,10.238188,1,10.681079 1041 | 1039,frame_1039,1,10.281771,1,10.836661 1042 | 1040,frame_1040,1,10.664411,1,11.292084 1043 | 1041,frame_1041,1,10.725309,1,11.298252 1044 | 1042,frame_1042,1,10.952667,1,11.493719 1045 | 1043,frame_1043,1,11.310937,1,12.022156 1046 | 1044,frame_1044,1,11.447151,1,11.916832 1047 | 1045,frame_1045,1,11.24849,1,12.051754 1048 | 1046,frame_1046,1,11.480778,1,12.128839 1049 | 1047,frame_1047,1,12.528317,1,12.172617 1050 | 1048,frame_1048,1,12.250192,1,11.946829 1051 | 1049,frame_1049,1,12.168088,1,11.997441 1052 | 1050,frame_1050,1,12.451592,1,11.894646 1053 | 1051,frame_1051,1,12.550308,1,11.803431 1054 | 1052,frame_1052,1,12.907613,1,11.468436 1055 | 1053,frame_1053,1,12.888278,1,11.222025 1056 | 1054,frame_1054,1,12.934436,1,11.327897 1057 | 1055,frame_1055,1,13.127584,1,11.375904 1058 | 1056,frame_1056,1,13.166754,1,11.274219 1059 | 1057,frame_1057,1,12.963234,1,11.209066 1060 | 1058,frame_1058,1,12.798456,1,11.397405 1061 | 1059,frame_1059,1,12.801359,1,10.989128 1062 | 1060,frame_1060,1,13.087304,1,11.07867 1063 | 1061,frame_1061,1,12.943085,1,10.871819 1064 | 1062,frame_1062,1,12.896031,1,11.027717 1065 | 1063,frame_1063,1,12.66038,1,11.162207 1066 | 1064,frame_1064,1,12.835894,1,11.095421 1067 | 1065,frame_1065,1,12.769094,1,11.048881 1068 | 1066,frame_1066,1,12.880027,1,11.255668 1069 | 1067,frame_1067,1,12.636213,1,11.194393 1070 | 1068,frame_1068,1,12.795154,1,10.804349 1071 | 1069,frame_1069,1,12.610599,1,11.258243 1072 | 1070,frame_1070,1,12.793796,1,10.950956 1073 | 1071,frame_1071,1,12.55786,1,11.200746 1074 | 1072,frame_1072,1,12.85766,1,10.801516 1075 | 1073,frame_1073,1,12.54011,1,11.184379 1076 | 1074,frame_1074,1,12.707037,1,11.117181 1077 | 1075,frame_1075,1,12.723623,1,11.05883 1078 | 1076,frame_1076,1,12.882966,1,10.807797 1079 | 1077,frame_1077,1,12.566916,1,11.025638 1080 | 1078,frame_1078,1,12.52316,1,11.128462 1081 | 1079,frame_1079,1,12.586306,1,11.055963 1082 | 1080,frame_1080,1,12.705349,1,11.008682 1083 | 1081,frame_1081,1,12.537006,1,11.367277 1084 | 1082,frame_1082,1,12.427047,1,11.199672 1085 | 1083,frame_1083,1,12.442106,1,10.967887 1086 | 1084,frame_1084,1,12.548988,1,11.202385 1087 | 1085,frame_1085,1,12.458501,1,11.015886 1088 | 1086,frame_1086,1,12.36476,1,11.031325 1089 | 1087,frame_1087,1,12.316421,1,11.23496 1090 | 1088,frame_1088,1,12.168583,1,11.040816 1091 | 1089,frame_1089,1,12.662441,1,11.138647 1092 | 1090,frame_1090,1,12.47862,1,11.144364 1093 | 1091,frame_1091,1,12.572965,1,10.875324 1094 | 1092,frame_1092,1,12.412333,1,11.124685 1095 | 1093,frame_1093,1,12.594804,1,10.978871 1096 | 1094,frame_1094,1,12.339612,1,10.991416 1097 | 1095,frame_1095,1,12.457194,1,10.942378 1098 | 1096,frame_1096,1,12.277284,1,10.945632 1099 | 1097,frame_1097,1,12.417017,1,11.269804 1100 | 1098,frame_1098,1,12.436729,1,10.955732 1101 | -------------------------------------------------------------------------------- /drawing_dynamic_bar_OpenCV/draw_dynamic_rect.py: -------------------------------------------------------------------------------- 1 | import os 2 | import pandas as pd 3 | import cv2 4 | import numpy as np 5 | from tqdm import tqdm 6 | 7 | root_path=r"D:/youtube/data_handling/drawing_dynamic_bar_OpenCV" 8 | frames_path=os.path.join(root_path,"frames") 9 | dest_dir=os.path.join(root_path,"frames_with_plot") 10 | csv_path=os.path.join(root_path,"data.csv") 11 | 12 | data_df=pd.read_csv(csv_path) 13 | 14 | if not os.path.exists(dest_dir): 15 | os.makedirs(dest_dir) 16 | 17 | num_frames=len(os.listdir(frames_path)) 18 | img=cv2.imread(os.path.join(frames_path,os.listdir(frames_path)[0])) 19 | img_h,img_w,img_c=img.shape 20 | 21 | RECT_HEIGHT_PX=140 22 | RECT_WIDTH_PX=60 23 | 24 | left_eye_rect_st_pt=(1320, 100) 25 | right_eye_rect_st_pt=(1400, 100) 26 | rect_dim=(60,140) 27 | thickness=3 28 | color_valid=(255,0,0) 29 | color_invalid=(0,0,255) 30 | 31 | # video writer parameters 32 | video_name="video_dynamic_rect.avi" 33 | fourcc = cv2.VideoWriter_fourcc(*'XVID') 34 | fps = 35 35 | video_write = cv2.VideoWriter(video_name, fourcc, fps, (img_w, img_h)) 36 | 37 | def eye_opening_helper(df,max_dist_px): 38 | 39 | """ 40 | returns the number of pixels corresponding to per unit of measurement 41 | 42 | 43 | Parameters 44 | ---------- 45 | df : pandas dataframe 46 | pandas dataframe containing the data. 47 | max_dist_px : int 48 | The height the rectangle 49 | 50 | Returns 51 | ------- 52 | le_pixels_per_unit_mm : float 53 | 54 | re_pixels_per_unit_mm : float 55 | DESCRIPTION. 56 | 57 | """ 58 | 59 | left_eye_opening_mm=df["left_eyelid_opening_mm"] 60 | right_eye_opening_mm=df["right_eyelid_opening_mm"] 61 | leod_min=np.min(left_eye_opening_mm) 62 | leod_max=np.max(left_eye_opening_mm) 63 | print(leod_min,leod_max) 64 | reod_min=np.min(right_eye_opening_mm) 65 | reod_max=np.max(right_eye_opening_mm) 66 | print(reod_min,reod_max) 67 | 68 | le_pixels_per_unit_mm=max_dist_px/leod_max 69 | re_pixels_per_unit_mm=max_dist_px/reod_max 70 | 71 | return le_pixels_per_unit_mm,re_pixels_per_unit_mm 72 | 73 | def draw_box(img,st_pt,bbox_dim,color=(255,0,0),thickness=3): 74 | 75 | """ 76 | draw bounding box. if thicknes is -1 the box is filled inside 77 | 78 | Parameters 79 | ---------- 80 | img : np.ndarray 81 | The image in which teh rectangle would be drawn 82 | st_pt : tuple 83 | starting point of the rectangle 84 | bbox_dim : tuple 85 | (width,height) of the rectangle 86 | color : tuple, optional 87 | The color code of the rectangle. The default is (255,0,0). 88 | thickness : real number, optional 89 | The thickness of teh rectangle. if thickness is -1 teh box is filled. 90 | The default is 3. 91 | 92 | Returns 93 | ------- 94 | img. 95 | 96 | """ 97 | x,y=st_pt 98 | bb_w,bb_h=bbox_dim 99 | img=cv2.rectangle(img, (x, y), (x+bb_w, y+bb_h), color, thickness) 100 | return img 101 | 102 | # get the pixels per unit distance 103 | le_pixels_per_unit_mm,re_pixels_per_unit_mm = eye_opening_helper(data_df,max_dist_px=RECT_HEIGHT_PX) 104 | 105 | 106 | for i in tqdm(range(0,num_frames,2)): 107 | img_name="frame_{}.png".format(i) 108 | img_path=os.path.join(frames_path,img_name) 109 | img=cv2.imread(img_path) 110 | 111 | # draw left eye and right eye empty bbox 112 | img = draw_box(img,left_eye_rect_st_pt,rect_dim,color=(255,0,0),thickness=3) 113 | img = draw_box(img,right_eye_rect_st_pt,rect_dim,color=(255,0,0),thickness=3) 114 | 115 | img = cv2.putText(img, "Frame-{}".format(i), (100,100), cv2.FONT_HERSHEY_SIMPLEX, 116 | 0.7, [255, 255, 255], 1, cv2.LINE_AA) 117 | 118 | img = cv2.putText(img, "Left", (left_eye_rect_st_pt[0],left_eye_rect_st_pt[1]-30), cv2.FONT_HERSHEY_SIMPLEX, 119 | 0.7, [0, 255, 0], 1, cv2.LINE_AA) 120 | img = cv2.putText(img, "Eye", (left_eye_rect_st_pt[0],left_eye_rect_st_pt[1]-10), cv2.FONT_HERSHEY_SIMPLEX, 121 | 0.7, [0, 255, 0], 1, cv2.LINE_AA) 122 | img = cv2.putText(img, "Right", (right_eye_rect_st_pt[0],right_eye_rect_st_pt[1]-30), cv2.FONT_HERSHEY_SIMPLEX, 123 | 0.7, [0, 255, 0], 1, cv2.LINE_AA) 124 | img = cv2.putText(img, "Eye", (right_eye_rect_st_pt[0],right_eye_rect_st_pt[1]-10), cv2.FONT_HERSHEY_SIMPLEX, 125 | 0.7, [0, 255, 0], 1, cv2.LINE_AA) 126 | 127 | # check if the signal is valid , if signal is not valid draw a red box 128 | left_eye_valid=data_df.loc[i,"left_eyelid_opening_valid"] 129 | right_eye_valid=data_df.loc[i,"right_eyelid_opening_valid"] 130 | 131 | #left_eye_valid=0 132 | if left_eye_valid: 133 | left_eye_open=data_df.loc[i,"left_eyelid_opening_mm"] 134 | #left_eyeOpening = f" Left eye opening in mm: {left_eye_open:.1f}" 135 | # draw eye opening of left eye 136 | eye_opening_h=int(np.ceil(left_eye_open*le_pixels_per_unit_mm)) 137 | # the height of the box should not be greater than the defined box 138 | eye_opening_h=min(eye_opening_h,RECT_HEIGHT_PX) 139 | 140 | leod_st_pt=(left_eye_rect_st_pt[0],left_eye_rect_st_pt[1]+RECT_HEIGHT_PX-eye_opening_h) 141 | leod_bbox_dim=(RECT_WIDTH_PX,eye_opening_h) 142 | 143 | img = draw_box(img,leod_st_pt,leod_bbox_dim,thickness=-1) 144 | else: 145 | #left_eyeOpening = f" Left eye opening in mm: n/a" 146 | img = draw_box(img,left_eye_rect_st_pt,rect_dim,color=(0,0,255),thickness=3) 147 | 148 | if right_eye_valid: 149 | right_eye_open=data_df.loc[i,"right_eyelid_opening_mm"] 150 | 151 | #right_eyeOpening = f" Right eye opening in mm: {right_eye_open:.1f}" 152 | # draw eye opening of right eye 153 | eye_opening_h=int(np.ceil(right_eye_open*re_pixels_per_unit_mm)) 154 | # the height of the box should not be greater than the defined box 155 | eye_opening_h=min(eye_opening_h,RECT_HEIGHT_PX) 156 | 157 | reod_st_pt=(right_eye_rect_st_pt[0],right_eye_rect_st_pt[1]+RECT_HEIGHT_PX-eye_opening_h) 158 | reod_bbox_dim=(RECT_WIDTH_PX,eye_opening_h) 159 | 160 | img = draw_box(img,reod_st_pt,reod_bbox_dim,thickness=-1) 161 | else: 162 | #right_eyeOpening = f" Right eye opening in mm: n/a" 163 | img = draw_box(img,right_eye_rect_st_pt,rect_dim,color=(0,0,255),thickness=3) 164 | 165 | dest_img_name=os.path.join(dest_dir,img_name) 166 | cv2.imwrite(dest_img_name,img) 167 | video_write.write(img) 168 | video_write.release() 169 | cv2.destroyAllWindows() 170 | print("finished generating ",video_name) 171 | -------------------------------------------------------------------------------- /drawing_dynamic_bar_OpenCV/explanation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anujshah1003/useful-scripts-for-handling-data/d26b334713b509ba5542b28b499d9bdecb156977/drawing_dynamic_bar_OpenCV/explanation.png -------------------------------------------------------------------------------- /drawing_dynamic_bar_OpenCV/frame_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anujshah1003/useful-scripts-for-handling-data/d26b334713b509ba5542b28b499d9bdecb156977/drawing_dynamic_bar_OpenCV/frame_2.png -------------------------------------------------------------------------------- /drawing_dynamic_bar_OpenCV/frames.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anujshah1003/useful-scripts-for-handling-data/d26b334713b509ba5542b28b499d9bdecb156977/drawing_dynamic_bar_OpenCV/frames.zip -------------------------------------------------------------------------------- /generating_video_from_seq_of_images/generating_video_from_frames.py: -------------------------------------------------------------------------------- 1 | import os 2 | import cv2 3 | 4 | def convert_frames_to_video(input_list,output_file_name,fps,size): 5 | 6 | ''' 7 | Function to write the sequence of frames into a video 8 | 9 | Arguments: 10 | input_list - list - list of image names/frame names that need to be converted to a video 11 | output_file_name - string - the output file path along with the file name 12 | where the created video will be saved. e.g- 13 | path/output.mp4 14 | fps - float - the frame rate of the created video. e.g 25 15 | size - tuple - the size of each frame. e.g. (640,480) 16 | ''' 17 | 18 | # Define the output video writer object 19 | out = cv2.VideoWriter(output_file_name, fourcc, fps, size) 20 | num_frames = len(input_list) 21 | 22 | for i in range(num_frames): 23 | base_name='img' 24 | img_name = base_name + '_{:06d}'.format(i) + '.png' 25 | img_path = os.path.join(input_frame_path,img_name) 26 | 27 | try: 28 | img = cv2.imread(img_path) 29 | out.write(img) # Write out frame to video 30 | except: 31 | print(img_name + ' does not exist') 32 | 33 | if img is not None: 34 | cv2.imshow('img',img) 35 | cv2.waitKey(1) 36 | # Release everything if job is finished 37 | out.release() 38 | cv2.destroyAllWindows() 39 | print("The output video is {} is saved".format(output_file_name)) 40 | 41 | if __name__=='__main__': 42 | 43 | path = os.getcwd() 44 | data_dir='DATA' 45 | data_subdir = 'phone' 46 | output_vid_dir = 'output_video' 47 | 48 | if not os.path.exists(output_vid_dir): 49 | os.mkdir(output_vid_dir) 50 | #PATH = os.getcwd() 51 | input_frame_path = os.path.join(path,data_dir,data_subdir) 52 | 53 | img_list = os.listdir(input_frame_path) 54 | # img_list = glob.glob(input_frame_path+'/*.png') 55 | #num_frames = 2000 56 | frame = cv2.imread(os.path.join(input_frame_path,'img_000000.png')) 57 | height, width, channels = frame.shape 58 | fps = 20 59 | output_file_name = 'output_video/{0}_{1}fps.mp4'.format(data_subdir,fps) 60 | # Define the codec.FourCC is a 4-byte code used to specify the video codec 61 | fourcc = cv2.VideoWriter_fourcc(*'mp4v') # Be sure to use lower case 62 | size = (width,height) 63 | convert_frames_to_video(img_list,output_file_name,fps,size) 64 | -------------------------------------------------------------------------------- /generating_video_from_seq_of_images/generating_video_from_frames_2.py: -------------------------------------------------------------------------------- 1 | import os 2 | import cv2 3 | 4 | def convert_frames_to_video(input_list,output_file_name,fps,size): 5 | 6 | ''' 7 | Function to write the sequence of frames into a video 8 | 9 | Arguments: 10 | input_list - list - list of image names/frame names that need to be converted to a video 11 | output_file_name - string - the output file path along with the file name 12 | where the created video will be saved. e.g- 13 | path/output.mp4 14 | fps - float - the frame rate of the created video. e.g 25 15 | size - tuple - the size of each frame. e.g. (640,480) 16 | ''' 17 | 18 | # Define the output video writer object 19 | out = cv2.VideoWriter(output_file_name, fourcc, fps, size) 20 | num_frames = len(input_list) 21 | 22 | for i in range(num_frames): 23 | base_name='img' 24 | img_name = base_name + '_{:06d}'.format(i) + '.png' 25 | img_path = os.path.join(input_frame_path,img_name) 26 | 27 | try: 28 | img = cv2.imread(img_path) 29 | out.write(img) # Write out frame to video 30 | except: 31 | print(img_name + ' does not exist') 32 | 33 | if img is not None: 34 | cv2.imshow('img',img) 35 | cv2.waitKey(1) 36 | # Release everything if job is finished 37 | out.release() 38 | cv2.destroyAllWindows() 39 | print("The output video is {} is saved".format(output_file_name)) 40 | 41 | if __name__=='__main__': 42 | 43 | path = os.getcwd() 44 | data_dir='DATA' 45 | # data_subdir = 'bottle' 46 | output_vid_dir = 'output_video_2' 47 | 48 | if not os.path.exists(output_vid_dir): 49 | os.mkdir(output_vid_dir) 50 | 51 | data_dir_list = os.listdir(os.path.join(path,data_dir)) 52 | 53 | # Loop over all the folder in the data dir list and convert the frames in 54 | # each folder to a video file 55 | 56 | for data_subdir in data_dir_list: 57 | 58 | print ('Reading the subdir: {}'.format(data_subdir)) 59 | #PATH = os.getcwd() 60 | input_frame_path = os.path.join(path,data_dir,data_subdir) 61 | 62 | img_list = os.listdir(input_frame_path) 63 | # img_list = glob.glob(input_frame_path+'/*.png') 64 | #num_frames = 2000 65 | frame = cv2.imread(os.path.join(input_frame_path,'img_000000.png')) 66 | height, width, channels = frame.shape 67 | fps = 25 68 | output_file_name = '{}'.format(output_vid_dir)+'/'+'{0}_{1}fps.mp4'.format(data_subdir,fps) 69 | # Define the codec.FourCC is a 4-byte code used to specify the video codec 70 | fourcc = cv2.VideoWriter_fourcc(*'mp4v') # Be sure to use lower case 71 | size = (width,height) 72 | convert_frames_to_video(img_list,output_file_name,fps,size) 73 | -------------------------------------------------------------------------------- /plotly_graphs/Performance comparison.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "id": "9e4cbfda", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "import pandas as pd\n", 11 | "import plotly.express as px\n", 12 | "import plotly.graph_objects as go\n", 13 | "\n", 14 | "import plotly\n" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 2, 20 | "id": "a86e4b96", 21 | "metadata": {}, 22 | "outputs": [], 23 | "source": [ 24 | "#! pip install plotly" 25 | ] 26 | }, 27 | { 28 | "cell_type": "markdown", 29 | "id": "7cc90379", 30 | "metadata": {}, 31 | "source": [ 32 | "### Comparison of Model Perfromance" 33 | ] 34 | }, 35 | { 36 | "cell_type": "code", 37 | "execution_count": 6, 38 | "id": "c4954acf", 39 | "metadata": {}, 40 | "outputs": [], 41 | "source": [ 42 | "path='performance_models.csv'\n", 43 | "data=pd.read_excel(path)" 44 | ] 45 | }, 46 | { 47 | "cell_type": "code", 48 | "execution_count": 7, 49 | "id": "090fb6ab", 50 | "metadata": {}, 51 | "outputs": [], 52 | "source": [ 53 | "models=list(data['Models'].unique())" 54 | ] 55 | }, 56 | { 57 | "cell_type": "code", 58 | "execution_count": 8, 59 | "id": "88fc538d", 60 | "metadata": {}, 61 | "outputs": [ 62 | { 63 | "data": { 64 | "text/plain": [ 65 | "['ResNet-18', 'ResNet-50', 'EfficientNet-b0', 'EfficientNet-b1']" 66 | ] 67 | }, 68 | "execution_count": 8, 69 | "metadata": {}, 70 | "output_type": "execute_result" 71 | } 72 | ], 73 | "source": [ 74 | "models" 75 | ] 76 | }, 77 | { 78 | "cell_type": "code", 79 | "execution_count": 9, 80 | "id": "0161072b", 81 | "metadata": {}, 82 | "outputs": [ 83 | { 84 | "name": "stdout", 85 | "output_type": "stream", 86 | "text": [ 87 | "Accuracy: 0 0.70000\n", 88 | "1 0.75641\n", 89 | "2 0.81000\n", 90 | "3 0.87000\n", 91 | "Name: Accuracy, dtype: float64\n", 92 | "Precision: 0 0.72000\n", 93 | "1 0.77674\n", 94 | "2 0.90304\n", 95 | "3 0.88400\n", 96 | "Name: Precision, dtype: float64\n", 97 | "Recall: 0 0.670000\n", 98 | "1 0.766575\n", 99 | "2 0.750000\n", 100 | "3 0.900000\n", 101 | "Name: Recall, dtype: float64\n" 102 | ] 103 | } 104 | ], 105 | "source": [ 106 | "accs=data['Accuracy']\n", 107 | "precs=data['Precision']\n", 108 | "recs=data['Recall']\n", 109 | "print('Accuracy: ',accs)\n", 110 | "print('Precision: ',precs)\n", 111 | "print('Recall: ',recs)" 112 | ] 113 | }, 114 | { 115 | "cell_type": "code", 116 | "execution_count": 17, 117 | "id": "60ab0130", 118 | "metadata": {}, 119 | "outputs": [ 120 | { 121 | "data": { 122 | "application/vnd.plotly.v1+json": { 123 | "config": { 124 | "plotlyServerURL": "https://plot.ly" 125 | }, 126 | "data": [ 127 | { 128 | "line": { 129 | "color": "firebrick", 130 | "width": 4 131 | }, 132 | "mode": "lines+markers+text", 133 | "name": "accuracies", 134 | "text": [ 135 | 0.7, 136 | 0.75641, 137 | 0.81, 138 | 0.87 139 | ], 140 | "textposition": "top right", 141 | "type": "scatter", 142 | "x": [ 143 | "ResNet-18", 144 | "ResNet-50", 145 | "EfficientNet-b0", 146 | "EfficientNet-b1" 147 | ], 148 | "y": [ 149 | 0.7, 150 | 0.75641, 151 | 0.81, 152 | 0.87 153 | ] 154 | }, 155 | { 156 | "line": { 157 | "color": "green", 158 | "dash": "dash", 159 | "width": 4 160 | }, 161 | "name": "precision", 162 | "type": "scatter", 163 | "x": [ 164 | "ResNet-18", 165 | "ResNet-50", 166 | "EfficientNet-b0", 167 | "EfficientNet-b1" 168 | ], 169 | "y": [ 170 | 0.72, 171 | 0.77674, 172 | 0.90304, 173 | 0.884 174 | ] 175 | }, 176 | { 177 | "line": { 178 | "color": "royalblue", 179 | "width": 4 180 | }, 181 | "name": "recalls", 182 | "type": "scatter", 183 | "x": [ 184 | "ResNet-18", 185 | "ResNet-50", 186 | "EfficientNet-b0", 187 | "EfficientNet-b1" 188 | ], 189 | "y": [ 190 | 0.67, 191 | 0.766575, 192 | 0.75, 193 | 0.9 194 | ] 195 | } 196 | ], 197 | "layout": { 198 | "template": { 199 | "data": { 200 | "bar": [ 201 | { 202 | "error_x": { 203 | "color": "#2a3f5f" 204 | }, 205 | "error_y": { 206 | "color": "#2a3f5f" 207 | }, 208 | "marker": { 209 | "line": { 210 | "color": "#E5ECF6", 211 | "width": 0.5 212 | }, 213 | "pattern": { 214 | "fillmode": "overlay", 215 | "size": 10, 216 | "solidity": 0.2 217 | } 218 | }, 219 | "type": "bar" 220 | } 221 | ], 222 | "barpolar": [ 223 | { 224 | "marker": { 225 | "line": { 226 | "color": "#E5ECF6", 227 | "width": 0.5 228 | }, 229 | "pattern": { 230 | "fillmode": "overlay", 231 | "size": 10, 232 | "solidity": 0.2 233 | } 234 | }, 235 | "type": "barpolar" 236 | } 237 | ], 238 | "carpet": [ 239 | { 240 | "aaxis": { 241 | "endlinecolor": "#2a3f5f", 242 | "gridcolor": "white", 243 | "linecolor": "white", 244 | "minorgridcolor": "white", 245 | "startlinecolor": "#2a3f5f" 246 | }, 247 | "baxis": { 248 | "endlinecolor": "#2a3f5f", 249 | "gridcolor": "white", 250 | "linecolor": "white", 251 | "minorgridcolor": "white", 252 | "startlinecolor": "#2a3f5f" 253 | }, 254 | "type": "carpet" 255 | } 256 | ], 257 | "choropleth": [ 258 | { 259 | "colorbar": { 260 | "outlinewidth": 0, 261 | "ticks": "" 262 | }, 263 | "type": "choropleth" 264 | } 265 | ], 266 | "contour": [ 267 | { 268 | "colorbar": { 269 | "outlinewidth": 0, 270 | "ticks": "" 271 | }, 272 | "colorscale": [ 273 | [ 274 | 0, 275 | "#0d0887" 276 | ], 277 | [ 278 | 0.1111111111111111, 279 | "#46039f" 280 | ], 281 | [ 282 | 0.2222222222222222, 283 | "#7201a8" 284 | ], 285 | [ 286 | 0.3333333333333333, 287 | "#9c179e" 288 | ], 289 | [ 290 | 0.4444444444444444, 291 | "#bd3786" 292 | ], 293 | [ 294 | 0.5555555555555556, 295 | "#d8576b" 296 | ], 297 | [ 298 | 0.6666666666666666, 299 | "#ed7953" 300 | ], 301 | [ 302 | 0.7777777777777778, 303 | "#fb9f3a" 304 | ], 305 | [ 306 | 0.8888888888888888, 307 | "#fdca26" 308 | ], 309 | [ 310 | 1, 311 | "#f0f921" 312 | ] 313 | ], 314 | "type": "contour" 315 | } 316 | ], 317 | "contourcarpet": [ 318 | { 319 | "colorbar": { 320 | "outlinewidth": 0, 321 | "ticks": "" 322 | }, 323 | "type": "contourcarpet" 324 | } 325 | ], 326 | "heatmap": [ 327 | { 328 | "colorbar": { 329 | "outlinewidth": 0, 330 | "ticks": "" 331 | }, 332 | "colorscale": [ 333 | [ 334 | 0, 335 | "#0d0887" 336 | ], 337 | [ 338 | 0.1111111111111111, 339 | "#46039f" 340 | ], 341 | [ 342 | 0.2222222222222222, 343 | "#7201a8" 344 | ], 345 | [ 346 | 0.3333333333333333, 347 | "#9c179e" 348 | ], 349 | [ 350 | 0.4444444444444444, 351 | "#bd3786" 352 | ], 353 | [ 354 | 0.5555555555555556, 355 | "#d8576b" 356 | ], 357 | [ 358 | 0.6666666666666666, 359 | "#ed7953" 360 | ], 361 | [ 362 | 0.7777777777777778, 363 | "#fb9f3a" 364 | ], 365 | [ 366 | 0.8888888888888888, 367 | "#fdca26" 368 | ], 369 | [ 370 | 1, 371 | "#f0f921" 372 | ] 373 | ], 374 | "type": "heatmap" 375 | } 376 | ], 377 | "heatmapgl": [ 378 | { 379 | "colorbar": { 380 | "outlinewidth": 0, 381 | "ticks": "" 382 | }, 383 | "colorscale": [ 384 | [ 385 | 0, 386 | "#0d0887" 387 | ], 388 | [ 389 | 0.1111111111111111, 390 | "#46039f" 391 | ], 392 | [ 393 | 0.2222222222222222, 394 | "#7201a8" 395 | ], 396 | [ 397 | 0.3333333333333333, 398 | "#9c179e" 399 | ], 400 | [ 401 | 0.4444444444444444, 402 | "#bd3786" 403 | ], 404 | [ 405 | 0.5555555555555556, 406 | "#d8576b" 407 | ], 408 | [ 409 | 0.6666666666666666, 410 | "#ed7953" 411 | ], 412 | [ 413 | 0.7777777777777778, 414 | "#fb9f3a" 415 | ], 416 | [ 417 | 0.8888888888888888, 418 | "#fdca26" 419 | ], 420 | [ 421 | 1, 422 | "#f0f921" 423 | ] 424 | ], 425 | "type": "heatmapgl" 426 | } 427 | ], 428 | "histogram": [ 429 | { 430 | "marker": { 431 | "pattern": { 432 | "fillmode": "overlay", 433 | "size": 10, 434 | "solidity": 0.2 435 | } 436 | }, 437 | "type": "histogram" 438 | } 439 | ], 440 | "histogram2d": [ 441 | { 442 | "colorbar": { 443 | "outlinewidth": 0, 444 | "ticks": "" 445 | }, 446 | "colorscale": [ 447 | [ 448 | 0, 449 | "#0d0887" 450 | ], 451 | [ 452 | 0.1111111111111111, 453 | "#46039f" 454 | ], 455 | [ 456 | 0.2222222222222222, 457 | "#7201a8" 458 | ], 459 | [ 460 | 0.3333333333333333, 461 | "#9c179e" 462 | ], 463 | [ 464 | 0.4444444444444444, 465 | "#bd3786" 466 | ], 467 | [ 468 | 0.5555555555555556, 469 | "#d8576b" 470 | ], 471 | [ 472 | 0.6666666666666666, 473 | "#ed7953" 474 | ], 475 | [ 476 | 0.7777777777777778, 477 | "#fb9f3a" 478 | ], 479 | [ 480 | 0.8888888888888888, 481 | "#fdca26" 482 | ], 483 | [ 484 | 1, 485 | "#f0f921" 486 | ] 487 | ], 488 | "type": "histogram2d" 489 | } 490 | ], 491 | "histogram2dcontour": [ 492 | { 493 | "colorbar": { 494 | "outlinewidth": 0, 495 | "ticks": "" 496 | }, 497 | "colorscale": [ 498 | [ 499 | 0, 500 | "#0d0887" 501 | ], 502 | [ 503 | 0.1111111111111111, 504 | "#46039f" 505 | ], 506 | [ 507 | 0.2222222222222222, 508 | "#7201a8" 509 | ], 510 | [ 511 | 0.3333333333333333, 512 | "#9c179e" 513 | ], 514 | [ 515 | 0.4444444444444444, 516 | "#bd3786" 517 | ], 518 | [ 519 | 0.5555555555555556, 520 | "#d8576b" 521 | ], 522 | [ 523 | 0.6666666666666666, 524 | "#ed7953" 525 | ], 526 | [ 527 | 0.7777777777777778, 528 | "#fb9f3a" 529 | ], 530 | [ 531 | 0.8888888888888888, 532 | "#fdca26" 533 | ], 534 | [ 535 | 1, 536 | "#f0f921" 537 | ] 538 | ], 539 | "type": "histogram2dcontour" 540 | } 541 | ], 542 | "mesh3d": [ 543 | { 544 | "colorbar": { 545 | "outlinewidth": 0, 546 | "ticks": "" 547 | }, 548 | "type": "mesh3d" 549 | } 550 | ], 551 | "parcoords": [ 552 | { 553 | "line": { 554 | "colorbar": { 555 | "outlinewidth": 0, 556 | "ticks": "" 557 | } 558 | }, 559 | "type": "parcoords" 560 | } 561 | ], 562 | "pie": [ 563 | { 564 | "automargin": true, 565 | "type": "pie" 566 | } 567 | ], 568 | "scatter": [ 569 | { 570 | "marker": { 571 | "colorbar": { 572 | "outlinewidth": 0, 573 | "ticks": "" 574 | } 575 | }, 576 | "type": "scatter" 577 | } 578 | ], 579 | "scatter3d": [ 580 | { 581 | "line": { 582 | "colorbar": { 583 | "outlinewidth": 0, 584 | "ticks": "" 585 | } 586 | }, 587 | "marker": { 588 | "colorbar": { 589 | "outlinewidth": 0, 590 | "ticks": "" 591 | } 592 | }, 593 | "type": "scatter3d" 594 | } 595 | ], 596 | "scattercarpet": [ 597 | { 598 | "marker": { 599 | "colorbar": { 600 | "outlinewidth": 0, 601 | "ticks": "" 602 | } 603 | }, 604 | "type": "scattercarpet" 605 | } 606 | ], 607 | "scattergeo": [ 608 | { 609 | "marker": { 610 | "colorbar": { 611 | "outlinewidth": 0, 612 | "ticks": "" 613 | } 614 | }, 615 | "type": "scattergeo" 616 | } 617 | ], 618 | "scattergl": [ 619 | { 620 | "marker": { 621 | "colorbar": { 622 | "outlinewidth": 0, 623 | "ticks": "" 624 | } 625 | }, 626 | "type": "scattergl" 627 | } 628 | ], 629 | "scattermapbox": [ 630 | { 631 | "marker": { 632 | "colorbar": { 633 | "outlinewidth": 0, 634 | "ticks": "" 635 | } 636 | }, 637 | "type": "scattermapbox" 638 | } 639 | ], 640 | "scatterpolar": [ 641 | { 642 | "marker": { 643 | "colorbar": { 644 | "outlinewidth": 0, 645 | "ticks": "" 646 | } 647 | }, 648 | "type": "scatterpolar" 649 | } 650 | ], 651 | "scatterpolargl": [ 652 | { 653 | "marker": { 654 | "colorbar": { 655 | "outlinewidth": 0, 656 | "ticks": "" 657 | } 658 | }, 659 | "type": "scatterpolargl" 660 | } 661 | ], 662 | "scatterternary": [ 663 | { 664 | "marker": { 665 | "colorbar": { 666 | "outlinewidth": 0, 667 | "ticks": "" 668 | } 669 | }, 670 | "type": "scatterternary" 671 | } 672 | ], 673 | "surface": [ 674 | { 675 | "colorbar": { 676 | "outlinewidth": 0, 677 | "ticks": "" 678 | }, 679 | "colorscale": [ 680 | [ 681 | 0, 682 | "#0d0887" 683 | ], 684 | [ 685 | 0.1111111111111111, 686 | "#46039f" 687 | ], 688 | [ 689 | 0.2222222222222222, 690 | "#7201a8" 691 | ], 692 | [ 693 | 0.3333333333333333, 694 | "#9c179e" 695 | ], 696 | [ 697 | 0.4444444444444444, 698 | "#bd3786" 699 | ], 700 | [ 701 | 0.5555555555555556, 702 | "#d8576b" 703 | ], 704 | [ 705 | 0.6666666666666666, 706 | "#ed7953" 707 | ], 708 | [ 709 | 0.7777777777777778, 710 | "#fb9f3a" 711 | ], 712 | [ 713 | 0.8888888888888888, 714 | "#fdca26" 715 | ], 716 | [ 717 | 1, 718 | "#f0f921" 719 | ] 720 | ], 721 | "type": "surface" 722 | } 723 | ], 724 | "table": [ 725 | { 726 | "cells": { 727 | "fill": { 728 | "color": "#EBF0F8" 729 | }, 730 | "line": { 731 | "color": "white" 732 | } 733 | }, 734 | "header": { 735 | "fill": { 736 | "color": "#C8D4E3" 737 | }, 738 | "line": { 739 | "color": "white" 740 | } 741 | }, 742 | "type": "table" 743 | } 744 | ] 745 | }, 746 | "layout": { 747 | "annotationdefaults": { 748 | "arrowcolor": "#2a3f5f", 749 | "arrowhead": 0, 750 | "arrowwidth": 1 751 | }, 752 | "autotypenumbers": "strict", 753 | "coloraxis": { 754 | "colorbar": { 755 | "outlinewidth": 0, 756 | "ticks": "" 757 | } 758 | }, 759 | "colorscale": { 760 | "diverging": [ 761 | [ 762 | 0, 763 | "#8e0152" 764 | ], 765 | [ 766 | 0.1, 767 | "#c51b7d" 768 | ], 769 | [ 770 | 0.2, 771 | "#de77ae" 772 | ], 773 | [ 774 | 0.3, 775 | "#f1b6da" 776 | ], 777 | [ 778 | 0.4, 779 | "#fde0ef" 780 | ], 781 | [ 782 | 0.5, 783 | "#f7f7f7" 784 | ], 785 | [ 786 | 0.6, 787 | "#e6f5d0" 788 | ], 789 | [ 790 | 0.7, 791 | "#b8e186" 792 | ], 793 | [ 794 | 0.8, 795 | "#7fbc41" 796 | ], 797 | [ 798 | 0.9, 799 | "#4d9221" 800 | ], 801 | [ 802 | 1, 803 | "#276419" 804 | ] 805 | ], 806 | "sequential": [ 807 | [ 808 | 0, 809 | "#0d0887" 810 | ], 811 | [ 812 | 0.1111111111111111, 813 | "#46039f" 814 | ], 815 | [ 816 | 0.2222222222222222, 817 | "#7201a8" 818 | ], 819 | [ 820 | 0.3333333333333333, 821 | "#9c179e" 822 | ], 823 | [ 824 | 0.4444444444444444, 825 | "#bd3786" 826 | ], 827 | [ 828 | 0.5555555555555556, 829 | "#d8576b" 830 | ], 831 | [ 832 | 0.6666666666666666, 833 | "#ed7953" 834 | ], 835 | [ 836 | 0.7777777777777778, 837 | "#fb9f3a" 838 | ], 839 | [ 840 | 0.8888888888888888, 841 | "#fdca26" 842 | ], 843 | [ 844 | 1, 845 | "#f0f921" 846 | ] 847 | ], 848 | "sequentialminus": [ 849 | [ 850 | 0, 851 | "#0d0887" 852 | ], 853 | [ 854 | 0.1111111111111111, 855 | "#46039f" 856 | ], 857 | [ 858 | 0.2222222222222222, 859 | "#7201a8" 860 | ], 861 | [ 862 | 0.3333333333333333, 863 | "#9c179e" 864 | ], 865 | [ 866 | 0.4444444444444444, 867 | "#bd3786" 868 | ], 869 | [ 870 | 0.5555555555555556, 871 | "#d8576b" 872 | ], 873 | [ 874 | 0.6666666666666666, 875 | "#ed7953" 876 | ], 877 | [ 878 | 0.7777777777777778, 879 | "#fb9f3a" 880 | ], 881 | [ 882 | 0.8888888888888888, 883 | "#fdca26" 884 | ], 885 | [ 886 | 1, 887 | "#f0f921" 888 | ] 889 | ] 890 | }, 891 | "colorway": [ 892 | "#636efa", 893 | "#EF553B", 894 | "#00cc96", 895 | "#ab63fa", 896 | "#FFA15A", 897 | "#19d3f3", 898 | "#FF6692", 899 | "#B6E880", 900 | "#FF97FF", 901 | "#FECB52" 902 | ], 903 | "font": { 904 | "color": "#2a3f5f" 905 | }, 906 | "geo": { 907 | "bgcolor": "white", 908 | "lakecolor": "white", 909 | "landcolor": "#E5ECF6", 910 | "showlakes": true, 911 | "showland": true, 912 | "subunitcolor": "white" 913 | }, 914 | "hoverlabel": { 915 | "align": "left" 916 | }, 917 | "hovermode": "closest", 918 | "mapbox": { 919 | "style": "light" 920 | }, 921 | "paper_bgcolor": "white", 922 | "plot_bgcolor": "#E5ECF6", 923 | "polar": { 924 | "angularaxis": { 925 | "gridcolor": "white", 926 | "linecolor": "white", 927 | "ticks": "" 928 | }, 929 | "bgcolor": "#E5ECF6", 930 | "radialaxis": { 931 | "gridcolor": "white", 932 | "linecolor": "white", 933 | "ticks": "" 934 | } 935 | }, 936 | "scene": { 937 | "xaxis": { 938 | "backgroundcolor": "#E5ECF6", 939 | "gridcolor": "white", 940 | "gridwidth": 2, 941 | "linecolor": "white", 942 | "showbackground": true, 943 | "ticks": "", 944 | "zerolinecolor": "white" 945 | }, 946 | "yaxis": { 947 | "backgroundcolor": "#E5ECF6", 948 | "gridcolor": "white", 949 | "gridwidth": 2, 950 | "linecolor": "white", 951 | "showbackground": true, 952 | "ticks": "", 953 | "zerolinecolor": "white" 954 | }, 955 | "zaxis": { 956 | "backgroundcolor": "#E5ECF6", 957 | "gridcolor": "white", 958 | "gridwidth": 2, 959 | "linecolor": "white", 960 | "showbackground": true, 961 | "ticks": "", 962 | "zerolinecolor": "white" 963 | } 964 | }, 965 | "shapedefaults": { 966 | "line": { 967 | "color": "#2a3f5f" 968 | } 969 | }, 970 | "ternary": { 971 | "aaxis": { 972 | "gridcolor": "white", 973 | "linecolor": "white", 974 | "ticks": "" 975 | }, 976 | "baxis": { 977 | "gridcolor": "white", 978 | "linecolor": "white", 979 | "ticks": "" 980 | }, 981 | "bgcolor": "#E5ECF6", 982 | "caxis": { 983 | "gridcolor": "white", 984 | "linecolor": "white", 985 | "ticks": "" 986 | } 987 | }, 988 | "title": { 989 | "x": 0.05 990 | }, 991 | "xaxis": { 992 | "automargin": true, 993 | "gridcolor": "white", 994 | "linecolor": "white", 995 | "ticks": "", 996 | "title": { 997 | "standoff": 15 998 | }, 999 | "zerolinecolor": "white", 1000 | "zerolinewidth": 2 1001 | }, 1002 | "yaxis": { 1003 | "automargin": true, 1004 | "gridcolor": "white", 1005 | "linecolor": "white", 1006 | "ticks": "", 1007 | "title": { 1008 | "standoff": 15 1009 | }, 1010 | "zerolinecolor": "white", 1011 | "zerolinewidth": 2 1012 | } 1013 | } 1014 | }, 1015 | "title": { 1016 | "text": "Model Performance" 1017 | }, 1018 | "xaxis": { 1019 | "title": { 1020 | "text": "models" 1021 | } 1022 | }, 1023 | "yaxis": { 1024 | "title": { 1025 | "text": "metrics" 1026 | } 1027 | } 1028 | } 1029 | }, 1030 | "text/html": [ 1031 | "