Detecting Bad Posture With Machine Learning – Towards AI

Detecting Bad Posture With Machine Learning – Towards AI

Terakhir Diperbaharui pada 11 November 2022 oleh Tim Redaksi

Pengarang: Leon Eversberg

Gambar seseorang dengan nyeri punggung bawahFoto oleh Julien Tromeur di Unsplash

Menurut Organisasi Kesehatan Dunia, kondisi muskuloskeletal adalah kontributor utama kecacatan di seluruh dunia, dengan nyeri punggung bawah menjadi kontributor utama [1]. Menggunakan pembelajaran mesin canggih dan visi komputer, sekarang dimungkinkan untuk secara otomatis mendeteksi postur tubuh yang buruk dan memberikan umpan balik secara real-time, yang secara signifikan dapat mengurangi risiko gangguan muskuloskeletal [2].

Pada artikel ini, pertama-tama Anda akan belajar tentang metode observasi yang relevan untuk mengevaluasi ergonomi. Kemudian, kami akan menerapkan pengetahuan ini dalam praktik untuk membuat contoh kerja dengan Python menggunakan webcam dan model pembelajaran mesin dari MediaPipe Google.

Metode untuk Mengevaluasi Ergonomi

Dalam metode evaluasi ergonomis observasional, para ahli mengamati orang-orang yang melakukan pekerjaan mereka. Sementara itu, mereka mengisi lembar kerja standar seperti Rapid Upper Limb Assessment (RULA), Rapid Entire Body Assessment (REBA), Ovako Working Posture Analysis System (OWAS) atau Ergonomic Assessment Work Sheet (EAWS). Pada artikel ini, kami akan fokus pada RULA karena RULA umum digunakan dalam praktik, cepat dan mudah diterapkan, dan hasilnya berkorelasi baik dengan kondisi muskuloskeletal terkait. [3].

RULA diterbitkan oleh McAtamney dan Corlett dalam jurnal ilmiah Ergonomi Terapan pada tahun 1993 dan sebagian besar berfokus pada postur tungkai atas. RULA mendefinisikan rentang sudut sendi untuk leher, batang tubuh, lengan, pergelangan tangan, dan kaki. Semakin buruk posturnya, semakin banyak poin yang Anda dapatkan. Pada akhirnya, semua poin ditambahkan, dan skor total diberikan, sedangkan skor total berkisar dari “postur yang dapat diterima” hingga “perubahan diperlukan segera” [4].

Postur seseorang dievaluasi dengan tabel di RULAContoh sederhana RULA untuk postur yang dapat diterima. Sumber: Gambar oleh penulis.

Evaluasi Sudut Belakang Otomatis Menggunakan MediaPipe dan OpenCV

Di bagian berikut, kita akan menulis skrip dengan Python untuk mengevaluasi sudut fleksi trunk secara real time dari webcam, seperti yang ditunjukkan pada demo GIF di bawah ini.

Seseorang membungkuk saat sudut bagasi diperkirakan secara real-timeDemo GIF menunjukkan hasilnya. Sumber: Gambar oleh penulis.

Pertama, kita memerlukan model pembelajaran mesin yang telah dilatih sebelumnya yang mendeteksi sendi tubuh dalam gambar/video. Di sini, kita akan menggunakan Pose MediaPipe Google, yang didasarkan pada jaringan saraf convolutional BlazePose [5]. MediaPipe memperkirakan 33 titik kunci tubuh yang disebut landmark pose, hanya diberikan gambar RGB sebagai input dan tidak memerlukan GPU. Setiap tengara memiliki x, y dan z koordinat dunia nyata dalam meter yang berasal dari pinggul.

Untuk menginstal MediaPipe menggunakan Pip, kita hanya perlu menjalankan perintah pip install mediapipe. Dokumentasi memberikan contoh Python minimal berikut menggunakan webcam, yang akan kita gunakan dan kembangkan.

https://medium.com/media/0013347419eb2adba24bc8f127765612/href

Baris yang paling penting adalah results = pose.process(image), yang berisi 33 poin kunci tubuh. Kita dapat mengaksesnya dengan landmarks_3d = results.pose_world_landmarks.

Setiap indeks tengara sesuai dengan titik kunci tubuh. Untuk daftar semua poin kunci yang tersedia, lihat dokumentasi model landmark pose. Sebagai contoh, kita dapat mengakses koordinat x, y dan z dari hidung dengan baris kode berikut:

# dapatkan poin kunci dari hasil mediapipe result = pose.process(image) landmarks_3d = results.pose_world_landmarks # hidung sama dengan indeks 0 x_nose = landmarks_3d.landmark[0].x y_nose = landmarks_3d.landmark[0].y z_nose = landmarks_3d.landmark[0].z

Seperti yang ditunjukkan pada gambar di bawah, dengan MediaPipe Pose, kita sekarang bisa mendapatkan sendi bahu, pinggul, dan lutut. Menggunakan titik tengah dengan rata-rata sambungan kiri dan kanan, kita mendapatkan tiga titik berikut A, B, dan C, dengan sudut di antaranya.

