当前位置:   article > 正文

野生yolov3在atlas200dk的部署_yolo v3部署atlas

yolo v3部署atlas

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

5.使用Mindstudio将pb模型转换为atlas200部署om模型

在转换时遇python3.7.5报错ModuleNotFoundError: No module named ‘_ctypes’
solution:
1)安装libffi-dev
2)重新编译python
实现:
一、
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
sudo apt-get install libffi-dev
  • 1

二、
下载python3.7.5的包
解压,并进入解压目录,在该目录下打开终端
三、输入

./configure --prefix=/usr/local/python3 #后面接的是原python的安装路径
  • 1

四、运行

nake && make install #编译
  • 1

5.编写推理代码
可以从https://pan.baidu.com/s/1E86SFEYjmhaGoQVc6Y7gfg,提取码ok0l获取
在这里插入图片描述
之后将包含上述文件的文件夹拷贝到Atlas 200 DK上,在存放目录下执行命令

scp -r YOLOv3_COCO HwHiAiUser@192.168.1.2:/home/HwHiAiUser
  • 1

使用scp命令在Atlas 200 DK和虚拟机之间传输文件(文件夹)

链接为 https://bbs.huaweicloud.com/blogs/168928
之后登陆开发板,执行命令即可。因为前面,我拷贝到了开发板的/home/HwHiAiUser目录下,所以直接登陆就能看到了,直接执行命令进入文件夹即可

cd YOLOv3_COCO
  • 1
python3 main.py input_video/person.mp4
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/842729
推荐阅读
相关标签
  

闽ICP备14008679号