一刊咳、個人電腦或服務器安裝Vitis-AI docker鏡像
- 確保已經(jīng)安裝了docker環(huán)境赎婚,并安裝docker鏡像
docker pull xilinx/vitis-ai-cpu:latest
- 下載Vitis-AI倉庫
git clone --recurse-submodules https://github.com/Xilinx/Vitis-AI
cd Vitis-AI
- 啟動Vitis-AI docker鏡像
./docker_run.sh xilinx/vitis-ai-cpu:latest
二、darknet模型轉為caffe模型
以下二 三 四步操作都在Vitis-AI docker鏡像中完成
- 激活conda環(huán)境
conda activate vitis-ai-caffe
- 使用工具進行轉換
python /opt/vitis_ai/conda/envs/vitis-ai-caffe/bin/convert.py /path/to/yolov3-voc.cfg /path/to/yolov3-voc.weights /path/to/yolov3.prototxt /path/to/yolov3.caffemodel #prototxt和caffemodel為生成的文件
三蕾额、caffe模型量化
- 修改生成的
yolov3.prototxt
文件,將文件頭部修改為如下
name: "Darkent2Caffe"
#input: "data"
#input_dim: 1
#input_dim: 3
#input_dim: 416
#input_dim: 416
layer {
name: "data"
type: "ImageData"
top: "data"
top: "label"
include {
phase: TRAIN
}
image_data_param {
root_folder: "/workspace/quImg/"
source: "/workspace/q.txt"
batch_size: 1
shuffle: false
}
transform_param {
mirror: false
yolo_width: 416
yolo_height: 416
}
}
其中root_folder
是圖片的文件夾轩缤,source
中的q.txt
中是具體圖片的名字网严。
q.txt
中內(nèi)容如下:
64_01_20210428111258426_1-7265.jpg 0
64_01_20210429011105543_19-6710.jpg 1
64_01_20210429011105543_23-3593.jpg 1
64_01_20210427115650449_3-2244.jpg 0
64_01_20210429011105543_20-4260.jpg 1
該步驟解釋:量化時要準備多張訓練時的樣本圖片呼寸,這些樣本圖片對量化后的檢測準確率有很大提升艳汽。(一類200張)
- 使用vai_q_caffe進行量化
vai_q_caffe quantize -model yolov3.prototxt -keep_fixed_neuron -calib_iter 20 -weights yolov3.caffemodel -output_dir yolov3_quantized/ -method 1
編譯成功之后,在yolov3_quantized
文件夾下有四個文件:
- deploy.caffemodel
- deploy.prototxt 前兩個都是后續(xù)編譯需要的模型对雪,無法被caffe所讀取
- quantize_train_test.caffemodel
- quantize_train_test.prototxt 這兩個文件是量化過后的caffe模型河狐,可以用作測試和遷移訓練
四、模型編譯
將caffemodel轉換為DPU可以運行的模型
ARCH=/opt/vitis_ai/compiler/arch/DPUCZDX8G/ZCU104/arch.json; #不同開發(fā)板設置不同json
vai_c_caffe --prototxt yolov3_quantized/deploy.prototxt --caffemodel yolov3_quantized/deploy.caffemodel --arch ${ARCH} --output_dir yolov3_compiled/ --net_name dpu_yolov3_voc --options "{'mode':'normal','save_kernel':''}";
運行完成后瑟捣,可以在yolov3_compiled
文件夾下生成dpu_yolov3_voc.xmodel
馋艺,拷貝到zcu104開發(fā)板即可。