大家(谁?)都说海獭激萌可爱,那么问题来了,下面哪个(些)是海獭?
是不是不难,那下面哪个(些)是海獭呢?
……怎么样,和想象中一样轻松吗?别急,尖峰对决,这两张脸里,谁是海獭?
最后,决胜局:这是海獭吗?
给你三秒钟的思考时间。
答案分别是右上、右中、上,而最后一张,他是水獭!
承认吧,其实你不认识海獭!
「这不是海獭」
于是就想着看看能不能跑个模型解决海獭脸盲问题,于是有了这个玩意:这不是海獭
预期用途
当你开始感到「海獭」已经成为一个玄学概念时,可以简单地把图片上传给它。它会尝试分类,告诉你图里到底是海獭,还是水獭、土拨鼠(旱獭)、河狸、河狸鼠(海狸鼠)、卡皮巴拉(水豚)、獴(「丁满」)、貂、海狗、海狮、海象、海牛、儒艮、海豹甚至是海报。
浏览器本地运行,没有图片会被上传到服务器。
部分灵感是来自 S1 的 Fat 先生,虽然他不认识我。每次在论坛看见他的海獭头像,我都会被提醒这件事。他有过一个区分海獭还是水獭的 CNN 初心者作业,虽然已经下线了但感觉比我这个实用哈哈。
模型训练
就是 YOLO11 的微调,没做别的,先看看效果。
数据部分,搜索引擎肯定是靠不住的,人类本来就分不清!最后是想办法在专业网站上抓了一些动物的目击照片下来,数据集自然很不平衡:
标签 | 数量 |
---|---|
海獭 | 1552 |
水獭 | 904 |
土拨鼠* | 3097 |
河狸 | 4673 |
河狸鼠 | 3963 |
卡皮巴拉 | 1851 |
丁满 | 2083 |
貂* | 2669 |
海狗 | 134 |
海狮 | 893 |
海象 | 198 |
海牛 | 1118 |
儒艮 | 223 |
海豹 | 4397 |
后来出于一种幽默感又加入了 8252 张电影海报进一步扰乱训练。
拿着 MacBook Air 训练模型很费时,目前认海獭的准确率在 90% 左右,偶有将海狗、海象误认为海獭的情况。认水獭、海狗、海象的准确率很低,只有 60% 的水平。
更多关于模型的信息可以移步 Hugging Face 查看。
存在问题
训练数据当然是很有问题的,上面标星的两个动物其实抓取中断了,还能和其他补充数据一起、换规模更大的模型再挣扎一下。
目前主要的不可承受之重是 Web 实现。本地导出的 ONNX 模型有比较理想的一致性,但上了 Web 端立刻变智障,疑似是前段实现的图像预处理和本地不一致导致,但换了好几种方案提升都有限。
再看看再看看……