对YOLOv3模型调用时候的python接口详解


Posted in Python onAugust 26, 2019

需要注意的是:更改完源程序.c文件,需要对整个项目重新编译、make install,对已经生成的文件进行更新,类似于之前VS中在一个类中增加新函数重新编译封装dll,而python接口的调用主要使用的是libdarknet.so文件,其余在配置文件中的修改不必重新进行编译安装。

之前训练好的模型,在模型调用的时候,总是在

lib = CDLL("/home/*****/*******/darknet/libdarknet.so", RTLD_GLOBAL)这里读不到darknet编译生成的.so文件,导致直接的报错;之前以为是文件路径的问题,稀里糊涂的;由于很久不写c文件了,所以最后直接在python接口后在py文件中修改的画框、标置信度等操作,一次次的尝试后终于成功

(1)将项目中python文件下的darknet.py文件拷贝到根目录,和/libdarknet.so在同一个目录下

(2)整个demo程序都是用绝对路径;

实现yolov3模型加载,批量读取文件夹下的照片到库函数变量,最终处理结果存入在另外新建文件夹

###2019.04.03 by ylxb
def showPicResult(image,peoplecar,outimage):
  img = cv2.imread(image)
  out_img =outimage
  cv2.imwrite(out_img, img)
  for i in range(len(peoplecar)):
    x1=peoplecar[i][2][0]-peoplecar[i][2][2]/2
    y1=peoplecar[i][2][1]-peoplecar[i][2][3]/2
    x2=peoplecar[i][2][0]+peoplecar[i][2][2]/2
    y2=peoplecar[i][2][1]+peoplecar[i][2][3]/2
    im = cv2.imread(out_img)
    cv2.rectangle(im,(int(x1),int(y1)),(int(x2),int(y2)),(255,255,0),3)
    text = listpeoplecar[i][0]
    # 在图片上添加文字信息
    if(text=="people"):
      carcol=(55, 55, 255)#颜色显示
    else:
      carcol = (255, 55, 55)
    cv2.putText(im, text, (int(x1), int(y1)), cv2.FONT_HERSHEY_SIMPLEX,
          0.8, carcol, 1, cv2.LINE_AA)
    #This is a method that works well.
    cv2.imwrite(out_img, im)
###2019.04.03 by ylxb
  filenames = os.listdir(picDir)
  i = 0
  num = 0#目标个数
  car_num = 0#car个数
  people_num = 0#people个数

  car = "car" # car元素
  people = "people" # people元素

  for name in filenames:
    filename=os.path.join(picDir,name)
    #print(filename)
    listpeoplecar = detect(net, meta, filename)
    print(listpeoplecar)
    i = i + 1
    #save_picpath = out_img+str(filename).split("/")[-1].split(".")[0] + ".png"
    out_img=out_img1+str(i)+'.png'
    showPicResult(filename,listpeoplecar,out_img)

    for item in listpeoplecar:
      #print(item)
      car_num = car_num + item[0].count(car)#car个数
      people_num = people_num + item[0].count(people)#people个数
      num = num + 1#目标个数

  print('car个数: ' + str(car_num))
  print('people个数: ' + str(people_num))
  print('共检测出目标个数: ' + str(num))
  print('共检测照片个数:'+ str(i))

放其中一个照片测试照片:

对YOLOv3模型调用时候的python接口详解

以上这篇对YOLOv3模型调用时候的python接口详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python发送邮件示例(支持中文邮件标题)
Feb 16 Python
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
Jun 10 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
Jul 16 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 Python
Atom Python 配置Python3 解释器的方法
Aug 28 Python
python中调试或排错的五种方法示例
Sep 12 Python
Python小程序 控制鼠标循环点击代码实例
Oct 08 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
Python列表解析操作实例总结
Feb 26 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
Jul 28 Python
基于Pygame实现简单的贪吃蛇游戏
Dec 06 Python
pandas条件组合筛选和按范围筛选的示例代码
Aug 26 #Python
python3 反射的四种基本方法解析
Aug 26 #Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 #Python
深入学习python多线程与GIL
Aug 26 #Python
用python生成与调用cntk模型代码演示方法
Aug 26 #Python
python list转置和前后反转的例子
Aug 26 #Python
python3 map函数和filter函数详解
Aug 26 #Python
You might like
PHP生成静态页面详解
2006/11/19 PHP
php中实现记住密码自动登录的代码
2011/03/02 PHP
几个有用的php字符串过滤,转换函数代码
2012/05/01 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
php格式化日期实例分析
2014/11/12 PHP
非常实用的php验证码类
2016/05/15 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
javascript 动态创建表格
2015/01/08 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
深入理解vue Render函数
2017/07/19 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
jquery实现聊天机器人
2020/02/08 jQuery
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
Python赋值语句后逗号的作用分析
2015/06/08 Python
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
python实现FTP服务器服务的方法
2017/04/11 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
python根据unicode判断语言类型实例代码
2018/01/17 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
python语言元素知识点详解
2019/05/15 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
HTML5之SVG 2D入门5—颜色的表示及定义方式
2013/01/30 HTML / CSS
英国网上电器商店:Electricshop
2020/03/15 全球购物
好人好事事迹材料
2014/02/12 职场文书
三峡导游词
2015/01/31 职场文书
会计求职自荐信范文
2015/03/04 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis