Trang chủ Liên hệ

So sánh Python và C++ trong việc lập trình ứng dụng Computer Vision

CÔNG TY TNHH THIẾT BỊ ĐO LƯỜNG VÀ ĐIỀU KHIỂN 05/02/2024

Có nhiều ngôn ngữ lập trình có thể lập trình được ứng dụng nhận diện hình ảnh, tuy nhiên Python và C++ luôn là 2 ngôn ngữ phổ biến nhất. Bài viết này so sánh 2 ngôn ngữ với nhau để người mới có thể chọn lựa 1 trong 2 nếu như thời gian không có nhiều.

So sánh Python và C++

Tốc độ

Hầu hết trường hợp thì C++ nhanh hơn Python, các phép đo đạc đều cho thấy C++ nhanh hơn. Tuy nhiên vẫn phụ thuộc vào cách setup/config project thì C++ mới có thể nhanh hơn Python.

Ảnh bên dưới là config mode Release của dự án viết bằng Visual C++, có nhiều tùy chọn khác nhau về speed. Nếu chọn Disabled thì bạn có thể debug, chọn tốc độ thì không, đó là lý do có mode Debug & Release để dễ dàng chuyển qua lại.

Dễ học – dễ sử dụng

Python dễ sử dụng hơn C++ nhiều lần, trong giới lập trình thì C++ là 1 ngôn ngữ khó, chỉ sử dụng với các dự án lớn, tính toán nhiều.

Thư viện bổ trợ

Python có nhiều thư viện viết sẵn cho các nhu cầu phổ thông, gọi ra là sử dụng, còn C++ thì đến đọc ghi file text cũng phải viết dài dòng.

Cộng đồng hỗ trợ

Do Python có nhiều người dùng nên các vấn đề với Python bạn dễ tìm được người hướng dẫn hơn. Hầu hết tutorial đều viết bằng Python.

Lập trình giao diện người dùng (GUI)

Cả 2 ngôn ngữ đều yếu trong việc lập trình giao diện. Tuy nhiên có 1 giải pháp là dùng C# tạo UI, sau đó gọi function C++ để xử lý ảnh, đây là cách mà nhiều người/công ty sử dụng, trong đó có VisCom Solution

Python thì vẫn có cách tạo giao diện, tuy nhiên giao diện cơ bản, có vài cái nút, textbox,… thì được. KHÔNG làm được GUI phức tạp và đẹp như C# được, ngoài ra hệ thống event của C# cover hết tất cả action của người dùng. Bên dưới là VD về customized controls của C#

Đây là lý do chính vì sao các ứng dụng đóng gói hoàn chỉnh được ưu tiên viết bằng C++: dễ đóng gói & tạo giao diện bằng C#.

Đóng gói

Cả 2 ngôn ngữ đều có thể giấu source code và chuyển giao file binary cho khách hàng:

Code mẫu

Hầu hết code về Computer Vision, Machine Learning/Deep Learning hiện nay đều viết bằng Python. Cho dù nhu cầu của bạn là đọc biển số, OCR, nhận diện khuôn mặt,… đều có example viết bằng Python.

Phần cứng

Python và C++ đều có thể giao tiếp tốt với phần cứng, đây là 1 lĩnh vực mà cả 2 ngang tài ngang sức:

Triển khai

Python dễ dàng chạy trên máy khác, chỉ cần gửi file *.py là được. Còn C++ thì phải setup đúng và kỳ công mới có thể chạy tốt trên máy khác.

Các chức năng khác

Tổng kết

Nếu bạn là sinh viên làm đồ án, luận văn trong 1 thời gian ngắn thì nên học Python: dễ dàng tìm tài liệu hướng dẫn, tìm source code và triển khai nhanh.

Nếu bạn muốn viết ứng dụng hoàn chỉnh, đầy đủ chức năng thì nên học C++. Thực tế là học được C++ thì học Python rất dễ dàng.

Còn bạn muốn theo chuyên ngành Computer Vision thì bạn phải học đầy đủ Python, C++, C# và nhiều ngôn ngữ lập trình khác nữa. Ví dụ

Bài viết liên quan