feat: send offsets to server
This commit is contained in:
parent
2bb8ac647c
commit
be6efeddcf
4
dist/Vision/main.js
vendored
4
dist/Vision/main.js
vendored
File diff suppressed because one or more lines are too long
6527
package-lock.json
generated
6527
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -13,11 +13,13 @@
|
|||||||
"@tensorflow-models/coco-ssd": "^2.2.1",
|
"@tensorflow-models/coco-ssd": "^2.2.1",
|
||||||
"@tensorflow/tfjs": "^2.8.2",
|
"@tensorflow/tfjs": "^2.8.2",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"socket.io": "^3.1.0"
|
"socket.io": "^3.1.0",
|
||||||
|
"socket.io-client": "^3.1.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/express": "^4.17.11",
|
"@types/express": "^4.17.11",
|
||||||
"@types/socket.io": "^2.1.12",
|
"@types/socket.io": "^2.1.12",
|
||||||
|
"@types/socket.io-client": "^1.4.35",
|
||||||
"ts-loader": "^8.0.13",
|
"ts-loader": "^8.0.13",
|
||||||
"typescript": "^4.1.3",
|
"typescript": "^4.1.3",
|
||||||
"webpack": "^5.11.1",
|
"webpack": "^5.11.1",
|
||||||
|
@ -50,16 +50,17 @@ class Server {
|
|||||||
}
|
}
|
||||||
|
|
||||||
openSockets = (socketService: any) => {
|
openSockets = (socketService: any) => {
|
||||||
socketService.on('connection', () => {
|
socketService.on('connection', (socket: Socket) => {
|
||||||
console.log('client connected')
|
console.log('client connected')
|
||||||
|
|
||||||
|
socket.on('offsets', (offsets: any) => {
|
||||||
|
this.onReceiveOffsets(offsets)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
socketService.on('message', (message: any) => {
|
|
||||||
console.log(message)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public onReceiveOffsets = (offsets: any[]) => {
|
onReceiveOffsets = (offsets: any[]) => {
|
||||||
this.eventManager.emit('onReceiveOffsets', offsets)
|
this.eventManager.emit('onReceiveOffsets', offsets)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
7
src/Vision/Interfaces/IRoboticsCommunicator.ts
Normal file
7
src/Vision/Interfaces/IRoboticsCommunicator.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import IOffset from "./IOffset";
|
||||||
|
|
||||||
|
interface IRoboticsCommunicator {
|
||||||
|
sendOffsets(offsets: IOffset[]): void
|
||||||
|
}
|
||||||
|
|
||||||
|
export default IRoboticsCommunicator
|
@ -3,7 +3,7 @@ import ObjectDetector from "../ObjectDetector"
|
|||||||
|
|
||||||
const defaultPredictions = [
|
const defaultPredictions = [
|
||||||
(prediction: DetectedObject) => prediction.score > 0.6,
|
(prediction: DetectedObject) => prediction.score > 0.6,
|
||||||
(prediction: DetectedObject) => prediction.class === 'person',
|
(prediction: DetectedObject) => prediction.class === 'cat',
|
||||||
]
|
]
|
||||||
|
|
||||||
function makeObjectDetector (filterPredicates?: Function[]): ObjectDetector {
|
function makeObjectDetector (filterPredicates?: Function[]): ObjectDetector {
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
import RoboticsCommunicator from "../RoboticsCommunicator"
|
||||||
|
|
||||||
|
|
||||||
|
function makeRoboticsCommunicator () {
|
||||||
|
return new RoboticsCommunicator()
|
||||||
|
}
|
||||||
|
|
||||||
|
export default makeRoboticsCommunicator
|
16
src/Vision/UseCases/RoboticsCommunicator.ts
Normal file
16
src/Vision/UseCases/RoboticsCommunicator.ts
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import * as io from 'socket.io-client'
|
||||||
|
import IOffset from '../Interfaces/IOffset'
|
||||||
|
|
||||||
|
class RoboticsCommunicator {
|
||||||
|
socket: SocketIOClient.Socket
|
||||||
|
|
||||||
|
constructor () {
|
||||||
|
this.socket = io.connect()
|
||||||
|
}
|
||||||
|
|
||||||
|
sendOffsets = (offsets: IOffset[]) => {
|
||||||
|
this.socket.emit('offsets', offsets)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default RoboticsCommunicator
|
@ -1,6 +1,7 @@
|
|||||||
import IObjectDetector from './Interfaces/IObjectDetector'
|
import IObjectDetector from './Interfaces/IObjectDetector'
|
||||||
import IObjectLocator from './Interfaces/IObjectLocator'
|
import IObjectLocator from './Interfaces/IObjectLocator'
|
||||||
import IOffset from './Interfaces/IOffset'
|
import IOffset from './Interfaces/IOffset'
|
||||||
|
import IRoboticsCommunicator from './Interfaces/IRoboticsCommunicator'
|
||||||
import IUiRenderer from './Interfaces/IUiRenderer'
|
import IUiRenderer from './Interfaces/IUiRenderer'
|
||||||
import IVideoCapturer from "./Interfaces/IVideoCapturer"
|
import IVideoCapturer from "./Interfaces/IVideoCapturer"
|
||||||
|
|
||||||
@ -8,17 +9,20 @@ import makeObjectDetector from './UseCases/Factories/makeObjectDetector'
|
|||||||
import makeObjectLocator from './UseCases/Factories/makeObjectLocator'
|
import makeObjectLocator from './UseCases/Factories/makeObjectLocator'
|
||||||
import makeUiRenderer from './UseCases/Factories/makeUiRenderer'
|
import makeUiRenderer from './UseCases/Factories/makeUiRenderer'
|
||||||
import makeVideoCapturer from './UseCases/Factories/makeVideoCatpurer'
|
import makeVideoCapturer from './UseCases/Factories/makeVideoCatpurer'
|
||||||
|
import makeRoboticsCommunicator from './UseCases/Factories/mkaeRoboticsCommunicator'
|
||||||
|
|
||||||
class App {
|
class App {
|
||||||
private objectDetector: IObjectDetector
|
private objectDetector: IObjectDetector
|
||||||
private objectLocator: IObjectLocator
|
private objectLocator: IObjectLocator
|
||||||
private videoCapturer: IVideoCapturer
|
private videoCapturer: IVideoCapturer
|
||||||
|
private roboticsCommunicator: IRoboticsCommunicator
|
||||||
private uiRenderer: IUiRenderer
|
private uiRenderer: IUiRenderer
|
||||||
|
|
||||||
constructor () {
|
constructor () {
|
||||||
this.videoCapturer = makeVideoCapturer()
|
this.videoCapturer = makeVideoCapturer()
|
||||||
this.objectDetector = makeObjectDetector()
|
this.objectDetector = makeObjectDetector()
|
||||||
this.objectLocator = makeObjectLocator()
|
this.objectLocator = makeObjectLocator()
|
||||||
|
this.roboticsCommunicator = makeRoboticsCommunicator()
|
||||||
this.uiRenderer = makeUiRenderer()
|
this.uiRenderer = makeUiRenderer()
|
||||||
|
|
||||||
const eventTarget = new EventTarget()
|
const eventTarget = new EventTarget()
|
||||||
@ -36,6 +40,7 @@ class App {
|
|||||||
|
|
||||||
const predictedObjects = await this.objectDetector.getPredictionsFromImageData(imageData)
|
const predictedObjects = await this.objectDetector.getPredictionsFromImageData(imageData)
|
||||||
const offsets: IOffset[] = predictedObjects.map(obj => this.objectLocator.getOffsetsFromPredictions(obj))
|
const offsets: IOffset[] = predictedObjects.map(obj => this.objectLocator.getOffsetsFromPredictions(obj))
|
||||||
|
this.roboticsCommunicator.sendOffsets(offsets)
|
||||||
this.uiRenderer.render({ imageData, predictedObjects, offsets })
|
this.uiRenderer.render({ imageData, predictedObjects, offsets })
|
||||||
|
|
||||||
window.requestAnimationFrame(this.predictImage)
|
window.requestAnimationFrame(this.predictImage)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user