Google PhotoSphere

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 27)

Ứng dụng Photo Sphere của Google trước đây có sẵn trên các thiết bị Android, ứng dụng tương đương mới được Google đưa ra cho các thiết bị chạy nền tảng IOS.

Về cơ bản, khi bạn đang đứng ở đâu đó bạn muốn chụp trong tất cả xung quanh điểm đó, chỉ cần nhấn nút chụp và hình ảnh cầu sẽ bắt đầu hiển thị dấu chấm màu xanh trên màn hình của bạn. Nghiêng và xoay máy ảnh cho đến khi bạn đã chụp tất cả các dấu chấm và bạn sẽ có được một hình ảnh 360 độ đầy đủ. Có rất nhiều cảnh hình ảnh các ứng dụng hiện có - iPhone đi kèm với một tính năng tương tự được xây dựng trong máy ảnh của nó - nhưng các phần mềm Google cung cấp cho bạn một kinh nghiệm Street View giống như cho phép bạn di chuyển tất cả xung quanh hình ảnh khi nó đã được khâu lại với nhau.

2.3.3.1 Thiết bị sử dụng

Phần mềm Google Photo Sphere hiện tại đã có trên 2 nền tảng Android Google và IOS Apple. Nhưng để tiện lợi cho người sử dụng khi dùng chương trình của luận văn tải ảnh lên hệ thống thì luận văn quyết định chọn ứng dụng Photo Sphere trên nền tảng IOS để thu thập dữ liệu.

Phiên bản hiện tại của ứng dụng này hỗ trợ các thiết bị chạy nền tảng từ IOS 7.0 trở lên, do đó phần cứng tương yêu cầu là các dòng Iphone 4, Ipad 2 trở về sau.

Hình 15 Phiên bản Iphone 4 và Ipad 2

2.3.3.2 Tóm tắt qui trình chụp ảnh

Không giống như tính năng chụp quang cảnh tích hợp sẵn được cung cấp bởi ứng dụng máy ảnh của Apple, Google Photo Sphere cho phép người dùng di chuyển xung quanh hình ảnh cả trái phải và cả trên dưới, đồng nghĩa với việc người dùng có thể tạo được cả ảnh quang cảnh hình trụ và ảnh quang cảnh hình cầu.

Các bước thực hiện:

- Cài ứng dụng trên iPhone, iPad, iPod từ kho ứng dụng của Apple Store. - Sau khi bỏ qua bước hướng dẫn cho lần chạy đầu tiên, bắt đầu bước chụp bằng cách nhấn vào biểu tượng máy ảnh bên góc dưới phía phải màn hình.

- Xoay màn hình quanh quang cảnh bạn muốn chụp. Sẽ có một biểu tượng màu vàng và một vòng tròn trung tâm khung ảnh. Biểu tượng chấm màu vàng là vị trí mong muốn bức ảnh tiếp theo của bạn, nó hoạt động dựa vào gia tốc kế của thiết bị iOS.

Hình 16 Giao diện chụp ảnh quang cảnh của Google PhotoSphere - Khi vòng tròn trung tâm trùng với biểu tượng vị trí mong muốn, ứng dụng sẽ tự động chụp lại cảnh đó.

- Chương trình tự phát hiện khi đã chụp đủ một vòng, bấm kết thúc.

-Sau khi đã hoàn thành, thao tác ghép các ảnh đã chụp lại với nhau được ứng dụng thực hiện hoàn toàn tự động.

-Chính vì sự tiện lợi, dễ dùng và phổ biến của ứng dụng này nên luận văn sử dụng ảnh chụp từ ứng dụng Photosphere để sử dụng.

Hình 17 Ảnh thu được từ Google Photo Sphere

2.3.3.3 Ƣu và nhƣợc điểm của phƣơng pháp

Ưu điểm của phương pháp này là chất lượng ảnh cao, dễ thực hiện. Tuy nhiên phương pháp này có nhược điểm chính là nó không thích hợp cho các đối tượng chuyển động trong ảnh. Do mỗi ảnh trong dãy ảnh liên tiếp được chụp vào một thời điểm khác nhau nên rất khó ghép được các đối tượng chuyển động một cách chính xác.

Chƣơng 3

PHÂN TÍCH THIẾT KẾ HỆ THỐNG 3.1 Phân tích và thiết kế hệ thống

3.1.1 Kiến trúc hệ thống

