Lập trình Frontend, Backend và Computer vision có khác nhau không ạ, nếu có thì khác thế nào ạ?

  1. Công nghệ thông tin

Vốn là dân không chuyên, đây là một vấn đề mà em rất tò mò. Em luôn quen miệng gọi tất cả các anh chị làm trong lĩnh vực "hơi hơi" liên quan đến máy tính và lập trình là "dân viết code" hoặc "dân lập trình". Nhưng em tin chắc là có những sự khác biệt nhất định giữa các ngạch khoa học máy tính khác nhau.

Vậy anh có thể giải thích giúp em sự khác biệt giữa việc lập trình của computer vision so với lập trình Frontend (theo em biết là các ngôn ngữ như HTML, CSS, Javascript...) và Backend (Python???) không ạ? Cảm ơn anh. 

Từ khóa: 

công nghệ thông tin

Computer Vision là một ngành/lĩnh vực giúp máy tính có khả năng hiểu nội dung của các hình ảnh, video giống như con người và đưa ra các phản ứng cần thiết.
Để dễ hình dung thì mình sẽ lấy một ví dụ về xe tự lái. Bên cạnh sử dụng các cảm biến, việc xử lý video thu được từ camera đóng vai trò quyết định để ra được quyết định dừng lại/đi tiếp/rẻ trái/... Vì quá trình này giúp ta có thể xác định được vạch kẻ đường, tín hiệu đèn giao thông, các phương tiện khác,... Đây cũng chính là một bài toán lớn về nhận diện đối tượng trong Computer Vision đến nay vẫn chưa có giải phát đủ mạnh để áp dụng rộng rãi.
Để giải quyết các bài toán Computer Vision thì ta có thể sử dụng các kỹ thuật thuần xử lý ảnh hay ứng dụng các kỹ thuật Machine Learning phù hợp.
Để lập trình được thì bạn cần phải có kiến thức căn bản về các giải thuật trong Computer Vision, thư viện OpenCV, ngôn ngữ Python, framework như Tensorflow/Pytorch/...và nếu biết hoặc am hiểu về Toán một chút cũng là lợi thế.
Không kể sự khác nhau về ngôn ngữ lập trình, framework sử dụng thì theo mình điểm khác nhau lớn nhất đó là bài toán mà mỗi lĩnh vực giải quyết. Ngôn ngữ lập trình nào cũng dùng được, vấn đề là cái nào thuận tiện cho từng mục đích mà thôi. Đối với một lập trình viên Front-End thì cố gắng giải quyết các vấn đề về giao diện (UI/UX). Từ việc thiết kế cho đến việc tối ưu giao diện sao cho đẹp, hợp lý, mượt mà, ổn định. Đối với các lập trình viên Back-End thì giải quyết các vấn đề về database, server, security,... làm sao để hệ thống có thể hoạt động ổn định nhất. Giữa 2 phần kể trên Computer Vision là một core engine để giải quyết các bài toán về hình ảnh/video. Được tích hợp vào hệ thống và sẽ được đảm bảo tính ổn định bởi Back-End và hiển thị lên giao diện bởi Frond-End (nếu cần).

Thân

Trả lời

Computer Vision là một ngành/lĩnh vực giúp máy tính có khả năng hiểu nội dung của các hình ảnh, video giống như con người và đưa ra các phản ứng cần thiết.
Để dễ hình dung thì mình sẽ lấy một ví dụ về xe tự lái. Bên cạnh sử dụng các cảm biến, việc xử lý video thu được từ camera đóng vai trò quyết định để ra được quyết định dừng lại/đi tiếp/rẻ trái/... Vì quá trình này giúp ta có thể xác định được vạch kẻ đường, tín hiệu đèn giao thông, các phương tiện khác,... Đây cũng chính là một bài toán lớn về nhận diện đối tượng trong Computer Vision đến nay vẫn chưa có giải phát đủ mạnh để áp dụng rộng rãi.
Để giải quyết các bài toán Computer Vision thì ta có thể sử dụng các kỹ thuật thuần xử lý ảnh hay ứng dụng các kỹ thuật Machine Learning phù hợp.
Để lập trình được thì bạn cần phải có kiến thức căn bản về các giải thuật trong Computer Vision, thư viện OpenCV, ngôn ngữ Python, framework như Tensorflow/Pytorch/...và nếu biết hoặc am hiểu về Toán một chút cũng là lợi thế.
Không kể sự khác nhau về ngôn ngữ lập trình, framework sử dụng thì theo mình điểm khác nhau lớn nhất đó là bài toán mà mỗi lĩnh vực giải quyết. Ngôn ngữ lập trình nào cũng dùng được, vấn đề là cái nào thuận tiện cho từng mục đích mà thôi. Đối với một lập trình viên Front-End thì cố gắng giải quyết các vấn đề về giao diện (UI/UX). Từ việc thiết kế cho đến việc tối ưu giao diện sao cho đẹp, hợp lý, mượt mà, ổn định. Đối với các lập trình viên Back-End thì giải quyết các vấn đề về database, server, security,... làm sao để hệ thống có thể hoạt động ổn định nhất. Giữa 2 phần kể trên Computer Vision là một core engine để giải quyết các bài toán về hình ảnh/video. Được tích hợp vào hệ thống và sẽ được đảm bảo tính ổn định bởi Back-End và hiển thị lên giao diện bởi Frond-End (nếu cần).

Thân