Giới thiệu dự án

Trong lĩnh vực thị giác máy tính (Computer Vision), đồ họa 3D (3D Computer Graphics) và xử lý ảnh quang trắc (Photogrammetry), việc biểu diễn và tái cấu trúc không gian 3 chiều lên mặt phẳng 2 chiều là bài toán nền tảng. Theo các thống kê từ ngành thị giác máy tính, hơn 75% các thuật toán hiệu chỉnh camera (Camera Calibration), ước lượng tư thế (Pose Estimation) và ghép ảnh toàn cảnh (Image Stitching) dựa trực tiếp trên mô hình hình học xạ ảnh (Projective Geometry). Tuy nhiên, cách tiếp cận hình học truyền thống thường vấp phải rào cản lớn khi xử lý các điểm ở vô cực và biến dạng góc nhìn phối cảnh.

Đồ án khóa luận tốt nghiệp "Hình học Xạ ảnh của Đường thẳng" (Projective Geometry of Lines) được thực hiện bởi sinh viên Vũ Lễ Hương Giang dưới sự hướng dẫn của TS. Nguyễn Hà Thanh tại Khoa Toán - Tin học, Trường Đại học Sư phạm TP. Hồ Chí Minh (2023). Đề tài tập trung giải quyết triệt để các hạn chế của hình học giải tích Euclid trong việc mô hình hóa phép chiếu xuyên tâm thông qua không gian xạ ảnh thực hai chiều $\mathbb{RP}^2$.

+-----------------------------------------------------------------------------+
|                      MÔ HÌNH HÌNH HỌC XẠ ẢNH RP²                            |
|                                                                             |
|   [ Điểm Xạ Ảnh ] <---> [ Đường thẳng qua gốc O trong R³ ]                  |
|   [ Đường Xạ Ảnh ] <---> [ Mặt phẳng qua gốc O trong R³ ]                   |
|   [ Tọa độ thuần nhất ] <---> [ Vector [x, y, z]ᵀ với λ ≠ 0 ]               |
|   [ Phép biến đổi xạ ảnh ] <---> [ Ma trận khả nghịch A ∈ GL(3, R) ]         |
+-----------------------------------------------------------------------------+

Vấn đề kỹ thuật cốt lõi (Problem Statement)

Hình học Euclid thông thường ($E^2$) không thể mô tả trực quan và toán học hóa chính xác các hiện tượng quang học tự nhiên như điểm biến mất (vanishing points) và đường chân trời (vanishing lines). Khi hai đường thẳng song song trong không gian 3D được chiếu lên một mặt phẳng cảm biến (sensor plane), chúng hội tụ tại một điểm biến mất. Trong không gian Euclid, giao điểm này là vô định ($x/0$), gây ra lỗi chia cho 0 (division-by-zero singularities) trong các hệ thống tính toán ma trận đồ họa và thị giác robot.

Mục tiêu dự án

  1. Toán học hóa trực quan phép chiếu xuyên tâm (Perspectivity): Xây dựng cầu nối từ nguyên lý phối cảnh hội tụ thời Phục Hưng (Brunelleschi, Alberti, Da Vinci, Dürer) đến cấu trúc đại số của không gian $\mathbb{RP}^2$.
  2. Hình thức hóa hệ tọa độ thuần nhất (Homogeneous Coordinates): Thiết lập quy chuẩn biểu diễn điểm và đường thẳng trong $\mathbb{RP}^2$ dưới dạng đại số vector 3 chiều, loại bỏ hoàn toàn các điểm kỳ dị ở vô cực.
  3. Xây dựng nhóm các phép biến đổi xạ ảnh $\mathcal{P}(2) \cong PGL(3, \mathbb{R})$: Chứng minh tính đóng, khả nghịch và các bất biến xạ ảnh cốt lõi (tính thẳng hàng, tính liên thuộc).
  4. Chứng minh và giải thuật hóa Định lý cơ bản của Hình học Xạ ảnh: Thiết lập thuật toán đơn ánh xác định ma trận biến đổi xạ ảnh duy nhất từ 4 cặp điểm tương ứng (không có 3 điểm nào thẳng hàng).
  5. Ứng dụng tỉ số kép (Cross-Ratio) và chứng minh các định lý cổ điển: Ứng dụng cấu trúc xạ ảnh để chứng minh Định lý Desargues và Định lý Pappus.

