对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处理python编码问题
Mar 13 Python
使用python实现baidu hi自动登录的代码
Feb 10 Python
python 从远程服务器下载日志文件的程序
Feb 10 Python
Python编程之变量赋值操作实例分析
Jul 24 Python
详解分布式任务队列Celery使用说明
Nov 29 Python
Python高级特性 切片 迭代解析
Aug 23 Python
python实现把二维列表变为一维列表的方法分析
Oct 08 Python
从numpy数组中取出满足条件的元素示例
Nov 26 Python
Pycharm修改python路径过程图解
May 22 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
python+openCV对视频进行截取的实现
Nov 27 Python
python解析json数据
Apr 29 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函数getenv简介和使用实例
2014/05/12 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
PHP使用array_fill定义多维数组的方法
2015/03/18 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
jQuery链使用指南
2015/01/20 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
JS对大量数据进行多重过滤的方法
2016/11/04 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
Angular2 路由问题修复详解
2017/03/01 Javascript
Angularjs自定义指令Directive详解
2017/05/27 Javascript
Vue学习之路之登录注册实例代码
2017/07/06 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
2019/05/16 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
2014/06/04 Python
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
python 集合 并集、交集 Series list set 转换的实例
2018/05/29 Python
python删除字符串中指定字符的方法
2018/08/13 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
python装饰器原理与用法深入详解
2019/12/19 Python
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
党代会心得体会
2014/09/04 职场文书
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android