Các lỗi thường gặp

Một phần của tài liệu Tối ưu hóa dữ liệu đầu vào và cải tiến tính ổn định cho xe tự hành đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 98 - 102)

Các lỗi thường gặp toàn bộ là ở thuật toán, vậy nên ở mục này chúng em sẽ tập trung nhắm vào các lỗi thường xuất hiện trên thuật toán, đưa ra phương phương giải quyết cũng như là tìm hiểu nguyên nhân xảy ra lỗi.

1. cap.release()

IndentationError: unindent does not match any outer indentation level Nguyên nhân: sai cú pháp, sai phương pháp thụt dòng

Khắc phục: việc thụt dòng khi nhập code phải thống nhất (chọn 1 trong 2 kiểu thụt dòng Tab hoặc phím Space) .

0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 Dữ liệu cũ DLDC số 1 DLDC số 2 DLDC số 3 DLDC số 4 Thẳng Cong

91 2. raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))

serial.serialutil.SerialException: could not open port 'COM9': FileNotFoundError(2, 'The system cannot find the file specified.', None, 2)

Nguyên nhân: chưa kết nối cổng giao tiếp ̣(Serial Port)

Khắc phục: thay đổi cổng giao tiếp phù hợp, kiểm tra kết nối với board arduino 3. ModuleNotFoundError: No module named 'serial'

Nguyên nhân: không nhận diện được module

Khắc phục: tìm và nghiên cứu module thuộc loại thư viện nào, packpage nào sau đó tiến hành dùng lệnh conda install tenthuvien== version tiến hành cài đặt, ở đây version là chỉ định theo phiên bản cần cài, nên không ghi version thì máy sẽ hiểu là cài bản mới nhất. 4. ValueError: Found array with 0 sample(s) (shape=(0, 4)) while a minimum of 1 is required.

Lưu ý: đây là một trong những lỗi khó giải quyết nhất, vì nó phụ thuộc vào rất nhiều yếu tố các nhau.

Nguyên nhân ̣(trường hợp 1): gán hàm array tức ma trận không chính xác Khắc phục: Kiểm tra toàn bộ ma trận được gán cho các đầu thư mục ảnh

Nguyên nhân (trường hợp 2): nếu sử dụng thư viện Pandas thì việc này xảy ra là do sai cú pháp lập trình, khi sử dụng thuật toán có Pandas thì phải thay đổi vài cú pháp trong thuật toán đặc biệt là các thuật toán có cơ chế trượt, lập chỉ mục tiêu, liên kết các dữ liệu,vv…

Khắc phục: thay đổi cú pháp theo lib Pandas

Ví dụ: mp_model = lr_model(X_train[0:12], y_train[0:12] ) đổi thành tmp_model = lr_model(X_train.iloc[0:12,:], y_train[0:12] )

Nguyên nhân (trường hợp 3): size ảnh đầu vào bị lỗi, có thể là kích thước ảnh không đúng như trong thuật toán hoặc rate của ảnh không phù hợp

Khắc phục: resize ảnh theo thuật toán, điều chỉnh rate cho phù hợp, có thể sử dụng công cụ photoshop hoặc các công cụ trên web, cũng có thể sử dụng thuật toán mới của nhóm để resize ảnh

Nguyên nhân (trường hợp 4): lựa chọn số class không đúng so với dữ liệu đầu vào Khắc phục: chỉnh sửa số lượng class khớp với số lượng hình ảnh đầu vào

92 cv2.: error: (-215) scn == 3 || scn == 4 in function cv::cvtColor

Nguyên nhân: chọn sai cổng camera

Khắc phục: cổng camera và webcam sẽ có số từ 0 đến 3 tùy thuộc vào từng hãng laptop khác nhau mà có số thứ tự khác nhau

6. lỗi màn hình xanh window

Nguyên nhân xảy ra lỗi này là rất nhiều, đồng thời lỗi này là lỗi thường xuyên xảy ra, lỗi này có khá nhiều nguyên nhân tạo ra tuy nhiên có 3 nguyên nhân chính dẫn đến lỗi này, thứ nhất là tràn Ram máy tính, thứ 2 là xung đột các file .dll, thứ 3 lỗi từ các packpage từ môi trường ảo tạo ra các xung đột đến window, lỗi này không có phương pháp khắc phục triệt để, chỉ có thể để tự window của máy vận hành và vá lỗi.