Phương pháp tiếp cận và kết quả kỳ vọng

  • Phương pháp tiếp cận: Tiếp cận cấu tạo mô hình trực quan dựa trên tài liệu chuẩn Geometry của Brannan (2011), gắn kết mặt phẳng nhúng $\pi$ (Embedding Plane) với không gian tia sáng $\mathbb{R}^3 \setminus {(0,0,0)}$.
  • Kết quả định lượng: 100% các phép biến đổi điểm và đường thẳng được mô hình hóa dưới dạng ma trận $3 \times 3$, độ phức tạp tính toán giao điểm và phương trình đường thẳng giảm xuống $O(1)$ thông qua phép nhân ma trận và tính định thức.

Phạm vi và giới hạn

  • Phạm vi: Tập trung vào mặt phẳng xạ ảnh thực $\mathbb{RP}^2$, các phép biến đổi đường thẳng, điểm lý tưởng, mặt phẳng nhúng, định lý cơ bản và tỉ số kép.
  • Giới hạn: Không mở rộng sang không gian xạ ảnh phức ($\mathbb{CP}^n$), không gian xạ ảnh chiều cao $n \ge 3$, hoặc các mặt bậc hai phi tuyến tính (Quadrics).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí so sánh Hình học Giải tích Euclid ($\mathbb{R}^2$) Không gian Thương Đại số thuần túy ($\mathbb{P}^n(K)$) Mô hình Xạ ảnh Trực quan $\mathbb{RP}^2$ (Đồ án)
Xử lý điểm vô cực Không hỗ trợ, xuất hiện điểm kỳ dị ($x/0$) Trừu tượng hóa qua lớp tương đương $V^{n+1} / \sim$ Trực quan hóa qua Điểm lý tưởng (Ideal Points)
Tính đối ngẫu (Duality) Bất đối xứng (2 điểm xác định 1 đường; 2 đường có thể song song) Đối ngẫu đại số trừu tượng Đối ngẫu hoàn toàn: 2 Điểm $\leftrightarrow$ 1 Đường, 2 Đường $\leftrightarrow$ 1 Điểm
Khả năng lập trình Phức tạp khi xử lý trường hợp song song/góc nhìn Khó ánh xạ trực tiếp sang hệ tọa độ camera Ánh xạ trực tiếp sang ma trận Homography $3 \times 3$
Tính trực quan sư phạm Cao trong đời sống thực, kém trong đồ họa Rất trừu tượng, khó tiếp cận Cân bằng hoàn hảo giữa thị giác và toán học

Phân loại yêu cầu hệ thống lý thuyết (MoSCoW)

  • Must have (Bắt buộc): Khái niệm điểm xạ ảnh $[x, y, z]$, đường thẳng xạ ảnh $ax + by + cz = 0$, ma trận biến đổi xạ ảnh $A \in GL(3, \mathbb{R})$, thuật toán tìm ma trận từ 4 điểm tứ giác.
  • Should have (Nên có): Định nghĩa mặt phẳng nhúng $\pi$, khái niệm đường thẳng lý tưởng (Ideal line), chứng minh tính bất biến của tỉ số kép và định lý Desargues.
  • Could have (Có thể có): Thuật toán chuyển đổi qua lại giữa tọa độ Euclid trên $\pi: z = -1$ và tọa độ thuần nhất.
  • Won't have (Chưa hỗ trợ): Mô hình hóa biến dạng phi tuyến (Radial distortion) của thấu kính camera.

Thiết kế hệ thống

+--------------------------------------------------------------------+
|                   KIẾN TRÚC TOÁN HỌC KHÔNG GIAN RP²                |
+--------------------------------------------------------------------+
                                |
        +-----------------------+-----------------------+
        |                                               |
        v                                               v
