Theo IDC, dữ liệu kỹ thuật số sẽ tăng lên tới 175 zettabyte và phần lớn dữ liệu này hình ảnh. Các nhà khoa học dữ liệu cần [trước] đo lường những hình ảnh này trước khi đưa chúng vào bất kỳ mô hình Trí tuệ nhân tạo và học sâu nào. Họ cần phải làm công việc quan trọng [và đôi khi bẩn thỉu] trước khi phần thú vị bắt đầu
Để xử lý nhiều thông tin một cách hiệu quả và nhanh chóng mà không phải trả giá về kết quả Các nhà khoa học dữ liệu cần sử dụng các công cụ chuẩn bị hình ảnh cho Trí tuệ nhân tạo và các nhiệm vụ học sâu
Trong bài viết này, tôi sẽ đi sâu vào các thư viện xử lý ảnh hữu ích nhất trong Python đang được sử dụng mạnh mẽ trong Trí tuệ nhân tạo và các nhiệm vụ học sâu. Vậy hãy bắt đầu
Mục lục
- OpenCV
- Hình ảnh Scikit
- scipy
- Thư viện hình ảnh Python [Gối/PIL]
- Matplotlib
- đơn giảnITK
- Nặng nề
- đại ca
OpenCV
OpenCV là một trong những thư viện nguồn mở nổi tiếng và được sử dụng rộng rãi nhất cho các tác vụ thị giác máy tính như xử lý hình ảnh, phát hiện đối tượng, nhận diện khuôn mặt, phân đoạn hình ảnh, nhận dạng khuôn mặt, v.v. Ngoài ra, nó cũng có thể được sử dụng cho các nhiệm vụ học máy. Điều này được phát triển bởi Intel vào năm 2002. Nó được viết bằng C++ nhưng các nhà phát triển đã cung cấp các liên kết Python và Java. Nó rất dễ đọc và sử dụng
Để xây dựng các mô hình học máy và thị giác máy tính, OpenCV có hơn 2500+ thuật toán. Các thuật toán này rất hữu ích để thực hiện các tác vụ khác nhau như nhận dạng khuôn mặt, phát hiện đối tượng, v.v. Hãy xem một số ví dụ mà chúng ta có thể thực hiện bằng OpenCV
Tỷ lệ xám
Tỷ lệ xám là phương pháp chuyển đổi hình ảnh 3 kênh, ví dụ: RGB, HSV, v.v. thành hình ảnh một kênh i. e đến sắc thái của màu xám. Hình ảnh cuối cùng khác nhau giữa trắng hoàn toàn và đen. Tầm quan trọng của Tỷ lệ xám bao gồm Giảm kích thước [chuyển đổi 3 kênh thành hình ảnh một kênh], Giảm độ phức tạp của mô hình, v.v.
Mã bên dưới, đoạn mã hiển thị tỷ lệ xám trong OpenCV
Xoay hình ảnh
OpenCV giúp sử dụng để xoay hình ảnh theo bất kỳ mức độ nào trong phạm vi từ 0 đến 360 độ
Kiểm tra đoạn mã dưới đây để xoay hình ảnh 180 độ
import cv2 as cv import matplotlib.pyplot as plt img = cv.imread['example.jpg'] h, w = image.shape[:2] rot_matrix = cv.getRotationMatrix2D[[w/2,h/2], -180, 0.5] rot_image = cv.warpAffine[img, rot_matrix, [w, h]] plt.imshow[cv.cvtColor[rot_image, cv.COLOR_BGR2RGB]]
OpenCV cung cấp các chức năng khác ngoài những gì chúng ta đã thảo luận cho đến nay. Ngoài ra, nó còn giúp Nhận diện khuôn mặt, Phân đoạn hình ảnh, Trích xuất tính năng, Phát hiện đối tượng, Tái tạo 3-D, v.v.
Để biết thêm thông tin, hãy kiểm tra tài liệu chính thức. liên kết
Hình ảnh Scikit
Scikit-Image là một thư viện xử lý ảnh mã nguồn mở tuyệt vời khác. Nó rất hữu ích trong hầu hết mọi nhiệm vụ thị giác máy tính. Đây là một trong những thư viện đơn giản và dễ hiểu nhất. Một số phần của thư viện này được viết bằng Cython [Đây là siêu ngôn ngữ lập trình python được thiết kế để làm cho python nhanh hơn như ngôn ngữ C]. Nó cung cấp một số lượng lớn các thuật toán bao gồm phân đoạn, thao tác không gian màu, biến đổi hình học, lọc, hình thái học, phát hiện tính năng, v.v.
Scikit Image sử dụng mảng Numpy làm đối tượng hình ảnh. Hãy xem làm thế nào chúng ta có thể thực hiện thao tác đường viền tích cực trong hình ảnh scikit. Đường bao hoạt động mô tả ranh giới của các hình dạng trong một hình ảnh.
Kiểm tra mã dưới đây để hoạt động đường viền đang hoạt động
import numpy as np import matplotlib.pyplot as plt from skimage.color import rgb2gray from skimage import data from skimage.filters import gaussian from skimage.segmentation import active_contour image = data.astronaut[] # Data for circular boundary s = np.linspace[0, 2*np.pi, 400] x = 220 + 100*np.cos[s] y = 100 + 100*np.sin[s] init = np.array[[x, y]].T # formation of the active contour centre = active_contour[gaussian[image, 3],init, alpha=0.015, beta=10, gamma=0.001] figure, axis = plt.subplots[1, 2, figsize=[7, 7]] ax[0].imshow[image, cmap=plt.cm.gray] ax[0].set_title["Original Image"] ax[1].imshow[image, cmap=plt.cm.gray]
Để biết thêm thông tin, hãy kiểm tra tài liệu chính thức. liên kết
khoa học viễn tưởng
SciPy chủ yếu được sử dụng cho các tính toán toán học và khoa học, nhưng đôi khi nó cũng có thể được sử dụng cho các tác vụ xử lý và thao tác hình ảnh cơ bản bằng cách sử dụng mô hình con scipy. hình ảnh. Vào cuối ngày, hình ảnh chỉ là các mảng đa chiều, SciPy cung cấp một tập hợp các hàm được sử dụng để vận hành các hoạt động Numpy n chiều. SciPy cung cấp một số thao tác xử lý ảnh cơ bản như Nhận diện khuôn mặt, Tích chập, Phân đoạn ảnh, Đọc ảnh, Trích xuất tính năng, v.v. Cùng với đó, bạn còn thực hiện lọc, vẽ đường bao trên ảnh
Kiểm tra mã bên dưới để làm mờ hình ảnh bằng SciPy
from scipy import ndimage, misc from matplotlib import pyplot as plt f = misc.face[] b_face = ndimage.gaussian_filter[f, sigma=3] figure, axis = plt.subplots[1, 2, figsize=[16, 8]]
Để biết thêm thông tin, hãy kiểm tra tài liệu chính thức. liên kết
Thư viện hình ảnh Python [PIL/Gối]
Nó là một thư viện python mã nguồn mở được sử dụng cho các tác vụ xử lý ảnh. Nó cung cấp các chức năng đặc biệt mà các thư viện khác thường không cung cấp như lọc, mở, thao tác và lưu ảnh. Thư viện này hỗ trợ nhiều định dạng tệp, giúp nó hoạt động hiệu quả hơn. PIL cũng hỗ trợ các chức năng như Xử lý hình ảnh, Hiển thị hình ảnh và Lưu trữ hình ảnh. Hãy xem Nâng cao hình ảnh bằng PIL/Gối
Thay đổi độ sắc nét của hình ảnh
Để biết thêm thông tin, hãy kiểm tra tài liệu chính thức. liên kết
Matplotlib
Matplotlib chủ yếu được sử dụng cho trực quan hóa 2D như biểu đồ phân tán, biểu đồ thanh, biểu đồ, v.v., nhưng chúng tôi cũng có thể sử dụng nó để xử lý hình ảnh. Có hiệu quả để lấy thông tin ra khỏi hình ảnh. Nó không hỗ trợ tất cả các định dạng tệp
Kiểm tra hình ảnh bên dưới sau thao tác thay đổi màu nền
Để biết thêm thông tin, hãy kiểm tra tài liệu chính thức. liên kết
đơn giảnITK
Nó còn được gọi là Bộ công cụ đăng ký và phân đoạn thông tin chi tiết. Nó là một thư viện nguồn mở được sử dụng để đăng ký hình ảnh và phân đoạn hình ảnh. Các thư viện như OpenCV coi hình ảnh là một mảng nhưng thư viện này coi hình ảnh là một tập hợp các điểm trên một vùng trong không gian. Kiểm tra ví dụ dưới đây
Phân đoạn hình ảnh
Để biết thêm thông tin, hãy kiểm tra tài liệu chính thức. liên kết
Nặng nề
Nó là một thư viện python mã nguồn mở được sử dụng để phân tích số. Nó chứa một ma trận và các mảng đa chiều dưới dạng cấu trúc dữ liệu. Nhưng NumPy cũng có thể sử dụng cho các tác vụ xử lý hình ảnh như cắt xén hình ảnh, thao tác pixel và tạo mặt nạ cho các giá trị pixel
Kiểm tra hình ảnh bên dưới để trích xuất các kênh xanh lục/đỏ/xanh lam từ hình ảnh
Để biết thêm thông tin, hãy kiểm tra tài liệu chính thức. liên kết
đại ca
Nó là một thư viện python mã nguồn mở khác để xử lý hình ảnh và thị giác máy tính. Nó được thiết kế cho tin học sinh trắc học. Nó cung cấp nhiều thuật toán được viết bằng C ++ để tăng tốc độ với giao diện python tốt. Nó đọc và ghi hình ảnh trong mảng NumPy
Kiểm tra hình ảnh bên dưới để biết Khớp mẫu bằng Mahotas
Để biết thêm thông tin, hãy kiểm tra tài liệu chính thức. liên kết
Sự kết luận
Vì vậy, trong bài viết này, chúng tôi đã đề cập đến 8 thư viện xử lý hình ảnh hàng đầu trong python dành cho máy học vào năm 2021. Tôi hy vọng bạn học được điều gì đó từ blog này và nó sẽ trở nên tốt nhất cho dự án của bạn. Cảm ơn đã đọc và sự kiên nhẫn của bạn. Chúc may mắn
Bạn có thể kiểm tra bài viết của tôi ở đây. Bài viết
Cảm ơn bạn đã đọc bài viết này về thư viện python để xử lý ảnh và sự kiên nhẫn của bạn. Hãy cho tôi trong phần bình luận. Chia sẻ bài viết này, nó sẽ cho tôi động lực để viết nhiều blog hơn cho cộng đồng khoa học dữ liệu
id email. gakshay1210@gmail. com
Theo dõi tôi trên LinkedIn. LinkedIn
Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả.