特定领域专业设备识别
之前有个项目需求,需要通过手机扫一扫,识别工业领域的设备图片。当初用的是Keras深度学习框架,训练数据比较少,识别效果并不理想。随着多模态大模型的快速发展,类似的识别任务其实完全可以交给大模型来处理——这是目前更务实、也更高效的路径。

既然之前的方案效果不够好,现在打算基于多模态大模型做一次改造。但项目上客户提供的服务器既没有显卡,内存也比较有限,原本考虑的MiniCPM-V 2.0和Qwen-VL-Chat这两个模型就用不了了——MiniCPM-V 2.0至今还不支持llama.cpp和Ollama(截至发文时如此,虽然官方已经提交了PR),而Qwen-VL-Chat对资源的要求又更高。这就不得不去找一个更轻量的替代方案。
MoonDream2介绍
MoonDream2是一个轻量级的计算机视觉模型,擅长回答关于图像的各种现实问题。最关键的是,它的参数量只有1.8B,这让它可以在各种设备上运行,包括手机和边缘设备。从官方公布的测试数据来看,它的表现相当不错:
| Model | VQA v2 | GQA | TextVQA | TallyQA (simple) | TallyQA (full) |
| moondream1 | 74.7 | 57.9 | 35.6 | - | - |
moondream2 | 77.7 | 61.7 | 49.7 | 80.1 | 74.2 |
website:moondream
HuggingFace:vikhyatk/moondream2 · Hugging Face
Demo:moondream2 - a Hugging Face Space by vikhyatk
而且MoonDream2遵循Apache 2.0协议,可以用于商业目的,这一点对项目落地来说至关重要。
模型部署
Ollama从0.1.33版本开始支持Moondream的部署,不过目前还处于预发布阶段。部署命令很简单:
ollama run moondream:1.8b-v2-q4_0如果用了低于0.1.33版本的Ollama,就会遇到这个报错:
C:Userszyn>ollama run moondream:1.8b-v2-q4_0
pulling manifest
pulling e554c6b9de01... 100% ▕████████████████████████████████████████████████████████▏ 828 MB
pulling 4cc1cb3660d8... 100% ▕████████████████████████████████████████████████████████▏ 909 MB
pulling c71d239df917... 100% ▕████████████████████████████████████████████████████████▏ 11 KB
pulling 4b021a3b4b4a... 100% ▕████████████████████████████████████████████████████████▏ 77 B
pulling f5451d8fa2ec... 100% ▕████████████████████████████████████████████████████████▏ 49 B
pulling 008ca8822bcd... 100% ▕████████████████████████████████████████████████████████▏ 562 B
verifying sha256 digest
writing manifest
removing any unused layers
success
Error: llama runner process no longer running: 3221225477把Ollama升级到0.1.33版本就可以了,升级之后能看到模型列表:
C:Userszyn>ollama list
NAME ID SIZE MODIFIED
codeqwen:7b-chat-v1.5-q4_0 a6f7662764bd 4.2 GB 12 days ago
llama3:8b 71a106a91016 4.7 GB 11 days ago
moondream:1.8b-v2-q4_0 ad0714b7b564 1.7 GB 9 minutes ago
qwen:7b-chat-v1.5-q5_K_M 44ca6b3fda9d 5.5 GB 7 weeks ago
C:Userszyn>使用及测试
值得注意的一点是,MoonDream2模型不支持中文回答,但能理解中文提问。以下是一些实际测试的结果:
1、提问:识别图片中的设备是什么?
回答(翻译):图像中有大量的变压器,这些变压器是用于配电的大型电气设备。它们排成一排,有些放在地上。变压器有各种尺寸和形状,它们都坐落在水泥表面上。这一场景表明,这些变压器很可能是工厂或仓库的一部分,它们被储存在那里,并准备用于配电。
2、提问:识别图片内容,并说明图片中的人违反了哪些安全规定?
回答(翻译):图片显示,一名身穿蓝色衬衫、戴着眼镜的男子站在田地里。他正往旁边看,可能在观察远处的什么东西或某人。这名男子穿着一件蓝色夹克,在自然环境的衬托下显得格外显眼。场地被树木包围,背景中可以看到电线,这表明该男子所在的区域有一定程度的人类活动。
3、提问:识别图片中的表达式,并说明是否正确?
回答(翻译):该图像显示了加法问题1+3的黑白表示。数字1和3的字体比等式的其他部分大,使它们脱颖而出。这道题的写作方式似乎是一道数学题,但不清楚这些数字是实际数字还是只是一种表示。图像没有提供足够的信息来确定这些数字是真实的还是数学问题的一部分。
4、提问:识别图片中的文字并进行总结
回答(翻译):该图显示了一个显示汉字列表的计算机屏幕。文本似乎是外语,可能是中文,并以列表格式排列。文字是用外语写的,屏幕是用英语写的。该图像不包含任何其他对象或动作,焦点位于屏幕上显示的外来文本上。
5、提问:识别图片中的文字
回答(翻译):该图片的特点是一个计算机服务器机架,这是一个大型金属结构,旨在容纳和组织多个计算机组件。服务器机架放在铺有地毯的地板上,后面有一堵砖墙。
主观感受
虽然MoonDream2的参数量只有1.8B,但它在图像识别和OCR文字识别方面的表现确实超出预期。比较遗憾的一点是,它不支持中文回答和中文OCR识别。不过基于上面的测试来看,项目上的需求基本够用了。
特定领域专业设备识别
统一提问:
Identify the power equipment in the picture. If it's a transformer, return 1; if a switch cabinet, return 2; if a utility pole, return 3; if an electricity meter, return 4; if a T-junction box, return 5; and if a manhole cover, return 6. Please provide only the numerical response, without any irrelevant explanations.
(识别图片中是什么电力设备,如果是变压器就返回1,如果是开关柜就返回2,如果是电线杆就返回3,如果是电表就返回4,如果是T接箱就返回5,如果是井盖就返回6。你只需要返回给我具体的数字,不要返回其他无关紧要的解释。)
目前来看,模型只能识别那些特征明显、与其他设备区分度较高的类别。相信如果经过一定量的专业设备图片微调,识别能力还能再上一个台阶。
最后,还是期待MiniCPM-V 2.0能尽快支持llama.cpp和Ollama——毕竟多一个选择总是好的。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名