OpenCV - Tổng quan
OpenCV là một thư viện đa nền tảng sử dụng mà chúng tôi có thể phát triển theo thời gian thực computer vision applications. Nó chủ yếu tập trung vào xử lý hình ảnh, quay video và phân tích bao gồm các tính năng như nhận diện khuôn mặt và phát hiện đối tượng.
Hãy bắt đầu chương bằng cách định nghĩa thuật ngữ "Thị giác máy tính".
Tầm nhìn máy tính
Computer Vision có thể được định nghĩa là một môn học giải thích cách tái tạo, ngắt và hiểu một cảnh 3D từ hình ảnh 2D của nó, xét về các thuộc tính của cấu trúc có trong cảnh đó. Nó đề cập đến việc mô hình hóa và tái tạo tầm nhìn của con người bằng phần mềm và phần cứng máy tính.
Thị giác Máy tính trùng lặp đáng kể với các trường sau:
Image Processing - Nó tập trung vào thao tác hình ảnh.
Pattern Recognition - Nó giải thích các kỹ thuật khác nhau để phân loại các mẫu.
Photogrammetry - Có liên quan đến việc thu được các phép đo chính xác từ hình ảnh.
Xử lý hình ảnh Computer Vision Vs
Image processinggiải quyết việc chuyển đổi hình ảnh sang hình ảnh. Đầu vào và đầu ra của quá trình xử lý hình ảnh đều là hình ảnh.
Computer visionlà việc xây dựng các mô tả rõ ràng, có ý nghĩa về các đối tượng vật chất từ hình ảnh của chúng. Đầu ra của thị giác máy tính là mô tả hoặc diễn giải các cấu trúc trong cảnh 3D.
Các ứng dụng của Thị giác máy tính
Ở đây chúng tôi đã liệt kê một số miền chính mà Computer Vision được sử dụng nhiều.
Ứng dụng người máy
Bản địa hóa - Tự động xác định vị trí rô bốt
Navigation
Tránh chướng ngại vật
Lắp ráp (chốt trong lỗ, hàn, sơn)
Thao tác (ví dụ: người điều khiển robot PUMA)
Tương tác với người máy (HRI) - Robot thông minh để tương tác và phục vụ con người
Đơn thuốc
- Phân loại và phát hiện (ví dụ như phân loại tổn thương hoặc tế bào và phát hiện khối u)
- Phân đoạn 2D / 3D
- Tái tạo nội tạng người 3D (MRI hoặc siêu âm)
- Phẫu thuật robot có hướng dẫn thị giác
Ứng dụng tự động hóa công nghiệp
- Kiểm tra công nghiệp (phát hiện khuyết tật)
- Assembly
- Đọc mã vạch và nhãn gói
- Phân loại đối tượng
- Hiểu tài liệu (ví dụ OCR)
Ứng dụng bảo mật
Sinh trắc học (mống mắt, vân tay, nhận dạng khuôn mặt)
Giám sát - Phát hiện một số hoạt động hoặc hành vi đáng ngờ
Ứng dụng Vận chuyển
- Xe tự hành
- An toàn, ví dụ, giám sát cảnh giác của người lái xe
Các tính năng của Thư viện OpenCV
Sử dụng thư viện OpenCV, bạn có thể -
Đọc và ghi hình ảnh
Chụp và lưu video
Xử lý hình ảnh (lọc, biến đổi)
Thực hiện phát hiện tính năng
Phát hiện các đối tượng cụ thể như khuôn mặt, mắt, ô tô, trong video hoặc hình ảnh.
Phân tích video, tức là ước tính chuyển động trong đó, trừ hậu cảnh và theo dõi các đối tượng trong đó.
OpenCV ban đầu được phát triển bằng C ++. Ngoài ra, các liên kết Python và Java đã được cung cấp. OpenCV chạy trên nhiều Hệ điều hành khác nhau như windows, Linux, OSx, FreeBSD, Net BSD, Open BSD, v.v.
Hướng dẫn này giải thích các khái niệm về OpenCV với các ví dụ sử dụng liên kết Java.
Mô-đun thư viện OpenCV
Sau đây là các mô-đun thư viện chính của thư viện OpenCV.
Chức năng cốt lõi
Mô-đun này bao gồm các cấu trúc dữ liệu cơ bản như Scalar, Point, Range, v.v., được sử dụng để xây dựng các ứng dụng OpenCV. Ngoài những thứ này, nó cũng bao gồm mảng đa chiềuMat, được sử dụng để lưu trữ hình ảnh. Trong thư viện Java của OpenCV, mô-đun này được bao gồm dưới dạng một gói với tênorg.opencv.core.
Đang xử lý hình ảnh
Mô-đun này bao gồm các hoạt động xử lý hình ảnh khác nhau như lọc hình ảnh, biến đổi hình ảnh hình học, chuyển đổi không gian màu, biểu đồ, v.v. Trong thư viện Java của OpenCV, mô-đun này được bao gồm dưới dạng một gói với tên org.opencv.imgproc.
Video
Mô-đun này bao gồm các khái niệm phân tích video như ước tính chuyển động, trừ nền và theo dõi đối tượng. Trong thư viện Java của OpenCV, mô-đun này được bao gồm dưới dạng một gói với tênorg.opencv.video.
I / O video
Mô-đun này giải thích codec quay video và video bằng thư viện OpenCV. Trong thư viện Java của OpenCV, mô-đun này được bao gồm dưới dạng một gói với tênorg.opencv.videoio.
hiệu chỉnh3d
Mô-đun này bao gồm các thuật toán liên quan đến thuật toán hình học nhiều chế độ xem cơ bản, hiệu chỉnh máy ảnh đơn và âm thanh nổi, ước tính tư thế đối tượng, tương ứng âm thanh nổi và các yếu tố của tái tạo 3D. Trong thư viện Java của OpenCV, mô-đun này được bao gồm dưới dạng một gói với tênorg.opencv.calib3d.
features2d
Mô-đun này bao gồm các khái niệm về phát hiện và mô tả tính năng. Trong thư viện Java của OpenCV, mô-đun này được bao gồm dưới dạng một gói với tênorg.opencv.features2d.
Objectdetect
Mô-đun này bao gồm việc phát hiện các đối tượng và cá thể của các lớp được xác định trước như khuôn mặt, mắt, cốc, người, ô tô, v.v. Trong thư viện Java của OpenCV, mô-đun này được bao gồm dưới dạng một gói với tên org.opencv.objdetect.
Highgui
Đây là một giao diện dễ sử dụng với khả năng UI đơn giản. Trong thư viện Java của OpenCV, các tính năng của mô-đun này được bao gồm trong hai gói khác nhau, cụ thể là,org.opencv.imgcodecs và org.opencv.videoio.
Lược sử về OpenCV
OpenCV ban đầu là một sáng kiến nghiên cứu của Intel nhằm tư vấn cho các ứng dụng sử dụng nhiều CPU. Nó được chính thức ra mắt vào năm 1999.
- Vào năm 2006, phiên bản chính đầu tiên của nó, OpenCV 1.0 đã được phát hành.
- Vào tháng 10 năm 2009, phiên bản chính thứ hai, OpenCV 2 được phát hành.
- Vào tháng 8 năm 2012, OpenCV đã được một tổ chức phi lợi nhuận OpenCV.org thực hiện.