赞
踩
1.训练官方yolov3代码
https://pjreddie.com/darknet/yolo/,进行训练
2.因官方yolov3代码由C和cuda写的,train不起来就参照此篇博主的博文
3.由训练得到的yolov3.weight,转成tensoflow的ckpt模型
具体代码在github中,参考其readme.md中的weight_convertion方法转成checkpoint file
注:应其用的tensorflow1.x写的weight_convertion.py,使用tensorflow2.x版本往上时,有些API不支持,可能会报以下错误AttributeError: module ‘tensorflow’ has no attribute ‘Variable’,则只需把tf.改为tf.compat.v1.就可以解决,,
4.运行以下代码,将ckpt模型转为pb固化模型,因为对于pb转om模型,官方对tensorflow1.14支持得比较好,可以降版本运行,如果要不降版本,就按照3.中的方法
#tensorflow 1.14 import tensorflow as tf from tensorflow.python.framework import graph_util from tensorflow.python.platform import gfile def freeze_graph(input_path,output_path): output_node_names = "yolov3/yolov3_head/feature_map_1,yolov3/yolov3_head/feature_map_2,yolov3/yolov3_head/feature_map_3" saver = tf.train.import_meta_graph(input_path+".meta", clear_devices=True) graph = tf.get_default_graph() input_graph_def = graph.as_graph_def() with tf.Session() as sess: saver.restore(sess, input_path) output_graph_def = graph_util.convert_variables_to_constants( sess=sess, input_graph_def=input_graph_def, output_node_names=output_node_names.split(",") ) with tf.io.gfile.GFile(output_path, 'wb') as fgraph: fgraph.write(output_graph_def.SerializeToString()) if __name__=="__main__": input_path = "/content/drive/Shareddrives/204880354@qq.com/yolov3-tf4/darknet/backup/yolov3.ckpt" output_path = "/content/drive/Shareddrives/204880354@qq.com/yolov3-tf4/darknet/backup/yolov3_416.pb" freeze_graph(input_path, output_path)
5.使用Mindstudio将pb模型转换为atlas200部署om模型
在转换时遇python3.7.5报错ModuleNotFoundError: No module named ‘_ctypes’
solution:
1)安装libffi-dev
2)重新编译python
实现:
一、
sudo apt-get install libffi-dev
二、
下载python3.7.5的包
解压,并进入解压目录,在该目录下打开终端
三、输入
./configure --prefix=/usr/local/python3 #后面接的是原python的安装路径
四、运行
nake && make install #编译
5.编写推理代码
可以从https://pan.baidu.com/s/1E86SFEYjmhaGoQVc6Y7gfg,提取码ok0l获取
之后将包含上述文件的文件夹拷贝到Atlas 200 DK上,在存放目录下执行命令
scp -r YOLOv3_COCO HwHiAiUser@192.168.1.2:/home/HwHiAiUser
使用scp命令在Atlas 200 DK和虚拟机之间传输文件(文件夹)
链接为 https://bbs.huaweicloud.com/blogs/168928
之后登陆开发板,执行命令即可。因为前面,我拷贝到了开发板的/home/HwHiAiUser目录下,所以直接登陆就能看到了,直接执行命令进入文件夹即可
cd YOLOv3_COCO
python3 main.py input_video/person.mp4
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。