在windows下用python调用darknet的yolo接口
0,目标
本人计算机环境:windows7 64位,安装了vs2015专业版,python3.5.2,cygwin,opencv3.3,无gpu
希望实现用python调用yolo函数,实现物体检测。
1,踩过的坑
一开始下载了github上最热的开源项目https://github.com/pjreddie/darknet
采用cygwin编译,make后生成了darknet.exe, libdarknet.so和libdarknet.a。
在windows命令行采用darknet.exe,加上参数运行图片中的物体检测,一切OK,一切看起来如此美好。
然而,当我运行darknet.py时,始终无法正常运行。

如果在cygwin下运行,就报错segmentation fault 。
就此问题纠结了一周左右,深刻反省之余在github上偶然发现有个发行版号称“Windows and Linux version of Darknet Yolo v3 & v2 Neural Networks for object detection”
是上述正统发行版的一个Fork。哈哈,有救了。
2,windows乞丐配置如何编译EXE和DLL?
从https://github.com/AlexeyAB/darknet网站下载源码,分别编译exe和dll文件。
编译exe。打开darknet_no_gpu.sln,按照其中有opencv,无gpu的配置方法,在vs2015中对一些路径进行修改,然后编译,生成exe。测试运行正常!
编译dll。 打开yolo_cpp_dll_no_gpu.sln,删除属性中有关cuda的特性(以符合乞丐版的特性@^@),然后编译,生成dll。
此处需注意,有可能编译报错“无法运行rc.exe”。此时请参考下文解决:
https://stackoverflow.com/questions/14372706/visual-studio-cant-build-due-to-rc-exe
3,windows乞丐配置也能跑darknet.py?
是的。有了DLL,darknet.py调用库中的函数都正常了。如下图所示。
可见,.so文件在windows运行环境下,在python中调用会失败,必须是.dll文件windows才能正常加载。
《完》

在windows下用python调用darknet的yolo接口的更多相关文章
- 【转】linux和windows下安装python集成开发环境及其python包
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- windows下安装python模块
如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...
- windows下安装python和依赖包的利器——Anaconda
在windows下安装python和很多依赖包,安装起来略为痛苦,可以使用python的大整合包——Anaconda Anaconda下载地址: http://continuum.io/downloa ...
- 详细介绍windows下使用python pylot进行网站压力测试
windows下使用python进行网站压力测试,有两个必不可少的程序需要安装,一个是python,另一个是pylot.python是一个安装软件,用来运行python程序,而pylot则是pytho ...
- windows下创建Python虚拟环境
windows下创建Python虚拟环境 说明 由于Python的版本众多,还有Python2和Python3的争论,因此有些软件包或第三方库就容易出现版本不兼容的问题. 通过 virtualenv ...
- Windows下的Python安装与环境变量的配置
Windows下的Python安装与环境变量的配置 第一步:python下载: Python安装包下载地址:http://www.python.org/ 第二步:python安装: 双击下载包,进入P ...
- Windows下安装Python虚拟环境
Windows下安装Python虚拟环境 虚拟环境安装 需求概要 "虚拟环境"是从电脑独立开辟出来的环境.就好比我们生活中的橱柜中,会把酱油放在一个瓶子里,把醋放在另外一个瓶子里, ...
- Windows下安装python的scipy等科学计算包(转)
如果要使用python进行科学计算.数据分析等,一定要安装scipy.seaborn.numpy等等包. 但Windows下安装python的第三方库经常会出现问题.此前,已介绍过Windows下如何 ...
- windows下搭建python
windows下搭建python 下载python版本 https://www.python.org/ 注意当前操作系统的位数,32位还是64位 同时 安装后 修改环境变量 ...
随机推荐
- 命题作文:在一棵IPv4地址树中彻底理解IP路由表的各种查找过程
这是一篇命题作文.近期一直想写点东西,但一直找不到题目.正好收到一封邮件,有人问我Linux路由表的布局问题以及路由缓存的问题,加之前些日子又帮人做了一个片上路由表,所以认为这是个好题目,索性花了多半 ...
- 【iOS系列】-autorelease的作用
内存管理原则(配对原则):只要出现了new,alloc,retain方法,就要配对出现release,autorelease 1:对象存入到自动释放池中,当这个池子被销毁的时候他会对池子中所有的对 ...
- 小贝_mysql优化学习
mysql优化 简要: 1.数据库设计优化 2.sql语句优化 3.表切割 4.读写分离技术 一.数据库设计优化 1.表设计要符合三范式.当然,有时也须要适当的逆范式 2.什么是三范式 一范式: 具有 ...
- EJB3.0
由于EJB2.0的复杂性,在Spring和Hibernate[1] 等轻量级框架出现后,大量的用户转向应用轻量级框架.在大家的呼声中, EJB 期待已久的EJB3.0规范终于发布了.在本文中将对新的 ...
- leetcode 660. Remove 9
Start from integer 1, remove any integer that contains 9 such as 9, 19, 29... So now, you will have ...
- hta+vbs+js+div+css (javascript是原生态的)
talbe是javascript动态生成的,根据你的sql语句来的,分页是vbs用数组来造的轮子,vbs这脚本虽然强大,却没有返回数据集的东东,数组来做简单的分页还是比较简单的,批量跟新呢?是上传ex ...
- UI:SQL语句
sql语句一般不区分大小写,但是我们默认的是关键字要大写是一种好的习惯,比如SELECT 等效于 select.,但是表中的字段,属性区分大小写.Oracle 数据库是一种区分大小写的. Sql语句命 ...
- Linux下 SSH远程管理服务
第1章 SSH基本概述 1.1 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定 在进 ...
- bzoj 3308: 九月的咖啡店【最大费用最大流】
费用流里spfa最后的判断要写成dis[t]>=0而不是dis[t]!=-inf否则会WAWAWA-- #include<iostream> #include<cstdio&g ...
- bzoj 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛【dp】
设f[i]为i为牡牛的方案数,f[0]=1,s为f的前缀和,f[i]=s[max(i-k-1,0)] #include<iostream> #include<cstdio> u ...