CCTVPLANNER.IO / NGHIÊN CỨU
Hình học vùng phủ camera CCTV
Cách một camera được lắp đặt và nghiêng tạo ảnh mặt đất — hình học khối tháp tầm nhìn, các phép chiếu ống kính và chuẩn khoảng cách DORI, được suy ra từ các nguyên lý đầu tiên và minh họa bằng cùng đoạn mã đang vận hành trình thiết kế trực tiếp.
1. Từ khối tháp đến dấu chân mặt đất
Một camera lỗ kim (pinhole) định nghĩa một khối tháp tầm nhìn: một hình chóp bốn mặt trải dài từ tâm quang của camera đến biên của mặt phẳng ảnh. Mỗi điểm ảnh là một tia từ tâm quang đi qua điểm tương ứng trên mặt phẳng ảnh. Để tìm vùng mặt đất mà camera bao phủ, ta cắt mỗi tia với mặt phẳng mặt đất và giữ lại các điểm nằm trong tầm của camera.
Đối với camera lắp đặt ở độ cao h, nghiêng một góc α dưới phương ngang, với trường nhìn dọc vfov, bốn tia ở góc của khối tháp vẽ nên đường bao ngoài của vùng phủ trên mặt đất. Trong các cấu hình lắp đặt thông dụng (khi α + vfov/2 < 90°), hình dạng là hình thang cụt với các góc cong — không phải tam giác hay quạt xuất phát từ điểm lắp camera. Khi α + vfov/2 tiến gần 90° (camera dome lắp trần với độ nghiêng rất dốc), cạnh dưới của ảnh bắt đầu chạm đất ngay dưới camera và hình thang thoái biến về dạng quạt.
Dấu chân mặt đất nhìn từ trên cao cho camera với h = 4 m, độ nghiêng = 30°, hfov = 106°. Cạnh dưới của ảnh gặp mặt đất ở khoảng cách ngắn phía trước camera; các cạnh bên xòe ra như quạt; cạnh xa bị giới hạn ở tầm hữu hiệu của camera.
2. Giao điểm cạnh dưới / cạnh trên
Tia cạnh dưới (sV = −1 trong tọa độ mặt phẳng ảnh) chạm đất tại:
d_near = h / tan(α + vfov/2)
Tia cạnh trên (sV = +1) chạm tại:
d_far = h / tan(α − vfov/2) nếu α > vfov/2 (hoàn toàn dưới đường chân trời)
không giới hạn nếu α ≤ vfov/2 (cạnh trên ở trên đường chân trời
— bị giới hạn ở renderRange)Mặt cắt bên, h = 4 m, độ nghiêng = 15°, vfov = 50°. Hai đường xanh là tia cạnh dưới và cạnh trên của khối tháp; dải xanh dày trên mặt đất đánh dấu vùng camera tạo ảnh sàn (từ d_near đến renderRange). Phần nêm đỏ dưới cột là vùng hình học mà ống kính không thể phân giải.
Đối với các cạnh bên (sH = ±1), cấu trúc tương tự áp dụng trên mặt phẳng ngang: mỗi tia cạnh bên quét ngang qua HFOV của camera ở mọi độ cao của mặt phẳng ảnh. Đối với ống kính trực tuyến (quang học CCTV chủ đạo) chúng chiếu xuống đất thành các đường thẳng phân kỳ, tạo ra các cạnh xiên của hình thang. Đối với ống kính mắt cá phép ánh xạ tương tự bị cong và dấu chân trở thành một đĩa cong.
3. Vùng mù hình học
Đối với bất kỳ camera nào lắp trên mặt đất và nghiêng ít hơn 90° − vfov/2, có một vùng nằm ngay dưới điểm lắp đặt mà không tia nào của khối tháp có thể đến được. Cạnh dưới của ảnh hướng xuống dưới đường ngang một góc α + vfov/2; bất cứ thứ gì gần hơn d_near đều hoàn toàn nằm ngoài ảnh của camera.
Khi giữ độ nghiêng và FOV không đổi, vùng mù tăng tuyến tính theo chiều cao lắp đặt — công thức rút gọn thành d_near = h × cot(α + vfov/2), trong đó số hạng cotang được cố định bởi ống kính. Một camera nghiêng 15° với FOV dọc 50° có vùng mù 4,8 m ở chiều cao lắp đặt 4 m và 23,8 m ở 20 m — tỷ lệ 5× tương ứng với tỷ lệ chiều cao. Tỷ lệ giữa diện tích mù và diện tích phủ là ràng buộc chi phối việc bố trí camera trên cột cao.
Cùng ống kính, cùng độ nghiêng 15°, chỉ lắp cao hơn (h = 20 m): vùng mù phát triển tỷ lệ thuận với chiều cao, không phụ thuộc vào tiêu cự hay kích thước cảm biến.
4. Khoảng cách DORI (EN 62676-4)
Tiêu chuẩn DORI (Detect / Observe / Recognize / Identify — Phát hiện / Quan sát / Nhận biết / Nhận dạng) định nghĩa mật độ điểm ảnh trên mục tiêu ở các khoảng cách cụ thể từ camera. Theo EN 62676-4, các khoảng cách này là khoảng cách ngang trên mặt đất giữa camera và mục tiêu — không phải khoảng cách xiên dọc theo trục quang. Tài liệu kỹ thuật của các nhà sản xuất lớn (Axis, Hikvision, Dahua, Bosch) đều tuân theo quy ước này.
Trên bản đồ 2D, bốn mức DORI đơn giản là các cung đồng tâm với bán kính bằng các khoảng cách ngang của chúng, được cắt bởi đa giác dấu chân camera. Ở những vị trí dấu chân không vươn tới bán kính đó, phần cung tương ứng bị ẩn đi — đối với camera HFOV hẹp, nón quá mỏng để chứa toàn bộ vòng tròn nên các đầu bên của mỗi mức bị cắt, và đối với camera tầm gần, các mức lớn hơn rơi hoàn toàn ra ngoài nón.
Vòng DORI dưới dạng cung trên mặt đất bên trong dấu chân camera. h = 4 m, độ nghiêng = 20°, hfov = 90°, tầm = 70 m. Các giá trị mức được hiển thị (8 / 16 / 32 / 64 m) là minh họa cho camera 1080p điển hình ở ~90° HFOV; khoảng cách ngang thực tế phụ thuộc vào cảm biến và tiêu cự. EN 62676-4 quy định mật độ điểm ảnh tại mỗi mức (Nhận dạng: 250 px/m, Nhận biết: 125 px/m, Quan sát: 62 px/m, Phát hiện: 25 px/m), từ đó các tầm ngang cho từng camera được suy ra.
Cách hiểu khoảng cách xiên (khi áp dụng). Nếu một tài liệu kỹ thuật cụ thể quy định tầm là khoảng cách xiên từ ống kính — không phổ biến với quang học CCTV thông dụng, đôi khi gặp trong thông số kỹ thuật ống kính nhiệt hoặc tele — thì tầm ngang tương đương trên mặt đất là √(d_slant² − h²). Một camera lắp ở 6 m với tầm Nhận dạng xiên 8 m phủ bán kính ngang 5,3 m (√(64 − 36)). Mô-đun hình học cung cấp cả hai dạng; sơ đồ trang sử dụng cách hiểu ngang chuẩn.
5. Các loại phép chiếu ống kính
Các thiết kế ống kính khác nhau ánh xạ góc từ trục quang sang bán kính mặt phẳng ảnh theo cách khác nhau. Ba phép chiếu được sử dụng trong CCTV:
| Phép chiếu | r(θ) | Khoảng tiêu biểu |
|---|---|---|
| Trực tuyến | f · tan θ | HFOV ≲ 120° (đa phần ống kính CCTV cố định và đa tiêu cự) |
| Đẳng khoảng | f · θ | HFOV ≳ 140° (panorama / mắt cá) |
| Đẳng góc khối | 2 f · sin(θ/2) | Ống kính mắt cá bảo toàn góc khối |
θ = góc từ trục quang (radian); f = tiêu cự. r(θ) là khoảng cách hướng kính trên mặt phẳng ảnh tính từ điểm chính.
Đối với ống kính trực tuyến, hệ số bên ngoài trục tan(θ) vượt 1 khi θ vượt 45° từ trục quang (tức là khi HFOV vượt 90°), và tăng không bị giới hạn khi θ tiến gần 90° (HFOV tiến gần 180°). Trong quang học thực tế, sự kéo căng góc trở nên nghiêm trọng từ rất lâu trước khi toán học phân kỳ — phần lớn nhà thiết kế ống kính chuyển sang kính bán mắt cá trong khoảng 120–140° HFOV, với ống kính mắt cá toàn phần được dùng trên ~170°.
CCTVplanner.io hiện chọn phép chiếu trực tuyến cho đến 170° HFOV, vượt quá đó sự kéo căng góc tăng đủ lớn để chúng tôi chuyển sang đẳng khoảng vì sự ổn định số học. Camera giữa ~140° và 170° HFOV vì vậy được mô hình hóa bằng toán học trực tuyến ngay cả khi ống kính vật lý của chúng gần với mắt cá hơn — chúng tôi chấp nhận điều này để đổi lấy hình học góc đơn giản hơn. Phép chiếu đẳng góc khối được hỗ trợ ở lớp hình học (cho dữ liệu nhà sản xuất chỉ định rõ ràng), tuy chưa có công tắc dành cho người dùng.
Lưu ý về tài liệu kỹ thuật: HFOV so với DFOV
Nhiều nhà sản xuất — đặc biệt các thương hiệu lớn châu Á (Dahua, Hikvision, Uniview, Tiandy) — ghi một con số trường nhìn duy nhất trên tài liệu kỹ thuật mà thực ra là trường nhìn chéo (DFOV), không phải ngang. Đưa giá trị DFOV vào công cụ kỳ vọng HFOV cho ra dấu chân rộng hơn 10–15 %, với sai số tập trung ở các cạnh bên — nơi mật độ điểm ảnh quan trọng nhất.
Đối với cảm biến có tỷ lệ ngang-dọc a (ví dụ 16:9 → a = 16/9), phép chuyển đổi là:
tan(HFOV/2) = tan(DFOV/2) × a / √(a² + 1) tan(VFOV/2) = tan(DFOV/2) × 1 / √(a² + 1)
Phép ánh xạ là phi tuyến trong góc: các đường tắt tuyến tính có dạng HFOV ≈ k × DFOV hoạt động cho ống kính hẹp nhưng thất bại nghiêm trọng khi trường nhìn mở rộng. Đối với cảm biến 16:9, các phép chuyển đổi chính xác là:
| DFOV (16:9) | HFOV chính xác | VFOV chính xác | Sai số đường tắt tuyến tính |
|---|---|---|---|
| 60° | 53,4° | 31,6° | −1,1° |
| 80° | 72,4° | 44,7° | −2,6° |
| 100° | 92,2° | 60,6° | −5,0° |
| 120° | 113,0° | 80,7° | −8,4° |
| 140° | 134,7° | 106,8° | −12,7° |
"Sai số đường tắt tuyến tính" = HFOV theo công thức ngây thơ HFOV = (a / √(a²+1)) × DFOV trừ giá trị chính xác. Đường tắt đánh giá thấp HFOV 5–13° trong dải góc rộng đang chiếm ưu thế trong quang học CCTV hiện đại — lớn hơn nhiều so với dung sai tài liệu ±1° giả định ở §9. Luôn dùng công thức dựa trên tan hoặc các giá trị chính xác ở trên.
Cơ sở dữ liệu camera của CCTVplanner.io lưu trữ HFOV (đại lượng đo chuẩn của CCTV) và chuyển đổi khi nhập đối với camera mà tài liệu kỹ thuật chỉ ghi DFOV. Khi nhập camera tùy chỉnh thủ công, hãy kiểm tra đơn vị trước khi đưa số vào trường HFOV — sai sót này là một trong hai nguyên nhân phổ biến nhất khiến dấu chân khảo sát không khớp với thực tế lắp đặt (nguyên nhân kia là tỷ lệ cảm biến).
6. Vật cản, bóng đổ, và dấu chân hữu hình
Tường, hàng rào, và các kết cấu cao chặn các tia từ camera. Để tính dấu chân hữu hình, ta mô hình hóa mỗi vật cản mờ đục dưới dạng đa giác (chu vi đóng) hoặc đa tuyến (hàng rào mở) và chiếu một tứ giác bóng cho mỗi đoạn: mỗi đoạn được kéo dài ra xa khỏi camera đến vài lần tầm vẽ. Hợp của các bóng theo từng đoạn này là silhouette của vật cản cộng với mọi thứ phía sau nó nhìn từ camera.
Dấu chân hữu hình khi đó là dấu chân − ⋃ bóng, được tính qua thuật toán hiệu đa giác Martínez–Rueda. Kết quả là một đa giác (hoặc danh sách các đa giác rời rạc, khi vật cản chia tách nón) với các cạnh khớp gọn cả với cung xa của khối tháp lẫn mọi tường chắn.
Đối với phân tích nhận biết 3D, một vật cản thấp hơn chiều cao lắp đặt camera không chặn tia hoàn toàn — nó tạo bóng hữu hạn trên mặt đất kéo dài phía sau vật cản. Đối với một tường ở khoảng cách ngang d từ camera, với chiều cao lắp đặt h_cam và chiều cao đỉnh vật cản h_obs, bóng kéo dài từ tường đến khoảng cách ngang:
d_shadow_end = d × h_cam / (h_cam − h_obs) khi h_cam > h_obs Khi h_obs ≥ h_cam vật cản chặn hoàn toàn đường nhìn — tương đương bóng vô hạn. Trình thiết kế xử lý trường hợp này như một vật chắn hoàn toàn mờ đục (không nhìn qua được) và áp dụng cùng phép chiếu bóng theo từng đoạn được dùng trong đường cắt vật cản 2D.
Bật "Sử dụng chiều cao đứng (3D)" trên một tòa nhà hoặc hàng rào trong trình thiết kế sẽ chuyển sang mô hình chiếu bóng này. Khi camera thấp hơn vật cản (hoặc cao bằng), công tắc không có tác dụng.
7. Phép chiếu nhiều tầng
Phép giao khối tháp-mặt đất tổng quát hóa một cách tầm thường sang mọi mặt phẳng ngang. Thay phương trình sàn z = 0 bằng z = z_target, giải cùng phương trình tia-mặt phẳng cho mọi tia ở góc, và kết quả là dấu chân của camera trên tầng mục tiêu đó. Một camera lắp ở tầng hai của một sảnh thông tầng phủ tầng trệt theo cùng cách thức một camera lắp dưới đất phủ tầng của chính nó, chỉ khác giá trị z_target và độ lệch dọc đã điều chỉnh giữa camera và mặt phẳng mục tiêu.
Lớp toán học cho phép chiếu nhiều tầng đã có trong mô-đun hình học hôm nay; UI chọn tầng và xem trước cảnh Three.js đang xếp hàng cho bản phát hành tương lai.
8. Giả định và giới hạn
Mọi công thức ở trên dựa trên một tập hợp các giả định đơn giản hóa. Chúng có hiệu lực với phần lớn các kịch bản CCTV lắp cố định nhưng đổ vỡ trong các điều kiện cụ thể; chúng tôi tài liệu hóa chúng để các chuyên gia có thể quyết định khi nào tin tưởng mô hình.
Giả định mô hình
- Mặt đất phẳng (sàn là mặt phẳng
z = 0) — không có độ dốc địa hình, không có độ cong Trái Đất. - Camera tĩnh tại thời điểm chụp — không có chuyển động PTZ trong khung hình, không rung.
- Mô hình camera lỗ kim — không có biến dạng ống kính. Ống kính thực đưa vào biến dạng hướng kính và tiếp tuyến Brown–Conrady (các hệ số
k₁, k₂, p₁, p₂) mà chúng tôi không mô hình hóa. - Hiệu chuẩn lý tưởng — bước điểm ảnh cảm biến, tiêu cự, và tâm quang khớp chính xác với thông số nhà sản xuất.
- Không có hiện tượng rolling-shutter; toàn bộ ảnh được chụp trong một khoảnh khắc.
- Không có roll camera — trục quang chỉ được xoay bởi pan và nghiêng; cảm biến vẫn nằm ngang.
- Đường quang đơn nhất — không có khúc xạ qua vòm kính, không có bề mặt phản chiếu trong cảnh.
- Khúc xạ khí quyển không đáng kể ở các tầm CCTV thông thường (sai số dưới 1 cm ở 50 m).
Khi mô hình đổ vỡ
- Địa hình dốc. Dấu chân mặt đất dịch chuyển không đối xứng: phía xuống dốc kéo dài hơn so với mô hình dự đoán, phía lên dốc bị nén lại. Sai số khoảng
±h · tan(độ dốc)trên mỗi mét khoảng cách ngang. - Biến dạng ống kính góc rộng. Trên ~110° HFOV, phép chiếu trực tuyến lệch khỏi phép ánh xạ thực của ống kính 1–5 % ở các góc. Phép chiếu đẳng khoảng / đẳng góc khối có sẵn ở lớp hình học cho các trường hợp này (xem §5).
- Camera vòm kính. Vòm tạo ra một dịch chuyển khúc xạ nhỏ tại lối vào ống kính (mm ở chiều cao lắp đặt thông thường). Đối với công việc DORI độ chính xác cao trên các lắp đặt kính tráng gương, điều này trở nên không tầm thường; cho việc lập kế hoạch chung thì nó nhỏ hơn các nguồn sai số khác.
- Quang học đa phản xạ. Phản xạ từ tường kính, trần gương, hoặc sàn bóng không được dò tìm. Mô hình chỉ trả về dấu chân theo đường nhìn thẳng.
- PTZ đang chuyển động. Mô hình cho dấu chân tức thời tại một cài đặt pan/nghiêng. Vùng phủ của PTZ đang chuyển động theo thời gian là dấu chân quét, không phải tức thời.
- Dung sai lắp đặt. Góc lắp đặt thực tế chệch khỏi thiết kế 1–3° (sai số kỹ thuật viên). Phần tiếp theo định lượng cách điều này lan truyền đến sai số trên mặt đất.
9. Độ nhạy sai số
Sai số trong các tham số đầu vào (chiều cao lắp đặt, góc nghiêng, FOV) lan truyền sang sai số vị trí mặt đất trong dấu chân. Đối với giao điểm cạnh dưới với mặt đất d_near = h / tan(α + vfov/2), các đạo hàm riêng cho:
∂d_near/∂h = 1 / tan(α + vfov/2) = d_near / h ∂d_near/∂α = −h / sin²(α + vfov/2) (radian) ∂d_near/∂vfov = −h / (2 · sin²(α + vfov/2)) (radian)
Các đạo hàm riêng góc tính bằng radian; nhân với π/180 (≈ 0,01745) để chuyển sang trên độ. Bảng dưới áp dụng phép chuyển đổi.
Đối với cấu hình điển hình (h = 10 m, độ nghiêng = 15°, vfov = 50° → d_near ≈ 11,9 m), các sai số nhỏ trong từng tham số tạo ra các độ lệch sau trên d_near:
| Tham số | Sai số đầu vào | Δ d_near | Ghi chú |
|---|---|---|---|
| độ nghiêng α | ±1° | ±0,42 m | độ phân giải máy đo độ nghiêng điển hình |
| độ nghiêng α | ±3° | ±1,27 m | lắp ước lượng bằng mắt trên giá đỡ |
| chiều cao h | ±0,5 m | ±0,59 m | đo thước dây, cột không tiếp cận được |
| vfov | ±1° | ±0,21 m | làm tròn tài liệu kỹ thuật |
| tổng cộng | RMS | ~1,4 m | tại 3° nghiêng + 0,5 m chiều cao + 1° fov |
Số hạng chi phối là độ bất định góc lắp đặt: trong cấu hình trên, mỗi độ sai số nghiêng tốn ~42 cm độ chính xác vị trí mặt đất tại d_near. Máy đo độ nghiêng laser với độ phân giải 0,1° giữ sai số d_near do nghiêng dưới 5 cm; lắp giá đỡ ước lượng bằng mắt tốt khoảng ±1 m. Đối với việc xác minh các mức DORI (nơi chênh lệch giữa các vòng mặt đất Nhận biết và Nhận dạng có thể là 2–3 m), độ nghiêng phải được đo đạc, không phải ước lượng.
Cùng phân tích đạo hàm riêng áp dụng cho chiều rộng bên của dấu chân thông qua HFOV — sai số 1° ở HFOV tạo ra khoảng 2 · d · tan(½°) ≈ 1,7 % sai số trải bên ở khoảng cách d. Tại tầm 30 m đó là ~52 cm độ bất định bên, đó là lý do chúng tôi xem các con số HFOV của nhà sản xuất là ±1° thay vì chính xác.
10. Tính tái lập
Tất cả công thức trong bài viết này được triển khai nguyên văn trong mô-đun hình học đi kèm với trình thiết kế của CCTVplanner.io. Mô-đun được phủ bởi một bộ kiểm thử đơn vị toàn diện bao trùm các phép chiếu trực tuyến / đẳng khoảng / đẳng góc khối, các trường hợp biên của vùng mù, phép chiếu DORI trên mặt đất, cắt vật cản đa giác Boolean, và phần mở rộng nhiều tầng. Mỗi sơ đồ trên trang này được kết xuất bằng cách gọi cùng các hàm mà trình thiết kế trực tiếp sử dụng.
Điểm vào chính
buildFrustum(args)— cơ sở camera (forward / right / upCam) + siêu dữ liệu khối thápcomputeGroundFootprint(frustum, projection)— đa giác được lấy mẫu (8 / 32 điểm trên mỗi cạnh)slantToGroundRadius(frustum, slantM)— √(slant² − h²) với kiểm tra khả năng tiếp cậncomputeSegmentShadow / computePolygonShadow— phép chiếu bóng mặt đất theo đoạn / theo đa giácsubtractObstacleShadows(footprint, shadows)— hiệu đa giác Martínez–RuedacomputeFloorFootprint(frustum, z, projection)— biến thể nhiều tầng
Hằng số mặc định
defaultLensProjection: trực tuyến khi HFOV < 170°, ngược lại đẳng khoảngSAMPLES_PER_EDGE: 8 cho trực tuyến, 32 cho phép chiếu mắt cá- Khoảng cắt bóng:
renderRange × 4(bao phủ cắt cạnh xa ở mọi khoảng cách vật cản hợp lý) - Kẹp ngang cạnh xa: các tia có giao điểm với mặt đất vượt quá
renderRangetheo khoảng cách ngang được chiếu trở lạirenderRangedọc theo hướng ngang của chúng (ngăn các hiện tượng đường lạc gần đường chân trời ở cung xa của đa giác).
Tái lập toán học từ đầu: dựng CameraFrustum với hình dạng đã công bố { x, y, h, panDeg, tiltDeg, hfovDeg, vfovDeg, renderRangeM, pixelsPerMeter }; lấy mẫu các góc mặt phẳng ảnh tại sH, sV ∈ [−1, +1] với 8 mẫu trên mỗi cạnh (32 cho mắt cá); cắt mỗi tia với mặt phẳng z = 0; áp dụng hiệu đa giác để trừ bóng. Ngoại trừ các tác động thứ tự IEEE 754 trong bước Boolean đa giác, kết quả khớp với đa giác do trình thiết kế trực tiếp kết xuất với độ chính xác dấu phẩy động (sai số dưới milimét trên đầu vào tỷ lệ thực).
Tài liệu tham khảo
- IEC 62676-4:2014 (có sửa đổi) — Hệ thống giám sát video sử dụng trong các ứng dụng an ninh, phần 4: hướng dẫn áp dụng (DORI, khoảng cách mục tiêu). Văn bản giống hệt được công bố là EN 62676-4 trong phiên bản châu Âu.
- Hartley & Zisserman, Multiple View Geometry in Computer Vision, ấn bản 2, Cambridge University Press, 2004 (mô hình chiếu camera, hình học khối tháp).
- Kannala & Brandt, "A generic camera model and calibration method for conventional, wide-angle, and fish-eye lenses," IEEE TPAMI, 2006 (so sánh các phép chiếu trực tuyến / đẳng khoảng / đẳng góc khối).
- Martínez, Rueda & Feito, "A new algorithm for computing Boolean operations on polygons," Computers & Geosciences, 2009 — thuật toán Martínez–Rueda gốc. Bản tiếp theo năm 2013 "A simple algorithm for Boolean operations on polygons" (Advances in Engineering Software) là biến thể được triển khai trong thư viện polygon-clipping được dùng ở đây.