Luận văn đã nghiên cứu tổng quan về các phương pháp thu nhận ảnh toàn cảnh 360 độ (tức là các ảnh có góc nhìn ngang 360 độ, góc nhìn do ̣c có thể thay đổi tùy theo thiết bi ̣ nhưng thường trên 90 độ - cung cấp cho người sử du ̣ng góc nhìn rộng hơn rất nhiều các ảnh thông thường) về thiết bi ̣, phương pháp thu nhận và xử lý cũng như các ưu nhược điểm và tính khả thi ta ̣i Việt Nam trong các điều kiện hiện có của luận văn. Đồng thời, luận văn cũng đã nghiên cứu tổng quan về các phương pháp lưu trữ và xử lý ảnh quang cảnh 360 độ, các hệ thống bản đồ trực tuyến, các hệ quản trị cơ sở dữ li ệu có hỗ trợ yếu tố truy vấn không gian và các hệ thống nền tảng về quản tri ̣ nội dung trên môi trường Web. Từ đó luận văn đã phân tích , so sánh và quyết đi ̣nh phương pháp thực hiện đề tài với các n ội dung công việc chính như sau:

 Sử du ̣ng mã ngu ồn mở PHP phiên bản 5.3 phát triển ứng du ̣ng h ệ thống quản trị nội dung và làm nền tảng để phát triển lõi của h ệ thống cung cấp ảnh 360 độ. Các module bổ sung thêm javascript cho hệ quản trị nhằm mục thuận tiện cho người xử lý.

 Sử dụng thiết bị di động, cụ thể ở đây là điện thoại iPhone của Apple kết hợp với phần mềm Photoshepre của google để thu thập ảnh quang cảnh 360 độ.  Sau khi thu thập ảnh quang cảnh 360 độ, thiết bị tải ảnh nên thông qua module của hệ thống và được xử lý lại tại đây nhằm giảm kích thước tệp tin, trích xuất các thông tin metadata về vị trí địa lý (kinh độ, vĩ độ) của ảnh đó.  Sử dụng bản đồ nền của Apple (với hệ điều hành ios 6.0 trở lên) và Google (với hệ điều hành nhỏ hơn 6.0)

 Sử dụng hệ quản trị cơ sở dữ liệu My SQL cho việc lưu trữ ảnh và các thông tin địa lý liên quan.

Hệ thống được xây dựng theo mô hình máy khách/máy chủ. Trong đó máy chủ và quản trị sử dụng công nghệ Web (cụ thể ở đây là PHP). Máy khách sử dụng công nghệ di động (ở đây là nền tảng IOS của Apple).

Mô hình này sử dụng môi trường Internet để truyền dữ liệu. Web service phục vụ cho mô hình này sử dụng HTTP GET để lấy dữ liệu về máy khách và

HTTP POST để đẩy dữ liệu lên máy chủ. Các dữ liệu phản hồi về định dạng JSON, dữ liệu gửi lên dạng multipart/form-data.

Hình 19 Kiến trúc hệ thống

3.1.2 Các tác nhân chính

Các tác nhân chính của hệ thống ảnh quang cảnh 360 độ gồm có: (adsbygoogle = window.adsbygoogle || []).push({});

- Người sử dụng: Là những người sử dụng thiết bị IOS của Apple có thể xem hình ảnh, di chuyển bản đồ, nạp ảnh mới thông qua các hotspot v.v. Người sử dụng không phải đăng ký với hệ thống và không cần đăng nhập khi sử dụng. Người sử dụng đồng thời cũng có khả năng tải ảnh lên hệ thống

- Người nhập dữ liệu: Là người sử dụng có đăng ký với hệ thống, được phép nhập và sửa dữ liệu hình ảnh, địa lý và dữ liệu ngữ cảnh (hay dữ liệu mô tả)

- Người quản trị hệ thống: Là người sử dụng đặc biệt, có mọi quyền trong hệ thống: Cài đặt, xóa, tạm dừng/khôi phục hệ thống, thêm/xóa/sửa đổi các module và giao diện, hệ quản trị cơ sở dữ liệu, PHP, Webserver lên các phiên bản mới hơn v.v..

-

3.1.3 Mô tả các ca sử dụng

Hình 20 Mô tả các ca sử dụng

Tên Use Case Truy cập ứng dụng

Tác nhân chính Người sử dụng

Kích hoạt Người sử dụng mở ứng dụng di động

Luồng sự kiện chính:

