2010-02-10 24 views
9

Đối với công việc của tôi, tôi đã sử dụng phiên bản Java của ARToolkit (NyARTookit). Cho đến nay nó đã được chứng minh đủ tốt cho nhu cầu của chúng tôi, nhưng ông chủ của tôi đang bắt đầu muốn khung được chuyển sang các nền tảng khác như web (Flash, vv) và điện thoại di động. Trong khi tôi cho rằng tôi có thể sử dụng các cổng khác, tôi đang ngày càng khó chịu bởi không biết làm thế nào bộ công cụ và hơn thế nữa, từ một số hạn chế. Sau đó tôi cũng sẽ cần phải mở rộng khả năng của bộ để thêm các công cụ như tương tác (nút ảo trên thẻ, vv), mà theo như tôi đã thấy trong NyARToolkit không được hỗ trợ. Vì vậy, về cơ bản, tôi cần phải thay thế ARToolkit bằng một máy dò đánh dấu tùy chỉnh (và trong trường hợp của NyARToolkit, hãy cố gắng loại bỏ JMF và sử dụng một giải pháp tốt hơn thông qua JNI). Tuy nhiên tôi không biết làm thế nào các máy dò này hoạt động. Tôi biết về đồ họa 3D và tôi đã xây dựng một khung tốt đẹp xung quanh nó, nhưng tôi cần phải biết làm thế nào để xây dựng các công nghệ cơ bản :-).Thuật toán tăng cường thực tế dựa trên điểm đánh dấu (như thuật toán của ARToolkit) hoạt động như thế nào?

Có ai biết bất kỳ nguồn nào về cách triển khai ứng dụng thực tế tăng cường dựa trên điểm đánh dấu từ đầu không? Khi tìm kiếm trong google tôi chỉ tìm thấy "ứng dụng" của AR, không phải là thuật toán cơ bản: - /.

+0

Tìm kiếm "tầm nhìn máy tính". Về cơ bản, nó chỉ là rất nhiều đại số tuyến tính. –

Trả lời

10

'Từ đầu' là thuật ngữ tương đối. Thực sự làm điều đó từ đầu, mà không sử dụng bất kỳ mã thị giác đã tồn tại từ trước, sẽ rất đau đớn và bạn sẽ không làm tốt công việc của nó hơn là toàn bộ cộng đồng thị giác máy tính.

Tuy nhiên, nếu bạn muốn thực hiện AR với mã thị giác hiện tại, điều này là hợp lý hơn. Các nhiệm vụ phụ cần thiết là:

  1. Tìm điểm đánh dấu trong hình ảnh hoặc video của bạn.
  2. Đảm bảo chúng là những thứ bạn muốn.
  3. Tìm hiểu cách chúng được định hướng tương đối so với máy ảnh.

Nhiệm vụ đầu tiên là bản địa hóa điểm then chốt. Các kỹ thuật cho việc này bao gồm phát hiện điểm phát SIFT, máy dò góc Harris và các thiết bị khác. Một số trong số này có triển khai mã nguồn mở - tôi nghĩ OpenCV có đầu dò góc Harris trong hàm GoodFeaturesToTrack.

Nhiệm vụ thứ hai là tạo mô tả vùng. Các kỹ thuật cho điều này bao gồm các mô tả SIFT, các mô tả HOG và nhiều người khác. Nên có một triển khai mã nguồn mở của một trong những nơi này.

Nhiệm vụ thứ ba cũng được thực hiện bởi các trình bản địa hóa điểm chính. Lý tưởng nhất là bạn muốn chuyển đổi affine, vì điều này sẽ cho bạn biết cách đánh dấu đang ngồi trong 3-không gian. Máy dò hạt Harris phải làm việc cho việc này. Để biết thêm chi tiết, hãy truy cập vào đây: http://en.wikipedia.org/wiki/Harris_affine_region_detector

+1

Cảm ơn bạn đã tham khảo. Tôi không tìm cách để làm một công việc tốt hơn so với toàn bộ cộng đồng thị giác máy tính, tôi chỉ tìm cách để thực hiện các tập hợp con cần thiết cho nhiệm vụ cụ thể của việc tìm kiếm các dấu hiệu :-). Tuy nhiên những gì tôi cần biết là làm thế nào tất cả các phần hoạt động, từ bước có một bitmap với khung để xây dựng ma trận chuyển đổi được sử dụng để đặt các đối tượng 3D. Chi tiết :-) Về cơ bản: 1. Lấy hình ảnh từ máy ảnh 2. Chuyển đổi sang RGB hoặc một số định dạng có thể xử lý khác 3. ??? N. Sử dụng ma trận chuyển đổi. Tôi cần biết chính xác các bước 3..N-1 :-) –

+0

Tôi khuyên bạn nên mua sách O'Reilly OpenCV. – forefinger

+0

có giải thích thuật toán hay chỉ API? –

Các vấn đề liên quan