1. Trang chủ
  2. » Luận Văn - Báo Cáo

Chương trình nhận dạng vật và vẽ được đường đi của vật

22 1K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 835,67 KB

Nội dung

Chương trình nhận dạng vật và vẽ được đường đi của vật

CHƢƠNG 1.GIỚI THIỆU XỬ LÝ ẢNH VÀ THƢ VIỆN OPENCV I.Quá trình xử lý ảnh tổng quát Hình 1.1 Các bước xử lý ảnh Sơ đồ gồm thành phần sau 1.Phần thu nhận ảnh(Image Acquisition) Ảnh nhận qua camera màu đen trắng.Thường ảnh nhận qua camera dạng tương tự (loại camera ống chuẩn CCIR với tần số 1/25,mỗi ảnh 25 dòng) có loại số hóa(như loại CCD- Change Coupled Device) loại photodiot tạo cường độ sáng điểm ảnh Camera thường dùng loại quét dòng;ảnh tạo có chiều.Chất lượng ảnh thu phụ thuộc vào thiết bị thu,vào môi trường(ánh sáng,phong cảnh) 2.Tiền xử lý(Image Processing) Sau thu nhận ,ảnh bị nhiễu độ tương phản thấp nên cần đưa vào tiền xử lý để nâng cao chất lượng.Chức lọc nhiễu nâng cao độ tương phản để làm ảnh rõ nét 3.Phân đoạn (Segmentation) hay phân vùng ảnh Phân vùng ảnh tách ảnh đầu vào thành vùng khác để dễ biểu diễn phân tích tùy vào mục đích người xử lý ảnh.Ví dụ: để nhận dạng chữ,biển số xe,mặt người,vật thể….Đây phần phức tạp khó khăn xử lý ảnh dễ gây lỗi ,làm độ xác ảnh 4.Biểu diễn ảnh (Image Repressentation) Đầu ảnh sau phân đoạn chứa điểm ảnh vùng ảnh (ảnh phân đoạn) cộng với mã liên kết với vùng lân cận.Việc biến đổi số liệu thành dang thích hợp cần thiết cho xử lý máy tính 5.Nhận dạng nội suy ảnh(Image Recognition and Interpretation) Nhận dạng ảnh trình xác định ảnh Quá trình thường thu cách so sánh với mẫu chuẩn học (hoặc lưu) từ trước Nội suy phán đoán theo ý nghĩa sở nhận dạng Ví dụ: loạt chữ số nét gạch ngang phong bì thư nội suy thành mã điện thoại Có nhiều cách phân loai ảnh khác ảnh Theo lý thuyết nhận dạng, mô hình toán học ảnh phân theo hai loại nhận dạng ảnh bản: - Nhận dạng theo tham số - Nhận dạng theo cấu trúc Một số đối tượng nhận dạng phổ biến áp dụng khoa học vàcông nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn (Text),nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người… f) Cơ sở tri thức (Knowledge Base) Như nói trên, ảnh đối tượng phức tạp đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu Trong nhiều khâu xử lý phân tích ảnh việc đơn giản hóa phương pháp toán học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận xử lý ảnh theo cách người Trong bước xử lý đó, nhiều khâu xử lý theo phương pháp trí tuệ người Vì vậy, sở tri thức phát huy g) Mô tả (biểu diễn ảnh) Ảnh sau số hoá lưu vào nhớ, chuyển sang khâu để phân tích Nếu lưu trữ ảnh trực tiếp từ ảnh thô, đòi hỏi dung lượng nhớ cực lớn không hiệu theo quan điểm ứng dụng công nghệ Thông thường, ảnh thô đặc tả (biểu diễn) lại (hay đơn giản mã hoá) theo đặc điểm ảnh gọi đặc trưng ảnh (Image Features) như: biên ảnh (Boundary), vùng ảnh (Region) Một số phương pháp biểu diễn thường dùng: • Biểu diễn mã chạy (Run-Length Code) • Biểu diễn mã xích (Chaine -Code) • Biểu diễn mã tứ phân (Quad-Tree Code) II.Những vấn đề hệ thống xử lý ảnh 1.Điểm ảnh (pixel) Gốc ảnh (ảnh tự nhiên) ảnh liên tục không gian độ sáng Để xử lý máy tính (số), ảnh cần phải số hoá Số hoá ảnh biến đổi gần ảnh liên tục thành tập điểm phù hợp với ảnh thật vị trí (không gian) độ sáng (mức xám) Khoảng cách điểm ảnh thiết lập cho mắt người không phân biệt ranh giới chúng Mỗi điểm gọi điểm ảnh (PEL:Picture Element) hay gọi tắt Pixel Trong khuôn khổ ảnh hai chiều, pixel ứng với cặp tọa độ (x, y) Định nghĩa: Điểm ảnh (Pixel) phần tử ảnh số toạ độ (x, y) với độ xám màu định Kích thước khoảng cách điểm ảnh chọn thích hợp cho mắt người cảm nhận liên tục không gian mức xám (hoặc màu) ảnh số gần ảnh thật Mỗi phần tử ma trận gọi phần tử ảnh Độ phân giải ảnh Định nghĩa: Độ phân giải (Resolution) ảnh mật độ điểm ảnh ấn định ảnh số hiển thị Theo định nghĩa, khoảng cách điểm ảnh phải chọn cho mắt người thấy liên tục ảnh Việc lựa chọn khoảng cách thích hợp tạo nên mật độ phân bổ, độ phân giải phân bố theo trục x y không gian hai chiều Ví dụ: Độ phân giải ảnh hình CGA (Color Graphic Adaptor) lưới điểm theo chiều ngang hình: 320 điểm chiều dọc * 200 điểm ảnh (320*200) Rõ ràng, hình CGA 12” ta nhận thấy mịn hình CGA 17” độ phân giải 320*200 Lý do: mật độ (độ phân giải) diện tích hình rộng độ mịn (liên tục điểm) Mức xám ảnh Một điểm ảnh (pixel) có hai đặc trưng vị trí (x, y) điểm ảnh độ xám Dưới xem xét số khái niệm thuật ngữ thường dùng xử lý ảnh a) Định nghĩa: Mức xám điểm ảnh cường độ sáng gán giá trị số điểm b) Các thang giá trị mức xám thông thƣờng: 16, 32, 64, 128, 256 (Mức 256 mức phổ dụng Lý do: từ kỹ thuật máy tính dùng byte (8 bit) để biểu diễn mức xám: Mức xám dùng byte biểu diễn: 2^8=256 mức, tức từ đến 255) c) Ảnh đen trắng: ảnh có hai màu đen, trắng (không chứa màu khác) với mức xám điểm ảnh khác d) Ảnh nhị phân: ảnh có mức đen trắng phân biệt tức dùng bit mô tả 21 mức khác Nói cách khác: điểm ảnh ảnh nhị phân e) Ảnh màu: khuôn khổ lý thuyết ba màu (Red, Blue, Green) để tạo nên giới màu, người ta thường dùng byte để mô tả mức màu, giá trị màu: 28*3=224≈ 16,7 triệu màu Ảnh số tập hợp điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật III.Thƣ viện opencv Hình 1.2.Thƣ viện Opencv 1.Giới thiệu OpenCV thư viện thị giác máy tính mã nguồn mở Intel làm đơn giản hóa công việc lập trình thị giác máy tính ban OpenCV bao gồm nhiều khả tiên tiến – tìm, theo dõi, nhận dạng bề mặt, lọc Kalman , đa dạng hệ thống trí tuệ nhân tạo Ngoài cung cấp sở thuật toán thị giác máy tính thông qua giao diện lập trình ứng dụng mức thấp Nó đóng gói hoàn toàn miễn phí , người dùng sẵn sàng sử dụng cho mục đích khác họ Intel đưa phiên OpenCV vào năm 1999 Ban đầu , thư viện xử lý ảnh Intel Về sau , tính lệ thuộc loại bỏ bạn sử dụng OpenCV thư viện độc lập OpenCV thư viện đa tảng, chấp nhận Window Linux, gần Mac OSX Hình 1.3 Thị giác máy tính Những khả OpenCV OpenCV có nhiều chức , sau tóm tắt chức nó: - Ảnh vào video Các giao diện cho phép bạn đọc liệu ảnh từ tệp từ video sống Bạn tạo file ảnh video - Thị giác máy tính nói chung giải thuật xử lý ảnh (APIs mức thấp trung bình) Sử dụng giao diện này, bạn thí nghiệm với nhiều thuật toán thị giác nhân tạo chuẩn mà bạn không cần viết code chúng Chúng bao gồm dò tìm viền, đường thẳng góc, điều chỉnh elip, lấy mẫu biến đổi khác (Furiê rời rạc, cosin rời rạc biến đổi khoảng cách), v.v… - Những module thị giác máy mức cao OpenCV bao gồm vài khả mức cao Ngoài việc dò tìm, nhận dạng theo dõi khuôn mặt bao gồm luồng quang hoc (sử dụng di chuyển động camera để xác định cấu trúc 3D), định cỡ camera hình khối - Các giải thuật trí tuệ nhân tạo dạy học máy Các ứng dụng thị giác máy tính thường đòi hỏi phương pháp dạy học máy trí tuệ nhân tạo (AI) khác Một vài số chúng sẵn có gói dạy học máy OpenCV - Lấy mẫu ảnh biến đổi khung nhìn Nó thường có ích để xử lý tập điểm khổi OpenCV bao gồm giao diện cho phân miền chép ảnh, xử lý ngẫu nhiên, hồi phục kích thước yêu cầu, làm vênh, quay sử dụng hiệu ứng phối cảnh - Các phƣơng pháp tạo phân tích ảnh nhị phân Ảnh nhị phân thường xuyên sử dụng hệ thống quét để kiểm tra khuyết điểm hình dạng hay đểm phận vật - Thao tác với ảnh 3D Các chức có ích cho phép ánh xạ xác định vị trí – hay với thiết bị vật thể với nhiều dạng phép chiế từ camera đơn - Các thuật toán xử lý ảnh, thị giác máy hiển thị ảnh OpenCV bao gồm toán học cũ, thuật toán đại số tuyến tính, khoa học thống kê hình học tính toán - Đồ họa Các giao diện cho phép bạn viết chữ vẽ ảnh Thêm vào hàm khác khả sáng tạo, hàm có ích cho ghi nhãn đánh dấu Ví dụ, bạn viết chương trình dò tìm đối tượng , giúp ích cho ảnh nhãn kích thước vị trí chúng - Các phƣơng pháp GUI OpenCV bao gồm giao diện cửa sổ Trong hạn chế so sánh tới làm tảng, họ cung cấp API đơn, nhiều tảng để hiển thị ảnh, chấp nhận người sử dụng nhập vào qua chuột hay bàn phím thực điều khiển trượt - Cấu trúc liệu thuật toán Với giao diện bạn lưu trữ, tìm kiểm , bảo lưu thao tác cách hiệu nghiệm danh sách lớn, đống ,đồ thị - Ổn định liệu Các phương pháp cung cấp giao diện tiện lợi cho kiểu lưu trữ khác liệu đĩa khôi phục chúng sau Một số thƣ viện Opencv Chức OpenCV chứa module khác : - CXCORE chứa định nghĩa kiểu liệu sở Ví dụ, cấu trúc liệu cho ảnh, điểm hình chữ nhật định nghĩa cxtypes.h CXCORE chứa đại số tuyến tính phương pháp thống kê, chức trì điều khiển chuỗi Một số ít, chức đồ họa để vẽ ảnh đặt - CV chứa thuật toán xử lý ảnh định kích cỡ camera Các chức hình họa máy tính đặt - CVAUX mô tả tài liệu OpenCV chứa mã cũ thứ nghiệm Tuy nhiên, giao diện đơn cho nhận diện ảnh module Code sau chúng chuyên dụng cho nhận diện mặt chúng ứng dụng rộng rãi cho mục đích - HIGHGUI CVCAM đặt thư mục “otherlibs” HIGHGUI chứa giao diện vào bản, chứa khả cửa sổ mở rộng vào video CVCAM chứa giao diện cho video truy cập qua DirectX Windows 32 bits 4.Một số ứng dụng Opencv xử lý ảnh Các ứng dụng CV rộng lớn đa dạng Tuy nhiên số ứng dụng mức hạn chế hiệu tích hợp với công nghệ khác Dưới điểm qua vài ứng dụng bật, qua cảm nhận vai trò tiềm CV a)Trong lĩnh vực xử lý ảnh đồ họa Thu thập ảnh Hình 1.4 - Kính viễn vọng Hubble không gian (nguồn: NASA) Giai đoạn tạo dạng liệu sử dụng trực tiếp CV: ảnh định dạng số Quá trình thu thập ảnh/video chuyển đổi thành ảnh số phụ thuộc vào thiết bị phần cứng cảm ứng ảnh, hệ thống kính quang học, lọc bước sóng, hệ thống chiếu sáng hỗ trợ Hình 1.5 - Camera dạng viên thuốc nội soi thành ruột (nguồn: Hopkins Medical Magazine, Winter 2008) Với tiến ngành điện tử khí xác, thiết bị phần cứng CV hoàn thiện - khoảng cách, độ phóng đại ảnh, tốc độ chụp độ nhạy sáng phát triển vượt bậc - đủ khả thu thập ảnh số theo yêu cầu ứng dụng, từ kính viễn vọng chụp ảnh thiên hà xa xăm đến camera tí hon chụp ảnh bên thể người (Sự phát triển CV nằm khả xử lí phân tích ảnh số Hiệu chỉnh phục chế ảnh Hình 1.6- Tăng độ tương phản làm cho ảnh rõ nét (nguồn: Wikipedia) Quá trình hiệu chỉnh giúp ảnh số đẹp - làm rõ chi tiết cần thiết, bật thông tin quan trọng ảnh Bao gồm thao tác đơn giản tăng/giảm độ tương phản, lọc nét/mờ, hiệu chỉnh histogram đem đến hiệu thiết thực sử dụng phổ biến qua công cụ Adobe Photoshop Corel Photo-paint Hiệu chỉnh mức độ phức tạp áp dụng nhiều ứng dụng chẩn đoán y khoa Hình 1.7 - Phục chế ảnh bị mờ chuyển động (nguồn: Gonzalez, Digital Image Processing) Phục chế ảnh trình áp dụng mô hình toán, xác suất để tái lập chi tiết thiếu ghi nhận sai trình thu thập ảnh Ví dụ ảnh chụp từ vệ tinh vệ tinh trải qua rung động học qua khúc xạ khí bị mờ Từ rung động ghi nhận mô hình khí quyển, mô hình sai số sử dụng để loại bỏ vệt mờ ảnh Xử lí màu sắc độ phân giải ảnh Cũng trình giúp làm ảnh số đẹp người xem Trong trình hiệu chỉnh, phục hồi ảnh thao tác cường độ điểm ảnh, trình xử lí màu sắc thao tác mối tương quan kênh màu điểm ảnh Thao tác nén thu nhỏ ảnh giúp giải vấn đề lưu trữ sở liệu ảnh lớn tăng tốc độ xử lí ảnh thông tin giản lược đến mức vừa đủ cho ứng dụng Xử lí hình trạng phân tách chi tiết Hình 1.8 - Xử lí hình thể phân tách chi tiết ( nguồn: Stanford University) Xử lí hình trạng công đoạn nhóm phân tích liệu ảnh, với mục tiêu xây dựng từ tập hợp điểm ảnh mô hình ảnh diễn tả hình thể (hình chữ nhật, tròn, hình trụ, ) Mô hình ảnh cầu nối từ giác quan máy tính ảnh số đến cảm quan người ảnh khái niệm Phân tách chi tiết tiếp nối việc nhóm hình thể mô hình ảnh thành thực thể riêng biệt Đây công đoạn khó tự động hóa quan trọng CV phần lớn ứng dụng cấp cao dựa ảnh khái niệm Tái dựng ảnh ba chiều diễn giải ảnh Hình 1.9 - Xây dựng mô hình 3D từ tập hợp ảnh (nguồn: Stanford University) Phân tách chi tiết gặp nhiều khó khăn thực ảnh dựa vào phân bố điểm ảnh hai chiều Công đoạn xây dựng ảnh ba chiều thực tập hợp ảnh chụp từ nhiều vị trí khác nhằm khai thác mối liên hệ không gian ảnh để xây dựng điểm ảnh ba chiều Từ diễn giải ảnh thực thể với hình dạng, kích thước thực Diễn giải ảnh trình xác định thực thể diện ảnh Diễn giải ảnh từ mức độ trực quan (hình dạng, kích thước, màu sắc, ) đến trừu tượng (hành động, sắc thái, cảm xúc, ) Diễn giải ảnh mức độ cao liên hệ trực tiếp đến trí tuệ nhân tạo, giữ vai trò quan trọng ứng dụng robot gia đình giải trí Hình 1.10 - Nhận dạng thực thể thuật toán SIFT (nguồn: David G Low, University of British Columbia) Nhận dạng giám sát thực thể Quá trình xác định thực thể có ảnh hay không chuyển động tập hợp ảnh.Quá trình nhận dạng giám sát thực thể dựa sở liệu đầy đủ thực thể khả tự học để tiến hóa thuật toán Y khoa (chẩn đoán, giải phẫu) Hình 1.11 - Ảnh 3D từ hệ thống Brilliance iCT Scanner (nguồn: Philips) Các ứng dụng chẩn đoán y khoa dựa vào thiết bị phần cứng đa dạng máy chụp cắt lớp (CT - computed tomography), máy chụp cộng hưởng từ (MRI - magnetic resonance imaging), máy siêu âm, chụp X-quang Ảnh chụp từ thiết bị điều chỉnh để giúp bác sĩ xem xét dễ dàng hơn, tổng hợp để giúp bác sĩ nhìn nhận đầy đủ Ngoài ra, từ tập hợp ảnh (chụp cắt lớp, chụp camera tí hon) mô hình 3D xây dựng sử dụng hiệu chẩn đoán điều trị Điển hệ thống chụp cắt lớp tối tân Brilliance iCT Scanner công ty thiết bị y khoa Philips phát triển năm 2007 (Hình ) có khả tạo mô hình ảnh ba chiều toàn cấu trúc thể bệnh nhân - xương khớp, quan nội tạng đến mạch máu An ninh (camera thông minh, nhận dạng) Hình 1.12– Theo dõi khách hành (nguồn: IEEE Computer Vision and Pattern Recognition, 2007) CV tích hợp vào hệ thống camera theo dõi truyền thống, đảm nhận vai trò theo dõi cảnh báo, giúp giám sát viên trực tiếp quan sát 24/24: phát chuyển động cảnh báo xâm phạm, phát tình bất thường dựa nhận dạng cử động ẩu đả, cướp ngân hàng, nguy chết đuối Một ứng dụng khác CV lĩnh vực an ninh nhận dạng khuôn mặt phổ biến số dòng máy tính xách tay Giao thông (theo dõi lƣu thông, điều khiển xe) Hình 1.13 - Hệ thống camera điều khiển xe tự hành SCABOR (nguồn: Technological University of Cluj Napoca) Ứng dụng phổ biến theo dõi lưu thông: cảnh báo sớm tình trạng ùn tắc, ghi nhận trường hợp phóng nhanh lạng lách, chụp truy suất số xe vi phạm để xử lí Một ứng dụng khác nghiên cứu phát triển điều khiển xe tự hành Hệ thống camera ghi nhận hình ảnh xung quanh xe di chuyển, cảm quan máy tính, định vị đường, phát vật cản xe khác, nhận biết bảng dẫn, để điều khiển xe Robot (gia đình, không gian) Hình 1.14 – Ứng dụng cảm quan máy tính robot thám hiểm Hỏa (nguồn NASA) Trong lĩnh vực không gian, CV có vai trò quan trọng việc vận hành robot thám hiểm Trước hết xây dựng mô hình 3D bề mặt hành tinh để hoạch định đường an toàn Trong trình di chuyển, robot ước lượng chuyển động dựa phân tích chuyển động cảnh quan Khi tiếp cận mục tiêu cần khảo sát, robot điều khiển cánh tay học qua quan sát từ camera thực thao tác đào bới, lấy mẫu đất đá, chụp ảnh chi tiết, CV phát triển cho robot gia đình, giúp robot xây dựng mô hình định vị (SLAM – Simultaneous Localization and Mapping), giao tiếp với người qua nhận dạng cử động Tự động hóa sản xuất (đo lƣờng, kiểm định chất lƣợng) Hình 1.15 - Camera kiểm định chất lượng sản phẩm (nguồn: machinevision.co.uk) Trong dây chuyền sản xuất, công nghệ cảm quan máy tính ứng dụng thay phương pháp thủ công học nhằm tăng hiệu suất tránh va chạm hư hại sản phẩm Hình 1.16 - Camera kiểm tra số hiệu in sản phẩm (nguồn: Omron Electronics) Phổ biến đo lường kiểm định chất lượng sản phẩm: màu sắc độ phủ sơn vỏ xe hơi, độ cân đối hình dáng bánh răng, chất lượng in nhãn mác …… CHƢƠNG II: ỨNG DỤNG OPENCV ĐỂ VẼ ĐƢỜNG ĐI CỦA VẬT THỂ Khái niệm HSV HSV đại diện tọa độ trụ phổ biến điểm mô hình màu RGB HSV đại diện xếp lại hình học màu RGB, nỗ lực để trực quan mặt nhận thức có liên quan so với đại diện Descartes (khối lập phương) Phát triển năm 1970 cho ứng dụng đồ họa máy tính, HSL HSV sử dụng hôm chọn màu, phần mềm chỉnh sửa hình ảnh, phổ biến phân tích hình ảnh tầm nhìn máy tính HSV viết tắt vùng màu (Hue), độ bão hòa (Saturation), giá trị (Value), thường gọi HSB (B cho độ sáng) Vùng màu (Hue): dùng để phân biệt màu xanh, đỏ, vàng… Độ bảo hòa (Saturation): mức độ cảu màu hay khoảng cách màu tới điểm có cường độ cân ( màu xám) Giá trị (Value): cường độ ánh sáng mà tự đối tượng phát phản xạ từ nguồn sáng khác Trong hình trụ HSV, góc xung quanh trục thẳng đứng trung ương tương ứng "vùng màu ", khoảng cách từ trục tương ứng với "bão hòa", khoảng cách dọc theo trục tương ứng với "giá trị" "độ sáng" Bởi HSV biến đổi đơn giản thiết bị phụ thuộc vào mô hình RGB, màu sắc tự nhiên mà họ xác định phụ thuộc vào màu sắc màu :màu đỏ, xanh cây, màu xanh thiết bị không gian RGB cụ thể, chỉnh sửa gamma sử dụng để đại diện cho số tiền người bầu cử sơ Do đó, thiết bị RGB có HSV không gian để với nó, số HSV giá trị mô tả màu sắc khác cho không gian RGB 2 Sơ đồ giải thuật : Nhận ảnh từ Camera Chuyển ảnh RGB sang ảnh HSV Chuyển ảnh HSV sang ảnh nhị phân Sai Vật thể màu trắng xuất ảnh nhị phân Đúng Vẽ đường đường bao vật thể Xuất hình hình ảnh nhị phân hình ảnh camera thu có thêm đường bao, đường vật 3 Các hàm sử dụng giải thuật: - Hàm chuyển từ ảnh màu RGB sang ảnh màu HSV : void cvCvtColor( const CvArr* src, CvArr* dst, int code ); - Hàm chuyển sang ảnh nhị phân : void cvInRangeS( const CvArr* src, CvScalar lower, CvScalar upper, CvArr* dst ); Mỗi pixel src so sánh với giá trị (CVScalar()) theo upper lower Nếu giá trị src lớn hay giá tri cvScalar lower nhỏ giá trị cvScalar upper, sau giá trị tương ứng dst đặt thành 0xFF, ngược lại đặt thành 0x00 - Hàm bắt chuyển động : void cvMoments( const CvArr* image, CvMoments* moments, int isBinary = ); Khi hàm gọi, SpatialMoment , CentralMoment , NormalizedCentralMoment, HuMoments tính SpatialMoment: m pq  N  I ( x, y ) x p yq i 1 Ở p x-order q the y-order, order có nghĩa lũy thừa mà với thành phần tương ứng lấy theo tổng vừa hiển thị Tổng tất pixel biên vật (ghi n phương trình) Central moment giống Moments vừa mô tả ngoại trừ giá trị x y dùng theo công thức thay giá trị hiệu dụng: N  p ,q   I ( x, y )( x  xavg ) p ( y  yavg ) q i 0 xavg  m10 / m00 yavg  m01 / m00 Normalized moments giống central moments ngoại trừ chúng tất chia lũy thừa thích hợp m00:  p ,q   p ,q ( p  q ) / 21 m00 Trong Code dùng hai giá trị SpatialMoment CentralMoment SpatialMoment để tính khoảng không gian có chuyển động CentralMoment tính trung tâm không gian Lấy giá trị SpatialMoment chia cho giá trị CentralMoment, có tọa độ trung tâm chuyển động - Hàm vẽ đường di chuyễn: void cvLine( CvArr* array, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness = 1, int connectivity = ); hàm nối tọa độ trung tâm chuyển động - Hàm vẽ đường bao vật : void cvCircle ( CvArr* array, CvPoint center, int radius, CvScalar color, int thickness = 1, int connectivity = 8); Các giá trị tâm bán kính hàm cvCircle lấy từ CvSeq : CvSeq* cvHoughCircles( CvArr* image, void* circle_storage, int method, double dp, double min_dist, double param1 = 100, double param2 = 300, int min_radius = 0, int max_radius = 0); Code thực thi : #include #include #include #include "stdafx.h" "cv.h" "cvaux.h" "highgui.h" IplImage* GetThresholdedImage(IplImage* img) { // Convert the image into an HSV image IplImage* imgHSV = cvCreateImage(cvGetSize(img), 8, 3); cvCvtColor(img, imgHSV, CV_BGR2HSV); IplImage* imgThreshed = cvCreateImage(cvGetSize(img), 8, 1); // Convert the HSV image into Binary image cvInRangeS(imgHSV, cvScalar(0,177,198), cvScalar(45,256,256), imgThreshed); cvReleaseImage(&imgHSV); return imgThreshed; } int main() { CvMemStorage* storage = cvCreateMemStorage(0); // Initialize capturing live feed from the camera CvCapture* capture = 0; capture = cvCaptureFromCAM(0); // Couldn't get a device? Throw an error and quit if(!capture) { printf("Could not initialize capturing \n"); return -1; } // The two windows we'll be using cvNamedWindow("video"); cvNamedWindow("thresh"); // This image holds the "scribble" data // the tracked positions of the ball IplImage* imgScribble = NULL; // An infinite loop while(true) { // Will hold a frame captured from the camera IplImage* frame = 0; frame = cvQueryFrame(capture); // If we couldn't grab a frame quit if(!frame) break; // If this is the first frame, we need to initialize it if(imgScribble == NULL) { imgScribble = cvCreateImage(cvGetSize(frame), 8, 3); } // Holds the yellow thresholded image (yellow = white, rest = black) IplImage* imgYellowThresh = GetThresholdedImage(frame); // Calculate the moments to estimate the position of the ball CvMoments *moments=(CvMoments*)malloc(sizeof(CvMoments)); cvMoments(imgYellowThresh, moments, 1); // The double double double actual moment values moment10 = cvGetSpatialMoment(moments, 1, 0); moment01 = cvGetSpatialMoment(moments, 0, 1); area = cvGetCentralMoment(moments, 0, 0); // Holding the last and current ball positions static int posX = 0; static int posY = 0; int lastX = posX; int lastY = posY; posX = moment10/area; posY = moment01/area; if(posX>0 && posY>0) { // Print it out for debugging purposes printf("position (%d,%d)\n", posX, posY); // We want to draw a line only if its a valid position } if(lastX>0 && lastY>0 && posX>0 && posY>0) { // Draw a yellow line from the previous point to the current point cvLine(imgScribble, cvPoint(posX, posY), cvPoint(lastX, lastY), cvScalar(0,255,255), 5); } IplImage* Thresh = GetThresholdedImage(frame); // Add the scribbling image and the frame and we get a combination of the two cvSmooth(Thresh, Thresh, CV_GAUSSIAN, 9, 9); // Draw a circle around object CvSeq* result= cvHoughCircles(Thresh,storage,CV_HOUGH_GRADIENT,2,frame->width/10); for (int i=0;i< result->total;i++) { float* p= (float*) cvGetSeqElem(result,i); CvPoint pt= cvPoint(cvRound( p[0]),cvRound( p[1])); cvCircle(frame,pt,cvRound( p[2]),CV_RGB(0xff,0xff,0x00),8); } cvAdd(frame, imgScribble, frame); cvShowImage("thresh", imgYellowThresh); cvShowImage("video", frame); // Wait for a keypress int c = cvWaitKey(10); if(c!=-1) { // If pressed, break out of the loop break; } // Release the thresholded image we need no memory leaks please cvReleaseImage(&imgYellowThresh); //delete moments; } // We're done using the camera Other applications can now use it cvReleaseCapture(&capture); return 0; } Kết thực : Nhận xét: - Chương trình nhận dạng vật vẽ đường vật Hạn chế hƣớng phát triển: - Hạn chế : + khả nhận dạng vật bị nhễu nhiều điều kiện môi trường ánh sáng vật có màu tương tự màu vật thề + nhận dạng đươc vật thể vẽ đường màu định - Hướng phát triển: + ứng dụng làm chuột 3D [...]... cvReleaseCapture(&capture); return 0; } 5 Kết quả thực hiện : Nhận xét: - Chương trình đã nhận dạng được vật và vẽ được đường đi của vật 6 Hạn chế và hƣớng phát triển: - Hạn chế : + khả năng nhận dạng vật còn bị nhễu nhiều do các đi u kiện môi trường như ánh sáng các vật có màu tương tự màu của vật thề + chỉ nhận dạng đươc vật thể và vẽ đường đi ở một màu nhất định - Hướng phát triển: + ứng dụng làm chuột... không gian để đi cùng với nó, và số HSV giá trị mô tả một màu sắc khác nhau cho mỗi không gian cơ bản RGB 2 Sơ đồ giải thuật : Nhận ảnh từ Camera Chuyển ảnh RGB sang ảnh HSV Chuyển ảnh HSV sang ảnh nhị phân Sai Vật thể màu trắng xuất hiện trong ảnh nhị phân Đúng Vẽ đường đi và đường bao vật thể Xuất ra màn hình hình ảnh nhị phân và hình ảnh camera thu được có thêm đường bao, đường đi của vật 3 Các hàm... trục tương ứng với "bão hòa", và khoảng cách dọc theo trục tương ứng với "giá trị" hoặc "độ sáng" Bởi vì HSV là biến đổi đơn giản của thiết bị phụ thuộc vào mô hình RGB, màu sắc tự nhiên mà họ xác định phụ thuộc vào màu sắc của các màu cơ bản :màu đỏ, xanh lá cây, và màu xanh của thiết bị hoặc của không gian RGB cụ thể, và chỉnh sửa gamma được sử dụng để đại diện cho số tiền của những người bầu cử sơ bộ... HuMoments đều được tính SpatialMoment: m pq  N  I ( x, y ) x p yq i 1 Ở đây p là x-order và q là the y-order, trong đó order có nghĩa lũy thừa mà với thành phần tương ứng được lấy theo tổng vừa được hiển thị Tổng trên tất cả các pixel của biên vật (ghi chú bởi n trong phương trình) Central moment về cơ bản là giống như Moments vừa mô tả ngoại trừ rằng các giá trị của x và y dùng theo các công thức được. .. có được tọa độ trung tâm của chuyển động - Hàm vẽ đường di chuyễn: void cvLine( CvArr* array, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness = 1, int connectivity = 8 ); hàm này sẽ nối lần lượt các tọa độ của trung tâm chuyển động - Hàm vẽ đường bao của vật : void cvCircle ( CvArr* array, CvPoint center, int radius, CvScalar color, int thickness = 1, int connectivity = 8); Các giá trị tâm và. .. Recognition, 2007) CV có thể được tích hợp vào hệ thống camera theo dõi truyền thống, đảm nhận vai trò theo dõi và cảnh báo, giúp giám sát viên không phải trực tiếp quan sát 24/24: phát hiện chuyển động và cảnh báo xâm phạm, phát hiện các tình huống bất thường dựa trên nhận dạng cử động như ẩu đả, cướp ngân hàng, nguy cơ chết đuối Một ứng dụng khác của CV trong lĩnh vực an ninh là nhận dạng khuôn mặt đã phổ... phổ biến nhất của các đi m trong một mô hình màu RGB HSV đại diện sắp xếp lại hình học của màu RGB, là một nỗ lực để được trực quan hơn và về mặt nhận thức có liên quan hơn so với các đại diện Descartes (khối lập phương) Phát triển trong những năm 1970 cho các ứng dụng đồ họa máy tính, HSL và HSV được sử dụng ngày cho đến ngày hôm nay trong bộ chọn màu, trong phần mềm chỉnh sửa hình ảnh, và ít phổ biến... vị làn đường, phát hiện các vật cản và xe khác, nhận biết các bảng chỉ dẫn, để đi u khiển xe Robot (gia đình, không gian) Hình 1.14 – Ứng dụng cảm quan máy tính trên robot thám hiểm sao Hỏa (nguồn NASA) Trong lĩnh vực không gian, CV có vai trò quan trọng trong việc vận hành các robot thám hiểm Trước hết là xây dựng mô hình 3D của bề mặt hành tinh để hoạch định đường đi an toàn nhất Trong quá trình. .. tính được ứng dụng thay thế phương pháp thủ công hoặc cơ học nhằm tăng hiệu suất và tránh va chạm hư hại sản phẩm Hình 1.16 - Camera kiểm tra số hiệu in trên sản phẩm (nguồn: Omron Electronics) Phổ biến nhất là đo lường và kiểm định chất lượng sản phẩm: màu sắc và độ phủ đều khi sơn vỏ xe hơi, độ cân đối và hình dáng bánh răng, chất lượng in nhãn mác …… CHƢƠNG II: ỨNG DỤNG OPENCV ĐỂ VẼ ĐƢỜNG ĐI CỦA VẬT... hình ảnh, và ít phổ biến hơn trong phân tích hình ảnh và tầm nhìn máy tính HSV là viết tắt của vùng màu (Hue), độ bão hòa (Saturation), và giá trị (Value), và cũng thường được gọi là HSB (B cho độ sáng) Vùng màu (Hue): dùng để phân biệt các màu như xanh, đỏ, vàng… Độ bảo hòa (Saturation): chỉ ra mức độ thuần cảu một màu hay khoảng cách của màu tới đi m có cường độ cân bằng ( màu xám) Giá trị (Value): ... : Nhận xét: - Chương trình nhận dạng vật vẽ đường vật Hạn chế hƣớng phát triển: - Hạn chế : + khả nhận dạng vật bị nhễu nhiều đi u kiện môi trường ánh sáng vật có màu tương tự màu vật thề + nhận. .. đối tượng nhận dạng phổ biến áp dụng khoa học vàcông nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký đi n tử), nhận dạng văn (Text) ,nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người…... suy thành mã đi n thoại Có nhiều cách phân loai ảnh khác ảnh Theo lý thuyết nhận dạng, mô hình toán học ảnh phân theo hai loại nhận dạng ảnh bản: - Nhận dạng theo tham số - Nhận dạng theo cấu

Ngày đăng: 09/11/2015, 14:45

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w