Podcast “ITMO Research_”: cách tiếp cận đồng bộ hóa nội dung AR với một chương trình trên quy mô toàn bộ sân vận động

Đây là phần đầu tiên của bản ghi nội dung cuộc phỏng vấn thứ hai cho chương trình của chúng tôi (Podcast của Apple, Yandex.Âm nhạc). Vấn đề khách - Andrey Karsakova (kapc3d), Tiến sĩ, nhà nghiên cứu cao cấp tại Trung tâm Nghiên cứu Nhận thức Quốc gia, phó giáo sư tại Khoa Chuyển đổi Kỹ thuật số.

Từ năm 2012, Andrey làm việc trong nhóm nghiên cứu Trực quan hóa và Đồ họa Máy tính. Tham gia vào các dự án ứng dụng lớn ở cấp tiểu bang và quốc tế. Trong phần trò chuyện này, chúng ta nói về kinh nghiệm của anh ấy trong việc hỗ trợ AR cho các sự kiện công cộng.

Podcast “ITMO Research_”: cách tiếp cận đồng bộ hóa nội dung AR với một chương trình trên quy mô toàn bộ sân vận động
Hình ảnh Đây làKỹ thuật RAEng (Unsplash.com)

Bối cảnh và mục tiêu của dự án

Mã thời gian (theo phiên bản âm thanh) — 00:41

dmitrykabanov: Tôi muốn bắt đầu với dự án Đại hội thể thao châu Âu. Nó gồm nhiều thành phần, một số đội đã tham gia vào quá trình chuẩn bị và việc cung cấp thực tế tăng cường cho hàng nghìn khán giả ngay trong sự kiện tại sân vận động là một nhiệm vụ khá nghiêm túc. Về sự tham gia của bạn, đó có phải là phần mềm đầu tiên không?

kapc3d: Có, chúng tôi đã thực hiện phần lập trình và hỗ trợ trong suốt buổi diễn. Cần phải theo dõi, giám sát và khởi chạy mọi thứ trong thời gian thực, đồng thời làm việc với nhóm truyền hình. Nếu xem xét toàn bộ dự án này thì chúng ta có thể nói về lễ khai mạc và bế mạc Trò chơi châu Âu ở Minsk, cũng như về lễ khai mạc giải vô địch Kỹ năng thế giới ở Kazan. Đó là cùng một kế hoạch làm việc, nhưng các sự kiện khác nhau. Giữa họ có khoảng cách hai tháng. Chúng tôi đã chuẩn bị dự án cùng với những người trong công ty Sechenov.com.

Chúng tôi tình cờ gặp họ vào ngày Lễ hội khoa học, diễn ra vào mùa thu năm 2018. Các sinh viên thạc sĩ của chúng tôi đã giới thiệu dự án khóa học của họ về chủ đề VR. Các chàng trai đến gặp chúng tôi và hỏi chúng tôi đang làm gì trong phòng thí nghiệm. Nó trông giống như thế này:

— Bạn làm việc với VR, nhưng bạn có thể làm việc với thực tế tăng cường không?

- Ừ, đại loại là vậy.

- Có một nhiệm vụ như vậy, có lời giới thiệu như vậy. Bạn có thể làm được điều đó không?

Họ gãi củ cải một chút, hình như không có gì viển vông:

- Chúng ta hãy cố gắng nghiên cứu mọi việc trước rồi tìm cách giải quyết.

Dmitriy: Họ chỉ cung cấp hỗ trợ truyền thông?

Andrew: Họ tạo thành một ngăn xếp đầy đủ. Từ góc độ quản lý và tổ chức, họ hoàn toàn tham gia vào việc chỉ đạo, dàn dựng, lựa chọn cảnh quan, hậu cần và hỗ trợ kỹ thuật khác. Nhưng họ muốn làm điều gì đó đặc biệt cho Đại hội thể thao châu Âu. Những hiệu ứng đặc biệt này, giống như thực tế hỗn hợp, đã được thực hiện cho truyền hình từ khá lâu, nhưng chúng không thân thiện với ngân sách nhất về mặt triển khai kỹ thuật. Vì vậy, các chàng trai đã tìm kiếm những phương án thay thế.

Dmitriy: Hãy thảo luận vấn đề chi tiết hơn. Nó bao gồm những gì?

