Testing a Bosch IP camera (DINION IP 5000i IR)

There are several Bosch IP cameras: in general you can search for a specific model from Security and Safety Systems North America (or Security and Safety Systems Italy if you live in my country) where there is a link product selector) thet allows you also to compare different models.

I tested the camera NBE-5503-AL DINION IP 5000i IR and in the following you can find some information that can be useful to better know how it works and how it can be configured. Its data sheet can be downloaded here: DINION IP 5000i Data sheet.

The specification of the Video Surveillance Devices and Sensors Bosch DINION IP 5000i IR can be found in  Dinion IP Cameras – Bosch Security Systems where you can find the features of the NBE-5503-AL DINION IP 5000i IR remote devices too.

In the NBE-5503-AL Bullet 5MP HDR 2.7-12mm auto IP67 IK10 product page, you can find documents and SW: even though the name of the model is a bit different (possibly because it is the US site) this is the only site where I was able to find specific information on that product. In particular, you can find here, in the SW tab, the latest firmware update (currently ver.  6.43.0027) that it is better you install if, as it was in my case, the one available on the camera was an old one: the update procedure can be done, sor example, using the Configuration Manager application.

In the following you can get some useful documents related to that camera: strangely, some of them I found searching in Internet, have a more recent version respect those available from that product page, … so they should be more updated.

Related to the Camera browsing interface:

The useful SW, you should download, is the following:

