Kết quả xây dựng hệ thống

Một phần của tài liệu Xây dựng hệ thống cung cấp ảnh quang cảnh 360 độ trên điện thoại di động (Trang 45)

Toàn bộ phần quản trị nội dung và trả dữ liệu cho ứng dụng di động bao gồm mã nguồn php, javascript, css và các tài nguyên liên quan được luận văn để trên máy chủ và được truy vấn qua tên miền http://ios4vn.com/panorama/. Tất cả các đường dẫn và web service trả dữ liệu về sau đều được gọi qua tên miền này.

Hình 21 Giao diện nhập dữ liệu của hệ thống ảnh quang cảnh 360 độ

Sau khi đăng nhập (../login.php), người quản trị nội dung được chuyển đến hiển thị ở màn hình chính gồm danh sách các ảnh được tải nên bởi người sử dụng (../manager.php). Tại đây hiển thị thông của ảnh:

- Latitude: vĩ độ của ảnh. - Longitude: kinh độ của ảnh. - Alt: vĩ độ của ảnh.

- Neighbours: các id của ảnh liên quan và vị trí của nó trên ảnh hiện tại. Các thông tin này hiển thị dưới dạng một chuỗi. Ví dụ chuỗi “66,87,55 68,35,77”. Trong đó:

o Thông tin về các ảnh được ngăn cách nhau bởi dấu cách “ ”. o Ảnh hiện tại có thể di chuyển tới hai ảnh mang Id là 66 và 68. o Với ảnh có id bằng 66 thì vị trí di chuyển là 87% chiều ngang

o Tương tự với ảnh có id bằng 68 thì vị trí di chuyển lần lượt là 35% và 77%.

Hình 22 Giao diện cập nhật vị trí của một ảnh - Latitude: nhập lại vĩ độ của ảnh.

- Longitude: nhập lại kinh độ của ảnh.

- Thêm mới ảnh neighbour: thêm các ảnh để di chuyển đến.

Hình 24 Giao diện chọn điểm liên kết với ảnh hiện tại và ảnh liên kết

- Toạ độ X: vị trí di chuyển sang ảnh kế tiếp tính theo % chiều ngang của ảnh từ bên trái sang.

- Toạ độ Y: vị trí di chuyển sang ảnh kế tiếp tính theo % chiều dọc của ảnh từ bên trên xuống.

Người nhập liệu có thể sử dụng bằng cách click vào một điểm trên ảnh hệ thống sẽ tính ra hai toạ độ này hoặc nhập trực tiếp vào từng ô đó.

3.3.2 Phần mềm cho di động 3.3.2.1 Màn hình chính 3.3.2.1 Màn hình chính

Hình 25 Giao diện sử dụng chính cho người sử dụng

Về phía người sử dụng, sau khi khởi động ứng dụng, chương trình sẽ yêu cầu máy chủ trả về ảnh mặc định đầu tiên. Giao thức ở đây sử dụng là HTTP GET:

- URL yêu cầu là: /panorama.php

- Dữ liệu phản hồi dạng JSON: { "data":{ "vid":"63", "image":"http://ios4vn.com/panorama/images/IMG_5456_03 60.jpg", "lat":"21.028032367458", "lon":"105.83563059568", "alt":"0", "neighbours":[

{ "vid":"62", "margin_left":"75", "margin_top":"53" }, { "vid":"64", "margin_left":"25", "margin_top":"53" } ], "info":null } } Trong đó:

- “data”: key chung bao gồm các thông tin phản hồi, kiểu đối tượng. - “vid”: mã định danh của ảnh hiện tại, kiểu chuỗi.

- “image”: đường dẫn tuyệt đối của ảnh quang cảnh cần hiển thị, kiểu chuỗi.

- “lat”: vĩ độ của ảnh quang cảnh đang hiển thị, kiểu số thập phân. - “long”: kinh độ của ảnh quang cảnh đang hiển thị, kiểu số thập phân. - “alt”: cao độ của ảnh (nếu có), kiểu số thập phân.

- “neighbours”: các ảnh liên quan mà từ vị trí hiện tại có thể di chuyển tới. Kiểu mảng

o “vid”: định danh của ảnh liên quan.

o “margin_left”: toạ độ x theo % chiều ngang ảnh hiện tại tính từ bên trái.

o “margin_top”: toạ độ y theo % chiều dọc ảnh hiện tại tính từ bên phải.

- “info”: thông tin về vị trí của ảnh hiện tại.

Tại màn hình đầu tiên này, ứng dụng sẽ tải ảnh mặc định ở vị trí trung tâm vườn của khu Văn miếu tương ứng với ảnh quang cảnh vid = 63. Từ đường dẫn ảnh quang cảnh 360 độ trả về, chương cần phải tải ảnh về sau đó xử lý hiển thị ảnh này thành dạng ảnh hình trụ. Sau đó với các vị trí tương với các vị trí liên kết được qui định trong dữ liệu “neighbours”.

Ứng với mỗi phần tử trong mảng “neighbours” sẽ có một “hotspot” là mũi tên màu xanh ở vị trí được miêu tả trong phần tử đó. Ví dụ phần tử có thông số là: { "vid":"62", "margin_left":"75", "margin_top":"53" }

Trong đó thì “vid” là định danh của ảnh kế tiếp khi click vào hotspot. Các thông số 75 và 53 lần lượt % là toạ độ x tính theo chiều ngang từ bên trái và toạ độ y tính theo chiều dọc từ bên phải để hiển thị hotspot tương ứng. Giả sử khi click vào hotspot này thì quy trình lại lặp lại như tải ảnh ban đầu, chỉ khác url yêu cầu dữ liệu. Trong trường hợp này, url yêu cầu sẽ là: (adsbygoogle = window.adsbygoogle || []).push({});

../panorama.php?pid=62

Dữ liệu JSON trả về dạng giống như đã miêu tả ở trên, gồm các thông tin liên quan đến ảnh này như đường dẫn ảnh, kinh độ, vĩ độ, cao độ, thông tin và các liên kết đến cảnh kế tiếp.

3.3.2.2 Màn hình bản đồ

Hình 26 Giao diện chọn địa điểm trên bản đồ cần xem

Màn hình này sẽ hiển thị toàn bộ các địa điểm có ảnh quang cảnh 360 độ đã được thu thập.

- URL yêu cầu là: ../list_address.php

- Dữ liệu phản hồi JSON có định dạng (sau khi đã rút gọn danh sách các điểm hiển thị): { "data":[ { "vid":"80", "image":"115_HangLuoc.jpg", "lat":"21.03863472623", "lon":"105.8471175575", "alt":"0", "neighbours":"82,97,55 78,28,62", "info":null }, { "vid":"66",

"image":"ww.jpg", "lat":"21.028750895268", "lon":"105.83592429757", "alt":"0", "neighbours":"65,87,62 67,36,60", "info":null }, { "vid":"64", "image":"z6.jpg", "lat":"21.028220136384", "lon":"105.83571642637", "alt":"0", "neighbours":"65,36,65 63,86,70", "info":null } ] }

Sau khi nhận được dữ liệu, chương trình bóc tách được một mảng các điểm bao gồm kinh độ và vĩ độ được hiển thị như trên hình vẽ. Để quan sát chi tiết một vị trí, chỉ cần chọn một điểm trên bản đồ. Từ id của điểm đó chương trình gọi yêu cầu:

../panorama.php?pid={id điểm được chọn}

và trở lại màn hình hiển thị ảnh quang cảnh 360 độ như phần trước đã giới thiệu.

3.3.2.3 Màn hình tải ảnh lên

Hình 27 Màn hình tải ảnh lên.

Để gửi một ảnh quang cảnh nào đó người sử dụng chụp được lên máy chủ, bấm vào nút “Tải lên” sau đó chọn ảnh quang cảnh thích hợp. Các ảnh này được chụp bằng các phần mềm đã giới thiệu ở chương 2, hoặc được đồng bộ vào máy từ các ảnh được thu thập bằng các máy ảnh chuyên dụng hoặc máy ảnh thường kết hợp gương cầu.

Tại các nền tảng hệ điều hành IOS nhỏ hơn 7.0 có hỗ trợ lấy các thông tin EXIF của ảnh nên việc tải lên đơn thuần chỉ cần chọn ảnh. Máy chủ sẽ thực hiện việc trích lấy vị trí kinh độ, vĩ độ, cao độ đối với những ảnh đã gắn kèm thuộc tính này khi chụp.

Tuy nhiên, từ nền tảng IOS 7.0 và mới hơn không hỗ trợ lấy các thông tin EXIF từ ảnh nên việc gửi ảnh lên cần kết hợp với chế độ định vị của thiết bị. Do đó, trước khi tải ảnh nên người sử dụng cần cho phép ứng dụng truy cập chức năng lấy vị trí hiện tại (GPS) của thiết bị. Khi bấm nút “Tải lên”, những thông tin được lấy từ chức năng GPS gồm kinh độ và vĩ độ sẽ tự động gửi kèm theo dữ liệu ảnh.

