素為是一名在司法系統里工作的法律工作者,本科就讀于法律專業。同時,他還是一名計算機愛好者,作為智能硬件的創客,平時他喜歡用電子硬件做一些有趣的項目。
幾年前,Alpha Go 對戰圍棋大師李世石的畫面令世界贊美人工智能的發展速度,但是素為卻覺得“這還不夠酷”!Alpha Go 是通過它的研發者黃士杰來執棋的,直播畫面看起來還是兩個人在對弈,怎么能說是人機大戰呢?
“加個機械臂執棋,很難嗎?”從那時起,素為就決定要做一個真正的象棋機器人,還向朋友夸下了海口。為了讓正在一天天長大的孩子少看電子屏幕,通過下象棋鍛煉思維能力,素為覺得必須加快制作出真正的象棋機器人。
硬件的選擇和系統框架的搭建
之前素為準備用 PC 電腦來實現這個想法,后來發現NVIDIA Jetson Nano開發套件可為全桌面 Linux 給予開箱即用支持,并且與許多常見的外部設備和配件兼容,相關的開發教程也很豐富。
“這個小小的板子功耗不高,而且樹莓派能做的它基本都能實現,關鍵是還具備 AI 功能,這可以滿足我的需要,”素為表示。
很快,素為就規劃出了一個系統框架:

素為的目標就是要做一款名副其實的“人機對戰”中國象棋機器人。在制作過程中,他以 Jetson Nano 為中控主機,利用其邊緣計算能力,無需聯網即可實現對棋盤的視覺識別和棋步策略計算,再運用一部 XYZ 三軸滑臺加氣泵吸盤即可挪動棋子,實現真正的“人機對戰”。
使用這個系統進行人機對弈的流程如下:
-
人類下一步棋;
-
人類點擊 GPIO 按鈕,Jetson Nano 啟動指令;
-
棋盤上方的攝像頭對著棋盤拍攝 1 張照片;
-
運用 OpenCV 對照片進行四角對齊、裁切邊緣等處理;
-
將棋盤部分裁切為 9×10 個小圖片;
-
運用事先訓練好的圖片分類模型在 Jetson Nano 上進行推理,該模型可分辨 15 種情況(7 種紅方棋子、7 種黑方棋子、無棋子);
-
將識別結果拼接為棋盤狀態,以 FEN 規范格式進行表達;
-
將 FEN 文本傳遞給開源中國象棋引擎 elephantfish,在 Nano 上進行計算,獲取機器決定走的下一步棋;
-
生成并執行 gcode 指令控制滑臺模組和氣泵,將某個棋子在棋盤上挪動;
-
機器執行完畢,進入等候狀態,等待人類發出下一步棋及按鈕指令
從以上流程中,我們可以看到 Nano 作為主控機,除了指揮全過程運轉,在第 4 至第 8 步驟為圖片預處理、棋盤識別和計算下棋策略均提供了必不可少的算力。

圖1:步驟4(a)

圖2:步驟4(b)

克服深度學習的挑戰
作為一名專業學習法律的文科生,素為表示對深度學習其實是一知半解的,“就是能夠把開源代碼 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文章
3956瀏覽量
93980
原文標題:Jetson 百萬開發者故事 | 為了孩子的健康成長,他用 NVIDIA Jetson 做了一個象棋機器人
文章出處:【微信號:NVIDIA_China,微信公眾號:NVIDIA英偉達】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
高達2070TFLOPS算力|騰視科技基于NVIDIA Jetson Thor系列模組,重磅推出全棧AI邊緣智算大腦解決方案

高達2070TFLOPS算力|騰視科技基于NVIDIA Jetson Thor系列模組,重磅推出全棧AI邊緣智算大腦解決方案

高達2070TFLOPS算力騰視科技基于NVIDIA Jetson Thor系列模組,重磅推出全棧AI邊緣智算大腦解決方案

NVIDIA Isaac Sim和Isaac Lab現已推出早期開發者預覽版
地瓜機器人,和全球機器人開發者交朋友

名單公布!【書籍評測活動NO.58】ROS 2智能機器人開發實踐
云驥智行借助NVIDIA Jetson打造“域腦”通用計算平臺
NVIDIA Jetson Orin Nano開發者套件的新功能

NVIDIA發布小巧高性價比的Jetson Orin Nano Super開發者套件
初創公司借助NVIDIA Metropolis和Jetson提高生產線效率
使用NVIDIA Jetson打造機器人導盲犬
使用機器學習和NVIDIA Jetson邊緣AI和機器人平臺打造機器人導盲犬
NVIDIA提供一套服務、模型以及計算平臺 加速人形機器人發展
NVIDIA 加速人形機器人發展

評論