- Người sử dụng mở ứng dụng trên thiết bị di động (chạy nền tảng IOS) - Hiển thị ảnh quang

Luồng sự kiện phụ:

Bảng 2. Mô tả ca truy cập ứng dụng

Tên Use Case Đăng nhập

Tác nhân chính Người quản trị, người nhập dữ liệu

Kích hoạt Người quản trị đăng nhập hệ thống, người nhập dữ liệu đăng nhập hệ thống

Luồng sự kiện chính:

- Người quản trị, người nhập dữ liệu đăng nhập hệ thống - Hiển thị nhập ID và Password

- Đăng nhập thành công - Đăng nhập thất bại

- Hệ thống hiển thị các chức năng quản trị (nếu người đăng nhập là quản trị hệ thống), nhập dữ liệu

Luồng sự kiện phụ:

- Hiện thị thông báo khi chưa điền ID và Password.

Bảng 3. Mô tả ca đăng nhập hệ thống

Tên Use Case Tƣơng tác bản đồ trực tuyến

Tác nhân chính Người sử dụng

Kích hoạt Người sử dụng chọn chức năng bản đồ trong ứng dụng

Luồng sự kiện chính:

- Chuyển sang màn hình bản đồ cho phép người sử dụng chọn các hotspot. - Người sử dụng di chuyển bản đồ bằng cách kéo thả, phóng to thu nhỏ bản đồ, lựa chọn điểm hotspot trên bản đồ bằng cách chạm vào màn hình của thiết bị di động.

- Đóng màn hình chọn bản đồ, quay lại màn hình ảnh quang cảnh.

- Hiển thị ảnh quang cảnh tương ứng với điểm hotspot hiện hành trên bản đồ Luồng sự kiện phụ: (adsbygoogle = window.adsbygoogle || []).push({});

Bảng 4. Mô tả ca tương tác bản đồ trực tuyến

Tên Use Case Tải lên dữ liệu

Tác nhân chính Người sử dụng

Kích hoạt Người sử dụng chọn chức năng tải lên trong ứng dụng

Luồng sự kiện chính:

- Chuyển sang màn hình lựa chọn ảnh quang cảnh. - Cho phép ứng dụng thông tin vị trí địa lý của thiết bị. - Người dùng chọn ảnh quang cảnh cần tải lên hệ thống - Ảnh được tải lên máy chủ.

Luồng sự kiện phụ:

Tên Use Case Chỉnh sửa dữ liệu

Tác nhân chính Người nhập dữ liệu, người quản trị hệ thống Kích hoạt Người sử dụng kích hoạt chức năng xoá hoặc

sửa ảnh với ảnh cần thay đổi thông tin Luồng sự kiện chính:

- Nhập dữ địa lý trực tiếp trên form sửa ảnh - Xoá những ảnh không cần thiết.

Luồng sự kiện phụ:

Bảng 6. Mô tả ca chỉnh sửa dữ liệu

Tên Use Case Tạo/sửa liên kết ảnh

Tác nhân chính Người nhập dữ liệu, người quản trị hệ thống

Kích hoạt Người nhập dữ liệu, người quản trị hệ

thống kích hoạt form sửa dữ liệu rồi chọn chức năng thêm mới neighbours Luồng sự kiện chính:

- Hiển thị tất cả các ảnh quang cảnh đã được tải lên hệ thống theo thứ tự ưu tiên thời gian.

- Sau khi chọn một ảnh, người sử dụng chỉ cần chọn trên ảnh quang cảnh mà ảnh hiện tại liên kết tới ảnh được chọn.

Luồng sự kiện phụ:

Bảng 7. Mô tả ca tạo sửa liên kết ảnh

Tên Use Case Quản trị ngƣời nhập liệu

Tác nhân chính Người quản trị hệ thống

Kích hoạt Tạo thông tin người dùng sử dụng

truy vấn của MYSQL Luồng sự kiện chính:

- Liệt kê, xem thông tin của người nhập liệu

- Thêm, xóa, thay đổi thông tin của người nhập liệu Luồng sự kiện phụ:

3.1.4 Thiết kế cơ sở dữ liệu

Hệ thống ảnh quang cảnh 360 độ được xây dựng bằng ngôn ngữ PHP, kết hợp với hệ quản trị cơ sở dữ liệu MySQL. Tất cả được cài đặt trên một máy chủ Linux sửa dụng Kloxo Hosting Panel.

