Script tools/analysis_tools/optimize_anchors.py
supports three methods to optimize YOLO anchors including k-means
anchor cluster, Differential Evolution
and v5-k-means
.
In k-means method, the distance criteria is based IoU, python shell as follow:
python tools/analysis_tools/optimize_anchors.py ${CONFIG} \
--algorithm k-means \
--input-shape ${INPUT_SHAPE [WIDTH HEIGHT]} \
--out-dir ${OUT_DIR}
In differential_evolution method, based differential evolution algorithm, use avg_iou_cost
as minimum target function, python shell as follow:
python tools/analysis_tools/optimize_anchors.py ${CONFIG} \
--algorithm DE \
--input-shape ${INPUT_SHAPE [WIDTH HEIGHT]} \
--out-dir ${OUT_DIR}
In v5-k-means method, clustering standard as same with YOLOv5 which use shape-match, python shell as follow:
python tools/analysis_tools/optimize_anchors.py ${CONFIG} \
--algorithm v5-k-means \
--input-shape ${INPUT_SHAPE [WIDTH HEIGHT]} \
--prior_match_thr ${PRIOR_MATCH_THR} \
--out-dir ${OUT_DIR}