Giter VIP home page Giter VIP logo

beating_roulette's Introduction

beating_roulette's People

Contributors

d-j-kendall avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

beating_roulette's Issues

Obtain differentials from Text Position Data

@alpizano
I have successfully extracted position data from the YoloV3 Network. You can see it in this
'cropped_short.mp4.txt' text file

The format of the data is as follows

| Point 1 x-value | Point 1 y-value | Point 2 x-value | Point 2 y-value | Class Index |
ConfidenceThreshold |
| -------------------- | -------------------- | -------------------- | -------------------- |----------------| --------------- |
|782 | 136 | 872 | 191 | 1 | 0.919052 |
|12 | 299 | 49 | 373 | 0 | 0.760167 |
|745 | 130 | 831 | 182 | 1 | 0.836964|
| 47 | 199 | 98 | 259 | 0 | 0.753106 |

Since Point 1 and Point 2 define a rectangle, fine the boxes center by finding the midpoint of the line defined by P1 and P2.

Then find the distance between this midpoint and the previously identified midpoint for the same class this will give you the relative velocity between frames of the video. Find the difference between these velocities to gain acceleration.

Find a way to define this into a file format then encode into polar coordinates. Or transform into polar then perform the above calculations. These values will then be fed into another network (i.e. predictive network) for training.

Fork YoloV3 Project

We have already initialized this project as a submodule, but it would be ideal to fork this project.

This is so we can remotely track 2 repositories in order to make custom changes and open source contributions.

Train Network for Multiple Class

We successfully trained the network for 1 clss, but we need to add support for more classes.
Classes needed:
1.Ball
2.Zero Fret

Optional
3. Wheel Center
4. Hands (to detect when ball has been released)

Use PyTorch to Solve Classification Problem

One of us should be able to use PyTorch to solve a classification problem. Code network using python and pytorch and push it into a separate folder in the learning exercise's folder in our repository

Qualitative and Quantitative Analysis

@mmassom96 and @alpizano

Please, both of you go over the video data collected from our specific roulette wheel.

  1. Analyze the blur of the moving objects
  2. Analyze time step (does it upon observation seem that time step is semi-consistent)
  3. Analyze selected set of frames from each video, at your discretion.
  4. Develop a document to report back to our meeting this Tuesday.

Build a Network Which Can Detect a Moving Ball

When building our network knowing what the ball looks like is useful, but we need to be able to do it with live video.

Efficiency (object detection which is as close to real-time as possible) is preferred. If there is too much lag or latency, it will cause issues later on.

We can use are prior object detection network as a building block.

Background Subtraction

Do the problem and push your proposed solution to a folder under your name in the
/examples/background_subtraction/

folder

RAID Array for training

It would be beneficial to have RAID 0 (possibly necessary) for training to avoid SSD damage.

IntelReal Sense Stereoscopic Camera

@mmassom96

Please capture video data with the real sense camera from IEEE, so we can discuss it as an option at this Tuesday's meeting.

Then we can compare the data we got from the GoPro and the real sense to see which has better data.

Ultralytics yolov3 won't output video file

Edit: Look at discussion in the link to ultralytics repo below.

When running detect.py, everything seems fine, but the video will not output to the specified file name. Need to look in yolov3/detect.py to see what is happening with the vid writer object.

Once resolved patch back to main repo. This will resolve this issue Issue 243 Ultralytics Yolo

Half Precision Training

@mmassom96
Clone this repo, and go into the yolov3 folder.

Check out the branch with git checkout br_develop

Follow the instructions here to learn how to train the network
Training Yolo

Your RTX2070 super has a lot of tensor cores which supports half-precision float models.
(16-bit floating-point precision vs 32-bit) which can speed up detection and training significantly.

Attempt to train network with cfg/yolov3-tiny.cfg or cfg/br_roulette_tiny3L.cfg with any data at half-point precision.

Evaluate performance and report back to the group your findings.

Do not hesitate to ask for help you need to.

Table Assembly

@mmassom96

Compile a list of what you will need to construct the table, and select a height for the camera after we select between GoPro and RealSense.

Begin Coding Predictive Neural Network

@alpizano Have a skeleton frameworking of training classes and network classes.

Due on 10-08-2019 before meeting with Gray

Using PyTorch and python, begin coding a neural network which accepts and outputs these values.

Write a skeleton function to train the network.

Inputs

R-ball (Radius of ball from the center)
R-zero (Radius of zero from the center)
Theta-ball (Angular position of the ball in radians)
Theta-zero (Angular position of the zero)
W-ball (Radial speed of the ball in radians)
W-zero (Radial speed of wheel)
a - ball (angular acceleration of the ball)
a - zero (angular acceleration of the wheel)
T-time step between frames

Outputs

Theta final ball - final angular position of the ball
Theta final zero - final angular position of the zero

Modify YoloV3 for Smaller Objects

To implement object detection for smaller objects, we need to change hyperparameters and the configuratin of the network.

After doing some research and reaching out I have found these sources.

Low Feature Map Resolution

Talked to devlopers on darknet github and got response
Re: [pjreddie/darknet] How do I set the grid size when I use yolo v3? (#1042)

On changing grid size for more resolution.

This was the suggested
configuration file to enable a smaller grid size.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.