---
# System prepended metadata

title: 解析 start_here.py
tags: [openpose]

---

---
tags: openpose
---
# 解析 start_here.py 
## 2021/6/8
### https://github.com/kr1210/Human-Pose-Compare


[Python argparse 教學：比 sys.argv 更好用，讓命令列引數整潔又有序](https://haosquare.com/python-argparse/)

![](https://i.imgur.com/xWBkz8m.png)

```
print(args)
```

>  {'activity': 'punch - side', 'video': 'test.mp4', 'lookup': 'lookup_test.pickle'}
 
![](https://i.imgur.com/Ncn4XON.png)

```
class get_Score(object):
	def __init__(self, lookup='lookup.pickle'):
		self.a = Pose()
		self.s = Score()
		self.b = pickle.load(open(lookup, 'rb'))
		self.input_test = []

	def get_action_coords_from_dict(self,action):
			for (k,v) in self.b.items():
				if k==action:
					(model_array,no_of_frames) = (v,v.shape[0])
			return model_array,no_of_frames
	
	def calculate_Score(self,video,action):
		with tf.Session() as sess:
			model_cfg, model_outputs = posenet.load_model(101, sess)
			model_array,j = self.get_action_coords_from_dict(action)
			cap = cv2.VideoCapture(video)
			i = 0
			if cap.isOpened() is False:
				print("error in opening video")
			while cap.isOpened():
				ret_val, image = cap.read()
				if ret_val:         
					input_points= self.a.getpoints(cv2.resize(image,(372,495)),sess,model_cfg,model_outputs)
					input_new_coords = np.asarray(self.a.roi(input_points)[0:34]).reshape(17,2)
					self.input_test.append(input_new_coords)
					i = i + 1
				else:
					break
			cap.release()
			final_score,score_list = self.s.compare(np.asarray(self.input_test),np.asarray(model_array),j,i)
		return final_score,score_list
```

----



![](https://i.imgur.com/7CtZaKK.png)




```
self.input_test.append(input_new_coords)
```

```
print(input_test)
```

> 
> [[[5.15185883e+01 8.93372718e+00]
>   [4.70564352e+01 2.76518550e-01]
>   [4.32060295e+01 2.80458725e+00]
>   ...
>   [4.81518769e+00 1.71306666e+02]
>   [5.91169274e+01 2.00305826e+02]
>   [9.84054851e+00 2.16749087e+02]]
> 
>  [[5.13339807e+01 9.12596124e+00]
>   [4.68509959e+01 5.62279158e-01]
>   [4.30994279e+01 3.15361881e+00]
>   ...
>   [4.78943200e+00 1.71618791e+02]
>   [5.88837917e+01 2.00361205e+02]
>   [9.67429361e+00 2.16373234e+02]]
> 
>  [[5.12240261e+01 8.31889213e+00]
>   [4.71536351e+01 1.85923245e-01]
>   [4.13419523e+01 8.99014063e-01]
>   ...
>   [4.89588128e+00 1.70029727e+02]
>   [5.92805614e+01 1.99135659e+02]
>   [9.97858550e+00 2.14544162e+02]]
> 
>  ...
> 
>  [[6.73014211e+01 6.55544648e+00]
>   [6.78065007e+01 4.08304853e-02]
>   [5.71713807e+01 4.76013846e-02]
>   ...
>   [1.72097225e+01 1.70479383e+02]
>   [5.83745494e+01 2.09495166e+02]
>   [7.10029574e+00 2.25326491e+02]]
> 
>  [[6.60858784e+01 1.04955383e+01]
>   [6.86857932e+01 7.63566434e-01]
>   [5.79223253e+01 8.23889169e-01]
>   ...
>   [1.83621662e+01 1.70635853e+02]
>   [6.02386019e+01 2.12411212e+02]
>   [5.32813609e+00 2.25000675e+02]]
> 
>  [[6.67499721e+01 8.56490846e+00]
>   [6.96779475e+01 1.13766083e+00]
>   [5.75924724e+01 6.73452330e-01]
>   ...
>   [1.75765766e+01 1.69598580e+02]
>   [5.78942389e+01 2.11459764e+02]
>   [1.88587547e+00 2.23324988e+02]]]


```
for k in range(0,17):	
	print(input_test[:,0])
```

> 
>  [[51.51858831  8.93372718]
>  [51.33398072  9.12596124]
>  [51.22402607  8.31889213]
>  [51.33176559  9.01373744]
>  [49.99546138  6.78830115]
>  [50.67814301  8.18894268]
>  [51.14128007  9.4083843 ]
>  [51.89035896  9.81396628]
>  [50.07277233  9.22365009]
>  [50.32534902  8.03248702]
>  [50.81750197  8.24566023]
>  [51.01097392  8.09056355]
>  [49.29549235  7.3279541 ]
>  [47.17383286  7.38705819]
>  [46.06379066  8.20491374]
>  [46.4909112   5.02173387]
>  [46.87247976  7.8973302 ]
>  [46.97264443  8.27593084]
>  [46.80982905  7.66563908]
>  [48.62710106  6.85264315]
>  [47.48031604  5.34719654]
>  [48.79323193  5.08359244]
>  [51.65116105  7.65676647]
>  [51.39405506  3.51596849]
>  [54.33096524  5.73982174]
>  [54.50814317  6.55525039]
>  [54.55890175  8.1255707 ]
>  [55.35843206 10.46874612]
>  [57.51757888  7.83458139]
>  [60.84092025  8.68122924]
>  [71.40756873  9.38493806]
>  [76.6397007  10.44422724]
>  [80.58548938 10.38817717]
>  [83.59579254 10.82216001]
>  [87.69912298 11.04314905]
>  [88.140408    8.01138462]
>  [92.02880019  7.97607667]
>  [88.12723067  8.72681921]
>  [80.40655837 11.04218283]
>  [81.92215335 11.08065349]
>  [83.21772101 11.09518771]
>  [84.74804541 10.88903498]
>  [83.23441816 10.565317  ]
>  [83.34035428 10.29304636]
>  [82.0554664  10.92209667]
>  [81.58297802 10.02107389]
>  [80.99297385 11.20039526]
>  [75.95746712 10.1605082 ]
>  [75.18788673  9.32393459]
>  [74.84043395  9.58139443]
>  [75.11842045 10.56339222]
>  [71.93977778  8.89534011]
>  [73.18177202  9.35506008]
>  [69.35248072  9.39511139]
>  [68.21253096  9.40227896]
>  [66.5384987   9.21346487]
>  [66.96207155  7.3176107 ]
>  [61.10535719  7.64625031]
>  [57.85705763  7.74502609]
>  [58.20102909  9.45068532]
>  [58.16386743  9.5869242 ]
>  [56.93216549  9.14349526]
>  [56.51814807  8.33990715]
>  [55.13838746  4.70463958]
>  [51.90544888  5.26264206]
>  [50.56485227  7.04251829]
>  [49.09886818  8.24641716]
>  [46.98728197  8.64247968]
>  [47.02653441  8.80683298]
>  [46.92318308  8.70287038]
>  [46.12964632  8.50447636]
>  [45.9800049   9.07556261]
>  [44.45339678  8.75332438]
>  [45.32177251  8.647593  ]
>  [45.61745049  9.09427852]
>  [45.45821041  8.64856364]
>  [45.27162204  8.626186  ]
>  [44.3687683   8.2058772 ]
>  [45.24456842  7.92421653]
>  [47.10428434  7.769096  ]
>  [48.10212354  8.12740013]
>  [46.93033107  7.24402184]
>  [49.99529043  7.5000429 ]
>  [51.75689434  6.34980884]
>  [52.08613648  6.55359681]
>  [53.56658045  6.49161104]
>  [53.30971989  6.88087229]
>  [55.16485413  7.41615688]
>  [54.13196247  7.37677851]
>  [54.54908656  7.19299967]
>  [61.89855259  7.60462579]
>  [64.68014612  7.58514172]
>  [66.76030072  7.90510166]
>  [68.416573    6.75983989]
>  [66.99056076  6.92570219]
>  [67.30142113  6.55544648]
>  [66.0858784  10.49553829]
>  [66.74997215  8.56490846]]



### input_test[:,k]/np.linalg.norm(input_test[:,k])



----

### 參考資料:

[Python 字典(Dictionary) items()方法](https://www.runoob.com/python/att-dictionary-items.html)

[[Python+OpenCV] 圖片縮放 resize](https://shengyu7697.github.io/python-opencv-resize/)