 
 Research Article - International Research Journal of Engineering Science, Technology and Innovation ( 2025) Volume 11, Issue 1
Received: 19-Mar-2024, Manuscript No. irjesti-24-129994; Editor assigned: 22-Mar-2024, Pre QC No. irjesti-24-129994 (PQ); Reviewed: 05-Apr-2024, QC No. irjesti-24-129994; Revised: 17-Mar-2025, Manuscript No. irjesti-24-129994 (R); Published: 24-Mar-2025, DOI: 10.14303/2315-5663.2025.123
The implementation of a drowsiness-driving detection system using Maixdock. Drowsy driving can be defined as a behavioral decline in driving skills. In this work, deep learning has been used to classify drowsiness symptoms such as blinking and yawning. The sample images were used to train the CNN architecture. A 4-layer convolution filter has been added as a layer in this CNN architecture. Adam optimization algorithm was then used to train the CNN. A real-time study on the effectiveness of this prototype was conducted on 10 individuals. This proposed system successfully demonstrates a classification accuracy rate between 80%. Other factors that can affect the rate of classification accuracy, such as camera distance from the driver and lighting factors, are also studied. If the driver is drunk, then the vehicle ignition will not start until the driver is not changed. In case the car is already in driving condition, then the system alerts the driver using a buzzer and pulse sensor also detects the readings and alerts the driver, if the risk is present or not. It collects information using a variety of sensors and an onboard camera. The collected data can then be uploaded to a central server.
Driver drowsiness detection, Fatigue detection, Road safety, Behavioral parameters, Vehicular parameters, Physiological parameters, Non-intrusive detection, Machine learning, Image processing techniques, Classifiers, CNNInternational
Drunk driving and drowsiness pose serious risks to road safety, increasing the likelihood of deadly collisions, serious injuries and high expenses (Singh, et al., 2011). The National Highway Traffic Safety Administration (NHTSA) has recorded 91,000 police-reported crashes involving sleepy drivers in 2017 alone (Rahman, et al., 2015). These alarming numbers highlight the dangerous repercussions of driving while intoxicated. Similarly, alcohol-impaired driving is still a major problem; in 2021, 13,384 fatalities-or 31% of all road crash deaths in the US-were linked to such instances (Jie, et al., 2018). The seriousness of these figures emphasises how crucial it is to treat the underlying causes of drunk driving and drowsy driving to improve road safety (In-Ho Choi, et al., 2014).
Even with concentrated efforts to prevent drunk driving and sleepiness while driving, it is still difficult to precisely measure the incidence of these conditions (Rahim et al., 2015). The hidden nature of drunk driving and weariness behind the wheel, along with the complexity of human behavior, make it challenging to determine the full degree of their effects on traffic safety. Underreporting along with variations in data collection techniques also make it harder for us to understand the issue (Fujiwara et al., 2018). The Zebra's research, which details more than 9,000 car accidents in a single year that were caused by fatigued driving, highlights the severity of the problem and inspires calls for creative solutions to deal with this persistent hazard (Kongcharoen, et al., 2020). Comparably, the underreporting of incidents involving alcohol and driving highlights the necessity for more effective detection and monitoring systems to precisely evaluate the risks and stop such incidents in the future (Jacob, 2022).
It is critical to identify sleepiness in drivers as soon as possible in order to reduce the likelihood of accidents caused by fatigue. Conventional approaches, which rely on observable behaviours that might not always be present or might happen too late to avoid an accident, have limitations. Examples of these behaviours include monitoring physiological indicators like eyelid closure or head nodding. By combining cutting-edge technology like computer vision with machine learning algorithms, it is possible to identify signs of drowsiness early on by observing minute variations in head postures, eye movements and facial expressions. By utilizing these technologies, it will be possible to prevent accidents caused by fatigue by proactively identifying and addressing potential causes, which will lower the risk of crashes and save lives.
Moreover, early diagnosis of tiredness has advantages that go beyond averting mishaps. Integrated safety systems have the potential to improve driving habits by warning drivers when they are sleepy and motivating them to take breaks or find other ways to get about. This not only improves personal safety but also eases traffic congestion and improves overall flow of traffic on the highways. Additionally, as proactive steps to address fatigue-related risks may result in fewer accidents and claims, early detection of drowsiness can have a favorable impact on liability and insurance premiums.
Incorporating early detection of drowsiness into vehicle safety systems represents a significant step towards achieving comprehensive road safety. By addressing the root causes of fatigue-related accidents and providing timely interventions, we can work towards creating safer roads for everyone (Figure 1).
Figure 1. Distribution chart for causes of accidents.
Related works
Percentage of Eye Closures (PERCLOS) system: This method utilizes camera-based image analysis to closely monitor various parameters such as eyelid movement, eye gazing, head nodding and yawning. By capturing real-time images of the driver's face, sophisticated image processing techniques are employed to extract relevant features. These features are then processed using algorithms and classifiers to detect patterns indicative of fatigue or drowsiness. For instance, changes in eyelid closure rates and prolonged periods of eye closure can be significant indicators of drowsiness.
Additionally, variations in eye gazing and head nodding can also provide valuable insights into the driver's alertness level. The system calculates the Percentage of Eye Closures (PERCLOS) based on these parameters, which serves as a reliable metric for assessing driver fatigue. Upon detecting signs of drowsiness, the system promptly alerts the driver through vibrations and alarms, thereby enhancing driver safety. Furthermore, the system records critical driving performance data for future analysis, allowing for continuous improvement and refinement of drowsiness detection algorithms.
Ocular blink monitoring: Ocular blink monitoring involves a multi-step process for detecting drowsiness based on eye behaviour. Initially, the system employs face detection algorithms, such as the viola-jones algorithm, to locate the driver's face within the camera's field of view. Subsequently, eye detection techniques are utilized to identify the position and characteristics of the driver's eyes. Once the eyes are detected, ocular feature points are identified to track eye movements accurately. The system determines the state of the eyes, including open, closed or partially closed, based on the detected ocular features. If the driver's eyes remain closed for a predetermined duration, typically 2 seconds or longer, the system activates an alarm to alert the driver of potential drowsiness. This method achieves a high accuracy rate of 94% in detecting drowsiness, making it a reliable solution for monitoring driver fatigue.
Yawning detection: Yawning detection involves employing computer vision techniques to identify and analyze yawning behavior in drivers. This method utilizes face detection algorithms, such as the Viola-Jones algorithm, to locate the driver's face within the camera's field of view. Subsequently, spatial fuzzy c-means clustering is used to identify the lip region and detect yawning based on changes in lip morphology. Additionally, Local Binary Patterns (LBP) are utilized for mouth-covered detection to further enhance yawning detection accuracy. By combining these computer vision techniques, the system can effectively detect yawning behavior, which is often indicative of drowsiness in drivers. This comprehensive approach enhances overall driver safety by providing timely alerts when signs of fatigue are detected.
Tracking head pose and gaze direction: Head pose and gaze direction tracking involve analyzing head movements and pupil direction to detect drowsiness in drivers. This method utilizes image processing techniques, such as Kanade-Lucas-Tomasi (KLT) tracking and Viola-Jones object detection, to accurately track head movements and gaze direction in real-time. By analyzing changes in head pose and pupil direction, the system can effectively identify signs of drowsiness. This innovative approach offers accurate real-time tracking of driver gaze direction and head motions, providing valuable insights into the driver's alertness level. By integrating head pose and gaze direction tracking, this method presents an advanced solution for drowsiness detection in drivers.
Pulse sensor method: This system was proposed by Rahim where Infrared heart-rate sensors or pulse sensors are used to detect sleepy drivers. It is attached to the driver's finger or hand and the pulse sensor measures the heart rate. It catches the amount of blood flowing through the finger as it is attached to the finger or hand. The system measures the oxygen content in the blood within the finger, causing infrared light to reflect back to the transmitter. The sensor detects these oxygen level fluctuations, which are then transmitted to the microcontroller. The heart rate is then shown via software processing that makes use of HRV frequency domain analysis. The results of the experiment show that as drivers go from being awake to being sleepy, the LF/HF (Low to High-Frequency) ratio declines. Based on this, timely alerts can be used to prevent fatal accidents.
Heart rate variability and EEG: This method proposed by Koichi Fujiwara, et al., offers a significant advantage by utilizing Heart Rate Variability (HRV) as a physiological signal for drowsiness detection. This strategy avoids the difficulties of depending exclusively on EEG recordings, which can be challenging to reliably capture during driving due to motion problems. Participants wear a sensor to capture RR Interval (RRI) fluctuations from their Electrocardiogram (ECG). Multivariate Statistical Process Control (MSPC) approaches are then used to continually monitor variations in the numerous HRV variables that were extracted from the RR interval data. Additionally, sleep scoring and sleepiness state detection are also done with the help of EEG data that was recorded while driving.
Using CNN and Haar-Cascade: Wissarut Kongcharoen et al., introduced a real-time eye state detection system using Convolutional Neural Network (CNN) to alert drivers if their eyes are closed for over two seconds, ensuring safer driving.
Yuenyong Nilsiam, et al., proposed an IoT-based system for eye tracking to prevent accidents caused by drowsy drivers. Their study evaluates various eye recognition algorithms, with the CNN using Haar Cascade algorithm achieving 94% accuracy in detecting driver's eyes, offering promising accident prevention capabilities.
Jumana R and Chinnu Jacob, et al., presented a deep CNN-based method. In order to accurately detect drivers while they are operating a car, their method uses a two-dimensional CNN model to extract facial traits and classify drivers into sleepy and non-sleepy groups.
Proposed system
This system is built on top of the Internet of Things (IoT) technology; it therefore develops the driver drowsiness detection system that is efficient. At the very core of this ecosystem we find the use of a set of advanced hardware that is composed of Kendryte Processing Unit and the MaixDock M1 AI Chipset. The Kendryte processing unit is known to be among the best processors in face detection features design with high precision and efficiency in real-time processing. This processor, therefore, provides with the ability to make the system capable of precisely tracking facial features and even small indicators showing driver drowsiness. Taking advantage of the processing power of the MaixDock M1 AI Chipset, we can achieve smooth functioning and easy integration in the vicinity of the vehicle.
By combining these elements of hardware, the system can keep looking at the driver's face expressions, eye movements and ultimately, any patterns that the system can detect as fatigue or drowsiness. With the use of intricate algorithms and a machine learning approach, the gathered data is then looked at and in real-time it is identified if the driver is showing impairment. Once the system notifies the occurrence of the situation, the system promptly provides early warning signals or responds as required to minimize the hazard of accidents.
MaixDock M1 chipset: The MaixDock M1 chipset serves as the central processing unit of our driver drowsiness detection system, analyzing real-time data from vehicle sensors, such as cameras and motion sensors. It swiftly processes AI algorithms, detecting signs of driver fatigue like drooping eyelids. Through continuous monitoring and comparison with predefined criteria, it assesses the likelihood of impairment and triggers notifications or interventions, such as alarms or car assistance activation. Its robust computing capacity and efficient process management contribute to effective drowsiness detection, enhancing road safety.
MaixDock M1 chipset utilizes advanced AI technology to analyze imagery and motion data captured by vehicle sensors. It processes this data to detect signs of driver drowsiness, such as drooping eyelids or changes in facial expressions. If a significant risk is identified, the chipset triggers alerts or activates emergency measures, such as emergency lights or vehicle assistance features. The chipset can be connected to an Arduino Nano via communication interfaces like UART, I2C or SPI, allowing it to relay processed data to the Arduino Nano for further action, such as activating warning signals or interfacing with vehicle networks.
Arduino nano chipset: The Arduino Nano is a compact microcontroller board renowned for its versatility in electronic projects. Powered by the Atmega328P microcontroller, it boasts digital and analog input/output pins, serial communication interfaces and built-in voltage regulators. With its user-friendly Arduino IDE, programming becomes seamless, accommodating both beginners and advanced users in languages like C or C++. Its array of pins facilitates interaction with sensors, actuators and displays, while integrated UART and I2C interfaces enable seamless communication with external devices and peripherals, enhancing project integration and functionality.
Integration: PIn this Proposed system, a multi-dimensional monitoring tool is scrutinized, drafted to ensure comprehensive driver assessment. This integration encompasses drowsiness, heart rate, alcohol and GPS data to provide a detailed evaluation of the driver's condition. Through the seamless fusion of these critical parameters, the system aims to enhance road safety by promptly identifying potential risks and alerting both the driver and relevant authorities.
Drowsiness, heart rate, alcohol, GPS implementation
The proposed driver drowsiness detection system utilizes the Maixdock M1's chipset, featuring advanced Convolutional Neural Network (CNN) algorithms for facial feature extraction. Through MaixHub, the system undergoes training and learning stages to ensure accurate facial identification. Once trained, the MaixDock processes incoming video feeds from onboard cameras, swiftly analyzing facial expressions for signs of drowsiness.
Integrated with the Arduino Nano, serving as the central controller, the system triggers alarms and transmits data. The Arduino Nano receives signals indicating driver drowsiness from the MaixDock and activates alarms to alert the driver. Simultaneously, it sends necessary data to the ESP8266 NodeMCU for cloud-based storage and further analysis.
The NodeMCU ensures real-time data transmission to Firebase Cloud for secure storage and retrieval of critical information, including drowsiness detection alerts and metadata. Additionally, customized components such as the MAX8502 sensor for heart rate monitoring, MQ2 sensor for alcohol detection and NEO6M GPS chip for live location tracking enhance the system's capabilities, ensuring comprehensive driver safety monitoring.
Integrating advanced sensors and algorithms with extensive monitoring functions, the system presents a pioneering solution to combat drowsiness-related driving risks, prioritizing the safety of all road users.
Integration with arduino uno
The integration between the MaixDock M1 and Arduino Nano enables our driver drowsiness detection system to function seamlessly. The MaixDock M1 detects driver drowsiness using facial recognition and signals the Arduino Nano to activate an alarm. The Arduino Nano interprets the signal and triggers the alarm, alerting the driver. Simultaneously, it transmits data to a NodeMCU ESP8266 for cloud-based storage via Wi-Fi. The NodeMCU sends the gathered data to a Firebase Cloud server for storage and analysis, ensuring efficient data management and enhancing road safety by preventing accidents caused by driver fatigue.
Workflow: Careful steps have been taken to achieve complete vigilance and help drivers to avoid sleepiness. This process brings together various stages including data acquisition, facial recognition and analysis, alarm activation, transmission of data, cloud-based storage analysis, alert activation and response mechanisms, continuous monitoring and feedback and betterment. Our system is going to make use of contemporary hardware elements, powerful machine learning algorithms and the cloud infrastructure to attain the objective of averting the risk of fatigued and drunk driving.
Data acquisition: Cameras that are installed inside the vehicle and linked to facial expressions and movements of the driver will be the most effective in the course of real-time visual data collection. The data will be used for analysis. In addition, sensors which are integrated into the vehicle have the capability to identify the data like heart rate, alcohol rate, the location for instance and all this vital information can enhance the reliability significantly.
Facial recognition and analysis: The M1 chipset based on the Mivaile architecture handles facial processing using Convolutional Neural Network (CNN) algorithms. It extracts key facial features for analysis. This is mainly possible through a collection and performance of some advanced methods like image processing, which recognize slight cues characterizing drowsiness, for example, drooping eyelids and changing expressions. This allows the assessment of a driver's condition to be accurate.
Detection and alarm triggering: The MaixDock goes for the text input instruction provided to the Arduino Nano once the signs of drowsiness are observed and that means that the driver is getting sleepy. Through this Arduino Nano’s versatile inputs/outputs, the driver is alerted to a drowsy state and makes through corrective action is recommended automatically when triggered.
Data transmission: The microcontroller Arduino Nano is the first step where the sensor data is directed to the NodeMCU ESP8266, that is a Wi-Fi module that is a part of the entire system. Serial channel will be used to securely transfer data to a NodeMCU, a microcontroller that can be connected to the Wifi and then further sends information to firebase cloud, a cloud-based storage platform, as a matter of further processing and analysis.
Cloud storage and analysis: By Cloud using Firebase, transmission data is secretly stored and offered as a great service by giving secure backend to manage and process data analytics. Based on cloud infrastructure, it processes data that stored and evaluates for the skill of possible abnormal behavior of drivers in driver’s safety. Then it reacts by proactive set of measures that can take place in order to prevent emergencies.
Alerting and response: In case of harsh fatigue or alcohol detection, law officials are directly informed by the set protocol predetermined within the system. Furthermore, through the use of their mobile devices, drivers will receive real-time alerts on their smartphones or tablets by downloading a companion app, an approach that will not only help them to recognize danger early, but it will also result in immediate feedback and guidance on responsible driving habits (Figures 2 and 3).
Figure 2. Flow diagram of proposed system.
Figure 3. Architecture of proposed system.
The proposed driver drowsiness detection system architecture incorporates essential hardware components such as cameras, sensors, Arduino Nano microcontroller and MaixDock M1 chipset to enable seamless data processing. Real-time data from cabin cameras, sensors monitoring vitals and GPS modules are routed to the processing unit for analysis using facial recognition algorithms on the MaixDock M1 chipset.
The Arduino Nano acts as the main controller, activating alarms when drowsiness signs are detected, while the ESP8266 NodeMCU facilitates cloud-based data transmission for remote monitoring and analysis. Firebase Cloud securely stores and analyzes the data to identify common driver behavior patterns and trends.
Data gathering
The methodology is based on an extensive dataset of 483 carefully selected and labelled images for training and testing. Based on the state of the eyes, the dataset is divided into four categories: yawning (111 images), closed eyes (152 images), open eyes (120 images) and cases when the face is not visible (100 images). Because of this stratification, a wide range of possible drowsiness signs are various scenarios encountered during real-world driving conditions.
Preprocessing plays a pivotal role in preparing the acquired data for subsequent machine learning analysis. This involves meticulous cleaning of the dataset to eliminate any inconsistencies or extraneous information that could potentially confound the model's learning process. Furthermore, feature extraction techniques are employed to distil the most informative attributes from the raw data. These features may encompass behavioural characteristics of facial expressions or statistical properties of eye movements. Additionally, data normalization procedures are applied to standardize the features and encode categorical data into numerical representations, enhancing the model's ability to discern patterns and generalize effectively (Figure 4).
Figure 4. Main parameters of the dataset used (eyes open/closed and yawning).
Development of application: The development of the drowsiness detection system entails a rigorous integration of advanced technologies to reliably identify and notify drivers of potential drowsy states during vehicle operation.
Central to this endeavor is the utilization of a meticulously curated dataset comprising 483 labeled images, serving as the foundation for training a Convolutional Neural Network (CNN) model. Implemented on the MaixDock controller, this CNN model is adept at processing real-time digital image inputs captured by the onboard camera, ensuring swift and accurate detection of drowsiness indicators.
In addition to image analysis, the system's functionality is enriched through the seamless integration of multiple sensors and the Arduino Uno microcontroller. These components work synergistically to augment the drowsiness detection process, providing supplementary data streams that enhance the system's accuracy and robustness.
Following preprocessing and feature extraction from the input data, the CNN model employs sophisticated algorithms to generate predictions for each identified region of interest. Through meticulous threshold-based analysis, unreliable predictions are systematically filtered out, minimizing false positives and maximizing the system's reliability in discerning genuine drowsy states.
Upon successful detection, the system activates real-time alerts through the integration of an Arduino Uno-based alert mechanism, which may include visual indicators, audible alarms or tactile feedback, depending on user preferences. This multi-modal alert system ensures timely and effective notification of the driver, facilitating prompt intervention to mitigate the risks associated with driver fatigue.
By leveraging cutting-edge technologies and integrating them seamlessly into the vehicle's infrastructure, the developed drowsiness detection system stands as a testament to innovation in automotive safety. Its ability to proactively detect and respond to drowsy driving scenarios underscores its potential to significantly enhance road safety and driver well-being driver.
Development of application: The primary algorithm utilized in this study is Convolutional Neural Networks (CNNs), a class of deep learning models well-suited for image recognition and classification tasks. CNNs consist of multiple layers of convolutional and pooling operations, allowing them to automatically learn hierarchical representations of features from raw pixel data. Additionally, techniques such as transfer learning may be employed to leverage pre-trained CNN architectures, thereby accelerating model convergence and enhancing performance on limited datasets. Other auxiliary algorithms, such as data augmentation and dropout regularization, may be employed to further enhance the model's resilience to overfitting and improve its generalization capabilities (Figure 5).
Figure 5. CNN architecture.
Experimental results
The following parameters are used to evaluate the training results of the model:
Accuracy: The percentage of correctly predicted samples in the total number of samples is known as accuracy. When the sample categories are balanced, this metric is usually utilized; if the sample categories are not balanced, bias may result. The accuracy calculation formula is found in (1).