Andrew: Có một sự kiện. Nó kéo dài một tiếng rưỡi. Chúng tôi cần đảm bảo rằng khán giả xem trực tiếp và những người ngồi trong sân vận động có thể thấy các hiệu ứng thực tế tăng cường hoàn toàn đồng bộ với chương trình trực tiếp về thời gian và địa điểm trên trang web.

Có một số hạn chế về mặt kỹ thuật. Không thể thực hiện đồng bộ hóa thời gian qua Internet vì có lo ngại về tình trạng tải quá mức trên mạng với đầy đủ khán đài và khả năng các nguyên thủ quốc gia tham dự sự kiện có thể gây nhiễu mạng di động.

Andrey Karskov, ảnh từ tài liệu của Đại học ITMO
Podcast “ITMO Research_”: cách tiếp cận đồng bộ hóa nội dung AR với một chương trình trên quy mô toàn bộ sân vận độngChúng tôi có hai thành phần chính cho dự án này - trải nghiệm cá nhân mà mọi người có thể có được thông qua thiết bị di động và những gì được đưa vào màn hình thông tin và phát sóng truyền hình trong chính sân vận động.

Nếu đột nhiên một người đang xem các tập phim thực tế tăng cường thông qua thiết bị di động và đồng thời xuất hiện trên màn hình, anh ta sẽ thấy hình ảnh tương tự.

Chúng tôi cần hai hệ thống gần như khác nhau để được đồng bộ hóa hoàn toàn về mặt thời gian. Nhưng điểm đặc biệt của những buổi biểu diễn như vậy là đây là những sự kiện phức tạp, trong đó có sự tham gia của một số lượng lớn các dịch vụ kỹ thuật và mọi hoạt động đều được thực hiện theo mã thời gian. Mã thời gian là một thời điểm cụ thể mà tại đó một điều gì đó bắt đầu: ánh sáng, âm thanh, mọi người rời đi, cánh hoa sân khấu mở ra, v.v. Chúng tôi phải thích ứng với hệ thống này để mọi thứ có thể bắt đầu vào đúng thời điểm. Một đặc điểm khác là các cảnh và tập phim có thực tế tăng cường đều liên quan đến kịch bản.

Dmitriy: Nhưng bạn đã quyết định từ bỏ việc sử dụng mã thời gian do rủi ro bất khả kháng cao hay ban đầu bạn đã tính toán một số đặc tính nguồn và nhận ra rằng tải trên toàn bộ hệ thống sẽ khá cao?

Andrew: Nếu bạn thực hiện một dịch vụ đồng bộ hóa cho đối tượng như vậy thì không khó lắm. Trong mọi trường hợp, yêu cầu sẽ không thành công chỉ sau một đêm. Đúng, tải trọng cao, nhưng đó không phải là trường hợp khẩn cấp. Câu hỏi đặt ra là liệu có đáng để dành nguồn lực và thời gian cho việc này hay không nếu mạng đột ngột ngừng hoạt động. Chúng tôi không chắc điều này sẽ không xảy ra. Cuối cùng, mọi thứ đều hoạt động, có sự gián đoạn do tải, nhưng nó đã hoạt động và chúng tôi đã đồng bộ hóa theo mã thời gian theo một sơ đồ khác. Đây là một trong những thách thức toàn cầu.

Những khó khăn khi triển khai từ quan điểm UX

Mã thời gian (theo phiên bản âm thanh) — 10:42

Andrew: Chúng tôi cũng phải tính đến việc sân vận động không phải là địa điểm tổ chức buổi hòa nhạc cổ điển và đồng bộ hóa hệ thống trên khắp không gian cho thiết bị di động. Vì vậy, cách đây một thời gian tôi đã lan truyền câu chuyện thực tế tăng cường tại buổi hòa nhạc của Eminem, sau đó xảy ra trường hợp với Loboda.

