-
- Tổng tiền thanh toán:
Các bước cơ bản cần xử lý trong ứng dụng xử lý ảnh
Hiện nay, xử lý dữ liệu ảnh đã trở thành một yếu tố quan trọng và thú vị, đặc biệt là trong thời kỹ thuật số ngày nay. Một lĩnh vực công nghệ có sự phát triển nhanh chóng và tạo ra sức lan tỏa đáng kể đối với nhiều ngành khác nhau trong vài năm qua. Cốt lõi của mọi ứng dụng Thị giác máy tính đều nằm việc xử lý hình ảnh. Nếu bạn mới bước chân vào lĩnh vực này và cảm thấy bối rối với các khái niệm liên quan đến xử lý dữ liệu ảnh, bài viết này sẽ là một hướng dẫn khái quát, giúp bạn tìm hiểu các khái niệm cơ bản về xử lý dữ liệu hình ảnh.
Xử lý ảnh là gì?
Xử lý ảnh là quá trình chuyển đổi một hình ảnh sang dạng kỹ thuật số và thực hiện các thao tác nhất định để nhận được một số thông tin hữu ích từ hình ảnh đó. Hệ thống xử lý hình ảnh thường coi tất cả các hình ảnh là tín hiệu 2D khi áp dụng một số phương pháp xử lý tín hiệu đã xác định trước.
Các loại xử lý hình ảnh chính:
- Nhận diện – Phân biệt hoặc phát hiện các đối tượng trong hình ảnh
- Làm sắc nét và phục hồi – Tạo hình ảnh nâng cao từ hình ảnh gốc
- Nhận dạng mẫu – Đo các mẫu khác nhau xung quanh các đối tượng trong hình ảnh
- Truy xuất – Duyệt và tìm kiếm hình ảnh từ một cơ sở dữ liệu lớn gồm các hình ảnh kỹ thuật số tương tự như hình ảnh gốc
Xem thêm: Một số kiến thức căn bản khi Xử lý dữ liệu ảnh
Các bước xử lý hình ảnh cơ bản
Các bước cơ bản của ứng dụng xử lý ảnh gồm 4 bước chính: Thu nhận ảnh --> Tiền xử lý -> Phát hiện -> Nhận diện. Tuy nhiên tùy theo yêu cầu mà không cần phải có đủ 4 bước.
Xử lý ảnh hay bị nhầm với chỉnh sửa ảnh bằng Photoshop
Xử lý ảnh cần có input là ảnh và ouput là thông tin. Thông tin output dùng để trả lời các câu hỏi của bài toán như:
- Có vật thể trong ảnh không?
- Vật thể ở vị trí nào?
- Có bao nhiêu vật thể trong ảnh?
- Vật thể đó loại gì?
- Ảnh có đủ chất lượng không? (nét, nhiễu,…)
Bước 1: Thu nhận ảnh
Thu nhận ảnh là công đoạn đầu tiên mang tính quyết định đối với quá trình xử lý ảnh. Ảnh đầu vào sẽ được thu nhận qua các thiết bị như camera, sensor, máy scanner,... và sau đó các tín hiệu này sẽ được số hóa. Việc lựa chọn các thiết bị thu nhận ảnh sẽ phụ thuộc vào đặc tính của các đối tượng cần xử lý. Các thông số quan trọng ở bước này là độ phân giải, chất lượng màu, dung lượng bộ nhớ và tốc độ thu nhận ảnh của thiết bị.
Bước 2: Tiền xử lý
Tiền xử lý có mục đích làm cho ảnh dễ nhận dạng hơn, loại bỏ các yếu tố không cần thiết. Các công việc thường gặp như:
- Crop ảnh, resize ảnh
- Biến đổi ảnh thành dạng ảnh khác: ảnh màu sang ảnh xám, ảnh xám sang nhị phân, RGB -> HSV,…
- Cân bằng sáng
- Lọc nhiễu
- Xoay ảnh, warp ảnh
Ảnh sau khi warp để góc nhìn được trực diện hơn
Ảnh sau khi đã lọc nhiễu
Ví dụ ứng dụng nhận diện khuôn mặt thì tiền xử lý biến đổi ảnh thành ảnh xám. Ngoài ra tùy theo yêu cầu về độ chính xác mà có thể áp dụng nhiều phương thức để ảnh dễ nhận diện hơn. Thường là cân bằng sáng, tăng độ tương phản để nhận diện chính xác hơn.
Còn trong ứng dụng đọc biển số xe cũng chuyển sang ảnh xám, và tùy theo size ảnh của camera (1MP hay 2MP) mà resize lại. Cần phải resize vì kích cỡ ảnh quá lớn sẽ làm tốn thời gian xử lý.
Bước 3: Phát hiện
Phát hiện vật thể dùng để xác định vật thể trong ảnh. Sau bước này sẽ biết được có vật thể cần tìm không, nếu có thì ở vị trí nào & số lượng bao nhiêu.
Tùy theo loại đối tượng cần tìm mà có các cách khác nhau, như Cascade là 1 cách. Các bài toán đơn giản như tìm màu sắc chỉ cần dùng kênh màu HSV là được.
Ví dụ ứng dụng đọc biển số xe, cần phải xác định là có biển số xe trong ảnh hay không. Nếu không có thì trả về kết quả cho người dùng là không có biển số. Còn có biển số thì lặp lại bước Phát hiện một lần nữa để tìm ký tự trong biển. Sau khi tách xong các ký tự thì mới đưa sang bước 3 để nhận diện.
Bước 4: Nhận diện (Nhận dạng)
Sau khi đã phát hiện được vật thể và muốn nhận diện vật thể loại nào thì cần bước này. Bước này phải sử dụng Machine Learning để phân lớp (classification) đối tượng.
Để nhận diện khuôn mặt cần crop khuôn mặt để Machine Learning nhận diện. Bước phân lớp tác dụng là tìm xem giống khuôn mặt đã học nào nhất. Kết quả trả về là khuôn mặt giống nhất kèm tỉ lệ giống (confident).
Các ký tự sau khi phân đoạn khỏi ảnh thì tiến hành phân loại lớp để lấy kết quả:
Kết luận
Tiền xử lý luôn có trong mọi ứng dụng thị giác máy tính, còn bước Nhận diện tùy theo yêu cầu mà thực hiện. Bước Nhận diện cần phải chuẩn bị đầy đủ dữ liệu để training và kiến thức về Machine Learning.
Tuy nhiên bước 3 và bước 4 đều có thể phải cần đến Machine Learning nếu như vật thể cần tìm có cấu trúc phức tạp. Đôi khi phải lặp lại nhiều lần các bước 2-3-4 mới ra được kết quả. Do đó các bước cơ bản chỉ mang tính chất tham khảo tương đối, không áp dụng cho mọi hoàn cảnh.
Thứ tự của các bước cũng chỉ mang tính tương đối, tùy theo các loại yêu cầu của bài toán. Do đó cần có tư duy linh hoạt, sẵn sàng thử nghiệm, so sánh cái mới để tìm ra cách chính xác nhất.