点击查看微信稿件原文
点击上方蓝字关注 Ingress Beijing
昨天有“舅舅”表示,Pokemon Go 已经经由网易送审了。
https://weibo.com/ttarticle/p/show?id=2309404744330169680144
当然,他没有给出任何明确证据,就是有消息了。
根据我国法律法规,预计网易版本的 Pokemon Go 应该会独立运营,不知道是否会变成一代新的……
先不提国服版本的会变成啥样吧,除了遥遥无期的版号,网易还需要解决 Portal 引入、地图替换等等一系列问题呢。
大家就听个乐子就好啦,该咋咋地。。
Telegram – https://t.me/IngressBeijing
Twitter – @ingressbeijing
网站 – https://bjres.net
投稿后请及时联系我们,联系方式:
Telegram – @alexrowe
QQ – 350259971
Niantic Chat Group – YxR8TEU4
点击查看微信稿件原文
点击上方蓝字关注 Ingress Beijing
本次活动中猩猩将在全球范围内选择活动高的 Portal (比如大佬刷 AP 的顶点)作为指定的活动 Portal。
在此期间参与 10 个 Battle Beacon 的战斗可获得获得牌子(如果你 1、2 月还没拿到,可以累计 1、2 月参加的数目)。
猩猩上的官方战斗 Beacon 得分是玩家的 5 倍。
比赛结束后猩猩还会公布总分、蓝军总分、绿军总分、蓝军最大优势比率及绿军最大优势比率的 Cell。
另,活动期间有 2019 Victoria 牌子的道具包出售,价格还是 30800 CMU。
Telegram – https://t.me/IngressBeijing
Twitter – @ingressbeijing
网站 – https://bjres.net
投稿后请及时联系我们,联系方式:
Telegram – @alexrowe
QQ – 350259971
Niantic Chat Group – YxR8TEU4
点击查看微信稿件原文
点击上方蓝字关注 Ingress Beijing
如题,藏的还挺深的,我们又没啥稿子……就水过今天吧。
有稿子的话别忘记投稿啊……
Telegram – https://t.me/IngressBeijing
Twitter – @ingressbeijing
网站 – https://bjres.net
投稿后请及时联系我们,联系方式:
Telegram – @alexrowe
QQ – 350259971
Niantic Chat Group – YxR8TEU4
点击查看微信稿件原文
点击上方蓝字关注 Ingress Beijing
在这篇文章里,将详细介绍 IFSolverR 是如何匹配特征的,这是本次更新中最核心的环节。
与先前的 IFSolver 不同,使用 SIFT 进行全图匹配一定会引入一些错误的特征点,如何判断某个匹配是否是符合要求的,以及如何处理图中存在的多个匹配,是本节需要关注的主要问题。
bestMatches = BFMatcher.matchDescriptor(d, dFull)
通过这样的过程,可以实现对 d(Portal 图片特征) 和 dFull(IFS 谜题全图特征) 的暴力匹配。
而 BFMatcher 里面是这样的:
matches = matcher.knnMatch(descriptor, descriptorFull, k=2)
bestMatches = [[m] for m, n in matches if m.distance < 0.6*n.distance]
通过测量,0.6 倍距离作为筛选边界是较为合适的,这会影响到检测到的特征点个数。
然而,这样产生的匹配很可能也存在不符合标准的状况。嘤为 SIFT 本身是一种匹配能力极强的算法,当遇到稍有相似但角度不同的 Portal 图片时,依然能够被识别出来并被认为是一个合理的匹配。
同时,我们需要做的并不只是匹配图片,还需要找到匹配区域的几何中心,即图片的中心点,以方便后续的自动化生成解谜结果。
但很显然,一次匹配是无法区分出所有的匹配图片,并进行筛选的,因此我们需要这样的操作:
-
通过映射关系,查找 Portal 图片在谜题图片上的边缘,这里就是对图片生成一个 3×3 的最优单映射变换矩阵(矫正矩阵) M,使得 。
-
然而,这样的矩阵并不一定存在,如果不存在这样的矩阵,说明这不是一个有效的组合。
-
排除以上情况后,可以通过 perspectiveTransform 和上述矩阵 M 确定变换后的边缘坐标。
-
同时,我们需要保证这样的坐标的长宽比符合要求,并且是一个凸多边形。
-
随后,我们对匹配的区域生成一个 mask,将上述匹配成功的区域内的特征点排除(logical_not)。
-
重复以上操作直至匹配到的特征点低于 4 个,此时我们不认为它们能确定一个映射,匹配过程结束。
然后程序也会存储一份特征匹配的图片以供参考和调试。
Telegram – https://t.me/IngressBeijing
Twitter – @ingressbeijing
网站 – https://bjres.net
投稿后请及时联系我们,联系方式:
Telegram – @alexrowe
QQ – 350259971
Niantic Chat Group – YxR8TEU4
点击查看微信稿件原文
点击上方蓝字关注 Ingress Beijing
猩猩一口气公布了 2022 年第二季度(既 4 月到 6 月)的所有活动安排,每个月第一个周六是 IngressFS,第二个周日是 Ingress2S,这个就不多说了,和现在一样,其他特殊活动如下:
-
3 月 24 日到 4 月 4 日:神秘活动,会有分级牌子(可能是塑料袋套头系列?)
-
4 月 16 到 17 日:Kythera 异常活动(战斗道标大战)
-
4 月 21 到 25 日:运动胶囊活动,将有新配方且所需的步行距离减少到 4 公里,这是最后一次你拿到运动胶囊分级牌子的机会(参考:《运动胶囊挑战第二场即将开始!》)
-
4 月 24 日:头一天会有猩猩王 John Hanke 在 Sandlot JAX 的演讲,24 日在当地(佛罗里达州杰克逊维尔)有 Mission Day 活动。
https://forms.gle/id3vFqXQ1MuEj95E8
因疫情产生的部分游戏规则变化将被取消,从 3 月 31 日开始,给 Portal 充电获得的 AP 将从 65 改回 10。
猩猩表示每个月他们都回考虑是否将这些 2020 年因为疫情增加的规则改回原来的状态,目前还在启用的规则包括:
Telegram – https://t.me/IngressBeijing
Twitter – @ingressbeijing
网站 – https://bjres.net
投稿后请及时联系我们,联系方式:
Telegram – @alexrowe
QQ – 350259971
Niantic Chat Group – YxR8TEU4
点击查看微信稿件原文
点击上方蓝字关注 Ingress Beijing
这篇文章里,将具体说明 SIFTExtractor 的情况,这主要是使用 SIFT 进行特征提取。
SIFT 是 David Lowe 提出的一种尺度不变特征变换匹配算法。它的一大特点是提取出的特征对于平移、旋转等特性具有不变性。
它主要做了如下几个步骤:
-
建立尺度空间的高斯差分金字塔。
-
在尺度空间内检索极值点。
-
对特征点赋值,获取位置、尺度、方向的信息。
对于第一步,总的来说是先建立高斯金字塔
再建立高斯差分金字塔
即 DoG。
而对于第二步,将得到的 DoG 矩阵进行极值检测,可做为候选的关键点。对于每一个像素点,常用的比较方法是,比较同一尺度的相邻 8 个像素点,和不同尺度相邻的 18 个像素点 (9 + 9),如果它是这些像素点中的局部极值点,则将其加入到候选列表内。
第三步,对于每一个候选的关键点,梯度
方向
。
在此之后,还有一个额外的提取 descriptor 的步骤,目的是使检测到的特征即使在不同的光照条件下也能被有效识别。(值得注意的是在本应用场景中这个步骤并没有什么用)
具体的步骤是,通过直方图的方式统计图中关键点的方向,然后根据结果,对被划分成若干区域(4x4x128)的图像部分(这被称为 descriptor)确定相应的向量值。
具体可参考论文 Object Recognition from Local Scale-Invariant Features,这里不再赘述。
对于每一个 Portal 图像和 IFS 谜题图像,程序都会为其进行一个对应的 SIFT 特征提取:
kp, des = sift.detectAndCompute(img, None)
同时会存储一份特征点预览以供后续的人工介入或调试:
PreviewUtil.saveFullImageFeaturePreview(kp)
然后使用写好的特征工具进行打包存储,以供后续使用:
kpp, desp = FeatureFileUtil.packKeypoint(kp, des)
FeatureFileUtil.writeFeatures(
‘data_features/ifs.jpg’, kpp, desp)
可以从 packKeypoint 中看到 SIFT 提取的特征的数据结构,包含 keypoint 和 descriptor:
kpts = np.array([[kp.pt[0], kp.pt[1], kp.size,
kp.angle, kp.response, kp.octave,
kp.class_id]
for kp in keypoints])
desc = np.array(descriptors)
如图为一张成功被提取 SIFT 特征的图片。
由于时间急迫,IFSolverR 开发时并未仔细考虑更好的匹配和特征点筛选方法,一种常见的改进是使用 KD Tree 辅助搜索,通过 BBF 获取 kNN,同时通过 RANSAC 减少错误匹配的问题。这里仅提一下。
Telegram – https://t.me/IngressBeijing
Twitter – @ingressbeijing
网站 – https://bjres.net
投稿后请及时联系我们,联系方式:
Telegram – @alexrowe
QQ – 350259971
Niantic Chat Group – YxR8TEU4
点击查看微信稿件原文
点击上方蓝字关注 Ingress Beijing
農大光棱塔位于农林大学,是一个拥有多个灯泡的路登,申po人这也能联想到光棱塔我是没想到的。
光棱塔是游戏《红色警戒2》中盟军的高级防御武器。它使用的是爱因斯坦发明的光棱技术,由巨大的棱镜构成,其原理是依靠发射类似于激光的光束来打击敌人。一台光棱塔的攻击力是120,但为其它光棱塔提供充能可达150%。
磁暴线圈,位于江滨西大道,靠江心公园西侧方位。磁爆线圈是系列即时战略游戏《红色警戒》中重要作战单位。苏联阵营防御武器,又称特斯拉线圈。
当爱因斯坦干预了时间轴后(见命令与征服或红色警戒情节),尼古拉·特斯拉在美国的停留变短了。原本特斯拉与爱因斯坦在空间转移发生器(即超时空传送仪)和裂缝产生器等项目合作。但是在新的平行宇宙中,他在美国的大学毕业后很快回到了克罗地亚,并建立了克罗地亚的第一个本科理工大学。他研究出了许多与“原本的世界”相同的并很快被普及的技术,如交流电、电力输送、以及(用于无线电的)特斯拉变压器。当时,斯大林的苏共正向外扩张,他们的枝蔓向南延伸至克罗地亚。特斯拉被邀请至苏俄帮助创办新的莫斯科物理科技学院。在那里,他参与了许多敏感的计划,包括被号称为特斯拉线圈(Tesla Coil)的一项军事技术。(其原型为尼古拉·特斯拉设计的沃登克里弗塔。)
福州ingress中的磁暴线圈其实是一个烟花型圆柱体。
文儒坊是“三坊”中的第二坊。文儒坊这个名字宋时就有了。据《榕城考古略》载,此巷“初名儒林,以宋祭酒郑穆居此,改今名”。郑穆任国监祭酒,是国家最高学府的重要官员,从三品的官附。明代抗倭名将张经,清代名将福建提督、台湾总兵甘国宝也居住在这里。
清代饮誉全国的“民进士”之家(五代都中进士)陈承裘故居也在坊内。陈承裘长子就是清宣统皇帝老师陈宝琛。清代著名诗人、《石遗室诗话》作者陈衍的故居也在坊内,是一座坐北朝南的大宅,内有光华阁是为入室弟子课业的地主。陈寓隔壁是现代著名法学家柯凌汉教授的住宅,这条坊就因历代文儒辈出而闻名。
在文儒坊里,有一条幽深清静的小巷,叫闽山巷,俗称“三官堂”,那是因为该巷古代建有三官堂而闻名。据清朝道光年间林枫《榕城考古录》卷中“坊巷第二”记载:“三官堂,在文儒坊南闽山巷,南有小巷通光禄坊,西口达常丰仓河沿。大抵皆以寺而得名也。而此则以闽山保福寺名也。”由此可见,三官堂与保福寺之密切关系。是在宋朝至少已有七八百多年以上悠久历史。
在南后街南端的澳门桥头,沿安泰河南岸往东,到安泰桥,有一条河沿坊,名叫桂枝里,它东西走向,连接着三坊七巷和朱紫坊。林枫《榕城考古略》载:“桂枝坊即安泰右河沿,以唐元和间里人陈去疾登第得名,俗呼牛育巷河沿。自杨桥巷至此,有七巷之目。”牛育巷河沿,又被读成“牛肉巷河沿”。
桂枝里除了西头的澳门桥和东头的安泰桥,中段也有小桥横跨安泰河两岸。
作为一条河沿坊,这里别具风情。曾巩《夜过利涉门》写道:
红纱笼烛过斜桥,复观翚飞入斗杓。
人在画船犹未睡,满堤明月一溪潮。
Telegram – https://t.me/IngressBeijing
Twitter – @ingressbeijing
网站 – https://bjres.net
投稿后请及时联系我们,联系方式:
Telegram – @alexrowe
QQ – 350259971
Niantic Chat Group – YxR8TEU4
点击查看微信稿件原文
点击上方蓝字关注 Ingress Beijing
在第一阶段的Kureze活动中,PhallodinHu通过人为增加互动的方式,将无对抗的VRBB提升到了CAT3。在讨论中PhalloidinHu提到,攻击在操作和耗时上相比抬脚具有明显优势,并提议将有限的时间最大限度地用于攻击而非升级从而进一步提升CAT。但ToPokeCa对此仍有疑议:我们在VRBB上共进行了300余次升级,72次摧毁和500余次攻击,尽管CAT3与CAT4的加权值是3倍与6倍的差别,但断点真的如此之大,以至于近900次互动仍不足以触摸到CAT4的门槛吗?基于升级自己的脚不产生AP故不对CAT产生贡献的这一传闻,ToPokeCa认为对po的攻击也只有在摧毁mod或脚,产生AP时,才计入互动等级,而用低级炸多次杀伤的行为对互动等级并无提升。而PhalloidinHu认为,如果一个低级特工面对众多高级敌军,依靠普通攻击势必无法摧毁任何脚,但依旧应当产生一定的互动值,从而增加活动徽章的计数。综合两种观点,ToPokeCa提出假设:猩猩列举的与BB互动的种种行为在计入BB互动等级时还需与不等的加权值相乘。ToPokeCa认为,一次普通攻击在不摧毁脚的情况下可能加权值极小,甚至可能依照对脚的伤害进行加权。这一情况下,用低级炸和高级炸杀死po对互动等级的影响将无任何区别。
在第二阶段的实验中,PhalloidinHu决定在保持逐级抬脚不变的情况下,对攻击的部分作出改变。kevinsbane与ninja7moose首先对RBB进行了实验,证实在用高级炸快速杀伤的情况下,仅靠翻毒和两段抬脚,已经足以使RBB达到CAT2。随后PhalloidinHu与SoberCyclist在RBB的两段抬脚之间加入了低级炸的多次杀伤,但RBB仍旧停留在CAT2,证实低级炸并无帮助,或是两人能够造成的攻击数量在RBB至多两段抬脚的情景下,对跨越CAT3的门槛意义不大。
另外,jOrange,kevinsbane,SoberCyclist与PhalloidinHu还将VRBB变成了单支点多重的支点,并在抬脚的同时在VRBB上进行了18 link,31 field的五段反射,加上部署、升级、摧毁共计625次互动,最终成功跨越断点获得了CAT4的胜利,刷新了单阵营BB的CAT记录,并实现了稳定复现。这也是自一月份PhalloidinHu对极端弱势的多伦多蓝军提出避战策略以来,整个多伦多地区产生的仅有的两个CAT4 BB。
对比上一阶段300余次升级,72次摧毁和500余次攻击的效果不难发现,互动行为对互动等级产生的影响确实各自具有不同的加权。将500余次的攻击换成245次的field和link,数量上有所下降却在质量上产生了飞跃,在减少了一段手动翻毒的部署升级和摧毁后,仍达到了CAT4。由于VRBB在仅有升级操作的情况下表现还未知,尚难以确定多次攻击究竟产生了多少贡献,但可以想见是不大的。鉴于攻击和建造的本质是不相容的,前者需在敌对po上进行而后者需要友方po,在已经发现更优解的情况下,PhalloidinHu认为尽管可以通过实验进行探究,但深究攻击的加权值已经不具备实战意义。在有限的时间中,放弃升级转而多次攻击的提议也被完全推翻。本次实验中的18 link还远远没有达到单支点多重反射的上限。如果能够实现40 link的最大值,互动等级也许可以达到CAT5甚至CAT6。
在后续的讨论中,ToPokeCa认为,625次互动仅获得CAT4的结果仍旧低于预期,并猜测field作为link的结果而非具体操作,尽管产生AP却对CAT并无贡献。基于这一猜想PhalloidinHu又提出了新的假设:当且仅当某一操作对争夺po的归属产生贡献时,才能增加CAT,并根据对争夺的贡献进行加权。由此产生如下推测:field对po的防御没有任何作用,因此对增加CAT并无作用;尽管入侵可以增加特工的活动计数,但对CAT也无贡献;多次普通充电的效果或许与少次强力充电并无差别,但由于普通充电确实产生AP,SoberCyclist对这一点持保留意见;从远处射入的link或许也可以对CAT的增加产生贡献。后续实验中,PhalloidinHu等人将用4 SBUL的40 outlink以及大量射入的针包验证这一假设。另外ToPokeCa还提出了一个CAT计算的简单模型:将部署、升级、摧毁、link的行为简单视作1,则CAT2-4的门槛大致分别为100,200-300间的某处以及400。
又经过了一个漫长的Kureze周末,尽管多伦多地区官方BB的战斗中蓝军在3.3:24的地面人力比之下(只打了不到一个小时的特工当然只能算0.3个特工)以460:4740大比分败北,但PhalloidinHu负责的战区以1.3:8的人力获得了320:1865的比分,勉强使分值比超过了人力比,可以称得上是不辱使命。在此番实验中,多伦多蓝军通过不断探索,又为全球蓝军贡献出了216分的特工BB分值。而截止发稿时Kureze第二阶段已到尾声,多伦多地区仍未有绿军通过旁观领悟到无对抗BB的技巧,可见信息差在弱势方手中的确有扭转战局的潜力。至于激发这一潜力最好的工具,当然就是为猩猩不断创收的钞能力。
Telegram – https://t.me/IngressBeijing
Twitter – @ingressbeijing
网站 – https://bjres.net
投稿后请及时联系我们,联系方式:
Telegram – @alexrowe
QQ – 350259971
Niantic Chat Group – YxR8TEU4
点击查看微信稿件原文
点击上方蓝字关注 Ingress Beijing
福建会堂,东西长132米,宽度70米,高36米,地上6层,地下2层,占地面积1.48万平方米,建筑面积3.77万平方米,其中地下室1.77万平方米。概算总投资3.7亿元。地下室为车库及设备用房,设有360个车位,部分房间安装供水、供电设备等。主会场在地上1层,配置自动表决系统和同声翻译系统,有1500个座位的大厅,楼座为带斜柱悬挑12米的挑台,前台设有升降、旋转舞台及升降乐池。2~5层设有12个议事厅、1个接见厅和3个休息厅,6层有220个座位的国际会议中心。会场正面呈“八”字形张开,入口处平台有架空弧形网架玻璃顶棚。外墙装饰大量采用干挂花岗岩,间以金属板和玻璃幕墙,主体为钢筋混凝土框架结构,屋架为大跨度大空间曲面钢网架结构,上盖彩色钢板屋面。
汉闽越王庙是供奉和祭祀闽越王无诸的庙宇,它的设立与福州当地民众的信仰有关。汉闽越王无诸(战国晚期—-西汉初期)创建冶城(福州),建立闽越王国,吸收中原的先进生产技术和文化,开辟闽疆,发展了闽地文化经济,使闽越族人民安居乐业,可以称为福建地区的“人祖”。闽越子民对无诸十分敬仰,把他奉为第一保护神,立庙祭祀。汉闽越王庙在福州设有多处。
玄壇神迹简介位于福州财神庙,福州财神庙,始建于唐末,已有千年历史。庙内专门供奉赵公明,因赵公明为财神爷,故玄坛庙又称财神庙。我国民众供奉的财神中,赵公明被公认为华夏第一正财神。赵公明财神神像,多为黑面浓须,骑黑虎,一手执银鞭,一手持元宝,全副戎装。《封神演义》中有姜子牙封神一节,封赵公明为“金龙如意正乙龙虎玄坛真君”,率领招宝天尊、纳珍天尊、招财使者和利市仙官等,统管人世间一切金银财宝。
福州财神庙为榕城井汤门外十分有名的古庙,与罗汉山为邻。罗汉山是西园村的主要山脉,因山形大且似卧倒的罗汉而得名。庙坐东朝西,南、北两扇大门,其左侧山势状犹如“回首的龙”,而右侧山势则如同“卧伏的虎”,站在庙门,可望见榕城全貌。庙的正门朝南,门上对联言简意赅地表现了古庙“身坐回龙地,驻镇伏虎岗”的磅礴气势。该庙山门左右有两棵明代以前遗存下来的巨大古榕。有趣的是,古榕一雄一雌,雄的长须垂挂,雌的枝繁叶茂。两棵古榕仿佛为古庙守护,华盖覆广,绿荫遮天,如今两棵古榕均被列入福州市名树古木名册之中。
琴亭湖位于福州市晋安区五四北琴亭高架桥下,南起福州三环路,北至南平路,西至福飞路,东至罗汉山、福建儿童发展学院。设计库容71万立方米,蓄洪量为57.6万立方米。
琴亭湖景观配套共分为五大功能区,即中心湖体、主入口、滨水、休闲建设和生态景观区,总面积6.6公顷。在满足市民休闲的同时,琴亭湖还担负着五四北片区的防洪重任。琴亭湖建成后,汛期可缓解下游晋安河的排涝压力,晋安河的排涝标准可提高到5~10年一遇,这有效缓解五四北的内涝问题。
福州环球广场坐落于五四路中央商务区,位于福州市鼓楼区五四路158号,高167米,共有38层,总建筑面积9万平方米,总造价逾4亿元,建成时是“福州第一高楼”,集购物中心、写字楼、酒店于一身,是福州现代化高层建筑的发端。
福建教育电视台位于树兜地铁站旁。于1995年筹建,当年底以“福建有线电视教育频道”名义进行试播。
1998年2月经原广电部审查登记,正式批准成立,呼号为“福建教育电视台”(FETV)。福建教育电视台是福建省唯一的以各类教育节目为主要内容的省级专业电视播出机构。
福建教育电视台于1999年经省编办正式批复为福建省教育厅直属正处级事业单位,定编70名,实行差额拨补的财政管理政策。
2002年前与福建省电教馆合属,实行“二块牌子、一套人马”的管理模式。2002年元月,现任班子组建,福建教育电视台与福建省电教馆正式分设,独立运行。
Telegram – https://t.me/IngressBeijing
Twitter – @ingressbeijing
网站 – https://bjres.net
投稿后请及时联系我们,联系方式:
Telegram – @alexrowe
QQ – 350259971
Niantic Chat Group – YxR8TEU4
点击查看微信稿件原文
点击上方蓝字关注 Ingress Beijing
一些 Agent 嘤该很熟悉,在 2020 年创建的 IFSolver 为不少地区的 IFS 图片解码提供了帮助。然而好景不长,在 2021 年,IFS-UN 似乎注意到了这一点,为了提升活动难度,避免摸鱼,从某个月份开始,IFS 解密图便加入了旋转、缩放、平移等一系列操作。而这导致了先前基于图片分割再匹配的 IFSolver 完全失效。同时又嘤为选取 Portal 地点不合适等原因,曾经出现过地区 POC 躺平,宣布放弃举办 IFS 的情况。
为此,一种新的 IFSolver 需要被开发出来。我将其称为 IFSolverR(虽然依然沿用前者的仓库和名字)。
先前的思路一直维持在,将图片分割后再进行匹配的思路。而这样的思路是需要建立在两个前提下的:
-
谜题图片足够有序,以便于划分不出现问题。
-
谜题图片足够高清,以便于匹配足够多的特征。
在先前版本的 IFSolver 中,有若干 threshold 需要针对不同的图片进行调整,并没有一个相对稳定的值。同时对原图像的加扰宣布了这一方法的死亡。
因此,问题出在,如何在一个大图像中,从数千张图像的库里匹配出经过缩放、平移、旋转后的图像?
回忆起先前的内容,易想到还有一种尚未使用的解决方案:
SIFT (尺度不变性特征变换) 是利用 DoG 金字塔检测极值点并提取特征 descriptor 的方法,对旋转、尺度缩放、亮度变化也具有不变性。
SIFT 算法比较准确,甚至可以考虑在原图上不做分割,直接与数千张图片进行识别。但不巧的是,这是一个具有专利的算法 (今年 3 月到期啦!),在 OpenCV 上还暂未从 Non-free 挪出来 (Soon™)。
显然在 1202 年,OpenCV 的新版本已经包含了此算法,它的各类不变性特点看上去非常适合 IFSolver,唯一的缺点就是计算复杂度上比 ORB 高了不少。不过考虑到既然已经做了人工加扰,适当提升算力是必要的。
-
(与先前一致)根据 Portal_Export.csv 下载 Portal 图片。
-
(与先前基本一致)根据下载好的图片,使用 SIFT 算法提取对应的特征,并将其存储下来。
-
载入 IFS 谜题文件,使用 SIFT 对所有图片进行并行遍历匹配,并根据匹配程度筛选候选 Portal。
-
(与先前基本一致)生成 Portal 图片与谜题图片的特征匹配图,进行可选的人工修正环节。
-
根据用户输入列数进行聚类,进行排版。
-
(与先前一致)根据 Portal 列表进行连线和 Passcode 生成。
上就是 IFSolverR 的基本架构。
项目中 Extractor 和 Matcher 分别对应特征的提取和识别,目前只有 SIFTExtractor 和 BFMatcher,代表使用 SIFT 进行特征提取,使用 BruteForce 进行暴力匹配。这可以为将来改良或换用更高效的算法提供便利。
其余的辅助类模块均位于 Utils 中,包含了一系列与特征识别匹配算法无关的操作。
使用 2021.7 的成都 IFS 谜题照片,和相应范围内近 3000 个 Portal 的 csv 列表,能够在 2 处手动纠正的情况下,对全部待匹配图片得到 100% 的准确率。
测试使用了 5800x + 默认未安装 CUDA 加速的 OpenCV。匹配过程使用并占满了全部的核心,总计运行时间在 10 分钟内。
Telegram – https://t.me/IngressBeijing
Twitter – @ingressbeijing
网站 – https://bjres.net
投稿后请及时联系我们,联系方式:
Telegram – @alexrowe
QQ – 350259971
Niantic Chat Group – YxR8TEU4