Hệ thống sử dụng bảng dữ liệu tên là “panorama” với cấu trúc được mô tả như sau: Thuộc tính Khóa Chấp nhận NULL? Kiểu dữ liệu Độ dài lớn nhất Giải thích ý nghĩa vid Khóa chính (adsbygoogle = window.adsbygoogle || []).push({});

Không int Mã định danh của bản

ghi

image Không varchar 256 Đường dẫn tương đối

đến ảnh quang cảnh đặt trên máy chủ

lat Có double Vĩ độ (dạng thập phân)

của ảnh quang cảnh

lon Có double Kinh độ (dạng thập

phân) của ảnh quang cảnh

alt Có double Độ cao so với mặt biển

của ảnh quang cảnh neighbours Có varchar 256 Danh sách các ảnh quang

cảnh lân cận, dùng để tạo hotspot

info Có varchar 10240 Dữ liệu ngữ cảnh (hay

dữ liệu mô tả) của ảnh quang cảnh

Bảng 9. Cấu trúc bảng dữ liệu panorama

Thuộc tính Khóa Chấp nhận NULL? Kiểu dữ liệu Độ dài lớn nhất Giải thích ý nghĩa vid Khóa chính

Không int Mã định danh của bản ghi

username Không varchar 256 Tên đăng nhập của tài khoản

password Không varchar 256 Mật khẩu truy cập của tài khoản

Bảng 10. Cấu trúc bảng dữ liệu thành viên

3.2 Mô tả các phần mềm mã nguồn mở đƣợc tích hợp 3.2.1 Các module phần máy chủ

Như đã trình bày phần trên, máy chủ hệ thống là một máy sử dụng hệ điều hành Linux có cài Cpanel Kloxo để quản lý các hosting. Ngôn ngữ kích bản phía máy chủ hỗ trợ là PHP 5.3, hệ quản trị cơ sở dữ liệu là Mysql 5.0.95. Sau đó luận văn sử dụng một tên miền có sẵn làm địa chỉ giao tiếp với máy khách [13].

3.2.1.1 PHP

Như đã biết, PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới. Chính vì vậy, luận văn chọn ngôn ngữ này để phát triển phần máy chủ xử lý các webservice và tương tác với cơ sở dữ liệu.

Có nhiều framework hỗ trợ cho các nhà phát triển các dự án nhanh chóng, an toàn, dễ quản lý hơn. Đáng kể đến như các framework: Zend, Code Igniter, CakePHP, Symfony, Yii... Với qui mô đề tài luận văn và đáp ứng các yêu cầu của máy khách, học viên quyết định sử dụng php thuần mà không sử dụng thêm framework nào khác.

Phiên bản php được sử dụng trong luận văn là PHP 5.3. Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm. Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng rất được chờ đợi: Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn. Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới. PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3. Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP. Ngày 14

tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện các câu truy vấn.

3.2.1.2 MySQL

MySQL từng được sở hữu và tài trợ bởi công ty Thụy Điển MySQL AB, bây giờ thuộc sở hữu của Oracle. MySQL là một phần mềm mã nguồn mở dành cho các dự án phi lợi nhuận. Để sử dụng nó cho mục đích thương mại, các nhà phát triển phải trả một lệ phí giấy phép và các chức năng dùng thêm.

MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS - Relational Database Management System) mà chạy phía máy chủ cung cấp cho nhiều người sử dụng truy cập vào một số cơ sở dữ liệu. MySQL được thiết kế theo ba nguyên tắc, đó là hiệu suất, độ tin cậy và khả năng sử dụng. Một hệ thống quản lý cơ sở dữ liệu quan hệ giá rẻ, đặc biệt, nhanh chóng và hiệu quả đã được tạo ra bằng cách làm theo những nguyên tắc này. MySQL trở thành một công cụ hoàn hảo cho các nhà phát triển và các quản trị viên để duy trì thiết lập và cấu hình các ứng dụng phức tạp. Nó có các tính năng chính sau:

 Hiệu suất: Trong cơ sở dữ liệu quan hệ, tốc độ thực thi một truy vấn và trả về kết quả cho người tìm kiếm là rất quan trọng. MySQL là rất nhanh, đôi khi việc thực hiện các đơn đặt hàng lớn thậm chí còn nhanh hơn so với đối thủ cạnh tranh của nó. Các thông số trên trang web chính (adsbygoogle = window.adsbygoogle || []).push({});

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 27)