@极市平台 视觉AI算法实训加速营 船舶流量统计
如何使用官方套件进行加速
点击模型开发-实例,点击下方的训练套件,进行下载。
下载后,进入downloads文件夹就有。
需要将此复制到/project/train/src_repo/下
cp /project/downloads/ev_detection-v1.0.zip /project/train/src_repo/
cd /project/train/src_repo/
unzip ev_detection-v1.0.zip
右击rename一下,改成ev_detection
由于我是用yolov5s跑的,所以,重点关注的是train_yolov5.sh
根据提示需要修改data/EVDATA.yaml的类别, modelYaml/yolov5.yaml中nc的数量
然后需要修改splitData.py 由于我们的数据集文件编号为1707,所以这里改成1707
改完之后在编码环境进行测试下。
rm -r /project/train/src_repo/trainval
rm -r /project/train/src_repo/1707
cp -r /home/data/1707 /project/train/src_repo/
python /project/train/src_repo/split.py
cd /project/train/src_repo/yolov5
python train.py --batch-size 16 --epochs 30 --data ./data/chuanbo.yaml --hyp ./data/hyps/hyp.scratch-low.yaml --weight ./yolov5s.pt --img 640 --project /project/train/models/ --cfg ./models/yolov5s.yaml --cos-lr --label-smoothing 0.05 --optimizer 'AdamW'
训练完之后,运行train_yolov5.sh
bash /project/train/src_repo/ev_detection/train_yolov5.sh
如何封装sdk
导出onnx
进入/project/train/src_repo/yolov5 把老师的export.py传上去,有的地方要改下。一定要用老师给的最新的export.py哈。
model = attempt_load(weights, map_location=device, inplace=True, fuse=True) 这里要改成这个样子,map_location=device,报错的时候看传参就知道了。
还需要把requiremets.txt文件的onnx两行注释打开。要安装onnx
导出来就有best.onnx
cd /project/train/src_repo/yolov5
pip install -r /project/train/src_repo/yolov5/requirements.txt
python export.py --weights /project/train/models/exp/weights/best.pt --imgsz 480 --include onnx
导出后去模型列表找。
封装的基本工作
下载ev_sdk_demo4.0并并覆盖安装到ev_sdk下。
git clone https://gitee.com/cvmart/ev_sdk_demo4.0_pedestrian_intrusion_yolov5.git
cp -r ev_sdk_demo4.0_pedestrian_intrusion_yolov5/* ev_sdk/
找到 /project/ev_sdk/config/algo_config.json
更改中英文。
进入 /project/ev_sdk/src/Configuration.hpp
更改配置
更改模型的路径
find_library(glog REQUIRED)这个要删除掉?不然会编译失败。老师说的我还没验证。
配置deepsort
cd /project/ev_sdk/3rd/
git clone https://github.com/RichardoMrMu/deepsort-tensorrt.git
该文件夹名字为deepsort
并且进去更改CMakeList.txt
include_directories(“/usr/include/eigen3”)
install(TARGETS deepsort DESTINATION lib)
前往/ev_sdk目录下的CMakeList.txt 增加deepsort目录
include_directories(
C
M
A
K
E
S
O
U
R
C
E
D
I
R
/
3
r
d
/
d
e
e
p
s
o
r
t
/
i
n
c
l
u
d
e
)
a
d
d
s
u
b
d
i
r
e
c
t
o
r
y
(
{CMAKE_SOURCE_DIR}/3rd/deepsort/include) add_subdirectory(
CMAKESOURCEDIR/3rd/deepsort/include)addsubdirectory({CMAKE_SOURCE_DIR}/3rd/deepsort)
还需要增加
include_directories(“/usr/include/eigen3”) # 这里也需要增加
更改ev_sdk/src/SampleAlgorithm.cpp
mDetector->Init(“/usr/local/ev_sdk/model/exp/weights/best.onnx”,“/usr/local/ev_sdk/model_dp/deepsort.onnx”,mConfig.algoConfig.thresh);