Thị giác máy tính là một trong những lĩnh vực hot nhất của khoa học máy tính và nghiên cứu trí tuệ nhân tạo. Cùng tìm hiểu về thị giác máy tính qua bài viết sau.
1. Thị giác máy tính là gì?
Thị giác máy tính – Computer vision là một lĩnh vực bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh. Mục tiêu là tạo ra một hệ thống nhân tạo có thể tiếp nhận các hình ảnh thu được hay tập dữ liệu đa chiều để phân tích, xử lí nó theo ý muốn.

Bằng việc kết hợp các mô hình khác như: máy học, mạng noron,… máy móc ngày càng thông minh, có khả năng nhận biết được thế giới qua “mắt” của nó, giúp hệ thống thị giác máy tính nhân tạo có những quyết định linh hoạt và chính xác hơn.
Thị giác máy tính bao gồm các lĩnh vực sau:
- Xử lí hình ảnh: Phát triển các thuật toán xử lí ảnh như tăng/giảm chất lượng ảnh, lọc nhiễu…
- Nhận diện mẫu: Giải thích các kỹ thuật khác nhau để phân loại mẫu.
- Quang trắc: Liên quan đến việc thu thập các số đo chính xác từ hình ảnh.

2. Lịch sử thị giác máy tính
Trong suốt hơn 60 năm trở lại đây, các nhà nghiên cứu và kỹ sư đã tận dụng sự sáng tạo và sức mạnh của khoa học để khám phá nhiều phương pháp khác nhau để máy tính có thể “nhìn” và “hiểu” dữ liệu trực quan.
Hành trình này đã khởi đầu từ năm 1959, khi các nhà sinh lý học thần kinh đã tiến hành thí nghiệm bằng cách cho một con mèo xem một loạt hình ảnh và theo dõi phản ứng của não của nó. Kết quả cho thấy rằng con mèo phản ứng ban đầu với các cạnh hoặc đường thẳng, là sự khám phá đầu tiên về quá trình xử lý hình ảnh, mở đầu cho sự hiểu biết về việc xử lý các hình dạng cơ bản.
Đồng thời, vào cùng thời kỳ đó, công nghệ quét hình ảnh máy tính đầu tiên đã xuất hiện, cho phép máy tính số hóa và thu thập hình ảnh. Một bước tiến quan trọng đã đạt được vào năm 1963, khi máy tính đã có khả năng chuyển đổi hình ảnh hai chiều thành ba chiều.
Năm 1974, công nghệ Nhận dạng ký tự quang học (OCR – Optical character recognition) đã ra đời, có khả năng nhận dạng văn bản in bằng bất kỳ phông chữ hoặc kiểu chữ nào.

Một sự phát triển đáng chú ý khác là nhận dạng ký tự thông minh hay còn gọi là nhận dạng chữ viết tay (ICR – Intelligent Character Recognition), có khả năng giải mã văn bản viết tay bằng mạng nơ-ron. Từ đó, OCR và ICR đã thúc đẩy nhiều ứng dụng phổ biến như xử lý tài liệu, nhận dạng biển số xe, thanh toán di động, và nhiều ứng dụng khác.
Năm 1982, nhà thần kinh học David Marr đã đưa ra khái niệm về thứ bậc trong việc thị giác hoạt động và phát triển các thuật toán để máy tính phát hiện cạnh, góc, đường cong và các hình dạng cơ bản tương tự.
Cùng với Marr, nhà khoa học máy tính Kunihiko Fukushima đã phát triển mạng lưới Neocognitron, bao gồm các lớp phức hợp trong một mạng nơ-ron.
Năm 2000, sự tập trung của nghiên cứu đã dịch chuyển sang việc nhận dạng vật thể. Xuất hiện tiêu chuẩn về cách gắn thẻ và chú thích dữ liệu trực quan, và năm 2001, các ứng dụng nhận dạng khuôn mặt thời gian thực đã xuất hiện.
Năm 2010, tập dữ liệu ImageNet đã ra đời – một cơ sở dữ liệu hình ảnh quy mô lớn thiết kế để sử dụng trong nghiên cứu về nhận dạng đối tượng trực quan. Đây là nền tảng cho CNN và các mô hình học sâu hiện đang được sử dụng rộng rãi.
Năm 2012, một nhóm nghiên cứu từ Đại học Toronto đã giới thiệu mô hình AlexNet vào cuộc thi nhận dạng hình ảnh, giảm tỷ lệ lỗi đáng kể và đánh dấu một bước tiến quan trọng trong lĩnh vực này.

