Giá đỡ thiết bị

Một phần của tài liệu Ứng dụng xử lý ảnh trong nhận diện điều khiển ô tô (Trang 94)

4.3 Thiết kế xây dựng mơ hình thiết bị

4.3.3.8 Giá đỡ thiết bị

Hình 4.39 Được sử dụng với chức năng cố định mơ hình thiết bị trên kính xe. Vị trí đối diện với người lái xe.

80

Hình 4.39: Giá đỡ thiết bị 4.3.4 Mơ hình sản phẩm thiết kế hồn thiện 4.3.4 Mơ hình sản phẩm thiết kế hồn thiện

Hình 4.40: Mơ hình hồn thiện:

1- Len camera; 2- Mạch điều khiển relay; 3- Cổng USB cấp nguồn loa; 4- Công tắc khởi động; 5- Cổng âm thanh 3.5mm loa; 6- Mạch điều khiển xử lý; 7- Loa nhắc nhở; 8- Cổng nguồn type C. 1 4 8 3 6 2 7 5

81

Mơ hình thiết bị hình 4.40 dùng để nhận diện hành vi thể hiện sự mệt mỏi và cảnh báo cho người lái xe, được thiết kế như 1 dạng hộp camera quan sát. Có chức năng theo dõi mọi hành vi của người lái xe. Khi người lái xe có dấu hiệu mệt mỏi, thiết bị sẽ xử lý thơng tin từ hình ảnh được thu vào bằng len camera, sau đó tạo tín hiệu cảnh báo cho người lái xe tránh khỏi những rủi ro khơng đáng có, khi phải lái xe di chuyển trên những con đường dài.

Thậm chí có thể phát ra cảnh báo cầu cứu sự giúp đỡ của người xung quanh nếu người lái xe rơi vào tình trạng khẩn cấp.

4.4 Phương án thiết kế phần mềm mơ hình

4.4.1 Lập trình xử lý ảnh với ứng dụng OpenCV trong ngơn ngữ lâp trình Python Python

4.4.1.1 Trích xuất nhận diện khuôn mặt

#waring time: Thời gian cảnh báo #on_type: Bật relay

#sound_name: Âm thanh cảnh báo theo tên file

Ở đây biến image là một đối tượng chứa giá trị màu của từng điểm ảnh trên các không gian màu khác nhau. Lệnh resize (image, (20, 10)) để lấy ra kích thước của mảng này với 20,10 lần lượt là chiều cao, chiều rộng. Việc thay đổi kích thước ảnh là vì kích thước ảnh thơ rất lớn đồng nghĩa với việc dung lượng cũng lớn theo. Như vậy, Khi ta giảm kích thước, và dung lượng của ảnh thì bộ phận xử lý và lưu trữ sẽ thực hiện nhanh hơn đáng kể. Mục đích tăng khả năng xử lý và đưa ra các thơng tin, tín hiệu nhanh chóng.

Chuyển dữ liệu về hệ Tensor.

Dựa vào mạng Mobilenet để xem mắt đóng hay mở. Để dự đốn các hành vi ta đặt tên hàm là “run_sleep”.

82

Để đọc ảnh từ camera và chuyển hình ảnh thu nhận về khơng gian màu RGB ta dùng lệnh để hiển thị ảnh.

Chuyển sang hệ màu Lab để lấy các mốc điểm chiều cao và chiều rộng. Tìm kiếm khn mặt bằng HOG.

Thì trích xuất vị trí và vẽ khung nhận diện khn mặt với “x1, y1, x2, y2” tương ứng với các cạnh khung trái, trên, phải, dưới.

(Code để chạy chương trình này nằm ở PHỤ LỤC 1.1)

4.4.1.2 Xác định vị trí mắt và trích xuất trạng thái mắt đóng/mở

Sau khi trích xuất vị trí khung nhận diện khn mắt, bắt đầu tìm, trích xuất vị trí 2 mắt, tương tự với “x1, y1, x2, y2” tương ứng với các cạnh khung trái, trên, phải, dưới. Với “h” là chiều cao, “w” là chiều rộng.

Tiếp đến khi đã trích xuất được vị trí 2 mắt, ta dùng mobilnet để kiểm tra mắt đóng hay mắt mở.

