Use git clone --recurse-submodules -j8
to clone repo and UltralyticsYoloV3 Fork
Beating Roulette
Designing a neural network to predict outcomes in roulette.
Designing a neural network to predict outcomes in roulette.
License: GNU Lesser General Public License v3.0
Use git clone --recurse-submodules -j8
to clone repo and UltralyticsYoloV3 Fork
Designing a neural network to predict outcomes in roulette.
@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.
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.
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)
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
@mmassom96 and @alpizano
Please, both of you go over the video data collected from our specific roulette wheel.
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.
Need to get images for multiple classes and use Amazon M Turk to annotate data for
Classes
Do the problem and push your proposed solution to a folder under your name in the
/examples/background_subtraction/
folder
It would be beneficial to have RAID 0 (possibly necessary) for training to avoid SSD damage.
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.
Loss increases and model eventually locks up resources freezing.
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
@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.
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.
@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.
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
Theta final ball - final angular position of the ball
Theta final zero - final angular position of the zero
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.
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.
Transfer learning always wants to start out at yolov3-spp.pt, but this may not always be the optimal case.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.