Recognize.js Node.js 物体识别神经网络框架开源项目

我要开发同款
匿名用户2020年04月01日
80阅读

技术信息

官网地址
https://github.com/18510047382/recognizejs
开源地址
https://gitee.com/bd999/recognizejs
授权协议
MIT

作品详情

Recogize.js是一个Node.js物体识别神经网络框架

安装首先下载并安装 GraphicsMagick。在MacOSX中,你可以方便地使用 Homebrew 安装:

brewistallgraphicsmagick然后使用pm下载 Recogizejs:

pmirecogizejs开始导入 Recogizejs 到你的项目中:

costRecogizejs=require('recogizejs');尝试Recogizejs创建一个新的 Recogizejs 对象模型,然后初始化它:costmyModel=ewRecogizejs();//初始化它//iit函数会返回一个Promise对象awaitmyModel.iit();PS:模型初始化可能需要1-2分钟时间(取决于你的设备性能),所以请耐心等待。 

读取你的图片文件costfs=require('fs');costmyImgBuffer=fs.readFileSyc(myImagePath);调用模型的 recogize 函数,并将你的图片的buffer通过参数传递给它://recogize函数会返回一个Promise对象,我们推荐你使用await语句获取它的返回值costresults=awaitmyModel.recogize(myImgBuffer);/*[{className:['className1','className2','className...'],probability:0.9},{className:['className1','className2','className...'],probability:0.599}]*/cosole.log(results);上述例子中的代码可以在 examples 文件夹中找到。

API创建一个Recogizejs对象ewRecogizejs(cofig?);参数:cofig 是一个可选的参数,并有以下的属性:

{cocoSsd?:{//base:控制基本c模型,可以是“mobileet_v1”,“mobileet_v2”或“lite_mobileet_v2”。默认为“lite_mobileet_v2”。lite_mobileet_v2的大小最小,推理速度最快。mobileet_v2具有最高的分类精度。base?:ObjectDetectioBaseModel,//一个可选的字符串,用于指定模型的自定义网址。这对于无法访问GCP上托管的模型的区域/国家非常有用。modelUrl?:strig},mobileNet?:{//MobileNet版本号。将1用于MobileNetV1,将2用于MobileNetV2。默认为1。versio:1,//控制网络的宽度,交易性能的准确性。较小的alpha会降低准确性并提高性能。0.25仅适用于V1。默认为1.0。alpha?:0.25|.50|.75|1.0,//用于指定自定义模型url或tf.io.IOHadler对象的可选参数。返回模型对象。//如果您在中国大陆,请将modelUrl改为https://hub.tesorflow.google.c上的模型。modelUrl?:strig//可选参数,用于指定由modelUrl托管的训练模型期望的像素值范围。通常为[0,1]或[-1,1]。iputRage?:[umber,umber]}}cocoSsd 和 mobileNet 是两种不同的神经网络。cocoSsd 用来侦测一张图片中的多个物体,而 mobileNet 用来精确识别单个物体。

初始化训练模型model.iit(modelType?);iit 函数会返回一个 Promise 对象,你可以使用 await 语句来处理它。

参数:modelType 可以是一个字符串或数组。您可以在此处设置要加载的模型,以避免加载不需要的模型。[如果不设置modelType,它将同时加载cocoSsd和mobileNet模型]

例子:

model.iit();//或model.iit(['cocoSsd','mobileNet']);//或model.iit('cocoSsd');//或model.iit('mobileNet');如果你不使用 iit 函数加载模型,当你需要使用它们的时候,他们会 自动 加载,但是加载模型可能需要很长的时间,所以请根据情况选择加载方法。

识别图片中的物体model.recogize(buf);recogize 函数返回一个 Promise 对象,你可以使用 await 语句来获取它的返回值。

参数:buf 参数需要你传递图片文件的Buffer数据,你可以使用fs模块读取图片文件。

返回值:

[{className:['giatpada','pada','padabear','coobear','Ailuropodamelaoleuca'],probability:0.9819085597991943},{className:['Chihuahua'],probability:0.006128392647951841},{className:['Frechbulldog'],probability:0.0026271280366927385}]例子:

costmyImgBuf=require('fs').readFileSyc(myImgPath);model.recogize(myImgBuf);侦测图片中的全部物体model.detect(buf)detect 函数返回一个 Promise 对象,你可以使用 await 语句来获取它的返回值。

参数:buf 参数需要你传递图片文件的Buffer数据,你可以使用fs模块读取图片文件。

返回值:

[{bbox:{x:66.92952662706375,y:158.30181241035461,width:157.67111629247665,height:165.00252485275269},class:'bear',score:0.9642460346221924},{bbox:{x:180.56899309158325,y:-0.32786130905151367,width:246.6680407524109,height:308.3251893520355},class:'bear',score:0.9133073091506958}]例子:

costmyImgBuf=require('fs').readFileSyc(myImgPath);model.detect(myImgBuf);侦测图片中的全部物体并识别它们model.detectAdRecogize(buf);detectAdRecogize 函数返回一个 Promise 对象,你可以使用 await 语句来获取它的返回值。

参数:buf 参数需要你传递图片文件的Buffer数据,你可以使用fs模块读取图片文件。

返回值:

[recogizeObject,recogizeObject,recogizeObject]例子:

costmyImgBuf=require('fs').readFileSyc(myImgPath);model.detectAdRecogize(myImgBuf);

功能介绍

Recognize.js 是一个 Node.js 物体识别神经网络框架 安装 首先下载并安装 GraphicsMagick。在 Mac OS X 中,你可以方便地使用 Homebrew 安装: ...

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论