文章摘要
作者为了烹饪鹿肉学习射击,为了记录进步过程,将2012年的OpenCV论文移植到手机上,并训练了先进的计算机视觉模型YOLOv8,最终用手机取代了传统的黄铜塞测量工具,虽然让晚餐准备时间变长,但实现了技术创新。
文章总结
我的手机取代了黄铜计分器
从烹饪到射击的奇妙旅程
作者Vadim Drobinin原本只是想从头开始烹饪鹿肉,这个简单的愿望却引发了一系列连锁反应:学习射击→记录训练进度→移植2012年OpenCV论文→训练最先进的计算机视觉模型。结果这顿晚餐的准备时间远超预期。
传统计分方式的痛点
在爱丁堡郊外的锡制隧道靶场里,作者经历了数月繁琐的计分流程: - 需要跪地检查靶纸上的弹孔 - 使用不同尺寸的黄铜计分器(brass plug)手动测量弹着点 - 计分过程常因弹孔靠近环线引发争议 - 频繁撞到靶场低矮的横梁(尽管地面每五米就标有"低头"警示)
技术解决方案的探索
初始尝试失败
直接使用苹果Vision框架检测弹孔,结果将靶心圆点、环线数字等误判为弹孔。借鉴2012年论文
采用华沙理工大学的靶纸计分算法,通过四步处理:- 消除环线干扰
- 洪水填充识别弹孔形状
- Prewitt边缘检测
- 霍夫变换拟合圆形 但该方法对.22子弹的撕裂边缘效果不佳,准确率仅80%。
引入机器学习
结合YOLOv8模型进行弹孔定位,配合OpenCV处理几何结构:- 将靶纸图像分割为网格单元
- 每个单元投票判断是否包含弹孔
- 非极大值抑制(NMS)消除重叠检测 最终模型经CoreML转换后仅22.4MB,可在iPhone上离线运行。
技术细节突破
- 坐标转换难题:Vision框架与UIKit坐标系差异导致环数误判
- 透视矫正:倾斜拍摄时靶心呈椭圆形,需进行径向强度分析
- 子弹半径补偿:实际弹孔比子弹直径小30%,需经验值调整计分算法
超越传统计分的价值
作者开发的Notch应用不仅能自动计分,还能: - 生成射击热力图分析技术弱点(如扣扳机姿势问题) - 追踪不同步枪的性能差异 - 发现甜甜圈会使射击成绩下降7%(可能源于血糖波动) - 支持多种靶纸规格的自动识别
传统与创新的思考
尽管黄铜计分器仍是解决争议的官方标准,但这项技术探索体现了: 1. 用手机摄像头+AI替代百年手工工具的可行性 2. 从实用工具(快速计分)到训练分析系统的价值延伸 3. 对传统领域进行技术改造时,需要尊重既有规则的实际作用
作者最终未能实现猎鹿计划(已移居加拿大),但这个项目成为了技术与传统碰撞的生动案例——有些工具存在的意义不仅是功能本身,更是行业共识的实体化象征。
评论总结
以下是评论内容的总结:
对项目的兴趣与肯定
- 有评论者表示该项目激发了他们重返射击场的兴趣(评论1:"This is the kind of project that tickles a couple of my nerves and might get me back to the range.")
- 另一评论者称赞项目"美丽"(评论3:"This ... Is beautiful")
对自动化计分的实用性质疑
- 有观点认为人工计分已足够高效,自动化意义有限(评论4:"Any somewhat working human brain can count this quite quickly")
- 同时指出这更多是编程挑战而非实际需求(评论4:"I totally see the programming challenge there, but it's in no substantial way making the journey any easier")
关于计分规则的讨论
- 有用户对以最外环而非最内环计分的规则表示意外(评论5:"Scoring is based on the outermost ring, rather than the innermost ring?")
- 推测可能是基于"完全包含在环内"的判定逻辑(评论5:"it must be entirely within this ring to count")
现有电子计分技术的对比
- 指出已有基于三角测量的电子计分系统(评论6:"They use wave detection from each corner...to triangulate")
- 承认当前方案的独特性(评论6:"This approach is novel however and has other pros and cons")
技术细节的纠正
- 有评论澄清子弹口径的测量标准存在国际差异(评论7:"American-invented calibers are measured to the depth of the grooves")
- 提醒术语使用的注意事项(评论7:"beware the plural")
类似项目的技术实现
- 有开发者分享使用振动编码和精密测量的类似项目(评论8:"using gauge blocks to measure the precise scoring ring dimensions")
- 声称已达到亚像素级精度(评论8:"get it to sub pixel accuracy")
(注:所有评论均无评分数据,故未体现认可度差异)