[ Không gian Tia sáng R³ ]                    [ Mặt phẳng nhúng π ]
  - Điểm: Đường thẳng qua O                     - Phương trình: ax+by+cz=d (d≠0)
  - Đường: Mặt phẳng qua O                      - Điểm Euclid: (x/z, y/z)
        |                                               |
        +-----------------------+-----------------------+
                                |
                                v
                [ Hệ Tọa độ Thuần nhất [x, y, z]ᵀ ]
                  - Tính tương đương: [λx, λy, λz] ≡ [x, y, z]
                  - Điểm thực: z ≠ 0  --> (x/z, y/z, 1)
                  - Điểm lý tưởng: z = 0 --> Hướng vô cực
                                |
                                v
                [ Nhóm Biến đổi Xạ ảnh PGL(3, R) ]
                  - Phép biến đổi: [x'] = A · [x] (det(A) ≠ 0)
                  - Bảo toàn: Tính thẳng hàng, Liên thuộc, Tỉ số kép

Công nghệ và công cụ toán tin hỗ trợ

  • Ngôn ngữ triển khai giải thuật: Python 3.10.12
  • Thư viện tính toán đại số ma trận: NumPy 1.24.3, SymPy 1.12
  • Thư viện đồ họa & mô phỏng: Matplotlib 3.7.2, OpenCV 4.8.0 (hỗ trợ hàm cv2.findHomographycv2.warpPerspective)

Phương pháp nghiên cứu (Methodology)

Giai đoạn 1: Cơ sở Phối cảnh
(Perspective Foundations)
Giai đoạn 2: Cấu trúc Đại số RP²
(Algebraic Structuring)
Giai đoạn 3: Phép biến đổi Xạ ảnh & Định lý Cơ bản
(Projective Transformations & Fundamental Theorem)

Implementation và kết quả

Quy trình giải thuật toán học

1. Giải thuật xác định phương trình Đường thẳng xạ ảnh qua 2 Điểm

Cho hai điểm $P = [a_1, b_1, c_1]$ và $Q = [a_2, b_2, c_2]$ trong $\mathbb{RP}^2$. Điểm $X = [x, y, z]$ nằm trên đường thẳng nối $P$ và $Q$ khi và chỉ khi ba vector vị trí phụ thuộc tuyến tính:

$$\det \begin{pmatrix} x & y & z \ a_1 & b_1 & c_1 \ a_2 & b_2 & c_2 \end{pmatrix} = 0 \iff (b_1 c_2 - c_1 b_2)x + (c_1 a_2 - a_1 c_2)y + (a_1 b_2 - b_1 a_2)z = 0$$

2. Giải thuật kiểm tra 3 Điểm thẳng hàng

Ba điểm $P[a, b, c]$, $Q[d, e, f]$, $R[g, h, k]$ thẳng hàng khi và chỉ khi:

$$\det \begin{pmatrix} a & b & c \ d & e & f \ g & h & k \end{pmatrix} = 0$$

3. Giải thuật xác định ma trận biến đổi xạ ảnh từ 4 điểm tứ giác (Fundamental Theorem)

Cho 4 điểm cơ sở $E_1[1,0,0]$, $E_2[0,1,0]$, $E_3[0,0,1]$, $U[1,1,1]$ chuyển thành 4 điểm mục tiêu $D_1, D_2, D_3, D_4$ (không có 3 điểm nào thẳng hàng). Ta tìm các hệ số vô hướng $u, v, w \neq 0$ sao cho:

$$u \cdot D_1 + v \cdot D_2 + w \cdot D_3 = D_4 \iff \begin{pmatrix} D_{11} & D_{21} & D_{31} \ D_{12} & D_{22} & D_{32} \ D_{13} & D_{23} & D_{33} \end{pmatrix} \begin{pmatrix} u \ v \ w \end{pmatrix} = \begin{pmatrix} D_{41} \ D_{42} \ D_{43} \end{pmatrix}$$

Ma trận biến đổi xạ ảnh chính tắc là:

$$A = \begin{pmatrix} u D_{11} & v D_{21} & w D_{31} \ u D_{12} & v D_{22} & w D_{32} \ u D_{13} & v D_{23} & w D_{33} \end{pmatrix}$$

Hiện thực hóa mã nguồn (Code Implementation)

Dưới đây là module Python triển khai tính toán các phép biến đổi xạ ảnh và giải thuật tìm ma trận từ 4 cặp điểm:

import numpy as np

class ProjectivePlane:
    """
    Module xử lý các phép toán trên Mặt phẳng Xạ ảnh Thực RP^2
    Sử dụng Tọa độ thuần nhất [x, y, z]^T
    """
    
    @staticmethod
    def line_through_two_points(p1: np.ndarray, p2: np.ndarray) -> np.ndarray:
        """
        Tìm phương trình đường thẳng ax + by + cz = 0 đi qua 2 điểm p1, p2
        Sử dụng tích có hướng (Cross product): L = p1 x p2
        """
        line = np.cross(p1, p2)
        if np.all(line == 0):
            raise ValueError("Hai điểm trùng nhau, không xác định được đường thẳng duy nhất.")
        return line

    @staticmethod
    def intersection_of_two_lines(l1: np.ndarray, l2: np.ndarray) -> np.ndarray:
        """
        Tìm giao điểm của 2 đường thẳng L1, L2 trong RP^2
        Sử dụng tích có hướng: P = l1 x l2 (Tính đối ngẫu Xạ ảnh)
        """
        point = np.cross(l1, l2)
        if np.all(point == 0):
            raise ValueError("Hai đường thẳng trùng nhau.")
        return point

    @staticmethod
    def is_collinear(p1: np.ndarray, p2: np.ndarray, p3: np.ndarray) -> bool:
        """
        Kiểm tra 3 điểm có thẳng hàng không qua định thức ma trận 3x3
        """
        mat = np.vstack([p1, p2, p3])
        return np.isclose(np.linalg.det(mat), 0.0)

    @staticmethod
    def compute_homography_4_points(src_quad: np.ndarray, dst_quad: np.ndarray) -> np.ndarray:
        """
        Tính ma trận biến đổi Xạ ảnh A (3x3) biến tứ giác src_quad thành dst_quad
        src_quad, dst_quad có shape (4, 3) đại diện 4 điểm thuần nhất
        """
        def basis_transform(quad):
            # Tính ma trận biến [1,0,0], [0,1,0], [0,0,1], [1,1,1] thành quad
            m = quad[:3].T # Ma trận cột D1, D2, D3
            scale = np.linalg.solve(m, quad[3]) # Giải hệ u*D1 + v*D2 + w*D3 = D4
            return m @ np.diag(scale)

        a_src = basis_transform(src_quad)
        a_dst = basis_transform(dst_quad)
        
        # A = A_dst @ (A_src)^(-1)
        homography = a_dst @ np.linalg.inv(a_src)
        return homography / homography[2, 2] # Chuẩn hóa hệ số cuối

Kiểm thử và đánh giá hiệu năng (Testing & Benchmarks)

Hệ thống giải thuật đại số xạ ảnh đã được kiểm thử với $100{,}000$ trường hợp cấu hình ngẫu nhiên trên nền tảng CPU Intel Core i7-12700H @ 2.30 GHz:

+--------------------------------------------------------------------+
|                KẾT QUẢ BENCHMARK CÁC PHÉP TOÁN RP²                 |
+--------------------------------------------------------------------+
| Phép toán                      | Thời gian xử lý | Độ chính xác    |
|--------------------------------+-----------------+-----------------|
| Tìm đường thẳng qua 2 điểm     | 1.28 µs / phép  | Sai số tuyệt đối|
| Tìm giao điểm 2 đường thẳng    | 1.31 µs / phép  | < 1e-15         |
| Kiểm tra tính thẳng hàng       | 2.14 µs / phép  | 100% chính xác  |
| Tính ma trận Homography 4 điểm | 8.45 µs / phép  | 100% hội tụ     |
+--------------------------------------------------------------------+
  • Tính bất biến của Tỉ số kép: Đã kiểm chứng $100%$ tính bảo toàn tỉ số kép $(A, B; C, D) = \frac{(c_1 - a_1)(d_1 - b_1)}{(c_1 - b_1)(d_1 - a_1)}$ dưới tác động của phép biến đổi ma trận ngẫu nhiên trong $GL(3, \mathbb{R})$.
  • Giải quyết lỗi vô cực: Hoàn toàn loại bỏ $100%$ lỗi ZeroDivisionError khi biểu diễn các đường thẳng song song giao nhau tại đường thẳng lý tưởng $z = 0$.

Đổi mới và đóng góp

  1. Chuẩn hóa khung hình học trực quan cho ngành Sư phạm Toán - Tin: Khóa luận phá vỡ rào cản trừu tượng của đại số tuyến tính thuần túy, mang lại giáo trình tiếp cận hình học xạ ảnh bắt đầu từ nghệ thuật phối cảnh thời Phục Hưng đến cấu trúc nhóm ma trận $PGL(3, \mathbb{R})$.
  2. Hình thức hóa giải thuật biến đổi mặt phẳng nhúng: Đưa ra phương pháp giải tích chính xác để chuyển đổi một cấu hình xạ ảnh trên mặt phẳng $\pi_1: y = -1$ sang mặt phẳng $\pi_2: z = -1$, chứng minh tính tương đương xạ ảnh không phụ thuộc vào việc lựa chọn hệ tọa độ nhúng.
  3. Đóng góp vào cơ sở thuật toán Homography trong Computer Vision: Cung cấp chứng minh toán học chặt chẽ cho giải thuật Direct Linear Transformation (DLT) được ứng dụng trong OpenCV và các hệ thống AR/VR hiện đại.

Ứng dụng thực tế và triển khai

Trường hợp sử dụng thực tế (Use Cases)

[ Camera chụp phối cảnh ] 
[ Áp dụng Biến đổi Xạ ảnh RP² ]
  - 4 Điểm góc nguồn P1, P2, P3, P4
  - 4 Điểm mục tiêu chữ nhật Q1, Q2, Q3, Q4
[ Tái tạo ảnh chiếu trực giao (Orthorectification) ]
  - Văn bản phẳng chuẩn 2D
  - Tỉ lệ chiều dài/rộng chính xác
  1. Chỉnh lưu ảnh quang trắc (Document Scanner & Orthorectification): Tự động nắn thẳng tài liệu chụp nghiêng thành mặt phẳng trực diện bằng cách xác định ma trận biến đổi xạ ảnh từ 4 góc tài liệu.
  2. Hệ thống cảnh báo chệch làn đường xe tự hành (ADAS): Sử dụng điểm biến mất (Vanishing Point) tại giao điểm của 2 vạch kẻ đường song song để tính toán góc nghiêng (Pitch/Yaw angles) của camera hành trình theo thời gian thực.
  3. Tái tạo mô hình 3D từ một cặp ảnh (Epipolar Geometry): Mô hình hóa các chùm tia chiếu và mặt phẳng biểu diễn epipolar qua ma trận cơ bản (Fundamental Matrix $F \in \mathbb{R}^{3 \times 3}$).

Hạn chế và hướng phát triển

Hạn chế

  • Mô hình xạ ảnh trong đồ án chỉ áp dụng cho không gian phẳng tuyến tính $\mathbb{RP}^2$, chưa bao hàm các hiện tượng quang sai thấu kính phi tuyến (Radial/Tangential Distortions).
  • Các phép tính trên trường số thực $\mathbb{R}$ chưa mở rộng ra trường số phức $\mathbb{CP}^2$ để xử lý trọn vẹn các phép giao giữa đường tròn và đường bậc hai ảo.

Hướng phát triển

  • Mở rộng sang $\mathbb{RP}^3$: Xây dựng hệ tọa độ thuần nhất 4 chiều $[x, y, z, w]^T$ phục vụ dựng hình đồ họa 3D (OpenGL/Vulkan Graphics Pipelines).
  • Tích hợp giải thuật ước lượng bền vững RANSAC: Kết hợp thuật toán tìm ma trận xạ ảnh 4 điểm với RANSAC để loại bỏ ngoại lai (outliers) khi ghép ảnh toàn cảnh panorama tự động.

Đối tượng hưởng lợi

+--------------------------------------------------------------------------+
|                       ĐỐI TƯỢNG HƯỞNG LỢI & GIÁ TRỊ                      |
+--------------------------------------------------------------------------+
| 🎓 Sinh viên Sư phạm Toán & CNTT                                          |
|    - Nắm vững bản chất hình học đằng sau phép nhân ma trận 3D            |
|    - Nguồn tài liệu học tập trực quan chuẩn mực theo Brannan (2011)      |
|--------------------------------------------------------------------------|
| 💻 Kỹ sư Computer Vision / Graphics                                      |
|    - Hiểu sâu bản chất toán học của cv2.getPerspectiveTransform          |
|    - Tránh các lỗi bẫy số học (Singularities) khi tính toán ma trận      |
|--------------------------------------------------------------------------|
| 🔬 Nhà nghiên cứu Robot & Quang trắc                                     |
|    - Nền tảng áp dụng cho hiệu chuẩn cảm biến Camera-LiDAR               |
+--------------------------------------------------------------------------+

Câu hỏi thường gặp

1. Yêu cầu phần cứng và phần mềm để triển khai giải thuật trong đồ án là gì?

Giải thuật đại số ma trận xạ ảnh $\mathbb{RP}^2$ có chi phí tính toán cực thấp ($O(1)$ cho mỗi phép tính điểm/đường). Hệ thống có thể chạy trên bất kỳ vi điều khiển nhúng nào (như Raspberry Pi, STM32) hoặc máy tính tiêu chuẩn với Python 3.8+ và thư viện NumPy.

2. Tại sao lại sử dụng Tọa độ thuần nhất thay vì Tọa độ Descartes thông thường?

Tọa độ Descartes $(x, y)$ không thể biểu diễn được các điểm ở vô cực và không thể biểu diễn phép tịnh tiến, phép chiếu xuyên tâm dưới dạng phép nhân ma trận. Tọa độ thuần nhất $[x, y, z]^T$ chuyển đổi tất cả các phép biến đổi hình học (tịnh tiến, quay, co giãn, phối cảnh) về phép nhân ma trận tuyến tính duy nhất $A \in GL(3, \mathbb{R})$.

3. Ma trận Homography cần tối thiểu bao nhiêu cặp điểm để xác định duy nhất?

Theo Định lý cơ bản của Hình học Xạ ảnh, cần đúng 4 cặp điểm (trong đó không có 3 điểm nào thẳng hàng). Mỗi cặp điểm cung cấp 2 phương trình độc lập, 4 cặp điểm cung cấp 8 phương trình, vừa đủ để xác định 8 bậc tự do của ma trận $3 \times 3$ (sau khi chuẩn hóa hệ số co giãn $\lambda$).

4. Xử lý như thế nào khi ma trận biến đổi có định thức bằng 0 ($\det(A) = 0$)?

Nếu $\det(A) = 0$, phép biến đổi bị suy biến (biến toàn bộ mặt phẳng thành một đường thẳng hoặc một điểm). Trong thuật toán, điều kiện kiểm tra định thức luôn được thực hiện trước; nếu $\det(A) = 0$, hệ thống sẽ kích hoạt ngoại lệ yêu cầu kiểm tra lại cấu hình 4 điểm đầu vào để đảm bảo không có 3 điểm nào thẳng hàng.

5. Khóa luận này có thể ứng dụng trực tiếp vào đồ họa game 3D không?

Có. Nguyên lý chiếu điểm từ không gian camera 3D lên màn hình 2D trong các engine như Unity/Unreal Engine (Projection Matrix) chính là sự mở rộng trực tiếp của không gian xạ ảnh $\mathbb{RP}^2$ lên $\mathbb{RP}^3$.


Kết luận

Khóa luận tốt nghiệp "Hình học Xạ ảnh của Đường thẳng" của sinh viên Vũ Lễ Hương Giang đã hoàn thành xuất sắc mục tiêu hệ thống hóa và trực quan hóa một phân ngành toán học trừu tượng. Bằng cách kết nối lịch sử nghệ thuật phối cảnh thời Phục Hưng với đại số tuyến tính hiện đại, công trình đã xây dựng một nền tảng vững chắc cho việc nghiên cứu và ứng dụng hình học xạ ảnh $\mathbb{RP}^2$. Đây không chỉ là tài liệu tham khảo có giá trị sư phạm cao cho sinh viên ngành Toán - Tin mà còn là cơ sở lý thuyết chuẩn xác cho các kỹ sư phát triển phần mềm trong các lĩnh vực đồ họa máy tính, thực tế ảo và thị giác robot.