Sự kiện này đã làm hồi sinh sự quan tâm đến các CNN và tạo ra một cuộc cách mạng trong Deep Learning, phân nhánh của Machine Learning liên quan đến việc sử dụng các mạng thần kinh nhân tạo nhiều lớp. Nhờ những tiến bộ trong mạng thần kinh tích chập và học sâu, từ đó, lĩnh vực thị giác máy tính đã phát triển nhờ những bước nhảy vọt.
3. Nguyên lý hoạt động của thị giác máy tính là gì
Hệ thống thị giác máy tính sử dụng trí tuệ nhân tạo (AI) để mô phỏng khả năng nhận biết và phân loại đối tượng tương tự như con người. Để đào tạo máy tính trong việc nhận dạng dữ liệu hình ảnh, các nhà khoa học máy tính cung cấp cho chúng khối lượng lớn thông tin.
Bằng cách sử dụng thuật toán máy học (ML), máy tính xác định các kiểu mẫu thông thường trong hình ảnh hoặc video và áp dụng kiến thức đó để nhận dạng chính xác các hình ảnh chưa biết. Ví dụ, sau khi xử lý hàng triệu hình ảnh về ô tô, máy tính sẽ xây dựng một kiểu mẫu nhận dạng và có thể phát hiện phương tiện trong hình ảnh. Các công nghệ thị giác máy tính bao gồm:
3.1 Học sâu
Sử dụng mạng nơ-ron, học sâu có các lớp mô-đun phần mềm được gọi là nơ-ron nhân tạo, hoạt động cùng nhau bên trong máy tính. Chúng sử dụng tính toán học để tự động xử lý các khía cạnh khác nhau của dữ liệu hình ảnh và dần dần xây dựng sự hiểu biết kết hợp về hình ảnh.
3.2 Mạng nơ-ron tích chập (CNN)
CNN sử dụng hệ thống ghi nhãn để phân loại dữ liệu hình ảnh và hiểu toàn bộ hình ảnh. Chúng phân tích hình ảnh dưới dạng điểm ảnh và cung cấp cho mỗi điểm ảnh một giá trị nhãn. Sau đó, giá trị này được sử dụng để thực hiện phép toán gọi là phép nhân chập để đưa ra dự đoán về hình ảnh. CNN bắt đầu bằng việc xác định đường nét và hình dạng đơn giản trước khi điều chỉnh các chi tiết phức tạp hơn.
3.3 Mạng nơ-ron hồi quy (RNN)
RNN tương tự CNN, nhưng chúng có khả năng xử lý một loạt hình ảnh để tìm mối liên kết giữa chúng. Trong khi CNN được sử dụng để phân tích hình ảnh đơn lẻ, thì RNN có thể phân tích video và hiểu được mối liên hệ giữa các hình ảnh.
4. Cấu tạo của thị giác máy tính là gì
Tùy thuộc vào vai trò của thị giác máy tính trong hệ thống và ứng dụng của công nghệ mà sẽ có sự thay đổi loại thiết bị nào phù hợp. Tuy nhiên bất kể ứng dụng công nghiệp hay phi công nghiệp, sự kết hợp giữa phần mềm và phần cứng hoạt động cùng nhau để tạo ra hệ thống thị giác khả thi. Dưới đây là các thành phần tiêu biểu liên quan:
4.1 Máy ảnh
Máy ảnh là thiết bị chính để thị giác máy tính kiểm tra đối tượng hoặc mục trong hệ thống này. Có thể hệ thống chỉ cần sử dụng 1 camera nhưng cũng có những quy trình cần sử dụng nhiều camera cho một quá trình được gọi là camera kép. Điều này có nghĩa là có nhiều camera cho một điểm kiểm tra và kiểm tra cụ thể để đảm bảo rằng một bộ phận ẩn khác có thể được kiểm tra đúng cách.
4.2 Máy ảnh 3D
Máy ảnh 3D cho phép độ sâu của một mục thị giác máy tính được hiển thị trong một hình ảnh. Qua đó để hiển thị các góc khác nhau của hình ảnh và đưa ra ý tưởng về hình dạng của một mục.
4.3 Máy ảnh nhiệt
Máy ảnh ảnh nhiệt là một loại máy ảnh nhiệt đồ hiển thị hình ảnh thông qua bức xạ hồng ngoại cho thấy các vùng nhiệt trên hình ảnh.
4.4 Phần mềm
Phần mềm trực quan hóa dữ liệu và hiển thị chính là yêu cầu của hệ thống thị giác máy tính. Qua đó để người vận hành phân tích và bảo trì hệ thống cũng như lập trình các chức năng của phần cứng.