Nếu 2 mắt đóng thì hiển thị khung màu đỏ, mở thì hiển thị khung màu xanh. “True” là đánh dấu nhận ra khuôn mặt.

Ngược lại, “False” đánh dấu khơng tìm ra khn mặt.

(Code để chạy chương trình này nằm ở PHỤ LỤC 1.2)

4.4.1.3 Cách thức trích xuất nhịp tim bằng OpenCV trong Python

Ứng dụng này sử dụng OpenCV để tìm vị trí khn mặt của người dùng, sau đó cơ lập vùng trán. Dữ liệu được thu thập từ vị trí này theo thời gian để ước tính nhịp tim của người dùng. Điều này được thực hiện bằng cách đo cường độ quang học trung bình ở vị trí trán, chỉ trong kênh màu xanh lá cây của hình ảnh phụ (có thể tồn tại tỷ lệ trộn màu tốt hơn, nhưng kênh màu xanh lam có xu hướng rất nhiễu). Dữ liệu sinh lý có thể được ước tính theo cách này nhờ vào các đặc tính hấp thụ quang học của (oxy-) hemoglobin.

83

Với ánh sáng tốt và tiếng ồn tối thiểu do chuyển động, nhịp tim ổn định sẽ được cách ly trong khoảng 15 giây. Các dạng sóng sinh lý khác (chẳng hạn như sóng Mayer) cũng sẽ hiển thị trong luồng dữ liệu thô.

Khi nhịp tim của người dùng đã được ước tính, sự biến thiên pha theo thời gian thực liên quan đến tần số này cũng được tính tốn. Điều này cho phép nhịp tim được phóng đại trong q trình kết xuất khung hình sau xử lý, khiến vị trí trán được đánh dấu bắt nhịp đồng bộ với nhịp tim của chính người dùng.

Chắc chắn có thể hỗ trợ phát hiện nhiều cá nhân đồng thời trong luồng hình ảnh của một camera, nhưng hiện tại chỉ có thơng tin từ một khn mặt được trích xuất để phân tích.

Sau đó để xem luồng dữ liệu đo được hiện lên màn hình.

Màn hình dữ liệu hiển thị sẽ hiển thị 3 dữ liệu, từ trên xuống dưới:  Cường độ quang học thô.

 Trích xuất tín hiệu nhịp tim.

 Mật độ phổ công suất, với cực đại cục bộ cho biết nhịp tim (tính bằng nhịp mỗi phút).

(Code để chạy chương trình này nằm ở PHỤ LỤC 1.3)

4.4.1.4 Kiểm tra, xử lý thông tin các trường hợp và đưa ra quyết định cảnh báo báo

Kiểm tra thời gian tắt thơng báo.

Trường hợp 1 (Th_1): Tìm ra khn mặt, nhưng có dấu hiệu người lái xe nhắm mắt.

Nếu mở mắt thì tắt thơng báo, với “0” là mở mắt. Nếu là trường hợp 1 thì tắt cảnh báo.

84

Trường hợp 1.3 (Th_1.3): Nếu thời gian nhắm mắt lớn hơn hoặc bằng 12 giây thì đưa ra cảnh báo, bật relay_1. Ngược lại thì sẽ tiếp tục kiểm tra “Th_1.2”.

Trường hợp 1.2 (Th_1.2): Nếu thời gian lớn hơn hoặc bằng 7 giây thì đưa ra cảnh báo, ngược lại thì sẽ tiếp tục kiểm tra “Th_1.1”.

Trường hợp 1.1 (Th_1.1): Nếu thời gian lớn hơn hoặc bằng 3 giây thì đưa ra cảnh báo, ngược lại thì sẽ tiếp tục kiểm tra, xử lý ảnh.

Trường hợp 2 (Th_2): Tìm ra khn mặt người lái xe thì lưu trữ thời gian hiện tại, nếu là trường hợp 2 thì tắt cảnh báo.

Trường hợp 2.3 (Th_2.3): Nếu thời gian mất nhận diện lớn hơn 12 giây thì đưa ra cảnh báo, bật relay_1. Ngược lại thì sẽ tiếp tục kiểm tra “Th_2.2”.

Trường hợp 2.2 (Th_2.2): Nếu thời gian lớn hơn hoặc bằng 7 giây thì đưa ra cảnh báo, ngược lại thì sẽ tiếp tục kiểm tra “Th_2.1”.

