text-detection-ctpn
text-detection-ctpn copied to clipboard
Running with CPU only
Hello everyone, it is the first time I could successfully run a demo. Many thanks to the author.
To use cpu only, I follow the author's instruction and make the following modifications: (1) Set "USE_GPU_NMS " in the file ./ctpn/text.yml as "False" (2) Set the "__C.USE_GPU_NMS" in the file ./lib/fast_rcnn/config.py as "False"; (3) Comment out the line "from lib.utils.gpu_nms import gpu_nms" in the file ./lib/fast_rcnn/nms_wrapper.py; (4) To rebuild the setup.py:
The author provides the new code of setup.py for cpu only:
from Cython.Build import cythonize import numpy as np from distutils.core import setup
try: numpy_include = np.get_include() except AttributeError: numpy_include = np.get_numpy_include()
setup( ext_modules=cythonize(["bbox.pyx","cython_nms.pyx"],include_dirs=[numpy_include]), )
(a) execute export CFLAGS=-I/home/zhao181/ProGram1/anaconda2/lib/python2.7/site-packages/numpy/core/include you should use your own numpy path.
(b) cd xxx/text-detection-ctpn-master/lib/utils and execute:python setup.py build
(c) copy the .so file from the "build" directory to the
xxx/text-detection-ctpn-master/lib/utils.
(5) cd xxx/text-detection-ctpn-master and execute: python ./ctpn/demo.py
By the way, I am running under ubuntu 16.04 with Anaconda2-4.2.0-Linux-x86_64.sh and tensorflow-1.3.0-cp27-cp27mu-manylinux1_x86_64.whl(cpu).
Thanks for the sharing.
hello, i try to run code on cpu, when i change code according like you, it caused like below:
i have enough 17G RAM and i do not kmow what happened @zhao181 @eragonruan
Guys , I am trying to run the code on Raspberry Pi 3, I have tensorflow 1.3 installed and have configured the script to use CPU only, but I get the following error when the script demo.py is executed.
** Tensor("Placeholder:0", shape=(?, ?, ?, 3), dtype=float32) Tensor("conv5_3/conv5_3:0", shape=(?, ?, ?, 512), dtype=float32) Tensor("rpn_conv/3x3/rpn_conv/3x3:0", shape=(?, ?, ?, 512), dtype=float32) WARNING:tensorflow:<tensorflow.python.ops.rnn_cell_impl.BasicLSTMCell object at 0x6fe17ff0>: Using a concatenated state is slower and will soon be deprecated. Use state_is_tuple=True. Tensor("lstm_o/Reshape:0", shape=(?, ?, ?, 128), dtype=float32) Tensor("lstm_o/Reshape:0", shape=(?, ?, ?, 128), dtype=float32) Tensor("rpn_cls_score/Reshape:0", shape=(?, ?, ?, 20), dtype=float32) Tensor("rpn_cls_prob:0", shape=(?, ?, ?, ?), dtype=float32) Tensor("Reshape_5:0", shape=(?, ?, ?, 20), dtype=float32) Tensor("rpn_bbox_pred/Reshape:0", shape=(?, ?, ?, 40), dtype=float32) Tensor("Placeholder_1:0", shape=(?, 3), dtype=float32) Loading network VGGnet_test... Restoring from checkpoints/VGGnet_fast_rcnn_iter_50000.ckpt... done
terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Aborted **
I have narrowed down the cause of error to a line 53 in test.py
rois = sess.run([net.get_output('rois')[0]],feed_dict=feed_dict)
I there is any information missing please do ask. Thanks
I remember that, before I fix the code, there are errors occurring here too. But I forget the details and the solutions.
发自网易邮箱大师
On 12/2/2017 18:09,zunair11[email protected] wrote:
Guys , I am trying to run the code on Raspberry Pi 3, I have tensorflow 1.3 installed and have configured the script to use CPU only, but I get the following error when the script demo.py is executed.
Tensor("Placeholder:0", shape=(?, ?, ?, 3), dtype=float32) Tensor("conv5_3/conv5_3:0", shape=(?, ?, ?, 512), dtype=float32) Tensor("rpn_conv/3x3/rpn_conv/3x3:0", shape=(?, ?, ?, 512), dtype=float32) WARNING:tensorflow:<tensorflow.python.ops.rnn_cell_impl.BasicLSTMCell object at 0x6fe17ff0>: Using a concatenated state is slower and will soon be deprecated. Use state_is_tuple=True. Tensor("lstm_o/Reshape:0", shape=(?, ?, ?, 128), dtype=float32) Tensor("lstm_o/Reshape:0", shape=(?, ?, ?, 128), dtype=float32) Tensor("rpn_cls_score/Reshape:0", shape=(?, ?, ?, 20), dtype=float32) Tensor("rpn_cls_prob:0", shape=(?, ?, ?, ?), dtype=float32) Tensor("Reshape_5:0", shape=(?, ?, ?, 20), dtype=float32) Tensor("rpn_bbox_pred/Reshape:0", shape=(?, ?, ?, 40), dtype=float32) Tensor("Placeholder_1:0", shape=(?, 3), dtype=float32) Loading network VGGnet_test... Restoring from checkpoints/VGGnet_fast_rcnn_iter_50000.ckpt... done 1 terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Aborted
I have narrowed down the cause of error to a line 53 in test.py rois = sess.run([net.get_output('rois')[0]],feed_dict=feed_dict)
I there is any information missing please do ask. Thanks
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
Yes I got the same problem "Segmentation fault (core dumped)" . Have you fixed it?
发自网易邮箱大师
On 11/29/2017 14:32,cjt222[email protected] wrote:
hello, i try to run code on cpu, but it caused like below:
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
@zunair11 your device may not have sufficient memory to run the code
@zhao181 I have follow your steps, but there always with problems:
➜ utils git:(master) ✗ ./make.sh
Traceback (most recent call last):
File "setup.py", line 39, in <module>
CUDA = locate_cuda()
File "setup.py", line 26, in locate_cuda
raise EnvironmentError('The nvcc binary could not be '
OSError: The nvcc binary could not be located in your $PATH. Either add it to your path, or set $CUDAHOME
mv: rename utils/* to ./*: No such file or directory
And i found the code in lib/utils/setup.py:
CUDA = locate_cuda()
This block code will always exec.
Thanks.
It seems that you are using a gpu. I run the code only with cpu. I did not run make.sh since I follow the author's instruction and modified the setup.py to compile a cpu support.
发自网易邮箱大师
On 12/4/2017 16:23,David 大伟[email protected] wrote:
@zhao181 I have follow your steps, but there always with problems:
➜ utils git:(master) ✗ ./make.sh
Traceback (most recent call last):
File "setup.py", line 39, in
and i found the code in lib/utils/setup.py:
CUDA= locate_cuda()
This block code will always exec.
Thanks.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
@zhao181
Got it. Thanks a lot.
@eragonruan I am monitoring the Raspberry Pi resource monitor the ram consumption is shown to be 250 ish MB out of 1 Gigs before the "bad alloc" error is encountered. Do you recommend any work around or is this a dead end for Raspberry Pi's capabilities
Exec with CPU success, but some difference. Hope help people in need.
My Sys Env:
- Mac os 10.13.1
- Python3.6.2
- Tensorflow 1.3
For CPU only, here is my setup.py
from Cython.Build import cythonize
import numpy as np
from distutils.core import setup
from distutils.extension import Extension
try:
numpy_include = np.get_include()
except AttributeError:
numpy_include = np.get_numpy_include()
ext_modules = [
Extension(
'bbox',
sources=['bbox.c'],
include_dirs = [numpy_include]
),
Extension(
'cython_nms',
sources=['cython_nms.c'],
)
]
setup(
ext_modules=ext_modules
)
When execd command python setup.py build, there was new directory build have be created,
and copy build/bbox.cpython-36m-darwin.so and build/cython_nms.cpython-36m-darwin.so file to utils.
@zunair11 the code need about 1.5G memory.
When I execute CPU only setup.py file, I get following error: SystemExit: usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: setup.py --help [cmd1 cmd2 ...] or: setup.py --help-commands or: setup.py cmd --help
error: no commands supplied Can you please help me?
@guddulrk python setup.py build_ext --inplace
When I run python setup.py build_ext --inplace it shows me an invalid syntax error.
Any help please
When I run pip setup.py build, it appears this error: unable to find vcvarsall.bat. Should I install the vs for c++ first?
You should run: python setup.py build_ext --include-dirs={your-numpy-include-path} for example my path is: C:\ProgramData\Anaconda3\Lib\site-packages\numpy\core\include
so: python setup.py build_ext --include-dirs=C:\ProgramData\Anaconda3\Lib\site-packages\numpy\core\include
and then you will find the .lib files in "./build/temp.win-amd64-3.6/Release" On my PC, the .lib file is "cython_nms.cp36-win_amd64.lib" and "bbox.cp36-win_amd64.lib", you should rename it properly.
On 12/7/2017 12:06,guddulrk[email protected] wrote:
When I run python setup.py build_ext --inplace it shows me an invalid syntax error.
Any help please
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
Thanks, but still I am getting the same error. Any solution, please
@guddulrk @Guo-king if your are using windows, use nms and bbox implemented in pure python instead, you have to modify some import
(1) I use the python command to build the setup.py, like this: python setup.py build_ext --include-dirs=C:\ProgramData\Anaconda3\Lib\site-packages\numpy\core\include I do not know what it will response if pip command is used.
(2) you should add your vcvarsall.bat path to the enviroments variables. Generally, if you have visual studio on your machine, the vcvarsall.bat file exists. For many machine, I have vs2013 and vs2015. There all three path for vcvarsall.bat, respectively: You can follow this figure to config your own machine.
(3)Still I am not sure which vcvarsall.bat will be used, so if I want to use VS140COMNTOOLS, I will firstly execute the following command: "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat", after switching to the setup.py directory and before building the setup.py,
On 12/7/2017 14:48,Guo-king[email protected] wrote:
When I run pip setup.py build, it appears this error: unable to find vcvarsall.bat. Should I install the vs for c++ first?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
@zhao181 @eragonruan Thank you for your kindly help. I will try again.
When I start running this program I get the following crash on windows 7: Problem Event Name: BEX64 Application Name: pythonw.exe Application Version: 3.5.2150.1013 Application Timestamp: 577be341 Fault Module Name: StackHash_1dc2
All other programs in python are running successfully. Anyone who met with this problem. Please help in the solution. Thanks
I tried a lot of ways. but always got "cannot import name 'bbox'". come from xxx/lib/utils/init.py anyone can help?please. no GPU python3.5
@zhao181 I tried your steps, I got problems of this step:
cd xxx/text-detection-ctpn-master/lib/utils and execute:python setup.py build
Traceback (most recent call last): File "setup_cpu_only_a.py", line 11, in <module> ext_modules=cythonize(["bbox.pyx","cython_nms.pyx"],include_dirs=[numpy_include]), File "/usr/local/lib/python2.7/dist-packages/Cython/Build/Dependencies.py", line 909, in cythonize c_options = CompilationOptions(**options) File "/usr/local/lib/python2.7/dist-packages/Cython/Compiler/Main.py", line 559, in __init__ raise ValueError(message) ValueError: got unknown compilation option, please remove: include_dirs
this is my setup.py: `from Cython.Build import cythonize import numpy as np from distutils.core import setup
try: numpy_include = np.get_include() except AttributeError: numpy_include = np.get_numpy_include()
setup( ext_modules=cythonize(["bbox.pyx","cython_nms.pyx"],include_dirs=[numpy_include]), )`
How can i resolve it ? thanks.
I followed @struCoder , resolved it .
Dev Environment Tensorflow-1.3 Python-3.6 cython-0.24
CPU Setting: (1) Set "USE_GPU_NMS " in the file ./ctpn/text.yml as "False" (2) Set the "__C.USE_GPU_NMS" in the file ./lib/fast_rcnn/config.py as "False"; (3) Comment out the line "from lib.utils.gpu_nms import gpu_nms" in the file ./lib/fast_rcnn/nms_wrapper.py; (4) To rebuild the setup.py in path "[path]/text-detection-ctpn/lib/utils/setup.py": (5) cd xxx/text-detection-ctpn-master/lib/utils and execute:python setup.py build (6) copy the .so file from the "build" directory to the xxx/text-detection-ctpn-master/lib/utils. (7) cd xxx/text-detection-ctpn-master and execute: python ./ctpn/demo.py
ps: no need to set env variable "CFLAGS"
you may also need to modify some python file, just follow the error, it is pretty straight-forward
setup.py is like blow:
from Cython.Build import cythonize
import numpy as np
from distutils.core import setup
from distutils.extension import Extension
try:
numpy_include = np.get_include()
except AttributeError:
numpy_include = np.get_numpy_include()
ext_modules = [
Extension(
'bbox',
sources=['bbox.c'],
include_dirs = [numpy_include]
),
Extension(
'cython_nms',
sources=['cython_nms.c'],
include_dirs = [numpy_include]
)
]
setup(
ext_modules=ext_modules
)
Thank you for you kindly ways, and i have tried it.
however, when i execute: python ./ctpn/demo.py a problem below occured:
File "/home/aigo/Desktop/text-detection-ctpn-master/lib/utils/init.py", line 6, in
i have solved it by comment "from . import gpu_nms" in file above, maybe you can make your steps more complete.
@struCoder My Environment:
- Mac 10.13.3
- TensorFlow 1.5.0
- Cython 0.26.1
- Python 2.7.14
got errors
python setup.py build
......
35 warnings generated.
/usr/bin/gcc -bundle -undefined dynamic_lookup -L/Users/zhangxin/anaconda2/lib -arch x86_64 /Users/zhangxin/anaconda2/lib/python2.7/site-packages/numpy/core/include -arch x86_64 build/temp.macosx-10.6-x86_64-2.7/bbox.o -L/Users/zhangxin/anaconda2/lib -o build/lib.macosx-10.6-x86_64-2.7/bbox.so
ld: can't map file, errno=22 file '/Users/zhangxin/anaconda2/lib/python2.7/site-packages/numpy/core/include' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command '/usr/bin/gcc' failed with exit status 1
How to solve it
@ZhangXinNan You can try With Python 3.6 version.
@struCoder the same error
34 warnings generated.
/usr/bin/gcc -bundle -undefined dynamic_lookup -L/Users/zhangxin/anaconda2/envs/venv_py3/lib -arch x86_64 -L/Users/zhangxin/anaconda2/envs/venv_py3/lib -arch x86_64 /Users/zhangxin/anaconda2/envs/venv_py3/lib/python3.5/site-packages/numpy/core/include -arch x86_64 build/temp.macosx-10.6-x86_64-3.5/bbox.o -L/Users/zhangxin/anaconda2/envs/venv_py3/lib -o /Users/zhangxin/github/text-detection-ctpn/lib/utils/bbox.cpython-35m-darwin.so
ld: can't map file, errno=22 file '/Users/zhangxin/anaconda2/envs/venv_py3/lib/python3.5/site-packages/numpy/core/include' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command '/usr/bin/gcc' failed with exit status 1
today, I uninstall python which brew install
brew uninstall python
then comment from . import gpu_nms in lib/utils/init.py ,
excute python setup.py build successfully.
If you want to try CPU mode, please test my branch ZhangXinNan/text-detection-ctpn/tree/zxdev_mac
@zhao181 @eragonruan @struCoder