Sai lầm tạo ra 10.000 hình ảnh vô dụng

Cách tiếp cận rõ ràng để biến video thành dữ liệu huấn luyện là trích xuất mọi khung hình. Nó cảm thấy kỹ lưỡng. Đó gần như là điều tồi tệ nhất bạn có thể làm.

Các khung hình liên tiếp của video 30 khung hình/giây cách nhau 33 mili giây. Trừ khi máy ảnh hoặc chủ thể đang chuyển động nhanh, khung hình 1.001 gần giống với khung hình 1.000 - cùng tư thế, cùng ánh sáng, cùng hậu cảnh, chênh lệch một vài pixel. Tập dữ liệu gồm 10.000 khung như vậy không chứa 10.000 ví dụ. Nó có lẽ chứa 300 tình huống riêng biệt, mỗi tình huống được lặp lại 30 lần.

Những gì tác động đến quá trình đào tạo là cụ thể và có hại. Chi phí chú thích tăng theo số lượng hình ảnh, vì vậy bạn phải trả gấp ba mươi lần cho cùng một thông tin. Quy mô thời gian đào tạo quá. Và quan trọng nhất, nếu những nội dung gần như trùng lặp đó nằm ở cả hai phía của phần tách đào tạo/xác thực, thì mô hình đã nhìn thấy tập hợp xác thực một cách hiệu quả — bạn nhận được điểm xác thực chẳng có ý nghĩa gì.

Vì vậy, quyết định đầu tiên không phải là cài đặt công cụ. Đó là: nội dung phải thay đổi bao nhiêu trước khi một khung hình được tính là ví dụ mới?

Chọn khoảng thời gian lấy mẫu

Xuất phát từ chuyển động trong cảnh chứ không phải từ tốc độ khung hình nguồn. Một số điểm bắt đầu hoạt động:

  • Camera tĩnh, chủ thể chậm (giám sát, cây đang phát triển, hàng đợi) — 1 khung hình mỗi 2–10 giây. Bất cứ điều gì dày đặc hơn đều không cần thiết.
  • Camera tĩnh, chủ thể hoạt động (một người làm việc tại băng ghế, giao thông) — 1 khung hình cứ sau 0,5–2 giây.
  • Camera chuyển động (thiết bị cầm tay, máy bay không người lái, camera hành trình) — 2–5 khung hình mỗi giây. Nền thay đổi liên tục nên các khung hình luôn khác biệt.
  • Hành động nhanh trong đó tư thế chính là nhãn (thể thao, nhận dạng cử chỉ) — 5–15 khung hình mỗi giây, nhưng chỉ trên các phân đoạn có chứa hành động.

Cách giải quyết: trích xuất một đoạn thử nghiệm dài một phút theo từng khoảng thời gian và xem xét các kết quả cạnh nhau. Nếu bạn có thể xem qua chúng và mỗi hình ảnh cho bạn biết điều gì đó mới mẻ thì khoảng thời gian đó là phù hợp. Nếu nó giống như một cuốn sách lật, hãy mở rộng nó ra.

Thực hiện phép tính trước khi trích xuất. Khung hình = thời lượng × tốc độ mục tiêu. Chín mươi phút cảnh quay với tốc độ 1 khung hình mỗi giây là 5.400 hình ảnh - có thể coi là một tuần chú thích. Ở tốc độ 1 khung hình trên 5 giây, nó là 1.080, tức là một vài ngày. Quyết định đó đáng để bạn suy nghĩ trong năm phút.

Trong trình trích xuất, chế độ "Khoảng thời gian" trực tiếp lấy khoảng cách tính bằng giây và số khung hình xuất hiện khi bạn nhập — vì vậy, con số ở trên hiển thị trước khi bạn thực hiện thay vì bị phát hiện sau đó.

Cài đặt trích xuất quan trọng ở phía sau

Định dạng: PNG hoặc JPEG

