osu!oracle is beatmap classifier that takes in an osu! beatmap and categorizes it into an existing genre such as aim, streams, alt, tech, etc.
Model is currently trained on collections or tourney pools from osu!collector.
Beatmaps range from
~ 5.1☆
to~ 8.8☆
range
Current categories are
aim, alt, tech, and streams
with hopefully more to come
- Python 3.10
- .NET 5.0 (for concurrent client testing)
- gdown
- Keras
- numpy
- tensorflow
- h5py
- requests
- scikit-learn
- matplotlib
- joblib
- Simply open the Google Colab link, follow the instructions and you're good to go
- Download the osu!oracle.zip file in the most recent release
- Make sure to install the requirements through
pip install -r requirements.txt
- Run the executable file and launch osu before or after
- A terminal should pop up and you should see something like this:
- When you change songs in the song select screen, the terminal should update with the new prediction:
- Download the model from the Google Drive link above
- Open the directory in a terminal
- Make sure you have all the requirements installed. If you don't, run the following command:
pip install <w/e>
- Make sure you have all the requirements installed. If you don't, run the following command:
- Run the following script to test the current iteration of the model:
python test_model.py <beatmap_id>
ex. to test Blue Zenith's top diff, take the last sequence of digits (the beatmap_id) https://osu.ppy.sh/beatmapsets/292301#osu/658127 and run the following command:
python test_model.py 658127
first time working with machine learning so i won't go into detail since everything is very scuffed.
the osu_parser.py
and model.py
files should give you all you need to know. also take a look at the model
section within the colab.
if you're still interested in training, message me on discord (token#8233) and i'll be happy to help you out :^)
- Model performance drops significantly when working outside its trained data range of 5☆ to 9☆ maps
- Improperly classified maps during training will continue to be misclassified
- (ex. Top of the "M" top diff where i accidently categorized it as
alt
instead ofaim
)
- (ex. Top of the "M" top diff where i accidently categorized it as
- Gamemodes other than standard are currently not supported and will (probably) break
please contact me if you notice any other issues or have any suggestions :^)
This project uses the following projects:
- CollectionManager for organizing training collections
- osu!collector for beatmap training data
- ProcessMemoryDataFinder, licensed under GPL-3.0
- OsuMemoryDataProvider, licensed under GPL-3.0