对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 相关文章推荐
Python3基础之基本数据类型概述
Aug 13 Python
python递归删除指定目录及其所有内容的方法
Jan 13 Python
Python中异常重试的解决方案详解
May 05 Python
Python简单过滤字母和数字的方法小结
Jan 09 Python
numpy下的flatten()函数用法详解
May 27 Python
Python 等分切分数据及规则命名的实例代码
Aug 16 Python
Pytorch之parameters的使用
Dec 31 Python
Python中and和or如何使用
May 28 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
python利用xlsxwriter模块 操作 Excel
Oct 14 Python
python 使用OpenCV进行简单的人像分割与合成
Feb 02 Python
python如何在word中存储本地图片
Apr 07 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
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
2011/12/19 PHP
PHP小技巧之函数重载
2014/06/02 PHP
nginx下安装php7+php5
2016/07/31 PHP
微信开发之php表单微信中自动提交两次问题解决办法
2017/01/08 PHP
PHP利用Mysql锁解决高并发的方法
2018/09/04 PHP
使用PHP反射机制来构造"CREATE TABLE"的sql语句
2019/03/21 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
javascript的理解及经典案例分析
2016/05/20 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
微信小程序开发探究
2016/12/27 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
vue-router源码之history类的浅析
2019/05/21 Javascript
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
Python设计模式之观察者模式实例
2014/04/26 Python
深入解析Python中的lambda表达式的用法
2015/08/28 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
Django1.11配合uni-app发起微信支付的实现
2019/10/12 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
python退出循环的方法
2020/06/18 Python
vscode+PyQt5安装详解步骤
2020/08/12 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
高山背包:High Sierra
2017/11/23 全球购物
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
全球领先的中国制造商品在线批发平台:DHgate
2020/01/28 全球购物
实体的生命周期
2013/08/31 面试题
政府领导干部个人对照检查材料思想汇报
2014/09/24 职场文书
《秋天的图画》教学反思
2016/02/19 职场文书
Python使用海龟绘图实现贪吃蛇游戏
2021/06/18 Python