Bỏ để qua phần nội dung

Hiểu các bước chính trong dự án thị giác máy tính

Giới thiệu

Thị giác máy tính là một lĩnh vực con của trí tuệ nhân tạo (AI) giúp máy tính nhìn và hiểu thế giới như con người. Nó xử lý và phân tích hình ảnh hoặc video để trích xuất thông tin, nhận ra các mẫu và đưa ra quyết định dựa trên dữ liệu đó.

Các kỹ thuật thị giác máy tính như phát hiện đối tượng, phân loại hình ảnhphân đoạn phiên bản có thể được áp dụng trong nhiều ngành khác nhau, từ lái xe tự động đến hình ảnh y tế, để có được những hiểu biết có giá trị.

Tổng quan về kỹ thuật thị giác máy tính

Working on your own computer vision projects is a great way to understand and learn more about computer vision. However, a computer vision project can consist of many steps, and it might seem confusing at first. By the end of this guide, you'll be familiar with the steps involved in a computer vision project. We'll walk through everything from the beginning to the end of a project, explaining why each part is important. Let's get started and make your computer vision project a success!

Tổng quan về một dự án thị giác máy tính

Before discussing the details of each step involved in a computer vision project, let's look at the overall process. If you started a computer vision project today, you'd take the following steps:

  • Your first priority would be to understand your project's requirements.
  • Then, you'd collect and accurately label the images that will help train your model.
  • Next, you'd clean your data and apply augmentation techniques to prepare it for model training.
  • After model training, you'd thoroughly test and evaluate your model to make sure it performs consistently under different conditions.
  • Finally, you'd deploy your model into the real world and update it based on new insights and feedback.

Tổng quan về các bước của dự án thị giác máy tính

Bây giờ chúng ta đã biết những gì mong đợi, hãy đi sâu vào các bước và đưa dự án của bạn tiến lên phía trước.

Step 1: Defining Your Project's Goals

The first step in any computer vision project is clearly defining the problem you're trying to solve. Knowing the end goal helps you start to build a solution. This is especially true when it comes to computer vision because your project's objective will directly affect which computer vision task you need to focus on.

Dưới đây là một số ví dụ về mục tiêu dự án và các nhiệm vụ thị giác máy tính có thể được sử dụng để đạt được các mục tiêu này:

  • Mục tiêu: Phát triển một hệ thống có thể giám sát và quản lý lưu lượng của các loại phương tiện khác nhau trên đường cao tốc, cải thiện quản lý và an toàn giao thông.

    • Nhiệm vụ thị giác máy tính: Phát hiện đối tượng là lý tưởng để giám sát giao thông vì nó định vị và xác định hiệu quả nhiều phương tiện. Nó ít đòi hỏi tính toán hơn so với phân đoạn hình ảnh, cung cấp chi tiết không cần thiết cho nhiệm vụ này, đảm bảo phân tích nhanh hơn, thời gian thực.
  • Mục tiêu: Để phát triển một công cụ hỗ trợ các bác sĩ X quang bằng cách cung cấp các phác thảo chính xác, cấp độ pixel của các khối u trong quét hình ảnh y tế.

    • Nhiệm vụ thị giác máy tính: Phân đoạn hình ảnh phù hợp cho hình ảnh y tế vì nó cung cấp ranh giới chính xác và chi tiết của các khối u rất quan trọng để đánh giá kích thước, hình dạng và lập kế hoạch điều trị.
  • Mục tiêu: Để tạo ra một hệ thống kỹ thuật số phân loại các tài liệu khác nhau (ví dụ: hóa đơn, biên lai, giấy tờ pháp lý) để cải thiện hiệu quả tổ chức và truy xuất tài liệu.

    • Nhiệm vụ thị giác máy tính: Phân loại hình ảnh là lý tưởng ở đây vì nó xử lý một tài liệu tại một thời điểm, mà không cần phải xem xét vị trí của tài liệu trong hình ảnh. Cách tiếp cận này đơn giản hóa và đẩy nhanh quá trình phân loại.

Bước 1.5: Lựa chọn mô hình và phương pháp đào tạo phù hợp

Sau khi hiểu mục tiêu dự án và các nhiệm vụ thị giác máy tính phù hợp, một phần thiết yếu của việc xác định mục tiêu dự án là lựa chọn mô hình và phương pháp đào tạo phù hợp.

