2011-05-17 27 views
8

Tôi đang làm việc trên một ứng dụng mà tôi muốn theo dõi vị trí của người dùng thiết bị di động bên trong một tòa nhà không có GPS. Người dùng bắt đầu tại một vị trí cố định nổi tiếng (chính xác đến trong vòng 5 cm), tại thời điểm đó gia tốc kế trong điện thoại sẽ được kích hoạt để theo dõi bất kỳ chuyển động nào khác liên quan đến vị trí cố định đó. Câu hỏi của tôi là, trong các điện thoại thông minh thế hệ hiện tại (điện thoại, điện thoại android, v.v ...), người ta có thể mong đợi để có thể theo dõi vị trí của một người dựa trên gia tốc mà các điện thoại này thường trang bị bằng cách nào?Độ chính xác thực tế của gia tốc điện thoại khi được sử dụng để định vị là gì?

Ví dụ cụ thể sẽ tốt, chẳng hạn như "Nếu tôi di chuyển 50 mét X từ điểm xuất phát, 35 mét Y từ điểm xuất phát và 5 mét Z từ điểm bắt đầu, tôi có thể mong đợi vị trí của tôi gần đúng trong +/- 80 cm trên hầu hết các điện thoại thông minh hiện tại ", hoặc bất cứ thứ gì.

Tôi chỉ có một sự hiểu biết bề ngoài về các kỹ thuật như bộ lọc Kalman để điều chỉnh trôi, mặc dù các kỹ thuật đó có liên quan đến ứng dụng của tôi và ai đó muốn mô tả chất lượng của các chỉnh sửa mà tôi có thể nhận được từ các kỹ thuật như vậy thêm.

+0

Tôi không có dữ liệu, nhưng tôi có thể tưởng tượng rằng điều này khác rất nhiều đối với mỗi mô hình. Nó thậm chí có thể là cách bạn giữ điện thoại tạo ra sự khác biệt. – GolezTrol

+0

Không chính xác như nhau, nhưng kết hợp tam giác tháp vô tuyến, GPS và đo và điều chỉnh lỗi gia tốc theo thời gian - bạn sẽ có thể nâng cao dữ liệu vị trí. –

Trả lời

13

Nếu bạn tích hợp giá trị gia tốc hai lần bạn nhận được vị trí nhưng lỗi là khủng khiếp. Nó là vô ích trong thực tế.

Đây là an explanation why (Google Tech Talk) lúc 23:20.

Tôi đã trả lời a similar question.

+12

Bạn đã trả lời câu hỏi này ở đâu. Câu trả lời của bạn dường như là một tập hợp chu kỳ của 'điều này là có thể, nhưng rất sai lầm, xem ở đây' và tròn và tròn và tròn ...... – thepaperboy

+0

@ user1423133 Tôi đã sửa liên kết. Xin lỗi cho sự pha trộn lên. Thật kỳ lạ khi bạn là người đầu tiên chú ý đến nó. Cảm ơn bạn đã cảnh báo! – Ali

+0

Nếu bạn cần nó cho một kiểm tra đôi trong phản ứng tổng hợp, nó không phải là một điều khủng khiếp. Nó tương đối vô ích cho vị trí tuyệt đối, nhưng để đưa ra một gợi ý cho thuật toán khác, đó là một điều tuyệt vời để có. Sử dụng bộ lọc kalman –

7

Tôi không biết nếu chủ đề này vẫn còn mở hoặc ngay cả khi bạn vẫn đang cố gắng tiếp cận này, nhưng tôi ít nhất có thể cung cấp một đầu vào này, xem xét tôi đã cố gắng điều tương tự.

Như Ali đã nói .... thật khủng khiếp! lỗi đo lường nhỏ nhất trong gia tốc lần lượt là rediculess sau khi tích hợp kép. Và do tăng liên tục và giảm tốc trong khi đi bộ (với mỗi bước chân trong thực tế), lỗi này nhanh chóng tích lũy theo thời gian.

Xin lỗi vì tin xấu. Tôi cũng không muốn tin điều đó, cho đến khi tự thử nó ... lọc ra các phép đo không mong muốn cũng không hiệu quả.

