PPS Vision goes Vegas - Spring Semester 2019

The seminar

Assistants: Samarth Shukla, ETH Computer Vision Lab
Reserved Work Place:ETZ D82.1
Presence Hours: Wednesdays, 08:15-10:00
First meeting: Wedensday, March 6, 2019
Tournament: May 29, 2019 (on our last session)
Presence Dates: Mar 6, 13, 20, 27, Apr 3, 10, 17, May 8, 15, 22, 29
Course Type: C++ coding practice (suitable for first-time coders), image processing: recognition of gamble cards
Course Language: English
Platform: Linux (no preliminary knowledge of Linux required)
Code Template: download
Dataset: download

The tournament

Groups: 1-2 students per group
Aim: TO WIN !
What to win: Orelli Fuessli or bQm coupons
Who wins (per turn): The group whose program beats the human dealer (the TA) by better approaching the score of 21 from below
Card values: Cards 2-10: their nominal values, Face cards: 10, Ace: 1 or 11
Processing time limit: 3 seconds per card
Token coupon exchange rate:
Calculated at the end of the contest
Coupons will be given to the players based on their remaining tokens
Total game time: 90 minutes


  • The groups are essentially operators of the card processing system, which is based on a digital camera, a computer for grabbing the images and (equally powerful) remote stations for the groups to run their processing and decisioning codes on. The dealer (your teaching assistant) handles the camera and the stack of cards.
  • The (program of) each group plays against the human dealer (your assistant). After a round, each group has played with the dealer once, and the round is repeated until the total game time ellapses.
  • First, each group announces its bet up to the number of chips still available to them.
  • The program of each group waits for a key press which should be issued after that the dealer presented a new card from the stack to the camera.
  • Then the program scans the new card, determines the value of the card by processing the image, and decides either to request a new card from the dealer or to end the current turn.
  • In each step (key press) outputs of the program should be the value of the recognized card, the cumulated score achieved in the current turn, and the result of the binary decision. It is helpful if the program also outputs some processing results in the form of an image file to analyse mistakes.
  • If team k exceeds score 21, the bet is lost. If team k reaches exactly 21, the team gets back 3x the bet.
  • If team k is below 21, the result depends on the dealer's independent play. If the dealer exceeds 21, or has less than team k, the team gets 2x its bet. If dealer and team achieve equal scores, the team gets back the bet. If dealer does not exceed 21 and has more than the team, the team loses the bet. However, in this case, the team gets C consolidation points, if all cards are recognized correctly.
  • Parameters to define: initial credits per team, minimum bet per turn, consolidation score per lost turn.
  • Failure cases: At segmentation fault, the group loses the bet. If the program recognizes the card incorrectly, and hence, keeps track of a wrong score, the true score counts.
  • Rewards will be distributed to team k proportionally to Nk/sum(Nk), where Nk is the number of chips the team still posesses when the total game time expired.