Hình ảnh Tạm biệt Robert (Unsplash.com)
Podcast “ITMO Research_”: cách tiếp cận đồng bộ hóa nội dung AR với một chương trình trên quy mô toàn bộ sân vận độngNhưng đây luôn là một trải nghiệm trước mắt bạn - cả đám đông đứng trước sân khấu, việc đồng bộ hóa khá đơn giản. Trong trường hợp sân vận động, bạn cần hiểu mình đang ở phía nào của vòng tròn, vị trí tương đối sao cho sân vận động phù hợp với không gian tồn tại trong môi trường ảo. Đó là một thử thách chua chát. Họ đã cố gắng giải quyết nó bằng nhiều cách khác nhau và kết quả là một trường hợp gần giống với những gì Loboda đã thực hiện, nhưng không phải về mọi mặt.

Chúng tôi để người dùng quyết định anh ta đang ở đâu. Chúng tôi đánh dấu sân vận động, nơi mọi người chọn một khu vực, một hàng, một địa điểm. Tất cả điều này chỉ trong bốn “nhấp chuột”. Tiếp theo chúng tôi phải xác định hướng đi lên sân khấu. Để làm điều này, chúng tôi đã trình chiếu hình bóng của cảnh đó trông đại khái như thế nào từ góc nhìn tùy chỉnh. Anh ấy kết hợp nó, gõ nhẹ và thế là xong - sân khấu ngồi xuống. Chúng tôi đã cố gắng đơn giản hóa quá trình này nhiều nhất có thể. Tuy nhiên, 90% khán giả muốn xem chương trình không phải là những người có kinh nghiệm giao tiếp bằng thực tế tăng cường.

Dmitriy: Có một ứng dụng riêng cho dự án này?

Andrew: Có, một ứng dụng dành cho iOS và Android mà chúng tôi đã đưa lên cửa hàng. Có một chiến dịch quảng cáo riêng cho nó. Trước đây nó đã được mô tả chi tiết về cách tải xuống, v.v.

Dmitriy: Bạn cần hiểu rằng không có nơi nào để một người kiểm tra thể chất và học cách sử dụng một ứng dụng như vậy. Vì vậy, nhiệm vụ “giáo dục” khán giả trở nên phức tạp hơn.

Andrew: Vâng vâng. Với UX, chúng tôi gặp rất nhiều khó khăn vì người dùng muốn có được trải nghiệm chỉ bằng ba cú nhấp chuột: tải xuống, cài đặt, khởi chạy - nó đã hoạt động. Nhiều người quá lười để làm theo các hướng dẫn phức tạp, đọc các hướng dẫn, v.v. Và chúng tôi đã không cố gắng giải thích mọi thứ cho người dùng nhiều nhất có thể trong hướng dẫn: một cửa sổ sẽ mở ở đây, truy cập vào máy ảnh ở đây, nếu không nó sẽ không hoạt động, v.v. Dù bạn có viết bao nhiêu lời giải thích, dù bạn có nhai kỹ chi tiết đến đâu, dù bạn có chèn hình gif gì thì người ta cũng không đọc.

Ở Minsk, chúng tôi đã thu thập rất nhiều phản hồi về phần này và đã thay đổi rất nhiều đối với ứng dụng ở Kazan. Chúng tôi đưa vào đó không chỉ những bản ghi âm và mã thời gian tương ứng với một tập cụ thể của thực tế tăng cường, mà chúng tôi còn lấy toàn bộ tất cả các bản ghi âm và mã thời gian. Vì vậy, ứng dụng đã biết những gì đang xảy ra tại thời điểm ra mắt và - nếu một người đăng nhập không đúng lúc - nó sẽ đưa ra thông tin: “Đồng chí, tôi xin lỗi, tập AR của bạn sẽ có sau 15 phút nữa”.

Một chút về kiến ​​trúc và cách tiếp cận đồng bộ hóa

Mã thời gian (theo phiên bản âm thanh) — 16:37

Dmitriy: Bạn đã quyết định đồng bộ hóa bằng âm thanh?

Andrew: Vâng, nó đã xảy ra một cách tình cờ. Chúng tôi đang xem xét các lựa chọn và tình cờ gặp một công ty Cifrasoft từ Izhevsk. Họ tạo ra một SDK không đặc biệt phức tạp nhưng hoạt động tốt, cho phép bạn đồng bộ hóa âm thanh với thời gian. Hệ thống được định vị để hoạt động với TV, khi bạn có thể hiển thị nội dung nào đó trong ứng dụng dựa trên âm thanh của quảng cáo có điều kiện hoặc mang lại trải nghiệm tương tác dựa trên bản nhạc phim.

