OpenCV4Android an cvblob

286 views
Skip to first unread message

dschaudel

unread,
Apr 11, 2012, 5:23:41 AM4/11/12
to android...@googlegroups.com
Hi,

has someone already used cvblob library http://code.google.com/p/cvblob/ with OpenCV4Android?
I've implemented a traffic sign detection and recognition system using cvblob to extract possible sign candidates.
I want to port my implementation to Android via NDK. I do not want to use the OpenCV4Android Java interface.

Best regards.

dschaudel

unread,
Apr 12, 2012, 9:14:29 AM4/12/12
to android...@googlegroups.com
Finally, cvblobs works with Android NDK! After a few tests with android toolchain and cross compilation I found a
very simple way to port cvblob to Android. I copied all .cpp and .h files from the src folder to the /jni folder of the Android NDK project
and modified the Android.mk

[..]
LOCAL_SRC_FILES := jni_part.cpp cvblob.cpp cvcolor.cpp cvcontour.cpp cvlabel.cpp cvaux.cpp cvtrack.cpp
[..]

and build works!
Unfortunately, after a few frames i get an libc error (Fatal signal 11 (SIGSEV) at 0xdeadbaad).
Possibly a memory error or something like that.

dschaudel

unread,
Apr 12, 2012, 9:32:14 AM4/12/12
to android...@googlegroups.com

dschaudel