Trường hợp 2.1 (Th_2.1): Nếu thời gian lớn hơn hoặc bằng 3 giây thì đưa ra cảnh báo, ngược lại thì sẽ tiếp tục kiểm tra, xử lý ảnh.

Trường hợp 3 (Th_3): Tìm ra khn mặt, và bắt đầu trích xuất nhịp tim Nếu nhịp tim ổn định >= 50 bpm, <= 100 bpm tắt cảnh báo.

Trường hợp 3.3 (Th_3.3): Nếu thời gian nhịp tim dưới 50 bpm hoặc trên 100 bpm lớn hơn 12 giây thì đưa ra cảnh báo, bật relay_1. Ngược lại thì sẽ tiếp tục kiểm tra “Th_3.2

Trường hợp 3.2 (Th_3.2): Nếu thời gian lớn hơn hoặc bằng 7 giây thì đưa ra cảnh báo, ngược lại thì sẽ tiếp tục kiểm tra “Th_3.1”.

Trường hợp 3.1 (Th_3.1): Nếu thời gian lớn hơn hoặc bằng 3 giây thì đưa ra cảnh báo, ngược lại thì sẽ tiếp tục kiểm tra, xử lý ảnh.

85

4.4.1.5 Tiếp nhận đưa ra cảnh báo Cảnh báo trường hợp 1.1 (Th_1.1): Cảnh báo trường hợp 1.1 (Th_1.1):

Khi người lái xe nhắm mắt hơn 3 giây. Bật am thanh cảnh báo “hãy cẩn thận’, thời gian cảnh báo 2 giây.

Cảnh báo trường hợp 1.2 (Th_1.2):

Khi người lái xe nhắm mắt hơn 7 giây. Bật âm thanh cảnh báo “hãy dừng xe và nghỉ ngơi, thời gian cảnh báo 2 giây.

Cảnh báo trường hợp 1.3 (Th_1.3):

Khi người lái xe nhắm mắt hơn 12 giây. Bật âm thanh cảnh báo “bíp bíp bíp”, thời gian cảnh báo 4 giây. Bật relay (relay_1) điều khiển.

Cảnh báo trường hợp 2.1 (Th_2.1):

Khi mất nhận diện người lái xe hơn 3 giây. Bật am thanh cảnh báo “hãy chú ý”, thời gian cảnh báo 2 giây.

Cảnh báo trường hợp 2.2 (Th_2.2):

Khi mất nhận diện người lái xe hơn 7 giây. Bật âm thanh cảnh báo “hãy dừng xe và nghỉ ngơi, thời gian cảnh báo 2 giây.

Cảnh báo trường hợp 2.3 (Th_2.3):

Khi mất nhận diện người lái xe hơn 12 giây. Bật âm thanh cảnh báo “bíp bíp bíp”, thời gian cảnh báo 4 giây. Bật relay (relay_1) điều khiển.

Cảnh báo trường hợp 3.1 (Th_3.1):

Khi thời gian nhịp tim thấp hơn 50bpm hoặc lớn hơn 100 bpm trên 3 giây. Bật am thanh cảnh báo “hãy cẩn thận”, thời gian cảnh báo 2 giây.

86

Cảnh báo trường hợp 3.2 (Th_3.2):

Khi thời gian nhịp tim thấp hơn 50bpm hoặc lớn hơn 100 bpm trên 7 giây. Bật am thanh cảnh báo “nhịp tim không ổn định, chú ý”, thời gian cảnh báo 3 giây.

Cảnh báo trường hợp 3.3 (Th_3.3):

Khi thời gian nhịp tim thấp hơn 50bpm hoặc lớn hơn 100 bpm trên 12 giây. Bật âm thanh cảnh báo “bíp bíp bíp”, thời gian cảnh báo 4 giây. Bật relay (relay_1) điều khiển.

87

4.4.2 Lưu đồ thuật tốn lập trình

88

89

90

4.5 Xây dựng mạch điện đưa tín hiệu ra thiết bị cảnh báo 4.5.1 Sơ đồ mạch điện kết nối bộ phận 4.5.1 Sơ đồ mạch điện kết nối bộ phận

