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
版权声明:本文为CSDN博主「djh_hai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45013882/article/details/122584549
暂无评论