Tùy thuộc vào mục tiêu, bạn có thể chọn mô hình trước hoặc sau khi xem dữ liệu nào bạn có thể thu thập trong Bước 2. Ví dụ: giả sử dự án của bạn phụ thuộc nhiều vào tính khả dụng của các loại dữ liệu cụ thể. Trong trường hợp đó, có thể thực tế hơn để thu thập và phân tích dữ liệu trước khi chọn một mô hình. Mặt khác, nếu bạn hiểu rõ về các yêu cầu của mô hình, bạn có thể chọn mô hình trước và sau đó thu thập dữ liệu phù hợp với các thông số kỹ thuật đó.

Choosing between training from scratch or using transfer learning affects how you prepare your data. Training from scratch requires a diverse dataset to build the model's understanding from the ground up. Transfer learning, on the other hand, allows you to use a pre-trained model and adapt it with a smaller, more specific dataset. Also, choosing a specific model to train will determine how you need to prepare your data, such as resizing images or adding annotations, according to the model's specific requirements.

Đào tạo từ đầu so với sử dụng học chuyển tiếp

Note: When choosing a model, consider its deployment to ensure compatibility and performance. For example, lightweight models are ideal for edge computing due to their efficiency on resource-constrained devices. To learn more about the key points related to defining your project, read our guide on defining your project's goals and selecting the right model.

Trước khi bắt đầu công việc thực hành của một dự án thị giác máy tính, điều quan trọng là phải hiểu rõ về những chi tiết này. Kiểm tra kỹ xem bạn đã xem xét những điều sau đây chưa trước khi chuyển sang Bước 2:

  • Clearly define the problem you're trying to solve.
  • Xác định mục tiêu cuối cùng của dự án của bạn.
  • Xác định nhiệm vụ thị giác máy tính cụ thể cần thiết (ví dụ: phát hiện đối tượng, phân loại hình ảnh, phân đoạn hình ảnh).
  • Quyết định xem nên đào tạo một mô hình từ đầu hay sử dụng học tập chuyển giao.
  • Chọn mô hình thích hợp cho nhiệm vụ và nhu cầu triển khai của bạn.

Bước 2: Thu thập dữ liệu và chú thích dữ liệu

Chất lượng của các mô hình thị giác máy tính của bạn phụ thuộc vào chất lượng của tập dữ liệu của bạn. Bạn có thể thu thập hình ảnh từ internet, chụp ảnh của riêng bạn hoặc sử dụng các bộ dữ liệu có sẵn. Dưới đây là một số tài nguyên tuyệt vời để tải xuống bộ dữ liệu chất lượng cao: Công cụ tìm kiếm tập dữ liệu của Google, Kho lưu trữ máy học UC IrvineBộ dữ liệu Kaggle.

Một số thư viện, như Ultralytics, cung cấp hỗ trợ tích hợp cho các bộ dữ liệu khác nhau, giúp bắt đầu với dữ liệu chất lượng cao dễ dàng hơn. Các thư viện này thường bao gồm các tiện ích để sử dụng các bộ dữ liệu phổ biến một cách liền mạch, có thể giúp bạn tiết kiệm rất nhiều thời gian và công sức trong giai đoạn đầu của dự án.

However, if you choose to collect images or take your own pictures, you'll need to annotate your data. Data annotation is the process of labeling your data to impart knowledge to your model. The type of data annotation you'll work with depends on your specific computer vision technique. Here are some examples:

  • Image Classification: You'll label the entire image as a single class.
  • Object Detection: You'll draw bounding boxes around each object in the image and label each box.
  • Image Segmentation: You'll label each pixel in the image according to the object it belongs to, creating detailed object boundaries.

Các loại chú thích hình ảnh khác nhau

Data collection and annotation can be a time-consuming manual effort. Annotation tools can help make this process easier. Here are some useful open annotation tools: LabeI Studio, CVAT, and Labelme.

Bước 3: Tăng cường dữ liệu và chia nhỏ tập dữ liệu của bạn

Sau khi thu thập và chú thích dữ liệu hình ảnh của bạn, điều quan trọng trước tiên là chia tập dữ liệu của bạn thành các bộ đào tạo, xác thực và kiểm tra trước khi thực hiện tăng cường dữ liệu. Chia tách tập dữ liệu của bạn trước khi tăng cường là rất quan trọng để kiểm tra và xác thực mô hình của bạn trên dữ liệu gốc, không thay đổi. Nó giúp đánh giá chính xác mức độ khái quát của mô hình đối với dữ liệu mới, chưa được nhìn thấy.