4.5 Hệ thống nhúng
Hệ thống nhúng được nhắc đến ở đây là một máy ảnh không có vỏ hoặc khung. Thiết bị này sẽ được kết nối trực tiếp với bảng xử lý. Hệ thống này hiện nay được triển khai chủ yếu dưới dạng hệ thống nhúng hoặc thiết bị IoT.
4.6 Khung gắp
Đây là một thiết bị điện tử ghi lại các khung hình tĩnh kỹ thuật số riêng lẻ từ tín hiệu video tương tự hoặc luồng video kỹ thuật số. Nhờ đó để phân tích từ một hệ thống chuyển động nhanh.
4.7 Ống kính
Ống kính đảm nhận nhiệm vụ xác định độ phân giải hình ảnh cho thị giác máy tính. Hình ảnh được chụp bởi máy ảnh và hệ thống thị giác máy chụp ảnh. Điểm ảnh của máy ảnh càng cao thì độ phân giải của ống kính càng cao và máy ảnh có khả năng lớn hơn.
4.8 Máy tính hiệu suất cao
Không phải lúc nào bạn cũng cần phải có một hệ thống máy tính hiệu suất cao. Chúng sẽ được yêu cầu khi xử lý khối lượng lớn các mặt hàng với các chi tiết khác nhau. Và thường sẽ được yêu cầu nếu hệ thống đang sử dụng một khả năng như học máy, học sâu hoặc mạng thần kinh.
4.9 Cáp
Như với tất cả các công nghệ và ứng dụng, hệ thống thị giác máy yêu cầu cáp nguồn đi đến nguồn điện chính để hoạt động. Và cáp kết nối đến giao diện người dùng. Mục đích để di chuyển dữ liệu sang nền tảng trực quan hóa hoặc dữ liệu trong thời gian thực.
5. Tác vụ phổ biến của thị giác máy tính là gì
5.1 Thị giác máy tính giúp phân loại hình ảnh
Phân loại hình ảnh cho phép máy tính quan sát và phân loại chính xác hình ảnh thuộc loại nào. Thị giác máy tính có khả năng nhận diện và đánh dấu các đối tượng trong hình ảnh, ví dụ như cây cối, máy bay, hoặc tòa nhà.
Một ứng dụng tiêu biểu là máy ảnh có thể nhận diện khuôn mặt trong hình ảnh và lấy nét chính xác vào khuôn mặt.
5.2 Thị giác máy tính nhận diện vật thể
Phát hiện đối tượng là một nhiệm vụ thị giác máy tính nhằm xác định và định vị đối tượng trong hình ảnh. Tác vụ này sử dụng phân loại để xác định, sắp xếp và định vị đối tượng trong hình ảnh. Được ứng dụng rộng rãi để kiểm soát các quy trình tự động và theo dõi dây chuyền sản xuất trong các ngành công nghiệp và sản xuất.
Các nhà cung cấp dịch vụ và nhà sản xuất camera gia đình cũng dựa vào phát hiện đối tượng để xử lý luồng video trực tiếp từ camera, để phát hiện người và vật thể trong thời gian thực và cung cấp cảnh báo hữu ích cho người dùng cuối.
5.3 Theo dõi đối tượng
Theo dõi đối tượng sử dụng mô hình học sâu để xác định và theo dõi các mục trong danh sách. Tác vụ này có nhiều ứng dụng thực tế trong nhiều ngành.
Quá trình đầu tiên của theo dõi đối tượng là phát hiện đối tượng; đối tượng sẽ được đánh dấu bằng một khung xung quanh, được gán một ID đối tượng và theo dõi qua các khung hình. Ví dụ, theo dõi đối tượng có thể được sử dụng để giám sát giao thông trong môi trường đô thị, theo dõi con người và chụp ảnh y khoa.
5.4 Thị giác máy tính có khả năng Phân đoạn
Phân đoạn là một thuật toán thị giác máy tính có khả năng xác định đối tượng bằng cách chia thành các vùng khác nhau dựa trên các điểm ảnh quan sát được. Phân đoạn cũng đơn giản hóa hình ảnh, ví dụ như đặt một hình dạng hoặc đường nét để xác định đối tượng. Bằng cách này, phân đoạn cũng giúp nhận biết nếu có nhiều hơn một đối tượng trong hình ảnh hoặc khung hình, không giống như phát hiện đối tượng, trong đó xây dựng một khung xung quanh đối tượng.
Ví dụ: nếu có một hình ảnh với cả một con mèo và một con chó, phân đoạn có thể được sử dụng để xác định và đánh dấu hai đối tượng riêng biệt. Khác với phát hiện đối tượng, phân đoạn làm rõ hình dạng của đối tượng, giúp dễ dàng trong việc phân tích và gắn nhãn.
5.5 Truy xuất hình ảnh dựa trên nội dung
Truy xuất hình ảnh dựa trên nội dung là một ứng dụng của kỹ thuật thị giác máy tính, có khả năng tìm kiếm các hình ảnh kỹ thuật số cụ thể trong cơ sở dữ liệu lớn. Ứng dụng này phân tích các thông tin siêu dữ liệu như thẻ, mô tả, nhãn và từ khóa. Truy xuất ngữ nghĩa cho phép tìm kiếm nội dung phù hợp bằng cách sử dụng các lệnh như ‘tìm kiếm hình ảnh của tòa nhà’, để truy xuất nội dung tương ứng.
6. Lĩnh vực ứng dụng của Thị giác Máy tính
6.1 Bảo mật và an toàn
Thị giác máy tính đóng vai trò quan trọng trong việc tăng cường bảo mật cho chính phủ và doanh nghiệp. Ví dụ, camera và cảm biến sử dụng trong giám sát không gian công cộng, cơ sở công nghiệp và môi trường bảo mật cao có khả năng gửi cảnh báo tự động khi có sự xâm nhập hoặc hành vi bất thường.
Cùng với đó, thị giác máy tính cải thiện tính an toàn cá nhân ở nhà và nơi làm việc. Công nghệ nhận dạng có thể theo dõi nhiều khía cạnh liên quan đến an toàn, bao gồm theo dõi thú cưng, hoặc sử dụng camera để theo dõi khách ghé thăm hoặc quản lý giao hàng tại cửa. Tại nơi làm việc, nó có thể theo dõi việc nhân viên sử dụng thiết bị bảo hộ cá nhân đúng cách, cung cấp thông tin cho hệ thống cảnh báo hoặc tạo báo cáo.