Dmitriy: Nhưng đó là một chuyện - bạn đang ngồi trong phòng khách của mình, và một chuyện khác - một sân vận động với hàng nghìn người. Mọi việc diễn ra như thế nào với bạn với chất lượng ghi âm và khả năng nhận dạng sau đó của nó?

Andrew: Có rất nhiều nỗi sợ hãi và nghi ngờ, nhưng trong hầu hết các trường hợp, mọi thứ đều được nhận biết rõ ràng. Họ xây dựng chữ ký trên bản âm thanh bằng các thuật toán tinh vi của mình - kết quả có trọng lượng nhẹ hơn tệp âm thanh gốc. Khi micrô lắng nghe âm thanh xung quanh, micrô sẽ cố gắng tìm các đặc điểm này và nhận dạng bản nhạc dựa trên chúng. Trong điều kiện tốt, độ chính xác đồng bộ hóa là 0,1-0,2 giây. Điều này là quá đủ. Trong điều kiện xấu, sự chênh lệch lên tới 0,5 giây.

Rất nhiều phụ thuộc vào thiết bị. Chúng tôi đã làm việc với một nhóm thiết bị lớn. Đối với iPhone chỉ có 10 mẫu. Chúng hoạt động tốt về mặt chất lượng và các tính năng khác. Nhưng với người máy, sở thú giống như mẹ tôi vậy. Không phải nơi nào đồng bộ hóa âm thanh cũng hoạt động. Có những trường hợp không thể nghe được các bản nhạc khác nhau trên các thiết bị khác nhau do một số đặc thù. Đâu đó tần số thấp biến mất, đâu đó tần số cao bắt đầu thở khò khè. Nhưng nếu thiết bị có bộ chuẩn hóa trên micrô thì quá trình đồng bộ hóa luôn hoạt động.

Dmitriy: Xin vui lòng cho chúng tôi biết về kiến ​​trúc - những gì được sử dụng trong dự án?

Andrew: Chúng tôi đã tạo ứng dụng trong Unity - tùy chọn đơn giản nhất về đa nền tảng và hoạt động với đồ họa. Quỹ AR đã qua sử dụng. Chúng tôi ngay lập tức nói rằng chúng tôi không muốn làm phức tạp hệ thống, vì vậy chúng tôi đã giới hạn mình ở một nhóm thiết bị hỗ trợ ARKit và ARCore để có thời gian thử nghiệm mọi thứ. Chúng tôi đã tạo một plugin cho DigitalSoft SDK, nó có trên GitHub của chúng tôi. Chúng tôi đã tạo một hệ thống quản lý nội dung để các tập lệnh chạy theo dòng thời gian.

Chúng tôi đã mày mò một chút với hệ thống hạt, bởi vì người dùng có thể truy cập vào một tập cụ thể bất cứ lúc nào và chúng tôi cần anh ấy xem mọi thứ kể từ thời điểm anh ấy đồng bộ hóa. Chúng tôi đã nghiên cứu một hệ thống cho phép các kịch bản diễn ra rõ ràng theo thời gian để trải nghiệm 3D có thể được cuộn qua lại, giống như trong một bộ phim. Mặc dù nó hoạt động tốt với các hình ảnh động cổ điển, nhưng chúng tôi phải mày mò với các hệ thống hạt. Tại một thời điểm nào đó, chúng bắt đầu sinh sản và nếu bạn thấy mình ở đâu đó trước điểm sinh sản, chúng vẫn chưa được sinh ra, mặc dù có vẻ như chúng nên như vậy. Nhưng vấn đề này thực sự khá dễ giải quyết.

Đối với phần di động, kiến ​​trúc khá đơn giản. Đối với việc phát sóng truyền hình thì mọi thứ phức tạp hơn. Chúng tôi đã có những hạn chế về phần cứng. Khách hàng đặt ra một điều kiện: “Ở đây chúng tôi có một công viên phần cứng như vậy, nói một cách đại khái, mọi thứ cần phải hoạt động tốt trên đó”. Chúng tôi ngay lập tức tập trung vào thực tế là chúng tôi sẽ làm việc với các thẻ quay video có giá thành tương đối rẻ. Nhưng ngân sách không có nghĩa là chúng tệ.

