Xử lý ảnh và thị giác máy tính

Bách khoa toàn thư mở Wikipedia

Thị giác máy tính (tiếng Anh: 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 và, nói chung là dữ liệu đa chiều từ thế giới thực để cho ra các thông tin số hoặc biểu tượng, ví dụ trong các dạng quyết định.[1][2][3][4] Việc phát triển lĩnh vực này có bối cảnh từ việc sao chép các khả năng thị giác con người bởi sự nhận diện và hiểu biết một hình ảnh mang tính điện tử.[5] Sự nhận diện hình ảnh có thể xem là việc giải quyết vấn đề của các biểu tượng thông tin từ dữ liệu hình ảnh qua cách dùng các mô hình được xây dựng với sự giúp đỡ của các ngành lý thuyết học, thống kê, vật lý và hình học.[6] Thị giác máy tính cũng được mô tả là sự tổng thể của một dải rộng các quá trình tự động và tích hợp và các thể hiện cho các nhận thức thị giác.[7][8]

Thị giác máy tính là một môn học khoa học liên quan đến lý thuyết đằng sau các hệ thống nhân tạo có trích xuất các thông tin từ các hình ảnh. Dữ liệu hình ảnh có thể nhiều dạng, chẳng hạn như chuỗi video, các cảnh từ đa camera, hay dữ liệu đa chiều từ máy quét y học. Thị giác máy tính còn là một môn học kỹ thuật, trong đó tìm kiếm việc áp dụng các mô hình và các lý thuyết cho việc xây dựng các hệ thống thị giác máy tính.

Các lĩnh vực con của thị giác máy tính bao gồm tái cấu trúc cảnh, dò tìm sự kiện, theo dõi video, nhận diện bố cục đối tượng, học, chỉ mục, đánh giá chuyển động và phục hồi ảnh.

Các lĩnh vực liên quan[sửa | sửa mã nguồn]

Các lĩnh vực liên quan của trí tuệ nhân tạo giải quyết các vấn đề như lên kế hoạch tự động hay các suy tính cho các hệ thống robot để dò đường ở một môi trường nào đó. Sự hiểu biết chi tiết của các môi trường này được yêu cầu để dò đường thông qua chúng. Thông tin về môi trường có thể được cung cấp bởi một hệ thống thị giác máy tính, hoạt động như các cảm biến và cung cấp thông tin mức độ cao về môi trường và robot.

Trí tuệ nhân tạo và thị giác máy tính chia sẻ các chủ đề như nhận dạng mẫu và các kỹ thuật học. Kết quả là thị giác máy tính đôi khi được xem là một phần của lĩnh vực trí tuệ nhân tạo hay lĩnh vực khoa học máy tính nói chung.

Thị giác máy tính theo một cách nào đó là sự đảo ngược của đồ họa máy tính. Trong khi đồ họa máy tính sản sinh hình ảnh từ mô hình 3D, thì thị giác máy tính lại thường sản sinh ra các mô hình 3D từ dữ liệu hình ảnh. Có một khuynh hướng kết hợp 2 môn học này, ví dụ như khám phá trong tăng cường thực tế.

Xem thêm[sửa | sửa mã nguồn]

  • Mạng nơ-ron nhân tạo

Tham khảo[sửa | sửa mã nguồn]

  1. ^ Reinhard Klette (2014). Concise Computer Vision. Springer. ISBN 978-1-4471-6320-6.
  2. ^ Linda G. Shapiro and George C. Stockman (2001). Computer Vision. Prentice Hall. ISBN 0-13-030796-3.
  3. ^ Tim Morris (2004). Computer Vision and Image Processing. Palgrave Macmillan. ISBN 0-333-99451-5.
  4. ^ Bernd Jähne and Horst Haußecker (2000). Computer Vision and Applications, A Guide for Students and Practitioners. Academic Press. ISBN 0-13-085198-1.
  5. ^ Milan Sonka, Vaclav Hlavac and Roger Boyle (2008). Image Processing, Analysis, and Machine Vision. Thomson. ISBN 0-495-08252-X.
  6. ^ David A. Forsyth and Jean Ponce (2003). Computer Vision, A Modern Approach. Prentice Hall. ISBN 0-13-085198-1.
  7. ^ Dana H. Ballard and Christopher M. Brown (1982). Computer Vision. Prentice Hall. ISBN 0-13-165316-4.
  8. ^ Barghout, Lauren, and Jacob Sheynin. "Real-world scene perception and perceptual organization: Lessons from Computer Vision." Journal of Vision 13.9 (2013): 709-709.

Liên kết ngoài[sửa | sửa mã nguồn]

  • USC Iris computer vision conference list
  • Computer vision papers on the web A complete list of papers of the most relevant computer vision conferences.
  • Computer Vision Online News, source code, datasets and job offers related to computer vision.
  • Keith Price's Annotated Computer Vision Bibliography
  • CVonline Bob Fisher's Compendium of Computer Vision.
  • The British Machine Vision Association Supporting computer vision research within the UK via the BMVC and MIUA conferences, Annals of the BMVA open-source journal, BMVA Summer School and one-day meetings

Một trong những công nghệ tiên tiến liên quan đến AI là thị giác máy tính. Nhờ những tiến bộ trong trí tuệ nhân tạo và những đổi mới trong học sâu và mạng nơ-ron, lĩnh vực này đã có thể có những bước tiến nhảy vọt trong những năm gần đây và có thể vượt qua con người trong một số nhiệm vụ liên quan đến phát hiện và ghi nhận đối tượng.

Computer Vision hay còn gọi là Thị giác máy tính là lĩnh vực khoa học máy tính tập trung vào việc tái tạo các phần phức tạp của hệ thống thị giác con người và cho phép máy tính xác định và xử lý các đối tượng trong hình ảnh và video giống như cách con người làm.

Một trong những yếu tố thúc đẩy sự phát triển của thị giác máy tính là lượng dữ liệu chúng ta tạo ra ngày nay được sử dụng để đào tạo và làm cho thị giác máy tính tốt hơn.

Xử lý ảnh và thị giác máy tính

Thị giác máy tính ngày càng trở nên phổ biến trong thời đại 4.0

Cùng với lượng dữ liệu trực quan khổng lồ (hơn 3 tỷ hình ảnh được chia sẻ trực tuyến mỗi ngày), lĩnh vực thị giác máy tính phát triển với phần cứng và thuật toán mới, tỷ lệ chính xác để nhận dạng đối tượng cũng tăng theo. Trong vòng chưa đầy một thập kỷ, các hệ thống ngày nay đã đạt đến độ chính xác 99% từ 50% và chính xác hơn con người khi phản ứng nhanh với đầu vào trực quan.

Các thí nghiệm ban đầu về thị giác máy tính bắt đầu vào những năm 1950 và nó lần đầu tiên được đưa vào sử dụng thương mại để phân biệt giữa văn bản đánh máy và viết tay vào những năm 1970, ngày nay các ứng dụng cho thị giác máy tính đã phát triển theo cấp số nhân.

Thị giác máy tính hoạt động như thế nào?

Một trong những câu hỏi thường được đặt ra trong cả Khoa học thần kinh và Học máy là: Bộ não của chúng ta hoạt động chính xác như thế nào và làm thế nào chúng ta có thể ước tính điều đó bằng các thuật toán của riêng mình? Thực tế là có rất ít lý thuyết toàn diện về tính toán của não; vì vậy, mặc dù thực tế là Mạng thần kinh nhân tạo được cho là “bắt chước cách thức hoạt động của não”, nhưng không ai dám chắc điều đó có thực sự đúng hay không.

Nghịch lý tương tự cũng đúng với thị giác máy tính - vì chúng ta không quyết định cách não và mắt xử lý hình ảnh, nên rất khó để nói các thuật toán được sử dụng trong sản xuất gần đúng với các quá trình tinh thần bên trong của chúng ta như thế nào.

Ở một mức độ nhất định, Thị giác máy tính là thuộc về nhận dạng mẫu. Vì vậy, một cách để “huấn luyện” máy tính hiểu dữ liệu trực quan là cung cấp cho nó hàng nghìn, hàng triệu hình ảnh nếu có thể đã được “đánh dấu” và sau đó áp dụng các kỹ thuật phần mềm hoặc thuật toán khác nhau cho phép máy tính tìm kiếm trong tất cả các phần tử có liên quan đến các mẫu được đánh dấu đó. Đây là lúc các kĩ thuật AI, cụ thể là machine learning hay deep learning được áp dụng để phân loại đối tượng.  Để làm được điều này, trước đó mô hình (model) AI đã được cho học ảnh mẫu, thế nào là người, thế nào là xe hơi, thế nào là con mèo… Khi gặp một ảnh mới cần dự đoán, nó sẽ lấy những gì từng được học ra để đoán. 

Ví dụ: Nếu bạn cho máy tính nhận biết một triệu hình ảnh con mèo, tất cả chúng sẽ phải tuân theo các thuật toán cho phép chúng phân tích màu sắc trong ảnh, hình dạng, khoảng cách giữa các hình... để nó xác định một hồ sơ về “mèo” có nghĩa là gì. Khi quá trình hoàn tất, máy tính (về lý thuyết) sẽ có thể sử dụng trải nghiệm của mình nếu được cung cấp các hình ảnh không được gắn nhãn khác để tìm những hình ảnh của mèo.

Xử lý ảnh và thị giác máy tính

Dưới đây là một minh họa đơn giản về bộ đệm hình ảnh thang độ xám lưu trữ hình ảnh. Độ sáng của mỗi pixel được biểu thị bằng một số 8 bit, có phạm vi từ 0 (đen) đến 255 (trắng):

Xử lý ảnh và thị giác máy tính

Bộ đệm hình ảnh thang độ xám lưu trữ hình ảnh

Trên thực tế, các giá trị pixel hầu như được lưu trữ phổ biến, ở cấp độ phần cứng, trong một mảng một chiều. Ví dụ: dữ liệu từ hình ảnh trên được lưu trữ theo cách tương tự như danh sách dài các ký tự không dấu này:

Xử lý ảnh và thị giác máy tính

Bây giờ bạn hãy tưởng tượng bức tranh trên có màu. Mọi thứ bắt đầu trở nên phức tạp hơn. Máy tính thường đọc màu dưới dạng một chuỗi 3 giá trị - đỏ, lục và lam (RGB) - trên cùng một thang 0–255. Bây giờ, mỗi pixel thực sự có 3 giá trị để máy tính lưu trữ ngoài vị trí của nó. Nếu chúng ta tô màu cho bức tranh đó sẽ dẫn đến giá trị 12 x 16 x 3 hoặc 576 số.

Đó là yêu cầu rất nhiều bộ nhớ cho một hình ảnh và rất nhiều pixel để một thuật toán lặp lại. Tuy nhiên, để đào tạo một mô hình với độ chính xác có ý nghĩa, đặc biệt là khi bạn đang nói về Học sâu, bạn thường cần hàng chục nghìn hình ảnh và càng nhiều hình ảnh càng tốt.

Sự phát triển của thị giác máy tính

Trước khi Học sâu ra đời, các tác vụ mà thị giác máy tính có thể thực hiện rất hạn chế và đòi hỏi nhiều nỗ lực và mã hóa thủ công của các nhà phát triển và người vận hành. Ví dụ: nếu bạn muốn thực hiện nhận dạng khuôn mặt, bạn sẽ phải thực hiện các bước sau:

  • Tạo cơ sở dữ liệu: Bạn phải chụp từng ảnh của tất cả các đối tượng bạn muốn theo dõi ở một định dạng cụ thể.
  • Chú thích hình ảnh: Sau đó, đối với mỗi hình ảnh riêng lẻ, bạn sẽ phải nhập một số điểm dữ liệu chính, chẳng hạn như khoảng cách giữa hai mắt, chiều rộng của sống mũi, khoảng cách giữa môi trên và mũi và hàng chục phép đo khác xác định các đặc điểm riêng biệt của mỗi người.
  • Chụp ảnh mới: Tiếp theo, bạn sẽ phải chụp ảnh mới, kể cả ảnh hay nội dung video. Và sau đó bạn phải thực hiện lại quá trình đo lường, đánh dấu các điểm chính trên hình ảnh. Bạn cũng phải tính đến góc ảnh được chụp.

Sau tất cả công việc thủ công này, ứng dụng cuối cùng sẽ có thể so sánh các phép đo trong hình ảnh mới với các phép đo được lưu trữ trong cơ sở dữ liệu của nó và cho bạn biết liệu nó có tương ứng với bất kỳ cấu hình nào mà nó đang theo dõi hay không. Trên thực tế, hầu hết công việc được thực hiện thủ công và biên độ lỗi vẫn còn lớn.

Học máy cung cấp một cách tiếp cận khác để giải quyết các vấn đề về thị giác máy tính. Với Học máy, các nhà phát triển không còn cần phải viết mã thủ công từng quy tắc vào các ứng dụng thị giác của họ. Thay vào đó, họ lập trình “các tính năng”, các ứng dụng nhỏ hơn có thể phát hiện các mẫu cụ thể trong hình ảnh. Sau đó, họ sử dụng một thuật toán học thống kê như hồi quy tuyến tính, hồi quy logistic, hoặc máy vectơ hỗ trợ (SVM) để phát hiện các mẫu, phân loại hình ảnh và phát hiện các đối tượng trong đó.

Học sâu cung cấp một cách tiếp cận cơ bản khác để thực hiện học máy. Học sâu dựa trên mạng nơ-ron, một chức năng có mục đích chung có thể giải quyết bất kỳ vấn đề nào có thể biểu diễn thông qua các ví dụ. Khi bạn cung cấp một mạng nơ-ron có nhiều ví dụ được gắn nhãn về một loại dữ liệu cụ thể, nó sẽ có thể trích xuất các mẫu chung giữa các ví dụ đó và biến đổi nó thành một phương trình toán học giúp phân loại các phần thông tin trong tương lai.

Ví dụ: việc tạo một ứng dụng nhận dạng khuôn mặt với học sâu chỉ yêu cầu bạn phát triển hoặc chọn một thuật toán được cấu trúc sẵn và đào tạo nó với các ví dụ về khuôn mặt của những người mà nó phải phát hiện.

Học sâu là một phương pháp rất hiệu quả để thực hiện thị giác máy tính. Trong hầu hết các trường hợp, việc tạo ra một thuật toán học sâu giúp thu thập một lượng lớn dữ liệu đào tạo được gắn nhãn và điều chỉnh các tham số như loại và số lớp của mạng nơ-ron... So với các loại học máy trước đây, học sâu dễ phát triển và triển khai hơn.

Hiện nay, thị giác máy tính được ứng dụng triển khai trong phát hiện ung thư, ô tô tự lái và nhận dạng khuôn mặt đều sử dụng học sâu. Học sâu và mạng nơ-ron sâu đã chuyển từ lĩnh vực khái niệm sang các ứng dụng thực tế nhờ tính khả dụng và những tiến bộ trong tài nguyên phần cứng và điện toán đám mây.

>> Bạn có thể tham khảo một ứng dụng NEXCOM giới thiệu trong “Câu chuyện ứng dụng” này nhé.

Xử lý ảnh và thị giác máy tính

Light Rail Connected Driver Advisory System (C-DAS)

Ứng dụng của Thị giác máy tính

Nhiều ứng dụng bạn sử dụng hàng ngày sử dụng công nghệ thị giác máy tính. Google sử dụng nó để giúp bạn tìm kiếm đồ vật và hình ảnh trong thư viện Hình ảnh của bạn.

Các công ty khác sử dụng thị giác máy tính để giúp nâng cao hình ảnh. Một ví dụ là Adobe Lightroom CC, sử dụng thuật toán máy học để nâng cao chi tiết của hình ảnh được thu phóng. Tính năng phóng to truyền thống sử dụng kỹ thuật nội suy để tô màu các khu vực được phóng to, nhưng Lightroom sử dụng thị giác máy tính để phát hiện các đối tượng trong hình ảnh và làm sắc nét các đối tượng của chúng khi phóng to.

Một lĩnh vực đã có sự tiến bộ vượt bậc nhờ những tiến bộ trong thị giác máy tính là nhận dạng khuôn mặt. Apple sử dụng thuật toán nhận dạng khuôn mặt để mở khóa iPhone. Facebook sử dụng tính năng nhận dạng khuôn mặt để phát hiện người dùng trong các bức ảnh bạn đăng trực tuyến.

AmazonGo - cửa hàng vật lý  không nhân viên của Amazon, dùng thị máy tính để biết người dùng đi vào mua gì, hết bao nhiêu tiền, và bạn có thể lựa những món mình cần rồi đi thẳng về nhà mà không cần dừng lại ở quầy thu ngân. Camera và các cảm biến khác trong toàn bộ cửa hàng giám sát những sản phẩm bạn lấy và tự động tính phí khi bạn rời đi.

Xử lý ảnh và thị giác máy tính

Người mua hàng bước vào, quét ứng dụng Amazon trên một cửa quay và mua sản phẩm mà không phải chờ đợi trong hàng thanh toán