Este es un estetoscopio de bajo costo construido a partir de piezas estándar que escuchan y clasifican el sonido de sus pulmones.
En vista de las restricciones a la movilidad debido al escenario de bloqueo mundial debido a la pandemia, las consultas médicas cara a cara son difíciles. Pero la industria de la salud continúa evolucionando y está adoptando la telemedicina para facilitar la accesibilidad de los servicios de atención médica. La telemedicina es una combinación de tecnologías de la información y la comunicación con la ciencia médica. Sin embargo con la telemedicina solo podemos diagnosticar enfermedades comunes, ya que no es posible realizar un examen físico, lo que puede aumentar el número de diagnósticos erróneos. Una gran mayoría de la población india sufre de enfermedades cardiovasculares y respiratorias. La inspección física es un proceso obligatorio para un diagnóstico adecuado.
Todos los médicos tienen un estetoscopio, pero ¿cuántas personas tienen el suyo? Y los estetoscopios digitales en el mercado generalmente no son asequibles a nivel individual, especialmente en países en desarrollo y comunidades con dificultades, son una gran herramienta para el médico, no obstante en telemedicina, necesitamos la herramienta para poder diagnosticar pacientes de forma remota.
Por lo tanto, la idea es desarrollar una solución que combine cualquier estetoscopio normal emparejado con un micrófono de ancho de banda amplio y que registre el sonido del corazón o del sistema respiratorio mediante un teléfono inteligente. Una aplicación diseñada que detecta el dispositivo, analiza la grabación en busca de signos de síntomas específicos. Para este proyecto actualmente junto con síntomas potenciales de infección del tracto respiratorio superior, enfermedad pulmonar obstructiva crónica o neumonía, ya que estos son los síntomas más comunes asociados con COVID-19. Esta idea pertenece únicamente a Peter Ma y este es un enlace al proyecto Digital Stethoscope AI.
Aquí el objetivo es construir el proyecto sin profundizar en el aprendizaje automático. Edge Impulse es una startup emergente que está haciendo un gran trabajo al cerrar la brecha entre los ingenieros de firmware / hardware y los ingenieros de Machine Learning. Se puede procesar una gran variedad de entradas, incluidos radar, movimiento, campos electromagnéticos, audio, imágenes y registros de dispositivos. Todo esto se puede hacer en su microcontrolador o teléfono móvil o incluso en su PC. Incluso puedes poner el mismo modelo en diferentes dispositivos y el proceso sigue siendo el mismo.
Aquí he usado un circuito de filtro para eliminar sonidos excepto los pulmonares. Puede continuar sin conectar este circuito de filtro, pero puede perder algo de precisión al realizar la detección a través del modelo.
Hardware
El procesamiento de audio es una parte integral de nuestro sistema y, dado que estamos tratando con señales biomédicas, debemos asegurarnos de que solo se retengan los datos de interés y todo lo demás se filtre.
En sujetos con pulmones sanos, el rango de frecuencia de los sonidos respiratorios vesiculares se extiende a 1000 Hz, mientras que la mayor parte de la potencia dentro de este rango se encuentra entre 60 Hz y 600 Hz. Otros sonidos, como sibilancias o estridor, a veces pueden aparecer en frecuencias superiores a 2000 Hz. En el rango de frecuencias más bajas (<100Hz), los sonidos cardíacos y musculares se superponen. Por lo tanto, este rango debe filtrarse para la evaluación de los sonidos pulmonares.
En consecuencia, para reducir la influencia de los sonidos cardíacos y musculares, así como el ruido, y para evitar el aliasing, filtramos todas las señales de sonido mediante un filtro de paso de banda, utilizando un paso de banda de 1 00 Hz a 2, 100 Hz . A continuación puede ver el circuito de filtro de paso de banda.
Tenemos que comprar un estetoscopio básico y un micrófono de cuello que tiene un conector mono para conectarlo a la PC. Corte el tubo del estetoscopio cerca del inicio e inserte el micrófono firmemente y luego conecte el micrófono al circuito del filtro y la salida del circuito del filtro va a la PC.
Al cortar el cable del micrófono en dos piezas, encontrará dos cables que están aislados entre sí mediante un revestimiento que se aplica a cada hebra del cable. Enrolle los hilos de alambre y retire el aislante interno como se muestra a continuación.
Para quitar el aislamiento de cada hebra hay que aplicar un poco de calor. Después de eso, simplemente cepille suavemente el material aislante quemado con las manos. Go puede ver estos videos si se queda atascado.
Ahora conecte el pin de tierra al micrófono de la tierra del circuito del filtro y el pin de señal a la entrada del circuito del filtro. Proporcione la fuente de alimentación mediante un adaptador de 5 V CC. El ensamblaje final debería verse así. Los pines del cabezal se utilizan para conectar la fuente de alimentación y verificar la salida del filtro si se requiere un ajuste de ganancia.
Ahora estamos listos para pasar a la parte del software.
Software
1. Para ponerlo en funcionamiento, primero debemos registrarnos para obtener una cuenta de Edge Impulse, ¡ y adivinar qué es gratis! Sí, es cierto que puedes construir un proyecto genial sin gastar un centavo.
Después de ingresar su información y verificar su correo electrónico, será recibido por una página de inicio. Esto lo guiará a través del proceso de conectar un dispositivo, recopilar datos y finalmente implementar un modelo. Ingresa a tu cuenta y dale un nombre a tu proyecto, puede ser lo que quieras.
2. Después de eso, debe conectar un dispositivo al servicio Edge Impulse. Aquí, el dispositivo puede ser cualquier cosa, desde un microcontrolador hasta un teléfono o una computadora portátil. He utilizado mi computadora portátil para la tarea de adquisición de datos.
El modelo se entrenaría con los datos adquiridos por el dispositivo conectado, por lo tanto, el modelo proporcionaría resultados precisos solo para los datos de entrada específicos de ese dispositivo. Por lo tanto, seleccione también el dispositivo de implementación como dispositivo de adquisición. Deberías obtener una página como esta
Ahora haga clic en el hipervínculo “esta URL” y eso lo llevará a la página de recopilación de datos. Obtendría algo como esto.
3. Ahora mantenga abierta esta página web, acceda a la pestaña de recopilación de datos en el sitio de Edge Impulse y conecte la configuración de su estetoscopio y micrófono a su PC. Ajuste la configuración del micrófono de su PC para obtener resultados precisos. Puede ir a este enlace para obtener más detalles https://www.windowscentral.com/setting-your-headset-windows-10 .
Después de esto, en la pestaña de recopilación de datos, modifique las opciones en la etiqueta “Registrar nuevos datos”. Elija el micrófono como el sensor con la frecuencia de muestreo más alta, ya que no queremos perdernos ninguna señal importante, nombre el tipo de sonido que está grabando en la opción “Etiqueta” y seleccione el dispositivo de adquisición de datos que está utilizando para grabar muestras. Una muestra puede tener cualquier longitud siempre que contenga datos suficientes para generar entidades. Lo mantuve en 10 seg.
4. Haga clic en la pestaña DATOS SIN PROCESAR para comenzar a muestrear. Se le pedirá que permita el acceso a los datos de registro del dispositivo. Una vez concedido el acceso, se inicia el muestreo. El micrófono que usé no pudo detectar los sonidos de los pulmones a través de mi camiseta, así que tuve que quitarme la camiseta y colocarla justo encima de la base de mis pulmones. La imagen indica la posición del estetoscopio para una recopilación de datos adecuada.
Inhala y exhala durante el período de tiempo seleccionado. Espere un momento hasta que se carguen los datos. Cuando se hayan cargado los datos, verá aparecer una nueva línea en ‘Datos recopilados’. También verá la forma de onda del audio en el cuadro ‘DATOS SIN PROCESAR’. Puede usar los controles que se encuentran debajo para escuchar el audio que se capturó. Repita este proceso hasta que esté satisfecho con las variantes de las diferentes etiquetas de datos que tiene. Tomé alrededor de 1 minuto, es decir, 6 X 10 segundos por muestra de datos para cada una de las diferentes categorías de sonido que desea que detecte su modelo.
5. Una vez que la adquisición de datos se realiza con éxito, tenemos que crear el modelo y definir sus parámetros. Aquí es donde Edge Impulse se destaca y simplifica las cosas. Con el entrenamiento establecido, puede diseñar un impulso. Un impulso toma los datos sin procesar, los divide en ventanas más pequeñas, usa bloques de procesamiento de señales para extraer características y luego usa un bloque de aprendizaje para clasificar nuevos datos. Los bloques de procesamiento de señales siempre devuelven los mismos valores para la misma entrada y se utilizan para hacer que los datos sin procesar sean más fáciles de procesar, mientras que los bloques de aprendizaje aprenden de experiencias pasadas.
Para este tutorial, usaremos el bloque de procesamiento de señales “MFCC”. MFCC son las siglas de Mel Frequency Cepstral Coefficients. Esto suena aterrador, pero básicamente es solo una forma de convertir el audio en bruto, que contiene una gran cantidad de información redundante, en una forma simplificada. Luego, pasaremos estos datos de audio simplificados a un bloque de red neuronal, que aprenderá a distinguir entre las diversas clases de audio. Dado que usaremos principalmente este modelo en el teléfono o la computadora portátil, la memoria no es una restricción aquí, por lo que podríamos entrenar tantas clases como queramos.
Edge Impulse divide las muestras sin procesar en ventanas que se introducen en el modelo de aprendizaje automático durante el entrenamiento. El campo Tamaño de la ventana controla la duración, en milisegundos, de cada ventana de datos. Una muestra de audio de un segundo será suficiente para determinar si un grifo está funcionando o no, por lo que debe asegurarse de que el tamaño de la ventana esté configurado en 1000 ms. Puede arrastrar el control deslizante o escribir un nuevo valor directamente. Cada muestra sin procesar se divide en varias ventanas, y el campo de aumento de ventana controla el desplazamiento de cada ventana posterior desde la primera. Por ejemplo, un valor de tamaño de ventana de 1000 ms daría como resultado que cada ventana comenzara 1 segundo después del comienzo de la anterior.
Al establecer un aumento de ventana que sea más pequeño que el tamaño de la ventana , podemos crear ventanas que se superponen. En realidad, esta es una gran idea. Aunque pueden contener datos similares, cada ventana superpuesta sigue siendo un ejemplo único de audio que representa la etiqueta de la muestra. Al usar ventanas superpuestas, podemos aprovechar al máximo nuestros datos de entrenamiento. Por ejemplo, con un tamaño de ventana de 1000 ms y un aumento de ventana de 100 ms, podemos extraer 10 ventanas únicas de solo 2 segundos de datos. El bloque de datos sin procesar se ve así para mí, ya que me da la salida deseada con gran precisión. Puede ajustar estos parámetros para obtener los resultados deseados.
A continuación, haga clic en Agregar un bloque de procesamiento y elija el bloque ‘MFCC’. Una vez que haya terminado con eso, haga clic en Agregar un bloque de aprendizaje y seleccione ‘Red neuronal (Keras)’. Finalmente, haz clic en Guardar impulso . Tu impulso ahora debería verse así:
6. Ahora que hemos ensamblado los componentes básicos de nuestro Impulse, podemos configurar cada parte individual. Haga clic en la pestaña MFCC en el menú de navegación de la izquierda. Verá una página que se ve así:
No se preocupe por los parámetros del MFCC, ya que Edge Impulse proporciona valores predeterminados sensibles que funcionarán bien para muchos casos de uso, por lo que podemos dejar estos valores sin cambios.
Los datos del MFCC se pasan a una arquitectura de red neuronal que es buena para reconocer patrones en forma tabular de datos. Antes de entrenar nuestra red neuronal, puede hacer clic en el botón Generar características en la parte superior de la página y luego hacer clic en el botón verde Generar características . Puede ignorar la herramienta del explorador de características, que no es particularmente útil cuando se trabaja con MFCC. Pero aún puedes jugar con él.
7. Con todo el preprocesamiento, ahora estamos listos para entrenar la red neuronal con estos datos. Haga clic en NN Classifier en el menú de la izquierda. Verás la siguiente página:
Sugiero continuar con la configuración predeterminada que se ha generado para el modelo. Una vez que se completa el primer entrenamiento, puede ajustar estos parámetros para que el modelo funcione con precisión. Para comenzar a entrenar, haga clic en Iniciar entrenamiento . El entrenamiento tomará unos minutos. Cuando esté completo, verá que el panel de rendimiento del último entrenamiento aparece en la parte inferior de la página de esta manera:
Ahora puede cambiar algunos valores en la configuración. La cantidad de ciclos de entrenamiento significa que el conjunto completo de datos se ejecutará a través de la red neuronal 300 veces durante el entrenamiento. Si se ejecutan muy pocos ciclos, la red no habrá aprendido todo lo que pueda de los datos de entrenamiento. Sin embargo, si se ejecutan demasiados ciclos, la red puede comenzar a memorizar los datos de entrenamiento y ya no funcionará bien con datos que no ha visto antes. A esto se le llama sobreajuste. Aquí nuestro objetivo es obtener la máxima precisión ajustando los parámetros.
La calificación de confianza mínima significa que cuando la red neuronal hace una predicción de acuerdo con este umbral. Por ejemplo, si existe una probabilidad de 0.8 de que algún audio contenga ruido, Edge Impulse lo ignorará a menos que esté por encima del umbral de 0.8.
8. Ahora, aunque el modelo muestra una buena precisión, tenemos que probarlo con datos reales. Por lo tanto, haga clic en Clasificación en vivo en el lado izquierdo.
menú. Su dispositivo debería aparecer en el panel ‘Clasificar nuevos datos’. Capture 5 segundos de ruido de fondo haciendo clic en Iniciar muestreo. La muestra se capturará, cargará y clasificará. Una vez que esto haya sucedido, verá un desglose de los resultados.
9. El momento de la verdad: verifiquemos si el modelo puede clasificar con precisión los datos entrantes en vivo. Active la pestaña de recopilación de datos y seleccione el modo de clasificación. Coloque su estetoscopio en el lóbulo inferior del pecho y comience a inhalar y exhalar. Debería obtener resultados de clasificación como este.
¡Viva! Ahora pruebe esto con los miembros de su familia.
Recursos:
Impulso de borde: https://docs.edgeimpulse.com/docs/audio-classification
Peter Ma: https://www.hackster.io/Nyceane
Lista de reproducción de sonido de los pulmones: https://www.youtube.com/playlist?list=PL3n8cHP87ijAalXtLG2YbDpuwjxuJRR-A
Fabuloso trabajo, ¡Felicidades!