unread,
Apr 12, 2012, 1:20:57 PM4/12/12
to android...@googlegroups.com
04-12 19:15:05.257: D/AndroidRuntime(5403): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
04-12 19:15:05.257: D/AndroidRuntime(5403): CheckJNI is OFF
04-12 19:15:05.398: D/AndroidRuntime(5403): Calling main entry com.android.commands.pm.Pm
04-12 19:15:05.484: D/AndroidRuntime(5403): Shutting down VM
04-12 19:15:05.484: D/dalvikvm(5403): GC_CONCURRENT freed 102K, 89% free 466K/4096K, paused 1ms+1ms
04-12 19:15:05.484: D/dalvikvm(5403): Debugger has detached; object registry had 1 entries
04-12 19:15:05.796: D/AndroidRuntime(5416): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
04-12 19:15:05.796: D/AndroidRuntime(5416): CheckJNI is OFF
04-12 19:15:05.945: D/AndroidRuntime(5416): Calling main entry com.android.commands.am.Am
04-12 19:15:05.945: I/ActivityManager(222): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=org.opencv.samples.tutorial3/.Sample3Native} from pid 5416
04-12 19:15:06.000: D/AndroidRuntime(5416): Shutting down VM
04-12 19:15:06.007: D/dalvikvm(5416): GC_CONCURRENT freed 102K, 89% free 487K/4096K, paused 1ms+1ms
04-12 19:15:06.007: D/jdwp(5416): Got wake-up signal, bailing out of select
04-12 19:15:06.007: D/dalvikvm(5416): Debugger has detached; object registry had 1 entries
04-12 19:15:06.007: I/AndroidRuntime(5416): NOTE: attach of thread 'Binder Thread #3' failed
04-12 19:15:06.015: D/dalvikvm(5426): Late-enabling CheckJNI
04-12 19:15:06.015: I/ActivityManager(222): Start proc org.opencv.samples.tutorial3 for activity org.opencv.samples.tutorial3/.Sample3Native: pid=5426 uid=10071 gids={1006, 1015}
04-12 19:15:06.046: I/InputReader(222): Reconfiguring input devices.  changes=0x00000004
04-12 19:15:06.046: I/InputReader(222): Device reconfigured: id=6, name='Melfas MMSxxx Touchscreen', surface size is now 720x1280, mode is 1
04-12 19:15:06.046: D/dalvikvm(135): GC_EXPLICIT freed 38K, 3% free 12613K/12995K, paused 2ms+3ms
04-12 19:15:06.078: D/dalvikvm(135): GC_EXPLICIT freed <1K, 3% free 12613K/12995K, paused 1ms+2ms
04-12 19:15:06.101: D/dalvikvm(135): GC_EXPLICIT freed <1K, 3% free 12613K/12995K, paused 2ms+2ms
04-12 19:15:06.132: I/ActivityManager(222): Config changed: {1.0 262mcc1mnc de_DE layoutdir=0 sw360dp w598dp h335dp nrml land finger -keyb/v/h -nav/h s.50}
04-12 19:15:06.140: D/OpenGLRenderer(4204): Flushing caches (mode 0)
04-12 19:15:06.148: D/OpenGLRenderer(300): Flushing caches (mode 0)
04-12 19:15:06.179: D/OpenGLRenderer(300): Flushing caches (mode 0)
04-12 19:15:06.195: I/Sample::Activity(5426): Instantiated new class org.opencv.samples.tutorial3.Sample3Native
04-12 19:15:06.195: I/Sample::Activity(5426): onCreate
04-12 19:15:06.195: D/dalvikvm(5426): Trying to load lib /data/data/org.opencv.samples.tutorial3/lib/libnative_sample.so 0x416b43e0
04-12 19:15:06.203: I/PowerWidget(300): Clearing any old widget stuffs
04-12 19:15:06.203: D/dalvikvm(5426): Added shared lib /data/data/org.opencv.samples.tutorial3/lib/libnative_sample.so 0x416b43e0
04-12 19:15:06.203: D/dalvikvm(5426): No JNI_OnLoad found in /data/data/org.opencv.samples.tutorial3/lib/libnative_sample.so 0x416b43e0, skipping init
04-12 19:15:06.203: I/Sample::SurfaceView(5426): Instantiated new class org.opencv.samples.tutorial3.Sample3View
04-12 19:15:06.203: I/PowerWidget(300): Setting up widget
04-12 19:15:06.203: I/PowerWidget(300): Default buttons being loaded
04-12 19:15:06.203: I/PowerWidget(300): Button list: toggleWifi|toggleBluetooth|toggleGPS|toggleSound
04-12 19:15:06.203: I/PowerWidget(300): Setting up button: toggleWifi
04-12 19:15:06.203: I/PowerWidget(300): Setting up button: toggleBluetooth
04-12 19:15:06.218: I/PowerWidget(300): Setting up button: toggleGPS
04-12 19:15:06.218: I/PowerWidget(300): Setting up button: toggleSound
04-12 19:15:06.281: D/dalvikvm(300): GC_CONCURRENT freed 842K, 52% free 15005K/30855K, paused 1ms+5ms
04-12 19:15:06.304: D/dalvikvm(222): GC_EXPLICIT freed 390K, 12% free 18655K/21063K, paused 1ms+12ms
04-12 19:15:06.335: D/OpenGLRenderer(4204): Flushing caches (mode 0)
04-12 19:15:06.375: D/OpenGLRenderer(4204): Flushing caches (mode 1)
04-12 19:15:06.390: I/Sample::SurfaceView(5426): surfaceCreated
04-12 19:15:06.390: I/CameraService(137): Opening camera 0
04-12 19:15:06.390: I/CameraHAL(137): camera_device open
04-12 19:15:06.429: E/TouchTypeSoftKeyboard(4324): Could not check for split layout
04-12 19:15:06.500: V/PhoneStatusBar(300): setLightsOn(true)
04-12 19:15:06.546: I/Process(222): Sending signal. PID: 5426 SIG: 3
04-12 19:15:06.546: I/dalvikvm(5426): threadid=3: reacting to signal 3
04-12 19:15:06.546: I/dalvikvm(5426): Wrote stack traces to '/data/anr/traces.txt'
04-12 19:15:06.570: I/AwesomePlayer(137): setDataSource_l('/system/media/audio/ui/camera_click.ogg')
04-12 19:15:06.585: E/OMXCodec(137): Attempting to allocate OMX node 'OMX.google.vorbis.decoder'
04-12 19:15:06.585: E/OMXCodec(137): Successfully allocated OMX node 'OMX.google.vorbis.decoder'
04-12 19:15:06.593: I/AwesomePlayer(137): setDataSource_l('/system/media/audio/ui/VideoRecord.ogg')
04-12 19:15:06.609: E/OMXCodec(137): Attempting to allocate OMX node 'OMX.google.vorbis.decoder'
04-12 19:15:06.609: E/OMXCodec(137): Successfully allocated OMX node 'OMX.google.vorbis.decoder'
04-12 19:15:06.609: I/Sample::SurfaceView(5426): surfaceCreated
04-12 19:15:06.609: I/Sample::SurfaceView(5426): Starting processing thread
04-12 19:15:06.632: D/dalvikvm(5426): GC_FOR_ALLOC freed 117K, 3% free 12675K/12995K, paused 10ms
04-12 19:15:06.632: I/dalvikvm-heap(5426): Grow heap (frag case) to 13.004MB for 518416-byte allocation
04-12 19:15:06.656: D/dalvikvm(5426): GC_CONCURRENT freed <1K, 3% free 13180K/13511K, paused 1ms+1ms
04-12 19:15:06.664: D/dalvikvm(5426): GC_FOR_ALLOC freed 0K, 3% free 13180K/13511K, paused 10ms
04-12 19:15:06.664: I/dalvikvm-heap(5426): Grow heap (frag case) to 13.499MB for 518416-byte allocation
04-12 19:15:06.687: D/dalvikvm(5426): GC_CONCURRENT freed 0K, 3% free 13686K/14023K, paused 1ms+1ms
04-12 19:15:06.695: D/dalvikvm(5426): GC_FOR_ALLOC freed <1K, 3% free 13686K/14023K, paused 9ms
04-12 19:15:06.695: I/dalvikvm-heap(5426): Grow heap (frag case) to 14.817MB for 1382416-byte allocation
04-12 19:15:06.703: D/dalvikvm(5426): GC_FOR_ALLOC freed <1K, 3% free 15036K/15431K, paused 9ms
04-12 19:15:06.718: D/dalvikvm(5426): GC_FOR_ALLOC freed <1K, 3% free 15036K/15431K, paused 9ms
04-12 19:15:06.718: I/dalvikvm-heap(5426): Grow heap (frag case) to 16.135MB for 1382416-byte allocation
04-12 19:15:06.726: D/dalvikvm(5426): GC_FOR_ALLOC freed 0K, 3% free 16386K/16839K, paused 9ms
04-12 19:15:06.742: D/dalvikvm(5426): GC_CONCURRENT freed 0K, 3% free 16387K/16839K, paused 1ms+1ms
04-12 19:15:07.046: I/Process(222): Sending signal. PID: 5426 SIG: 3
04-12 19:15:07.046: I/dalvikvm(5426): threadid=3: reacting to signal 3
04-12 19:15:07.046: I/dalvikvm(5426): Wrote stack traces to '/data/anr/traces.txt'
04-12 19:15:07.187: I/ActivityManager(222): Displayed org.opencv.samples.tutorial3/.Sample3Native: +1s196ms
04-12 19:15:07.210: D/(137): PPM: Standby to first shot: Sensor Change completed -  :483.368 ms :  1334250907220 ms
04-12 19:15:07.257: W/IInputConnectionWrapper(4204): showStatusIcon on inactive InputConnection
04-12 19:15:07.554: A/libc(5426): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
04-12 19:15:08.054: I/DEBUG(132): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
04-12 19:15:08.054: I/DEBUG(132): Build fingerprint: 'google/yakju/maguro:4.0.4/IMM76D/299849:user/release-keys'
04-12 19:15:08.054: I/DEBUG(132): pid: 5426, tid: 5455  >>> org.opencv.samples.tutorial3 <<<
04-12 19:15:08.054: I/DEBUG(132): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
04-12 19:15:08.054: I/DEBUG(132):  r0 01c49da8  r1 5b868ec0  r2 00000000  r3 00000000
04-12 19:15:08.054: I/DEBUG(132):  r4 000002d0  r5 0000007c  r6 5b868ec0  r7 5da10010
04-12 19:15:08.054: I/DEBUG(132):  r8 5d571010  r9 00000002  10 ffffffff  fp 0000000d
04-12 19:15:08.054: I/DEBUG(132):  ip 00000000  sp 5b98d078  lr 5b610825  pc 5b7b3784  cpsr 000f0010
04-12 19:15:08.054: I/DEBUG(132):  d0  5d57101000000000  d1  0000000000000000
04-12 19:15:08.054: I/DEBUG(132):  d2  0000000000000000  d3  0000000000000000
04-12 19:15:08.054: I/DEBUG(132):  d4  000001e0000002d0  d5  0000000000000000
04-12 19:15:08.054: I/DEBUG(132):  d6  41220aca00000000  d7  41220bea00000000
04-12 19:15:08.054: I/DEBUG(132):  d8  00000000000000a9  d9  0000000000000000
04-12 19:15:08.054: I/DEBUG(132):  d10 ffffffffffffffff  d11 0000000000000000
04-12 19:15:08.054: I/DEBUG(132):  d12 0000000000000000  d13 0000000000000000
04-12 19:15:08.054: I/DEBUG(132):  d14 0000000000000000  d15 0000000000000000
04-12 19:15:08.054: I/DEBUG(132):  d16 407e000000000000  d17 4330000000000000
04-12 19:15:08.054: I/DEBUG(132):  d18 3fd0000000000000  d19 0000000000000000
04-12 19:15:08.054: I/DEBUG(132):  d20 3ff0000000000000  d21 8000000000000000
04-12 19:15:08.054: I/DEBUG(132):  d22 0000000000000000  d23 0102030405060708
04-12 19:15:08.054: I/DEBUG(132):  d24 0080008000800080  d25 0080008000800080
04-12 19:15:08.054: I/DEBUG(132):  d26 f8f8f8f8f8f8f8f8  d27 f8f8f8f8f8f8f8f8
04-12 19:15:08.054: I/DEBUG(132):  d28 0000000000000000  d29 3ff0000000000000
04-12 19:15:08.054: I/DEBUG(132):  d30 0000000000000000  d31 3ff0000000000000
04-12 19:15:08.054: I/DEBUG(132):  scr 60000012
04-12 19:15:08.164: I/DEBUG(132):          #00  pc 00202784  /data/data/org.opencv.samples.tutorial3/lib/libnative_sample.so (_ZNSt15_List_node_base4hookEPS_)
04-12 19:15:08.164: I/DEBUG(132):          #01  pc 0005f822  /data/data/org.opencv.samples.tutorial3/lib/libnative_sample.so (cvLabel)
04-12 19:15:08.164: I/DEBUG(132): code around pc:
04-12 19:15:08.164: I/DEBUG(132): 5b7b3764 e8830006 e1a03002 1afffff9 e12fff1e  .....0......../.
04-12 19:15:08.164: I/DEBUG(132): 5b7b3774 e5913004 e880000a e5913004 e5810004  .0.......0......
04-12 19:15:08.164: I/DEBUG(132): 5b7b3784 e5830000 e12fff1e e890000c e5823004  ....../......0..
04-12 19:15:08.164: I/DEBUG(132): 5b7b3794 e5832000 e12fff1e e59f0004 e08f0000  . ..../.........
04-12 19:15:08.164: I/DEBUG(132): 5b7b37a4 e12fff1e 000887f0 e59f0004 e08f0000  ../.............
04-12 19:15:08.164: I/DEBUG(132): code around lr:
04-12 19:15:08.164: I/DEBUG(132): 5b610804 f1029d18 f8dd06a0 9c23b064 ecb8f1cd  ........d.#.....
04-12 19:15:08.164: I/DEBUG(132): 5b610814 f1104631 bf1c0f08 60839b1c efa8f1a2  1F.........`....
04-12 19:15:08.164: I/DEBUG(132): 5b610824 9a04e54c 42ab68d3 60d5bf38 9811e79d  L....h.B8..`....
04-12 19:15:08.164: I/DEBUG(132): 5b610834 bf024298 99049022 f43f9113 9812ae61  .B..".....?.a...
04-12 19:15:08.164: I/DEBUG(132): 5b610844 98176882 e008b90a 6911460a bf9a428b  .h.......F.i.B..
04-12 19:15:08.164: I/DEBUG(132): stack:
04-12 19:15:08.164: I/DEBUG(132):     5b98d038  000002b9  
04-12 19:15:08.164: I/DEBUG(132):     5b98d03c  0008c4c4  
04-12 19:15:08.164: I/DEBUG(132):     5b98d040  0000000c  
04-12 19:15:08.164: I/DEBUG(132):     5b98d044  5b868ec0  /data/data/org.opencv.samples.tutorial3/lib/libnative_sample.so
04-12 19:15:08.164: I/DEBUG(132):     5b98d048  5da10010  
04-12 19:15:08.164: I/DEBUG(132):     5b98d04c  5d571010  
04-12 19:15:08.164: I/DEBUG(132):     5b98d050  00000002  
04-12 19:15:08.164: I/DEBUG(132):     5b98d054  ffffffff  
04-12 19:15:08.164: I/DEBUG(132):     5b98d058  0000000d  
04-12 19:15:08.164: I/DEBUG(132):     5b98d05c  400ebf87  /system/lib/libc.so
04-12 19:15:08.164: I/DEBUG(132):     5b98d060  0008c4c4  
04-12 19:15:08.164: I/DEBUG(132):     5b98d064  5b7de1a0  /data/data/org.opencv.samples.tutorial3/lib/libnative_sample.so
04-12 19:15:08.164: I/DEBUG(132):     5b98d068  000002d0  
04-12 19:15:08.164: I/DEBUG(132):     5b98d06c  0000007c  
04-12 19:15:08.164: I/DEBUG(132):     5b98d070  df0027ad  
04-12 19:15:08.164: I/DEBUG(132):     5b98d074  00000000  
04-12 19:15:08.164: I/DEBUG(132): #01 5b98d078  5b98d708  
04-12 19:15:08.164: I/DEBUG(132):     5b98d07c  5b98d468  
04-12 19:15:08.164: I/DEBUG(132):     5b98d080  5b98d4a0  
04-12 19:15:08.164: I/DEBUG(132):     5b98d084  000001e0  
04-12 19:15:08.164: I/DEBUG(132):     5b98d088  5b868e20  /data/data/org.opencv.samples.tutorial3/lib/libnative_sample.so
04-12 19:15:08.164: I/DEBUG(132):     5b98d08c  000001e0  
04-12 19:15:08.164: I/DEBUG(132):     5b98d090  5b7e7258  /data/data/org.opencv.samples.tutorial3/lib/libnative_sample.so
04-12 19:15:08.164: I/DEBUG(132):     5b98d094  00000004  
04-12 19:15:08.164: I/DEBUG(132):     5b98d098  5da16380  
04-12 19:15:08.164: I/DEBUG(132):     5b98d09c  5d571010  
04-12 19:15:08.164: I/DEBUG(132):     5b98d0a0  000002d0  
04-12 19:15:08.164: I/DEBUG(132):     5b98d0a4  5da10010  
04-12 19:15:08.164: I/DEBUG(132):     5b98d0a8  0000064c  
04-12 19:15:08.164: I/DEBUG(132):     5b98d0ac  000001e0  
04-12 19:15:08.164: I/DEBUG(132):     5b98d0b0  5da1637c  
04-12 19:15:08.164: I/DEBUG(132):     5b98d0b4  5da16b00  
04-12 19:15:08.164: I/DEBUG(132):     5b98d0b8  5d57351d  
04-12 19:15:08.164: I/DEBUG(132):     5b98d0bc  ffffffff  
04-12 19:15:09.320: D/dalvikvm(222): GC_EXPLICIT freed 94K, 12% free 18609K/21063K, paused 2ms+5ms
04-12 19:15:09.601: I/BootReceiver(222): Copying /data/tombstones/tombstone_00 to DropBox (SYSTEM_TOMBSTONE)
04-12 19:15:09.617: E/CameraHAL(137): dequeueBuffer failed: Broken pipe (32)
04-12 19:15:09.617: E/CameraHAL(137): Adapter state switch PREVIEW_ACTIVE Invalid Op! event = 0xf
04-12 19:15:09.625: W/InputDispatcher(222): channel '41c10b38 org.opencv.samples.tutorial3/org.opencv.samples.tutorial3.Sample3Native (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
04-12 19:15:09.625: E/InputDispatcher(222): channel '41c10b38 org.opencv.samples.tutorial3/org.opencv.samples.tutorial3.Sample3Native (server)' ~ Channel is unrecoverably broken and will be disposed!
04-12 19:15:09.625: D/Zygote(135): Process 5426 terminated by signal (11)
04-12 19:15:09.640: E/CameraHAL(137): Invalid frameBuf
04-12 19:15:09.648: D/dalvikvm(222): GC_FOR_ALLOC freed 273K, 10% free 18958K/21063K, paused 44ms
04-12 19:15:09.656: I/WindowManager(222): WIN DEATH: Window{41c44eb0 SurfaceView paused=false}
04-12 19:15:09.656: I/ActivityManager(222): Process org.opencv.samples.tutorial3 (pid 5426) has died.
04-12 19:15:09.656: W/ActivityManager(222): Force removing ActivityRecord{41c0ece0 org.opencv.samples.tutorial3/.Sample3Native}: app died, no saved state
04-12 19:15:09.695: D/dalvikvm(222): GC_FOR_ALLOC freed 156K, 10% free 19023K/21063K, paused 42ms
04-12 19:15:09.695: W/InputDispatcher(222): Attempted to unregister already unregistered input channel '41c10b38 org.opencv.samples.tutorial3/org.opencv.samples.tutorial3.Sample3Native (server)'
04-12 19:15:09.695: I/WindowManager(222): WIN DEATH: Window{41c10b38 org.opencv.samples.tutorial3/org.opencv.samples.tutorial3.Sample3Native paused=false}
04-12 19:15:09.703: I/WindowManager(222): WINDOW DIED Window{41c10b38 org.opencv.samples.tutorial3/org.opencv.samples.tutorial3.Sample3Native paused=false}
04-12 19:15:09.710: E/CameraHAL(137): Adapter state switch INTIALIZED_STATE Invalid Op! event = 0x5


seems to be an error with cvlabel :/

dschaudel

unread,
Apr 13, 2012, 9:56:45 AM4/13/12
to android...@googlegroups.com
tried this with "tutorial-4-mixed" - no errors! ;-)
Reply all
Reply to author
Forward
0 new messages