Driver fatigue detection system aims to monitor the driver state. When detecting a fatigue caused by different attitudes other than normal driving habit, the system warns the driver that traveling should be interrupted. In this way, it helps the driver to make the right decision. The aim of this study is to prevent traffic accidents. The system analyzes any changes in the driver's eyes and mouth features in real time and warns the driver when necessary. The proposed system contains several stages to detect the driver's fatigue. First, the preprocessing stage; enhancement of the frames, determining the face, and cropping eyes and mouth of the driver was done. Then, dealing with feature extraction stage; the features concerning each frame was processed. Finally, two classification approaches were presented and a comparison between them was addressed. In the first approach, four traditional classifiers were applied; Diagonal Linear Discriminant Analysis (DiagLDA), Linear Support Vector Machine (LSVM), K-Nearest Neighbor (KNN), and Random Forest Classifier (RFC). The results show that two classifiers; KNN and RFC yield the highest average accuracy of 91.94% for all subjects presented in this paper. In the second approach, one model of deep learning neural network (CNN) was applied; "Resnet-50" model. The results also show that the proposed deep learning model yields a high average accuracy of 96.3889% for the same data. In general, the drowsiness and lost focus of drivers with high accuracy have been detected with the developed image processing based system, which makes it practicable and reliable for real-time applications.