对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中return和finally共同挖的坑
Aug 18 Python
Python PyQt5标准对话框用法示例
Aug 23 Python
通过Python 接口使用OpenCV的方法
Apr 02 Python
使用anaconda的pip安装第三方python包的操作步骤
Jun 11 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
Jun 26 Python
解决Python print 输出文本显示 gbk 编码错误问题
Jul 13 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
Aug 30 Python
tensorflow实现简单逻辑回归
Sep 07 Python
Python多进程fork()函数详解
Feb 22 Python
Flask模板引擎之Jinja2语法介绍
Jun 26 Python
django 2.2和mysql使用的常见问题
Jul 18 Python
python实现二分查找算法
Sep 18 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 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
PHP简单实现无限级分类的方法
2016/05/13 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
JavaScript 继承的实现
2009/07/09 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
jquery时间下拉框小例子
2013/04/15 Javascript
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
微信小程序之高德地图多点路线规划过程示例详解
2021/01/18 Javascript
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
Python版的文曲星猜数字游戏代码
2013/09/02 Python
Python中list初始化方法示例
2016/09/18 Python
Python网络编程详解
2017/10/31 Python
python中format()函数的简单使用教程
2018/03/14 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
python通过http下载文件的方法详解
2019/07/26 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
治超工作实施方案
2014/05/04 职场文书
员工生日活动方案
2014/08/24 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python
Python os和os.path模块详情
2022/04/02 Python
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server