Hình 4.44: Sơ đồ mạch điện kết nối bộ phận Nguyên lý hoạt động (Hình 4.44) Nguyên lý hoạt động (Hình 4.44)

Khi nhận tín hiệu từ camara và xử lý thơng tin, tùy theo từng trường hợp tín hiệu đưa ra cổng GPIO.

Relay nhận tín hiệu qua cổng GPIO qua chân nguồn số 4, chân ground số 6 và GPIO 17.

Nhờ có tín hiệu GPIO 17, relay 5 chân được kích hoạt. Dịng điện đi qua các đèn xi nhanh và và còi xe để cảnh báo người lái xe về những hành vi bất thường.

Nguồn 5V/3A được cấp vào mạch xử lý điều khiển thông qua cổng USB type-C.

91

4.5.2 Sơ đồ mạch điện cảnh báo

Hình 4.45: Sơ đồ mạch điện cảnh báo (Relay đang hoạt động)

1- Input/output GPIO; 2- RAM; 3- Bộ xử lý; 4- USB Type C cấp nguồn; 5- Cổng MIPI CSI (Camera); 6- Audio, Video Composite 3.5mm Jack; 7- 2 cổng USB 2.0.

Nguyên lý làm việc (Hình 4.45)

Mạch xử lý Raspberry Pi 4 được kết nối với mạch relay qua 40 chân tín hiệu GPIO, khi được kết nối thì nhiệm vụ các chân GPIO trên mạch xử lý chính được chuyển sang chân GPIO trên mạch relay.

Mạch xử lý được cấp nguồn 5V/3A thông qua bộ chuyển đổi nguồn và được kết nối nguồn trực tiếp trên xe.

Công tắc khởi động được nối vào giữa dây nguồn làm nhiệm vụ khởi động và tắt mạch xử lý.

92

Chân COM của relay trên mạch được cấp nguồn riêng 12V. Công dụng cấp nguồn điều khiển thiết bị cảnh báo.

Chưa bật công tắc khởi động

Mạch xử lý được cấp nguồn trực tiếp trên xe tuy nhiên vì cơng tắc đảm nhiệm nhiệm vụ là công tắc khởi động nên mạch vẫn chưa được hoạt động. Dẫn đến các thiết bị nối tiếp trung gian cũng không hoạt động.

Bật công tắt khởi động

Khi Công tắc khởi động được bật, mạch xử lý hoạt động làm cho camera cũng hoạt động theo. Camera hoạt động và liên tục thu nhận tín hiệu vào và gửi đến bộ xử lý của mạch để xử lý thơng tin.

Khi nhận được tín hiệu cảnh báo

Khi bộ xử lý của mạch chính nhận được tín hiệu cảnh báo, thì sẽ đưa ra các trường hợp:

 Cảnh báo các trường hợp với tín hiệu cảnh báo trên 3 giây:

Khi có tín hiệu cảnh báo, mạch xử lý đưa tín hiệu cảnh báo đến cổng âm thanh 3.5mm và đi đến loa nhắc nhở. Loa nhắc nhở được cấp nguồn sẵn thông qua cổng USB làm loa hoạt động và thực hiện cảnh báo âm thanh.

 Cảnh báo các trường hợp với tín hiệu cảnh báo trên 7 giây:

Khi có tín hiệu cảnh báo, mạch xử lý đưa tín hiệu cảnh báo đến cổng âm thanh 3.5mm và đi đến loa nhắc nhở. Loa nhắc nhở được cấp nguồn sẵn thông qua cổng USB làm loa hoạt động và thực hiện cảnh báo âm thanh.

 Cảnh báo các trường hợp với tín hiệu cảnh báo trên 12 giây:

Khi có tín hiệu cảnh báo, mạch xử lý đưa tín hiệu cảnh báo đến cổng âm thanh 3.5mm và đi đến loa nhắc nhở. Loa nhắc nhở được cấp nguồn sẵn thông qua cổng USB làm loa hoạt động. Sau đó tín hiệu cịn lại đi qua chân 17 GPIO của mạch,

93

thực hiện cấp nguồn cho cuộn relay làm đóng chân NO. Khi đóng chân NO nguồn 12V được đi từ chân COM đến chân NO, tiếp tục đi đến các thiết bị cảnh báo (đèn xi nhan khẩn cấp, đèn led chữ cầu cứu, còi xe) làm chúng hoạt động và thực hiện cảnh báo âm thanh, ánh sáng cho người lái xe và người xung quanh khi người lái gặp nạn.

