一起用代码吸猫!本文正在参与【喵星人征文活动】。
前言
摄影师朋友每天都要拍很多照片,打开文件还需要对所有的图片进行分门别类一下,这个工作量还是蛮大的。先给他搞个识别小工具,将部分图片自动识别分类。而且旷视现在支持的场景还是很多的:人物,小孩,夜景,街道,雪景,猫,狗等等完全可以支持很多场景使用。首先使用eletron开发个简单的桌面工具。我一直都是后端开发,所以只能做个粗糙的界面。
主要功能:
1、定位到某个文件夹
2、识别文件夹内的图片文件,识别的过程主要使用旷世人工智能接口,其中的场景与物体识别API的接口,详见旷视人工智能开放平台
具体实现
1、实现一个桌面平台
一个桌面小工具
const { app, BrowserWindow } = require("electron");
require('./src/pages/menu');
// 创建浏览器窗体
function createWin() {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
backgroundThrottling: false, //设置应用在后台正常运行
nodeIntegration: true, //设置能在页面使用nodejs的API
contextIsolation: false, //关闭警告信息
},
});
// 加载页面
win.loadFile("./src/index.html");
// 打开开发者工具
// win.webContents.openDevTools();
}
//
app.whenReady().then(createWin);
// 所有页面都关闭时将关闭窗体
app.on("window-all-closed", () => {
// 在 macOS 上,除非用户用 Cmd + Q 确定地退出,
// 否则绝大部分应用及其菜单栏会保持激活。
if (process.platform !== "darwin") {
app.quit();
}
});
//
app.on("activate", () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWin();
}
});
复制代码
2、实现场景与物体的识别
步骤:
1、首先需要申请到相应的key 和 secret,注册旷视账号并创建一个应用将获取到一个appKey 和 appSecret
2、调用场景与物体识别API:请求地址:api-cn.faceplusplus.com/imagepp/bet…
是否必选 | 参数名 | 类型 | 参数说明 |
---|---|---|---|
必选 | api_key | String | 调用此API的API Key |
必选 | api_secret | String | 调用此API的API Secret |
必选(三选一) | image_url | String | 图片的URL |
async function scanPic(filePath) {
const options ={
uri: url,
method: 'POST',
formData: {
api_key: cfg.appKey,
app_secret: cfg.appSecret,
image_url:filePath
}
}
const isCatPic = false;
const result = await rp(options);
const objects = JSON.parse(result).objects;
objects.forEach(obj => {
if(obj.value === 'Cat' ) {
isCatPic = true;
}
});
return isCatPic;
}
复制代码
效果展示
很简单的完成整个工程:展示一下效果
参考资料: