refact: abstracted detections to predictions
now as a seperate use case
This commit is contained in:
		
							parent
							
								
									332e7d3386
								
							
						
					
					
						commit
						685c57d3a9
					
				
							
								
								
									
										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