7. ImportError: Keras requires TensorFlow 2.2 or higher. Install TensorFlow via `pip install tensorflow`

Nguyên nhân: Keras và TensorFlow không tương thích phiên bản với nhau hoặc thuật toán yêu cầu sử dụng TensorFLow 2.2 trở lên ( thuật toán có sử dụng CUDA CuDNN để sử dụng GPU đẩy nhanh tốc độ traning)

Khắc phục: cách khắc phục lỗi này có 2 cách, cách thứ nhất là tạo một môi trường ảo mới chuyên để traning và 1 môi trường khác chuyên để đọc các file traning vận hành thuật toán chính, cách này sử dụng cho các máy yếu hoặc các máy có GPU không quá mạnh mẽ. cách thứ hai đơn giản hơn, chỉ cần thay đổi phiên bản TensorFlow phù hợp và cài đặt CUDA CuDNN 11.0 trở lên là có thể giải quyết được vấn đề

8. Vanishing Gardient

Nguyên nhân: trong lớp tích chập sử dụng hàm Sigmoid hoặc hàm Tanh, quá trình traning bị lỗi trong quá trình đạo hàm và tính toán học, dẫn đến bị treo máy và kết quả trả về với độ chính xác rất thấp

Khắc phục: thay đổi sigmoid hoặc tanh thành hàm relu

9. OSError: Unable to open file (unable to open file: name = 'D:\kethuc\filetrain\test8.h5', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)

Nguyên nhân: không tìm được file traning trên đường dẫn, hoặc sai cú pháp Khắc phục: kiểm tra lại đường dẫn file traning

93 cv2.error:

C:\ci\opencv_1512688052760\work\modules\objdetect\src\cascadedetect.cpp:1698: error: (-215) !empty() in function cv::CascadeClassifier::detectMultiScale

Nguyên nhân: lỗi này là một trong các lỗi khó, lỗi này thường có 2 nguyên nhân, nguyên nhân thứ nhất là định dạng file không đúng với các hàm lập trình, nguyên nhân thứ hai là định dạng ảnh từ file train không phù hợp với thuật toán

Khắc phục: sử dụng các file train có chung kích thước và định dạng, thuộc tính như cấu hình thuật toán đề ra hoặc tự tạo ra các file training điều này sẽ giúp được quá trình traning có thể kiểm soát được các thuộc tính của dữ liệu train.

11. SystemError: <class 'cv2.CascadeClassifier'> returned a result with an error set Nguyên nhân: file traning .xml này cần có cấu trúc đọc khác, nói cách khác thuật toán không đọc được cấu trúc của file training này, có nghĩa là file training này được tạo ra với cấu trúc và thư viện mới nên cần cập nhật thêm các thư viện và chỉnh sửa cấu trúc

Khắc phục: dùng lệnh activate “name” để mở môi trường ảo sau đó dùng lệnh pip install opencv-python hoặc sudo apt-get install python3-opencv để cài đặt thư viện mới hoặc cập như thư viện mới ( ví dụ ở đây là python-opencv, python3-opencv)

12. ` mg_crop = img[0:200,0:300]

TypeError: 'NoneType' object is not subscriptable

Nguyên nhân: kích thước đầu vào và đâu ra không phù hợp, hoặc chọn không đúng cv.videocapture (số)

Khắc phục: tìm đúng chân camera từ số 0 đến số 3 tùy vào từng hãng máy tính, kiểm tra kích thước đầu vào từ thuật toán

13. TypeError: 'NoneType' object is not subscriptable

Nguyên nhân: định dạng của hàm img[0:height,0:width] tức là so với phổ thông kích thước ảnh thường điền sẽ là width x height, nhưng với cấu trúc hàm này thì lại ngược lại

Khắc phuc: chuyển đúng vị trí của width và height 14. IndentationError: unexpected indent

Nguyên nhân: cũng là lỗi do thụt đầu dòng

94

CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Một phần của tài liệu Tối ưu hóa dữ liệu đầu vào và cải tiến tính ổn định cho xe tự hành đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 98 - 102)

Tải bản đầy đủ (PDF)

(132 trang)