Tôi có cách tiếp cận khác có thể chính đáng, nếu bạn quan tâm đến việc tiếp tục với dự án của mình. (Cách tiếp cận mà tôi theo sau cho luận án của tôi cho mức độ kỹ thuật máy tính của tôi) ... thông qua xử lý hình ảnh!

Về cơ bản, bạn tuân theo lý thuyết cho chuột quang. Luồng quang học, hoặc được gọi bằng một khung nhìn, Ego-Motion. Các thuật toán xử lý hình ảnh được triển khai trong NDK của Android. Thậm chí triển khai OpenCV thông qua NDK để đơn giản hóa các thuật toán. Bạn chuyển đổi hình ảnh thành thang độ xám (bù cho các độ sáng khác nhau), sau đó thực hiện thresholding, tăng cường hình ảnh, trên ảnh (để bù cho hình ảnh bị mờ trong khi đi bộ), sau đó phát hiện góc (tăng độ chính xác cho tổng kết quả ước lượng), sau đó khớp mẫu so sánh thực tế giữa các khung hình ảnh và ước tính sự dịch chuyển thực tế theo số lượng pixel.

Sau đó, bạn đi qua thử và sai để ước tính lượng pixel nào đại diện cho khoảng cách nào và nhân với giá trị đó để chuyển chuyển pixel thành chuyển thực tế. Điều này làm việc cho đến một tốc độ di chuyển nhất định mặc dù, vấn đề thực sự là hình ảnh máy ảnh vẫn nhận được quá mờ cho so sánh chính xác do đi bộ. Điều này có thể được cải thiện bằng cách thiết lập máy ảnh shutterspeeds, hoặc ISO (Tôi vẫn còn chơi xung quanh với điều này).

Vì vậy, hy vọng điều này sẽ giúp ... nếu không google cho Egomotion cho các ứng dụng thời gian thực.Cuối cùng bạn sẽ có được những thứ đúng và tìm ra jibberish tôi chỉ giải thích cho bạn. tận hưởng :)

+0

Tôi đã xem xét khả năng xử lý hình ảnh. Trạng thái của nghệ thuật tại thời điểm này là gì về độ chính xác? Tôi đoán người ta không thể đơn giản bước vào một căn phòng xa lạ và nhận được các phép đo chính xác đáng tin cậy về khoảng cách đi qua, ít nhất là không có bất kỳ thứ gì tiếp cận thư viện mã thả xuống? –

+2

Tôi đã thực hiện một vài thử nghiệm bằng cách đi bộ một khoảng cách nhất định (với tốc độ đi chậm và ổn định, để hủy hiệu ứng làm mờ video, nhưng để xem độ chính xác thực sự với tính toán chuyển pixel) và so sánh kết quả dịch chuyển điểm ảnh của từng thử nghiệm. một tấm thảm màu đồng đều. Kết quả tạo ra sai số trung bình trung bình 6% trong giá trị kết quả danh nghĩa (trên đường cong Gausian). Mặt khác, độ chính xác khoảng 94%. Thử nghiệm trước đây trên bề mặt gạch được sản xuất tròn khoảng 90,8% độ chính xác. Toàn bộ "mẹo trong mã" là hoàn thiện việc triển khai thực hiện thresholding của bạn (đối với mẫu phù hợp) – PwC

1

Cách tiếp cận quang học là tốt, nhưng OpenCV cung cấp một vài biến đổi tính năng. Sau đó bạn có tính năng phù hợp (OpenCV cung cấp này).

Nếu không có điểm tham chiếu thứ hai (2 máy ảnh), bạn không thể tái tạo lại nơi bạn đang trực tiếp vì độ sâu. Tốt nhất bạn có thể ước tính độ sâu cho mỗi điểm, giả định một chuyển động, ghi điểm giả định dựa trên một vài khung hình và đoán lại ở từng độ sâu và chuyển động cho đến khi nó có ý nghĩa. Đó không phải là khó để mã nhưng nó không phải là ổn định, chuyển động nhỏ của sự vật trong cảnh vít nó lên. Tôi đã thử :)

Tuy nhiên, với máy ảnh thứ hai, nó không hề khó. Nhưng điện thoại di động không có chúng.

+0

Ngày nay, một số điện thoại có hai máy ảnh. – rriemann

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