Safety is a major concern for public events, venues and transit. Many surveillance cameras out there today capture video but do not identify suspicious packages nor issue alerts. To identify suspicious packages, public services such as GO Transit and TTC rely on public announcements encouraging individuals to report suspicious packages directly to an employee. We believe that the current method is neither ideal nor efficient.
Our system monitors public areas and flags objects that have remained stationary for 20 seconds. A remote user can request status updates from the detection system over WiFi. These updates include the following information:
- Status (i.e. whether an object has been detected)
- GPS Coordinates
GPS coordinates are included in the status message to facilitate the use of the system in temporary venues, thus eliminating the need for system operators to manually track the locations of each detector.
There are two SDK projects in the repo: gps_wifi and frame_broadcast. gps_wifi broadcast GPS signals and frame_broadcast broadcast the frame.
There are two Python clients: IoT_client_gps.py and IoT_client_frame.py. IoT_client_gps.py receives the GPS signals and IoT_client_frame.py receives the frame.
This project is known to build with Xilinx Vivado 2017.4
Follow these steps to set up and run the detection system:
-
Clone this repository
-
Open the Vivado project and run through to Generate Bitstream
-
Export hardware to SDK
Make sure you export the bitstream
-
Launch SDK
-
Create a new Application Project
-
Include the software source files
-
Set the SSID and passphrase of your WiFi access point
-
Connect the PMODs to the Nexys 4 DDR board
PMOD Port Camera JA
&JB
WiFi JXADC
GPS JC
(Top Row) -
Connect the board to your computer using the USB cable and power on the board
-
Program the board
-
Launch the application on the MicroBlaze using SDK's Run Configuration manager
-
Run client Python script on local system.
Before launching the on-board software, point the camera at the area you wish to monitor.
Shortly after the application is launched on the board, a reference image used to detect foreign objects is captured and stored in memory. In the current release, the only way to capture a new reference is to re-program the board.
Robert Kolaja, Albert Le, & Tony Wang
We used the following components from the Digilent Vivado Library to build this project:
- PmodWIFI v1.0
- PmodGPS v1.1