对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中的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
Python实现对字符串的加密解密方法示例
Apr 29 Python
python中hashlib模块用法示例
Oct 30 Python
python字符串Intern机制详解
Jul 01 Python
python正则-re的用法详解
Jul 28 Python
pycharm 批量修改变量名称的方法
Aug 01 Python
python输出决策树图形的例子
Aug 09 Python
python小项目之五子棋游戏
Dec 26 Python
详解Python的三种拷贝方式
Feb 11 Python
Python类的动态绑定实现原理
Mar 21 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 Python
python实现图片批量压缩
Apr 24 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制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
基于json的jquery地区联动效果代码
2011/07/06 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
python类和继承用法实例
2015/07/07 Python
Python写入数据到MP3文件中的方法
2015/07/10 Python
Django框架使用mysql视图操作示例
2019/05/15 Python
Bibloo荷兰:女士、男士和儿童的服装、鞋子和配饰
2019/02/25 全球购物
个人求职简历中英文自我评价
2013/12/16 职场文书
会议开场欢迎词
2014/01/15 职场文书
校园十佳歌手策划书
2014/01/22 职场文书
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
大学校务公开实施方案
2014/03/31 职场文书
个人借款担保书
2014/04/02 职场文书
学校工作推荐信范文
2014/07/11 职场文书
2015年教师师德师风承诺书
2015/04/28 职场文书
寒假生活随笔
2015/08/15 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
Redis RDB技术底层原理详解
2021/09/04 Redis
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技