6.2 Hiệu quả hoạt động
Thị giác máy tính giúp tối ưu hoá hoạt động và tạo ra cơ hội doanh thu mới. Các ứng dụng bao gồm:
- Tự động xác định khiếm khuyết trước khi sản phẩm ra khỏi nhà máy.
- Phát hiện vấn đề an toàn và bảo trì máy móc.
- Phân tích hình ảnh trên các trang mạng xã hội để khám phá xu hướng và kiểu mẫu trong hành vi của khách hàng.
- Xác thực nhân viên bằng nhận diện khuôn mặt tự động.
6.3 Chăm sóc sức khỏe
Thị giác máy tính có ứng dụng đặc biệt trong lĩnh vực y tế. Phân tích hình ảnh y khoa giúp chẩn đoán nhanh và chính xác, từ đó cải thiện kết quả điều trị và tăng tuổi thọ. Ví dụ:
- Phát hiện khối u thông qua nốt ruồi và tổn thương da.
- Phân tích tia X tự động.
- Phát hiện triệu chứng từ phép chụp MRI.
6.4 Phương tiện tự hành
Công nghệ thị giác máy tính được sử dụng trong xe tự hành để nhận biết và theo dõi hình ảnh theo thời gian thực, giúp phương tiện tự hành phát hiện người tham gia giao thông, biển báo đường, người đi bộ và các chướng ngại vật.
Ứng dụng thị giác máy tính trong phương tiện tự hành cũng giúp theo dõi hành vi của người lái, nhận biết dấu hiệu phân tâm, mệt mỏi và buồn ngủ. Khi phát hiện các dấu hiệu này, công nghệ có thể cảnh báo người lái và giảm nguy cơ tai nạn.

