Simple Baselines for Human Pose Estimation程式碼閱讀
阿新 • • 發佈:2020-10-22
simple baseline是coco2017人體關鍵點檢測亞軍,他的程式碼是微軟提供的,在python沒有類似於springboot等框架的時候,python的程式碼經常會寫的五花八門。作為一個剛入門的小白,通過學習這種規範化的程式碼可以很好地提升自己對於框架的認知能力。並且微軟的程式碼可以給我提供一個很好的參考。
程式碼的總體結構如上圖所示
- data中有coco的ann,images,後一個person_detect_result是MS自己測試出來的框圖結果。
- experiment是網路訓練中儲存的引數,一般以yaml格式進行儲存。針對不同的resnet,設定了不同的超引數數值。
- lib內包含所有工程程式碼,
- core中包含config,evaluate,function,inference,loss四個函式。
- dataset包含繼承nn.DataSet的JointsDataset,用於實現getitem方法,coco和mpii為從不同資料集獲取影象的方法。用於解耦。
- models包含pose_resnet,為模型的核心程式碼,繼承了resnet非全連線層寫法,並在後方添加了反捲積直接輸出。nms方法,用於提升結果精度。
- utils方法中包含transform,utils->create_logger, get_optimizer, save_checkpoint,vis儲存影象,zipreader.
- log記錄按時間打的程式碼
- models按不同的資料集,不同的backbone和inputsize記錄了不同的ckpt
- otuput按資料集->backbone->inputsize打log
- pose_estimation包含train和valid兩個演算法,train的過程也執行了valid演算法。