VITALIFY.ASIA logo

AI dựng mô hình 3D từ bản vẽ ba hình chiếu — dùng SDF để nắm “hình dạng sơ bộ”

Thử nghiệm AI dựng mô hình 3D từ hình chiếu bằng SDF (Signed Distance Function). Mô hình đạt IoU trung bình 97,1% trên 500 mẫu chưa dùng để huấn luyện; với tổ hợp hình hộp, 72,5% kết quả khớp hoàn toàn. Bài viết trình bày cơ chế, cách polygon hóa, kiểm chứng, giới hạn và hướng phát triển.

AI dựng mô hình 3D từ bản vẽ ba hình chiếu — dùng SDF để nắm “hình dạng sơ bộ”
Nội dung bài viết

Trong thực tế thiết kế, công việc đối chiếu ba hình chiếu gồm hình chiếu bằng, hình chiếu đứng và hình chiếu cạnh để dựng mô hình 3D đến nay vẫn thường được thực hiện thủ công.

Chúng tôi đang thử nghiệm một AI nhằm tự động hóa công việc này.

Trong bài viết này, chúng tôi sẽ giới thiệu khái niệm SDF — thành phần cốt lõi của phương pháp — cũng như những gì hệ thống hiện có thể làm được, thông qua các ví dụ cụ thể.

SDF là gì?

SDF (Signed Distance Function — hàm khoảng cách có dấu) là một hàm trả về khoảng cách từ bất kỳ điểm nào trong không gian đến bề mặt của vật thể.

Khoảng cách này có dấu:

  • Nếu điểm nằm bên trong vật thể, giá trị là âm.
  • Nếu nằm bên ngoài, giá trị là dương.
  • Nếu điểm nằm chính xác trên bề mặt, giá trị bằng 0.

{Pic1}

Tấm có lỗ (bên trái) và SDF của nó (bên phải). Màu xanh biểu thị phía trong hình (giá trị âm), màu cam biểu thị phía ngoài (giá trị dương), còn đường màu trắng là SDF = 0, tức bề mặt của hình. Các đường sọc là đường đồng mức theo khoảng cách 0,1. Phần bên trong lỗ được xem là “bên ngoài” của hình nên có giá trị dương; đối với một điểm nằm trong lỗ, bề mặt gần nhất chính là mép lỗ. Hình minh họa được vẽ ở 2D để dễ hiểu, nhưng SDF của vật thể 3D thực hiện cùng nguyên lý đó trên toàn bộ không gian 3D.

Biểu diễn vật thể bằng SDF có những ưu điểm sau:

  • Có thể biểu diễn mọi hình dạng bằng cùng một phương pháp. Mặt phẳng, mặt cong, lỗ hay phần lõm đều có thể được mô tả chỉ bằng một loại thông tin là “giá trị khoảng cách”.
  • Phù hợp làm đầu ra của AI. AI chỉ cần học một hàm nhận tọa độ của một điểm và trả về khoảng cách, mà không cần xử lý những vấn đề như số lượng đỉnh khác nhau giữa từng hình dạng.
  • Có thể chuyển sang polygon bất cứ lúc nào. Chỉ cần trích xuất bề mặt SDF = 0 là có thể tạo thành mô hình 3D.

Tuy nhiên, phương pháp này cũng có điểm yếu.

SDF do AI học được thường khiến các góc hoặc rãnh mảnh trở nên hơi tròn và mờ. Ngay trong hình bên phải của Hình 1 cũng xuất hiện một đường thừa bên trong phần khoét hình bán nguyệt.

Vì vậy, trong dự án này, chúng tôi chọn cách không sử dụng SDF làm hình dạng cuối cùng, mà dùng nó như một “phác thảo sơ bộ” của hình dạng.

Cơ chế hoạt động

  1. Đầu vào là bản vẽ ba hình chiếu được thể hiện bằng đường liền — các cạnh nhìn thấy — và đường nét đứt — các cạnh bị che khuất. Các đường này không được đưa vào dưới dạng ảnh mà dưới dạng danh sách tọa độ.
  2. Với mỗi điểm trong không gian, AI kiểm tra vị trí của điểm đó so với các đường trong từng hình chiếu — chẳng hạn đường nào ở gần nhất và phải cắt qua bao nhiêu đường theo mỗi hướng — rồi ước tính giá trị SDF.
  3. SDF được dùng để nắm hình dạng tổng thể của vật thể (Stage 1).
  4. Các tọa độ chính xác được lấy trực tiếp từ bản vẽ. SDF chỉ được dùng để quyết định phần nào cần được chọn, sau đó hệ thống dựng polygon chính xác (Stage 2).
Ví dụ về dữ liệu huấn luyện. Bên trái là vật thể gốc, bên phải là bản vẽ ba hình chiếu. Các đường nét đứt màu đỏ là những cạnh bị che khuất.

Dữ liệu huấn luyện được tạo từ các vật thể sinh ra bằng cách cộng hoặc trừ ngẫu nhiên các hình hộp chữ nhật, hình trụ, hình cầu và hình xuyến (torus), cùng với bản vẽ ba hình chiếu tương ứng của chúng.

