Giới thiệu
Nhiều người quen thuộc với các thuật ngữ Xử lý hình ảnh (Image Proccessing) và Thị giác máy tính (có nơi còn gọi là Điện toán thị giác – Computer Vision), nhưng có lẽ một số trong đó không chắc điều gì làm nên sự khác biệt giữa hai lĩnh vực này. Có phải chúng về cơ bản là giống nhau không? Chúng có làm việc độc lập với nhau và được sử dụng cho các mục đích khác nhau? Hay chúng là hai phần của cùng một quá trình? Trừ khi ai đó đã làm việc trong lĩnh vực này, họ có thể không thể trả lời được các câu hỏi này. Hơn nữa, với sự phát triển của Deep Learning và hiệu quả của nó trong các tác vụ xử lý ảnh, nó có thể thích hợp để ứng dụng vào đâu?
Định nghĩa của mỗi cái đã rõ, nhưng trước tiên, có lẽ nên xem xét những gì gây ra sự khó hiểu hay nhầm lẫn trong cộng đồng. Thị giác máy tính đôi khi còn được coi là một tập con của Xử lý hình ảnh, trong đó người ta tin rằng máy tính có thể giải thích, hiểu và sử dụng hình ảnh phù hợp mà nó có quyền truy cập. Trong thực tế, Xử lý hình ảnh có thể được sử dụng như một phần của quy trình Thị giác máy tính, hoặc độc lập và cho một mục đích khác.
Xử lý ảnh là gì?
Xử lý hình ảnh là một thuật ngữ chung đề cập đến một loạt các chức năng có thể được thực hiện trên một hình ảnh tĩnh. Trong khi một khung hình đơn (single frame) được sử dụng làm đầu vào, đầu ra thay đổi tùy theo một hoặc vài chức năng được áp dụng.
Phần lớn các chức năng xử lý hình ảnh tạo ra một hình ảnh thứ hai, đã được can thiệp. Bất kỳ bộ lọc / filter nào làm thay đổi hình ảnh chẳng hạn, là một loại của Xử lý hình ảnh. Cho dù nó tô màu cho ảnh chụp đen trắng, làm mờ biển số xe để bảo vệ quyền riêng tư hoặc tái hiện tai thỏ trên đầu của một người, đó là một ví dụ về chuyển đổi từ hình ảnh này sang hình ảnh khác thông qua xử lý hình ảnh.
(Computer Vision hoạt động trên một luồng các hình ảnh)
Một công cụ thường được sử dụng để xử lý hình ảnh là Adobe Photoshop. Việc sử dụng sản phẩm này để thay đổi hình ảnh rất phổ biến đến nỗi kết quả cuối cùng, sau khi một bức ảnh kỹ thuật số đã được chỉnh sửa, thường được gọi là một bức ảnh đã “được photoshop”.
Ngược lại, Xử lý hình ảnh không đề cập đến quá trình phân tích một hình ảnh, ví dụ, tạo một câu tiếng Anh thích hợp để mô tả nó một cách phù hợp. Điều này nằm trong lĩnh vực machine learning, và trên thực tế, cũng là một phần của Thị giác máy tính.
Bây giờ chúng ta đã có một định nghĩa cho Xử lý hình ảnh, nó liên quan như thế nào đến Thị giác máy tính?
Thị giác máy tính là gì?
Thị giác máy tính, Computer Vision, được coi là một định nghĩa duy nhất, là khả năng và quy trình để máy tính hiểu được môi trường xung quanh thông qua việc sử dụng một hoặc nhiều mắt kỹ thuật số. Rõ ràng, điều này không được thực hiện bằng cách sử dụng một nhiệm vụ độc lập. Thay vào đó, đó là một loạt các bước bắt đầu bằng việc có được hình ảnh đầu tiên, và sau đó đạt được sự hiểu biết thông qua xử lý và phân tích hình ảnh.
Thị giác của con người là một quá trình phức tạp và việc mô phỏng điều này luôn là một nhiệm vụ đầy thách thức đối với máy tính. Thông qua việc sử dụng các kỹ thuật machine learning truyền thống và gần đây với những tiến bộ trong Deep Learning, có những tiến bộ đáng chú ý đang được thực hiện trong các máy tính có khả năng diễn giải và phản ứng với những gì chúng “thấy”.
Một điều kiện tiên quyết và quan trọng cho Thị giác máy tính khác với Xử lý hình ảnh là việc thao tác trên nhiều hình ảnh. Trong khi Xử lý hình ảnh hoàn toàn hoạt động với duy nhất một tấm hình ở dạng số hóa, Computer Vision hoạt động phù hợp hơn trên một luồng hình ảnh (stream of images) có mối quan hệ tạm thời đã biết trước.
(Xử lý ảnh được thực hiện trên một ảnh tĩnh)
Chuỗi hình ảnh
Sự kết nối tạm thời giữa các hình ảnh rất quan trọng vì nó bổ sung bối cảnh thông thường là cần thiết để đưa ra các kết luận chính xác và phù hợp. Ví dụ, hãy xem xét một bức tranh kỹ thuật số có chứa một chiếc xe hơi. Việc phân tích một hình ảnh duy nhất sẽ có khả năng mang lại những chi tiết quan trọng và quan trọng về chiếc xe. Chúng có thể bao gồm nhãn hiệu, kiểu dáng, màu sắc, biển số xe, sự hiện diện của người cư ngụ và có lẽ các chỉ dẫn như đèn hoặc khí thải ngụ ý trạng thái hoạt động. Tuy nhiên, sẽ khá hiếm khi quyết định có thể đưa ra quyết định rằng chiếc xe đang chuyển động.
Chắc chắn có những ví dụ về nơi mà các cảnh chuyển động có thể được nhận ra. Chúng có thể bao gồm một hình ảnh mờ chuyển động, hoặc một bức ảnh chụp vào đúng thời điểm mà một trong những chiếc lốp xe vượt qua vũng nước. Mặt khác, không khó để nhận ra rằng phần lớn các hình ảnh một khung hình sẽ không cung cấp đủ thông tin để suy ra chuyển động, chứ chưa nói đến hướng hoặc tốc độ di chuyển. Không có những chi tiết này, độ sâu của sự hiểu biết bị hạn chế đáng kể.
(Xử lý một chuỗi các hình ảnh của cùng một sự kiện xác định rằng chiếc xe đang chuyển động)
Thay vì một hình ảnh duy nhất, hãy xem xét một loạt ba hình ảnh có chứa cùng một chiếc xe. Mỗi cái được lấy từ cùng một vị trí thuận lợi và được đánh dấu thời gian tương ứng. Nếu có độ trễ giữa các lần chụp ảnh thì có thể dễ dàng tính toán bằng cách trừ các dấu thời gian. Trong kịch bản này, việc xác định chuyển động trong khoảng thời gian có liên quan sẽ dễ dàng hơn nhiều.
Chiếc xe có thể đang đi sang trái hoặc phải, liên quan đến góc quan sát, và điều này sẽ rõ ràng bằng cách nhìn vào các hình ảnh theo thứ tự. Tương tự, nếu một chiếc xe đang di chuyển về phía trước hoặc ra khỏi máy ảnh thì hình ảnh của nó sẽ trở nên lớn hơn hoặc nhỏ hơn, tương ứng. Với mục đích của ví dụ này, chúng tôi sẽ không xem xét các trường hợp một đối tượng đang chuyển động, nhưng không thể phát hiện được vì độ trễ và chuyển động cùng nhau, sao cho đối tượng luôn quay trở lại cùng một vị trí cho mỗi ảnh chụp.
Deep learning và hình ảnh kỹ thuật số
Với sự phát triển của Deep Learning trong những năm gần đây, một trong những lĩnh vực được áp dụng rộng rãi là hình ảnh kỹ thuật số. Hai framework Deep Learning nổi tiếng là Mạng thần kinh chuyển đổi (CNN) và Mạng thần kinh tái phát (RNN) . Mặc dù một cuộc thảo luận sâu hơn về những điều này nằm ngoài phạm vi của bài viết này, có liên quan để đề cập rằng CNN đã được áp dụng cho một loạt các nhiệm vụ hình ảnh. Chúng bao gồm hệ thống nhận diện và nhận dạng khuôn mặt, phân tích hình ảnh y tế, nhận dạng hình ảnh và phân tích video chuyển động đầy đủ. Trên hệ thống như vậy là AlexNet, một CNN đã thu hút sự chú ý khi chiến thắng Thử thách nhận dạng hình ảnh quy mô lớn ImageNet 2012.
Deep learning để xử lý ảnh
Các kỹ thuật Deep Learning đã được áp dụng thành công trong các tác vụ Xử lý hình ảnh và một ví dụ đơn giản cho việc sử dụng nó là trong kỹ thuật phát hiện cạnh, Edge Detection. Việc phát hiện các cạnh trong ảnh kỹ thuật số tương đối phức tạp và nó quan trọng trong Xử lý hình ảnh. Hãy xem xét ví dụ trước đây của chúng tôi trong đó một hình ảnh duy nhất chứa hình ảnh của một chiếc ô tô và nhiệm vụ trong tay là áp dụng bộ lọc mờ sao cho số biển số xe sau đó bị che khuất.
Nếu chúng tôi xem xét các bước cần thiết để thực hiện công việc dễ tưởng tượng này, đầu tiên phải là định vị biển số xe. Xác định các mẫu hình trực quan, chẳng hạn như biển số xe hoặc đèn pha, được gọi là nhận diện mẫu hình. Tuy nhiên, trước khi các mẫu hình có thể được nhận ra, cần phải tìm kiếm các đường viền hoặc cạnh biên, được tạo thành từ các cạnh của nó. Do đó, nhận diện cạnh là một thành phần quan trọng của nhận diện mẫu hình, để sau đó có thể áp dụng các bộ lọc khác nhau.
Khi biển số xe đã được xác định, đó chỉ là một trường hợp làm xáo trộn chuỗi ký tự trong khu vực của nó. Kết quả là một bức hình thứ hai giống hệt nhau trong từng chi tiết, ngoại trừ thông tin nhận dạng duy nhất không còn rõ ràng nữa.
Nhận diện cạnh và tác vụ phức tạp hơn là nhận diện mẫu hình, được CNNs xử lý dễ dàng trong các hệ thống Deep Learning. Bằng cách xác định các mẫu hình, CNN có khả năng phân loại ảnh và đưa ra các loại dự đoán khác. Điều này dẫn đến câu hỏi quan trọng là liệu CNN có thể được áp dụng cho các tác vụ của Thị giác máy tính hay không.
(Ví dụ về Nhận diện cạnh được áp dụng trên biển số xe)
Deep learning cho Thị giác máy tính
Không còn nghi ngờ gì nữa, nhận dạng mẫu hình và phân loại hình ảnh là những công cụ quan trọng để hiểu được nội dung của một bức ảnh. Do đó, CNN là một công cụ có giá trị được sử dụng bởi các hệ thống Computer Vision. Nhưng còn về bối cảnh thì sao? Chiếc xe đang tiến đến gần bạn hay nó đang di chuyển ra xa hơn? Nếu không xem xét một loạt các hình ảnh và mối quan hệ tạm thời của chúng, không có cách nào để biết một cách chắc chắn. Trong Thị giác máy tính, hiểu biết sâu hơn đối với các sự kiện là điều cần thiết.
Deep Learning framework thứ hai như đề cập ở trên đó là RNN. CNN tốt cho xử lý hình ảnh, trong khi RNN tốt cho việc khai thác thông tin tạm thời để xác định bối cảnh. Một RNN chứa một cơ chế vòng phản hồi về cơ bản hoạt động như một bộ nhớ trong. Được đặt tên là “Bộ nhớ ngắn hạn” dài (Long Short-Term Memory, LSTM), chức năng này có thể khám phá nhiều loại quan hệ bao gồm cả những mối quan hệ chỉ rõ ràng khi xem xét bối cảnh. Các hệ thống này thường được sử dụng để dự đoán từ tiếp theo trong tác vụ tự động hoàn thành, trong đó lựa chọn chính xác phụ thuộc vào điều gì đó xảy ra tại một điểm trước đó trong câu.
(Một ví dụ về chú thích ảnh)
Đối với trường hợp một hình ảnh kỹ thuật số duy nhất, một trong những ứng dụng mà RNN được áp dụng được gọi là Chú thích hình ảnh. Ở đó, một hình ảnh được tự động đặt cho một mẫu chú thích dựa trên những gì có trong hình ảnh, chẳng hạn như “phương tiện này là một chiếc xe ô tô” hay “cửa bên tài xế đang mở ra”. Rõ ràng là mức độ hiểu biết này có lợi ích rất lớn trong Thị giác máy tính. Hơn nữa, sức mạnh của LSTM có thể được sử dụng trên một loạt các hình ảnh.
Được trang bị một bộ hình ảnh, RNN sẽ xem xét cả nội dung của hình ảnh và mối quan hệ tạm thời giữa chúng, như được mô tả bởi timestamp đi kèm của chúng. Bây giờ hãy xem xét rằng mỗi hình ảnh có một mô tả chính xác và mô tả đó được đặt theo thứ tự, trong số một số mô tả tương tự và kết quả là một đoạn mô tả những gì đang xảy ra trong một khoảng thời gian đã được ghi lại trong một số hình ảnh. Đây là một mô tả chi tiết hơn, hoặc hiểu biết hơn về những gì đang xảy ra trong khoảng thời gian có liên quan.
Trong thực tế, các hệ thống CNN và RNN “hybrid” được sử dụng cho các tác vụ phức tạp hơn, sử dụng từng framework này. Có một hệ thống lai như vậy, có tên gọi là DanQ, đã được tạo ra với hệ thống DeepSEA làm nền tảng. Tuy nhiên, DeepSEA chỉ là một CNN và không bao gồm RNN. Thử nghiệm đã chỉ ra rằng hệ thống kết hợp vượt trội so với người tiền nhiệm vì RNN chỉ xem xét dữ liệu trừu tượng hơn đã được CNN lọc trước, giúp mối quan hệ lâu dài dễ dàng phát hiện hơn. Tuy nhiên, điều này phụ thuộc vào việc thực hiện và điều này có lẽ nằm ngoài phạm vi của bài thảo luận này.
Phần kết luận
Xử lý hình ảnh và Thị giác máy tính là những nhiệm vụ riêng biệt nhưng có liên quan nằm trong bối cảnh của lĩnh vực ảnh số. Xử lý hình ảnh liên quan đến việc sửa đổi hình ảnh bằng các thiết bị như bộ lọc, trong khi các hệ thống Computer Vision nhằm tìm hiểu những gì đang xảy ra trong một khoảng thời gian đã được “mắt điện tử” chụp lại. Xử lý hình ảnh, trong khi nó có các ứng dụng riêng, là một phần quan trọng của hệ thống Thị giác máy tính.
Các hệ thống Deep Learning đã được áp dụng thành công cho cả các tác vụ Xử lý hình ảnh và Thị giác máy tính, sử dụng nhiều framework và triển khai kết hợp. Với sự tiến bộ trong các thuật toán Deep Learning và khả năng tính toán ngày càng tăng, các hệ thống Computer Vision chắc chắn sẽ được cải thiện. Đổi lại, các ứng dụng từ máy ảnh thông minh đến robot cũng sẽ tiếp tục cải tiến, cuối cùng đưa Computer Vision trở thành xu hướng chủ đạo và bước ra khỏi phòng lab.
Nguồn Tổng hợp
Bài viết liên quan
- Tổng quan về Computer Vision – Thị giác máy tính
- Hệ sinh thái NVIDIA Metropolis mở rộng với các công cụ phát triển tiên tiến để tăng tốc Vision AI
- AI on the Football: Ứng dụng Computer Vision để phân tích dữ liệu của cầu thủ
- Computer Vision: Một sự dịch chuyển sắp diễn ra?
- Computer Vision – Thị giác máy tính là gì?
- Khảo sát nghiên cứu về AI cho thấy machine learning cần một sự thay đổi về văn hóa