Team Status Report for 5/8/2021

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.

Team Status Report for 5/1/2021

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.

Team Status Report 4/24/2021

This week was a continual refinement of all the components of our project. We received all the components for our PCB and hope to have that fully assembled early next week. We also continued to work on and train our classification system. This week we achieved 98.0% validation accuracy and 97.5% test accuracy with our CNN. (A card is classified correctly if both the rank and suit are correct.) It takes approximately 50ms to classify a single image on the Jetson Nano, so we have plenty of headroom to achieve the 2s latency requirement. We plan on increasing our training dataset by taking more images this week (hopefully with the PCB). We also made some updates to the logic of our webapp to better support other games besides poker (namely blackjack). We also began work on designing our final, laser-cut, assembly.

We believe we are still on track to complete our project based on our current schedule.

Team Status Report for 4/10/2021

We have finished the essential components of our imaging system and web application (although minor modifications might be made in the remaining weeks if necessary). We plan to get our PCB delivered next week. Unfortunately, we were placed a week behind due to turnaround/shipping times with our PCB and since our old camera stopped working (so we had to order a new camera). Our most significant risk is ensuring that our training image data doesn’t change significantly with the PCB design. Making sure our ML is accurate and has been trained on sufficient data will be very important in the coming weeks. To mitigate this risk, we plan to continually obtain training image data as the PCB gets delivered and prioritizing this process.

For our interim demo presentation, our plans have not changed significantly. We still hope to show a working prototype, a remote display with raw and preprocessed captures, and the playing card suit/rank on our web application.

Below is an updated look at our individual and team schedules.

Team Status Report for 4/3/2021

This week, Ethan and Jeremy spent time integrating the hardware trigger with the imaging scripts. We now have a card shoe prototype that triggers the captures with and ADC the bridges the analog trigger with the python scripts on the Jetson Nano. We collected a small dataset by imaging a 52-card deck exactly once. While this is clearly not enough for ML training, we’re using that to explore preprocessing. Sid has been finalizing details of the web app and preparing some ML scripts for training.

Next week, we will finish the PCB design and obtain a larger dataset with the prototype. The team is about one-week behind schedule because the card trigger took longer than expected to bring-up. For the interim demo, we expect to be prepared with a working prototype where one member pulls a card, and a remote display will show the raw and preprocessed capture used for classification. We will definitely include a trained ML model for classification in the demo, but that may not be ready in time.

Team Status Report for 3/27/2021

After receiving our hardware, our team has been able to make significant progress. Sid has completed all the necessary components of the web app, migrated it to AWS, and optimized the web app to satisfy our latency user requirement. Jeremy has made significant progress in developing the image preprocessing and segmentation routine. He and Ethan have been working together to determine camera positioning and trigger timing. As stated earlier, our most significant risk to be mitigated is delayed turnaround/shipping times. We plan to mitigate this risk by continuing to prioritize PCB design/fabrication and performing tasks in parallel (ex: To speed up training/testing, Sid plans to write most of the necessary training/testing code with various models beforehand). Our schedule has already been updated to reflect the delays in shipping. Due to the importance of the trigger, there might be a delay in when our final prototype will be finished. However, we plan to meet in the lab tomorrow to continue refining our first prototype and aim to still finish our final prototype on schedule. No major changes have been made to the existing system design, but we did receive helpful feedback on our design review report. If we decide to make any significant changes to our design, we will update our next status report accordingly.

Team Status Report – 3/12/21

This week, the team worked together to solidify design decision for the design presentation. We considered the project’s risks and technical challenges, including selecting an image to use for classification based on priors. As a team, we have begun drafting the design review, clarifying the decisions we presented on Monday with the MATLAB scripts and napkin-math we have done so far.

Since our parts arrived on Thursday, we met to bring-up everybody’s Jetson Nano. We distributed parts such that Ethan and Jeremy have a single camera to work on and each member has their own card shoe and deck. Once Jeremy finishes the imaging pipeline in the coming weeks, he and Sid will swap hardware so Sid can train the ML model to classify cards.

 

 

 

 

 

While the parts arrived one week later than expected, we still believe we can maintain our original schedule. See the individual progress reports for more details on which tasks are challenging.

Next week, we will finish our design review and continue working to finalize decisions on the camera system so Ethan can get a PCB sent out for manufacturing.

Team Status Report for 3/6/2021

This week, we met numerous times to create our design presentation, refine our project components, and submit a budget proposal to obtain hardware. Our most significant risk remains the same as last week’s, which is time delays with turnaround and shipping. We plan to mitigate this risk by aiming to get our hardware as soon as possible and performing tasks in parallel to reduce idle time. No significant changes were made to our existing system or schedule. We did narrow down our camera modules (OV9281 and IMX219), for which we have filled out a purchase request form. In addition, we were notified that Azure would not be a possible cloud hosting provider for our web display, and so we will have to use AWS. This does not pose any significant changes to our project, as both platforms are suitable for our web app. Finally, we did make a minor change to our shoebox design, as we have placed an internal extension to make the cards flat and consistent when they are dispensed. This will enhance our image quality and help with image preprocessing/classification.

Team Status Report for 2/27/2021

As a group, we spent the first half of the week further refining our schedule and division of labor. Sid spent most of the week developing a web app for our visual display. Jeremy has been working on determining camera geometric/optical/electrical requirements. Ethan has been helping look at cameras to ensure they’re compatible with the hardware he’ll work on. Shipping time and turnaround times represent our most significant risk that could jeopardize the success of our project. We plan to manage these risks by carrying our development and testing as efficiently as possible. This will help accommodate for delays in shipping and turnaround. No significant changes were made to the existing system design or schedule. As a group, we have decided to utilize a Nvidia Jetson to run the ML software. We have started working on our design presentation and plan to focus on completing this presentation by the end of next week. This will require several meetings as a group, which will take place during our assigned lectures next week.

Team Status Report for 2/20/2021

Our meetings on 2/8 and 2/10 were used to determine our idea: digitizing the professional poker experience by automatically counting and displaying cards for commentators/audience members. We met on 2/15 and 2/17 to further refine the scope of our project. During these sessions, our main purpose was ensuring that our project was broad enough such that everyone would have a fair share of work to accomplish. However, we didn’t want to make the project too broad, as this could make our ideas infeasible and unconnected. 

After meeting with Professors Gary and Tamal and talking to our TA Ryan, we decided to stray away from RFID and focus mainly on the following topics: creating custom hardware, performing CV and signal processing through images from a camera, and training/experimenting with various ML models to find the best latency and throughput. Jeremy will work with the imaging pipeline and signal processing. Specifically, he will contribute to designing the lighting, camera geometry, and camera optics to boost image classification accuracies. Sid will help train and configure the ML model and build a web app to display the status of the game. He will work on experimenting with various models and hyperparameters. Ethan will contribute to building custom hardware and assisting with the drivers. He will work on PCB fabrication, spec controllers/sbcs, and the hardware trigger.