Vì vật thể được tạo trước rồi mới sinh ra bản vẽ ba hình chiếu, nên chúng tôi biết chính xác đáp án đúng (Ground Truth, GT).

Chúng tôi sử dụng 50.000 mẫu để huấn luyện và đánh giá trên 500 mẫu hoàn toàn không được sử dụng trong quá trình huấn luyện.

Để làm tiêu chuẩn so sánh, chúng tôi cũng tính toán phương pháp Visual Hull.

Phương pháp này chỉ sử dụng đường biên ngoài của ba hình chiếu, kéo phần bóng từ ba hướng vào không gian rồi lấy phần giao nhau để tạo thành vật thể.

Có thể xem đây là kết quả khi chỉ dựa vào hình dáng bên ngoài. Vì vậy, phần mà AI vượt qua Visual Hull có thể được coi là mức độ AI đã đọc được “thông tin bên trong bản vẽ”, chẳng hạn các đường nét đứt.

Những gì đã đạt được ở thời điểm hiện tại

Ước tính hình dạng: IoU 97,1% trên 500 mẫu kiểm thử

IoU — tỷ lệ chồng lấp giữa kết quả dự đoán và đáp án đúng — đạt trung bình 97,1% trên 500 mẫu kiểm thử.

Đối với các hình dạng kết hợp từ hình hộp chữ nhật, IoU đạt 98,7%. Với các hình có bề mặt cong, kết quả là 96,1%.

Trong khi đó, kết quả của Visual Hull lần lượt là 91,6%, 94,2% và 90,0%, vì vậy AI đều vượt qua phương pháp này.

改善の歩み
Quá trình cải thiện. AI ban đầu còn thua Visual Hull với 88,6%. Sau khi thêm đặc trưng “phải cắt qua bao nhiêu đường theo từng hướng”, mô hình đã vượt Visual Hull. Tiếp đó, nhờ điều chỉnh phương pháp huấn luyện và mở rộng dữ liệu cũng như mô hình, kết quả đã tăng lên 97,1%.

Hãy xem một số ví dụ thực tế.

Từ trái sang phải là Ground Truth, Visual Hull và đầu ra của AI — tức SDF được chuyển trực tiếp thành polygon.

Hình trụ có một hốc lớn ở phía trên. Vì phần lõm này không xuất hiện trong bóng nhìn từ bên ngoài nên Visual Hull chỉ tạo ra một hình trụ có mặt trên phẳng và kín, với IoU 80,3%. AI đọc được phần lõm từ các đường nét đứt màu đỏ trong hình chiếu đứng và hình chiếu cạnh, sau đó loại bỏ chính xác phần tương ứng, đạt IoU 100,0%.
Hình hộp có nhiều phần khoét chồng lên nhau. AI đọc được các bậc bị che khuất từ đường nét đứt và đạt 94,1%, so với 82,5% của Visual Hull. Tuy nhiên, với các hình dạng phức tạp như thế này, hiện tại vẫn xuất hiện sai lệch so với GT.

Polygon hóa chính xác: 72,5% tổ hợp hình hộp khớp hoàn toàn

Chúng tôi cũng thử quy trình dựng mô hình 3D chính xác bằng cách sử dụng SDF như một “phác thảo hình dạng”.

Với các tổ hợp hình hộp chữ nhật, có thể thực hiện theo quy trình sau:

  1. Từ các điểm đầu cuối của đường trong ba hình chiếu, thu thập các giá trị tọa độ x, y, z nguyên trạng từ bản vẽ.
  2. Dùng các tọa độ đó để chia không gian thành những hình hộp nhỏ — các cell.
  3. Sử dụng SDF để xác định mỗi cell là “có vật thể” hay “rỗng”.
  4. Nối các mặt ngoài của những cell có vật thể để tạo polygon.
  5. Từ vật thể đã tạo, vẽ lại ba hình chiếu và kiểm tra xem chúng có khớp với bản vẽ đầu vào hay không.
Trong 189 mẫu kiểm thử là tổ hợp hình hộp chữ nhật, 72,5% khớp hoàn toàn với đáp án đúng — IoU từ 99,99% trở lên.

Do tọa độ được lấy trực tiếp từ bản vẽ, ngay cả khi SDF hơi mờ, kích thước vẫn chính xác miễn là quyết định cell nào được chọn là đúng.

Điểm đặc biệt quan trọng là bước kiểm chứng cuối cùng.

Trong số những hình dạng vượt qua bước kiểm chứng — chiếm 56,6% — không có một trường hợp nào sai so với đáp án đúng.

Điều đó có nghĩa là ngay cả khi không biết Ground Truth, chỉ từ bản vẽ chúng ta vẫn có thể xác nhận rằng “kết quả này là đúng”.

Mặt khác, trong số các trường hợp bị đánh giá là không khớp, có 15,9% thực tế vẫn đúng nhưng bị xác định là sai vì những khác biệt rất nhỏ trong cách vẽ.

