munmap: Invalid argument. Bad file descriptor

458 views
Skip to first unread message

Marc Assin

unread,
Apr 4, 2016, 4:46:49 PM4/4/16
to OpenALPR

Hi,

Since a long time, I've a couple of errors when starting OpenAlpr.
Now, I suspect those errors to hinder a smooth running of the application
I checked the daemon.log file, I can't spot any error.
I've googled and seen a couple of posts, but they are about programming.

Any advice about the right approach to troubleshoot this problem ?

Config
======
brand new Raspberry Pi integrated cam

Console display
==============
pi@alpr:~ $ alprd -l 1 --config /etc/openalpr -f
INFO - Running OpenALPR daemon in the foreground.
INFO - Using: /etc/openalpr/alprd.conf for daemon configuration
INFO - Using: /home/pi/a-plate-capt/ for storing valid plate images
INFO - country: eu -- config file: /etc/openalpr/openalpr.conf
INFO - Stream 1: webcam
INFO - Starting camera 1
INFO - Video stream connecting...
/dev/video0 does not support memory mapping
munmap: Invalid argument
.
.
Unable to stop the stream.: Bad file descriptor
munmap: Invalid argument
.
.
INFO - Video stream connected
DEBUG - Writing plate 5721MJ9 (beausoleil-cam1-1459796237076) to queue.
WARN - Error connecting to Beanstalk.  Result has not been saved.

/etc/openalpr/alprd.conf
========================
[daemon]

; country determines the training dataset used for recognizing plates.  Valid values are: us, eu
country = eu

; text name identifier for this location
site_id = beausoleil

; Declare each stream on a separate line
; each unique stream should be defined as stream = [url]
; stream = webcam
stream = webcam

; topn is the number of possible plate character variations to report
topn = 1

; Determines whether images that contain plates should be stored to disk
store_plates = 1

; store_plates_location = /var/lib/openalpr/plateimages/
store_plates_location = /home/pi/a-plate-capt/

; upload address is the destination to POST to
upload_data = 0

; upload_address = http://10.0.1.184:9000/Push/
; 10.0.1.184 = RPI, 10.0.1.246 = NAS (webserver etc)


/etc/openalpr/openalpr.conf
===========================
; Specify the path to the runtime data directory
; runtime_dir = /usr/local/share/openalpr/runtime_data
runtime_dir = /usr/local/share/openalpr/runtime_data

ocr_img_size_percent = 1.33333333
state_id_img_size_percent = 2.0

; Calibrating your camera improves detection accuracy in cases where vehicle plates are captured at a steep angle
; Use the openalpr-utils-calibrate utility to calibrate your fixed camera to adjust for an angle
; Once done, update the prewarp config with the values obtained from the tool
prewarp =

; detection will ignore plates that are too large.
; This is a good efficiency technique to use if the  plates are going to be a fixed distance away from the camera 
; (e.g., you will never see plates that fill  up the entire image
max_plate_width_percent = 100
max_plate_height_percent = 100

; detection_iteration_increase is the percentage that the LBP frame increases each iteration.
; It must be greater than 1.0.  A value of 1.01 means increase by 1%, 1.10 increases it by 10% each time. 
; So a 1% increase would be ~10x slower than 10% to process, but it has a higher chance of landing 
; directly on the plate and getting a strong detection
detection_iteration_increase = 1.1

; The minimum detection strength determines how sure the detection algorithm must be before signaling that 
; a plate region exists.  Technically this corresponds to LBP nearest neighbors (e.g., how many detections 
; are clustered around the same area).  For example, 2 = very lenient, 9 = very strict.
detection_strictness = 3

; The detection doesn't necessarily need an extremely high resolution image in order to detect plates
; Using a smaller input image should still find the plates and will do it faster
; Tweaking the max_detection_input values will resize the input image if it is larger than these sizes 
; max_detection_input_width/height are specified in pixels

max_detection_input_width = 640
max_detection_input_height = 480

; detector is the technique used to find license plate regions in an image.  Value can be set to
; lbpcpu    - default LBP-based detector uses the system CPU  
; lbpgpu    - LBP-based detector that uses Nvidia GPU to increase recognition speed.
; lbpopencl - LBP-based detector that uses OpenCL GPU to increase recognition speed.  Requires OpenCV 3.0
; morphcpu  - Experimental detector that detects white rectangles in an image.  Does not require training.
detector = lbpcpu

; If set to true, all results must match a postprocess text pattern if a pattern is available.  
; If not, the result is disqualified. 
must_match_pattern = 0

; Bypasses plate detection.  If this is set to 1, the library assumes that each region provided is a likely plate area.
skip_detection = 0

max_plate_angle_degrees = 15

ocr_min_font_point = 6

; Minimum OCR confidence percent to consider.
postprocess_min_confidence = 75

; Any OCR character lower than this will also add an equally likely
; chance that the character is incorrect and will be skipped.  Value is a confidence percent
postprocess_confidence_skip_level = 80


debug_general         = 0
debug_timing          = 0
debug_detector        = 0
debug_state_id        = 0
debug_plate_lines     = 0
debug_plate_corners   = 0
debug_char_segment    = 0
debug_char_analysis   = 0
debug_color_filter    = 0
debug_ocr             = 0
debug_postprocess     = 0
debug_show_images     = 0
debug_pause_on_frame  = 0

Reply all
Reply to author
Forward
0 new messages