Có những hạn chế về phần cứng, thẻ ghi video và điều kiện làm việc - cách chúng ta nhận được hình ảnh. Thẻ chụp - Blackmagic Design, hoạt động theo sơ đồ khóa bên trong - đây là khi khung hình video đến với bạn từ máy ảnh. Thẻ có chip xử lý riêng, trong đó một khung cũng được chèn vào, khung này phải được đặt chồng lên trên khung đến. Thẻ trộn chúng lại - chúng tôi không chạm vào bất cứ thứ gì khác ở đó và không ảnh hưởng đến khung hình từ máy quay video. Cô ấy gửi kết quả đến phòng điều khiển thông qua đầu ra video. Đây là một phương pháp tốt để phủ tiêu đề và những thứ tương tự khác, nhưng nó không phù hợp lắm với các hiệu ứng thực tế hỗn hợp vì có nhiều hạn chế đối với quy trình kết xuất.

Dmitriy: Về mặt tính toán thời gian thực, liên kết đối tượng hay cái gì khác?

Andrew: Về mặt chất lượng và đạt được hiệu quả mong muốn. Bởi vì chúng ta không biết mình đang đặt bức tranh lên trên cái gì. Chúng tôi chỉ cần gửi thông tin về màu sắc và độ trong suốt trên luồng ban đầu. Không thể đạt được một số hiệu ứng như khúc xạ, độ trong suốt chính xác và bóng bổ sung bằng sơ đồ này. Để làm điều này, bạn cần kết xuất mọi thứ lại với nhau. Ví dụ, không có cách nào để tạo ra hiệu ứng biến dạng không khí do lửa hoặc nhựa đường nóng. Điều tương tự cũng xảy ra với việc chuyển hiệu ứng trong suốt có tính đến chiết suất. Ban đầu, chúng tôi tạo nội dung dựa trên những hạn chế này và cố gắng sử dụng các hiệu ứng thích hợp.

Xem bài đăng này trên Instagram

Bế mạc Đại hội thể thao châu Âu lần thứ II ở Minsk.

Một bài đăng được chia sẻ bởi Alena Lanskaya (@alyonalanskaya) vào ngày 30 tháng 2019 năm 3 lúc 19:XNUMX chiều PDT

Dmitriy: Bạn đã có nội dung của riêng mình trong dự án đầu tiên cho Đại hội thể thao châu Âu chưa?

Andrew: Không, giai đoạn phát triển nội dung chính được thực hiện bởi những người đến từ Sechenov.com. Các nghệ sĩ đồ họa của họ đã vẽ nội dung cơ bản bằng hình ảnh động và những thứ khác. Và chúng tôi đã tích hợp mọi thứ vào động cơ, thêm các hiệu ứng bổ sung, điều chỉnh nó để mọi thứ hoạt động chính xác.

Nếu chúng ta nói về đường ống, thì đối với việc phát sóng truyền hình, chúng tôi đã tập hợp mọi thứ trên Unreal Engine 4. Thật trùng hợp, ngay lúc đó họ đã bắt đầu tăng cường các công cụ của mình cho thực tế hỗn hợp. Hóa ra mọi thứ không đơn giản như vậy. Ngay cả bây giờ tất cả các công cụ đều còn thô; chúng tôi phải hoàn thiện rất nhiều thứ bằng tay. Ở Minsk, chúng tôi đã làm việc trên một bản dựng động cơ tùy chỉnh, nghĩa là chúng tôi viết lại một số thứ bên trong động cơ để chẳng hạn như chúng tôi có thể vẽ bóng lên trên các vật thể thật. Phiên bản động cơ hiện tại vào thời điểm đó không có các tính năng cho phép thực hiện việc này bằng các công cụ tiêu chuẩn. Vì lý do này, những người của chúng tôi đã tự lắp ráp tùy chỉnh để cung cấp mọi thứ cực kỳ cần thiết.

Các sắc thái khác và sự thích ứng với WorldSkills ở Kazan

Mã thời gian (theo phiên bản âm thanh) — 31:37

Dmitriy: Nhưng tất cả điều này trong một khoảng thời gian khá ngắn?