Câu trả lời trung thực là nó thường không quan trọng như mọi người mong đợi, nhưng những trường hợp đó thì đáng để biết.

Sử dụng PNG khi tác vụ nhạy cảm với chi tiết nhỏ hoặc thành phần nén — phát hiện lỗi trên bề mặt, tác phẩm liền kề OCR, hình ảnh y tế hoặc khoa học, bất kỳ thứ gì mà sau này bạn có thể đo giá trị pixel. Sử dụng JPEG ở mức 90–95% để phát hiện và phân loại đối tượng nói chung, trong đó các mô hình có khả năng nén từ mạnh đến nhẹ và chênh lệch dung lượng lưu trữ từ 5 đến 10 lần.

Một quy tắc nhất quán bất kể lựa chọn nào: không trộn lẫn. Tập dữ liệu có một nửa PNG và một nửa JPEG ở các chất lượng khác nhau mang lại cho mô hình một tín hiệu giả và các mô hình rất giỏi trong việc tìm ra các tín hiệu giả.

Giải pháp

Trích xuất ở độ phân giải nguồn và thu nhỏ trong quy trình tiền xử lý của bạn, không phải ở thời điểm trích xuất. Bạn không thể khôi phục chi tiết bạn đã loại bỏ và sau một năm nữa, bạn có thể muốn cắt xén 512 pixel từ cảnh bạn trích xuất ở mức 224. Bộ nhớ sẽ rẻ hơn so với việc trích xuất lại, đặc biệt nếu cảnh nguồn được lưu trữ ở nơi bất tiện.

Đặt tên

Các tên tuần tự không có đệm, đủ rộng cho tập hợp lớn nhất mà bạn từng tạo. frame_00001.png, không phải frame_1.png. Các công cụ sắp xếp tên tệp dưới dạng văn bản sẽ sắp xếp frame_10 trước khi frame_2 và nếu thứ tự thời gian quan trọng ở bất kỳ vị trí nào trong quy trình của bạn thì lỗi đó rất tinh vi và khó phát hiện.

Bao gồm nguồn trong đường dẫn thay vì tên tệp, để xuất xứ vẫn tồn tại:

dataset/
                  raw/
                    cam01_2026-03-14/
                      frame_00001.png
                      frame_00002.png
                    cam02_2026-03-14/
                      frame_00001.png
                  splits/
                    train.txt
                    val.txt
                    test.txt

Giữ phần tách dưới dạng tệp văn bản liệt kê đường dẫn — thay vì sao chép vật lý hình ảnh vào thư mục train/ và val/ — nghĩa là bạn có thể phân tách lại mà không cần sao chép lại và bạn có thể biết chính xác những gì đã diễn ra ở đâu.

Quy tắc phân tách thực sự quan trọng

Đây là phần đáng đọc hai lần vì đây là sự khác biệt giữa điểm chuẩn mà bạn có thể tin tưởng và điểm chuẩn mà bạn không thể tin cậy.

Chia theo video nguồn, không bao giờ chia theo khung hình.

Nếu bạn xáo trộn tất cả các khung hình và chia ngẫu nhiên theo tỷ lệ 80/20, các khung hình từ cùng một giây của cùng một video sẽ nằm ở cả hai bên. Khi đó, tập xác thực gần như là một bản sao của tập huấn luyện và độ chính xác xác thực của bạn đo lường khả năng ghi nhớ. Các mô hình được đào tạo theo cách này thường xuyên báo cáo 97–99% và sau đó thất bại ở những cảnh thực sự mới và sự thất bại này thật khó hiểu cho đến khi bạn xem cách phân chia được thực hiện như thế nào.

Phương pháp đúng: chỉ định toàn bộ video để đào tạo, xác thực và kiểm tra. Nếu bạn chỉ có một video dài, hãy chia video đó theo thời gian thành các khối liền kề — 70% đào tạo đầu tiên, xác thực 15% tiếp theo, kiểm tra 15% cuối cùng — và loại bỏ một vài giây ở mỗi bên của mỗi ranh giới để không có cặp gần như trùng lặp nào nằm trên đó.

