Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
2,46 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO NGUYỄN VĂN TÂM TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - ĐO LƯỜNG VÀ CÁC HỆ THỐNG ĐIỀU KHIỂN NGUYỄN VĂN TÂM NGHIÊN CỨU VÀ THIẾT KẾ MŨ BẢO HIỂM CẢNH BÁO NGUY HIỂM CHO NGƯỜI LÁI XE LUẬN VĂN THẠC SĨ KHOA HỌC NGÀNH: ĐO LƯỜNG VÀ CÁC HỆ THỐNG ĐIỀU KHIỂN KHOÁ 2017-2018 Hà Nội – Năm 2018 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - NGUYỄN VĂN TÂM NGHIÊN CỨU VÀ THIẾT KẾ MŨ BẢO HIỂM CẢNH BÁO NGUY HIỂM CHO NGƯỜI LÁI XE Chuyên ngành: ĐO LƯỜNG VÀ KỸ THUẬT ĐIỀU KHIỂN LUẬN VĂN THẠC SĨ KHOA HỌC ĐO LƯỜNG VÀ KỸ THUẬT ĐIỀU KHIỂN NGƯỜI HƯỚNG DẪN KHOA HỌC : PGS.TS HOÀNG SĨ HỒNG Hà Nội – Năm 2018 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ tên tác giả luận văn : Nguyễn Văn Tâm Đề tài luận văn: Nghiên cứu thiết kế mũ bảo hiểm cảnh báo nguy hiểm cho người lái xe Chuyên ngành: Đo lường kỹ thuật điều khiển Mã số SV: CBC17025 Tác giả, Người hướng dẫn khoa học Hội đồng chấm luận văn xác nhận tác giả sửa chữa, bổ sung luận văn theo biên họp Hội đồng ngày 27/04/2018 với nội dung sau: - Chỉnh sửa lỗi tả luận văn - Chỉnh sửa hình ảnh bị mờ luận văn - Định nghĩa lại ký hiệu viết tắt, tiếng anh Ngày Giáo viên hướng dẫn tháng năm Tác giả luận văn CHỦ TỊCH HỘI ĐỒNG LỜI CAM ĐOAN Tôi xin cam đoan luận văn thạc sĩ khoa học: “Nghiên cứu thiết kế mũ bảo hiểm cảnh báo nguy hiểm cho người lái xe” tự thiết kế hướng dẫn PGS.TS Hoàng Sĩ Hồng Các số liệu kết hoàn toàn với thực tế Để hồn thành luận văn tơi sử dụng tài liệu ghi danh mục tài liệu tham khảo không chép hay sử dụng tài liệu khác Nếu phát có chép tơi xin chịu hồn tồn trách nhiệm Hà Nội, ngày 30 tháng 03 năm 2018 Tác giả luận văn Nguyễn Văn Tâm LỜI CẢM ƠN Trước tiên, em xin gửi lời cảm ơn chân thành đến thầy PGS.TS Hoàng Sĩ Hồng hướng dẫn em tận tình suốt thời gian em làm luận văn Thầy truyền đạt lại cho em kiến thức, kinh nghiệm nghiên cứu giúp đỡ nhiều để em hoàn thành tốt luận văn cao học Em xin gửi lời cảm ơn chân thành đến tất thầy cô giáo trường Đại học Bách Khoa Hà Nội trực tiếp giảng dạy suốt khóa học, người bạn quan tâm, động viên, chia sẻ kiến thức kinh nghiệm chuyên ngành suốt trình học tập rèn luyện em Em xin cảm ơn giúp đỡ, động viên quý báu từ gia đình, từ anh Nguyễn Văn Đưa thành viên MANDEVICES LAB, người tạo điều kiện nghiên cứu giúp đỡ, động viên em trình nghiên cứu trường Do thời gian kiến thức có hạn nên khơng tránh khỏi thiếu sót định Em mong nhận đóng góp quý báu thầy cô bạn Sau cùng, em xin gửi lời chúc sức khỏe, hạnh phúc đến thầy cô, gia đình bạn bè Hà Nội, Ngày 30 tháng 03 năm 2018 Tác giả luận Nguyễn Văn Tâm MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC TỪ VIẾT TẮT BẢNG TRA CỨU THUẬT NGỮ ANH VIỆT DANH MỤC BẢNG BIỂU DANH MỤC HÌNH ẢNH 10 MỞ ĐẦU 12 CHƯƠNG TỔNG QUAN VÀ ĐẶT BÀI TOÁN 14 1.1 Tổng quan nghiên cứu mũ bảo hiểm cảnh báo nguy hiểm cho người lái xe .14 1.2 Bài tốn cơng nghệ đặt 19 CHƯƠNG THIẾT KẾ CHI TIẾT MŨ BẢO HIỂM CẢNH BÁO NGUY HIỂM CHO NGƯỜI LÁI XE .20 2.1 Sơ đồ tổng quan phần cứng hệ thống 20 2.2 Sơ đồ tổng quan thuật tốn tồn hệ thống 25 2.3 Thiết kế, tính tốn phần cứng cho thiết bị gắn mũ bảo hiểm 28 2.4 Sơ đồ tổng quan thuật toán khối hệ thống 37 2.5 Xử lý ảnh, nhận dạng đối tượng 40 2.6 Xử lý thông tin xử lý đệm 58 CHƯƠNG CÀI ĐẶT THIẾT BỊ VÀ ĐÁNH GIÁ KẾT QUẢ 65 3.1 Lắp ráp cài đặt thiết bị .65 3.2 Kết 66 CHƯƠNG KẾT LUẬN VÀ KIẾN NGHỊ NHỮNG NGHIÊN CỨU TIẾP THEO 71 TÀI LIỆU THAM KHẢO 72 PHỤ LỤC 73 DANH MỤC TỪ VIẾT TẮT WHO World Health Organization VAMM Vietnam Association of Motorcycle Manufactures ATM Automated Teller Machine RISC Reduced Instructions Set Computer ESD Electrostatic Discharge EMC Electromagnetic Compatibility PCS Process Control Station FPGA Field Programmable Gate Array RISC Reduced Instructions Set Computer CPU Central Processing Unit SPI Serial Peripheral Bus I2C Inter-Integrated Circuit UART Universal Asynchronous Receiver/Transmitter FOV Field of view HSV Hue, Saturation, Value GPS Global Positioning System GSM Global System for Mobile Communications BẢNG TRA CỨU THUẬT NGỮ ANH VIỆT Realtime Thời gian thực Interface Giao tiếp Frame Khung hình Threshold Ngưỡng Classifier Bộ phân loại Feature Đặc tính Training Huấn luyện Positive Dương Negative Âm DANH MỤC BẢNG BIỂU Bảng 2-1: Bảng so sánh xử lý trung tâm 21 Bảng 2-2: Quy định khoảng cách hai phương tiện tương ứng với tốc độ di chuyển 27 Bảng 2-3: Thơng số hình LCD 3.5 inch 30 Bảng 2-4: Thơng số nguồn điện, dịng điện sử dụng khối thiết bị 34 Bảng 2-5: Các kiểu giao tiếp xử lý đệm 58 Bảng 2-6: Dữ liệu truyền với đối tượng nhận dạng 59 Bảng 2-7: Các thành phần tập tin file WAVE .61 Bảng 3-1: Đánh giá với góc nghiêng camera thay đổi so với phương ngang 65 Bảng 3-2: Đánh giá kết nhận dạng qua thử nghiệm 70 DANH MỤC HÌNH ẢNH Hình 1-1: Thị trường tiêu thụ xe máy Việt Nam qua năm 15 Hình 1-2: Hệ thống đèn led hiển thị mức độ nguy hiểm từ xe tiến đến gần 16 Hình 1-3: Mơ hình hệ thống cảnh báo nguy hiểm cho tài xế hãng Lexus 17 Hình 1-4: Hình ảnh video sau xử lý từ camera lắp ô tô Mobileye 18 Hình 2-1: Sơ đồ tổng quan phần cứng hệ thống 20 Hình 2-2: Raspberry Pi 22 Hình 2-3: Ảnh PiCamera 23 Hình 2-4: Vi điều khiển STM32F103C8T6 24 Hình 2-5: Sim 808 .24 Hình 2-6: Module MPU6050 25 Hình 2-7: Lưu đồ thuật tốn tồn hệ thống 26 Hình 2-8: Bộ xử lý trung tâm hình 28 Hình 2-9: Sơ đồ bus kết nối giao tiếp CSI 29 Hình 2-10: Màn hình LCD 3.5 inch 29 Hình 2-11: Cổng Raspberry Pi 30 Hình 2-12: Sơ đồ khối xử lý đệm 31 Hình 2-13: Sơ đồ nguyên lý khối SIM808 32 Hình 2-14: Sơ đồ nguyên lý khối MCU 32 Hình 2-15: Sơ đồ nguyên lý khối ngoại vi 33 Hình 2-16: Sơ đồ nguyên lý khối nguồn 33 Hình 2-17: Mạch nguồn ổn áp 5V 34 Hình 2-18: Mối quan hệ giá trị điện cảm dòng điện lớn mà ic cung cấp 35 Hình 2-19: Mạch nguồn ổn áp 3.3V .36 Hình 2-20: Điện áp dòng điện hoạt động số loại đèn led 36 Hình 2-21: Mạch nguồn 4.3V .36 Hình 2-22: Mạch in thiết kế Altium Designer .37 Hình 2-23: Lưu đồ thuật tốn xử lý trung tâm 38 Hình 2-24: Lưu đồ thuật tốn xử lý xử lý đệm .39 Hình 2-25: Kiểu quét hình ảnh cảm biến 41 Hình 2-26: Chia góc gradient thành hướng 44 Hình 2-27: Lấp đầy lỗ ảnh phép giãn 45 Hình 2-28: Loại bỏ phần nhiễu phép toán co .46 Hình 2-29: Một giả thuyết phân loại chọn 47 Hình 2-30: Giả thuyết hệ quản lý phân loại đối tượng 48 Hình 2-31: Giả thuyết hệ quản lý phân loại đối tượng 48 10 Hình 2-47: Giao tiếp I2C Giao tiếp với module MPU6050 (cảm biến góc nghiêng) Linh kiện điện tử MPU6050 hỗ trợ chuẩn giao tiếp I2C để xuất giá trị đo sang thiết bị khác (Master) lại nơi xử lý, lưu trữ tín hiệu từ thiết bị khác kết nối vào Cấu trúc tin: Hình 2-48: Cấu trúc tin gửi I2C Hình 2-49: Cấu trúc tin nhận I2C Địa slave module MPU6050 mặc định là: 0x68 Quá trình truyền nhận liệu bắt đầu có tín hiệu “Start” kết thúc tín hiệu “Stop” Một có điều kiện “Start” Master phải truyền địa ghi cần tác động hành động tương ứng (read/write) Đối với MPU6050, quy luật truyền nhà sản xuất đưa ra, trình đưa liệu từ vi điều khiển xuống cảm biến việc cấu hình cho cảm biến Dữ liệu data nhận bit 62 Hình 2-50: Thứ tự gửi liệu cấu hình nhận từ mơ đun MPU6050 c UART UART (Universal Asynchronous Receiver/Transmitter) kiểu truyền thông nối tiếp không đồng UART thường dùng máy tính cơng nghiệp, truyền thơng vi điều khiển hay số thiết bị truyền tin khác Mục đích UART để truyền tín hiệu qua lại lẫn truyền máy tính với máy tính, máy tính với thiết bị, vi điều khiển với nhau, vi điều khiển…UART sử dụng đường truyền (TXD) nhận (RXD) khác Hình 2-51:Giao tiếp UART Giao tiếp với sim808 Sim808 điều khiển thông qua giao tiếp UART với tốc độ baud 1200, 2400, 4800, 9600(defaut), 19200, 38400, 57600, 115200 Sử dụng tập lệnh AT để cấu hình nhận liệu từ SIM808 Một số lệnh AT cụ thể thường dùng: (kết thúc tập lệnh ) ATZ: Reset modem, kiểm tra modem dã hoạt động bình thường chưa Gửi nhiều lần cho ăn, nhận chuỗi ATZOK 63 ATE0: Tắt chế độ phản hồi lệnh AT+CLIP=1: Định dạng chuỗi trả nhận gọi AT+CMGF=1: Thiết lập trình truyền nhận tin nhắn thực chế độ text ATD[Số_điện_thoại]; : Lệnh thực gọi AT+CMGS=”Số_điện _thoại” : Lệnh gửi tin nhắn, gửi mã Ctrl+Z (0x1A) để kết thúc nội dung gửi gửi tin nhắn 64 CHƯƠNG CÀI ĐẶT THIẾT BỊ VÀ ĐÁNH GIÁ KẾT QUẢ 3.1 Lắp ráp cài đặt thiết bị Hệ thống lắp ráp cách Picamera nối với RaspberryPi qua bus có sẵn bo mạch Em sử dụng nguồn 7.4V cung cấp cho hệ thống Việc lắp đặt hệ thống với góc thay đổi lớn làm việc nhận dạng tính tốn thông số cho kết sai lệch khác Lắp đặt camera mũ bảo hiểm có nhiều lợi xe góc nhìn camera (FOV) lớn đặt thấp, đảm bảo việc nhận dạng tính tốn từ xa Hơn việc gắn mũ bảo hiểm thuận lợi cho việc lắp đặt cất giữ Camera đặt thử nghiệm với góc lệnh: 50, 100, 200 so với phương ngang Bảng 3-1: Đánh giá với góc nghiêng camera thay đổi so với phương ngang Góc lệch 50 100 200 Dài Trung bình Ngắn 80 xe 50 xe 20 xe Kích thước xe khung hình Nhỏ Trung bình To Mức độ khó việc tách đối tượng khỏi Khó Dễ Dễ Mức độ trực quan Cao Cao Thấp Chiều dài đường khung hình Số lượng xe khung hình Hình 3-1: Lắp đặt camera nghiêng 10o 65 3.2 Kết 3.2.1 Xử lý ảnh, trích xuất thơng tin Camera thu nhận ảnh màu RGB Sau hệ thống thực chuyển ảnh màu thành ảnh xám (Hình 3-2) (Thời gian quay 10 sáng) Hình 3-2: Ảnh xám Thực bước tiền xử lý ảnh lọc nhiễu Gaussian Blur (Hình 3-3) Hình 3-3: Lọc nhiễu Gauss Hệ thống thực trừ hai khung hình cho Trừ khung hình cho khung hình trước (Hình 3-4) Hình 3-4: Trừ hai frame Hệ thống phân ngưỡng hình ảnh để tạo thành ảnh nhị phân với hai vùng màu đen vùng xe di chuyển màu trắng Tuy nhiên vùng trắng bị nhiễu lỗ trống bên (Hình 3-5) 66 Hình 3-5: Phân ngưỡng Sau bước phân ngưỡng, phân hai vùng xe, nhiên vùng có xe bị hở, nhiều lỗ trống, khơng đầy (Hình 3-5) Do cần thực bước biến đổi hình thái học để lấp đầy chúng (Hình 3-6) Hình 3-6: Co, dãn hình thái học Sau bước co dãn hình thái học, vùng có xe di chuyển lấp đầy, khơng cịn lỗ trống bên Tuy nhiên kích thước vùng bị phình to thực tế Do cần làm bước tìm biên để biết xác kích thước vùng xe di chuyển (Hình 3-7) Hình 3-7: Tìm biên Canny Sau tìm biên, ta dùng phép tốn logic AND_BIT vùng có xe di chuyển bị phình to phép biến đổi hình thái học với biên tìm Canny Kết thu mảng xe chuyển động (Hình 3-8) Chúng dùng làm đầu vào cho tiến trình bám đối tượng 67 Hình 3-8: Mảng xe chuyển động Hình 3-9: Nhận dạng, bám đối tượng 3.2.2 Nhận dạng đối tượng Nhận dạng phương tiện xác định khoảng cách, đường Sử dụng thư viện tự đào tào từ hình ảnh mẫu có sẵn kết hợp phân loại tầng đưa hiệu cho việc nhận dạng phương tiện lưu thông đường Từ vị trí đối tượng khung hình, em tính khoảng cách thực tế từ camera đến đối tượng Hình 3-10: Nhận dạng phương tiện, xác định khoảng cách đường Nhận dạng biển báo giao thông Vẫn việc sử dụng thư viện tự học trước, phân loại Haar cascades đưa đánh giá đối tượng có khung hình, cụ thể biển báo, có nhiều loại biển báo giao thông nên em chọn biển báo thông dụng với đường như: biển chiều, biển cấm rẻ phải, rẽ trái, cấm dừng… 68 Hình 3-11: Nhận dạng biển báo rẽ phải Hình 3-12: Nhận dạng biển báo đường chiều Hình 3-13: Nhận dạng biển báo cấm rẽ trái 69 Đánh giá kết Bảng 3-2: Đánh giá kết nhận dạng qua thử nghiệm STT Loại nhận dạng Số biển báo/phương tiện/người có video Số biển báo nhận dạng Biển báo 10 Các loại xe 20 16 Người 10 - Tỷ lệ nhận dạng loại biển báo xe tương đối tốt, riêng nhận dạng người bộ, thơng tin điểm ảnh nên tỷ lệ nhận dạng thấp - Đối với trường hợp xác định đường, hiệu lên đến 90% 70 CHƯƠNG KẾT LUẬN VÀ KIẾN NGHỊ NHỮNG NGHIÊN CỨU TIẾP THEO Sau khoảng thời gian bốn tháng, với giúp đỡ tận tình thầy PGS.TS Hồng Sĩ Hồng, em thiết kế thiết bị gắn mũ bảo hiểm cảnh báo nguy hiểm cho người lái xe Một số mục tiêu đạt sau: Xử lý ảnh, trích xuất thơng tin đường, nhận dạng số biển báo biển báo dừng lại, đường chiều, cấm rẽ phải, rẽ trái …, nhận dạng đèn tín hiệu, người bộ, nhận dạng phương tiện tơ, xe máy Ngồi hệ thống cảnh báo nguy hiểm tai nạn xảy ra, báo cho người thân cần thiết vị trí xảy tai nạn để kịp xử lý, tránh đáng tiếc xảy Trong tương lai, với phát triển iOT, em muốn hệ thống có thêm số chức tính tốn mật độ xe, cảnh báo tắc đường đến tất người giúp cho có khả tránh vào nơi ùn tắc Cùng với đó, hệ thống kết hợp số chức điều khiển bán tự động, giúp cho việc lái xe an tồn Trong q trình nghiên cứu hồn thiện luận văn này, khơng tránh khỏi thiếu sót Em mong nhận đóng góp q báu q thầy để nghiên cứu ngày hoàn thiện Em xin chân thành cảm ơn hướng dẫn giúp đỡ tận tình thầy PGS.TS Hoàng Sĩ Hồng kiến thức thiết bị trình làm luận văn Em xin chân thành cảm ơn Bộ môn Kỹ thuật Đo Tin học Công nghiệp tạo điều kiện thiết bị thí nghiệm nơi làm việc để em hồn thành đồ án Em xin chân thành cảm ơn ! 71 TÀI LIỆU THAM KHẢO [1] T.Wei Mei, H.Chang Pu, C.Ting Hong, Yu-Chen Huang, „Multi-object tracking system using adaptive background reconstruction technique and its application to traffic Parameters extraction,“ 2006 [2] J Malik, S.Russel, „A machine vision based surveillance system for California roads,“ 1994 [3] R Rosales, S.Sclaroff, „Improved tracking Multiple Humans with trajectory prediction and occlution modeling,“ 1998 [4] Raspberrypi,“ [Online] Available: htt ps://www.raspberrypi.org/ [5] OpenMAX IL - The Standard for Media Library Portability,“ [Online] Available: https://www.khronos.org/openmax/il/ [6] K Group, Openmax Integration Layer Application Programming Interface Specification, 2008 [7] Automation,“ [Online] Available: http://automation.net.vn/Cong-nghe-Ungdung/Ung-dung-KIT-RASPBERRY-PI-TRONG-Giam-sat-truc-tuyen-tinh-trang-giaothong-tren-cac-tuyen-quoc-lo.html [8] Learnopencv,“ [Online] Available: http://www.learnopencv.com/histogramof-oriented-gradients/ [10] tjormola, „github,“ [Online] Available: https://github.com/tjormola/rpiopenmax-demos/blob/master/rpi-camera-encode.c [11] L Li, Ư Huang, I.Y.H.Gu, and Q Tian „Statistical modeling of complex backgrounds for foreground object detection,“ 2004 [12] Y.Kee Jung and Y.Sung Ho „Traffic parameter extraction using videobased vehicle tracking,“ 1999 [13] Đồ án tốt nghiệp: Thiết kế hệ thống điểm danh giám sát nhân viên, tác giả 72 PHỤ LỤC Một số giá thành mua linh kiện Thiết bị Bảng giá (đồng) Số lượng RaspberryPi 1.100.000 Picamera 500.000 STM32F103C8T6 40.000 SIM808 280.000 MPU6050 80.000 Tổng 2.000.000 Hàm sử dụng để tính tốn khoảng cách vẽ biểu tượng đối tượng nhận dạng void draw_locations(Mat & img, vector< Rect > &locations, const Scalar & color, string text) { Mat img1, car, carMask ,carMaskInv,car1,roi1, LeftArrow , LeftMask, RightArrow,RightMask; img.copyTo(img1); string dis; if (!locations.empty()) { double distance= 0; for( int i = ; i < locations.size() ; ++i){ if (text=="Car"){ car = imread(CAR_IMAGE); carMask = car.clone(); cvtColor(carMask, carMask, CV_BGR2GRAY); locations[i].y = locations[i].y + img.rows/2; // shift the bounding box 73 distance = (0.0397*2)/((locations[i].width)*0.00007);// la gia tri trung binh chieu rong cua oto Size size(locations[i].width/1.5, locations[i].height/3); resize(car,car,size, INTER_NEAREST); resize(carMask,carMask,size, INTER_NEAREST); Mat roi = img.rowRange(locations[i].y-size.height, (locations[i].y+locations[i].height/3)size.height).colRange(locations[i].x, (locations[i].x +locations[i].width/1.5)); bitwise_and(car, roi, car); car.setTo(color, carMask); add(roi,car,car); car.copyTo(img1.rowRange(locations[i].y-size.height, (locations[i].y + locations[i].height/3)-size.height).colRange(locations[i].x, (locations[i].x +locations[i].width/1.5))); }else if((text=="Pedestrian")){ distance = (0.0397*0.5)/((locations[i].width)*0.00007);//0.5 la gia tri trung binh cua chieu rong nguoi }else if((text=="Stop Sign")){ distance = (0.0397*0.75)/((locations[i].width)*0.00007);//0.75 la gia tri trung binh rong cua bien bao dung lai }else if((text=="Left Arrow")){ LeftArrow = imread(LEFT_SIGN_IMAGE); LeftMask = LeftArrow.clone(); cvtColor(LeftMask, LeftMask, CV_BGR2GRAY); //locations[i].y = locations[i].y + img.rows/2; // shift the bounding box Size size(locations[i].width/2, locations[i].height/1.5); resize(LeftArrow,LeftArrow,size, INTER_NEAREST); resize(LeftMask,LeftMask,size, INTER_NEAREST); distance = (0.0397*0.4)/((locations[i].width)*0.00007); 74 if (locations[i].y-size.height>0){ Mat roi1 = img.rowRange(locations[i].y-size.height,(locations[i].y + locations[i].height/1.5)-size.height).colRange(locations[i].x+5, (locations[i].x+5+locations[i].width/2)); bitwise_and(LeftArrow, roi1, LeftArrow); LeftArrow.setTo(color, LeftMask); add(roi1,LeftArrow,LeftArrow); LeftArrow.copyTo(img1.rowRange(locations[i].y-size.height, (locations[i].y + locations[i].height/1.5) size.height).colRange(locations[i].x + ,(locations[i].x + 5+ locations[i].width/2 ))); } }else if((text=="Right Arrow")){ RightArrow = imread(RIGHT_SIGN_IMAGE); RightMask = RightArrow.clone(); cvtColor(RightMask, RightMask, CV_BGR2GRAY); //locations[i].y = locations[i].y + img.rows/2; // shift the bounding box Size size(locations[i].width/2, locations[i].height/1.5); resize(RightArrow,RightArrow,size, INTER_NEAREST); resize(RightMask,RightMask,size, INTER_NEAREST); distance = (0.0397*0.4)/((locations[i].width)*0.00007);// if (locations[i].y-size.height>0){ Mat roi1 = img.rowRange(locations[i].ysize.height,(locations[i].y+locations[i].height/1.5)size.height).colRange(locations[i].x+5, (locations[i].x+5+locations[i].width/2)); bitwise_and(RightArrow, roi1, RightArrow); RightArrow.setTo(color, RightMask); add(roi1,RightArrow,RightArrow); RightArrow.copyTo(img1.rowRange(locations[i].y-size.height, (locations[i].y + locations[i].height/1.5)75 size.height).colRange(locations[i].x+5 ,(locations[i].x +5+locations[i].width/2 ))); } } stringstream stream; stream