Có nhiều bạn yêu thích ngành thị giác máy tính nhưng thắc mắc cần gì để theo đuổi. Hôm nay mình sẽ tư vấn nghề nghiệp Thị giác máy tính dựa trên kinh nghiệm & góc nhìn thị trường của mình. Bài viết này bao hàm tất cả những ai có làm việc liên quan TGMT.
Xác định mục đích
Tùy theo mục đích của bạn làm gì thì xác định cách tiếp cận hiệu quả nhất. Đặt việc học cũng như kinh doanh: đầu tư công sức, tiền bạc, thời gian để nhận lại kiến thức, bằng cấp. Như vậy, xác định đích đến & cách đi phù hợp với bản thân trước.
Các mục đích thường gặp gồm:
– Làm đồ án, luận văn ở bậc đại học, cao học
– Làm sản phẩm nhỏ phục vụ nhu cầu bản thân
– Đi làm cho các cty lớn chuyên về AI, Computer Vision
– Mở cty chuyên về Computer Vision
…
Như vậy, nếu làm quy mô nhỏ phải xác định quy mô của sản phẩm, lợi nhuận sản phẩm đem lại là gì. Nếu học đại học, cao học thì bắt buộc phải nghiên cứu, tìm hiểu để còn biết đường bảo vệ luận văn.
Nếu làm sản phẩm để sử dụng hoặc bán ở quy mô nhỏ thì cần tính toán công sức học, nghiên cứu có lời không? Hay là thuê 1 người có chuyên môn sẽ có lợi hơn, nhanh chóng & rẻ hơn. Bởi vì có rất nhiều người tự nghiên cứu rồi làm sản phẩm đã thất bại. Có nhiều group sẵn sàng hỗ trợ các bạn để hoàn thành sản phẩm như group thị giác máy tính
Nếu làm quy mô lớn cần xác định thị trường, sản phẩm mình sẽ làm. Tuy nhiên đến mức này không cần nghe mình tư vấn đâu.
Chọn library
Theo cách phân chia của mình về mức độ nắm công nghệ thì có 3 bậc:
– Sử dụng được công nghệ (VD: sử dụng được các framework, library)
– Chỉnh sửa được công nghệ (VD: sửa các function của library cho phù hợp với yêu cầu bản thân)
– Chế tạo được công nghệ (VD: viết library mới)
Hiện nay ở VN chúng ta chỉ dừng ở mức 1 & 2, còn chế tạo được công nghệ còn xa vời. Do đó tập trung bàn luận vào mức 1 & 2.
Trong thời buổi Opensource là xu thế như hiện nay kéo theo các cty lớn cũng Opensource. Từ đó các ngôn ngữ mới, framework mới ra đời liên tục. Do đó việc chăm chăm học 1 framework là điều không nên mà nên nhanh nhạy với xu thế. Mặc dù master 1 ngôn ngữ hay 1 framework sẽ là lợi thế rất mạnh. Do đó tùy theo khả năng của bản thân, mục đích mà chọn cách học phù hợp.
Các yếu tố chính ảnh hưởng đến cách chọn library hay ngôn ngữ lập trình:
– Khả năng ứng dụng, chức năng, tốc độ
– Cộng đồng hỗ trợ, cty hoặc tổ chức nào đứng sau hậu thuẫn
– Thị trường đã ứng dụng nhiều hay ít
Như vậy, có thể thấy OpenCV, TensorFlow, Keras sẽ là những library còn tồn tại lâu dài, các bạn có thể đầu tư công sức vào đó.
Cách học
Để nắm chắc, hiểu sâu cần phải kết hợp cả lý thuyết & thực hành. Mình khuyên các bạn thực hành trước rồi học lý thuyết sau. Lý do là:
– Hiện tại có rất nhiều library, thuật toán giải quyết được như cầu của bạn. Có rất nhiều điều khác nhau giữa các library: độ chính xác, tốc độ thực thi, ngôn ngữ, platform,… Do đó cứ test qua các thuật toán trước rồi chọn cái phù hợp.
– Sau đó, khi đã đảm bảo được rằng library chạy được, đúng yêu cầu thì mới tìm hiểu sâu bên trong các tham số. Vì thông thường các tham số đã được optimize rồi, bạn chỉ tuning lại 1 chút thôi.
Tùy theo con đường bạn chọn là làm Product hay Outsource mà chọn cách học phù hợp. Outsource chỉ cần làm cho chạy được là được, còn làm product phải đảm bảo chạy nhanh, đúng. Do đó đây cũng là 1 yếu tố linh động theo nhu cầu.
Về ngôn ngữ lập trình thì với Machine Learning thì Python là số 1, C++ là số 2. Tuy nhiên ngôi vị số 2 của C++ đang dần lung lay bởi các ngôn ngữ mới đang được phát triển.
Con đường đến với Computer Vision của bản thân
Mình cũng giới thiệu về con đường của mình để các bạn tham khảo khi đi chung con đường với mình.
– Đầu tiên làm luận văn, thấy được Computer Vision có nhiều ứng dụng & khá thú vị
– Đi làm cho 1 cty chuyên làm C++, từ đó nắm được cách sử dụng OpenCV & tùy biến cho phù hợp
– Mình theo Computer Vision vào lúc các library Opensource nở rộ, nhờ đó có thể sử dụng để làm thành sản phẩm
– Phần cứng (PC, camera,…) dễ mua, giá cả hợp lý dễ học tập nghiên cứu & dễ bán
Nhờ đó mình mới có thể theo được Computer Vision.
Kết luận
Có quá nhiều cách học, nhiều library, framework,… nên các bạn cần xác định cách học cho phù hợp. Không có 1 cách nào là vạn năng, phù hợp cho tất cả mọi người
Anh ơi cho em hỏi anh từng làm ở công ty nào về C++ đấy ạ?
Câu hỏi về cá nhân thì inbox mình nhé, facebook ở dưới footer