Here is a link to the final report (too large to upload to WordPress): E7 PokerCam Final Report
This week was a big flashback to freshman year calculus as a lot of integration was happening!
We finally cut out and constructed our final enclosure and installed all the electronics and the camera. After a few technical issues were debugged we began work on our final video and poster. We hope to finish both of those tomorrow!
This week, our team engaged in further testing of our system and built an enclosure to create constant lighting. Since the enclosure negatively influenced our ability to capture reliable images, we might not utilize our enclosure in our final demo. We made small amounts of progress in making our final poster and planning our final video. However, much work still needs to be done in writing our actual scripts for the video and doing all the filming.
Being able to finish these required deliverables (video and poster) is our most significant risk. In order to mitigate this risk, we are aiming to have all our scripts completed by tonight, so we can spend tomorrow simply filming and putting the videos together. Some additional testing about battery life still might need to be completed, so we also need to ensure all our end-to-end testing is complete tomorrow.
This week, I gathered and labeled more training data for our model and helped conduct further testing. Since our model’s classification varies in lighting, I helped gather more images in dim lighting to account for this difference. Right now, our test accuracy is just below 98% (but above 97%), so we are very satisfied with the accuracy results. One of our initial goals to account for lighting changes was to have a custom enclosure. I spent a few hours serving as an extra pair of hands for Ethan to build an enclosure for our card shoe, but our enclosure impaired our camera captures. As a result, we might not use the actual enclosure in our final product.
I spent some time working on our final poster and writing a script for my part of the final video. Finally, I also added an “edit” widget to allow users to make edits to the web application if a card was classified incorrectly. I am on schedule, but the next 5 days will be very hectic to get all our required deliverables done (poster, video, demo, and report). Tomorrow will be dedicated to finishing our poster and video. Then, the majority of next week will consist of writing our final report.
This week has been a roller coaster for our prototype. We spent the first half of the week preparing for the presentation. While preparing for the presentation, the ADC failed. We had to replace the ADC on the PCB with the evaluation board, but we could not retrieve photos in time for the presentation. In the second half of the week, I worked with Ethan to integrate the hardware in a new enclosure. As we turned everything on on Friday night, both the ADC and camera were not working. We spent all of Saturday debugging the ADC and camera and eventually fixed them by swapping modules and reconfiguring the ADC’s configuration register.
Sid and I decided we needed to take more training photos since the results varied under different background lighting. After looking at the trigger, I also decided to report accuracy in two parts: classification accuracy and trigger accuracy. Classification accuracy is the accuracy on the test set. The trigger accuracy is the percentage of captures that are perfectly aligned with the image. The effective accuracy should be the product of the two. We will manually test the system on a unopened card deck to obtain an effective accuracy metric.
Overall, I am on track to finish testing my subsystems.
Our most significant risk is having adequate full-system testing to ensure our hardware, image processing, machine learning, and web application work reliably in tandem. We are addressing this risk by continuing to test our system end-to-end for latency, accuracy, false triggers, battery life, and memory. We have been able to successfully meet our latency and accuracy metrics, but we have yet to sufficiently test false triggers, battery life, and memory. In order to adequately test these requirements, we will need to simulate an entire Poker game, which remains one of our goals for next week. Other goals for next week include completing our final video, poster, and report. No significant changes have been made to our existing design or team schedule. Here’s a photo of our current working system with the PCB (containing the LED) and camera.
This week was dedicated to slack time and integration. Since our system has slightly changed due to the addition of LEDs, the images slightly changed in appearance. Hence, I spent most of this week gathering more training data with Jeremy and labeling the images to constitute training, validation, and testing data for our model. Since our previous model was able to achieve high validation accuracies with the previous images (without LEDs), not many changes needed to be applied to our machine learning code. These were my main tasks for this week (gathering more data and training our ML model), so I am satisfied with my progress. Our model hits our overall latency and accuracy requirements. One of our user requirements is having the web app update within 2 seconds of a card being pulled from the trigger, and our web app updates (on average) 0.18 seconds after the trigger. Our accuracy requirement was 98%, and our final test accuracy is 98.1%. For the remainder of the weekend, I will help gather more metrics and performance results for our final presentation. I am definitely on schedule. Next week will be dedicated to further testing and making our final video, poster, and report. If we fail to satisfy our desired requirements during future testing, then I will have to help make modifications to our existing system. If time permits, I might also make the web app even more robust by allowing users to edit card classifications on the web app (for example, if a card was classified incorrectly). This is not a necessary feature, but it would add value to the overall functionality of our system.