--- 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. 將上述步驟執行兩輪提升準確度