2024-4-23 01:52
普罗_puluo
发布地形预测器
[size=3]这是一个输入地图,自动预测地形并输出地形图的AI工具。如图所示:
[attach]150291[/attach]
我设计了一个VGG-16卷积神经网络,分别训练了旧画风地图的预测模型 和 新画风地图的预测模型。(旧画风即原版画风,新画风即现在流传较广的圣三画风)
容量警告,AI神经网络的库非常大,高达1~2个G,所以请自行斟酌是否要用该大炮打蚊子
[b][size=4]安装/使用方法:[/size][/b]
0、首先确定你的电脑有独立显卡,并安装了配套的CUDA(CUDA安装教程满世界都有)
1、到我的网盘中下载软件本体,链接:[url]https://pan.baidu.com/s/1aAVgn2xXw4dFYHoT6kOtdA?pwd=lcfg[/url] 提取码:lcfg
2、解压软件本体后,在我的网盘中选择旧画风模型(old_style.pt) 或者新画风模型(new_style.pt)进行下载,当然如果你的mod两种画风都有,那可以都下载。下载好模型文件后,将其放入models文件夹。
3、打开main.exe,弹出一个窗口:
[attach]150292[/attach]
首先先选择模型类型,旧画风就选old_style.pt,新画风就选new_style.pt。注意:如果你没有下载任何模型到models文件夹,那么软件会自动闪退。
然后点击“选择图片”,选择自己想要预测地形的地图即可。这里可以多选,这样预测器会自动对多张地图同时进行预测。
如果勾选了最后的“显示对比结果”,那么每预测完一张地图,软件会跳出一张对比图:
[attach]150293[/attach]
预测完毕后,在原地图文件的路径下会生成两张新图,一个是预测对比结果,另一个是bmp格式的地形文件:
[attach]150294[/attach]
使用star新的6.5形象指定器 将地形文件导入到hexmap.e5中即可。
如果您发现把模型都放到models文件夹后,软件依然闪退,请这样操作:
点击软件的文件夹的路径,在路径的最前方输入cmd (末尾有个空格),打开cmd控制台,输入main.exe,然后将控制台的报错反馈给我。
[/size]
[color=Silver][[i] 本帖最后由 普罗_puluo 于 2024-4-23 03:27 编辑 [/i]][/color]
2024-4-23 02:03
普罗_puluo
[size=3][b][size=4]2楼讲一下 如果您想自己训练 那么需要注意的事宜。(对于只预测 不训练的用户可以跳过这一节)[/size][/b]
目前我已开源,将工程放到了github上:[url]https://github.com/Puluomiyuhun/Hexmap-Predictor[/url]
代码使用的网络就是朴素的VGG-16卷积神经网络模型,为了图省事我只做了训练集,甚至没有做测试集。有感兴趣的朋友可以自行下载研究。
[b][size=4]训练自己模型的方法:[/size][/b]
0、确定自己的电脑有显卡,并且电脑安装了CUDA,python版本随意,但是需要安装对应版本的pytorch
1、将一个mod的所有(或部分)游戏地图复制到“origin_map”文件夹中,然后将“hexmap.e5”文件也复制到“origin_map“文件夹中。
2、在“DataMaker.py”中,可以修改“mod_id”,例如0。然后运行“DataMaker.py”。
在“training_data”文件夹中,您会发现每个地图将被拆分为48×48个图像,并且会创建一个名为“train.csv”的新文件来保存每个拆分地图的地形标签。
3、如果你想选择第二个或更多mod的地图,你需要每次更新“origin_map”文件夹内的地图和hexmap.e5文件,同时要记得更改“DataMaker.py”中的“mod_id”。此操作是为了防止新的mod地图覆盖旧的地图数据。
4、运行“train.py”。这里有一些参数列表:
parser.add_argument('--batch_size', type=int, default=100, help='单批batch的图片总数')
parser.add_argument('--num_workers', type=int, default=4, help='数据集的workders数量')
parser.add_argument('--epoch_num', type=int, default=50, help='训练总轮数')
parser.add_argument('--batch_print', type=int, default=200, help='每训练多少个batch,打印一次loss')
parser.add_argument('--epoch_save', type=int, default=200, help='每训练多少个轮,保存一次模型权重')
parser.add_argument('--resume_train', type=str, default='', help='如果要继续训练,填写权重的路径')
懂神经网络的自然懂,不懂神经网络的最好不要动这些参数。
5、训练结束后,你会在models文件夹下发现新的pt文件,这就是你训练的模型,你可以在预测的时候载入自己的模型,从而预测自己地图风格的地形。[/size]
[color=Silver][[i] 本帖最后由 普罗_puluo 于 2024-4-23 02:13 编辑 [/i]][/color]