Note that, even though you can see the camera stream and interact with it from any browser, once you know its IP address (e.g. https://192.168.1.2/view.htm?mode=l that can be found also on the top right of the Configuration Manager application when the camera is discovered on the same subnetwork, the better way of interaction is using the Configuration Manager you can download from the Bosch Security Systems DownloadStore.

Once you know the IP address of the camera, you could even use what ever SW that allows to get a video stream, like VLC, as you can see from the following screenshots. Note that the protocol to be used for the communication of the camera stream is rtsp, so the URL to set should be, for example rtsp://service@192.168.1.2 if you want to login with a username service: a window asking for his password will popup, before you can get the camera stream in VLC. However, the video delay will be much greater than the one you experiment with the Bosch Configuration Manager client: therefore it is better to use this last one client.

Using a general purpose network media player (e.g. VLC) to see the camera stream (1)

Using a general purpose network media player (e.g. VLC) to see the camera stream (2)

Using a general purpose network media player (e.g. VLC) to see the camera stream (3)

If you want to test the sending of an email when an alarm happens, you can properly configure it from the of the Configuration Manager, after having authenticated the user to access to the camera. There are three types of user roles, the service, the user and live: only users of the first group can manage the camera configuration settings.

User management

User authentication to access the specific camera

Configuring VCA, first of all you have to possibly mask irrelevant areas, in order to limit processing and also to prevent false alarms.

Set Sensitive Areas for VCA Masking

Moreover, this time in the Camera tab section, you can possibly set one or more Privacy Masks each one with 4 nodes by default (only one more node can be added right clicking on one of its lines): you have to check the combo enabled to let that mask be active and so displayed (with the chosen color) also in the Tasks sub-tab of the VCA tab.

Privacy Masks setting

VCA Task tab definition with both Privacy Mask and Sensitive Areas set

As stated in chapter Limitations Intelligent and Essential Video Analytics of the SW manual Video Content VCA 6.30, is required both a camera calibration for object classification and one of the two 3D tracking modes must be selected.

The Camera Calibration requires to set the Positioning (e.g. the height; the focal length is set by the camera sensor itself) and in the Sketch Calibration tab it is possible to draw parallel/perpendicular lines and angles of 90 degree to set a better calibration.

Camera calibration

If the camera is calibrated, a proper indication is shown in the VCA -> Metadata Generation -> Global Settings tab.

Camera is calibrated advice

In order to possibly identify, in a Task definition, upright persons, bikes, cars or trucks, you have to set properly the VCA -> Metadata Generator -> Tracking tab section (i.e. 3D tracking or 3D people tracking if you are interested only in people identification).

Tracking Mode setting

The VCA Task Engine handle one or more alarm condition logic, you have to go in the VCA (Video Content Analysis) tab where you can configure in the camera several tasks that could generate alarms.
Usually to generate the needed script it is sufficient to use the available wizard for the generation of one or more alarm conditions: each task configuration can be set clicking the New button.

Starting a New task configuration wizard

Each task can be set choosing one of the following logics in the Essential Video Analysis and then graphically drawing lines/areas on the stream image (for more details see Video Content VCA 6.30): Detect any object, Object in field, Crossing line, Entering field, Leaving field, Loitering, Following route, Removed object, Idle object, Counter, Entering field, Leaving field, Loitering, Following route, Removed object, Idle object, Counter, Occupancy, Crowd detection, Condition changeSimilarity search.

Select the needed main logic

A field can be set (drowned a new one or selected, if already available), for example, in a Entering field VCA logic. There are several object triggers available (i.e. Object base point, Object center, Edge of box, Complete box). If you want to generate an alarm as soon as an identified object enter in the selected area, even only with an edge of the box, you have to set, for the Entering field task, an Interaction trigger as Edge of box. The same  if you want to have an alarm only if the whole object has completely left that area. In fact, the logic for configuring a Leaving field task is dual respect the one for Entering field, that the object trigger Edge of box generates an alarm event if no edge of the object is any longer within the field and thus the object is completely outside the field, while the object trigger Complete box generates an alarm event as soon as any part of the virtual frame around the object is outside the field.

Fiend drawing/selection in a Entering field VCA logic definition

If needed, a filter on one or more available object classes can be set. Note that, as already stressed, to set an analysis on Object class, you need to properly set the Tracking me to 3D tracking or  specifically to 3D people tracking if you are only interested to identify persons.

Filtering on one or more available object classes

The recognition of object is not performed at 100% and the percentage of successes depends  on many factors, first of all the camera location (top down views require a camera height of more than 3 meters. A camera height of more than 4 meters offers the best results); moreover moving objects like leaves of plants could cause false alarms so it is better to set a proper VCA masking as explained above.

Important is also to foresee that the zone identified for the alarm covers an area of the scene such as to exclude a sufficiently wide part to contain the object to be recognized (i.e. an upright person): so the VCA SW is able to identify it before he enters in the alarm zone and therefore activate the programmed task.

You can also filter detected object on the basis not only of and Object classes but also of Duration, Size, Aspect ratio v/h, Speed, Direction and even a Color.

Color filter definition

In the case you set a task with a Crossing line logic, you can draw a line (even a polyline) and set a direction.

Line (or even polyline) draw in Crossing line logic

In the following there is an example of three task setting, the first two of them set active for alarm.

Three Tasks definition example (two set to generate alarm)

To see the VCA Task Script generated with the wizard, you have to right click on the stream and chose Advanced -> VCA Task Editor.

VCA Task Editor

An example of generated VCA Task Script , generated with the wizard, is the following (note that Event#3 is  commented – C# notation – because that Task is now not set to generate an alarm) :

Resolution := { Min(-1, -1) Max(1, 1) };
Field #1 := { Point(-0.519, -0.967) Point(0.219, -0.944) Point(0.269, 0.289) Point(-0.513, 0.256) DebounceTime(0.50) ObjectSet(FootPoint) };
Line #1 := { Point(-0.600, -0.989) Point(-0.600, 1.000) DebounceTime(0.50) Direction(2) TriggerPoint(FootPoint) };

//@Task T:10 V:0 I:1 "Entering field 1" {
//[1.a=1;1.b=1;2.a=();4.a=(c:1,p:1);7.a=c:1|;]
external Event #1 := {EnteredField #1 where HasClass( Person )};
//@}
//@Task T:11 V:0 I:2 "Leaving field 2" {
//[1.a=1;1.b=2;4.a=(c:1,p:1);7.a=c:1|;]
external Event #2 := {LeftField #1 where HasClass( Person )};
//@}
//@Task T:2 V:0 I:3 "Crossing line 3" {
/*
//[1.a=s1:1;1.b=3;1.c=32;1.d=31;3.o=();5.a=(c:1,p:1);7.a=c:1|;]
external Event#3:={CrossedLine#1 where HasClass( Person )};
*/
//@}

In case you need to configure a more complex logic, you can write the script by hand (or better modify one automatically generated by the wizard so you have already the drawn areas and lines position): unfortunately there are not many instructions related to the VCA Task Script language, but you can find some interesting examples in the VCA Task Script Language FW 6.3 – Technical note.

One of the VCA script examples available in the VCA Task Script Language FW 6.3 – Technical note

The Alarm Task Engine supports conditions when actions shall be triggered or states shall be set. Then, going to the Alarm tab you can set an Alarm Task Script to define how to react to an alarm condition identified by the VCA programmed on the camera as previously showed. There are several Actions with the following general syntax:

 :={ [
]};

where an <identifier> begins with a lower-case phrase that can be followed by either:

  • A capitalized phrase
  • A lower-case phrase
  • A digit
  • An underscore.

The following is an example of Action, being AlarmMail the action name and mail the identifier:
AlarmMail mail:={IP(“smtp.gmail.com”)To(“myEmail@gmail.com”)Layout(Standard)Camera()From(“SendingEmail@gmail.com”)Login(“SendingEmail@gmail.com”)Password(“SendingEnmailPSW”)VCAOverlay(false)Format(256,144)Port(25)};

<em>Alarm Task Engine</em> architecture

Alarm Task Engine architecture

For testing purposes you can firstly try the email action. It can be easily configured from the Alarm tab, even though the Alarm Task Editor tab allows you to possibly even better define the logic: the form allows you to configure not only Alarm e-mail, but also Alarm connections (to send a video stream) and Alarm input (that takes into account one of the external input of the camera).
The easiest one to be configured an Alarm e-mail, possibly using a Google SMTP and a Gmail account you have: note that it is better to create a dummy account, because both username and password are visible in the generated script visible from the Alarm Task Editor tab (even though when you input the password in the related form it is not clearly displayed).
Moreover note that the sender address input is mandatory and you can find the that Mail server IP address and port for example here or looking to the following screenshot.
BE CAREFUL to set to On the Send alarm e-mail (first combo in the Alarm e-mail section of the form) and click on another main section other than Alarm – e.g. General or Camera – to have the input you inserted saved and have the Alarm Task Script generated automatically. If you want that the email contains attached also the image taken when the alarm is generated, you have to check the Attach JPEG from camera and possibly set VCA Overlays if you want it shows also the overlays (e.g. lines around recognized objects).

Configuring an alarm email using Gmail SMPT

The automatically generated Alarm Task Script is the following:

//{{email_start
AlarmMail mail:={IP("smtp.google.com")To("myEmail@gmail.com")Layout(Standard)Camera(1)From("SenderEmail@gmail.com")Login("SenderEmail@gmail.com")Password("SenderEmailPSW")VCAOverlay(true)Format(256,144)Port(587)};
//}}email_end c8630e470b3f4345ee60e7e24b0615c9

You can then test the correctness of your inputs using the Send Now button, that simulate an alarm event and should generate a new email in the inbox.

E-email sent after an alarm condition detected by the VCA

If you go in the Alarm Task Editor tab, you can see the following generated Alarm Task Script that, in that case, includes the definition of an AlarmMail object that is then used whenever some alarm task conditions are detected by the camera, on the basis of the VCA Task Script generated/written in the VCA tab, as previously shown, being 1 the camera number:

//{{email_start
AlarmMail mail:={IP("smtp.gmail.com")To("myEmail@gmail.com")Layout(Standard)Camera()From("SenderEmail@gmail.com")Login("SenderEmail@gmail.com")Password("SenderEmailPSW")VCAOverlay(false)Format(256,144)Port(25)};
if(Motion(1)) then mail;
...
//}}email_end 817e3425d01db79a6a7e4f8f99662dc3</span>

Note that, as already stressed, the sending e-mail password is visible in the generated script available from the Alarm Task Editor tab (even though when you input the password in the related form it is not clearly displayed), so it is better to use not a personal account but a service specific or a dummy one.

Related to Alarm Task Script Language, to be used to react to an alarm condition detected by the VCA using the Alarm Task Script, there are the following documents:

You can be interested also in these links related to IVA (Intelligent Video Analysis) but only in case you want to do very specific topics:

However technical documents related to the camera are not exhaustive and, in my opinion, they lack of practical examples. A little help can came from watching Bosch tutorials on YouTube that can be mainly found in https://www.youtube.com/user/BoschSecurity:

========================

If you want to send a custom message when one of the alarms occurs, as defined with the VCA Task Script Language, you have to use the HttpCommand Action that allows you to send HTTP commands to another device (or even to the device itself, as localhost).

The <http command> can be any kind of HTTP command which shall be sent to an HTTP server using GET/.

The following is the given as an example:

HttpCommand sendHttp:={
Command("HttpSrv.aspx?command=httpCommand1")SSL(true)
Port(HTTPS)IP("192.168.0.1")
Password("anonymous")UserName(User)Name("Http Command 1")};

As an example of Alarm Task Script, if you want to send both a mail and a http get, is the following when every time one of the two VCA Task event occurs::

//{{email_start
AlarmMail mail:={IP("smtp.gmail.com")To("MyGmail.com")Layout(Standard)Camera()From("SenderEmail@gmail.com")Login("SenderEmail@gmail.com")Password("SenderPWD")VCAOverlay(false)Format(256,144)Port(25)};
HttpCommand sendHttpPedestrian := {Command("r/1601qm31?command=ped&enter=true")SSL(false)Port(HTTP)IP("requestbin.net")Name("Http PEDESTRIAN")};
HttpCommand sendHttpCar := {Command("r/1601qm31?command=car&color=red")SSL(false)Port(HTTP)IP("requestbin.net")Name("Http CAR")};
if(VCARule(1,1)) then sendHttpPedestrian;
if(VCARule(1,1)) then mail;
if(VCARule(1,2)) then sendHttpCar;
if(VCARule(1,2)) then mail;
//}}email_end 817e3425d01db79a6a7e4f8f99662dc3

being:

  • 1 the camera number (set as first parameter of VCARule)
  • 1 the VCA Task event related to detecting the presence of a pedestrian in an area (set as second parameter of VCARule)
  • 2 the VCA Task event related to detecting the presence of a car in an area (set as second parameter of VCARule)

============================================================

Useful site for HTTP Requests inspection

For testing purpose, a server to inspect HTTP Request can be created with the requestbin.net site:  the requestbin.net/r/1601qm31 URL was created as my test server.

requestbin.net site to create a temporary HTTP server

Clicking on the History link, on the top right of that site, you can see all received HTTP Requests (e.g. GET, POST), as shown in the following screenshot (or you can directly go to https://requestbin.net/r/1601qm31?inspect, being the requestbin.net/r/1601qm31 your created URL):

The URL created by requestbin.net site could be previously tested, just in case, using PowerShell, with a wget command as follows:

Sending a HTTP GET to requestbin server

Here is the displayed IP on the requestbin.net/xxx server site:

Verification that the HTTP GET is arrived to the temporary requestbin server

For a HTTP WebSocket echo server you can use http://www.websocket.org

HTTP WebSocket echo server (http://www.websocket.org)

 

============================================================

Useful links for ASN1 specification and JSON validation

Validate ASN1 messages for a defined schema (e.g. ITS DENM): http://asn1-playground.oss.com

 

Jsonlint – JSON validator

 

 

aa

Informazioni su Enzo Contini

Electronic engineer
Questa voce è stata pubblicata in Review e test, Tecnologia. Contrassegna il permalink.

Lascia un Commento/Leave a comment

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

w

Connessione a %s...

This site uses Akismet to reduce spam. Learn how your comment data is processed.