文科生是否也可以成为人工智能领域里的创客?答案是肯定的!
素为是一名在司法系统里工作的法律工作者,本科就读于法律专业。同时,他还是一名计算机爱好者,作为智能硬件的创客,平时他喜欢用电子硬件做一些有趣的项目。
几年前,Alpha Go 对战围棋大师李世石的画面令世界赞美人工智能的发展速度,但是素为却觉得“这还不够酷”!Alpha Go 是通过它的研发者黄士杰来执棋的,直播画面看起来还是两个人在对弈,怎么能说是人机大战呢?
“加个机械臂执棋,很难吗?”从那时起,素为就决定要做一个真正的象棋机器人,还向朋友夸下了海口。为了让正在一天天长大的孩子少看电子屏幕,通过下象棋锻炼思维能力,素为觉得必须加快制作出真正的象棋机器人。
硬件的选择和系统框架的搭建
之前素为准备用 PC 电脑来实现这个想法,后来发现 NVIDIA Jetson Nano 开发套件可为全桌面 Linux 给予开箱即用支持,并且与许多常见的外部设备和配件兼容,相关的开发教程也很丰富。
“这个小小的板子功耗不高,而且树莓派能做的它基本都能实现,关键是还具备 AI 功能,这可以满足我的需要,”素为表示。
很快,素为就规划出了一个系统框架:
素为的目标就是要做一款名副其实的“人机对战”中国象棋机器人。在制作过程中,他以 Jetson Nano 为中控主机,利用其边缘计算能力,无需联网即可实现对棋盘的视觉识别和棋步策略计算,再运用一部 XYZ 三轴滑台加气泵吸盘即可挪动棋子,实现真正的“人机对战”。
使用这个系统进行人机对弈的流程如下:
从以上流程中,我们可以看到 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 开发者提出建议:“定下了目标就一定要去实现。因为是嵌入式环境,很多东西需要编译,这是一个比较漫长的过程,一定要有耐心。在经历反复的尝试和漫长的等待后,终于成功的那一刻就会有一种‘山穷水尽疑无路,柳暗花明又一村’的欣喜感,让你觉得’人间值得’ 。”
好文章,需要你的鼓励
临近年底,苹果公布了2024年App Store热门应用和游戏榜单,Temu再次成为美国下载量最多的免费应用。
云基础设施市场现在已经非常庞大,很难再有大的变化。但是,因为人们可以轻松地关闭服务器、存储和网络——就像开启它们那样,预测全球云基础设施开支可能非常困难。