Overview
Smilart Helios
version 3.0.0
is a soft-realtime reference implementation of the Smilart Web API
version 1.1
.
For correct work Smilart Helios
requires implementations of Camera Server Erlang API
version 1.4
and Phoenix Erlang API
version 2.5
.
Installation
Smilart Helios
product installation is performed by Smilart Application Manager (SAM)
.
For more information about sam see Smilart Application Manager documentation
|
To install the Smilart Helios
product one need to use installproduct
command which will be available in the system after installation of docker
image smilartos-install
.
This image also contains information about all available products, their versions and location.
Image smilartos-install
smilartos-install
— image, which contains information about all available Smilart
products, their versions and locations.
To install it, you need to run several commands:
-
Get all versions of
smilartos-install
and select the one you prefer (usually the latest)
$ sam se smilartos-install List image versions: smilartos-install:1772.4.0_126
-
Install the preferred version
$ sam in smilartos-install:1772.4.0_126
For more information about sam see Smilart Application Manager documentation
|
After installation ends image smilartos-install
should appear in the list of images
$ sam list | grep smilartos smilartos-install | 1772.4.0_126 | int
Then the installproduct
command becomes available for usage.
Product Helios
-
After installing the image
smilartos-install
you need to run theinstallproduct
command. -
Product selection window appears where you should select
helios
to installSmilart Helios
product. -
After that you need to select the required version of the
Smilart Helios
product. -
Screen with information about the selected version appears.
-
After that system will collect information about the installation, download necessary files and offer to install collected images into the system.
-
After confirmation system will complete the installation of the
Smilart Helios
product.
One can verify that the image was installed successfully by using
$ sam list List apps: Name | Version | Repository ----------------------------------------------------------------- helios.x86_64 | 3.0.0_59 | int ...
If any errors occur during the installation one should contact technical support. |
Product Phoenix System
To work Smilart Helios
product requires another product — Smilart Phoenix System
that provides implementations of Camera Server Erlang API
version 1.4
and Phoenix Erlang API
version 2.5
.
One can install that product in the same way as Smilart Helios product.
During installation of Smilart Phoenix System check the Release notes section for appropriated Camera Server Erlang API and Phoenix Erlang API versions.
|
Configuration
To check or modify configuration of Smilart Helios
, you need to find configuration file,
located at /etc/helios/current/sys.config.orig
.
Text after %
is a comment.
[ {sml_helios, [ {phoenix_connection, [ %% Phoenix connection settings {node, "sml_phoenix@phoenix"}, %% Erlang node name {cookie, "sml_phoenix"} %% Cookie ]}, {camera_server_connection, [ %% Camera_server connection settings {node, "sml_camserver@camera_server"}, %% Erlang node name {cookie, "sml_camserver"} %% Cookie ]}, {cowboy_settings, [%% Http services settings {port, 9999}, {websocket_idle_timeout_sec, 60} ]}, {person_service_settings, [ {rpc_timeout_ms, 2000}, {photos_cache_size_bytes, 52428800}, %% 50*1024*1024 (50Mb) {photos_cache_timeout_ms, 60000} %% 1 min ]}, {ipa_service_settings, [ {rpc_timeout_ms, 2000} ]}, {vca_service_settings, [ {aggregation_time_ms, 200} ]}, {photobooth_service_settings, [ {aggregation_time_ms, 200} ]}, {verification_service_settings, [ {aggregation_time_ms, 200} ]}, {poolboy_settings, [ {blobstore, [ {size, 10}, {max_overflow, 20} ]} ]}, {log_tracing, [ % {trace_name, #{ % file=> "PathToLogFile.log", % Next opts applied by default % config=> [{formatter, lager_default_formatter}, % {formatter_config, [date, " ", time, " ", message, "\r\n"]}, % {size, 104857600}, {date, ""}, {count, 4} % ], % level=> debug % }}, {camera_collection, #{file => "api/camera.log"}}, {person, #{file => "api/persons.log"}}, {person_collection, #{file => "api/persons.log"}}, {person_photo_collection, #{file => "api/persons.log"}}, {person_photo, #{file => "api/persons.log"}}, {vca, #{file => "api/vca.log"}}, {photobooth, #{file => "api/photobooth.log"}}, {verification, #{file => "api/verification.log"}}, {ipa, #{file => "api/ipa.log"}} ]} ]}, {sml_event_tracer, [ %% System events publishing {event_sender, {influx_udp, [ {host, "${influx_host}"}, {port, 4444}, {pool_size, 5}, {max_overflow, 10} ]}} ]}, {lager, [ {log_root, "log"}, {async_threshold, 100}, {async_threshold_window, 25}, {crash_log_size, 104857600}, {crash_log_date, ""}, {crash_log_count, 4}, {handlers, [ {lager_file_backend, [{file, "log/info.log"}, {level, info}, {size, 104857600}, {date, ""}, {count, 4}]}, {lager_file_backend, [{file, "log/warning.log"}, {level, warning}, {size, 104857600}, {date, ""}, {count, 4}]}, {lager_file_backend, [{file, "log/error.log"}, {level, error}, {size, 104857600}, {date, ""}, {count, 4}]} ]}, {extra_sinks, [ {sml_lager_lager_event, [ {async_threshold, 100}, {async_threshold_window, 25} ]} ]} ]}, {sasl, [ {sasl_error_logger, false} ]} ].
Phoenix connection settings
The section phoenix_connection
contains Phoenix
connection settings.
Name |
Type |
Description |
node |
string |
Phoenix node name in {NAME}@{HOST} format. |
cookie |
string |
Phoenix erlang cookie. |
Camera server connection settings
The section camera_server_connection
contains Camera Server
connection settings.
Name |
Type |
Description |
node |
string |
Camera server node name in {NAME}@{HOST} format. |
cookie |
string |
Camera server erlang cookie. |
HTTP service settings
The section cowboy_settings
contains HTTP services settings.
Name |
Type |
Description |
port |
integer |
HTTP port. |
websocket_idle_timeout_sec |
integer |
The lifetime of a WebSocket connection without PING/PONG messages. |
Person Service settings
The section person_service_settings
contains settings for Person Service.
Name |
Type |
Description |
rpc_timeout_ms |
integer |
Maximum response time in milliseconds. |
photos_cache_size_bytes |
integer |
Maximum storage capacity in bytes for cached person photos. |
photos_cache_timeout_ms |
integer |
Timeout for cache invalidation in milliseconds. |
IPA settings
The section ipa_service_settings
contains settings for Instant Photo Analytics Service.
Name |
Type |
Description |
rpc_timeout_ms |
integer |
Maximum response time in milliseconds. |
VCA services settings
The section vca_service_settings
contains settings for Video Content Analytics Service.
Name |
Type |
Description |
aggregation_time_ms |
integer |
Timeout for an aggregation event to collect all required information. |
Photobooth services settings
The section photobooth_service_settings
contains settings for Photo Booth Service.
Name |
Type |
Description |
aggregation_time_ms |
integer |
Timeout for an aggregation event to collect all required information. |
Verification services settings
The section verification_service_settings
contains settings for Verification Service.
Name |
Type |
Description |
aggregation_time_ms |
integer |
Timeout for an aggregation event to collect all required information. |
Poolboy Blobstore services settings
The sections poolboy_settings.blobstore
contains settings for Blobstore Service.
Name |
Type |
Description |
size |
integer |
Initial number of workers that collect information about images. |
max_overflow |
integer |
Additional number of workers that collect information about images. |
Events monitoring settings
The section sml_event_tracer
contains events monitoring settings.
Current events aggregator is InfluxDB (transfer protocol — UDP).
Name |
Type |
Description |
influx_udp.host |
string |
InfluxDB hostname or IP-address. |
influx_udp.port |
integer |
InfluxDB port. |
influx_udp.pool_size |
integer |
Initial number of parallel connections to the InfluxDB. |
influx_udp.max_overflow |
integer |
Additional number of parallel connections to the InfluxDB. |
For more information about Helios Monitoring see Helios Monitoring Guide documentation
|
Implementation details of services
Common Notes
All services distribute all images/photos to clients only in JPEG format.
Verification service
Definition of verification parameter threshold_name
Verification request parameter threshold_name
is a name of the predefined verification threshold in the Phoenix Erlang API
implementation.
Phoenix Erlang API
provides the following list of predefined threshold names from highest to lowest:
-
UltraHigh
; -
High
; -
Normal
(recommended); -
Low
; -
UltraLow
.
Going from highest to lowest the probability to verify person increasing but the probability to falsely accept the wrong person is increasing accordingly.
Besides mentioned names there is capability to use custom threshold names defined in Phoenix customization file on the server (see Phoenix System
documentation).