BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2 或任何藍牙控制器,搭配 MyWhoosh、Rouvy、Zwift 等。iOS、Android、Windows、macOS 均可免費試用。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
This project uses custom neural network to recognize bolts on a photo.
DEMO: https://zbycz.github.io/openclimbing-bolts-ai/ \
(and PR here)
Since the launch of OpenClimbing.org we have gathered 3500 bolts marked on 200 photos. This seemed to be enough data to train a neural net. The route data are stored in OpenStreetMap database and photos on the Wikimedia Commons image server. That made it very simple to extract it and start the training.查看完整 README ↗This project uses custom neural network to recognize bolts on a photo.
DEMO: https://zbycz.github.io/openclimbing-bolts-ai/
(and PR here)
Since the launch of OpenClimbing.org we have gathered 3500 bolts marked on 200 photos. This seemed to be enough data to train a neural net. The route data are stored in OpenStreetMap database and photos on the Wikimedia Commons image server. That made it very simple to extract it and start the training.
Of course not every bolt in the DB is precisely marked on the spot of the actual bolt on a rock face. Sometimes the bolt is not visible from ground, sometimes the contributor just placed it off by some distance. We had to human-check every bolt and mark the exact location of each bolt. This is called "labeling the dataset". The result was a dataset of 1319 verified bolts with exact bounding boxes. See here.
There is a perfect base model for this usecase – the YOLOv8 nano, which has the basic knowledge of world, and can be trained with any specific dataset. We used the Kaggle free tier, which offers generous amount of NVIDIA P100 GPUs. The training took 2 hours, lasted 62 epochs and gained mAP50 = 51% on the validation set.
The YOLO model (You Only Look Once) is a deep convolutional neural network. The architecture consists of a CSPDarknet backbone (feature extraction), a PANet neck (multi-scale fusion), and a detection head. It has aproximately 3 milions of parameters, in tens of layers. Everything fits inside a 12 MB ONNX file.
Because the features (bolts) are sometimes only few pixes big, we had to split the source image into overlaping 1024x1024px tiles, and feed the model the 1:1 source pixels.
The inference runs in browser about 10 seconds per image. Measured on Macbook Air M1 and iPhone 12 mini. We use onnxruntime-web with WASM backend. Everything runs locally without sending any data to a server.
This model was trained on data from OpenStreetMap (ODbL), and photos from Wikimedia Commons (CC0 / CC BY / CC BY-SA) by: Alensiljak · Daniel Baránek · Jvaclavik · Supernova-implicate-awoke · Headbucket · Osmwithspace · Zbytovsky · GabriCosta00 · Geogast · Kuba Turek · Eric
The model weights: CC BY 4.0