Dưới đây là cách chia nhỏ dữ liệu của bạn:

  • Bộ đào tạo: Đây là phần lớn nhất trong dữ liệu của bạn, thường là 70-80% tổng số, được sử dụng để đào tạo mô hình của bạn.
  • Bộ xác thực: Thông thường khoảng 10-15% dữ liệu của bạn; Bộ này được sử dụng để điều chỉnh các siêu tham số và xác thực mô hình trong quá trình đào tạo, giúp ngăn ngừa quá tải.
  • Bộ kiểm tra: 10-15% dữ liệu còn lại của bạn được dành làm bộ thử nghiệm. Nó được sử dụng để đánh giá hiệu suất của mô hình trên dữ liệu không nhìn thấy sau khi đào tạo hoàn tất.

Sau khi tách dữ liệu, bạn có thể thực hiện tăng cường dữ liệu bằng cách áp dụng các chuyển đổi như xoay, chia tỷ lệ và lật hình ảnh để tăng kích thước tập dữ liệu của bạn một cách giả tạo. Tăng cường dữ liệu làm cho mô hình của bạn mạnh mẽ hơn với các biến thể và cải thiện hiệu suất của nó trên các hình ảnh không nhìn thấy.

Ví dụ về tăng cường dữ liệu

Các thư viện như OpenCV, Albumentations và TensorFlow Cung cấp các chức năng tăng cường linh hoạt mà bạn có thể sử dụng. Ngoài ra, một số thư viện, chẳng hạn như Ultralytics, có cài đặt tăng cường tích hợp trực tiếp trong chức năng đào tạo mô hình của nó, đơn giản hóa quy trình.

Để hiểu rõ hơn về dữ liệu của mình, bạn có thể sử dụng các công cụ như Matplotlib hoặc Seaborn để trực quan hóa hình ảnh và phân tích sự phân bố và đặc điểm của chúng. Trực quan hóa dữ liệu của bạn giúp xác định các mẫu, sự bất thường và hiệu quả của các kỹ thuật tăng cường của bạn. Bạn cũng có thể sử dụng Ultralytics Explorer, một công cụ để khám phá các bộ dữ liệu thị giác máy tính với tìm kiếm ngữ nghĩa, truy vấn SQL và tìm kiếm tương tự vector.

Các Ultralytics Công cụ thám hiểm

By properly understanding, splitting, and augmenting your data, you can develop a well-trained, validated, and tested model that performs well in real-world applications.

Bước 4: Đào tạo mô hình

Khi tập dữ liệu của bạn đã sẵn sàng để đào tạo, bạn có thể tập trung vào việc thiết lập môi trường cần thiết, quản lý bộ dữ liệu và đào tạo mô hình của mình.

First, you'll need to make sure your environment is configured correctly. Typically, this includes the following:

  • Cài đặt các thư viện và khung công tác thiết yếu như TensorFlow, PyTorchhoặc Ultralytics.
  • Nếu bạn đang sử dụng GPU, việc cài đặt các thư viện như CUDA và cuDNN sẽ giúp tăng tốc GPU và tăng tốc quá trình đào tạo.

Sau đó, bạn có thể tải bộ dữ liệu đào tạo và xác thực vào môi trường của mình. Chuẩn hóa và xử lý trước dữ liệu thông qua thay đổi kích thước, chuyển đổi định dạng hoặc tăng cường. Với mô hình của bạn được chọn, hãy định cấu hình các lớp và chỉ định siêu tham số. Biên dịch mô hình bằng cách đặt chức năng mất, trình tối ưu hóa và chỉ số hiệu suất.

Các thư viện như Ultralytics Đơn giản hóa quá trình đào tạo. Bạn có thể bắt đầu đào tạo bằng cách cung cấp dữ liệu vào mô hình với mã tối thiểu. Các thư viện này xử lý các điều chỉnh trọng lượng, lan truyền ngược và xác nhận tự động. Họ cũng cung cấp các công cụ để theo dõi tiến trình và điều chỉnh các siêu tham số một cách dễ dàng. Sau khi đào tạo, lưu mô hình và trọng lượng của nó bằng một vài lệnh.

Điều quan trọng cần lưu ý là quản lý tập dữ liệu thích hợp là rất quan trọng để đào tạo hiệu quả. Sử dụng kiểm soát phiên bản cho tập dữ liệu để theo dõi các thay đổi và đảm bảo khả năng tái tạo. Các công cụ như DVC (Data Version Control) có thể giúp quản lý các tập dữ liệu lớn.

Bước 5: Đánh giá mô hình và tinh chỉnh mô hình

