{"id":25872740,"url":"https://github.com/lfgodoi/rpm-deep-guesser","last_synced_at":"2025-03-02T08:22:21.023Z","repository":{"id":279304916,"uuid":"938342040","full_name":"lfgodoi/rpm-deep-guesser","owner":"lfgodoi","description":"A deep learning-based RPM estimator based on spectral features extracted from vibration signals of rotating machines.","archived":false,"fork":false,"pushed_at":"2025-03-01T13:51:12.000Z","size":148,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-01T14:34:56.792Z","etag":null,"topics":["condition-monitoring","deep-learning","docker","flask","machine-learning","neural-networks","numpy","python","pytorch","scipy","signal-processing","spectral-analysis"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lfgodoi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-24T19:58:18.000Z","updated_at":"2025-02-27T15:50:56.000Z","dependencies_parsed_at":"2025-03-01T14:34:57.241Z","dependency_job_id":null,"html_url":"https://github.com/lfgodoi/rpm-deep-guesser","commit_stats":null,"previous_names":["lfgodoi/rpm-deep-estimator","lfgodoi/rpm-deep-guesser"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfgodoi%2Frpm-deep-guesser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfgodoi%2Frpm-deep-guesser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfgodoi%2Frpm-deep-guesser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfgodoi%2Frpm-deep-guesser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lfgodoi","download_url":"https://codeload.github.com/lfgodoi/rpm-deep-guesser/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241478250,"owners_count":19969254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["condition-monitoring","deep-learning","docker","flask","machine-learning","neural-networks","numpy","python","pytorch","scipy","signal-processing","spectral-analysis"],"created_at":"2025-03-02T08:22:20.179Z","updated_at":"2025-03-02T08:22:20.926Z","avatar_url":"https://github.com/lfgodoi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## RPM Deep Estimator (rpm-deep-estimator)\n\nA deep learning-based RPM estimator based on spectral features extracted from vibration signals of rotating machines.\n\n- Developer: _Leonardo Franco de Godói_\n- GitHub profile: _https://github.com/lfgodoi_\n- Contact: _eng.leonardogodoi@gmail.com_\n\n### Motivation\n\nThe shaft rotation speed is a crucial parameter for condition monitoring of rotating machines. Knowing this speed enables the identification of key spectral components, which are essential for diagnosing potential faults. However, since a rotation sensor is not always available, estimating it from the vibration signal can be highly beneficial.\n\n### Explanation\n\nGiven a vibration signal collected from a machine at a specified sampling frequency, the shaft speed (RPM) is estimated using a deep neural network that processes features extracted from both the original and envelope spectra. The envelope is computed using the Hilbert Transform, whereas the spectrum is computed using the Fast Fourier Transform (FFT). The neural network employed in this algorithm contains several intermediate layers and a single output neuron enabling the prediction of a continuous value. It processes well-defined frequency bands with 0.25 Hz resolution, mapping the amplitudes that most closely match the expected frequencies, so that the number of input neurons is kept fixed regardless of the signal size.\n\n![Alt text](docs/flowchart.png)\n\n### Inputs\n\n- `signal (List[float])`: signal to have its RPM estimated.\n- `sampling_frequency (float)`: sampling frequency used to acquire the signal.\n\n### Outputs\n\n- `estimation_success (bool)`: estimation task status.\n- `estimated_rpm (float)`: estimated RPM value.\n- `confidence_margin (float)`: estimation confidence margin.\n\n### Conditions\n\n- Minimum sampling frequency admitted: 4 kHz.\n- Maximum shaft speed covered: 30,000 RPM.\n\n### Running the app directly from the Python script\n\nIt is usually common to need to run the app directly using Python for development and testing purposes, without the need to use Docker, which will only be required for its automatic deployment.\n\n_Inside the project folder, create a virtual environment._\n\n    python3 -m venv .venv\n\n_Activate the virtual environment._\n\n    source .venv/bin/activate\n\n_Update the Pip._\n\n    pip install --upgrade pip\n\n_Install the app dependencies._\n\n    pip install -r requirements.txt\n\n_Run the app._\n\n    python app/main.py\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flfgodoi%2Frpm-deep-guesser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flfgodoi%2Frpm-deep-guesser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flfgodoi%2Frpm-deep-guesser/lists"}