对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中global与nonlocal比较
Nov 21 Python
Python读取环境变量的方法和自定义类分享
Nov 22 Python
python简单判断序列是否为空的方法
Jun 30 Python
详解Python里使用正则表达式的ASCII模式
Nov 02 Python
Python读取Json字典写入Excel表格的方法
Jan 03 Python
PyQt5主窗口动态加载Widget实例代码
Feb 07 Python
python 搜索大文件的实例代码
Jul 08 Python
Django Docker容器化部署之Django-Docker本地部署
Oct 09 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
Apr 08 Python
Python爬取阿拉丁统计信息过程图解
May 12 Python
python 解决Fatal error in launcher:错误问题
May 21 Python
Pandas直接读取sql脚本的方法
Jan 21 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
推荐文章系统(一)
2006/10/09 PHP
PHP添加MySQL数据记录代码
2008/06/07 PHP
php 字符串函数收集
2010/03/29 PHP
php写的简易聊天室代码
2011/06/04 PHP
php递归使用示例(php递归函数)
2014/02/14 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
2014/05/29 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
javascript 得到变量类型的函数
2010/05/19 Javascript
jQuery 淡入淡出 png图在ie8下有黑色边框的解决方法
2013/03/05 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
Android中的jQuery:AQuery简介
2014/05/06 Javascript
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
让图片跳跃起来  javascript图片轮播特效
2016/02/16 Javascript
js面向对象编程总结
2017/02/16 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
python代码编写计算器小程序
2020/03/30 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
python通过matplotlib生成复合饼图
2020/02/06 Python
python绘制分布折线图的示例
2020/09/24 Python
linux下进程间通信的方式
2013/01/23 面试题
商务英语专业自荐信
2013/10/14 职场文书
搞笑创意广告语
2014/03/17 职场文书
初中班级口号
2014/06/09 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
详解redis分布式锁的这些坑
2021/05/19 Redis