对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中lambda与def用法对比实例分析
Apr 30 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
Jun 30 Python
python 保存float类型的小数的位数方法
Oct 17 Python
Python编程在flask中模拟进行Restful的CRUD操作
Dec 28 Python
python实现单链表的方法示例
Sep 03 Python
浅谈Django+Gunicorn+Nginx部署之路
Sep 11 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
Feb 29 Python
Python Tkinter Entry和Text的添加与使用详解
Mar 04 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
Aug 03 Python
K近邻法(KNN)相关知识总结以及如何用python实现
Jan 28 Python
Python实现简单的2048小游戏
Mar 01 Python
python可视化大屏库big_screen示例详解
Nov 23 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 选项及相关信息函数库
2006/12/04 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
php实现递归与无限分类的方法
2015/02/16 PHP
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
JavaScript instanceof 的使用方法示例介绍
2013/10/23 Javascript
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
js如何编写简单的ajax方法库
2017/08/02 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
[50:50]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第一场 12.10
2020/12/13 DOTA
用python读写excel的方法
2014/11/18 Python
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
Python的Django中将文件上传至七牛云存储的代码分享
2016/06/03 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
浅谈Python批处理文件夹中的txt文件
2019/03/11 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
Lands’ End官网:经典的美国生活方式品牌
2016/08/14 全球购物
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
函授本科自我鉴定
2013/11/03 职场文书
精彩的大学生自我评价
2013/11/17 职场文书
环境整治工作方案
2014/05/18 职场文书
2015年父亲节寄语
2015/03/23 职场文书
中秋节晚会开场白
2015/05/29 职场文书
小学教师见习总结
2015/06/23 职场文书
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis