对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使用win32com在百度空间插入html元素示例
Feb 20 Python
python使用datetime模块计算各种时间间隔的方法
Mar 24 Python
在Python中实现贪婪排名算法的教程
Apr 17 Python
在Python的struct模块中进行数据格式转换的方法
Jun 17 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
Aug 23 Python
使用python装饰器计算函数运行时间的实例
Apr 21 Python
python库matplotlib绘制坐标图
Oct 18 Python
Python Django view 两种return的实现方式
Mar 16 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
python怎么调用自己的函数
Jul 01 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 Python
python中如何使用虚拟环境
Oct 14 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测试硬盘写入速度示例
2014/01/27 PHP
php中动态修改ini配置
2014/10/14 PHP
php通过获取头信息判断图片类型的方法
2015/06/26 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
PHP编程中的Session阻塞问题与解决方法分析
2017/08/07 PHP
一个加密JavaScript的开源工具PACKER2.0.2
2006/11/04 Javascript
使用javascript访问XML数据的实例
2006/12/27 Javascript
JS查看对象功能代码
2008/04/25 Javascript
js arguments.callee的应用代码
2009/05/07 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
js拆分字符串并将分割的数据放到数组中的方法
2015/05/06 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
Node.js中的cluster模块深入解读
2018/06/11 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
20个常用Python运维库和模块
2018/02/12 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
python集合的创建、添加及删除操作示例
2019/10/08 Python
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
2013/02/04 HTML / CSS
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
党员剖析材料范文
2014/12/18 职场文书
中秋客户感谢信
2015/01/22 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
nginx容器方式反向代理实战
2022/04/18 Servers
云服务器部署 Web 项目的实现步骤
2022/06/28 Servers