Cython——Windows环境下配置faster-rcnn、yolo、ctpn等目标检测框架中Cython文件[cython_nms、bbox、gpu_nms]编译问题解决方案
问题描述
- AttributeError: ‘MSVCCompiler’ object has no attribute ‘compiler_so’
- ValueError: Buffer dtype mismatch, expected ‘int_t’ but got 'long long
- ImportError: cannot import name ‘bbox’
- mv: 无法获取’utils/*’ 的文件状态(stat): No such file or directory
Cython fatal error C1083: 无法打开包括文件: “numpy/arrayobject.h”: No such file or directory
问题分析
这些文件在 Fast-RCNN 项目(https://github.com/rbgirshick/fast-rcnn/tree/master/lib/utils)已经被使用,而yolo、ctpn等目标检测框架继承或者使用了 Fast-RCNN 项目,导致出现都出现编译问题。
faster-rcnn、yolo、ctpn等目标检测框架均在Linux环境下开发,似乎没有考虑Windows的兼容性问题。
1.这个问题在win7上无解,无论怎么安装vs2015还是.net什么都没用,Windows10上是可以的,亲测有效;
2.np.int_t在Windows和Linux中可能大小并不相同(issues:https://github.com/eragonruan/text-detection-ctpn/issues/380)(针对第二个问题)
3.这个是纯编译问题,Windows7上貌似没办法编译。
4.编译完成会生成一个.so文件(Linux下的.so文件是基于Linux下的动态链接库),但是这个文件没法复制,在Windows上也无法使用,这也是为什么需要手动编译的原因。(针对第三个问题)
5.mv是Linux系统移动文件的指令(可参阅:https://www.runoob.com/linux/linux-comm-mv.html),所以这个问题Linux不会发生。(这个问题出现在make.sh文件中)(针对第四个问题)
6..compiler_so
字段仅存在于distutils.unixcompiler.UnixCCompiler
和派生中。因此,此程序包不支持标准的Windows构建环境。根据Windows上的“从源构建” | TensorFlow,应该使用MSYS2构建。(针对第一个问题)
Cython——[AttributeError: ‘MSVCCompiler‘ object has no attribute ‘compiler_so‘]解决方案
7.在Cython编译成c时,如果使用python库,需要包含相应的python库(针对第五个问题)
解决方案
一般方案
1. 针对make.sh文件的问题
可以修改成make.bat文件以支持Windows10
cython bbox.pyx
cython cython_nms.pyx
cython gpu_nms.pyx
python setup.py install
copy utils/* ./
del /s build
del /s utils
python setup.py build
python setup.py install
2.针对【AttributeError: ‘MSVCCompiler’ object has no attribute ‘compiler_so’】问题
Cython——[AttributeError: ‘MSVCCompiler‘ object has no attribute ‘compiler_so‘]解决方案
3.针对.so或者.pyd文件模型里import的代码名称不同问题
事实上,这并不需要重命名,只要将文件移动到对应位置(即/lib/utils/)即可。
4.针对【Cython fatal error C1083: 无法打开包括文件: “numpy/arrayobject.h”: No such file or directory】问题
添加 include_dirs=[np.get_include()]
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import numpy as npsetup(cmdclass={'build_ext': build_ext},ext_modules=[Extension('calculate', ['cythonfnS.pyx'])],include_dirs=[np.get_include()])
5.针对【ValueError: Buffer dtype mismatch, expected 'int_t' but got 'long long'】问题
issues:https://github.com/eragonruan/text-detection-ctpn/issues/380
将第25行或者第27行cython_nms.pyx中的np.int_t Replace >> np.int64_t
NOTICE: After makeing this change. You need to compile setup.py again
懒人方案
已经编译完成的文件(搬运)(缺少bbox.pyd)
https://github.com/liuxufenfeiya/win-cython_nms-bbox-
参考文章
win配置faster-rcnn、yolo、ctpn等目标检测的几个大坑
Cython——[AttributeError: ‘MSVCCompiler‘ object has no attribute ‘compiler_so‘]解决方案
Cython——Windows环境下配置faster-rcnn、yolo、ctpn等目标检测框架中Cython文件[cython_nms、bbox、gpu_nms]编译问题解决方案相关推荐
- Windows环境下配置环境变量
安装好MySQL后,在Windows环境下配置环境变量 1)新建MYSQL_HOME系统变量 配置MySQL的安装路径:C:\Program Files\MySQL\MySQL Server 8.0 ...
- 如何在 Windows 环境下配置 PHP 开发运行环境
我们都知道 PHP 运行需要的环境通常被称为 AMP. 其中 A 是 Apache 应用服务器,M 是 Mysql,P 就是 PHP 了. 实际上,很多人可能会使用一个测试 Mysql,但是针对一些小 ...
- 在windows环境下配置mongoDB集群
在windows环境下配置mongoDB集群 mongodb官网 官网分片文档 首先感谢这次参考的文章: mongodb搭建高可用分片集群示例-天才卧龙 MongoDB高可用集群搭建示例-lizh 配 ...
- Windows环境下配置Ceres(带suitesparse-metis)
1 配置环境与源代码包 环境 Windows>=8.1 Visual Studio>=2013 专业版x64 Cmake GUI>=3.13 Ceres-solver 1.14.0 ...
- Windows环境下配置php的curl扩展
在安装wordpress/ zen-cart / magento ,提示需要打开curl扩展,于是打开我的php.ini文件,找到";extension=php_curl.dll" ...
- 在windows环境下配置gitlab本地代码库
题外话:最近在从事一个NLP算法课题.因为我负责的模块偏重弄理论,更倾向于做为团队竞争力的技术储备,故而与其他模块的交流并不多.一个人做久了,发现欠下的技术债越来越多,要是不好好整理代码,之后的窟窿可 ...
- Ubuntu下配置、训练YOLO的全过程——无人机检测小系统
搞毕设做的在TX2上识别检测旋翼无人机,现在把环境配置和制作训练集的整个过程分享如下,也借鉴了网上很多教程网站一并附在本文最后. 本文主要阐述Ubuntu下配置.训练YOLO的全过程. 1 安装ubu ...
- Tomcat之Windows环境下配置多个服务器
在应对多项目多端口的情况配置一个服务器是远不能满足开发条件的.例如微信公众号回调域名只接受80端口,而其他项目一般为默认的8080或者自定义的其他的端口. 废话多说,直入主题 准备条件:tomcat文 ...
- easy php moodle,Windows 环境下配置easyphp+moodle方法及设置外部IP访问方法
安装有很多方法,最简单的方法就是easyphp+moodle,具体方法如下: 1.准备好安装必须的软件,包括easyphp和moodle.easyphp到http://easyphp.org/下载,m ...
最新文章
- mysql buffer size_优化mysql之key_buffer_size设置
- 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 获取要注入事件的 View 对象 | 通过反射获取 View 组件的事件设置方法 )
- springboot(七):springboot+mybatis多数据源最简解决方案
- Gossip协议详解
- confluent connect写出到ES及ClickHouse
- CPPUnit 测试宏
- 【codeforces 709C】Letters Cyclic Shift
- 大智慧公式系统:条件选股之基本技巧
- Unity 3D项目 - 02 - 角色动画应用
- 9种缺陷管理工具对比Bugzilla、testRail、TestLink、redmine、禅道、CODING、jira、TAPD、PingCode
- Problem G: 小勇学分数
- CF 1467 C. Three Bags
- CentOS7如何升级ruby版本
- 超图导入ArcGIS数据文件
- Qml控件之Calendar日历
- Android定位功能(二)
- babylon-gui文档笔记
- 计算机在职研究生分数,在职研究生复试录取分数线-在职研招网-在职研究生招生信息网...
- 一维元胞自动机生命游戏
- ubuntu16.04下源码安装arachni扫描器
热门文章
- POJ 3621 Sightseeing Cows
- java nep_Java 9 揭秘(1. 入门介绍)
- linux搭建环境经验,经验总结54--搭建linux虚拟机环境
- arduinohanshu_Arduino 常用函数参考文档
- cesium js 路径_Cesium开发学习路径
- debian架设php,Debian 下搭建php-fastcgi方式,nginx
- java中方法的具体化_我为什么要关心Java没有具体化的泛型?
- 搜狗皮肤php怎么转换,如何给搜狗输入法更换皮肤和输入方式
- 北京内推 | 阿里云视频处理算法团队招聘视频处理算法实习生
- 杭州内推 | 阿里云开发者社区招聘计算机视觉算法工程师(2022年毕业生)