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/tfjs": "^2.8.2",
|
||||
"express": "^4.17.1",
|
||||
"socket.io": "^3.1.0"
|
||||
"socket.io": "^3.1.0",
|
||||
"socket.io-client": "^3.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/express": "^4.17.11",
|
||||
"@types/socket.io": "^2.1.12",
|
||||
"@types/socket.io-client": "^1.4.35",
|
||||
"ts-loader": "^8.0.13",
|
||||
"typescript": "^4.1.3",
|
||||
"webpack": "^5.11.1",
|
||||
|
@ -50,16 +50,17 @@ class Server {
|
||||
}
|
||||
|
||||
openSockets = (socketService: any) => {
|
||||
socketService.on('connection', () => {
|
||||
socketService.on('connection', (socket: Socket) => {
|
||||
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)
|
||||
|
||||
}
|
||||
|
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 = [
|
||||
(prediction: DetectedObject) => prediction.score > 0.6,
|
||||
(prediction: DetectedObject) => prediction.class === 'person',
|
||||
(prediction: DetectedObject) => prediction.class === 'cat',
|
||||
]
|
||||
|
||||
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 IObjectLocator from './Interfaces/IObjectLocator'
|
||||
import IOffset from './Interfaces/IOffset'
|
||||
import IRoboticsCommunicator from './Interfaces/IRoboticsCommunicator'
|
||||
import IUiRenderer from './Interfaces/IUiRenderer'
|
||||
import IVideoCapturer from "./Interfaces/IVideoCapturer"
|
||||
|
||||
@ -8,17 +9,20 @@ import makeObjectDetector from './UseCases/Factories/makeObjectDetector'
|
||||
import makeObjectLocator from './UseCases/Factories/makeObjectLocator'
|
||||
import makeUiRenderer from './UseCases/Factories/makeUiRenderer'
|
||||
import makeVideoCapturer from './UseCases/Factories/makeVideoCatpurer'
|
||||
import makeRoboticsCommunicator from './UseCases/Factories/mkaeRoboticsCommunicator'
|
||||
|
||||
class App {
|
||||
private objectDetector: IObjectDetector
|
||||
private objectLocator: IObjectLocator
|
||||
private videoCapturer: IVideoCapturer
|
||||
private roboticsCommunicator: IRoboticsCommunicator
|
||||
private uiRenderer: IUiRenderer
|
||||
|
||||
constructor () {
|
||||
this.videoCapturer = makeVideoCapturer()
|
||||
this.objectDetector = makeObjectDetector()
|
||||
this.objectLocator = makeObjectLocator()
|
||||
this.roboticsCommunicator = makeRoboticsCommunicator()
|
||||
this.uiRenderer = makeUiRenderer()
|
||||
|
||||
const eventTarget = new EventTarget()
|
||||
@ -36,6 +40,7 @@ class App {
|
||||
|
||||
const predictedObjects = await this.objectDetector.getPredictionsFromImageData(imageData)
|
||||
const offsets: IOffset[] = predictedObjects.map(obj => this.objectLocator.getOffsetsFromPredictions(obj))
|
||||
this.roboticsCommunicator.sendOffsets(offsets)
|
||||
this.uiRenderer.render({ imageData, predictedObjects, offsets })
|
||||
|
||||
window.requestAnimationFrame(this.predictImage)
|
||||
|
Loading…
x
Reference in New Issue
Block a user