6.5 Nông nghiệp
Thị giác máy tính tối ưu hoá hoạt động trong nông nghiệp, từ tăng năng suất đến giảm chi phí thông qua tự động hóa thông minh. Hình ảnh vệ tinh và cảnh quay UAV giúp phân tích đất đai và cải thiện phương pháp canh tác.
Ứng dụng thị giác máy tính tự động hóa các tác vụ như giám sát tình trạng ruộng đồng, xác định bệnh ở cây trồng và dự đoán thời tiết, cũng như năng suất cây trồng. Giám sát động vật bằng thị giác máy tính cũng là một phần quan trọng trong canh tác thông minh.
7. Những hạn chế của thị giác máy tính
Các hệ thống thị giác máy tính hiện đại có khả năng phân loại hình ảnh và địa phương hóa đối tượng trong ảnh sau khi được đào tạo với các ví dụ cụ thể. Tuy nhiên, ở cốt lõi, các thuật toán học sâu chỉ cung cấp khả năng so sánh các mẫu pixel mà không hiểu được nội dung trong hình ảnh.
Để thấu hiểu mối quan hệ giữa con người và các đối tượng trong dữ liệu hình ảnh, cần phải có sự nhận thức và kiến thức cơ bản. Điều này giải thích tại sao các thuật toán thị giác máy tính có thể phát hiện nội dung khỏa thân, nhưng gặp khó khăn trong việc phân biệt giữa nội dung khỏa thân an toàn (ví dụ như việc cho con bú hoặc nghệ thuật Phục hưng) và nội dung khiêu dâm bị cấm.
Tương tự, các thuật toán này cũng gặp khó khăn trong việc phân biệt giữa thông điệp cực đoan và một bộ phim tài liệu về các nhóm cực đoan!
Con người có khả năng sử dụng kiến thức rộng lớn về thế giới để điền vào những khoảng trống khi đối mặt với tình huống chưa từng gặp trước. Khác với con người, các thuật toán thị giác máy tính cần phải được đào tạo một cách tỉ mỉ về các loại đối tượng mà chúng phải phát hiện.
Khi môi trường của chúng chứa yếu tố không khớp với các ví dụ đã được đào tạo, chúng sẽ hoạt động không chính xác, ví dụ như không phát hiện được các phương tiện khẩn cấp dừng đỗ ở vị trí không bình thường.
Hiện tại, giải pháp duy nhất để giải quyết những vấn đề này là đào tạo các thuật toán trí tuệ nhân tạo với số lượng ví dụ ngày càng tăng, hy vọng rằng dữ liệu bổ sung sẽ phủ sóng mọi tình huống mà trí tuệ nhân tạo sẽ gặp phải. Tuy nhiên, kinh nghiệm đã cho thấy rằng nếu không có nhận thức theo tình huống, luôn sẽ có những khía cạnh không rõ ràng trong những tình huống hiếm gặp làm cho các thuật toán trí tuệ nhân tạo trở nên bối rối.
Nhiều chuyên gia tin rằng chúng ta chỉ có thể đạt được thị giác máy tính thực sự khi phát triển trí thông minh nhân tạo tổng quát (AGI), một dạng trí tuệ nhân tạo có khả năng giải quyết các vấn đề một cách tương tự như con người.
8. So sánh thị giác máy tính Computer Vision và Machine Vision
8.1 Điểm tương đồng
Cả thị giác máy tính và thị giác máy (Machine Vision) đều sử dụng tính năng chụp và phân tích hình ảnh để thực hiện các tác vụ với tốc độ và độ chính xác mà mắt người không thể nào sánh kịp.
Hệ thống thị giác máy tính và thị giác máy thường có các thành phần chung như: camera, ánh sáng để đảm bảo hình ảnh rõ ràng, ống kính, frame grabber, máy tính và phần mềm để phân tích và xử lý hình ảnh.
Ngoài ra, còn sử dụng các thuật toán đối sánh mẫu và thuật toán khác tùy thuộc vào bản chất của hình ảnh cần phân tích.
8.2 Điểm khác biệt
Thị giác máy tính đề cập đến quá trình tự động hóa việc chụp và xử lý hình ảnh, với trọng tâm là phân tích hình ảnh. Mục tiêu của computer vision không chỉ là “nhìn” (chụp) mà còn là xử lý và cung cấp các kết quả hữu ích dựa trên ảnh đã được quan sát.
Thị giác máy trong khi đó đề cập đến việc sử dụng thị giác máy tính trong môi trường công nghiệp, làm cho nó trở thành một danh mục con của thị giác máy tính.
Nếu ta xem thị giác máy là cơ thể của một hệ thống, thì computer vision tương đương với võng mạc, dây thần kinh thị giác, não bộ và hệ thần kinh trung ương. Hệ thống thị giác máy sử dụng máy ảnh để “nhìn” hình ảnh, sau đó các thuật toán thị giác máy tính xử lý và giải thích hình ảnh trước khi chỉ dẫn các thành phần khác trong hệ thống thực hiện hành động dựa trên dữ liệu đó.
Thị giác máy tính có thể được sử dụng độc lập mà không cần là một phần của bất kỳ hệ thống máy nào. Tuy nhiên, hệ thống thị giác máy sẽ không hoạt động nếu không có máy tính và phần mềm xử lý cụ thể ở cốt lõi của nó. Điều này vượt ra ngoài quá trình xử lý hình ảnh. Trong thuật ngữ thị giác máy tính, một hình ảnh thậm chí không nhất thiết phải được lấy từ “camera” hoặc “video”, nó có thể là “hình ảnh” từ cảm biến nhiệt, hồng ngoại, máy dò chuyển động hoặc các nguồn khác.
Thị giác máy tính cũng có thể xử lý hình ảnh 3D và chuyển động. Nó có khả năng phức tạp để phát hiện các loại đặc trưng trong một hình ảnh, phân tích chúng và cung cấp thông tin phong phú về hình ảnh đó.
Tóm lại, thị giác máy tính là một lĩnh vực quan trọng của trí tuệ nhân tạo và công nghệ thông tin, cho phép máy tính nhận biết và hiểu hình ảnh và video. Có nhiều ứng dụng thực tế và tiềm năng trong nhiều lĩnh vực, nhưng còn đối mặt với nhiều thách thức. Để phát triển và nâng cao hiệu suất, chúng ta cần tiếp tục nghiên cứu và phát triển các thuật toán mới. Thị giác máy tính có tiềm năng thay đổi cách chúng ta tương tác với thế giới số hóa và ứng dụng rộng rãi trong tương lai.