It's important to assess your model's performance using various metrics and refine it to improve accuracy. Evaluating helps identify areas where the model excels and where it may need improvement. Fine-tuning ensures the model is optimized for the best possible performance.

  • Performance Metrics: Use metrics like accuracy, precision, recall, and F1-score to evaluate your model's performance. These metrics provide insights into how well your model is making predictions.
  • Điều chỉnh siêu tham số: Điều chỉnh siêu tham số để tối ưu hóa hiệu suất mô hình. Các kỹ thuật như tìm kiếm lưới hoặc tìm kiếm ngẫu nhiên có thể giúp tìm các giá trị siêu tham số tốt nhất.

  • Tinh chỉnh: Thực hiện các điều chỉnh nhỏ đối với kiến trúc mô hình hoặc quy trình đào tạo để nâng cao hiệu suất. Điều này có thể liên quan đến việc điều chỉnh tỷ lệ học tập, kích thước lô hoặc các thông số mô hình khác.

Bước 6: Kiểm thử mô hình

Trong bước này, bạn có thể đảm bảo rằng mô hình của bạn hoạt động tốt trên dữ liệu hoàn toàn không nhìn thấy, xác nhận sự sẵn sàng triển khai của nó. Sự khác biệt giữa thử nghiệm mô hình và đánh giá mô hình là nó tập trung vào việc xác minh hiệu suất của mô hình cuối cùng thay vì cải thiện nó một cách lặp đi lặp lại.

Điều quan trọng là phải kiểm tra kỹ lưỡng và gỡ lỗi mọi sự cố phổ biến có thể phát sinh. Kiểm tra mô hình của bạn trên một tập dữ liệu thử nghiệm riêng biệt không được sử dụng trong quá trình đào tạo hoặc xác nhận. Tập dữ liệu này phải đại diện cho các kịch bản trong thế giới thực để đảm bảo hiệu suất của mô hình là nhất quán và đáng tin cậy.

Ngoài ra, giải quyết các vấn đề phổ biến như overfitting, underfitting, và rò rỉ dữ liệu. Sử dụng các kỹ thuật như xác thực chéo và phát hiện bất thường để xác định và khắc phục những vấn đề này.

Bước 7: Triển khai mô hình

Khi mô hình của bạn đã được kiểm tra kỹ lưỡng, đã đến lúc triển khai nó. Triển khai liên quan đến việc làm cho mô hình của bạn có sẵn để sử dụng trong môi trường sản xuất. Dưới đây là các bước để triển khai mô hình thị giác máy tính:

  • Thiết lập môi trường: Định cấu hình cơ sở hạ tầng cần thiết cho tùy chọn triển khai bạn đã chọn, cho dù đó là dựa trên đám mây (AWS, Google Cloud, Azure) hay dựa trên biên (thiết bị cục bộ, IoT).

  • Xuất mô hình: Xuất mô hình của bạn sang định dạng thích hợp (ví dụ: ONNX, TensorRT, CoreML cho YOLOv8) để đảm bảo tính tương thích với nền tảng triển khai của bạn.

  • Triển khai mô hình: Triển khai mô hình bằng cách thiết lập API hoặc điểm cuối và tích hợp nó với ứng dụng của bạn.
  • Đảm bảo khả năng mở rộng: Triển khai cân bằng tải, nhóm tự động thay đổi quy mô và các công cụ giám sát để quản lý tài nguyên và xử lý dữ liệu và yêu cầu người dùng ngày càng tăng.

Bước 8: Giám sát, bảo trì và lập tài liệu

Once your model is deployed, it's important to continuously monitor its performance, maintain it to handle any issues, and document the entire process for future reference and improvements.

Các công cụ giám sát có thể giúp bạn theo dõi các chỉ số hiệu suất chính (KPI) và phát hiện sự bất thường hoặc giảm độ chính xác. Bằng cách theo dõi mô hình, bạn có thể nhận thức được độ lệch của mô hình, trong đó hiệu suất của mô hình giảm theo thời gian do thay đổi dữ liệu đầu vào. Định kỳ đào tạo lại mô hình với dữ liệu cập nhật để duy trì độ chính xác và phù hợp.

Giám sát mô hình

