###### tags: `Mask R-CNN`
# 修改Mask R-CNN demo_video
### 濃度
visualize.py
alpha控制濃淡度
```python=79
def apply_mask(image, mask, color, alpha=0.7):
```
### 小範圍不要mask
video_demo.py
x1,x2,y1,y2 為畫框的座標點
```python=54
if ((int(((x2 - x1)**2)**0.5) * int(((y2-y1)**2)**0.5)) < 10000):
break
```
### 修改影片執行Mask效率
video_demo.py
#### 概念:設定一個控制器 frame_rate_divider = 0,每當他=10的時候執行一次辨識,10禎一次
```python=111
#控制影片執行mask次數
frame_rate_divider = 0
while(cap.isOpened()):
stime = time.time()
ret, frame = cap.read()
result_frame = frame
if ret:
# 設定為10 代表10貞執行一次mask
if frame_rate_divider == 10:
results = model.detect_keypoint([frame], verbose=0)
r = results[0]
# for one image
log("rois", r['rois'])
log("keypoints", r['keypoints'])
log("class_ids", r['class_ids'])
log("keypoints", r['keypoints'])
log("masks", r['masks'])
log("scores", r['scores'])
result_frame = cv2_display_keypoint(frame,r['rois'],r['keypoints'],r['masks'],r['class_ids'],r['scores'],class_names)
cv2.imshow('frame', result_frame)
frame_rate_divider = 0
tEnd = time.time()
tMin = (int(tEnd - tStart)) // 60
print("use time : " + str(tMin) +" Min " + str(int(tEnd - tStart) - tMin * 60) + " sec ", end = "")
else:
frame_rate_divider += 1
#輸出影片 放在控制mask次數外面才能每一貞都儲存下來
output.write(result_frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
```