Megh VAS Suite-100
0.13 Release Notes
Megh Computing, Inc
Megh Computing provides a real-time streaming analytics platform that is performant, scalable, and flexible. The Megh VAS Suite-100 is a video analytics application based on our Megh VAS platform.
Summary
The Megh VAS Suite-100 is a complete, end-to-end video analytics solution that offers high performance and low latency. It can be used as-is, or easily integrated into existing VMS platforms. The Megh VAS Suite-100 is available today on AWS EC2 c5 and t3 instances and can also be deployed on the edge in a Docker container.
The Megh VAS Suite-100 is easy to enable on AWS or Edge compute servers, and can support up to 10 channels of video running on the CPU only. As your analytics needs scale, you can easily upgrade to the Megh VAS Suite-300+, and accelerate any or all portions of the pipeline using accelerator devices such as GPU and/or FPGAs. See our additional product offerings at https://megh.com./
Quick Notes on Terms of Use and Privacy Policies
This is a early version of the Megh VAS Suite-100. It contains pre-release code that may not reflect the performance or compatibility of the final, generally available product. This software is provided “AS IS” solely to internally evaluate the Solution and without warranty of any kind. This software can not be commercialized or distributed without explicit, written permission from Megh Computing.
The deep learning models in this release have been trained using public datasets. Topologies may need to be retrained to the end-user’s environment for optimum performance. The end-user must determine if the level of accuracy of the models is sufficient for their use-case.
We integrate with third party applications (license managers, Docker hub, AWS) that may collect usage statistics related to downloads and API usage.
Our application outputs video frames that may contain personal information. Although we offer optional facial blurring when displaying these frames, the obfuscation may not be 100% effective.
Our application supports asymmetric encryption between data transfer points. Additional authentication can be optionally activated to ensure data is only published to certified clients.
We are committed to protecting your privacy. If you have any questions or concerns please contact us at info@megh.com
Camera Configuration
Any IP camera that can stream using rtsp and is ONVIF compliant will work in the VAS Suite-100 system. The cameras should be configured with the following parameters.
Recommended | Maximum | Comments | |
---|---|---|---|
Camera - resolution | HD 720p 1M | FHD 1080p 2M | Increasing Resolution or frame rate will increase compute requirements |
Camara - Framerate | 15 fps | 30 fps | |
Camera - Bandwidth | 1 to 2 Mbps | 3 to 4 Mbps |
VAS Suite has been tested with the following cameras
- SV3C 5MP Camera (link: https://www.amazon.com/SV3C-Megapixels-2592x1944-Waterproof-Detection/dp/B07BNGWZVR)
- AXIS M2025-LE Network Camera (link: https://www.amazon.com/AXIS-M2025-Network-Camera-Monochrome/dp/B01LWSS834/ref=sr_1_3[...]1&keywords=AXIS+M2025-LE+Network+Camera&qid=1612827029&sr=8-3)
Server Configuration
Recommended Edge Gateways or Servers with the following processors:
- Intel Core i3, i5, or i7 with up to 8 cores / 16 vCPUs
- Intel Xeon-D processor with up to 16 cores / 32 vCPUs
Per Camera | CPU Recommendation | Comments |
---|---|---|
Use Cases based on People Detection: Physical Distancing People Counting People Occupancy People Tracking | 4 vCPU per use case with no accelerators | Assuming Recommended configuration for camera, i.e., HD resolution and 15 fps |
Use Cases based on People Detection: Physical Distancing People Counting People Occupancy Dwell/Loitering Detection | 2 vCPU per use case with integrated GPU accelerator (e.g., in Intel Core processors) | Assuming Recommended configuration for camera, i.e., HD resolution and 15 fps |
Use Cases based on Face Detection: Face Mask Detection PPE Compliance | 8 vCPU per use case with no accelerator | Face Mask Detection uses a more complex DL model |
note
These are early estimates and are subject to change
Supported Usecases
As part of the current VAS100 release we are enabling usescases that are relevant and can be tailored to Smart Building, Smart Factory and Smart City usecases deployment like
• People Distancing
• People Counting
• People Occupancy
• People Tracking
• Intrusion Detection
• Fire Detection
• PPE Compliance
• FaceMask Compliance
• Collision Detection
• Dwell/Loitering Detection
Installation script installs only a subset of usecase. Please contact Megh for any modification or customization requests.
Installing the Application
1.1 For On-premise distributions
- Megh VAS Suite-100 is deployed using docker containers. So prior to installing Megh VAS Suite-100, users are required to install docker and docker-compose (version: 1.28.2) on server running Ubuntu 18.04
$ sudo apt-get update
$ sudo apt-get install -y nginx libczmq-dev libsodium-dev pkg-config
$ sudo apt-get install -y apt-transport-https ca-certificates
curl gnupg lsb-release
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee
/etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io
$ sudo curl -L
"https://github.com/docker/compose/releases/download/1.28.2/doc
ker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
$ sudo chmod 666 /var/run/docker.sock
- Download and extract Megh VAS100
curl -L -o MEGH-VAS100-0.13.0.tar <link to release tarball>
tar -xvf MEGH-VAS100-0.13.0.tar
note
Starting 0.10 release Megh is switching to a new License Manager solution. VAS-100-0.13 installation is now a 2 step process. First step is install the License Manager followed by installation of VAS Solution.
1.1.1 Install License Manager
License Manager needs to be installed only once when you upgrade to VAS-100-0.10.1 or higher. This step can be skipped for any future VAS Suite upgrades unless explicitly mentioned in the release notes.
a) Install License Manager as sudo
cd <DOWNLOAD DIRECTORY>
sudo ./install.sh
b) Use the default path (/opt/megh-vas) suggested for the License Manager
c) Choose just “License Manager Installation” from the options to install
CAUTIONARY NOTE: Make sure nimble or GUI are not selected by accident
d) Enter your Customer UUID provided by Megh
e) You should see the dialog box below confirming successful installation of LM manager
1.1.2 Install VAS Suite
Below are steps to install VAS Suite
a) Install VAS Suite
<DOWNLOAD DIRECTORY> ./install.sh
b) Choose the path where you want to install the product.
CAUTIONARY NOTE: Replace <user> with appropriate user id. Also make sure you are not pointing to the same directory where you downloaded the product
c) Choose “Nimble” and “GUI” from the options to install
CAUTIONARY NOTE: Make sure “LMInstall” is not selected by accident
d)Storage of Event History and Notification are turned off by default. Change “STORAGE_MODULE” environment variable from “false” to “true” to enable storage.
CAUTIONARY NOTE: Enabling this feature causes the VAS Suite to progressively consume Hard Disk space on the system depending on the Alarm setup criteria. Once the Hard Disk is full no new notifications are stored. Section 8.1.4 gives details on how to purge the notification/event database and recover storage spaces.
e) Stop nginx
sudo service nginx stop
f) Go to the product install directory to bringup all the dockers
cd /home/<user>/megh/0.13/deploy
docker-compose up -d
g) Access the VAS application using web-browser and typing the IP address or full domain name of machine. GUI interface like below should be visible if you are logging for the first time.
3.Now user can register by clicking on the Register link.
1.2 For AWS Marketplace
The AWS Marketplace AMI is already configured with the latest version of the application. Simply launch the AMI on the desired instance type (we validate using c5.2xlarge, c5a.2xlarge, and t2.xlarge instances) and min 64GB memory.
When launching the instance, you must enable the following ports access from your IP:
• Port 22 for SSH, so you can connect to and control your session
• Port 80 & 8080 to view the web GUI output directly
a) Connect and login to the running AWS instance
b) Storage of Event History and Notification are turned off by default. Change “STORAGE_MODULE” environment variable from “false” to “true” to enable storage.
CAUTIONARY NOTE: Enabling this feature causes the VAS Suite to progressively consume Hard Disk space on the system depending on the Alarm setup criteria. Once the Hard Disk is full no new notifications are stored. Section 8.1.4 gives details on how to purge the notification/event database and recover storage spaces.
c) Stop nginx
sudo service nginx stop
d) Start the application by bringing up all the dockers
cd megh-vas_suite
docker-compose up -d
note
When starting the Megh VAS Suite for the first time it might take several minutes for product to come up because the storage blocks must be pulled down from Amazon S3 and written to the volume before you can access them. This preliminary action takes time and can cause a significant increase in the latency of I/O operations the first time each block is accessed. Volume performance is achieved after all blocks have been downloaded and written to the volume.
e) To stop the application by bring down all the dockers
docker-compose down
f) Access the VAS application using the web browser and typing the IP address or full domain name of machine. GUI interface like below should be visible if you are logging in for the first time.
g) Now user can register by clicking on the Register link.
Uninstalling the Application
The uninstall procedure documented below is applicable only to No-premise deployment. Uninstall of Megh VAS Suite involves two step
1 Uninstall Licence Manager
Follow the steps below to delete License Manager installation
Stop and Disable License Manager services as sudo
sudo systemctl stop sentinel-scp.service
sudo systemctl stop lserv64.service
sudo systemctl disable sentinel-scp.service
sudo systemctl disable lserv64.servicerm /etc/sentinel-scp /etc/logrotate.d/sentinel-scp
find / -name lservrc -exec rm {} \;
find / -name lservsta -exec rm {} \;
rm -Rf /var/log/scpDelete the install directory
rm -Rf /opt/megh-vas
2 Uninstall VAS Suite
Stop and delete all docker containers
docker container prune
docker image prune -a # Note, this will delete ALL containers, not just oursDelete the VAS Suite install directory
rm -Rf /home/<user>/megh/0.13
Changing Default Configuration
By default the VAS Suite application is configured to stream canned videos for each usecase delivered as part of the software package. Below section talks about the different default pipeline configurations that can be customized/changed.
1.1 Configuring Multiple channels
config.yaml under <INSTALL_DIR>/deploy/config.yaml
directory allow users to modify pipeline
definitions for each of the usecases. The users can configure multiple channels for each usecase using pipe symbol(|) as shown below.
- pipeline:
- person-detection-nano:a:0.3:0.3
- social-distancing:0.2
- image-resize:640:480
- image-encoder
sources:
- address: videos/sd_london_station_sd.mp4
rate: 15
type: file
usecase: physical-distancing|0
- pipeline:
- person-detection-nano:a:0.3:0.3
- social-distancing:0.2
- image-resize:640:480
- image-encoder
sources:
- address: videos/sd_london_station_sd.mp4
rate: 15
type: file
usecase: physical-distancing|1
- pipeline:
- person-detection-nano:a:0.3:0.3
- social-distancing:0.2
- image-resize:640:480
- image-encoder
sources:
- address: videos/sd_london_station_sd.mp4
rate: 15
type: file
usecase: physical-distancing|2
In the above config.yaml file we can see that the pipe symbol |
with numbers(0,1,2) are used in the usecase section to configure 3 channels of physical distancing usecase.
1.2 Connecting to live camera
To connect a nimble pipeline to live camera feed, change source description as shown below in the config.yaml.
- pipeline:
- person-detection-nano:a:0.3:0.3
- social-distancing:0.2
- image-resize:640:480
- image-encoder
sources:
- address: "CAMERA RTSP ADDRESS"
rate: 15
type: video
proxy: false
usecase: physical-distancing|0
Check with the camera manufacture to get the exact “CAMERA RTSP ADDRESS”
. Make sure the
camera is setup to stream h264 streams @ 720p, RTSP Port: 554 and RTSP authentication is
disabled. Verify if the camera is setup properly by streaming from camera RTSP link using VLC
Viewer.
1.3 Connecting to SMTP server to receive emails
Megh VAS Suite-100 allows for email notification to be sent out on alerts generated for each of the usecases.
System Administrator can modify below smtp
setting in <INSTALL_DIR>/deploy/sts/config.yaml
to connect to their own SMTP servers
module:
smtp:
auth: true
host: smtp
port: 2500
username: notification@megh.com
password: NimbleUser
from: notification@megh.com
to: test@megh.com
attachment: false
Note: In the current release TLS and SSL type connections are not supported. Those connection types will be enabled in a future release
1.4 Configuring HTTPS to secure connection to Portal
• Make sure all the VAS Suite containers are up and running
• Copy the default nginx.conf from the Portal docker container to the current directory.
• Create certificate using the certbot tool. Instructions can be found on the following link
.
• After HTTPS certificate is generated, link the certificate to the nginx configuration by
updating the portal/nginx.conf
and by volume linking the certificate files and
the config files the Portal can be accessed securely over the https://<IP> link
.
uncomment this under the Portal section in the docker-compose.yaml file.
volumes:
- ${PWD}/portal/certificates:/etc/nginx/certificates
- ${PWD}/portal/nginx.conf:/etc/nginx/conf.d/default.conf
1.5 Purging Event/Notification data
When Event/Notification data storage is enable in docker-compose.yaml, VAS Suite-100 continously stores data on the local Hard-drive. This can eventually lead to system running out of space. Below are steps to purge data.
• Stop VAS Suite by bringing down all the docker containers
cd <INSTALL_DIR>
docker-compose stop
• Delete the MinIO data directory
rm -rf <INSTALL_DIR>/deploy/minio/data
• Restart VAS Suite again
docker-compose up -d
Known Issues
Issue
- Detections in pipelines (Fire and Smoke, Face mask) using these models maybe of low confidence or sometimes erroneous
WORKAROUND: Change models/TinyYoloV3.py file to do the following:
Replace:
@staticmethod
def preprocess(image):
return image
With:
@staticmethod
def preprocess(image):
return image[:, ::-1, :, :]
Issue
- Timeline calender is disabled in Event and Notification history Pages on Firefox browser.
WORKAROUND: None. Will be fixed in the future releases
Issue
- The README.md in the
<install_dir>/deploy/
has outdated instructions.
WORKAROUND: Please ignore this README file and follow the Release Notes for documentation on installation of the VAS Suite.
Issue
- Online/Offline connection status on stream window is updated immediately
WORKAROUND: Wait for 30 sec or refresh the page
Issue
- MinIO Retention is set to 1 day as default. Users have access to 1 day of Events and Notification history. This can't be changed for this release.
WORKAROUND: None
Issue
- The Watch+Trace option in the dashboard, displayed in the below screenshot, is not currently functional.
Issue
- If the new user is created with role other than admin i.e. user or viewer. He/she is not provided with all functionality features of the Megh portal.
WORKAROUND: For the above issue the fix will be available in the next release.
Issue
- MongoDB data/port corrupted when abruptly stopped and restarted.
WORKAROUND: Avoid spinning of multiple instances of Mongodb on same port and wait for graceful shutdown on docker-compose down
.