1
| 本文作者: qqfly | 2017-02-20 11:24 |
雷鋒網按:本文作者qqfly,上海交通大學機器人所博士生,本科畢業于清華大學機械工程系,主要研究方向機器視覺與運動規劃,會寫一些好玩的內容在微信公眾號:Nao(ID:qRobotics)。本文由雷鋒網獨家首發。
過完一個很長的寒假,終于又開學了。
昨天在圖書館刷 RL 教材的時候看到一個有趣的 app,叫做「唐納德涂鴉」(Android:Donald Draws Executive Doodles;IOS:Trump Executive Order)。

大概功能就是可以將用戶自定義的內容(圖片、涂鴉、文字等)放在 D.T. 總統的決策書上,并生成動圖。

一看到這個 app 我就感到眼前一亮,它綜合了今年科技界最火的 AR 技術和政治界(與段子界)最火的 D.T. 總統。
『這個 app 會火!』
正如 app 作者所說的那樣:"This app is gonna make the United States of Amemeica GREAT again!"
我之前在AR原理演示一文中曾有涉及過實現 AR 的方法,既然代碼都還在,我就隨手也做了一個 "qqfly Draws"。
首先,我需要有一段視頻素材。于是,我從身后的書架上隨手拿起一本「數碼微距攝影之美」:

同時,放了一張 A4 紙在書面上,用于標記繪圖區域。
然后,在書架前就錄了段視頻,拍攝的場景大概是這樣的:

有了視頻素材后,就是識別每幀圖像中的繪圖區域。
這個可以使用各種方法,我采用的方法是:先人工標記第一幀圖像中的繪圖區域(四個角點),之后用 Kanade-Lucas-Tomasi(KLT) 算法對這四個角點進行跟蹤定位,大概效果如下:

每幀圖片中的角點都標記出來了
之后要做的就是計算每兩幀之間的單應性矩陣(Homography matrix)

這個利用圖像幀兩兩之間的四個共同點(也即上述標記點)即可算出。
之后,我們只需要將所需要填充的內容轉換成圖片后,填充如第一幅圖,其他圖像則對應乘以上述單應性矩陣即可。
大概效果是這樣的:

當然,如果每次填充的不是固定圖片,而是一系列圖片的話,就可以在上面放上動畫或視頻,大概效果是這樣的:

也可以是這樣的:

要實現這個功能還是比較簡單的,各位小伙伴可以回去自己試試,代碼可以參考Coursera上賓大的機器人學系列公開課第四課(Robotics: Perception)。
當然,如果有些小伙伴不會編程的話,我也可以給你提供一個更加簡單、更加穩定可靠的方法:

差不多一個意思,請自備ipad
當然,我這個也只是簡單玩玩,如果真要把 AR 做好的話,還是得靠做 SLAM 的各位小伙伴們。
其他腦洞大開的動手系列:
雷峰網特約稿件,未經授權禁止轉載。詳情見轉載須知。