Sigpro Vehicle Detection Application
Design Plan
Project Team
Stephen No
Sigpro Vehicle Detection Application
Design Plan
Project Team
Stephen Norman
Team Lead
TJ Cyrus
Programmer
Tomoki Nakamura
Programmer
Senay Girma
UI Designer
Freddy Manyaka
UI Designer
1.User Interface Design
Figure 1 – User Interface Design
1.1 Components
Main video window where selected traffic video will be displayed.
Traffic density gauge ranging from ‘Very Good Traffic’ to ‘Very Bad Traffic’.
Line graph displaying Average Vehicle speed Vs. Traffic Density.
Elapsed time for a given video.
Log information for each vehicle detected.
Download Log file button.
URL selection field for specifying the URL of live traffic feed.
Upload Video File button. Button for selecting video file.
Classifier
2.Classes, Methods, Fields, & Interfaces
2.1 Classes, Methods, Fields
AppDisplay (GUI) LicenseAgreement() – void
SVDAWindow() – void
DetectVideo VideoOutput() – void
ExtractCars() – int [] car_id
DetectPath() – void
TraceCars() – time [] elapsed
HaarClassifier() – int [] car_id
LPBClassifier() [TBD] – int [] car_id
ProcessData(car_id, elapsed) – Array[] id_details
TrafficGauge ImportLogData(id_details) – void
CalcParameters() – int [total_max, total_min, gauge_range]
DisplayGauge() – void
GraphVisualization ImportLogData(id_details) – str[] id_data
FormatData(id_data) – str[axis_x, axis_y]
OutputGraph() – void
Elapsed Time Time Elapsed() – void
LogGenerator ImportData(id_details) – Array[] data
ParseData(data) – str[] log_gen
DisplayLog(log_gen) – void
ExportLog(log_gen) – str[] export
LogDownload LogDownload(export) – export.txt
StreamEntry VerifyEntry() – void
ExtractVideo() – str video_url
ExportVideo() – video.mp4
VideoFromFileFileChooser() – video.mp4
ClassifierDropdownHaarClassifier() – void
LPBClassifier()- void
NoClassifier() – void
SettingsResizer() – void
RefreshRate() – void
UploadError [Not Pictured]ErrorWindow() – void
2.4 Interfaces (See Classes)
3.Data Structures, Data File Structures, Inputs, Outputs
3.1 Data Structures
Log data will be stored in Arrays (download prints to CSV)
Video upload/stream will be stored in Database/Table
3.2 Data File Structures
Log Download: CSV File Output
3.3 Input Formats
Video Inputs: AVI, MP4
Classifier(s): XML
3.4 Output Formats
Log: CSV
4.Overall Approach
4.1 Approach.
The first design priority will be building the classes for the video output. Whether it be configuring the different classifiers and training them, perfecting vehicle detection/identification & tracking their time on screen, enabling that video player to be live, or even making the data loggable. From there, we will shift to configuring the log printing & distributing output, transferring the data in graph form, and analyzing and gauging the data. Finally, ensuring that the distributed log file output is downloadable as a CSV file.
Next will be configuring and verifying actual uploads – whether using a filechooser for the manual feed or ensuring that stream links can extract the desired video file. The three last items to approach will be the elapsed time clock, the settings menu, and the GUI.
4.2 Performance Estimates
The performance should work in this way, following the Design.
Show the actual video or the live stream of the road with cars.
Show the percentage of crowd on the road with cars.
The number of cars displayed and the traffic density per road.
Elapsed time of the video/live streaming.
Log of each car appearing and disappearing.
By clicking the “Download” button, the text file of the log is downloaded.
By entering the URL of the streaming, it will appear on the screen no.1.
By entering the PATH of the video, it will appear on the screen no.1.
Classifier selections will be shown with the drop button.
4.3 Test Cases
BBTC000 – User License Agreement
Simulates a user opening and accepting a license agreement
Prerequisite: Software file(s) downloaded to computer
Input
Desired Output
Launch Python file
Select “OK”
License Agreement opens
Video loads in UI Widget
BBTC001 – Test the File Upload UI
Simulates a user selecting/uploading a video file for analysis through the user interface
Prerequisite: User opens the application, accepts the license agreement and loads the main window with the file upload button visible (Specification ID: BBTC000).
Input
Desired Output
Click “Upload File”,
Navigate to video file location, select file and hit “Enter”
File selection window opens,
Video loads in UI Widget
BBTC002 – Test Video Player, Start and Stop UI Functions
Simulates a user playing an uploaded video through the user interface
Prerequisite: Video file is uploaded in the application (Specification ID: BBTC001)
Input
Desired Output
Click “Play” video player button
Click “Stop” video player button
Video plays, time increments
Video stops playing, time stops
BBTC003 – Test Classifier Dropdown Menu
Simulates a user selecting a classifier from available selectable classifiers
Prerequisite: Video file is uploaded in the application (Specification ID: BBTC001)
Input
Desired Output
Click the ‘Classifier’ dropdown
Select desired Classifier
Dropdown expands, listing all available classifiers
Selected classifier displays in the ‘Classifier in Use’ section
BBTC004 – Test Vehicle Detection Capabilities for Selected Video
Simulate a user running the program to detect a vehicle in a selected video
Prerequisite: Video file is uploaded, and classifier is selected in the application (Specification ID: BBTC003)
Input
Desired Output
Click ‘Detect Vehicle’ button
Click ‘Stop’ button
A rectangle should be drawn around the vehicle detected, and should track the vehicle across the video frame as it moves
Video detection and tracking stops
BBTC005 – Test the application displays graph of vehicle traffic in the data visualization section of the user interface.
Simulate a user running the program to detect a vehicle in a selected video
Prerequisite: Video file is uploaded, and classifier is selected in the application (Specification ID: BBTC003)
Input
Desired Output
Click ‘Detect Vehicle’ button
Click ‘Stop’ button
Vehicles traffic flow graph is displayed in the data visualization section of the user interface
Video detection and tracking stops
BBTC006 – Test the application logs each detected vehicle in csv file with event id, initial detection time, last detection time (vehicle out of focus)
Simulates a user extracting vehicle log data file from the program
Prerequisite: Video file is uploaded, classifier is selected, and detection is initiated in the application (Specification ID: BBTC005)
Input
Desired Output
Click the log file from the log section of the user interface
Select a folder where the log file will be downloaded and hit Enter
Dialog box opens prompting user to select log file destination folder
Log file is downloaded in selected folder
BBTC007 – Test the exception handling
Simulates a user supplying invalid file for video input
Prerequisite: User opens the application and wait until the main page with the file upload button is visible
Input
Desired Output
Click Upload File button on the user interface
Navigate to location where the video file is and select (invalid) file and press Enter Key
File selection window opens
Error message display in dialog box indicating invalid file format
BBTC008 – Test Settings
Simulates a user supplying invalid file for video input
Prerequisite: User opens the application and wait until the main page with the settings icon visible
Input
Desired Output
Click the ‘Settings’ icon
Edit ‘refresh rate’ minute field
Set aspect ratio from dropdown
Settings window opens
Gauge & graph refresh rates update
The change reflects on the screen and the setting.
5.Policy Of Software
Policy of Software
(Updated 2/2, 2:30 AM EST)