Do đó, tiêu chí của bước kiểm chứng vẫn còn cần được điều chỉnh.

Triển vọng và giới hạn trong tương lai

Triển vọng

  • Khi tăng kích thước dữ liệu và mô hình, hiệu quả vẫn tiếp tục cải thiện một cách khá ổn định. Đặc biệt, mức cải thiện với bề mặt cong là lớn.
  • Thay vì chia đường cong thành nhiều đoạn thẳng nhỏ, nếu truyền trực tiếp cung tròn vào AI, có khả năng giảm được hiện tượng mờ ở các bề mặt cong.
  • Với các hình dạng có bề mặt cong, nếu đọc kích thước từ các đường tròn trên bản vẽ và dựng bằng các thành phần phần mềm CAD như OpenCascade, chúng tôi kỳ vọng có thể tạo được mô hình chính xác.
  • Nếu hỗ trợ từ bốn hình chiếu trở lên hoặc thêm mặt cắt, khả năng ước tính các hình dạng bị che khuất sẽ còn chính xác hơn.

Giới hạn

  • Khoảng cách so với bản vẽ thực tế: Hiện tại chúng tôi chỉ huấn luyện trên các “bản vẽ sạch” do chính mình tạo ra. Hệ thống chưa được thử nghiệm với bản vẽ thực tế có đường kích thước, chú thích hoặc các ký hiệu rút gọn.
  • Bản vẽ không có đáp án duy nhất: Có những vật thể khác nhau nhưng lại tạo ra ba hình chiếu hoàn toàn giống nhau, nên về nguyên lý không thể luôn xác định chính xác chỉ một đáp án. Sẽ cần một cơ chế đưa ra nhiều phương án để con người lựa chọn.
  • Xu hướng lấp đầy khi không chắc chắn: Ở những vị trí AI không đủ tự tin, nó có xu hướng trả lời rằng “có vật thể”, dẫn đến việc lấp kín các phần lõm bị che khuất (Hình 7).
  • Giới hạn về độ chi tiết: Những rãnh cực mảnh hoặc thành rất mỏng so với kích thước tổng thể của chi tiết vẫn khó biểu diễn chính xác.
Ví dụ thất bại. AI xác định phần lõm phía trên bên phải là “có vật thể” nên đã lấp kín nó. Bước kiểm chứng phát hiện chính xác rằng kết quả không khớp, nhưng hiện tại hệ thống vẫn chưa thể tự động sửa lỗi.

SDF nếu sử dụng đơn độc sẽ không thể tạo ra dữ liệu CAD có kích thước hoàn toàn chính xác.

Tuy nhiên, với vai trò là “phác thảo hình dạng”, nó đã đạt độ chính xác khá cao. Khi kết hợp với các tọa độ chính xác lấy từ bản vẽ, chúng tôi bắt đầu thấy được khả năng dựng ra một mô hình 3D hoàn toàn chính xác.

Kết luận

SDF nếu sử dụng đơn độc sẽ không thể trở thành dữ liệu CAD có kích thước chính xác.
Các góc sẽ hơi tròn và những rãnh mảnh sẽ bị mờ.

Tuy nhiên, nếu sử dụng như một “phác thảo hình dạng” để xác định đâu là phần có vật thể và đâu là phần rỗng, mô hình đã đạt độ chính xác trên 97% với những hình dạng hoàn toàn không được sử dụng trong quá trình huấn luyện.

Chúng tôi cũng xác nhận rằng AI có thể đọc các phần lõm bị che khuất từ những đường nét đứt trong bản vẽ và loại bỏ chúng — điều không thể thực hiện nếu chỉ nhìn vào đường biên ngoài.

Đồng thời, chúng tôi nhận ra rằng không cần giao toàn bộ công việc cho SDF.

Kích thước được lấy chính xác từ bản vẽ, còn AI chỉ đảm nhiệm việc quyết định phần nào cần được chọn.

Cuối cùng, từ vật thể đã hoàn thành, hệ thống vẽ lại ba hình chiếu để kiểm tra xem chúng có khớp với đầu vào hay không.

Với cách kết hợp này, đối với tổ hợp hình hộp chữ nhật, hệ thống đã có thể tự động tạo ra mô hình 3D khớp hoàn toàn với đáp án đúng, đồng thời kiểm chứng được tính chính xác của kết quả.

Thu hoạch lớn nhất của lần thử nghiệm này là chúng tôi bắt đầu thấy được một cách kết hợp hiệu quả giữa:

“Sự hiểu biết còn mơ hồ” của AI

và

“Tính toán cùng kiểm chứng nghiêm ngặt” dựa trên các quy tắc.

Mỗi bên đảm nhiệm phần việc mà mình làm tốt nhất và bổ sung cho điểm yếu của bên còn lại.

Đừng để ý tưởng chỉ nằm trên giấy. Với tốc độ và sự linh hoạt đã được chứng minh qua 1.000+ dự án, chúng tôi sẽ giúp doanh nghiệp của bạn bứt phá.

Quay lại Blog
I'm Duper, ask me anything!