I was looking for something practical that would cost very little for customers yet give them great value. The inspiration came from visiting a restaurant recently, and all the employees were in the back. I waited a while and started thinking about the money they would lose if customers like myself were satisfied with this service.
What it does
This app includes a camera that will sit in a storefront. Customers will come in and a monitor in the back room will alert employees when customers are in line. With the Customer Counter app, they will know how many customers are in their line at all times. So, if it gets really busy, they can have extra employees go to the front of the store. There are also reporting capabilities. This app will come with a website login that allows them to get reports showing things like average customers part hour, days with longest lines, etc. Using these metrics, they can better determine how many employees they should have on any given day and time.
How I built it
The Deeplens runs Lamda on Greengrass. The face recognition model processes the images coming in and determines the likelihood a face exists in the field of view. The model sends and SNS notification. I have an IoT rule that is triggered by the SNS and puts an entry in the SQS queue. There is a client app built as a .NET WinForm app that runs on the customer’s device. It displays the current customer count. Also, it logs all the data in an MS SQL database running on RDS. There is an .NET website running on an EC2 instance that renders reports to the customer.
Challenges I ran into
I would have preferred that the entries into the database went straight from a Lamda function into RDS. However, I originally chose MS SQL instead of MySQL, and I found out it was quite the challenge to have Lamda connect via an adapter. I decided to have the client log the data since it was much simpler, and that allowed me to focus more on the other aspects of the project. There were numerous challenges with the camera that I’m guessing caused others a headache or two.
Accomplishments that I'm proud of
I learned a lot. When I want to re:Invent, I was pretty much a newbie to AWS. I’d been using it for website and database hosting, but I had not used many of these other cool services. Now, I have a pretty decent grasp of the many tools AWS offers.
What I learned
I learned a lot about AWS, and Deep Learning. My app doesn’t really show that I did much with deep learning models, but I actually spent hours learning about it. Much of it was stuff I’ve never heard of, so it was pretty daunting at first.
What's next for DL Customer Counter
Further refinement. Better usage of models. In stores everywhere!!