Hệ thống dùng giao thức HTTP POST để gửi ảnh lên, các thông tin gửi lên gồm có:

- “image”: tệp tin ảnh (dạng file).

- “longitude”: kinh độ của ảnh (dạng chuỗi). - “latitude”: vĩ độ của anh (dạng chuỗi). - “info”: thông tin về ảnh (dạng chuỗi).

KẾT LUẬN

Để phục vụ cho việc xây dựng hệ thống cung cấp ảnh quang cảnh 360 độ trên điện thoại di động, luận văn đã đi sâu tìm hiểu về các khái niềm ảnh quang cảnh, các phương pháp tạo ảnh và khôi phục ảnh gốc. Đặc biệt là các phương pháp thu thập dữ liệu ảnh quang cảnh kết hợp dữ liệu địa lý bằng các thiết bị từ chuyên dụng đến các phổ thông như điện thoại di động.

Hiện tại, các hệ thống ảnh quang cảnh trên nền web có nhiều nhưng việc kết hợp với dữ liệu địa lý sau đó hiển thị trên điện thoại di động thì chỉ có dịch vụ Street View của Google. Xuất phát từ yêu cầu thực tế những dữ liệu của dịch vụ Google Street View chưa có ở Việt Nam và phương pháp thu thập dữ liệu của dịch vụ này khá tốn kém. Luận văn đã đề xuất ra một số giải pháp để khắc phục những nhược điểm này.

Tuy nhiên, các vấn đề được đề xuất mới ở phạm vi thử nghiệm quy mô nhỏ. Hệ thống chưa thu thập được số dữ liệu lớn. Một số chức năng có thể cải tiến sao cho tiện dụng nhất cho cả người nhập liệu và người sử dụng ứng dụng di động.

HƢỚNG NGHIÊN CỨU TIẾP THEO

Trong tương lai, hệ thống cung cấp ảnh quang cảnh 360 độ trên điện thoại đi động có thể được tiếp tục phát triển. Ứng dụng có thể hiển thị được các ảnh quang cảnh 360 độ hình cầu, độ phân giải lớn hơn. Để tiện lợi và giảm thiểu các thao tác chỉnh sửa cho người nhập liệu, quá trình liên kết các ảnh được di chuyển sẽ chuyển thành là một chức năng trong ứng dụng của người sử dụng. Người dùng có thể thay đổi khung nhìn bằng cách kéo thả các vị trí hoặc quay thiết bị đến vị trí cần quan sát dựa vào chức năng gia tốc kế hỗ trợ sẵn trên thiết bị. Các thao tác chỉnh sử dữ liệu địa lý cũng được hỗ trợ bằng các bản đồ trực quan.

TÀI LIỆU THAM KHẢO Tiếng việt

1. Nguyễn Chí Công, Nguyễn Hải Châu, Nghiên cứu xây dựng hệ thống cung

cấp quang cảnh 360 độ đường phố Hà Nội trên bản đồ trực tuyến, 2012.

2. Nguyễn Hải Châu, Nghiên cứu xây dựng hệ thống cung cấp video 360 độ

trên bản đồ trực tuyến cho một số đường phố chính của Hà Nội, 2012. (adsbygoogle = window.adsbygoogle || []).push({});

Tiếng anh

3. Espen Oldeide Helgedagsrud, Efficient implementation and processing of a

real-time panorama video pipeline with emphasis on dynamic stitching,

2013.

4. Julia Benzar, Hardware and software for panoramic photography, 2012.

5. Matias Tukiainen, Online virtual Tour by Panoramic Photography, 2013. 6. Yeung Kwok Ho, Panorama Interpolation for Novel View Composition,

2000.

7. CompuPhase (2000), Panoramic images projection, Technical Report 2000.

Website 8. ww2.ptgrey.com 9. www.allseeing-i.com 10.www.apple.com 11.www.baodulich.net.vn 12.www.bing.com/maps 13. www.en.wikipedia.org 14. www.github.com 15. www.google.com/maps 16.www.hswsolutions.com 17. www.mapjack.com 18. www.sbjson.org 19. www.tomtom.com 20. www.vi.wikipedia.org 21. www.vuanhiepanh.com 22.www.wonav.com

Một phần của tài liệu Xây dựng hệ thống cung cấp ảnh quang cảnh 360 độ trên điện thoại di động (Trang 45)