Gambar orang membungkuk.  Sudut fleksi belakang theta dan tiga titik dari bahu, pinggul, dan lutut ditarik.Sudut fleksi belakang dapat diperkirakan menggunakan tiga titik tengah bahu, pinggul, dan lutut dari MediaPipe Pose. Sumber: Gambar oleh penulis.

Sudut dapat dihitung menggunakan geometri dasar:

https://medium.com/media/4a38a9a94a8437a370cb8108dbe059cf/href

Menurut RULA, REBA, dan EAWS, sudut fleksi trunk dapat diklasifikasikan menjadi tiga kelas: 0–20°, 20°-60° dan >60°. Kami akan menggunakan ketiga kelas ini untuk membedakan antara postur punggung yang berisiko rendah, sedang, dan tinggi. Perhatikan bahwa sudut kami dimulai pada 180 ° dalam posisi tegak, sedangkan metode untuk mengevaluasi ergonomi menentukan posisi ini sebagai 0 °. Oleh karena itu, kita harus menyesuaikan sudut kita dengan mengurangkan 180°.

Kode Python di bawah ini membuat kelas Ergonomi, di mana update_joints() membaca landmark 3D dari MediaPipe, menghitung sudut fleksi trunk dengan tiga titik A, B, dan C menggunakan get_angle() dan memvisualisasikan tiga kelas dalam warna hijau, kuning, dan merah menggunakan get_trunk_color().

https://medium.com/media/ffeffabfbacf150c2c336ecee0a8c179/href

Kode kerja lengkap untuk demo webcam tersedia di GitHub saya. Jangan ragu untuk bereksperimen dan membangun kode, misalnya, tambahkan evaluasi leher, lengan, dan kaki. Selain penggunaannya untuk ergonomi di tempat kerja, area aplikasi lain adalah dalam industri kebugaran, misalnya untuk memeriksa postur selama gerakan jongkok atau menekan.

Video demo di bawah dari ketua universitas, Jaringan Kelas Industri, dan Awan dari TU Berlin, menunjukkan evaluasi ergonomis terperinci berdasarkan RULA menggunakan kamera Microsoft Azure Kinect [6]. Evaluasi ergonomi otomatis dilakukan sesuai dengan metodologi yang dijelaskan dalam artikel ini. Pekerjaan penelitian serupa telah diterbitkan baru-baru ini, misalnya, alat ErgoSentinel [7] didasarkan pada RULA, dan ErgoExplorer [8] didasarkan pada REBA.

https://medium.com/media/387e3fd43910c1d44152ac7d9f579758/href

Kesimpulan

Menggunakan pembelajaran mesin modern dan visi komputer untuk pelacakan tubuh, Anda dapat dengan mudah membangun aplikasi untuk umpan balik ergonomis real-time. Area aplikasi yang memungkinkan adalah di tempat kerja atau, misalnya, di industri kebugaran.

Sumber daya tambahan

Panduan Langkah demi Langkah untuk Alat Penilaian RULA dari ErgoPlus: https://ergo-plus.com/rula-assessment-tool-guide/

Lembar Kerja Penilaian Karyawan RULA dari ErgoPlus: https://ergo-plus.com/wp-content/uploads/RULA.pdf

Referensi

[1] Organisasi Kesehatan Dunia, Kesehatan Muskuloskeletal (2022), https://www.who.int/news-room/fact-sheets/detail/musculoskeletal-conditions

[2] N. Vignais et al., Sistem inovatif untuk umpan balik ergonomis real-time di industri manufaktur (2013), https://doi.org/10.1016/j.apergo.2012.11.008

[3] D. Kee, Perbandingan Sistematis OWAS, RULA, dan REBA Berdasarkan Literature Review (2022), https://doi.org/10.3390/ijerph19010595

[4] L. McAtamney dan EN Corlett, RULA: metode survei untuk investigasi gangguan ekstremitas atas terkait pekerjaan (1993), https://doi.org/10.1016/0003-6870(93)90080-S

[5] V. Bazarevsky dkk., BlazePose: Pelacakan Pose Tubuh Real-time di Perangkat (2020), https://arxiv.org/abs/2006.10204

[6] L. Eversberg, C. Sohst, J. Lambrecht, Assistenzsystem zur Verbesserung der Ergonomie/Sistem bantuan untuk meningkatkan ergonomi — Mencegah gangguan muskuloskeletal di bidang manufaktur dengan kecerdasan buatan (2022), https://doi.org/10.37544/1436-4980- 2022-09-68

[7] VM Manghisi et al., PEMANTAUAN RISIKO POSTURAL ERGONOMIS OTOMATIS PADA SHOPFLOOR PABRIK THE ERGOSENTINEL TOOL (2020), https://doi.org/10.1016/j.promfg.2020.02.091

[8] MM Fernandez et al., ErgoExplorer: Interactive Ergonomic Risk Assessment dari Video Collections (2022), https://arxiv.org/abs/2209.05252

Mendeteksi Postur Buruk Dengan Pembelajaran Mesin awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Author: Jonathan Kelly