Hướng dẫn real time image processing python - Python xử lý hình ảnh thời gian thực
Hình ảnh xác định thế giới, mỗi hình ảnh có câu chuyện riêng, nó chứa rất nhiều thông tin quan trọng có thể hữu ích theo nhiều cách. Thông tin này có thể thu được với sự trợ giúp của kỹ thuật được gọi là xử lý hình ảnh.Image Processing. Show
Đây là phần cốt lõi của tầm nhìn máy tính đóng vai trò quan trọng trong nhiều ví dụ trong thế giới thực như robot, xe tự lái và phát hiện đối tượng. Xử lý hình ảnh cho phép chúng ta chuyển đổi và thao tác hàng ngàn hình ảnh tại một thời điểm và trích xuất những hiểu biết hữu ích từ chúng. Nó có một loạt các ứng dụng trong hầu hết các lĩnh vực. & NBSP; Python là một trong những ngôn ngữ lập trình được sử dụng rộng rãi cho mục đích này. Các thư viện và công cụ tuyệt vời của nó giúp đạt được nhiệm vụ xử lý hình ảnh rất hiệu quả. & NBSP; Thông qua bài viết này, bạn sẽ tìm hiểu về các thuật toán, kỹ thuật và công cụ cổ điển để xử lý hình ảnh và có được đầu ra mong muốn. Hãy để vào nó! Xử lý hình ảnh là gì?Như tên nói, xử lý hình ảnh có nghĩa là xử lý hình ảnh và điều này có thể bao gồm nhiều kỹ thuật khác nhau cho đến khi chúng tôi đạt được mục tiêu của mình. Đầu ra cuối cùng có thể ở dạng hình ảnh hoặc tính năng tương ứng của hình ảnh đó. Điều này có thể được sử dụng để phân tích và ra quyết định thêm. Nhưng hình ảnh là gì? Một hình ảnh có thể được biểu diễn dưới dạng hàm 2D F (x, y) trong đó x và y là tọa độ không gian. Biên độ của F ở một giá trị cụ thể của x, y được gọi là cường độ của một hình ảnh tại thời điểm đó. Nếu x, y và giá trị biên độ là hữu hạn thì chúng ta gọi nó là hình ảnh kỹ thuật số. Nó là một mảng các pixel được sắp xếp trong các cột và hàng. Pixels là các yếu tố của một hình ảnh chứa thông tin về cường độ và màu sắc. Một hình ảnh cũng có thể được biểu diễn trong 3D trong đó X, Y và Z trở thành tọa độ không gian. Pixels được sắp xếp dưới dạng ma trận. Đây được gọi là hình ảnh RGB.RGB image. Có nhiều loại hình ảnh:
Thuật toán xử lý hình ảnh cổ điển1. Xử lý hình ảnh hình tháiXử lý hình ảnh hình thái cố gắng loại bỏ sự không hoàn hảo khỏi hình ảnh nhị phân vì các vùng nhị phân được tạo ra bởi ngưỡng đơn giản có thể bị biến dạng bởi tiếng ồn. Nó cũng giúp làm mịn hình ảnh bằng cách sử dụng các hoạt động mở và đóng. Hoạt động hình thái có thể được mở rộng cho hình ảnh thang độ xám. Nó bao gồm các hoạt động phi tuyến tính liên quan đến cấu trúc của các tính năng của một hình ảnh. Nó phụ thuộc vào thứ tự liên quan của pixel nhưng vào các giá trị số của chúng. Kỹ thuật này phân tích một hình ảnh bằng cách sử dụng một mẫu nhỏ được gọi là phần tử cấu trúc được đặt trên các vị trí khác nhau có thể trong hình ảnh và được so sánh với các pixel lân cận tương ứng. Một phần tử cấu trúc là một ma trận nhỏ với các giá trị 0 và 1.structuring element which is placed on different possible locations in the image and is compared with the corresponding neighbourhood pixels. A structuring element is a small matrix with 0 and 1 values. Hãy cùng xem hai hoạt động cơ bản của xử lý hình ảnh hình thái, giãn nở và xói mòn:Dilation and Erosion:
Số lượng pixel được loại bỏ hoặc thêm vào hình ảnh gốc phụ thuộc vào kích thước của phần tử cấu trúc. & NBSP; Tại thời điểm này, bạn có thể đang nghĩ rằng yếu tố cấu trúc là gì? Hãy để tôi giải thích: Phần tử cấu trúc là một ma trận chỉ bao gồm 0 0 và 1 có thể có bất kỳ hình dạng và kích thước tùy ý nào. Nó được định vị tại tất cả các vị trí có thể trong hình ảnh và nó được so sánh với vùng lân cận tương ứng của pixel. Phần tử cấu trúc hình vuông ‘A phù hợp với đối tượng chúng tôi muốn chọn, & nbsp;‘ B, giao với đối tượng và ‘C, nằm ngoài đối tượng. Mẫu Zero-One xác định cấu hình của phần tử cấu trúc. Nó theo hình dạng của đối tượng chúng tôi muốn chọn. Trung tâm của phần tử cấu trúc xác định pixel đang được xử lý. 2. Xử lý hình ảnh Gaussian Gaussian Image ProcessingGaussian Blur còn được gọi là làm mịn Gaussian, là kết quả của việc làm mờ một hình ảnh bởi một chức năng Gaussian.image by a Gaussian function. Nó được sử dụng để giảm nhiễu hình ảnh và giảm chi tiết. Hiệu ứng hình ảnh của kỹ thuật làm mờ này tương tự như nhìn vào một hình ảnh thông qua màn hình mờ. Đôi khi nó được sử dụng trong tầm nhìn máy tính để tăng cường hình ảnh ở các quy mô khác nhau hoặc như một kỹ thuật tăng dữ liệu trong học tập sâu.used to reduce image noise and reduce details. The visual effect of this blurring technique is similar to looking at an image through the translucent screen. It is sometimes used in computer vision for image enhancement at different scales or as a data augmentation technique in deep learning. Hàm Gaussian cơ bản trông giống như: Trong thực tế, tốt nhất là tận dụng thuộc tính tách biệt của Gaussian Blur bằng cách chia quy trình thành hai đường chuyền. Trong lần đầu tiên, một hạt nhân một chiều được sử dụng để làm mờ hình ảnh chỉ theo hướng ngang hoặc dọc. Trong lần thứ hai, cùng một hạt nhân một chiều được sử dụng để làm mờ theo hướng còn lại. Hiệu ứng kết quả cũng giống như kết hợp với một hạt nhân hai chiều trong một lần vượt qua. Hãy cùng xem một ví dụ để hiểu những bộ lọc Gaussian làm gì với một hình ảnh. Nếu chúng ta có một bộ lọc thường được phân phối và khi nó được áp dụng cho một hình ảnh, kết quả sẽ như thế này: Nguồn Bạn có thể thấy rằng một số cạnh có ít chi tiết hơn. Bộ lọc đang cung cấp nhiều trọng lượng hơn cho các pixel ở trung tâm so với các pixel cách xa trung tâm. Các bộ lọc Gaussian là các bộ lọc thông thấp, tức là làm suy yếu các tần số cao. Nó thường được sử dụng trong phát hiện cạnh. 3. Biến đổi Fourier trong xử lý hình ảnhBiến đổi Fourier phá vỡ một hình ảnh thành các thành phần sin và cosine. & Nbsp; Nó có nhiều ứng dụng như tái cấu trúc hình ảnh, nén hình ảnh hoặc lọc hình ảnh. & NBSP; Vì chúng ta đang nói về hình ảnh, chúng ta sẽ xem xét chuyển đổi Fourier riêng biệt. Hãy để xem xét một hình sin, nó bao gồm ba điều:
Hình ảnh trong miền tần số trông như thế này: Công thức cho biến đổi Fourier rời rạc 2D là: Trong công thức trên, F (X, Y) biểu thị hình ảnh. Biến đổi Fourier nghịch đảo chuyển đổi biến đổi trở lại hình ảnh. Công thức cho biến đổi Fourier rời rạc 2D là: 4. Phát hiện cạnh trong xử lý hình ảnhPhát hiện cạnh là một kỹ thuật xử lý hình ảnh để tìm ra ranh giới của các đối tượng trong hình ảnh. Nó hoạt động bằng cách phát hiện sự không liên tục về độ sáng. Điều này có thể rất có lợi trong việc trích xuất thông tin hữu ích từ hình ảnh vì hầu hết các thông tin hình dạng được đặt trong các cạnh. Phương pháp phát hiện cạnh cổ điển hoạt động bằng cách phát hiện sự không liên tục trong độ sáng. & NBSP; Nó có thể nhanh chóng phản ứng nếu một số nhiễu được phát hiện trong hình ảnh trong khi phát hiện các biến thể của mức độ xám. Các cạnh được định nghĩa là cực đại cục bộ của gradient. & Nbsp; Thuật toán phát hiện cạnh phổ biến nhất là thuật toán phát hiện cạnh Sobel. Toán tử phát hiện Sobel được tạo thành từ 3*3 hạt nhân. Một hạt nhân đơn giản và một hạt nhân xoay 90 độ. Các phép đo riêng biệt được thực hiện bằng cách áp dụng cả hai hạt nhân riêng cho hình ảnh.sobel edge detection algorithm. Sobel detection operator is made up of 3*3 convolutional kernels. A simple kernel Gx and a 90 degree rotated kernel Gy. Separate measurements are made by applying both the kernel separately to the image. Và, & nbsp;* biểu thị hoạt động tích chập xử lý tín hiệu 2D. Kết quả gradient có thể được tính là: 5. Xử lý hình ảnh waveletChúng tôi đã thấy một biến đổi Fourier nhưng nó chỉ giới hạn ở tần số. Các con sóng đưa cả thời gian và tần suất vào việc xem xét. Biến đổi này là apt cho các tín hiệu không cố định. & NBSP; Chúng tôi biết rằng các cạnh là một trong những phần quan trọng của hình ảnh, trong khi áp dụng các bộ lọc truyền thống, nó đã được chú ý rằng nhiễu bị loại bỏ nhưng hình ảnh bị mờ. Biến đổi wavelet được thiết kế theo cách mà chúng ta có độ phân giải tần số tốt cho các thành phần tần số thấp. Dưới đây là ví dụ biến đổi wavelet 2D: Xử lý hình ảnh bằng mạng lưới thần kinhMạng lưới thần kinh là các mạng nhiều lớp bao gồm các tế bào thần kinh hoặc các nút. Những tế bào thần kinh này là đơn vị xử lý cốt lõi của mạng lưới thần kinh. Chúng được thiết kế để hoạt động như bộ não của con người. Họ lấy dữ liệu, tự rèn luyện để nhận ra các mẫu trong dữ liệu và sau đó dự đoán đầu ra. Một mạng lưới thần kinh cơ bản có ba lớp:
Các lớp đầu vào nhận được đầu vào, lớp đầu ra dự đoán đầu ra và các lớp ẩn thực hiện hầu hết các tính toán. Số lượng các lớp ẩn có thể được sửa đổi theo các yêu cầu. Cần có ít nhất một lớp ẩn trong một mạng lưới thần kinh. Hoạt động cơ bản của mạng lưới thần kinh như sau:
Trong hình ảnh dưới đây, AI, là tập hợp các đầu vào, WI, là trọng số, Z là đầu ra và G là bất kỳ chức năng kích hoạt nào.ai’s is the set of inputs, wi’s are the weights, z is the output and g is any activation function. Hoạt động trong một tế bào thần kinh | NguồnDưới đây là một số hướng dẫn để chuẩn bị dữ liệu để xử lý hình ảnh. & NBSP;
Các loại mạng lưới thần kinhMạng lưới thần kinh tích chậpMột mạng lưới thần kinh tích chập, tóm tắt có ba lớp:
CNN chủ yếu được sử dụng trong trích xuất các tính năng từ hình ảnh với sự trợ giúp của các lớp. CNN được sử dụng rộng rãi trong phân loại hình ảnh trong đó mỗi hình ảnh đầu vào được truyền qua chuỗi lớp để có được giá trị xác suất trong khoảng từ 0 đến 1. Mạng lưới đối thủ thế hệCác mô hình tổng quát sử dụng một phương pháp học tập không giám sát (có hình ảnh nhưng không có nhãn nào được cung cấp). & NBSP; Gans bao gồm hai máy phát điện mô hình và phân biệt đối xử. Máy phát điện học cách tạo hình ảnh giả & nbsp; Điều đó trông thực tế để đánh lừa người phân biệt đối xử và phân biệt đối xử học cách phân biệt giả với hình ảnh thật (nó cố gắng không bị lừa). & NBSP;Generator and Discriminator. Generator learns to make fake images that look realistic so as to fool the discriminator and Discriminator learns to distinguish fake from real images (it tries not to get fooled). Trình tạo không được phép xem hình ảnh thật, vì vậy nó có thể tạo ra kết quả kém trong giai đoạn bắt đầu trong khi người phân biệt được phép xem hình ảnh thật nhưng chúng bị xáo trộn với những hình ảnh giả được tạo ra bởi máy phát điện mà nó phải phân loại là thật hoặc giả mạo. & nbsp; Một số nhiễu được cung cấp làm đầu vào cho trình tạo để nó có thể tạo ra các ví dụ khác nhau mỗi lần chứ không phải cùng một hình ảnh. Dựa trên điểm số được dự đoán bởi người phân biệt, trình tạo cố gắng cải thiện kết quả của nó, sau một thời điểm nhất định, trình tạo sẽ có thể tạo ra hình ảnh khó phân biệt hơn, tại thời điểm đó, người dùng được hài lòng Kết quả của nó. Phân biệt đối xử cũng cải thiện bản thân vì nó ngày càng có nhiều hình ảnh thực tế hơn ở mỗi vòng từ trình tạo. Các loại GAN phổ biến là Gans chập sâu (DCGAN), Gans có điều kiện (CGAN), Stylegans, Cyclegan, Discogan, Gaugan, v.v. Gans là tuyệt vời cho việc tạo hình ảnh và thao tác. Một số ứng dụng của Gans bao gồm: lão hóa khuôn mặt, pha trộn ảnh, siêu phân giải, ảnh in, dịch quần áo. & NBSP; Công cụ xử lý hình ảnh1. OpenCVNó là viết tắt của Thư viện tầm nhìn máy tính nguồn mở. Thư viện này bao gồm khoảng 2000+ thuật toán được tối ưu hóa hữu ích cho tầm nhìn máy tính và học máy. Có một số cách bạn có thể sử dụng OpenCV trong xử lý hình ảnh, một số ít được liệt kê dưới đây:
Tham khảo liên kết này để biết thêm chi tiết. 2. Hình ảnh ScikitNó là một thư viện nguồn mở được sử dụng để tiền xử lý hình ảnh. Nó sử dụng máy học với các chức năng tích hợp và có thể thực hiện các hoạt động phức tạp trên hình ảnh chỉ với một vài chức năng. & NBSP; Nó hoạt động với các mảng numpy và là một NBSP khá đơn giản & NBSP; Thư viện ngay cả đối với những người mới đến Python. Một số hoạt động có thể được thực hiện bằng cách sử dụng hình ảnh scikit là:
3. Pil/GốiPIL là viết tắt của Thư viện hình ảnh Python và Gối là Fork Fork thân thiện của Alex Clark và những người đóng góp. Nó là một trong những thư viện mạnh mẽ. Nó hỗ trợ một loạt các định dạng hình ảnh như PPM, JPEG, TIFF, GIF, PNG và BMP. & NBSP;Pillow is the friendly PIL fork by Alex Clark and Contributors. It’s one of the powerful libraries. It supports a wide range of image formats like PPM, JPEG, TIFF, GIF, PNG, and BMP. Nó có thể giúp bạn thực hiện một số hoạt động trên các hình ảnh như xoay, thay đổi kích thước, cắt xén, đánh bóng, v.v. Hãy để đi qua một số hoạt động & NBSP; Để thực hiện các hoạt động thao tác, có một mô -đun trong thư viện này có tên là Image. & NBSP;Image.
Cũng đọc4. NumpyVới thư viện này, bạn cũng có thể thực hiện các kỹ thuật hình ảnh đơn giản, chẳng hạn như lật hình ảnh, trích xuất các tính năng và phân tích chúng. & NBSP; Hình ảnh có thể được biểu diễn bằng các mảng đa chiều numpy và vì vậy loại của chúng là ndarrays. Một hình ảnh màu là một mảng numpy với 3 chiều. Bằng cách cắt các mảng đa chiều, các kênh RGB có thể được tách ra. & NBSP;NdArrays. A color image is a numpy array with 3 dimensions. By slicing the multi-dimensional array the RGB channels can be separated. Dưới đây là một số hoạt động có thể được thực hiện bằng cách sử dụng Numpy trên hình ảnh (hình ảnh được tải trong một biến có tên Test_img bằng IMREAD).test_img using imread).
|