TỔ NG QUAN
ĐẶ T V ẤN ĐỀ
Theo công bố của Tổng cục thống kê và UNICEF ngày 11 -1 -2019, hơn 7% dân số
Việt Nam từ 2 tuổi trở lên – khoảng 6,2 triệu người là người khuyết tật Bên cạnh đó, có
Khoảng 13% dân số Việt Nam, tương đương gần 12 triệu người, đang sống trong các hộ gia đình có người khuyết tật Người khuyết tật được phân loại thành 6 dạng chính: khuyết tật vận động (chân, tay), khuyết tật nghe và nói (câm, điếc), khuyết tật thị giác (khiếm thị, khuyết tật về mắt), khuyết tật thần kinh và tâm thần (rối loạn thần kinh, tâm thần), khuyết tật trí tuệ (bại não, động kinh, tự kỷ) và các khuyết tật khác (nạn nhân chất độc da cam, người nhiễm virus HIV).
Cơ sở hạ tầng ở Việt Nam hiện vẫn chưa đáp ứng đầy đủ nhu cầu của người khuyết tật Mặc dù nhà nước đã hỗ trợ các dụng cụ như chân tay giả, xe lăn và máy trợ thính, nhưng xe lăn vẫn là thiết bị thiết yếu cho người khuyết tật về vận động, nghe và nhìn Để người khuyết tật có thể tự di chuyển bằng xe lăn, cần có bộ điều khiển giúp họ điều chỉnh hướng đi theo ý muốn.
Numerous studies have been conducted on controllers for electric wheelchairs, including the article "Gyro-Accelerometer based Control of an Intelligent Wheelchair" by authors Rafia Hassani, Mohamed Boumehraz, Maroua Hamzi, and Zineb Habba, which was published on September 9th.
Vào năm 2018, nhóm sinh viên từ Đại học Sư phạm Kỹ thuật Đà Nẵng và Đại học Giao thông Vận tải đã phát triển một xe lăn điện điều khiển bằng cử động đầu Tuy nhiên, sản phẩm này vẫn còn tồn tại một số nhược điểm, bao gồm thiết bị điều khiển chưa hoàn thiện và việc sử dụng quá nhiều cảm biến siêu âm để phát hiện vật cản, dẫn đến mất tính thẩm mỹ.
Nhóm nghiên cứu giới thiệu đề tài "Nghiên cứu, thiết kế bộ điều khiển cho xe lăn" nhằm tạo ra một thiết bị giúp người khuyết tật di chuyển dễ dàng hơn Đề tài này tập trung vào việc phát huy các ưu điểm và khắc phục nhược điểm của những nghiên cứu trước đó.
CHƯƠNG 1: TỔNG QUAN và thi công bộ điều khiển xe lăn điện bằng cảm biến gia tốc”, do chính nhóm tiến hành nghiên cứu và thực hiện Với mô hình này, chúng ta có thể phát triển bộđiều khiển biến chiếc xe lăn thành một vật dụng hữu ích giúp cho người khuyết tật có thểđi lại dễ dàng hơn
Xử lý ảnh là một lĩnh vực khoa học đang phát triển nhanh chóng, thu hút sự quan tâm của các nhà khoa học và thúc đẩy các trung tâm nghiên cứu Với sự tiến bộ của khoa học kỹ thuật trong vài thập kỷ qua, xử lý ảnh đóng vai trò quan trọng trong nhiều ứng dụng thực tiễn, từ sản xuất và kiểm tra chất lượng đến sự di chuyển của robot, phương tiện tự trị, công cụ hỗ trợ người mù, an ninh và giám sát, nhận dạng đối tượng, nhận dạng khuôn mặt, cũng như các ứng dụng trong y học và chỉnh sửa video.
Camera 3D hiện đang được ứng dụng rộng rãi trong khoa học kỹ thuật nhờ khả năng ghi nhận chiều sâu của đối tượng, tương tự như cách mà mắt con người hoạt động.
M Ụ C TIÊU
Mục tiêu của nghiên cứu "Thiết kế và thi công mô hình xe lăn tự hành trong nhà sử dụng camera 3D" là phát triển một hệ thống điều khiển xe lăn điện thông qua việc xử lý tín hiệu từ camera 3D Realsense bằng laptop Hệ thống này giao tiếp với Arduino Nano, bộ xử lý tín hiệu điều khiển động cơ dưới xe, nhằm điều khiển hoạt động của xe lăn tự động trong môi trường nội thất.
N Ộ I DUNG NGHIÊN C Ứ U
Để tài “Thiết kế và thi công mô hình xe lăn tự hành trong nhà dùng camera 3D” Có những nội dung sau:
NỘI DUNG 1: Tìm hiểu phương pháp nhận dạng vật mốc
NỘI DUNG 2: Tổng quan về xử lý ảnh.
NỘI DUNG 3: Tìm hiểu camera 3D và các Module liên quan
NỘI DUNG 4: Viết chương trình trên Python va Arduino
NỘI DUNG 5: Hoàn thành mô hình
NỘI DUNG 6: Đánh giá kết quả thực hiện
GI Ớ I H Ạ N
Đề tài “Thiết kế và thi công mô hình xe lăn tự hành trong nhà dùng camera 3D” chỉ thích hợp sử dụng trên địa hình bằng phẳng, không gồ ghề và cần tránh ánh sáng trực tiếp từ mặt trời để giảm thiểu nhiễu cho camera Xe lăn có khả năng phát hiện vật cản trong khoảng cách dưới 1.5m, với điều kiện độ cao của vật phải từ 0.5m trở lên so với mặt đất.
B Ố C Ụ C
Chương này giới thiệu lý do chọn đề tài, xác định mục tiêu nghiên cứu, nêu rõ nội dung nghiên cứu và các giới hạn thông số, đồng thời trình bày bố cục của đồ án.
Chương 2: Cơ sở lý thuyết
Chương này sẽ cung cấp kiến thức cơ bản về xử lý ảnh, bao gồm các phương pháp nhận dạng và phân loại ảnh, cũng như cách tính kích thước sản phẩm Ngoài ra, chương cũng sẽ giới thiệu về camera 3D và các thư viện liên quan.
Chương 3: Thiết kế và tính toán
Chương này sẽ khám phá chi tiết các thuật toán nhận dạng sản phẩm dựa trên hình dạng, đồng thời xem xét các thuật toán tính kích thước và thiết kế mô hình sản phẩm.
Chương 4: Thi công hệ thống
Nội dung chương này là quá trình thi công cùng với việc chạy chương trình về phân loại sản phẩm cũng như tính kích thước sản phẩm
Chương 5: Kết quả nhận xét và đánh giá
Nội dung chương này là tổng hợp các kết quảđạt được sau khi thi công mô hình và kết quảđạt được khi phân loại sản phẩm
Chương 6: Kết luận và hướng phát triển
Kết quả nhận được khi hoàn thiện đề tài, đưa ra các hướng phát triển hoàn thiện.
CƠ SỞ LÝ THUY Ế T
T Ổ NG QUAN V Ề X Ử LÝ ẢNH VÀ CÁC THƯ VIỆ N LIÊN QUAN
2.1.1 Giới thiệu xử lý ảnh
Xử lý ảnh đã trở thành một chủ đề quen thuộc, được ứng dụng rộng rãi từ các hoạt động hàng ngày cho đến việc nâng cao hiệu quả sản xuất Công nghệ này không chỉ mang lại lợi ích cho cá nhân và gia đình, mà còn được áp dụng trong nhiều lĩnh vực quan trọng như Chính trị, Y tế và Giáo dục.
Xử lý tín hiệu là một lĩnh vực quan trọng trong kỹ thuật điện tử và viễn thông, cũng như trong toán học Nó tập trung vào nghiên cứu và xử lý các tín hiệu kỹ thuật số và analog, giải quyết các vấn đề liên quan đến lưu trữ, bộ lọc và các hoạt động khác trên tín hiệu Các loại tín hiệu này bao gồm truyền dẫn âm thanh, giọng nói, hình ảnh và nhiều tín hiệu khác.
Trong lĩnh vực xử lý tín hiệu, xử lý ảnh là một phương pháp quan trọng, trong đó đầu vào và đầu ra đều là hình ảnh Xử lý ảnh có thể chia thành hai loại: xử lý hình ảnh tương tự và xử lý hình ảnh kỹ thuật số Để tạo ra một bức ảnh số, quá trình bắt đầu từ việc chụp ảnh bằng máy ảnh, sử dụng ánh sáng mặt trời làm nguồn năng lượng Các cảm biến thu nhận ánh sáng phản xạ từ đối tượng, tạo ra một tín hiệu điện áp liên tục Để chuyển đổi tín hiệu này thành hình ảnh kỹ thuật số, cần thực hiện quá trình lấy mẫu và lượng tử hóa Kết quả cuối cùng là một hình ảnh kỹ thuật số sau khi trải qua các bước xử lý cần thiết.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 20
2.1.2 Những kiến thức cơ bản trong xử lý ảnh
Điểm ảnh, hay pixel, là đơn vị cơ bản nhất trong việc tạo ra một bức ảnh kỹ thuật số, với mỗi pixel được xác định bằng tọa độ (x,y) Một bức ảnh kỹ thuật số có thể được tạo ra từ việc chụp ảnh hoặc qua các phương pháp đồ họa khác, và nó bao gồm hàng ngàn hoặc hàng triệu pixel riêng lẻ Số lượng pixel trong bức ảnh càng nhiều thì độ chi tiết càng cao, với 1 triệu pixel tương đương với 1 megapixel.
B Ảnh số: là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật Sốđiểm ảnh xác định độ phân giải của ảnh Ảnh có độ phân giải càng cao thì càng thể hiện rõ nét các đặt điểm của tấm hình càng làm cho tấm ảnh trở nên thực và sắc nét hơn Một hình ảnh là một tín hiệu hai chiều Nó được xác định bởi hàm toán học f(x, y) trong đó x và y là hai tọa độ theo chiều ngang và chiều dọc Các giá trị của f(x, y) tại bất kỳđiểm nào là cung cấp các giá trị điểm ảnh (pixel ) tại điểm đó của một hình ảnh
Mức xám của điểm ảnh biểu thị cường độ sáng và được gán giá trị tại từng điểm ảnh Các mức ảnh xám phổ biến bao gồm 16, 32, 64, 128 và 256, trong đó 256 là mức sử dụng phổ biến nhất, tương ứng với việc sử dụng 1 byte để biểu diễn Ảnh nhị phân chỉ có hai mức là trắng và đen, với hai giá trị duy nhất là 0 và 1.
Mỗi điểm ảnh trong ảnh kỹ thuật số chứa 1 bit dữ liệu, với ảnh đen trắng chỉ có hai màu cơ bản là đen và trắng, trong khi ảnh màu được tạo thành từ sự kết hợp của ba màu cơ bản, mang đến một thế giới màu sắc phong phú Để mô tả mức màu trong ảnh màu, người ta thường sử dụng 3 byte, cho phép hiển thị khoảng 16,7 triệu sắc thái màu khác nhau.
Hiện nay, xử lý ảnh là một lĩnh vực được giảng dạy rộng rãi tại các trường đại học và ứng dụng thực tế qua nhiều phần mềm như chỉnh sửa hình ảnh và nhận diện khuôn mặt Sự phát triển này đã tạo ra nhiều cơ hội trong ngành công nghiệp công nghệ thông tin.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 21 công cụ để chúng ta lập trình ứng dụng vào thực tế, Như phải kể đến Matlap, hay ngôn ngữ Python…
2.1.3 Phương pháp nhận dạng vật mốc
Với đềtài “Thiết kế và thi công mô hình xe lăn tự hành trong nhà dùng camera
3D.” Thiết kế mô hình phân có khả năng nhận dạng các vật xung để có quyết định cho xe lăn
Trong cuộc sống hiện đại, mỗi gia đình sở hữu nhiều vật dụng với đa dạng màu sắc và hình dáng Mỗi vật dụng đều mang những đặc điểm riêng biệt, tạo nên sự độc đáo cho từng món đồ Việc nhận diện các vật dụng này dựa trên những điểm đặc trưng của chúng.
Giải thuật SIFT (Scale-Invariant Feature Transform) do David Lowe phát minh và đăng ký bản quyền, là một công cụ quan trọng trong lĩnh vực Computer Vision, được sử dụng để nhận dạng và mô tả các điểm đặc trưng trong ảnh Được giới thiệu lần đầu vào năm 1999, SIFT, cùng với giải thuật SURF, đã trở thành những phương pháp phổ biến trong nhận dạng đối tượng và mô hình hóa 3D.
TRUY Ề N D Ữ LI Ệ U BLUETOOTH
Bluetooth là công nghệ truyền dữ liệu không dây tầm gần, cho phép các thiết bị điện tử như điện thoại di động, tablet và laptop kết nối và trao đổi thông tin mà không cần dây cáp Sử dụng sóng Radio tần số 2.4GHz, Bluetooth có khả năng truyền tải dữ liệu qua khoảng cách ngắn, đồng thời không gây xung đột với công nghệ Wifi dù sử dụng cùng tần số, nhờ vào bước sóng ngắn hơn.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 22
Bluetooth là một chuẩn điện tử mà các nhà sản xuất phải tuân thủ để tích hợp tính năng này vào sản phẩm của mình Các tiêu chuẩn kỹ thuật của Bluetooth đảm bảo rằng các thiết bị có thể nhận diện và tương tác hiệu quả với nhau khi sử dụng công nghệ này.
Các ứng dụng nổi bật của Bluetooth gồm:
+ Điều khiển và giao tiếp không dây giữa một điện thoại di động và tai nghe không dây
+ Mạng không dây giữa các máy tính cá nhân trong một không gian hẹp đòi hỏi ít băng thông
+ Giao tiếp không dây với các thiết bị vào ra của máy tính, chẳng hạn như chuột, bàn phím và máy in
Thay thế các kết nối truyền thống giữa các thiết bị đo, thiết bị định vị, thiết bị y tế, máy quét mã vạch và các thiết bị điều khiển giao thông bằng các giao tiếp nối tiếp hiện đại.
+ Thay thếcác điều khiển dùng tia hồng ngoại
+ Gửi các các tập tin qua lại các thiết bị dùng Bluetooth khác
+ Điều khiển từ xa cho các thiết bị trò chơi điện tử
Kết nối Internet cho máy tính bằng điện thoại di động thay cho modem là một giải pháp tiện lợi Trong đề tài này, Bluetooth được sử dụng để truyền lệnh điều khiển từ bộ phận xử lý đến bộ phận động lực, giúp xe lăn di chuyển một cách linh hoạt mà không cần dây dẫn phức tạp.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 23
2.2.3 Ưu và nhược điểm của công nghệ Bluetooth Ưu điểm:
Thay thế hoàn toàn dây nối.
Hoàn toàn không nguy hại đến sức khoẻ con người.
Bảo mật thông tin được đảm bảo nhờ công nghệ mã hóa hiện đại Khi kết nối đã được thiết lập, việc nghe trộm hoặc đánh cắp dữ liệu từ thiết bị trở nên rất khó khăn.
Các thiết bị có thể kết nối với nhau trong vòng 20m mà không cần trực diện (hiện nay có loại Bluetooth kết nối lên đến 100m)
Kết nối điện thoại và tai nghe Bluetooth khiến cho việc nghe máy khi lái xe hoặc bận việc dễ dàng.
Tốn ít năng lượng, chờ tốn 0.3mAh, tối đa 30mAh trong chế độ truyền dữ liệu.
Không gây nhiễu các thiết bị không dây khác.
Tính tương thích cao nên được nhiều nhà sản xuất phần cứng và phần mềm hỗ trợ. Nhược điểm:
Tốc độ thấp, khoảng 720kbps tối đa.
Bắt sóng kém khi có vật cản.
Thời gian thiết lập lâu.
NGÔN NG Ữ PYTHON
Python là ngôn ngữ lập trình phổ biến, được sử dụng rộng rãi từ môi trường học đường đến các dự án lớn, cho phép phát triển nhiều loại ứng dụng như phần mềm desktop, server và ứng dụng web Đặc biệt, Python là lựa chọn hàng đầu trong lĩnh vực trí tuệ nhân tạo và machine learning Được Guido van Rossum phát triển vào năm 1990, Python ban đầu chạy trên nền Unix nhưng hiện nay tương thích với nhiều hệ điều hành như MS-DOS, Mac OS, Windows và Linux Python phát triển trong khuôn khổ dự án mã mở và được quản lý bởi tổ chức phi lợi nhuận Python Software Foundation.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Bộ môn Điện tử Công nghiệp - Y sinh 24 đã nhận được sự đóng góp từ nhiều cá nhân, trong đó Guido van Rossum là tác giả chính của ngôn ngữ lập trình Python Ông đóng vai trò quan trọng trong việc định hình hướng phát triển của Python.
Python là ngôn ngữ lập trình có cú pháp đơn giản và ngắn gọn, với số lượng từ khóa hạn chế, giúp người mới dễ dàng tiếp cận Mã lệnh của Python không phức tạp, cho phép ngay cả những người chưa có kinh nghiệm cũng có thể hiểu được ý nghĩa của từng dòng lệnh Ngoài ra, Python có nhiều ứng dụng trên nhiều nền tảng, cho phép các phần mềm viết bằng ngôn ngữ này chạy trên các hệ điều hành khác nhau như Windows, Mac OSX và Linux.
OpenCV (Open Source Computer Vision Library) là một thư viện mã nguồn mở miễn phí, lý tưởng cho những ai mới bắt đầu trong lĩnh vực học thuật Thư viện này được ứng dụng rộng rãi trong các lĩnh vực như thị giác máy tính, xử lý ảnh và máy học, và hỗ trợ nhiều ngôn ngữ lập trình như C++, C, Python và Java, trên các nền tảng Windows, Linux, Mac OS, iOS và Android Được phát triển bởi Gary Bradsky tại Intel vào năm 1999 và ra mắt vào năm 2000, OpenCV có nhiều ứng dụng như nhận dạng ảnh, xử lý hình ảnh, phục hồi hình ảnh/video và thực tế ảo Trong đề tài này, OpenCV được sử dụng chủ yếu trên ngôn ngữ Python để xử lý hình ảnh đầu vào và thực hiện nhận dạng ảnh.
OpenCV là một thư viện mã nguồn mở cho phép người dùng sử dụng các thuật toán miễn phí và đóng góp thêm các thuật toán mới, góp phần vào sự phát triển không ngừng của thư viện này.
Các tính năng của thư viện OpenCV:
+ Đối với hình ảnh, chúng ta có thể đọc và lưu hay ghi chúng
+ Về Video cũng tương tự như hình ảnh cũng có đọc và ghi
+ Xử lý hình ảnh có thể lọc nhiễu cho ảnh, hay chuyển đổi ảnh
+ Thực hiện nhận dạng đặc điểm của hình dạng trong ảnh
+ Phát hiện các đối tượng xác định được xác định trước như khuôn mặt, mắt, xe trong video hoặc hình ảnh
+ Phân tích video, ước lượng chuyển động của nó, trừ nền ra và theo dõi các đối tượng trong video
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 25
2.3.3 Ưu điểm và nhược điểm Python Ưu điểm:
+Là một ngôn ngữ có hình thức sáng sủa, cấu trúc roc ràng, cú pháp ngắn gọn
+Có trên tất cả các nền tảng hệ điều hành từ UNIX, MS – DOS, Mac OS, Windows và Linix và các OS khác thuộc họ Unix
+Tương thích mạnh mẽ với Unix, hardware, thirt-party software với sốlượng thư viện khổng lồ (400 triệu người sử dụng)
+Python với tốc độ xử lý cực nhanh, python có thể tạo ra những chương trình từ những script siêu nhỏ tới những phần mềm cực lớn như Biender 3D.
+Python không có các thuộc tính như :protected,private hay public, không có vòng lặp do…while và switch….case.
+Mặc dù tốc độ xử lý của Python nhanh hơn PHP nhưng không bằng JAVA và C++.
ARDUINO
Arduino là nền tảng mã nguồn mở giúp xây dựng ứng dụng điện tử tương tác, cho phép người dùng lập trình và thực hiện các dự án mà không cần công cụ chuyên biệt để nạp code Nó hoạt động như một máy tính nhỏ, tạo điều kiện thuận lợi cho việc phát triển các ứng dụng điện tử.
Arduino tương tác với thế giới thông qua các cảm biến điện tử, đèn, và động cơ.
+ Phần cứng gồm một board mạch mã nguồn mở(thường gọi là vi điều khiển): có thể lập trình được
+ Các phần mềm hỗ trợ phát triển tích hợp IDE (Integrated Development
Environment) dùng để soạn thảo, biên dịch code và nạp chương cho board.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 26
Arduino có khả năng đọc dữ liệu từ các thiết bị cảm biến và điều khiển động cơ, vì vậy nó thường được sử dụng làm bộ xử lý trung tâm cho nhiều loại robot khác nhau.
+ Game tương tác: Arduino có thể được sử dụng để tương tác với Joystick, màn hình,…
+ Máy bay không người lái
+ Điều khiển đèn tín hiệu giao thông, làm hiệu ứng đèn Led nhấp nháy trên các biển quảng cáo…
+ Điều khiển các thiết bị cảm biến ánh sáng, âm thanh
+ Làm đàn bằng ánh sáng
Arduino còn rất nhiều ứng dụng hữu ích khác tùy vào sự sáng tạo của người dùng
The Arduino Integrated Development Environment (IDE) is a text editor that facilitates writing code to upload to Arduino boards Programs created using the Arduino IDE are referred to as sketches, which are saved in the ino format.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 27
GI Ớ I THI Ệ U PH Ầ N C Ứ NG
A Giới thiệu về camera Intel RealSense D435
Camera Intel RealSense D435, sản phẩm của Microsoft dựa trên công nghệ của PrimeSense, được thiết kế như một thiết bị ngoại vi cho Xbox 360 Thiết bị này cho phép giao tiếp với người dùng thông qua cử chỉ, mang lại trải nghiệm thú vị cho game thủ Intel RealSense D435 hiểu cử chỉ con người nhờ vào hai đặc tính chính: thông tin về độ sâu ảnh (depth map) và khả năng phát hiện, theo dõi đặc điểm cơ thể người (body skeleton tracking).
Sản phẩm Intel RealSense D435 không chỉ phục vụ cho mục đích chơi game mà còn được ứng dụng trong nghiên cứu xử lý ảnh 3D, phát hiện cử chỉ và bám theo người Sự thành công của Intel RealSense D435 chủ yếu đến từ mức giá hợp lý khoảng 140$, trong khi vẫn cung cấp thông tin 3D với chất lượng chấp nhận được.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 28
B Cấu tạo camera Intel RealSense D435
Hình 4: Cấu tạo camera Intel RealSense D435 3D
+ 2 Camera RGB: Là một camera có 3 kênh dữ liệu có độ phân giải 1280×960 Camera này có khả năng chụp lại ảnh ảnh màu
+ Cảm biến hồng ngoại: Độ sâu thu về nhờ cảm biến IR projector từđó tính toán ra bản đồđộ sâu
C Nguyên lý hoạt động camera Intel RealSense D435
Hình 5: Nguyên lý camera Intel RealSense D435 3D
Cặp cảm biến camera RGB bên trái và phải hoạt động cùng nhau để tạo ra giá trị độ sâu, từ đó cho ra ảnh độ sâu chất lượng cao từ ảnh RGB Sự kết hợp với cảm biến hồng ngoại giúp nâng cao độ chính xác và chi tiết của hình ảnh.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Bộ môn Điện tử Công nghiệp - Y sinh 29 sử dụng công nghệ camera độ sâu và cảm biến hồng ngoại để xác định khoảng cách của các vật thể phía trước camera với độ chính xác cao.
D Dữ liệu thu được từ camera Intel RealSense D435
Dựa vào sơ đồ kết nối phần cứng, camera Intel RealSense D435 sử dụng các cảm biến được điều khiển để thu thập và xử lý dữ liệu thông qua chip Intel RealSense.
Vision Processor D4 có tần số24 MHz, sau đó được lưu trữ vào bộ nhớ EEPROM Các dữ liệu này có thể truyền vào máy tính thông qua cổng USB 3.0
Các tín hiệu thu thập bao gồm dữ liệu về độ sâu và màu sắc, trong đó dữ liệu về độ sâu đóng vai trò quan trọng với nhiều ứng dụng Điều này là do dữ liệu chiều sâu giúp nhận dạng các vật thể dễ dàng hơn so với xử lý ảnh thông thường Các thuật toán xử lý ảnh truyền thống thường dựa vào sự tương đồng về màu sắc, nhưng điều này có thể dẫn đến khó khăn trong nhận dạng khi các vật thể có màu sắc tương tự hoặc các phần của cùng một đối tượng có màu khác nhau.
Hình 6: Sơ đồ phần cứng camera Intel RealSense D435 3D
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 30
Thông tin về độ sâu giúp phân biệt các vật thể qua vị trí, với những điểm gần nhau thường thuộc cùng một đối tượng mà không cần dựa vào màu sắc Sự thay đổi trong hình ảnh trên bản đồ độ sâu chỉ diễn ra khi độ sâu giảm đột ngột, như ở các cạnh hoặc một số phần nhỏ của đối tượng.
Module Bluetooth HC06 với thiết kế nhỏ gọn và tiện lợi, chỉ cần giao tiếp với vi điều khiển qua 2 chân (Tx và Rx), giúp bạn dễ dàng thực hiện các dự án truyền dẫn và điều khiển từ xa Bằng cách sử dụng thiết bị ngoại vi như điện thoại thông minh hoặc laptop để dò tín hiệu Bluetooth do HC06 phát ra, bạn có thể kết nối và gửi tín hiệu từ vi điều khiển đến các thiết bị này và ngược lại sau khi pair thành công.
+ Điện áp hoạt động: 3V3-5V DC
+ Dòng điện tiêu thụ: 20-30mA
+ Sử dụng chip: CSR Bluetooth V2.0
+Hỗ trợ tốc độ baud: 200,2400,4800,9600, 19200,38400,57600,115200 + Kích thước: 28x15x2,35mm
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 31
+ Giao tiếp: UART (TX,RX)
+ Bất đồng bộ: 2.1Mbps(Max)/160kbps
+ Bảo mật: mã hóa và chứng thực
Arduino Nano nổi bật với tính tiện dụng và đơn giản, cho phép lập trình trực tiếp từ máy tính tương tự như Arduino Uno R3 Đặc biệt, kích thước nhỏ gọn của nó là một trong những ưu điểm nổi bật, giúp dễ dàng tích hợp vào các dự án khác nhau.
Arduino Nano cực kì nhỏ chỉ tương đương đồng 2 nghìn gấp lại 2 lần thôi (1.85cm x
4.3cm), rất thích hợp cho các newbie, vì giá rẻ hơn Arduino Uno nhưng dùng được tất cả các thư việt của mạch này Hôm nay, tớ viết bài này nhằm mục đích giới thiệu về mạch
Arduino Nano và các thông sốkĩ thuật, cùng với đó là những gợi ý ứng dụng khi bắt đầu với mạch này
Vi điều khiển ATmega328 (họ 8bit) Điện áp hoạt động 5V – DC
Tần số hoạt động 16 MHz
Số chân Digital I/O 14 (6 chân PWM)
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32
Số chân Analog 8 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 40 mA
Kích thước 1.85cm x 4.3cm
2.5.4 Module Điều Khiển Động Cơ BTS7960
Driver sử dụng 2 chip BTS7960 bao gồm mạch điều khiển cầu H và bảo vệ quá dòng, quá áp, quá nhiệt, ngắn mạch
Hình 9: Module điều khiển động cơ BTS7960 Điện áp cung cấp: 6 ~ 27 VDC
Tự động ngắt khi áp dưới 5.5V, và mở lại sau khi áp lớn hơn 5.5V
RPWM: chân đảo chiều hoặc cấp PWM nửa cầu phải, Mức tích cực cao
LPWM: chân đảo chiều hoặc cấp PWM nửa cầu trái, Mức tích cực cao
R_EN: 0 Disable nửa cầu phải, 1 Enable nửa cầu phải
L_EN: 0 Disable nửa cầu trái, 1 Enable nửa cầu trái.
TÍNH TOÁN VÀ THI Ế T K Ế
GI Ớ I THI Ệ U
Ngày nay, thiết bị điện tử ngày càng tự động hóa và thông minh, giúp chúng giao tiếp và hoạt động theo ý muốn của con người nhờ vào các cảm biến và thuật toán hỗ trợ Dự án "Thiết kế và thi công mô hình xe lăn tự hành trong nhà dùng camera 3D" sử dụng một bộ điều khiển trung tâm là laptop, kết hợp với camera 3D để thu tín hiệu hình ảnh từ bên ngoài, cùng với khối truyền tín hiệu và khối điều khiển động lực.
THI Ế T K Ế H Ệ TH Ố NG PH Ầ N C Ứ NG
Sơ đồ hệ thống bao gồm một bộ điều khiển trung tâm là laptop, kết nối với khối thu tín hiệu hình ảnh từ camera Intel RealSense D435 Kết quả hình ảnh được hiển thị trên màn hình máy tính, cùng với bộ phận điều khiển.
+ Khối xử lý trung tâm: là bộ xử lý chính, nhận dữ liệu từ khối thu tín hiệu camera, sau đó xử lý và phân tích nhận dạng
Khối thu tín hiệu hình ảnh chịu trách nhiệm thu thập tín hiệu hình ảnh từ thực tế, chuyển đổi chúng thành tín hiệu điện và gửi dữ liệu đến khối xử lý trung tâm Trong hệ thống này, camera Intel RealSense D435 được sử dụng làm thiết bị thu tín hiệu hình ảnh.
+ Khối hiển thị: hiển thị kết quả được nhận từ khối xử lý trung tâm Sử dụng màn hình của máy tính để hiển thị kết quả
+ Khối giao tiếp: module HC06
+ Điều khiển động lực : Module Điều Khiển Động BTS7960
+ Khối nguồn: cung cấp nguồn cho toàn bộ hệ thống
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34
Khối thu tín hiệu là một thành phần thiết yếu trong mô hình, có nhiệm vụ thu thập dữ liệu từ môi trường thực tế và chuyển giao thông tin này đến khối xử lý trung tâm.
Để đạt được chất lượng hình ảnh tốt và dễ dàng xử lý ảnh, việc sử dụng camera có độ phân giải cao và khả năng ghi nhận chiều sâu tương tự như mắt người là rất quan trọng Do đó, camera Intel RealSense D435 được lựa chọn làm khối thu tín hiệu hình ảnh.
Là thiết bị có ảnh hưởng lớn đến chất lượng ảnh cùng với việc nhận dạng Nên
“camera Intel RealSense D435” được chọn Camera có độ phân giải cao, cùng với kích thước phù hợp cho các hướng phát triển sau này
Các tính năng và đặc điểm của camera:
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35
1 Intel RealSense D435 được điều khiển đồng thời thu thập và xử lý dữ liệu thông qua chip PS1080 có tần số 12MHz
2 Sử dụng trong HĐH Windows, Linux, Android, Mac
3.2.2 Khối xử lý và khối hiển thị
Do việc xử lý ảnh đòi hỏi nhiều tài nguyên và tốc độ cao, nhóm đã quyết định không sử dụng vi điều khiển thông thường Thay vào đó, laptop được chọn làm khối xử lý trung tâm để đáp ứng nhu cầu này.
Máy tính của nhóm được trang bị CPU core i5 với tốc độ xử lý lên tới 3.4 GHz, phù hợp cho việc sử dụng trong mô hình Nó hỗ trợ tốt việc giao tiếp với các thiết bị ngoại vi và module từ bên ngoài, đồng thời có khả năng hiển thị kết quả từ khối xử lý trung tâm.
Sử dụng màn hình máy tính để hiển thị kết quả
3.2.4 Khối giao tiếp và điều khiển
Sử dụng module HC06 giúp truyền dữ liệu không dây, mang lại sự gọn gàng cho mô hình Với điện áp hoạt động là 5V, cần sử dụng module chuyển đổi điện áp để đảm bảo tương thích với tải.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36
❖ Module Điều Khiển Động BTS7960
Thông số kỹ thuật động cơ xe lăn:
Hình 13: Hình ảnh động cơ xe lăn Bảng 1: Thông số cơ bản động cơ Điện áp sử dụng 24VDC
Tốc độđịnh mức 83 vòng/phút
Mạch điều khiển động cơ BTS7960 sử dụng điện áp 24VDC và có khả năng tải dòng lên đến 43A, cho phép nhận tín hiệu từ vi điều khiển Arduino Mạch này giúp điều khiển 2 động cơ quay thuận và nghịch, từ đó giúp xe dễ dàng di chuyển về phía trước và phía sau với tốc độ được điều chỉnh.
Nguồn Acquy 24VDC cung cấp năng lượng cho động cơ thông qua mạch giảm áp, phục vụ cho cầu H BTS7960, vi điều khiển, cảm biến và module bluetooth Hai chân L_EN và R_EN được kết nối chung để kích hoạt hoạt động của cầu H, trong khi hai chân RPWM và LPWM đảm nhận vai trò điều khiển tốc độ động cơ bằng tín hiệu PWM.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37
Hình 14: Sơ đồ nguyên lý mạch điều khiển động cơ 3.2.5 Khối nguồn
Thông số kỹ thuật bình Acquy sử dụng cho xe lăn
Hình 15: Acquy của xe lăn điện
Xe lăn điện hoạt động với acquy có dung lượng 12AH và điện áp đầu ra 24VDC, sử dụng bộ nguồn sạc tương ứng Thời gian sử dụng của acquy 12AH phụ thuộc vào công suất tải, bao gồm hai động cơ 250W Thời gian hoạt động được tính theo công thức t = (A.V η)/P.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38
- t: là thời gian sử dụng điện từ acquy (giờ)
- η: Hệ số sử dụng acquy Thông thường η=0,7.
Thực nghiệm cho thấy khi người trên xe có khối lượng trung bình khoảng 65kg với tốc độ đã lập trình sẵn thì đo được như sau
Bảng 2: Thông số đo được Điện áp Dòng điện Động cơ 7.5V 4A
Lúc này thời gian ước tính khi sử dụng xe lăn liên tục không nghỉ là t = 12 Ah x 24 V x 0.7
Nguồn ra của acquy được sử dụng để điều khiển hai động cơ thông qua mạch điều khiển BTS7960 Đồng thời, nguồn 24VDC cũng được cấp vào mạch giảm áp LM2596 3A, giúp tạo ra điện áp 5V để cung cấp nguồn cho các module khác trong bộ điều khiển động cơ.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 39
Sơ đồ nguyên lý khối nguồn acquy 24VDC:
Hình 16: Sơ đồ nguyên lý khối nguồn acquy
CÁC TÍNH TOÁN TRONG X Ử LÝ ẢNH ĐẦ U VÀO
Camera Intel RealSense D435 hỗ trợ hai bài toán xử lý ảnh quan trọng: nhận dạng vật mốc thông qua ảnh màu và xác định khoảng cách của camera trong không gian, với dữ liệu được trả về dưới dạng mảng.
3.3.1 Nhận dạng vật mốc bằng ảnh màu của camera
Nhận dạng ảnh là giai đoạn quan trọng trong hệ thống xử lý ảnh, nơi các đối tượng được phân loại dựa trên mô hình nhất định Quá trình này bắt đầu bằng việc phân tích ảnh chụp thành các đặc trưng riêng biệt, từ đó giúp nhận dạng các đối tượng Mô hình của tôi nhận diện các vật mốc đã chụp và so sánh hình ảnh từ camera với ảnh vật mốc để đưa ra đánh giá Điểm nổi bật của SIFT, hay Scale-Invariant Feature Transform, là khả năng cung cấp kết quả ổn định bất chấp sự thay đổi về kích thước và độ xoay của ảnh, cho thấy tính năng rotation-invariant của thuật toán này.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 40
❖ Các bước của giải thuật
1 Phát hiện cực đoan không gian tỷ lệ (Scale-space extrema detection)
Trong lĩnh vực computer vision, việc xác định kích thước các cửa sổ quét ảnh là rất quan trọng để phát hiện các đặc tính của ảnh Khi một góc nhỏ được nhận diện với cửa sổ có kích thước hợp lý, thì việc áp dụng cùng kích cỡ cửa sổ cho góc lớn sẽ không hiệu quả Để khắc phục vấn đề này, kỹ thuật scale-space filtering được sử dụng SIFT tính toán DoG (Difference of Gaussians) cho từng pixel bằng cách lấy hiệu giữa hai Gaussian Blur với hai giá trị sigma khác nhau Sau khi tính toán DoG cho toàn bộ ảnh, mỗi pixel sẽ được so sánh với 8 pixel lân cận và 9 pixel tương ứng ở các quy mô trên và dưới Nếu pixel đó là điểm cực trị cục bộ, nó sẽ được xác định là một keypoint tiềm năng tại quy mô đó.
2 Nội địa hóa điểm (Keypoint localization)
Sau khi thu thập tất cả các điểm tiềm năng trong ảnh, bước tiếp theo là lọc để có kết quả chính xác hơn SIFT sử dụng chuỗi Taylor mở rộng để xác định vị trí của các cực trị một cách chính xác, và nếu cường độ của cực trị nhỏ hơn giá trị ngưỡng (0.03), điểm đó sẽ bị loại bỏ Ngoài ra, để loại bỏ các điểm trên đường viền, SIFT áp dụng khái niệm tương tự như bộ phát hiện góc Harris, sử dụng ma trận Hessian 2x2 để tính toán các đường cong chính Khi giá trị riêng lớn hơn một ngưỡng nhất định, điểm đó cũng sẽ bị loại.
Như trên, SIFT có thể loại được keypoints có tương phản thấp, edge keypoint và giữ lại những keypoint hợp lý hơn.
3 Phân công định hướng (Orientation assignment)
Each keypoint will be assigned one or more orientations based on the image gradient Subsequent calculations on the image will correspond to each orientation, scale, and the position of each feature.
4 Mô tả quan trọng (Keypoint descriptor)
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 41
SIFT tính toán Keypoint descriptor bằng cách sử dụng khu vực 16x16 xung quanh keypoint, chia thành 16 sub-blocks kích thước 4x4 Mỗi sub-block tạo ra 8 bin orientation, dẫn đến tổng cộng 128 bin giá trị, tạo thành một vector đại diện cho keypoint descriptor.
Chúng ta cần tìm những cặp keypoint descriptor có khoảng cách Euclid nhỏ nhất giữa hai bức ảnh FLANN hỗ trợ trong việc xác định những cặp keypoint descriptor tương đồng nhất Để đảm bảo chất lượng, chúng ta chỉ chọn những cặp tốt và loại bỏ những cặp xấu Việc này được thực hiện bằng cách giữ lại những cặp có khoảng cách Euclid nhỏ nhất từ các cặp mà FLANN cung cấp.
Dùng các điểm bất biến với độ sáng, xoay, thu phóng làm đặc trưng so sánh
Tốc độ trích xuất key point và chi phí đối sánh còn lớn
Trong phần phương pháp nhận dạng vật mốc, tôi đã áp dụng thuật toán SIFT để xác định các điểm đặc biệt (keypoint) của hình ảnh vật mốc mà xe lăn đã được lập trình trước Với mỗi vật mốc đã biết, chúng ta sẽ thu được một mảng các keypoint, được ký hiệu là A.
Khi xe lăn hoạt động, quá trình thu thập ảnh bắt đầu và mỗi bức ảnh được nhận sẽ được xử lý qua thuật toán SIFT, từ đó tạo ra một mảng gồm các điểm đặc trưng (keypoint) B.
Sau khi xác định mảng B (keypoint), chúng ta sẽ so sánh với mảng A Nếu một phần tử trong mảng A trùng với phần tử trong mảng B, chúng ta sẽ thu được tập hợp C, chứa các phần tử có keypoint giống nhau, từ đó giúp xác minh vật mốc một cách chính xác.
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 42
Biểu diễn dưới dạng toán học: A ∩ B = C (3)
3.3.2 Tính khoảng cách dựa vào ảnh độ sau nhận được từ camera
Với ảnh độ sâu nhận được từ camera ta có số chiều MxN:
+ M là số hàng trong ma trận ảnh độ sâu
+ N là số cột trong ma trận ảnh độ sâu
Các giá trị trong mảng depth MxN đại diện cho khoảng cách từ camera đến các điểm tương ứng trong ảnh màu, nằm trên trục Oz Dựa vào thông tin này, chúng ta có thể tính toán khả năng tránh vật cản của xe.
Ta tiến hành tìm Min mỗi cột trong mảng nhận được
Zi_min =∑ 𝑁−1 0 min(Z(i)) i: thứ tự các cột trong ma trận Z (4)
Mảng một chiều chứa các giá trị nhỏ nhất từ các cột trong mảng depth cho phép chúng ta xác định xem có vật cản phía trước camera hay không, cũng như khoảng cách từ camera đến vật cản đó.
Tiếp theo, nếu gặp vật cản thì tìm Z_min là giá trị nhỏ nhất trong mảng Zi_min
Z_min = min(∑ 𝑁−1 0 Zi_min(j)) j: thứ tự các phần tử trong Zi_min (5)
Bằng cách sử dụng giá trị Z_min, chúng ta thực hiện phân vùng cho mảng Zi_min và xác định hướng di chuyển an toàn cho xe lăn bằng cách tìm bề rộng lớn nhất trong mảng có giá trị vượt quá Z_min.
Hình 17: Giao giữa 2 tập hợp keypoint
THI CÔNG H Ệ TH Ố NG
GI Ớ I THI Ệ U
Ở phần này thực thi trên laptop quá trình lấy các hình mẫu có sẵn sau đó xử lý phân tích và nhận dạng sản phẩm.
THI CÔNG H Ệ TH Ố NG
4.2.1 Các linh kiện và model cần thiết cho mô hình
Vì mô hình có linh kiện và model do nhà sản xuất sẵn nên sẽkhông có sơ đồ mạch in, nên có sơ đồ kết nối của mô hình
Bảng 3: Danh sách các model và linh kiện liên quan.
STT Tên Giá trị Chú thích
1 Laptop core i5 Tốc độ 3.4GHz Có vỏ bảo vệ
D435 Độ phân giải và khung hình:
Có dây kết nối với cổng
5 Module Điều Khiển Động BTS7960
4.2.2 Kết nối, lắp ráp và kiểm tra mô hình
Mô hình này bao gồm một bộ điều khiển trung tâm, chính là bộ vi xử lý (CPU) của laptop, kết hợp với khối thu tín hiệu hình ảnh từ bên ngoài thông qua Camera 3D, được kết nối qua cổng USB.
CHƯƠNG 4: THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 44 laptop, sau đó kết quả hiển thị trên màn hình laptop, cùng với bộ phận đểngười giao tiếp và điều khiển
Kết nối Camera với Laptop
Camera được kết nối với cổng USB của laptop
Sau khi kết nối, kiểm tra xem cổng USB của laptop đã nhận tín hiệu từ camera hay chưa Tiếp theo, mở IDLE và chạy chương trình để kiểm tra đầu vào của camera, nhằm xác định xem có nhận được tín hiệu từ camera hay không.
THI CÔNG MÔ HÌNH
4.3.1 Kết nối bộ phận điều khiển động lực
Hình 18: Bộ phận điều khiển Hình 19: Bộ phận điều khiển hoàn chỉnh
Dựa vào sơ đồ nguyên lý của bộ điều khiển động cơ, nhóm đã lắp ráp các module thành hộp điều khiển động cơ Sau khi tính toán kích thước các module, nhóm chọn hộp nhựa đen PVC kích thước 160x90x57mm để chứa các module do tính sẵn có, giá thành rẻ và độ bền cao Các module được cố định bằng vít và kết nối với nhau qua dây cắm để truyền tín hiệu và cấp nguồn Hộp điều khiển bao gồm đầy đủ các module điều khiển động cơ, bluetooth, và vi điều khiển được lắp đặt chắc chắn Các jack cắm nguồn đầu vào và jack cắm động cơ được đưa ra ngoài để thuận tiện cho việc kết nối với các động cơ.
CHƯƠNG 4: THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 45
4.3.2 Kết nối bộ phận điều khiển động lực với nguồn
Khối nguồn và bộ điều khiển động lực được kết nối qua dây dẫn điện, được lắp đặt phía sau xe lăn để đảm bảo tính tiện lợi và thẩm mỹ Dây dẫn được bọc cẩn thận, nâng cao tính thực tế của mô hình.
Hình 20: Bộ phận điều khiển với nguồn
4.3.3 Kết nối bộ phận camera với laptop
Camera được lắp đặt phía trước xe lăn, lệch tâm khoảng 0.1 m, nhằm đảm bảo quá trình xử lý nhanh chóng và thuận lợi Với tầm quan sát rộng, camera giúp xe lăn hoạt động chính xác và tránh va chạm Vị trí đặt camera cũng tạo sự thoải mái cho người ngồi, không làm cản trở tầm nhìn Mô hình hiện tại chỉ là thử nghiệm, do đó việc đặt laptop trên mô hình là điều không thể tránh khỏi Để đảm bảo tín hiệu ổn định, khoảng cách cáp truyền tín hiệu được giữ ngắn nhất có thể.
CHƯƠNG 4: THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46
Hình 21: Bộ phận camera và laptop
Sau khi kết nối tất cả các bộ phận, chúng ta sẽ có một mô hình hoàn chỉnh Mô hình này có thể được chạy trong môi trường có đủ điều kiện ánh sáng để tiến hành đánh giá chất lượng.
Hình 22: mô hình hoàn chỉnh
CHƯƠNG 4: THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 47
L Ậ P TRÌNH H Ệ TH Ố NG
A Lưu đồ giải thuật chính
Hình 23: Lưu đồ giải thuật chính
Khối thu thập ảnh RGB và ảnh depth có nhiệm vụ lấy dữ liệu đầu vào bao gồm hai loại ảnh: ảnh RGB và ảnh depth Cả hai loại ảnh này đều có kích thước 480x640 và tần số khung hình 30 fps.
CHƯƠNG 4: THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 48
Ảnh RGB, viết tắt của cơ chế hệ màu cộng, là phương pháp hiển thị màu sắc phổ biến trên các thiết bị điện tử như TV, monitor máy tính và camera kỹ thuật số Hệ màu này sử dụng ba màu cơ bản: đỏ, xanh lá và xanh dương để tạo ra dải màu phong phú.
OpenCV xử lý ảnh và video ở định dạng 8 bit, số nguyên không dấu, định dạng
Hình ảnh màu có thể được hiểu qua ba ma trận: xanh dương, xanh lá và đỏ (BGR), với các giá trị nguyên từ 0 đến 255 Hình ảnh dưới đây minh họa cách biểu diễn hình ảnh màu thông qua ba ma trận này.
Ảnh độ sâu có một ma trận tương tự như ảnh RGB, nhưng mỗi pixel trong ma trận này thể hiện khoảng cách từ camera đến các đối tượng trong không gian phía trước Khác với ảnh RGB, ma trận của ảnh độ sâu sử dụng kiểu dữ liệu thực.
Tìm Z min theo cột ảnh depth là quá trình xác định khoảng cách phía trước của camera dựa trên từng cột dữ liệu trong ảnh depth Phương pháp này giúp nhận diện sự hiện diện của vật thể phía trước camera, từ đó cung cấp thông tin quan trọng cho các ứng dụng thị giác máy tính.
Có vật cản: Khối này được so sánh với dữ liệu từ kết quả khoảng cách, cho phép chúng ta kết luận rằng có vật cản trước khi tiến đến khối xử lý tiếp theo.
Khối chức năng tìm kiếm đặc điểm của ảnh RGB từ camera, giúp xác định các đặc trưng quan trọng của hình ảnh Những đặc trưng này sẽ được liệt kê theo danh sách, chuẩn bị cho các bước tiếp theo trong quá trình xử lý ảnh.
Tránh vật cản: Khối có chức năng tính toán gốc di chuyển cho xe lăn để có thể tránh được vật cản trước mặt xe lăn
CHƯƠNG 4: THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 49
Khối ảnh vật mốc giúp xe lăn nhận dạng các vật mốc bằng cách so sánh đặc trưng của ảnh RGB với ảnh mốc đã được thu thập trước Qua quá trình này, xe lăn có thể xác định liệu phía trước có vật mốc hay không Sau khi phân tích, khối này sẽ đưa ra hai hướng giải quyết cho tình huống đã xác định.
Xác định khoảng cách dừng camera: ở khối này giúp biết được khoảng cách từ xe lăn tới vật mốc
Truyền dữ liệu cho xe di chuyển là bước quan trọng sau khi xử lý các dữ liệu đầu vào Tại khối cuối cùng, xe sẽ được điều khiển di chuyển dựa trên thông tin đã được xử lý từ dữ liệu đầu vào.
B Lưu đồ giải thuật con
Tìm Z min theo cột ảnh depth
Hình 25: Truyền dữ liệu cho xe di chuyển
Tìm Zi min từng cột ảnh depth: tìm giá trị nhỏ nhất của từng cột trong ảnh depth
Tìm Z min trong tập nhận được: tìm giá trị nhỏ nhất của tập các Zi min nhận được
Trả về số thứ tự cột: trả về giá trị cột để truyền dữ liệu này cho xe lăn di chuyển
CHƯƠNG 4: THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 50
Xác định khoảng cách dừng camera
Hình 26: Xác định khoảng cách dừng camera
Xác định khoảng cách tới tâm vật mốc: tìm giá trị khoảng cách tâm của vật mốc tới camera
Nếu khoảng cách được xác định lớn hơn 1.5m, xe lăn sẽ di chuyển tới vật mốc Ngược lại, nếu khoảng cách nhỏ hơn hoặc bằng 1.5m, xe lăn sẽ dừng lại trước vật mốc.
Trả về số thứ tự cột ảnh RGB chứa tâm: trả về giá trị màxe lăn cần điều hướng
Truyền dữ liệu cho xe di chuyển
Hình 27: Truyền dữ liệu cho xe di chuyển
CHƯƠNG 4: THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 51
Hc06 có hoạt động: kiểm tra thiết bị phần cứng của xe lăn có sẵn sàng cho việc truyền dữ liệu
Gửi số thứ tự cột Z min: gửi dữ liệu cho xe điều hướng di chuyển tránh vật cản hoặc theo vật mốc
4.4.2 Lập trình ngôn ngữ Python với Sublime Text 3
Sublime Text 3 (ST3) is the latest version of the widely used text editor favored by web developers, coders, and programmers It is available for Mac, Windows, and Linux, and can be downloaded and used for free.
Tạo, Lưu, Sửa một file trong Sublime Text 3 Để tạo file mới thì trên thanh công cụ bạn chọn:
File > New File hoặc Phím tắt: Ctrl + N (Command + N trên Mac)
Cách lưu file trong Sublime Text thì trên thanh công cụ bạn chọn:
File > Save hoặc File > Save as hoặc phím tắt Ctrl + S ( Command + S )
Cách mở một file để chỉnh sửa trong Sublime Text
File > Open hoặc phím tắt Ctrl + O ( Command + O ) Chọn đến thư mục chứa file bạn cần chỉnh sửa
CHƯƠNG 4: THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 52
Hình 28: Tạo file mới Sublime Text 3
4.4.2 Lập trình Arduino với Arduino IDE
Cấu hình phiên làm việc cho Arduino IDE
Vào menu Tools -> Board -> chọn Arduino nano
Vào menu Tools -> Serial Port -> chọn cổng Arduino đang kết nối với máy tính Ở máy của tôi là COM3.
CHƯƠNG 4: THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 53
VI Ế T TÀI LI ỆU HƯỚ NG D Ẫ N S Ử D Ụ NG, THAO TÁC
4.5.1 Viết tài liệu hướng dẫn sử dụng
Bước 1: Lắp camera vào hệ thống và kiểm tra hệ thống đã nhận camera chưa
Sau khi cấp nguồn cho hệ thống, đợi hệ thống khởi động xong ta truy cập vào IDLE để thực thi chương trình test camera
Bước 2: Kiểm tra cài đặt python và cài đặt những thư viện liên quan cho python
Để kiểm tra xem Python đã được cài đặt thành công trên hệ thống hay chưa, bạn mở cửa sổ command line và gõ lệnh "python" Một trong những ưu điểm nổi bật của Python là khả năng tái sử dụng nhiều thư viện và gói (package) khác, giúp tiết kiệm thời gian và công sức lập trình.
Mỗi module và package trong lập trình đều được chuyên môn hóa để thực hiện các nhiệm vụ cụ thể Để cài đặt một package, bạn chỉ cần sử dụng lệnh pip install , giúp đơn giản hóa quá trình cài đặt mà không cần tải về phức tạp Chỉ với một dòng lệnh, bạn đã có thể cài đặt các package cần thiết cho dự án của mình.
Để cài đặt thư viện cho hệ thống một cách dễ dàng, bạn có thể sử dụng pip Chỉ cần mở command line và gõ các lệnh tương ứng để cài đặt các thư viện như OpenCV, Numpy và Scipy.
Kiểm tra xem tất cả thư viện ta cần cho chương trình đều đã sẵn sàng chưa:
Hình 30: Kiểm tra thư viện
Bước 3: Mở Sublime Text 3 và chạy chương trình nhận dạng sản phẩm và tính kích thước
CHƯƠNG 4: THI CÔNG HỆ THỐNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 54
Bước 4: Quan sát kết quảthu được khi xe lăn di chuyển khung hình camera ở những vị trí khác nhau
Khởi động hệ thống và chạy chương trình
Quá trình kết nối camera 3D với laptop bắt đầu bằng việc nhận diện thiết bị ngoại vi Sau khi hệ thống nhận diện thành công, người dùng mở Sublime Text 3 và truy cập vào file code.py để thực hiện chạy chương trình.
Quan sát kết quả và so với thực tế
Kết quảđược hiển thị ngay trên lap với thời gian ngắn và khảnăng hoạt động của xe lăn trong thực tế.
KẾ T QU Ả _NH ẬN XÉT_ĐÁNH GIÁ
CAMERA 3D
Trong quá trình thực hiện đề tài, nhóm đã sử dụng Camera 3D để thu thập ảnh đầu vào và ảnh độ sâu, đồng thời kết nối với laptop nhằm triển khai mô hình một cách hiệu quả.
Camera 3D với độ phân giải cao cung cấp chất lượng ảnh và video tốt, phù hợp cho xử lý ảnh mà không quá đắt Tuy nhiên, việc đo khoảng cách từ camera vẫn chưa hoàn toàn chính xác do ảnh hưởng từ các yếu tố bên ngoài như tốc độ xử lý của laptop và điều kiện ánh sáng.
XÁC ĐỊ NH V Ậ T C Ả N
Khi vật cản xuất hiện trong tầm nhìn của camera, thiết bị sẽ gửi tín hiệu cho xe lăn để di chuyển theo hướng tránh vật cản, dựa trên việc tính toán dữ liệu từ ảnh độ sâu Tuy nhiên, hiệu quả của quá trình này phụ thuộc nhiều vào điều kiện môi trường, vì cảm biến hồng ngoại của camera có thể bị ảnh hưởng bởi ánh sáng kém.
CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 56
Hình 32: Kết quả xác định vật cản của camera
Dưới đây là bảng thống kê thực tế về màu sắc của sản phẩm trong điều kiện ánh sáng đầy đủ, cho thấy sự khác biệt giữa màu đỏ và các màu khác như xanh và vàng.
Sau khi kiểm tra thực tế, khảnăng hoạt động của thiết bịnhư sau:
Thời gian đáp ứng rất nhanh trong điều kiện lý tưởng khi làm khảo sát
Camera nhận diện được gần như 100% các vật cản ởtrước.
Bảng 4: Thống kê kết quả xác định khoảng cách tối đa camera nhìn thấy vật cản
STT camera cách đất khoảng cách lớn nhất phát hiện
CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 57
NH Ậ N D Ạ NG V Ậ T M Ố C
Nhận dạng vật mốc là một quá trình thiết yếu trong hệ thống điều khiển xe lăn, giúp xe di chuyển đúng hướng theo yêu cầu Hình ảnh từ camera RGB được thu nhận và xử lý qua các thuật toán SIFT và FLANN trong thư viện OpenCV để trích xuất những điểm đặc trưng cho việc nhận dạng vật thể Sau khi có các đặc trưng, chúng sẽ được so sánh với mẫu đầu vào; nếu khớp, hệ thống sẽ tính toán góc lệch để xác định vị trí của xe trên bản đồ đã được mô tả trước đó.
Sau đây là những hình ảnh sau khi thí nghiệm :
Hình 33: Kết quả xác định vật mốc của camera trường hợp 1
Hình 34: Kết quả xác định vật mốc của camera trường hợp 2
CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 58
Hình 35: Kết quả xác định vật mốc của camera trường hợp 3
Từ những hình ảnh trên cho ta thấy được khảnăng nhận diện vật mốc của camera gần như chính xác so với thực tế.
K Ế T QU Ả TR Á NH V Ậ T C Ả N
Từ kết quả xác định vật cản ở phần 5.2 ta được kết quả của việc tránh vật cản trong nhiều trường hợp trong thực tế như sau:
Hình 36 cho thấy tâm của khoảng trống mà camera xác định nằm ở giữa, tạo thành một đường dọc để đo khoảng cách Hai bên rìa của ảnh có khoảng cách nhỏ hơn, dẫn đến nền màu trắng ở giữa thấp hơn so với phần nền xung quanh trong ảnh đo khoảng cách.
CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 59
Khi xe rẽ trái, camera xác định khoảng cách bên trái cao hơn bên phải, dẫn đến tâm xe bị lệch sang trái, giúp xe thực hiện thao tác rẽ một cách chính xác.
Khi rẽ phải, nếu có vật cản trước camera như bộ bàn ghế, khoảng cách mà camera xác định bên trái sẽ nhỏ hơn bên phải Điều này khiến cho tâm di chuyển lệch về bên phải, giúp xe lăn dễ dàng di chuyển sang hướng này.
Từ những hình ảnh trên thì ta có thể thấy được khảnăng chuyển hướng của vật gần như là chính xác với kết quả của thí nghiệm
CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 60
5.5 KẾT QUẢ XE LĂN DỪNG TRƯỚC VẬT MỐC
Sau khi di chuyển và tránh các vật cản, xe lăn sẽ khởi động quá trình phân tích và nhận dạng khi gặp vật mốc, giúp xác định khoảng cách từ xe đến tâm vật mốc Trong trường hợp chưa đạt khoảng cách dừng, xe lăn vẫn tiếp tục di chuyển về phía vật mốc Khi đạt đến khoảng cách dừng, xe lăn sẽ tự động dừng lại.
5.6 KẾT QUẢ ĐO KHOẢNG CÁCH CỦA XE LĂN
Với các hình bố trí bản đồ bố trí các vật trên ta có được bảng về các thông số đo đạc và tính toán như sau :
Bảng 5: Thống kê kết quả xác định khoảng cách vật mốc Đơn vị đo meter
Trườ ng h ợ p 1 Trườ ng h ợ p 2 Trườ ng h ợ p 3
Da Db Dc Da Db Dc Da Db Dc Đủ s á ng
Nhận dạng có có có có có có có có có camera 2.39 4.05 2.68 3.67 3.89 3.13 2.68 3.60 2.73
Dựa vào bảng số liệu, có thể nhận thấy rằng camera có khả năng nhận diện toàn bộ các vật mốc đầu vào Tuy nhiên, các giá trị khoảng cách được lấy từ camera so với thực tế đo được có sự chênh lệch nhất định.
CHƯƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Bộ môn Điện tử Công nghiệp - Y sinh 61 cho thấy rằng trong điều kiện thiếu sáng, camera có thể gặp phải sai số cao hơn so với khi ở điều kiện đủ sáng.
K Ế T QU Ả ĐO KHOẢ NG C Á CH C ỦA XE LĂN
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 62
K Ế T LU ẬN VÀ HƯỚ NG PHÁT TRI Ể N
K Ế T LU Ậ N
Hệ thống đáp ứng tương đối đầy đủ mục tiêu như:
Xác định vật cản trước camera trong phạm vi khoảng 1.5 m
Nhận diện được vật mốc trước camera với độ chính xác đáng tin cậy
Xe lăn di chuyển không va chạm các vật cóđộ cao lớn hơn 0.5 m
Hoạt động ổn định trong điều kiện đủánh sáng vàđịa hình ít gồ ghề
Hệ thống hiện tại đạt được nhiều kết quả tích cực, nhưng vẫn tồn tại một số hạn chế Cụ thể, khả năng nhận dạng của hệ thống bị ảnh hưởng bởi các yếu tố môi trường như ánh sáng và nhiễu Ngoài ra, hệ thống chỉ có thể nhận dạng các vật thể có nhiều đặc trưng và vật cản trong khoảng cách ngắn.
Chưa xây dựng được mô hình hoàn chỉnh, chỉ mang tính nghiên cứu
Dựa trên những hạn chế của đề tài, nhóm đã đưa ra các hướng phát triển nhằm nâng cao hiệu quả hoạt động và khả năng áp dụng vào thực tiễn trong tương lai.
+ Thay thế camera tốt hơn để cho chất lượng xử lý tốt hơn
Để nâng cao hiệu suất xử lý, việc sử dụng các thiết bị có cấu hình cao là rất cần thiết Bên cạnh đó, việc tìm kiếm và áp dụng các giải thuật mới sẽ giúp cải thiện tốc độ xử ảnh, đồng thời tăng độ chính xác trong quá trình xử lý.
[1] Việt Nam công bố kết quả Điều tra Quốc gia quy mô lớn đầu tiên về người khuyết tật
[2] Gyro-Accelerometer based Control of an Intelligent Wheelchair Received 19 December
[3] An Introduction to MEMS (Micro-electromechanical Systems) - Prime Faraday Technology Watch – 01/ 2002
[4] Ryan Goodrich – Accelerometer - What They Are and How They Work - LiveScience Contributor – 01/10/2013
[5] Nguyễn Tiến San, Nguyễn Thái Bảo Hùng, Báo cáo tìm hiểu cảm biến Kinect (RGB –D), Đồ án môn học, trường Đại học công nghệ, Tp.HCM, 2016
[6] Trí thức trẻ, Camera 3D hoạt động như thê nào, https://fptshop.com.vn 05/01/2016
[7] Nguyễn Văn Sơn, Hà Duy Khánh, Phân loại sản phẩm dùng Kit Raspberry, Đồ án tốt nghiệp, trường ĐHSPKT, Tp.HCM, 2018.
[8] Richard Blum, Christine Bresnahan, Sams teach yourself python in 24 Hours, Sams, 2014
[9] PGS.TS Nguyễn Quang Hoan, “Xử Lý Ảnh”, Học Viện Công Nghệ Bưu Chính Viễn Thông, 2006
(http://www.e-ptit.edu.vn/hoctap/hoclieu/XLA.pdf)
Specifications for DC motors can be found on the website [Alibaba.com](https://vietnamese.alibaba.com/) For inquiries, contact Ms Maggie Wang at TT Motor (Shenzhen) Industrial Co., Ltd., located at Floor 4-5, Building A14, Tianliao Industrial Zone, Taoyuan Street, Nanshan District, Shenzhen, Guangdong, China (Mainland).
Thông số kỹ thuật của nguồn Adapter 12V – 1A có thể được tìm thấy trên trang web https://iotmaker.vn Người đại diện pháp luật của công ty là bà Phạm Thị Thu Hiền, thuộc Công ty Cổ phần Công nghệ Nanochip, có trụ sở tại Tầng lửng, toà nhà An Phú Plaza, 117-119 Lý Chính Thắng, Phường 7, Quận 3, Tp Hồ Chí Minh, được thành lập vào ngày 10/07/2016.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 64
[1] TS Nguyễn Thanh Hải, “Giáo trình Xử lý ảnh”, NXB Đại Học Quốc Gia TPHCM, 09/2014
[2] Phạm Quang Huy, “Arduino dành cho người tự học” , NXB Thanh Niên , 2019
[3] Rafia Hassani, Mohamed Boumehraz, Maroua Hamzi, Zineb Habba – Gyro-Accelerometer based Control of an Intelligent Wheelchair – 06/2018
Thư viện chương trình import cv2 import pyrealsense2 as rs import numpy as np import time import analysis import controller import object_detection
The main program begins by importing essential libraries such as cv2, pyrealsense2, numpy, time, analysis, controller, and object_detection A RealSense pipeline is initialized, and a configuration is set up to enable depth and color streams at a resolution of 640x480 with a frame rate of 30 Additionally, images are loaded using cv2, specifically 'vat1.png' and 'result.png', both in grayscale format.
The function `draw_image(Zi_max)` generates a binary image based on the input array `Zi_max`, where pixel values are determined by a predefined limit, `Z_limit` The image is initialized as a zero matrix of size 480 by 620 For each column in the image, if the corresponding value in `Zi_max` exceeds `Z_limit`, it is capped at this limit; otherwise, it retains its original value The height of the drawn portion of the image is calculated as a fraction of `Z_limit`, and pixels are set to 1 in the designated rows to create the visual representation The function is executed within a continuous loop after starting the pipeline with a specific configuration.
The Industrial Electronics and Biomedical Department utilizes advanced technology to capture and process images By executing the command `start = time.time()`, the system begins timing the operation It then waits for frames to be captured using `frames = pipeline.wait_for_frames()`, obtaining both depth and color frames The depth data is retrieved with `depth = frames.get_depth_frame()`, while the color image is processed into a NumPy array with `color_image = np.asanyarray(frame.get_data())`.
The analysis begins with determining the minimum depth using `Zi_min = analysis.disparty(depth)`, followed by extracting minimum elements with `elements_min = analysis.elements_min(Zi_min)` If the first element is less than 1.2, the controller stops, printing "stop" If the last element is under 1.5, a warning is printed with its value The local position is processed and directed using `controller.local_driver(local)` In case of object detection, if no object is found, the local position is again processed If an object is detected and its distance exceeds 1.5, the local driver is activated, displaying the distance The image is updated with lines for visual guidance, and both the processed image and video feed are shown The time delay is printed, and the program waits for a key input to terminate or pause the operation.
# cv2.imwrite("result.png",color_image) break elif key == ord("p"): while True:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 67 key = cv2.waitKey(1) if key == ord("s"): break elif key == ord("1"): cv2.imwrite("vat1.png",color_image) pipeline.stop()
The provided code implements a function to analyze depth data using NumPy and collections It defines the dimensions of the analysis grid with 480 rows and 640 columns The `disparty` function calculates the minimum distance values from a depth data source, appending these values to an array after rounding them The `elements_min` function sorts these minimum values in descending order, while the `process` function processes these sorted values to identify local minima based on specific distance criteria This structured approach enables efficient depth analysis for further processing.
The Industrial Electronics and Biomedical Engineering department focuses on advanced computational techniques for data analysis The algorithm processes local minima by iterating through values, calculating sums and maintaining temporary variables to track the width and minimum values It effectively identifies and computes the average of local minima, ensuring efficient data handling and optimization This systematic approach enhances the accuracy of results in various applications within the field.
# print(local_tmp,local,i_tmp,width_min,sum_,local_min) if width_min >= width_request: break return local_min
Chương trình con object_detecter import cv2 import numpy as np
MIN_MATCH_COUNT = 10 font = cv2.FONT_HERSHEY_SIMPLEX fontScale = 1 color = (255, 0, 0)
The Industrial Electronics - Biomedical Department utilizes the SIFT (Scale-Invariant Feature Transform) algorithm for image analysis The function 'sift_detector' processes two images, 'img1' and 'img2', by detecting keypoints and computing their descriptors This method enhances the ability to identify and match features between the two images effectively.
To perform feature matching using the FLANN (Fast Library for Approximate Nearest Neighbors) algorithm, set the index parameters with the KDTree algorithm and specify the number of trees to use Configure the search parameters to limit the number of checks during the matching process Utilize the FlannBasedMatcher from OpenCV to find the k-nearest neighbors between two sets of descriptors Filter the matches based on the distance ratio, retaining only the good matches where the distance of the first match is less than 0.7 times the distance of the second match If the number of good matches exceeds a predefined minimum count, extract the corresponding keypoints from both sets of descriptors for further processing.
M, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC,5.0) matchesMask = mask.ravel().tolist() h,w = img1.shape pts = np.float32([ [0,0],[0,h-1],[w-1,h-1],[w-1,0] ]).reshape(-1,1,2) dst = cv2.perspectiveTransform(pts,M) tam1 = np.int32(dst[0]) tam2 = np.int32(dst[2]) x1, y1 = tam1[0] x2, y2 = tam2[0]