Andrew: Thời hạn rất chặt chẽ Dự án Kazan, theo Minsk - bình thường. Khoảng sáu tháng để phát triển, nhưng tính đến thực tế là có sáu người tham gia. Đồng thời, chúng tôi đang sản xuất bộ phận di động và phát triển các công cụ để sản xuất truyền hình. Không chỉ có một đầu ra hình ảnh. Ví dụ: một hệ thống theo dõi bằng quang học, để làm được điều này, bạn phải tạo các công cụ của riêng mình.

Dmitriy: Có sự chuyển thể nào từ dự án này sang dự án khác không? Trong một tháng rưỡi, có cần tận dụng diễn biến và chuyển dự án có nội dung mới sang địa điểm mới không?

Andrew: Vâng, đã được một tháng rưỡi. Chúng tôi đã lên kế hoạch cho toàn đội một kỳ nghỉ kéo dài hai tuần sau dự án Minsk. Nhưng ngay sau khi đóng cửa, những người từ Sechenov.com đến và nói: "Chà, vậy hãy làm Kazan nhé." Chúng tôi vẫn cố gắng nghỉ ngơi một chút nhưng chuyển sang dự án này khá nhanh. Chúng tôi đã hoàn thành một số công việc kỹ thuật. Phần lớn thời gian được dành cho nội dung, bởi vì đối với WorldSkills, chúng tôi đã làm toàn bộ việc đó, chúng tôi chỉ phối hợp với nhóm sản xuất. Chỉ có một kịch bản về phía họ. Nhưng nó dễ dàng hơn - không cần phải lặp lại nhiều lần. Khi bạn tự tạo nội dung, bạn sẽ thấy ngay cách nó hoạt động trong công cụ và bạn có thể nhanh chóng chỉnh sửa và điều phối.


Về phần di động, chúng tôi đã tính đến tất cả những điều tinh tế mà chúng tôi có ở Minsk. Chúng tôi đã thiết kế ứng dụng mới, thiết kế lại kiến ​​trúc một chút, thêm hướng dẫn nhưng cố gắng làm cho nó ngắn gọn và rõ ràng nhất có thể. Chúng tôi đã giảm số bước của người dùng từ khởi chạy ứng dụng đến xem nội dung. Một tháng rưỡi là đủ để hoàn thành một dự án thích hợp. Trong một tuần rưỡi, chúng tôi đã đến được địa điểm. Làm việc ở đó dễ dàng hơn vì mọi quyền kiểm soát dự án đều nằm trong tay ban tổ chức, không cần phối hợp với các ủy ban khác. Làm việc ở Kazan đơn giản và dễ dàng hơn và việc có ít thời gian hơn là điều bình thường.

Dmitriy: Nhưng bạn có quyết định giữ nguyên phương pháp đồng bộ hóa dựa trên âm thanh không?

Andrew: Vâng, chúng tôi đã để nó bằng âm thanh. Nó hoạt động tốt. Như người ta nói, nếu nó hoạt động thì đừng chạm vào nó. Chúng tôi chỉ tính đến các sắc thái của chất lượng của bản âm thanh. Khi họ trình diễn phần giới thiệu, có một phần huấn luyện để mọi người thử trước khi chương trình bắt đầu. Điều đáng ngạc nhiên là tại thời điểm phát bản nhạc trong sân vận động có tiếng vỗ tay như vũ bão, “trực tiếp”, hệ thống cho phép bạn đồng bộ hóa tốt với bản nhạc này, nhưng nếu tại thời điểm này, tiếng vỗ tay ghi lại được trộn lẫn với bản nhạc thì đường đua không còn bị bắt nữa. Những sắc thái như vậy đã được tính đến và mọi thứ đều được đồng bộ hóa khá tốt về mặt âm thanh.

Tái bút Trong phần thứ hai của số báo, chúng ta nói về trực quan hóa dữ liệu khoa học, mô hình hóa quy trình trong các dự án khác, phát triển trò chơi và chương trình thạc sĩ "Công nghệ phát triển trò chơi máy tính" Chúng tôi sẽ đăng tiếp ở bài viết tiếp theo. Các bạn có thể lắng nghe và ủng hộ chúng tôi tại đây:

PPS Trong khi đó, trên phiên bản tiếng Anh của Habr: cái nhìn cận cảnh hơn về Đại học ITMO.

Nguồn: www.habr.com

Thêm một lời nhận xét