Ngoài việc giám sát và bảo trì, tài liệu cũng là chìa khóa. Ghi chép kỹ lưỡng toàn bộ quy trình, bao gồm kiến trúc mô hình, quy trình đào tạo, siêu tham số, các bước tiền xử lý dữ liệu và bất kỳ thay đổi nào được thực hiện trong quá trình triển khai và bảo trì. Tài liệu tốt đảm bảo khả năng tái tạo và giúp cập nhật hoặc khắc phục sự cố trong tương lai dễ dàng hơn. Bằng cách giám sát, duy trì và ghi lại mô hình của bạn một cách hiệu quả, bạn có thể đảm bảo mô hình vẫn chính xác, đáng tin cậy và dễ quản lý trong suốt vòng đời của mô hình.

Hỏi đáp

Dưới đây là một số câu hỏi phổ biến có thể phát sinh trong một dự án thị giác máy tính:

  • Câu 1: Các bước thay đổi như thế nào nếu tôi đã có tập dữ liệu hoặc dữ liệu khi bắt đầu dự án thị giác máy tính?

    • A1: Starting with a pre-existing dataset or data affects the initial steps of your project. In Step 1, along with deciding the computer vision task and model, you'll also need to explore your dataset thoroughly. Understanding its quality, variety, and limitations will guide your choice of model and training approach. Your approach should align closely with the data's characteristics for more effective outcomes. Depending on your data or dataset, you may be able to skip Step 2 as well.
  • Q2: I'm not sure what computer vision project to start my AI learning journey with.

  • Q3: I don't want to train a model. I just want to try running a model on an image. How can I do that?

    • A3: Bạn có thể sử dụng mô hình được đào tạo trước để chạy dự đoán trên hình ảnh mà không cần đào tạo mô hình mới. Kiểm tra các YOLOv8 Trang Dự đoán Tài liệu để biết hướng dẫn về cách sử dụng khóa đào tạo trước YOLOv8 Mô hình hóa để đưa ra dự đoán về hình ảnh của bạn.
  • Câu 4: Tôi có thể tìm thêm các bài viết và cập nhật chi tiết về các ứng dụng thị giác máy tính ở đâu và YOLOv8?

    • A4: Để biết thêm các bài viết chi tiết, cập nhật và thông tin chi tiết về các ứng dụng thị giác máy tính và YOLOv8, hãy truy cập Ultralytics trang blog. Blog bao gồm một loạt các chủ đề và cung cấp thông tin có giá trị để giúp bạn luôn cập nhật và cải thiện các dự án của mình.

Tham gia với cộng đồng

Kết nối với cộng đồng những người đam mê thị giác máy tính có thể giúp bạn tự tin giải quyết mọi vấn đề bạn gặp phải khi làm việc trong dự án thị giác máy tính của mình. Dưới đây là một số cách để tìm hiểu, khắc phục sự cố và kết nối mạng hiệu quả.

Tài nguyên cộng đồng

  • Các vấn đề về GitHub: Kiểm tra các YOLOv8 Kho lưu trữ GitHub và sử dụng tab Vấn đề để đặt câu hỏi, báo cáo lỗi và đề xuất các tính năng mới. Cộng đồng tích cực và những người bảo trì ở đó để giúp đỡ các vấn đề cụ thể.
  • Ultralytics Máy chủ Discord: Tham gia Ultralytics Máy chủ Discord để tương tác với những người dùng và nhà phát triển khác, nhận hỗ trợ và chia sẻ thông tin chi tiết.

Tài liệu chính thức

  • Ultralytics YOLOv8 Tài liệu: Khám phá chính thức YOLOv8 Tài liệu cho hướng dẫn chi tiết với các mẹo hữu ích về các nhiệm vụ và dự án thị giác máy tính khác nhau.

Sử dụng các tài nguyên này sẽ giúp bạn vượt qua những thách thức và luôn cập nhật các xu hướng mới nhất và thực tiễn tốt nhất trong cộng đồng thị giác máy tính.

Khởi động dự án thị giác máy tính của bạn ngay hôm nay!

Tham gia vào một dự án thị giác máy tính có thể thú vị và bổ ích. Bằng cách làm theo các bước trong hướng dẫn này, bạn có thể xây dựng một nền tảng vững chắc để thành công. Mỗi bước đều rất quan trọng để phát triển một giải pháp đáp ứng mục tiêu của bạn và hoạt động tốt trong các tình huống thực tế. Khi bạn có được kinh nghiệm, bạn sẽ khám phá các kỹ thuật và công cụ tiên tiến để cải thiện dự án của mình. Luôn tò mò, tiếp tục học hỏi và khám phá các phương pháp và đổi mới mới!



Created 2024-05-29, Updated 2024-06-10
Authors: glenn-jocher (4), abirami-vina (2)

Ý kiến