đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án. Chương 2: Cơ sở lý thuyết. Giới thiệu về phần Matlab, giới thiệu về Arduino, giới thiệu về xử lý ảnh Giới thiệu về kit Arduino, LCD và I2C. Giới thiệu về các phương pháp trong quá trình xử lý ảnh đầu vào.
Giới thiệu về thuật toán đánh nhãn trong việc đếm đối tượng. Chương 3: Thiết kế và tính toán. Phân tích, xây dựng sơ đồ khối, sơ đồ phần cứng, thiết kế chương trình cho hệ thống đếm đối tượng qua hình ảnh được viết trên phần mềm Matlab, sử dụng thư viện của Matlab cho kit Arduino. Chương 4: Thi công hệ thống.
Xây dựng chương trình hoàn chỉnh cho toàn hệ thống, các hàm, các lưu đồ, các chương trình được sử dụng. Lắp ráp và chạy chương trình. Viết tài liệu hướng dẫn sử dụng, quy trình thao tác. Chương 5: Kết quả, nhận xét và đánh giá.
Nêu các kết quả đạt được khi thực hiện chương trình, phân tích, nhận xét, đánh giá kết quả thực thi được. Chương 6: Kết luận và hướng phát triển. Tóm tắt những kết quả đạt được, hạn chế và nêu lên các hướng phát triển. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 3 do an CHƯƠNG 2.CƠ SỞ LÝ THUYẾT Chương 2.1 GIỚI THIỆU XỬ LÝ ẢNH[1] Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ.
Nó là một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng cho nó. Xử lý ảnh được đưa vào giảng dạy ở bậc đại học ở nước ta khoảng chục năm nay. Nó là môn học liên quan đến nhiều lĩnh vực và cần nhiều kiến thức cơ sở khác. Đầu tiên phải kể đến Xử lý tín hiệu số là một môn học hết sức cơ bản cho xử lý tín hiệu chung, các khái niệm về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn… Thứ hai, các công cụ toán như Đại số tuyến tính, Sác xuất, thống kê.
Một số kiến thứ cần thiết như Trí tuệ nhân tao, Mạng nơ ron nhân tạo cũng được đề cập trong quá trình phân tích và nhận dạng ảnh. Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượng ảnh và phân tích ảnh. Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báo được truyền qua cáp từ Luân đôn đến New York từ những năm 1920. Vấn đề nâng cao chất lượng ảnh có liên quan tới phân bố mức sáng và độ phân giải của ảnh.
Việc nâng cao chất lượng ảnh được phát triển vào khoảng những năm 1955. Điều này có thể giải thích được vì sau thế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho quá trình xử lý ảnh sô thuận lợi. Năm 1964, máy tính đã có khả năng xử lý và nâng cao chất lượng ảnh từ mặt trăng và vệ tinh Ranger 7 của Mỹ bao gồm: làm nổi đường biên, lưu ảnh. Từ năm 1964 đến nay, các phương tiện xử lý, nâng cao chất lượng, nhận dạng ảnh phát triển không ngừng.
Các phương pháp tri thức nhân tạo như mạng nơ ron nhân tạo, các thuật toán xử lý hiện đại và cải tiến, các công cụ nén ảnh ngày càng được áp dụng rộng rãi và thu nhiều kết quả khả quan. Để dễ tưởng tượng, xét các bước cần thiết trong xử lý ảnh. Đầu tiên, ảnh tự nhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như Camera, máy chụp ảnh). Trước đây, ảnh thu qua Camera là các ảnh tương tự (loại Camera ống kiểu CCIR).
Gần đây, với BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 4 do an CHƯƠNG 2.CƠ SỞ LÝ THUYẾT sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ Camera, sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo. Máy ảnh số hiện nay là một thí dụ gần gũi. Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thể quét từ ảnh chụp bằng máy quét ảnh.2 TỔNG QUAN VỀ MATLAB[4]. Matlab (Matrix Laboratory) là một môi trường tính toán số và lập trình, được thiết kế bởi công ty MathWorks, là ngôn ngữ lập trình thực hành bậc cao được sử dụng nhiều để giải các bài toán kỹ thuật.
Matlab tích hợp việc tính toán thể hiện kết quả cho phép lập trình, giao diện làm việc rất dễ dàng cho người sử dụng. Dữ liệu cùng với thư viện được lập trình sẵn cho phép người dùng có được những ứng dụng như: Tính toán các phép toán học thông thường, tính toán ma trận. Lập trình tạo ra những ứng dụng mới. Cho phép mô phỏng các mô hình thực tế.
Phân tích, khảo sát, hiển thị dữ liệu. Với phần mềm đồ họa cực mạnh. Matlab giúp đơn giản hóa việc giải quyết các bài toán tính toán kỹ thuật so với các ngôn ngữ lập trình truyền thống như C, C++, và Fortran. Matlab là một hệ thống tương giao chúng cho phép giải quyết các vấn đề liên quan đến lập trình bằng máy tính, đặc biệt sử dụng các phép tính về ma trận hay vector và có thể sử dụng ngôn ngữ C hoặc Fortran lập trình rồi thực hiện ứng dụng lập trình đó bằng các câu lệnh gọi từ Matlab.
Matlab được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh, truyền thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài chính, hay tính toán sinh học. Matlab cung cấp giải pháp chuyên dụng gọi là Toolbox. Toolbox là một tập hợp toàn diện các hàm của Matlab (M-file). Hệ thống Matlab gồm 5 phần chính: Ngôn ngữ Matlab: Cho phép lập trình từ các ứng dụng nhỏ đến phức tạp.
Đó là các ngôn ngữ cao về ma trận và mảng, các dòng lệnh, các hàm, cấu trúc dữ liệu vào. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 5 do an CHƯƠNG 2.CƠ SỞ LÝ THUYẾT Môi trường làm việc: Bao gồm các phương tiện cho việc quản lý các biến trong không gian làm việc Workspace cũng như xuất nhập dữ liệu. Nó cũng bao gồm các công cụ phát triển, quản lý, gỡ rối và định hình M-file. Xử lý đồ họa: Bao gồm các lệnh cao cấp cho trực quan hóa dữ liệu hai chiều và ba chiều, xử lý ảnh, ảnh động.
Cung cấp các giao diện tương tác giữa người sử dụng và máy tính. Thư viện toán học: Các hàm cơ bản như cộng, trừ, nhân, chia, sin, cos …và các hàm phức tạp như tính ma trận nghịch đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library. Giao diện người dùng (Application Program Interface): Cho phép viết chương trình tương tác với các ngôn ngữ khác C, Fortran. Simulink là một chương trình đi kèm với Matlab, là một hệ thống tương tác với việc mô phỏng các hệ thống động phi tuyến, mô phỏng mạch.3 GIỚI THIỆU LỊCH SỬ HÌNH THÀNH ARDUINO[3].
Arduino thực sự đã gây sóng gió trên thị trường người dung DIY ( là những người tự chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây, gần giống với những gì Apple đã làm được trên thị trường thiết bị di động. Số lượng người dung cực lớn và đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học làm cho ngay cả những người tạo ra chúng phải ngạc nhiên về mức độ phổ biến. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 6 do an CHƯƠNG 2.CƠ SỞ LÝ THUYẾT Hình 2.1: Những thành viên khởi xướng Arduino Arduino là gì mà có thể ngay cả nhũng sinh viên và nhà nghiên cứu tại các trường đại học danh tiếng như MIT, Stanford, Carnegie Mellon phải sử dụng, hoặc ngay cả google cũng muốn hỗ trợ hi cho ra đời bộ kít Arduino mega ADK dung để phát triển trên các ứng dụng tương tác với cảm biến với các thiết bị khác? Arduino thật ra là một bo mạch vi xử lý được dung để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình và điều hiển làm nên hiện tượng Arduino chính là mức giá thấy với tính chấ nguồn mở từ phần cứng tới phần mềm chỉ cới khoảng $30, người dung đã có thể sở hữu board Arduino có 20 ngõ I/O có thể tương tác và điều khiển chừng ấy thiết bị. Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vị vua vào thế kỷ thứ 9 là King Arduino, Arduino chính thức được đưa ra giới thiệu vào năm 2005 như là một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một trong những người phát triển Arduino, tại trường Interaction Design Instistute Ivrea (IDII).
Mặt dù hầu như không được tiếp thị gì cả, tin tức về arduino vẫn lan truyền với tốc độ chóng mặt nhờ những lời truyền miệng tốt đẹp của nhũng người dung đầu tiên. Hiện BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 7 do an CHƯƠNG 2.CƠ SỞ LÝ THUYẾT nay Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nói đã sản sinh ra Arduino.4 GIỚI THIỆU PHẦN CỨNG.1 Kit Arduino Uno[3]. Kit Arduino có nhiều phiên bản với tính năng và mục đích sử dụng khác nhau. Board Arduino Uno là một trong những phiên bản được sử dụng rộng rãi nhất bởi chi phí và tính linh động của nó.
Arduino Uno là một board mạch vi điều khiển dựa trên chip Atmega328 với 14 chân vào/ra bằng tín hiệu số được đánh số từ 0 đến 13, trong đó 6 chân có thể tạo xung PWM được đánh dấu “~” trước mã số của chân, 6 chân nhận tín hiệu analog được đánh dấu từ A0 đến A5, có thể sử dụng như là 6 chân I/O số. Có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 30 mA. Vi điều khiển Atmega328P họ 8 bit Điện áp hoạt động 5V Điện áp đầu vào 7-12V Điện áp đầu vào giới hạn 6-20V Số chân Digital I/O 14 (có 6 chân PWM) Số chân Analog 6 ( độ phân giải 10bit) DC current per I/O pin 20mA DC current for 3.3V pin 50mA Flash Memory 32KB (ATmega328P) SRAM 2KB (Atmega328P) EEPROM 1KB (Atmega328P) Clock Speed 16MHZ Length 68.4 mm Weight 25 g Bảng 2. Thông số kỹ thuật Arduino Uno.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 8 do an CHƯƠNG 2.