对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 + mongodb)
Dec 25 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
基于数据归一化以及Python实现方式
Jul 11 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
Jan 22 Python
使用PIL(Python-Imaging)反转图像的颜色方法
Jan 24 Python
python 返回一个列表中第二大的数方法
Jul 09 Python
关于pymysql模块的使用以及代码详解
Sep 01 Python
Python @property使用方法解析
Sep 17 Python
Python小白垃圾回收机制入门
Jun 09 Python
Python爬虫爬取博客实现可视化过程解析
Jun 29 Python
Python实现Canny及Hough算法代码实例解析
Aug 06 Python
如何创建一个Flask项目并进行简单配置
Nov 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
第4章 数据处理-php字符串的处理-郑阿奇(续)
2011/07/04 PHP
学习php设计模式 php实现单例模式(singleton)
2015/12/07 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
15个jquery常用方法、小技巧分享
2015/01/13 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
2016/01/04 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
web.js.字符串与正则表达式操作
2017/05/13 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
vue实现分页栏效果
2019/06/28 Javascript
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
使用Flask集成bootstrap的方法
2018/07/24 Python
python3中property使用方法详解
2019/04/23 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
django中使用POST方法获取POST数据
2019/08/20 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
介绍一下sql server的安全性
2014/08/10 面试题
什么时候用assert
2015/05/08 面试题
数控技术学生的自我评价
2014/02/15 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
民主评议政风行风活动心得体会
2014/10/29 职场文书
十岁生日答谢词
2015/01/05 职场文书
小班教师个人总结
2015/02/05 职场文书
毕业证明模板
2015/06/19 职场文书
父亲节感言
2015/08/03 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
2022/09/23 MySQL