Narrative Description
Pursuing an IoT solution to the current COVID-19 crisis through the counting of people within a room to determine current occupancy status. The problem proposed by the client is that classrooms, labs, offices, and other public spaces need to be monitored for occupancy in order to maintain safe levels of social distancing, as well as track the overall efficiency of use for a given space. The Capstone team strives to design and implement a solution that is capable of counting people within a given space and logging occupancy data in real time, such that safety levels of faculty and students on campus can be upheld. Additionally, the occupancy data provided by the Capstone team's proposed solution will be useful in conducting a space efficiency analysis, in which the occupancy data displayed over time will be able to aide in determining if the given space should be repurposed for better use.
Client Description
Duane Booher
Secretary
NAU ITS employee and head of the NAU IoT Research Team. Sponsoring a people counting solution Capstone for the integration of such a device to the NAU campus, as well as assisting the research endeavors of the NAU IoT Department.
Link to Duane's Website
Potential Benefits and Applications
People Counting People(C) strives to provide users with a secure, accurate, and fast way to monitor occupancy remotely. This IOT system allows users to access data on a real-time schedule and at their convenience. There are many reasons people need to count people. A standard use for this device would be monitoring traffic in spaces and doubling as a security camera. The alert system can send a message to the user so there are no lawsuits or fines for exceeding maximum occupancy. In the middle of a pandemic, social distancing is crucial to keeping a clean and healthy environment. Heavy traffic can be analyzed so that businesses can visualize room usage from a bird's eye view if deciding whether or not a larger space is needed or a new layout should be implemented. This system can be installed in restaurants, warehouses, offices, venues, and more, thanks to our multi-camera design that allows more area to be covered.
Requirements Specification
- Customer Requirements
- A single camera or multi-camera device that is capable of detecting people within its field of view.
- At least 2 devices cooperatively counting people within their respective fields of view
- Capable of processing data such that double counting of people in camera overlapping space will not occur
- Capable of reporting to the user if the space is being used
- Capable of reporting to the user how often the space is being used
- Capable of calibrating the frequency of occupancy measurement intervals for a variety of space applications
- Camera devices are capable of reporting data to a type of server in which a presentation service is invoked
- Capable of presenting data in a human readable format over a server presentation application that is accessible to the user
- Capable of upholding the standards of data security and data integrity set forth by NAU ITS
- Engineering Requirements
- Visual Camera Requirements
- Capable of focusing on objects at least with 0.1 meter to 7 meter range
- Capable of at least 1080p resolution images
- Capable of transmitting and receiving data through I2C or CSI communication protocols
- Capable of at least 1 Hz framerate
- Capable of auto-calibration for a variety of environments
- Capable of -30° to 50° Celsius operating range
- IR Camera Requirements
- Capable of measuring IR data from at least a 5 meter range
- Capable of transmitting and receiving data through I2C communication protocols
- Capable of at least 1 Hz framerate
- Capable of auto-calibration capabilities for a variety of environments
- Capable of -30° to 50° Celsius operating range
- Capable of at least ±2.5° Celsius reading accuracy
- IR Camera has high enough IR resolution to detect 2 bodies at least 1 foot apart
- Microprocessor Requirements
- Capable of processing data at the minimum frequency of measurement interval without loss or delay
- Capable of transmitting and receiving data through I2C communication protocols
- Capable of two-way wireless communication with a localhost microprocessor subsystem
- Capable of displaying a live IR camera feed to a GUI for development
- Capable of displaying a live visual camera feed to a GUI for development
- Local Server Requirements
- Capable of accepting input data wirelessly from more than one device
- Capable of distinguishing from which device receiving data originated from
- Capable of detecting when double counting from cameras has occurred
- Capable of calculating the total number of occupants in a room at any time
- Capable of two-way communication with a presentation service
- Capable of two-way communication with any given IR camera microprocessor module
- Capable of two-way communication with any visual camera microprocessor module
- Capable of identifying multiple occupants at least 1 foot apart
- Capable of at least 90% accuracy when counting people
- Presentation Requirements
- Capable of presenting total room occupancy
- Capable of accepting input data from a user
- Capable of two-way communication with a localhost subsystem
- Physical system must be in enclosed case
- Prototyping Milestone Requirements
- A single device that counts occupancy through the visual camera component
- A single device that counts occupancy through the IR camera component
- A single device that incorporates a redundancy algorithm that implements cooperation between the visual and IR camera components to determine a final occupancy number
- An occupancy device as stated above that successfully reports its occupancy data to a localhost server
- A basic user interface that presents the occupancy data from the localhost server in a human readable format
- Two occupancy devices reporting data to the localhost server
- A localhost server that incorporates a data processing algorithm to determine the total occupancy between the connected devices
- All achievements described above applied to at least three occupancy devices whose occupancy data is processed by the localhost server, and the total space occupancy information is displayed through an upgraded user presentation service
Project Design Depiction
The above figure depicts the overall archcitecture of our project and is divided into four sections.
The first section represents visual cameras, which are standard Raspberry Pi cameras.
These cameras will take send video frames to the second stage.
The second stage represents the miicroprocessor subsystem, which consists of Raspberry Pis.
These Pis will scan the frames received for occupants using a pre-trained neural network.
The data found will then be sent to the third section of our design.
This stage respresents the local subsystem, which consists of a single Raspberry Pi.
This Pi will using the incoming data stream and use our clustering algorithm to determine the true number of occupants occupying the space.
This Pi will also act as a server, and will keep track of and host occupant history throughout time.
The final stage of our design represents our and-user interface, which will be a website that clients can access to observe occupant data through charts and graphs.
Visual Depiction of Hardware and Software