2010年11月17日 星期三

Real-Time Object Detection by Stefan Hintersser running on linux Intel X86

Computer Version is an interesting topic, I found an implementation of real-time object detection which is really work on my linux X86.

Stefan Hintersser home page
http://campar.in.tum.de/Main/StefanHinterstoisser

Document
http://campar.in.tum.de/personal/hinterst/index/project/CVPR10.pdf

Although the author says it can work on linux but not really tested.
Now, let's do some fix to get it work.

1.Download and install source code and all necessary libraries

Source code
http://campar.in.tum.de/personal/hinterst/index/downloads.html

OpenCV

ESM
ftp://ftp-sop.inria.fr/evolution/malis/software/ESM/ESMkitLin_0_4.tar.gz
Install in
$DOT_vs_1.0/resources/ESM/ESMkitLin

Intel IPP
I'm running with Intel IPP 6.0.1.071. it installed in /opt

1.Create Makefile

CC=gcc
AR=ar

CFLAGS=-Wall -O3 -funroll-loops -msse2 -I./include -I/usr/include/opencv -I/opt/intel/ipp/6.0.1.071/ia32/include -I./resources/ESM/ESMkitLin/inc
LDFLAGS=-L/opt/intel/ipp/6.0.1.071/ia32/lib -lcv -lcvaux -lhighgui -lcxcore -lippcvmerged -lippmemerged -lippmmerged -lippccmerged -lipprmerged -lippiemerged -lippimerged -lippsemerged -lippsmerged -lippsrmerged -lippcore -lm

LIBS=src/cv_camera.o src/cv_utilities.o src/cv_esm.o

%.o : %.cc
        $(CC) -c $(CFLAGS) $< -o $@

all : main_dot2D main_dot3D

main_dot2D : ${LIBS} src/main_dot2D.o
        ${CC} -o $@ ${LIBS} src/main_dot2D.o ${LDFLAGS} resources/ESM/ESMkitLin/lib/ESMlib.a

main_dot3D : ${LIBS} src/main_dot3D.o
        ${CC} -o $@ ${LIBS} src/main_dot3D.o ${LDFLAGS} resources/ESM/ESMkitLin/lib/ESMlib.a

clean :
        rm -rf src/*.o

2.Then make.
After successful compile and link
run ./main_dot2D

The program almost eating all CPU resource and window shows nothing.
I found the camera frame rate seems too high (90 fps !!!)
So I try to reduce the frame rate by change

        int l_key = cvWaitKey(1);

to

        int l_key = cvWaitKey(60);

Now it's worked ...








 

2 則留言:

  1. Did you managed to run main_dot3D?
    [版主回覆05/13/2011 01:37:03]Yes, main_dot3D also works

    回覆刪除
  2. Hello, I tried a few days ago and found that the ESM library is not directly compatible with opencv programs because it's a C library and opencv produces C++ executables. Therefore it is mandatory to add the following in cv_esm.h: extern "C" { #include "EMSlibry.h" } thank you for your guide

    回覆刪除