对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语言实现机器学习的K-近邻算法
Jun 11 Python
Python常见异常分类与处理方法
Jun 04 Python
python实现聚类算法原理
Feb 12 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
使用Python抓取豆瓣影评数据的方法
Oct 17 Python
对python中的高效迭代器函数详解
Oct 18 Python
python实现键盘控制鼠标移动
Nov 27 Python
PyCharm配置mongo插件的方法
Nov 30 Python
Python enumerate函数功能与用法示例
Mar 01 Python
Python如何基于rsa模块实现非对称加密与解密
Jan 03 Python
python中的itertools的使用详解
Jan 13 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
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
用javascript自动显示最后更新时间
2007/03/15 Javascript
ie 处理 gif动画 的onload 事件的一个 bug
2007/04/12 Javascript
Display SQL Server Version Information
2007/06/21 Javascript
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
浅析vue中的nextTick
2020/12/28 Vue.js
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
python记录程序运行时间的三种方法
2017/07/14 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
2018/03/19 Python
Django forms组件的使用教程
2018/10/08 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
挂职思想汇报
2013/12/31 职场文书
高中化学教学反思
2014/01/13 职场文书
镇创先争优活动总结
2014/08/28 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS
vue+echarts实现多条折线图
2022/03/21 Vue.js