refact: abstracted detections to predictions
now as a seperate use case
This commit is contained in:
parent
de4039c2b2
commit
9466510190
16
src/UseCases/convertDetectedToPredictedObjects.ts
Normal file
16
src/UseCases/convertDetectedToPredictedObjects.ts
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import { DetectedObject } from "@tensorflow-models/coco-ssd"
|
||||||
|
import PredictedObject from '../Models/PredictedObject'
|
||||||
|
|
||||||
|
const convertDetectedToPredictedObjects = (detectedObjects: DetectedObject[]) => {
|
||||||
|
const predictedObjects: PredictedObject[] = detectedObjects.map(p => new PredictedObject({
|
||||||
|
xOrigin: p.bbox[0],
|
||||||
|
yOrigin: p.bbox[1],
|
||||||
|
width: p.bbox[2],
|
||||||
|
height: p.bbox[3],
|
||||||
|
class: p.class
|
||||||
|
}))
|
||||||
|
|
||||||
|
return predictedObjects
|
||||||
|
}
|
||||||
|
|
||||||
|
export default convertDetectedToPredictedObjects
|
14
src/app.ts
14
src/app.ts
@ -2,7 +2,7 @@ import { DetectedObject } from "@tensorflow-models/coco-ssd"
|
|||||||
import PredictedObjectCollectionController from "./Controllers/PredictedObjectCollectionController"
|
import PredictedObjectCollectionController from "./Controllers/PredictedObjectCollectionController"
|
||||||
import VideoController from './Controllers/VideoController'
|
import VideoController from './Controllers/VideoController'
|
||||||
import ObjectDetector from './Models/ObjectDetector'
|
import ObjectDetector from './Models/ObjectDetector'
|
||||||
import PredictedObject from "./Models/PredictedObject"
|
import convertDetectedtoPredictedObject from './UseCases/convertDetectedToPredictedObjects'
|
||||||
|
|
||||||
const defaultPredictions = [
|
const defaultPredictions = [
|
||||||
(prediction: DetectedObject) => prediction.score > 0.6,
|
(prediction: DetectedObject) => prediction.score > 0.6,
|
||||||
@ -15,7 +15,6 @@ class App {
|
|||||||
private objectDetector: ObjectDetector
|
private objectDetector: ObjectDetector
|
||||||
|
|
||||||
constructor () {
|
constructor () {
|
||||||
console.log('starting')
|
|
||||||
this.objectDetector = new ObjectDetector({ filterPredicates: defaultPredictions })
|
this.objectDetector = new ObjectDetector({ filterPredicates: defaultPredictions })
|
||||||
this.predictedObjectCollectionController = new PredictedObjectCollectionController()
|
this.predictedObjectCollectionController = new PredictedObjectCollectionController()
|
||||||
this.videoController = new VideoController({ width: 640, height: 480 })
|
this.videoController = new VideoController({ width: 640, height: 480 })
|
||||||
@ -30,15 +29,8 @@ class App {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const predictions: DetectedObject[] = await this.objectDetector.predictImageStream(imageData)
|
const detectedObjects: DetectedObject[] = await this.objectDetector.predictImageStream(imageData)
|
||||||
const predictedObjects = predictions.map(p => new PredictedObject({
|
const predictedObjects = convertDetectedtoPredictedObject(detectedObjects)
|
||||||
xOrigin: p.bbox[0],
|
|
||||||
yOrigin: p.bbox[1],
|
|
||||||
width: p.bbox[2],
|
|
||||||
height: p.bbox[3],
|
|
||||||
class: p.class
|
|
||||||
}))
|
|
||||||
|
|
||||||
this.predictedObjectCollectionController.predictedObjects = predictedObjects
|
this.predictedObjectCollectionController.predictedObjects = predictedObjects
|
||||||
|
|
||||||
window.requestAnimationFrame(this.predictImage)
|
window.requestAnimationFrame(this.predictImage)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user