Precision: The precision metric quantifies the proportion of actual positive samples among the samples that the model predicts to be positive. It assesses how well the model predicts positive samples and makes an effort to reduce the quantity of false positives. The precision calculation formula is found in (2).

Recall: Recall, which is defined as the ratio of positive, expresses how many real positive samples the model properly recognizes. It assesses the model's capacity to recognize every positive sample and works to reduce the quantity of false negatives. Recall can be calculated using the formula in (3).

F1 score: The F1 score is a comprehensive metric that simultaneously takes memory and precision into account. Its value falls between 0 and 1. Better model performance is indicated by a number that is closer to 1 and worse model performance is indicated by a value that is closer to 0. The F1 Score formula can be found in (4)(Table 1 and Figure 6).

Results and comparison
| Class | Accuracy | Precision | Recall | F1 | 
| Open eyes | 0.79 | 0.86 | 0.75 | 0.8 | 
| Closed eyes | 0.78 | 0.85 | 0.72 | 0.78 | 
| Yawning | 0.73 | 0.89 | 0.72 | 0.8 | 
| No face detected | 1 | - | - | - | 
Table 1. Results (values for different metrics).
Output
Figure 6. Visualization of final model.
Future works
As technology continues to advance, there are several avenues for further enhancement and refinement of the drowsiness detection system. One promising direction involves the utilization of advanced hardware components, such as the Raspberry Pi and a night vision camera with improved resolution. The integration of these high-performance components offers the potential to significantly enhance the system's capabilities and accuracy in detecting drowsiness indicators.
With the increased computing resources afforded by the Raspberry Pi and a higher-resolution night vision camera, the system can leverage more sophisticated machine learning techniques, including ensemble methods such as bagging. Bagging is an ensemble learning technique that aims to improve the performance of machine learning models by combining multiple weaker learners into a stronger predictor.
Bagging or bootstrap aggregating, involves training multiple instances (CNN Models) of a base learner on different subsets of the training data, sampled with replacement. The predictions from these individual models are then aggregated to produce a final prediction. This approach helps reduce variance and improve the stability of the model by averaging out errors (Figure 7).
Figure 7. Bagging methods.
By incorporating ensemble techniques such as bagging into the drowsiness detection system, we can harness the collective power of multiple models to improve the overall accuracy and reliability of drowsiness detection. This approach holds promise for enhancing the system's performance in real-world driving scenarios, where the detection of subtle drowsiness indicators is important to ensuring driver safety.
Future research efforts could investigate the integration of additional sensor modalities, such as heart rate monitors or steering wheel sensors, in addition to hardware and algorithmic advancements, to further enhance the system's capabilities and offer a more thorough assessment of driver alertness. Additionally, the creation of user-friendly interfaces and integration with current car safety systems may make it easier for the sleepiness detection system to be widely adopted and deployed, which would ultimately help to lower the number of accidents on our roads caused by drowsy driving.
Future The deployment of a drowsiness-driving detection system leveraging Maixdock technology marks a significant stride in combatting the peril of drowsy driving, a critical hazard to road safety. Employing deep learning methodologies, notably Convolutional Neural Networks (CNN), this system adeptly identifies drowsiness indicators like blinking and yawning in real-time, drawing from data captured by onboard sensors and cameras.
The CNN architecture, honed through training on sample images, boasts a 4-layer convolutional filter and optimized with the Adam optimization algorithm, yielding an impressive classification accuracy rate of approximately 80%. Moreover, our study delves into factors influencing accuracy, such as camera proximity and lighting conditions, to fortify system efficacy.
Beyond drowsiness detection, our system integrates safeguards against drunk driving, featuring an ignition lockout mechanism triggered by driver intoxication. Additionally, real-time alerts via buzzer and pulse sensor notify drivers of detected drowsiness or impairment, proffering immediate feedback to mitigate potential hazards.
Moreover, our system orchestrates data aggregation from diverse sensors and onboard cameras, facilitating centralized uploading to a server for comprehensive analysis and ongoing monitoring. This centralized repository fosters continual system enhancement and proactive safety measures.
In essence, the implementation of this drowsiness-driving detection system underscores a promising avenue to proactively identify and curb drowsy and impaired driving, ultimately fostering safer roadways for all motorists. Sustained research and development efforts in this domain are pivotal to further refining and optimizing the system, thus saving lives and curbing accidents precipitated by drowsy or impaired drivers.
[Crossref] [Google Scholar] [PubMed]
[Crossref]