由于时间和其他原因,我也不在学生会了,本来也没有计划去这次“三下乡”的,只不过我这次负责技术部,有幸获得了一次参与的机会。
这次三下乡时间并不长,7月2日晚上7:30出发,7月4日晚上回到学校。
主要就是三个活动,首先是“三下乡”宣讲,其次是AI照相馆(一个是“AI云旅游”,还有一个是“AI旧照片修复”),最后是“AI课堂”
其他的就不讲了,学院官方的推文都可以看见,就说说我负责的这一部分吧——AI云旅游。
这个原理非常简单,就是通过抠图的方式,把背景换成各种旅游景点,然后生成合成的图像。
当初我听到这个活动的时候,我真的觉得这个应该不需要专门的技术组,因为手机上随便一个美图软件应该都能搞定:)
后来发现这其实不是一个简单的事情:
1.PS类软件抠图对于硬边缘能够很好的处理,但是对于软边缘需要特殊的处理方式,头发丝等细节部分不容易处理干净
2.如果每一张使用P图软件,工作量非常大(我们一共处理了150张左右)
看样子,还是得有个程序解决这个问题,对此,我在网上找了相关项目(毕竟自己从头开发时间不允许),BackgroundMappingV2,这个项目可以对视频进行处理,由于我们仅需要每次对单张图片进行处理,所以我对项目进行了简化。
当然,在我测试原始项目的时候,我发现原始项目有下面的问题:
1.三张图片大小要完全相同,不然会报错
2.三张图片的长宽必须为4的倍数,不然会报错
3.仅有重叠功能,无法调整人像大小与图像位置
具体是怎么解决的,可以看看本次活动项目地址:Blue16-WangFudi/PhotoBackSwap: 西南大学人工智能学院暑期三下乡AI照相馆——AI云旅游代码实现 (github.com)
相当于我增加了图像预处理,通过OpenCV库首先将三张图像大小调整为一致,然后同时调整人像和背景图像,保持幕布大小不变,等比缩放两个图片,然后用户选择图像位置(左下、中间、右下),示意图如图所示:


