---
# System prepended metadata

title: 交接文件
tags: [短腿土撥鼠的長高計畫之瘋狂跳跳跳繩]

---

---
tags: 短腿土撥鼠的長高計畫之瘋狂跳跳跳繩
title: 遇到的問題
---
# 檔案結構
## service.py
- 用來監控是否有影片被上傳並計算上傳影片的跳繩次數
## post.py
- 用來生成人體關節座標點
## getCertificate.py
- 用來判斷學生是否得獎
## requirements.txt
- 程式需要的套件與版本

# 跳繩演算法
1. 將影片中的人體關節座標取出，我們選擇左邊肩膀的Y軸座標當作檢測點
2. 找出檢測點上的所有的 localmaximam 與 localminimam，定義如下
    - 一個 localmaximam 會比他的左右兩邊都大
    - 一個 localminimam 會比他的左右兩邊都小
4. 接著取出每個波的振幅(H)，並取眾數
    - 一個波包含一個區間最小值與兩個區間最大值
5. 由於眾數H不明顯，所以我們進行以下步驟找出眾數
    1. 所有振幅正規化
    2. 將所有振幅數值做分段，逼近到小數第二位，以每0.05為一個區間 (高原區不明顯)
    3. 剔除數值為0的振幅 (避免失敗數值成為眾數)
    4. 計算出眾數(mode_amplitude)
    5. 取所有眾數的原始振幅
    6. 對第5點的數組取平均值(H)
6. 震幅標準差   
    1. 對上述第5點的數組取標準差
    2. 對平均振幅加減2.5倍標準差得到震幅區間

7. 拿到波長(lambda)
    - lambda
        1. 取所有 mode_amplitude 的區間極大值間的距離
        2. 對第1點取平均數
    - 波長標準差
        3. 對第1點取標準差
        4. 對平均波長加減2.5倍標準差得到波長區間
8. 檢測每個波是否符合條件
    1. 振幅介於振幅區間
    2. 波長介於波長區間
9. 將上述步驟執行兩輪提升準確度