Nếu có thể, hãy tiến xa hơn: giữ toàn bộ bản ghi các phiên, máy ảnh hoặc vị trí cho tập thử nghiệm. Điều đó đo lường xem mô hình có khái quát hóa theo các điều kiện chứ không phải theo dấu thời gian hay không. Đây gần như luôn là câu hỏi mà bạn thực sự quan tâm.

Hoạt động cục bộ và tại sao nó thường quan trọng ở đây

Một lưu ý thiết thực dành riêng cho lĩnh vực này: video nghiên cứu và công nghiệp thường là tài liệu không thể được tải lên một cách ngẫu nhiên — bản ghi hình bệnh nhân, cảnh quay của những người đồng ý tham gia một nghiên cứu chứ không phải dịch vụ đám mây, dây chuyền sản xuất độc quyền, thử nghiệm trước khi xuất bản.

Việc trích xuất dựa trên trình duyệt sẽ giữ tệp trên máy; không có gì được chuyển giao, điều này quan trọng khi ràng buộc là phê duyệt đạo đức hoặc thỏa thuận xử lý dữ liệu chứ không phải là ưu tiên. Bạn có thể xác nhận điều này thay vì tin tưởng - tải trang, ngắt kết nối mạng và giải nén. Nếu nó vẫn hoạt động thì chẳng đi đến đâu cả. phương pháp xác minh điều đó mất khoảng một phút.

Hãy rõ ràng về các giới hạn. Các khung được giữ trong bộ nhớ cho đến khi tải xuống, vì vậy các nguồn dài cần được xử lý theo từng khoảng thời gian. Đối với quy trình lặp lại trên hàng trăm tệp, tập lệnh FFmpeg cục bộ là công cụ phù hợp — trình duyệt dành cho công việc khám phá, trích xuất một lần và trong trường hợp bạn muốn xem khung trong khi quyết định khoảng thời gian.

Danh sách kiểm tra trước khi bắt đầu chú thích

Chú thích là bước tốn kém. Nắm bắt những nội dung này trước khi bắt đầu sẽ tiết kiệm thời gian nhất:

  1. Trang qua 50 khung ngẫu nhiên. Chúng có khác biệt rõ ràng với nhau không? Nếu không, hãy mở rộng khoảng thời gian và trích xuất lại — ngay bây giờ, không phải sau khi gắn nhãn.
  2. Kiểm tra sự cân bằng của lớp. Việc lấy mẫu thời gian đồng nhất sẽ cung cấp cho bạn các khung hình tương ứng với thời lượng mọi thứ xuất hiện trên màn hình chứ không phải tỷ lệ với mức độ bạn quan tâm đến chúng. Các sự kiện hiếm hoi cần trích xuất có mục tiêu từ phạm vi thời gian cụ thể của chúng.
  3. Xóa các khung hình chết. Mờ dần, khung màu đen khi cắt, ánh sáng lóa của ống kính, bàn tay của ai đó chạm vào ống kính. Chúng gây ồn ào và tốn thời gian chú thích.
  4. Xác nhận việc phân chia là theo video hoặc theo khối thời gian, không phải bằng khung xáo trộn.
  5. Ghi lại xuất xứ. Tệp nguồn, khoảng thời gian, ngày trích xuất, định dạng và chất lượng cùng với tập dữ liệu. Trong sáu tháng, bạn sẽ cần phải tái tạo hoặc mở rộng nó và việc xây dựng lại "khoảng thời gian tôi đã sử dụng" từ hình ảnh là điều khó chịu.

Không có điều nào trong số này là khó cả. Nó chỉ được quyết định trước khi trích xuất chứ không phải được phát hiện sau chú thích, đó là toàn bộ sự khác biệt.