Pages

Friday, August 18, 2017

Realtime depth estimation using monocular camera

Just for playing around, I did a small modification to the monodepth_simple.py from the github of CVPR 2017 paper "Unsupervised Monocular Depth Estimation with Left-Right Consistency" (original source code: https://github.com/mrharicot/monodepth), so that it takes input image directly from a camera. To retrieve images from the camera without losing much performance, I refer to the articles from here and here.

I used i7 6700K + Nvidia GTX 970 + Logicool webcam C910:


It appears that although the trained model was Kitti, which is quite different from the scene from my apartment window, it still worked to a certain extent. If you are interested, you can download the modification: monodepth_opencv3.py and a small utility for retrieving the image:util.py.

To run the modification, download the original code and the ready-to-use model by following the instruction from the original Author ( here ). Then copy monodepth_opencv3.py and util.py to the same folder as the monodepth_simple.py. Finally, execute:
$ python ./monodepth_opencv3.py --checkpoint_path ./model/model_kitti

Note that it requires Python 2.7, TensorFlow 1.x, OpenCV >= 2.4 (I used OpenCV 3.2), and of course, a camera.

That's all :) Updated 2022/2/9: I put the files monodepth_opencv3.py and util.py in https://github.com/chnd/monodepth. And beware, the codes tested using old version of libraries: Python 2.7., TensorFlow 1.x, OpenCV 3.2. That's all :)

Tuesday, August 15, 2017

TensorFlow: could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

When running the TensorFlow's object-detection model inference with my own dataset, I got the following error (with Nvidia GTX 970, CUDA 8, TensorFlow 1.2.1 through pip, and Ubuntu 16.04):
2017-08-15 21:18:06.254989: E tensorflow/stream_executor/cuda/cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR 2017-08-15 21:18:06.255027: E tensorflow/stream_executor/cuda/cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM 2017-08-15 21:18:06.255036: F tensorflow/core/kernels/conv_ops.cc:671] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
Solution from https://github.com/tensorflow/tensorflow/issues/6698, by enabling the GPU's allow_growth flag, solved my problem:
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
That's all :)