94

Chương 5

THI CƠNG MƠ HÌNH

5.1 Thi cơng lắp ráp mơ hình

Hình 5.1: Mơ phỏng các bước thi cơng lắp ráp mơ hình:

1- Camera; 2- Cơng tắc khởi động; 3- Loa; 4- Mạch xử lý điều khiển; 5- Mạch relay; 6- Dây cáp FFC camera; 7- Chuôi cắm âm thanh 3.5 loa; 8- Jack USB nguồn

loa; 9- Chuôi cắm nguồn USB type-C; 10, 11- Nắp, vỏ thiết bị; 12- Mơ hình hồn chỉnh.

1 2 3 4 5

6 7 8 9

95

Hình thể hiện các chi tiết, bộ phận của mơ hình thiết bị. Bao gồm bộ phận thu, nhận tín hiệu đầu vào như Camera, cơng tắc, nguồn... Các bộ phận mạch xử lý relay, mạch xử lý chính và khung, nắp lắp đặt hoàn thiện các bộ phận.

Để hồn thành được mơ hình thiết bị, cần 4 bước chính.

Bước 1: Chuẩn bị bộ phận chính được sử dụng cho mơ hình thiết bị.

Hình 5.2: Ốc vít 2mm để cố định các bộ phận vào khung vỏ (Nguồn internet)

Ốc vít hình 5.2 được sử dụng ở đây là ốc vít 2mm có thể mua được dễ dàng ở các cửa hàng vật liệu hoặc đặt mua qua mạng internet.

96

Hình 5.4: Mạch xử lý điều khiển Raspberry Pi 4 và mạch mở rộng relay

Hình 5.5: Loa và cơng tắc

Các bộ phận quan trọng được mô tả trên hình 5.4, hình 5.5 như mạch Raspberry Pi 4, mạch mở rộng điểu khiển relay, camera, cáp tín hiệu camera... được tìm kiếm và mua trực tuyến qua cơng ty TNHH MLAB chuyên về các thiết bị, linh kiện điện tử, đặc biệt là Raspberry Pi.

Hình 5.5 là bộ phận khởi động và đưa ra âm thanh cảnh báo được dùng là công tắc rocker và loa phát âm thanh với đường kính 50mm.

97

Bước 2: Tạo khung vỏ để lắp đặt các bộ phận.

Hình 5.6: Khung vỏ và nắp thiết bị.

Vỏ khung ở hình 5.6 có tác dụng bảo vệ các bộ phận được lắp ráp thành cụm xử lý khi được lắp đặt vào bên trong. Đồng thời tăng độ thẩm mỹ cho thiết bị mơ hình, và khi được sử dụng trên xe ô tô.

Bước 3: Lắp ráp các bộ phận thành cụm chi tiết.

98

Lắp đặt camera vào mạch xử lý điều khiển. Bằng cách nối dây kết nối tín hiệu FFC vào cổng CSI của camera pi. Sau đó nối đầu cịn lại của dây kết nối tín hiệu FFC vào cổng CSI mạch Raspberry Pi 4 như hình 5.7.

Hồn tất lắp dặt camera để thu nhận thơng tin, tín hiệu hình ảnh về mạch xử lý như hình 5.7.

Hình 5.8: Kết nối Raspberry Pi 4 với mạch mở rộng 3 relay

Kết nối Raspberry Pi 4 với mạch mở rộng 3 relay, bằng cách cắm 40 chân GPIO vào 40 cổng tiếp nhận của mạch mở rộng.

Dùng ốc vít 2mm cố định chắc chắn lại mạch mở rộng để không bị rơi hoặc gây các vấn đề làm hư hỏng cho mạch chính hình 5.8.

99

Hình 5.9: Kết nối nguồn, và jack cắm âm thanh

Sau khi thiết lập xong camera là tín hiệu đầu vào, mạch relay để điều khiển các thiết bị khẩn cấp. Thì ta kết nối mạch với loa nhắc nhở.

Một phần của tài liệu Ứng dụng xử lý ảnh trong nhận diện điều khiển ô tô (Trang 94)

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

(181 trang)