素為是一名在司法系統里工作的法律工作者,本科就讀于法律專業。同時,他還是一名計算機愛好者,作為智能硬件的創客,平時他喜歡用電子硬件做一些有趣的項目。
幾年前,Alpha Go 對戰圍棋大師李世石的畫面令世界贊美人工智能的發展速度,但是素為卻覺得“這還不夠酷”!Alpha Go 是通過它的研發者黃士杰來執棋的,直播畫面看起來還是兩個人在對弈,怎么能說是人機大戰呢?
“加個機械臂執棋,很難嗎?”從那時起,素為就決定要做一個真正的象棋機器人,還向朋友夸下了海口。為了讓正在一天天長大的孩子少看電子屏幕,通過下象棋鍛煉思維能力,素為覺得必須加快制作出真正的象棋機器人。
硬件的選擇和系統框架的搭建
之前素為準備用 PC 電腦來實現這個想法,后來發現NVIDIA Jetson Nano開發套件可為全桌面 Linux 給予開箱即用支持,并且與許多常見的外部設備和配件兼容,相關的開發教程也很豐富。
“這個小小的板子功耗不高,而且樹莓派能做的它基本都能實現,關鍵是還具備 AI 功能,這可以滿足我的需要,”素為表示。
很快,素為就規劃出了一個系統框架:
![1255e446-ccde-11ed-bfe3-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9A/0E/wKgaomTnfkKAedfwAABeZ-YKJKI146.jpg)
素為的目標就是要做一款名副其實的“人機對戰”中國象棋機器人。在制作過程中,他以 Jetson Nano 為中控主機,利用其邊緣計算能力,無需聯網即可實現對棋盤的視覺識別和棋步策略計算,再運用一部 XYZ 三軸滑臺加氣泵吸盤即可挪動棋子,實現真正的“人機對戰”。
使用這個系統進行人機對弈的流程如下:
-
人類下一步棋;
-
人類點擊 GPIO 按鈕,Jetson Nano 啟動指令;
-
棋盤上方的攝像頭對著棋盤拍攝 1 張照片;
-
運用 OpenCV 對照片進行四角對齊、裁切邊緣等處理;
-
將棋盤部分裁切為 9×10 個小圖片;
-
運用事先訓練好的圖片分類模型在 Jetson Nano 上進行推理,該模型可分辨 15 種情況(7 種紅方棋子、7 種黑方棋子、無棋子);
-
將識別結果拼接為棋盤狀態,以 FEN 規范格式進行表達;
-
將 FEN 文本傳遞給開源中國象棋引擎 elephantfish,在 Nano 上進行計算,獲取機器決定走的下一步棋;
-
生成并執行 gcode 指令控制滑臺模組和氣泵,將某個棋子在棋盤上挪動;
-
機器執行完畢,進入等候狀態,等待人類發出下一步棋及按鈕指令
從以上流程中,我們可以看到 Nano 作為主控機,除了指揮全過程運轉,在第 4 至第 8 步驟為圖片預處理、棋盤識別和計算下棋策略均提供了必不可少的算力。
![127465b0-ccde-11ed-bfe3-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9A/0E/wKgaomTnfkKAS7whAABd65anyZU299.jpg)
圖1:步驟4(a)
![12995aaa-ccde-11ed-bfe3-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9A/0E/wKgaomTnfkKAQ2A8AABpi1czJcs265.jpg)
圖2:步驟4(b)
![12b5967a-ccde-11ed-bfe3-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9A/0E/wKgaomTnfkOAGDAgAACm61sDnpE397.jpg)
克服深度學習的挑戰
作為一名專業學習法律的文科生,素為表示對深度學習其實是一知半解的,“就是能夠把開源代碼 debug 跑起來那種水平。”為了把象棋機器人做出來,素為在 Jetson Nano 上先后用 TensorFlow 嘗試了 VGG、ResNet 和 Inception。
“要么調參數總是調不好,要么準確度不高,”素為說,“曾經一度很沮喪。”
然而,功夫不負有心人,一個偶然的機會,素為看到 NVIDIA 與百度合作的EasyDL平臺,在該平臺上,可以零代碼訓練,并將模型一鍵部署在 NVIDIA Jetson 設備上。于是素為手工準備和標注了 4000 張訓練素材圖片,這些圖片有的清晰,有的模糊,有的用光照亮、有的故意制造陰影,還有不同的旋轉角度。之后在此基礎上,對素材圖片進行批量加噪點處理,一共生成了 5 萬張圖片數據用于深度學習訓練。經過 EasyDL 的訓練,生成了“圖像分類”模型(因為運用場景有限可控,因此該模型不怕過擬合,準確率 100%),之后一鍵部署在 Jetson Nano 上,再配合素為寫的主代碼(https://gitee.com/lawup/chess-robot.git),象棋機器人終于運轉起來了!
成為 Jetson 百萬開發者一員
開心地看著自己的孩子和老父親與機器鏖戰幾盤,歡聲笑語無疑是這一路艱辛的最好補償!
2022 年年底,素為帶著這個項目,參加了 NVIDIA 舉辦的Jetson Edge AI 開發者大賽,榮獲特別獎。
“很高興能成為 NVIDIA Jetson 百萬開發者的一員。最關鍵的是,我是用 NVIDIA Jetson Nano 套件做出來的,而且充分發揮了 Nano 的性能和效用。不得不說,人生就是這么神奇,雖然我一度都絕望了,但自己夸下的海口就自己去實現!”素為談到這個項目,依舊一臉自豪。
素為用自己的開發經歷對廣大 NVIDIA Jetson 開發者提出建議:“定下了目標就一定要去實現。因為是嵌入式環境,很多東西需要編譯,這是一個比較漫長的過程,一定要有耐心。在經歷反復的嘗試和漫長的等待后,終于成功的那一刻就會有一種‘山窮水盡疑無路,柳暗花明又一村’的欣喜感,讓你覺得’人間值得’ 。”
-
英偉達
+關注
關注
22文章
3842瀏覽量
91677
原文標題:Jetson 百萬開發者故事 | 為了孩子的健康成長,他用 NVIDIA Jetson 做了一個象棋機器人
文章出處:【微信號:NVIDIA_China,微信公眾號:NVIDIA英偉達】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
NVIDIA Jetson Orin Nano開發者套件的新功能
![<b class='flag-5'>NVIDIA</b> <b class='flag-5'>Jetson</b> Orin Nano<b class='flag-5'>開發者</b>套件的新功能](https://file1.elecfans.com/web3/M00/03/74/wKgZO2do7ZWASUKUAAAnjLI0ezg086.png)
NVIDIA發布小巧高性價比的Jetson Orin Nano Super開發者套件
NVIDIA 推出高性價比的生成式 AI 超級計算機
![<b class='flag-5'>NVIDIA</b> 推出高性價比的生成式 AI 超級計算機](https://file1.elecfans.com/web3/M00/02/E8/wKgZPGdij9SAflvoAALaY4AiJyY535.jpg)
u-blox深化與NVIDIA Jetson和NVIDIA DRIVE Hyperion平臺合作
初創公司借助NVIDIA Metropolis和Jetson提高生產線效率
使用NVIDIA Jetson打造機器人導盲犬
使用機器學習和NVIDIA Jetson邊緣AI和機器人平臺打造機器人導盲犬
兆易創新亮相2024地平線地瓜機器人開發者日
NVIDIA提供一套服務、模型以及計算平臺 加速人形機器人發展
NVIDIA 加速人形機器人發展
![<b class='flag-5'>NVIDIA</b> 加速人形<b class='flag-5'>機器人</b>發展](https://file1.elecfans.com/web2/M00/00/37/wKgaomaoPuqAcTA9AAIqXxCBvhQ130.jpg)
阿爾特攜手英偉達,將Omniverse融入機器人研發
全球機器人開發領域采用NVIDIA 機器人開發和生產
NVIDIA將全球數百萬開發者轉變為生成式 AI 開發者
NVIDIA NIM 革命性地改變模型部署,將全球數百萬開發者轉變為生成式 AI 開發者
![<b class='flag-5'>NVIDIA</b> NIM 革命性地改變模型部署,將全球數<b class='flag-5'>百萬</b><b class='flag-5'>開發者</b>轉變為生成式 AI <b class='flag-5'>開發者</b>](https://file1.elecfans.com/web2/M00/EC/00/wKgaomZdGOCAJb99AAZyBqTeJb0068.png)
評論