中文 | English
完全用js来实现图片中的目标检测 基于yolov3算法和Tensorflow.js库 用tensorflow.js实现yolov3和yolov3-tiny
需要注意的是: 必须是Tensorflow.js@v0.12.4版本以上
- 可以识别任意尺寸的图片
- 同时支持yolov3和yolov3-tiny
npm install tfjs-yolov3
import { yolov3, yolov3Tiny } from 'tfjs-yolov3'
async function start () {
const yolo = await yolov3Tiny() // pre-load model (35M)
// or
// const yolo = await yolov3() // pre-load model (245M)
const $img = document.getElementById('img')
const boxes = await yolo($img)
draw(boxes) // Some draw function
}
start()
yolov3和yolov3Tiny函数接受一个options对象,并返回一个函数
export declare function yolov3 (
{ modelUrl, anchors }? :
{ modelUrl?: string, anchors?: number[] }
): Promise<yolo>
export declare function yolov3Tiny (
{ modelUrl, anchors }? :
{ modelUrl?: string, anchors?: number[] }
): Promise<yolo>
参数 | 说明 |
---|---|
modelUrl | 可选,预训练model的url,可把model下载到本地,加快预训练model的加载速度,点我下载 |
anchors | 可选,可自定义anchores,格式参考config |
这两个函数调用后会加载预训练model,并返回一个函数,可用这个函数去识别图片,并返回识别后的box列表,参数如下:
type yolo = ($img: HTMLImageElement) => Promise<Box[]>
interface Box {
top: number
left: number
bottom: number
right: number
width: number
height: number
scores: number
classes: string
}