对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 相关文章推荐
pyramid配置session的方法教程
Nov 27 Python
基于Python的身份证号码自动生成程序
Aug 15 Python
Python多线程和队列操作实例
Jun 21 Python
python 用lambda函数替换for循环的方法
Jun 09 Python
python random从集合中随机选择元素的方法
Jan 23 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
Mar 14 Python
Python3.7 新特性之dataclass装饰器
May 27 Python
python 实现手机自动拨打电话的方法(通话压力测试)
Aug 08 Python
python将字典列表导出为Excel文件的方法
Sep 02 Python
Tensorflow 实现分批量读取数据
Jan 04 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
Oct 14 Python
python基于openpyxl生成excel文件
Dec 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
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
基于node.js的快速开发透明代理
2010/12/25 Javascript
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
[58:23]LGD vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
从零学Python之入门(五)缩进和选择
2014/05/27 Python
Python深入学习之对象的属性
2014/08/31 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
浅析python继承与多重继承
2018/09/13 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
餐馆开业致辞
2015/08/01 职场文书